From abe8e40f5a2b5c2c53779f340769f0209720eb92 Mon Sep 17 00:00:00 2001 From: bbod Date: Thu, 13 Feb 2020 16:18:17 -0700 Subject: [PATCH] finished --- .../.idea.DNA_Alignment/.idea/.gitignore | 2 + .../.idea/contentModel.xml | 21 + .../.idea.DNA_Alignment/.idea/encodings.xml | 4 + .../.idea.DNA_Alignment/.idea/indexLayout.xml | 8 + .../.idea.DNA_Alignment/.idea/modules.xml | 8 + .../.idea/projectSettingsUpdater.xml | 6 + .../.idea/.idea.DNA_Alignment/.idea/vcs.xml | 6 + .../.idea/.idea.DNA_Alignment/riderModule.iml | 7 + DNA_Alignment/DNA_Alignment.sln | 16 + DNA_Alignment/DNA_Alignment/Archive.zip | Bin 0 -> 53192 bytes .../DNA_Alignment/DNA_Alignment.csproj | 55 + DNA_Alignment/DNA_Alignment/GreatApes.txt | 273 + .../GreatApes.txt_vs_protypicalHuman.txt.txt | 18669 +++++++++++++++ DNA_Alignment/DNA_Alignment/Program.cs | 177 + .../DNA_Alignment/Properties/AssemblyInfo.cs | 35 + .../DNA_Alignment/bin/Debug/DNA_Alignment.exe | Bin 0 -> 8192 bytes .../DNA_Alignment/bin/Debug/DNA_Alignment.pdb | Bin 0 -> 1740 bytes .../DNA_Alignment/bin/Debug/GreatApes.txt | 273 + .../GreatApes.txt_vs_protypicalHuman.txt.txt | 18669 +++++++++++++++ .../bin/Debug/mono_crash.0.0.json | 232 + .../bin/Debug/mono_crash.0.1.json | 232 + .../bin/Debug/mono_crash.0.2.json | 236 + .../bin/Debug/mono_crash.0.3.json | 236 + .../bin/Debug/mono_crash.0.4.json | 236 + .../bin/Debug/mono_crash.0.5.json | 236 + .../bin/Debug/mono_crash.0.6.json | 260 + .../bin/Debug/mono_crash.0.7.json | 260 + .../bin/Debug/mono_crash.0.8.json | 260 + .../DNA_Alignment/bin/Debug/neanderthal.txt | 277 + .../neanderthal.txt_vs_GreatApes.txt.txt | 18693 ++++++++++++++++ ...neanderthal.txt_vs_protypicalHuman.txt.txt | 16749 ++++++++++++++ .../bin/Debug/protypicalHuman.txt | 277 + DNA_Alignment/DNA_Alignment/neanderthal.txt | 277 + .../neanderthal.txt_vs_GreatApes.txt.txt | 18693 ++++++++++++++++ ...neanderthal.txt_vs_protypicalHuman.txt.txt | 16749 ++++++++++++++ .../DNA_Alignment.csproj.FileListAbsolute.txt | 5 + ...NA_Alignment.csprojAssemblyReference.cache | Bin 0 -> 9752 bytes .../DNA_Alignment/obj/Debug/DNA_Alignment.exe | Bin 0 -> 8192 bytes .../DNA_Alignment/obj/Debug/DNA_Alignment.pdb | Bin 0 -> 1740 bytes .../DNA_Alignment/protypicalHuman.txt | 277 + DNA_Alignment/DNA_Alignment/writeup.txt | 3 + HW1/.idea/workspace.xml | 53 - HW1/StoneGame.py | 5 - HW1/env/bin/pip3 | 12 - HW1/env/bin/python3.7 | Bin 9604 -> 0 bytes HW1/env/pyvenv.cfg | 3 - HW1/venv/bin/activate | 76 - HW1/venv/bin/activate.csh | 37 - HW1/venv/bin/activate.fish | 75 - HW1/venv/bin/easy_install | 12 - HW1/venv/bin/easy_install-3.6 | 12 - HW1/venv/bin/pip | 12 - HW1/venv/bin/pip3.6 | 12 - HW1/venv/bin/python | Bin 3094132 -> 0 bytes HW1/venv/bin/python3 | Bin 3094132 -> 0 bytes HW1/venv/bin/python3.6 | Bin 3094132 -> 0 bytes .../python3.6/site-packages/easy-install.pth | 2 - .../pip-19.0.3-py3.6.egg/EGG-INFO/PKG-INFO | 73 - .../pip-19.0.3-py3.6.egg/EGG-INFO/SOURCES.txt | 391 - .../EGG-INFO/dependency_links.txt | 1 - .../EGG-INFO/entry_points.txt | 5 - .../EGG-INFO/not-zip-safe | 1 - .../EGG-INFO/top_level.txt | 1 - .../pip-19.0.3-py3.6.egg/pip/__init__.py | 1 - .../pip-19.0.3-py3.6.egg/pip/__main__.py | 19 - .../pip/_internal/__init__.py | 78 - .../pip/_internal/build_env.py | 215 - .../pip/_internal/cache.py | 224 - .../pip/_internal/cli/__init__.py | 4 - .../pip/_internal/cli/autocompletion.py | 152 - .../pip/_internal/cli/base_command.py | 341 - .../pip/_internal/cli/cmdoptions.py | 809 - .../pip/_internal/cli/main_parser.py | 104 - .../pip/_internal/cli/parser.py | 261 - .../pip/_internal/cli/status_codes.py | 8 - .../pip/_internal/commands/__init__.py | 79 - .../pip/_internal/commands/check.py | 41 - .../pip/_internal/commands/completion.py | 94 - .../pip/_internal/commands/configuration.py | 227 - .../pip/_internal/commands/download.py | 176 - .../pip/_internal/commands/freeze.py | 96 - .../pip/_internal/commands/hash.py | 57 - .../pip/_internal/commands/help.py | 37 - .../pip/_internal/commands/install.py | 566 - .../pip/_internal/commands/list.py | 301 - .../pip/_internal/commands/search.py | 135 - .../pip/_internal/commands/show.py | 168 - .../pip/_internal/commands/uninstall.py | 78 - .../pip/_internal/commands/wheel.py | 186 - .../pip/_internal/configuration.py | 387 - .../pip/_internal/download.py | 971 - .../pip/_internal/exceptions.py | 274 - .../pip/_internal/index.py | 990 - .../pip/_internal/locations.py | 211 - .../pip/_internal/models/__init__.py | 2 - .../pip/_internal/models/candidate.py | 31 - .../pip/_internal/models/format_control.py | 73 - .../pip/_internal/models/index.py | 31 - .../pip/_internal/models/link.py | 163 - .../pip/_internal/operations/__init__.py | 0 .../pip/_internal/operations/check.py | 155 - .../pip/_internal/operations/freeze.py | 247 - .../pip/_internal/operations/prepare.py | 413 - .../pip/_internal/pep425tags.py | 381 - .../pip/_internal/pyproject.py | 171 - .../pip/_internal/req/__init__.py | 77 - .../pip/_internal/req/constructors.py | 339 - .../pip/_internal/req/req_file.py | 382 - .../pip/_internal/req/req_install.py | 1021 - .../pip/_internal/req/req_set.py | 197 - .../pip/_internal/req/req_tracker.py | 88 - .../pip/_internal/req/req_uninstall.py | 596 - .../pip/_internal/resolve.py | 393 - .../pip/_internal/utils/__init__.py | 0 .../pip/_internal/utils/appdirs.py | 270 - .../pip/_internal/utils/compat.py | 264 - .../pip/_internal/utils/deprecation.py | 90 - .../pip/_internal/utils/encoding.py | 39 - .../pip/_internal/utils/filesystem.py | 30 - .../pip/_internal/utils/glibc.py | 93 - .../pip/_internal/utils/hashes.py | 115 - .../pip/_internal/utils/logging.py | 318 - .../pip/_internal/utils/misc.py | 1040 - .../pip/_internal/utils/models.py | 40 - .../pip/_internal/utils/outdated.py | 164 - .../pip/_internal/utils/packaging.py | 85 - .../pip/_internal/utils/setuptools_build.py | 8 - .../pip/_internal/utils/temp_dir.py | 155 - .../pip/_internal/utils/typing.py | 29 - .../pip/_internal/utils/ui.py | 441 - .../pip/_internal/vcs/__init__.py | 534 - .../pip/_internal/vcs/bazaar.py | 114 - .../pip/_internal/vcs/git.py | 369 - .../pip/_internal/vcs/mercurial.py | 103 - .../pip/_internal/vcs/subversion.py | 200 - .../pip/_internal/wheel.py | 1095 - .../pip/_vendor/__init__.py | 111 - .../pip/_vendor/appdirs.py | 604 - .../pip/_vendor/cachecontrol/__init__.py | 11 - .../pip/_vendor/cachecontrol/_cmd.py | 57 - .../pip/_vendor/cachecontrol/adapter.py | 133 - .../pip/_vendor/cachecontrol/cache.py | 39 - .../_vendor/cachecontrol/caches/__init__.py | 2 - .../_vendor/cachecontrol/caches/file_cache.py | 146 - .../cachecontrol/caches/redis_cache.py | 33 - .../pip/_vendor/cachecontrol/compat.py | 29 - .../pip/_vendor/cachecontrol/controller.py | 367 - .../pip/_vendor/cachecontrol/filewrapper.py | 80 - .../pip/_vendor/cachecontrol/heuristics.py | 135 - .../pip/_vendor/cachecontrol/serialize.py | 186 - .../pip/_vendor/cachecontrol/wrapper.py | 29 - .../pip/_vendor/certifi/__init__.py | 3 - .../pip/_vendor/certifi/__main__.py | 2 - .../pip/_vendor/certifi/cacert.pem | 4512 ---- .../pip/_vendor/certifi/core.py | 20 - .../pip/_vendor/chardet/__init__.py | 39 - .../pip/_vendor/chardet/big5freq.py | 386 - .../pip/_vendor/chardet/big5prober.py | 47 - .../pip/_vendor/chardet/chardistribution.py | 233 - .../pip/_vendor/chardet/charsetgroupprober.py | 106 - .../pip/_vendor/chardet/charsetprober.py | 145 - .../pip/_vendor/chardet/cli/__init__.py | 1 - .../pip/_vendor/chardet/cli/chardetect.py | 85 - .../pip/_vendor/chardet/codingstatemachine.py | 88 - .../pip/_vendor/chardet/compat.py | 34 - .../pip/_vendor/chardet/cp949prober.py | 49 - .../pip/_vendor/chardet/enums.py | 76 - .../pip/_vendor/chardet/escprober.py | 101 - .../pip/_vendor/chardet/escsm.py | 246 - .../pip/_vendor/chardet/eucjpprober.py | 92 - .../pip/_vendor/chardet/euckrfreq.py | 195 - .../pip/_vendor/chardet/euckrprober.py | 47 - .../pip/_vendor/chardet/euctwfreq.py | 387 - .../pip/_vendor/chardet/euctwprober.py | 46 - .../pip/_vendor/chardet/gb2312freq.py | 283 - .../pip/_vendor/chardet/gb2312prober.py | 46 - .../pip/_vendor/chardet/hebrewprober.py | 292 - .../pip/_vendor/chardet/jisfreq.py | 325 - .../pip/_vendor/chardet/jpcntx.py | 233 - .../pip/_vendor/chardet/langbulgarianmodel.py | 228 - .../pip/_vendor/chardet/langcyrillicmodel.py | 333 - .../pip/_vendor/chardet/langgreekmodel.py | 225 - .../pip/_vendor/chardet/langhebrewmodel.py | 200 - .../pip/_vendor/chardet/langhungarianmodel.py | 225 - .../pip/_vendor/chardet/langthaimodel.py | 199 - .../pip/_vendor/chardet/langturkishmodel.py | 193 - .../pip/_vendor/chardet/latin1prober.py | 145 - .../pip/_vendor/chardet/mbcharsetprober.py | 91 - .../pip/_vendor/chardet/mbcsgroupprober.py | 54 - .../pip/_vendor/chardet/mbcssm.py | 572 - .../pip/_vendor/chardet/sbcharsetprober.py | 132 - .../pip/_vendor/chardet/sbcsgroupprober.py | 73 - .../pip/_vendor/chardet/sjisprober.py | 92 - .../pip/_vendor/chardet/universaldetector.py | 286 - .../pip/_vendor/chardet/utf8prober.py | 82 - .../pip/_vendor/chardet/version.py | 9 - .../pip/_vendor/colorama/__init__.py | 6 - .../pip/_vendor/colorama/ansi.py | 102 - .../pip/_vendor/colorama/ansitowin32.py | 257 - .../pip/_vendor/colorama/initialise.py | 80 - .../pip/_vendor/colorama/win32.py | 152 - .../pip/_vendor/colorama/winterm.py | 169 - .../pip/_vendor/distlib/__init__.py | 23 - .../pip/_vendor/distlib/_backport/__init__.py | 6 - .../pip/_vendor/distlib/_backport/misc.py | 41 - .../pip/_vendor/distlib/_backport/shutil.py | 761 - .../_vendor/distlib/_backport/sysconfig.cfg | 84 - .../_vendor/distlib/_backport/sysconfig.py | 788 - .../pip/_vendor/distlib/_backport/tarfile.py | 2607 --- .../pip/_vendor/distlib/compat.py | 1120 - .../pip/_vendor/distlib/database.py | 1339 -- .../pip/_vendor/distlib/index.py | 516 - .../pip/_vendor/distlib/locators.py | 1295 -- .../pip/_vendor/distlib/manifest.py | 393 - .../pip/_vendor/distlib/markers.py | 131 - .../pip/_vendor/distlib/metadata.py | 1094 - .../pip/_vendor/distlib/resources.py | 355 - .../pip/_vendor/distlib/scripts.py | 417 - .../pip/_vendor/distlib/t32.exe | Bin 92672 -> 0 bytes .../pip/_vendor/distlib/t64.exe | Bin 102400 -> 0 bytes .../pip/_vendor/distlib/util.py | 1756 -- .../pip/_vendor/distlib/version.py | 736 - .../pip/_vendor/distlib/w32.exe | Bin 89088 -> 0 bytes .../pip/_vendor/distlib/w64.exe | Bin 99328 -> 0 bytes .../pip/_vendor/distlib/wheel.py | 988 - .../pip/_vendor/distro.py | 1197 - .../pip/_vendor/html5lib/__init__.py | 35 - .../pip/_vendor/html5lib/_ihatexml.py | 288 - .../pip/_vendor/html5lib/_inputstream.py | 923 - .../pip/_vendor/html5lib/_tokenizer.py | 1721 -- .../pip/_vendor/html5lib/_trie/__init__.py | 14 - .../pip/_vendor/html5lib/_trie/_base.py | 37 - .../pip/_vendor/html5lib/_trie/datrie.py | 44 - .../pip/_vendor/html5lib/_trie/py.py | 67 - .../pip/_vendor/html5lib/_utils.py | 124 - .../pip/_vendor/html5lib/constants.py | 2947 --- .../pip/_vendor/html5lib/filters/__init__.py | 0 .../filters/alphabeticalattributes.py | 29 - .../pip/_vendor/html5lib/filters/base.py | 12 - .../html5lib/filters/inject_meta_charset.py | 73 - .../pip/_vendor/html5lib/filters/lint.py | 93 - .../_vendor/html5lib/filters/optionaltags.py | 207 - .../pip/_vendor/html5lib/filters/sanitizer.py | 896 - .../_vendor/html5lib/filters/whitespace.py | 38 - .../pip/_vendor/html5lib/html5parser.py | 2791 --- .../pip/_vendor/html5lib/serializer.py | 409 - .../_vendor/html5lib/treeadapters/__init__.py | 30 - .../_vendor/html5lib/treeadapters/genshi.py | 54 - .../pip/_vendor/html5lib/treeadapters/sax.py | 50 - .../_vendor/html5lib/treebuilders/__init__.py | 88 - .../pip/_vendor/html5lib/treebuilders/base.py | 417 - .../pip/_vendor/html5lib/treebuilders/dom.py | 236 - .../_vendor/html5lib/treebuilders/etree.py | 340 - .../html5lib/treebuilders/etree_lxml.py | 366 - .../_vendor/html5lib/treewalkers/__init__.py | 154 - .../pip/_vendor/html5lib/treewalkers/base.py | 252 - .../pip/_vendor/html5lib/treewalkers/dom.py | 43 - .../pip/_vendor/html5lib/treewalkers/etree.py | 130 - .../html5lib/treewalkers/etree_lxml.py | 213 - .../_vendor/html5lib/treewalkers/genshi.py | 69 - .../pip/_vendor/idna/__init__.py | 2 - .../pip/_vendor/idna/codec.py | 118 - .../pip/_vendor/idna/compat.py | 12 - .../pip/_vendor/idna/core.py | 396 - .../pip/_vendor/idna/idnadata.py | 1979 -- .../pip/_vendor/idna/intranges.py | 53 - .../pip/_vendor/idna/package_data.py | 2 - .../pip/_vendor/idna/uts46data.py | 8205 ------- .../pip/_vendor/ipaddress.py | 2419 -- .../pip/_vendor/lockfile/__init__.py | 347 - .../pip/_vendor/lockfile/linklockfile.py | 73 - .../pip/_vendor/lockfile/mkdirlockfile.py | 84 - .../pip/_vendor/lockfile/pidlockfile.py | 190 - .../pip/_vendor/lockfile/sqlitelockfile.py | 156 - .../pip/_vendor/lockfile/symlinklockfile.py | 70 - .../pip/_vendor/msgpack/__init__.py | 66 - .../pip/_vendor/msgpack/_version.py | 1 - .../pip/_vendor/msgpack/exceptions.py | 41 - .../pip/_vendor/msgpack/fallback.py | 977 - .../pip/_vendor/packaging/__about__.py | 27 - .../pip/_vendor/packaging/__init__.py | 26 - .../pip/_vendor/packaging/_compat.py | 31 - .../pip/_vendor/packaging/_structures.py | 68 - .../pip/_vendor/packaging/markers.py | 296 - .../pip/_vendor/packaging/requirements.py | 138 - .../pip/_vendor/packaging/specifiers.py | 749 - .../pip/_vendor/packaging/utils.py | 57 - .../pip/_vendor/packaging/version.py | 420 - .../pip/_vendor/pep517/__init__.py | 4 - .../pip/_vendor/pep517/_in_process.py | 207 - .../pip/_vendor/pep517/build.py | 108 - .../pip/_vendor/pep517/check.py | 202 - .../pip/_vendor/pep517/colorlog.py | 115 - .../pip/_vendor/pep517/compat.py | 23 - .../pip/_vendor/pep517/envbuild.py | 158 - .../pip/_vendor/pep517/wrappers.py | 163 - .../pip/_vendor/pkg_resources/__init__.py | 3171 --- .../pip/_vendor/pkg_resources/py31compat.py | 23 - .../pip/_vendor/progress/__init__.py | 127 - .../pip/_vendor/progress/bar.py | 94 - .../pip/_vendor/progress/counter.py | 48 - .../pip/_vendor/progress/helpers.py | 91 - .../pip/_vendor/progress/spinner.py | 44 - .../pip/_vendor/pyparsing.py | 6452 ------ .../pip/_vendor/pytoml/__init__.py | 4 - .../pip/_vendor/pytoml/core.py | 13 - .../pip/_vendor/pytoml/parser.py | 341 - .../pip/_vendor/pytoml/test.py | 30 - .../pip/_vendor/pytoml/utils.py | 67 - .../pip/_vendor/pytoml/writer.py | 106 - .../pip/_vendor/requests/__init__.py | 133 - .../pip/_vendor/requests/__version__.py | 14 - .../pip/_vendor/requests/_internal_utils.py | 42 - .../pip/_vendor/requests/adapters.py | 533 - .../pip/_vendor/requests/api.py | 158 - .../pip/_vendor/requests/auth.py | 305 - .../pip/_vendor/requests/certs.py | 18 - .../pip/_vendor/requests/compat.py | 74 - .../pip/_vendor/requests/cookies.py | 549 - .../pip/_vendor/requests/exceptions.py | 126 - .../pip/_vendor/requests/help.py | 119 - .../pip/_vendor/requests/hooks.py | 34 - .../pip/_vendor/requests/models.py | 953 - .../pip/_vendor/requests/packages.py | 16 - .../pip/_vendor/requests/sessions.py | 770 - .../pip/_vendor/requests/status_codes.py | 120 - .../pip/_vendor/requests/structures.py | 103 - .../pip/_vendor/requests/utils.py | 977 - .../pip/_vendor/retrying.py | 267 - .../pip-19.0.3-py3.6.egg/pip/_vendor/six.py | 952 - .../pip/_vendor/urllib3/__init__.py | 92 - .../pip/_vendor/urllib3/_collections.py | 329 - .../pip/_vendor/urllib3/connection.py | 391 - .../pip/_vendor/urllib3/connectionpool.py | 896 - .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../urllib3/contrib/_appengine_environ.py | 30 - .../contrib/_securetransport/__init__.py | 0 .../contrib/_securetransport/bindings.py | 593 - .../contrib/_securetransport/low_level.py | 346 - .../pip/_vendor/urllib3/contrib/appengine.py | 289 - .../pip/_vendor/urllib3/contrib/ntlmpool.py | 111 - .../pip/_vendor/urllib3/contrib/pyopenssl.py | 466 - .../urllib3/contrib/securetransport.py | 804 - .../pip/_vendor/urllib3/contrib/socks.py | 192 - .../pip/_vendor/urllib3/exceptions.py | 246 - .../pip/_vendor/urllib3/fields.py | 178 - .../pip/_vendor/urllib3/filepost.py | 98 - .../pip/_vendor/urllib3/packages/__init__.py | 5 - .../urllib3/packages/backports/__init__.py | 0 .../urllib3/packages/backports/makefile.py | 53 - .../pip/_vendor/urllib3/packages/six.py | 868 - .../packages/ssl_match_hostname/__init__.py | 19 - .../ssl_match_hostname/_implementation.py | 156 - .../pip/_vendor/urllib3/poolmanager.py | 450 - .../pip/_vendor/urllib3/request.py | 150 - .../pip/_vendor/urllib3/response.py | 705 - .../pip/_vendor/urllib3/util/__init__.py | 54 - .../pip/_vendor/urllib3/util/connection.py | 134 - .../pip/_vendor/urllib3/util/queue.py | 21 - .../pip/_vendor/urllib3/util/request.py | 118 - .../pip/_vendor/urllib3/util/response.py | 87 - .../pip/_vendor/urllib3/util/retry.py | 411 - .../pip/_vendor/urllib3/util/ssl_.py | 381 - .../pip/_vendor/urllib3/util/timeout.py | 242 - .../pip/_vendor/urllib3/util/url.py | 230 - .../pip/_vendor/urllib3/util/wait.py | 150 - .../pip/_vendor/webencodings/__init__.py | 342 - .../pip/_vendor/webencodings/labels.py | 231 - .../pip/_vendor/webencodings/mklabels.py | 59 - .../pip/_vendor/webencodings/tests.py | 153 - .../_vendor/webencodings/x_user_defined.py | 325 - .../site-packages/setuptools-40.8.0-py3.6.egg | Bin 571891 -> 0 bytes .../python3.6/site-packages/setuptools.pth | 1 - HW1/venv/pyvenv.cfg | 3 - HW1_Stones/.idea/workspace.xml | 725 +- HW1_Stones/StoneGame.py | 8 +- HW1_Stones/TimingGraph.png | Bin 0 -> 146422 bytes HW2_KnapSack/.idea/.gitignore | 2 + HW2_KnapSack/.idea/HW2_KnapSack.iml | 11 + .../inspectionProfiles/profiles_settings.xml | 0 {HW1 => HW2_KnapSack}/.idea/misc.xml | 1 + HW2_KnapSack/.idea/modules.xml | 8 + HW2_KnapSack/.idea/vcs.xml | 7 + HW2_KnapSack/Archive 2.zip | Bin 0 -> 96243 bytes HW2_KnapSack/Archive.zip | Bin 0 -> 2646 bytes .../Screen Shot 2020-02-02 at 11.49.03 PM.png | Bin 0 -> 109405 bytes HW2_KnapSack/simpleKnapsack.py | 111 + HW2_KnapSack/test.png | Bin 0 -> 2411 bytes MinimumEdit/.idea/.gitignore | 3 + .../.idea/MinimumEdit.iml | 2 +- .../inspectionProfiles/profiles_settings.xml | 5 + MinimumEdit/.idea/misc.xml | 7 + {HW1 => MinimumEdit}/.idea/modules.xml | 2 +- MinimumEdit/.idea/vcs.xml | 6 + MinimumEdit/Archive.zip | Bin 0 -> 29483 bytes MinimumEdit/MinimumEditDistance.py | 47 + {HW1 => MinimumEdit}/env/bin/activate | 2 +- {HW1 => MinimumEdit}/env/bin/activate.csh | 2 +- {HW1 => MinimumEdit}/env/bin/activate.fish | 2 +- {HW1 => MinimumEdit}/env/bin/easy_install | 2 +- {HW1 => MinimumEdit}/env/bin/easy_install-3.7 | 2 +- {HW1 => MinimumEdit}/env/bin/pip | 2 +- {HW1/venv => MinimumEdit/env}/bin/pip3 | 2 +- {HW1 => MinimumEdit}/env/bin/pip3.7 | 2 +- {HW1 => MinimumEdit}/env/bin/python | Bin {HW1 => MinimumEdit}/env/bin/python3 | Bin .../python3.7/site-packages/easy-install.pth | 0 .../pip-19.0.3-py3.7.egg/EGG-INFO/PKG-INFO | 0 .../pip-19.0.3-py3.7.egg/EGG-INFO/SOURCES.txt | 0 .../EGG-INFO/dependency_links.txt | 0 .../EGG-INFO/entry_points.txt | 0 .../EGG-INFO/not-zip-safe | 0 .../EGG-INFO/top_level.txt | 0 .../pip-19.0.3-py3.7.egg/pip/__init__.py | 0 .../pip-19.0.3-py3.7.egg/pip/__main__.py | 0 .../pip/_internal/__init__.py | 0 .../pip/_internal/build_env.py | 0 .../pip/_internal/cache.py | 0 .../pip/_internal/cli/__init__.py | 0 .../pip/_internal/cli/autocompletion.py | 0 .../pip/_internal/cli/base_command.py | 0 .../pip/_internal/cli/cmdoptions.py | 0 .../pip/_internal/cli/main_parser.py | 0 .../pip/_internal/cli/parser.py | 0 .../pip/_internal/cli/status_codes.py | 0 .../pip/_internal/commands/__init__.py | 0 .../pip/_internal/commands/check.py | 0 .../pip/_internal/commands/completion.py | 0 .../pip/_internal/commands/configuration.py | 0 .../pip/_internal/commands/download.py | 0 .../pip/_internal/commands/freeze.py | 0 .../pip/_internal/commands/hash.py | 0 .../pip/_internal/commands/help.py | 0 .../pip/_internal/commands/install.py | 0 .../pip/_internal/commands/list.py | 0 .../pip/_internal/commands/search.py | 0 .../pip/_internal/commands/show.py | 0 .../pip/_internal/commands/uninstall.py | 0 .../pip/_internal/commands/wheel.py | 0 .../pip/_internal/configuration.py | 0 .../pip/_internal/download.py | 0 .../pip/_internal/exceptions.py | 0 .../pip/_internal/index.py | 0 .../pip/_internal/locations.py | 0 .../pip/_internal/models/__init__.py | 0 .../pip/_internal/models/candidate.py | 0 .../pip/_internal/models/format_control.py | 0 .../pip/_internal/models/index.py | 0 .../pip/_internal/models/link.py | 0 .../pip/_internal/operations/__init__.py | 0 .../pip/_internal/operations/check.py | 0 .../pip/_internal/operations/freeze.py | 0 .../pip/_internal/operations/prepare.py | 0 .../pip/_internal/pep425tags.py | 0 .../pip/_internal/pyproject.py | 0 .../pip/_internal/req/__init__.py | 0 .../pip/_internal/req/constructors.py | 0 .../pip/_internal/req/req_file.py | 0 .../pip/_internal/req/req_install.py | 0 .../pip/_internal/req/req_set.py | 0 .../pip/_internal/req/req_tracker.py | 0 .../pip/_internal/req/req_uninstall.py | 0 .../pip/_internal/resolve.py | 0 .../pip/_internal/utils/__init__.py | 0 .../pip/_internal/utils/appdirs.py | 0 .../pip/_internal/utils/compat.py | 0 .../pip/_internal/utils/deprecation.py | 0 .../pip/_internal/utils/encoding.py | 0 .../pip/_internal/utils/filesystem.py | 0 .../pip/_internal/utils/glibc.py | 0 .../pip/_internal/utils/hashes.py | 0 .../pip/_internal/utils/logging.py | 0 .../pip/_internal/utils/misc.py | 0 .../pip/_internal/utils/models.py | 0 .../pip/_internal/utils/outdated.py | 0 .../pip/_internal/utils/packaging.py | 0 .../pip/_internal/utils/setuptools_build.py | 0 .../pip/_internal/utils/temp_dir.py | 0 .../pip/_internal/utils/typing.py | 0 .../pip/_internal/utils/ui.py | 0 .../pip/_internal/vcs/__init__.py | 0 .../pip/_internal/vcs/bazaar.py | 0 .../pip/_internal/vcs/git.py | 0 .../pip/_internal/vcs/mercurial.py | 0 .../pip/_internal/vcs/subversion.py | 0 .../pip/_internal/wheel.py | 0 .../pip/_vendor/__init__.py | 0 .../pip/_vendor/appdirs.py | 0 .../pip/_vendor/cachecontrol/__init__.py | 0 .../pip/_vendor/cachecontrol/_cmd.py | 0 .../pip/_vendor/cachecontrol/adapter.py | 0 .../pip/_vendor/cachecontrol/cache.py | 0 .../_vendor/cachecontrol/caches/__init__.py | 0 .../_vendor/cachecontrol/caches/file_cache.py | 0 .../cachecontrol/caches/redis_cache.py | 0 .../pip/_vendor/cachecontrol/compat.py | 0 .../pip/_vendor/cachecontrol/controller.py | 0 .../pip/_vendor/cachecontrol/filewrapper.py | 0 .../pip/_vendor/cachecontrol/heuristics.py | 0 .../pip/_vendor/cachecontrol/serialize.py | 0 .../pip/_vendor/cachecontrol/wrapper.py | 0 .../pip/_vendor/certifi/__init__.py | 0 .../pip/_vendor/certifi/__main__.py | 0 .../pip/_vendor/certifi/cacert.pem | 0 .../pip/_vendor/certifi/core.py | 0 .../pip/_vendor/chardet/__init__.py | 0 .../pip/_vendor/chardet/big5freq.py | 0 .../pip/_vendor/chardet/big5prober.py | 0 .../pip/_vendor/chardet/chardistribution.py | 0 .../pip/_vendor/chardet/charsetgroupprober.py | 0 .../pip/_vendor/chardet/charsetprober.py | 0 .../pip/_vendor/chardet/cli/__init__.py | 0 .../pip/_vendor/chardet/cli/chardetect.py | 0 .../pip/_vendor/chardet/codingstatemachine.py | 0 .../pip/_vendor/chardet/compat.py | 0 .../pip/_vendor/chardet/cp949prober.py | 0 .../pip/_vendor/chardet/enums.py | 0 .../pip/_vendor/chardet/escprober.py | 0 .../pip/_vendor/chardet/escsm.py | 0 .../pip/_vendor/chardet/eucjpprober.py | 0 .../pip/_vendor/chardet/euckrfreq.py | 0 .../pip/_vendor/chardet/euckrprober.py | 0 .../pip/_vendor/chardet/euctwfreq.py | 0 .../pip/_vendor/chardet/euctwprober.py | 0 .../pip/_vendor/chardet/gb2312freq.py | 0 .../pip/_vendor/chardet/gb2312prober.py | 0 .../pip/_vendor/chardet/hebrewprober.py | 0 .../pip/_vendor/chardet/jisfreq.py | 0 .../pip/_vendor/chardet/jpcntx.py | 0 .../pip/_vendor/chardet/langbulgarianmodel.py | 0 .../pip/_vendor/chardet/langcyrillicmodel.py | 0 .../pip/_vendor/chardet/langgreekmodel.py | 0 .../pip/_vendor/chardet/langhebrewmodel.py | 0 .../pip/_vendor/chardet/langhungarianmodel.py | 0 .../pip/_vendor/chardet/langthaimodel.py | 0 .../pip/_vendor/chardet/langturkishmodel.py | 0 .../pip/_vendor/chardet/latin1prober.py | 0 .../pip/_vendor/chardet/mbcharsetprober.py | 0 .../pip/_vendor/chardet/mbcsgroupprober.py | 0 .../pip/_vendor/chardet/mbcssm.py | 0 .../pip/_vendor/chardet/sbcharsetprober.py | 0 .../pip/_vendor/chardet/sbcsgroupprober.py | 0 .../pip/_vendor/chardet/sjisprober.py | 0 .../pip/_vendor/chardet/universaldetector.py | 0 .../pip/_vendor/chardet/utf8prober.py | 0 .../pip/_vendor/chardet/version.py | 0 .../pip/_vendor/colorama/__init__.py | 0 .../pip/_vendor/colorama/ansi.py | 0 .../pip/_vendor/colorama/ansitowin32.py | 0 .../pip/_vendor/colorama/initialise.py | 0 .../pip/_vendor/colorama/win32.py | 0 .../pip/_vendor/colorama/winterm.py | 0 .../pip/_vendor/distlib/__init__.py | 0 .../pip/_vendor/distlib/_backport/__init__.py | 0 .../pip/_vendor/distlib/_backport/misc.py | 0 .../pip/_vendor/distlib/_backport/shutil.py | 0 .../_vendor/distlib/_backport/sysconfig.cfg | 0 .../_vendor/distlib/_backport/sysconfig.py | 0 .../pip/_vendor/distlib/_backport/tarfile.py | 0 .../pip/_vendor/distlib/compat.py | 0 .../pip/_vendor/distlib/database.py | 0 .../pip/_vendor/distlib/index.py | 0 .../pip/_vendor/distlib/locators.py | 0 .../pip/_vendor/distlib/manifest.py | 0 .../pip/_vendor/distlib/markers.py | 0 .../pip/_vendor/distlib/metadata.py | 0 .../pip/_vendor/distlib/resources.py | 0 .../pip/_vendor/distlib/scripts.py | 0 .../pip/_vendor/distlib/t32.exe | Bin .../pip/_vendor/distlib/t64.exe | Bin .../pip/_vendor/distlib/util.py | 0 .../pip/_vendor/distlib/version.py | 0 .../pip/_vendor/distlib/w32.exe | Bin .../pip/_vendor/distlib/w64.exe | Bin .../pip/_vendor/distlib/wheel.py | 0 .../pip/_vendor/distro.py | 0 .../pip/_vendor/html5lib/__init__.py | 0 .../pip/_vendor/html5lib/_ihatexml.py | 0 .../pip/_vendor/html5lib/_inputstream.py | 0 .../pip/_vendor/html5lib/_tokenizer.py | 0 .../pip/_vendor/html5lib/_trie/__init__.py | 0 .../pip/_vendor/html5lib/_trie/_base.py | 0 .../pip/_vendor/html5lib/_trie/datrie.py | 0 .../pip/_vendor/html5lib/_trie/py.py | 0 .../pip/_vendor/html5lib/_utils.py | 0 .../pip/_vendor/html5lib/constants.py | 0 .../pip/_vendor/html5lib/filters/__init__.py | 0 .../filters/alphabeticalattributes.py | 0 .../pip/_vendor/html5lib/filters/base.py | 0 .../html5lib/filters/inject_meta_charset.py | 0 .../pip/_vendor/html5lib/filters/lint.py | 0 .../_vendor/html5lib/filters/optionaltags.py | 0 .../pip/_vendor/html5lib/filters/sanitizer.py | 0 .../_vendor/html5lib/filters/whitespace.py | 0 .../pip/_vendor/html5lib/html5parser.py | 0 .../pip/_vendor/html5lib/serializer.py | 0 .../_vendor/html5lib/treeadapters/__init__.py | 0 .../_vendor/html5lib/treeadapters/genshi.py | 0 .../pip/_vendor/html5lib/treeadapters/sax.py | 0 .../_vendor/html5lib/treebuilders/__init__.py | 0 .../pip/_vendor/html5lib/treebuilders/base.py | 0 .../pip/_vendor/html5lib/treebuilders/dom.py | 0 .../_vendor/html5lib/treebuilders/etree.py | 0 .../html5lib/treebuilders/etree_lxml.py | 0 .../_vendor/html5lib/treewalkers/__init__.py | 0 .../pip/_vendor/html5lib/treewalkers/base.py | 0 .../pip/_vendor/html5lib/treewalkers/dom.py | 0 .../pip/_vendor/html5lib/treewalkers/etree.py | 0 .../html5lib/treewalkers/etree_lxml.py | 0 .../_vendor/html5lib/treewalkers/genshi.py | 0 .../pip/_vendor/idna/__init__.py | 0 .../pip/_vendor/idna/codec.py | 0 .../pip/_vendor/idna/compat.py | 0 .../pip/_vendor/idna/core.py | 0 .../pip/_vendor/idna/idnadata.py | 0 .../pip/_vendor/idna/intranges.py | 0 .../pip/_vendor/idna/package_data.py | 0 .../pip/_vendor/idna/uts46data.py | 0 .../pip/_vendor/ipaddress.py | 0 .../pip/_vendor/lockfile/__init__.py | 0 .../pip/_vendor/lockfile/linklockfile.py | 0 .../pip/_vendor/lockfile/mkdirlockfile.py | 0 .../pip/_vendor/lockfile/pidlockfile.py | 0 .../pip/_vendor/lockfile/sqlitelockfile.py | 0 .../pip/_vendor/lockfile/symlinklockfile.py | 0 .../pip/_vendor/msgpack/__init__.py | 0 .../pip/_vendor/msgpack/_version.py | 0 .../pip/_vendor/msgpack/exceptions.py | 0 .../pip/_vendor/msgpack/fallback.py | 0 .../pip/_vendor/packaging/__about__.py | 0 .../pip/_vendor/packaging/__init__.py | 0 .../pip/_vendor/packaging/_compat.py | 0 .../pip/_vendor/packaging/_structures.py | 0 .../pip/_vendor/packaging/markers.py | 0 .../pip/_vendor/packaging/requirements.py | 0 .../pip/_vendor/packaging/specifiers.py | 0 .../pip/_vendor/packaging/utils.py | 0 .../pip/_vendor/packaging/version.py | 0 .../pip/_vendor/pep517/__init__.py | 0 .../pip/_vendor/pep517/_in_process.py | 0 .../pip/_vendor/pep517/build.py | 0 .../pip/_vendor/pep517/check.py | 0 .../pip/_vendor/pep517/colorlog.py | 0 .../pip/_vendor/pep517/compat.py | 0 .../pip/_vendor/pep517/envbuild.py | 0 .../pip/_vendor/pep517/wrappers.py | 0 .../pip/_vendor/pkg_resources/__init__.py | 0 .../pip/_vendor/pkg_resources/py31compat.py | 0 .../pip/_vendor/progress/__init__.py | 0 .../pip/_vendor/progress/bar.py | 0 .../pip/_vendor/progress/counter.py | 0 .../pip/_vendor/progress/helpers.py | 0 .../pip/_vendor/progress/spinner.py | 0 .../pip/_vendor/pyparsing.py | 0 .../pip/_vendor/pytoml/__init__.py | 0 .../pip/_vendor/pytoml/core.py | 0 .../pip/_vendor/pytoml/parser.py | 0 .../pip/_vendor/pytoml/test.py | 0 .../pip/_vendor/pytoml/utils.py | 0 .../pip/_vendor/pytoml/writer.py | 0 .../pip/_vendor/requests/__init__.py | 0 .../pip/_vendor/requests/__version__.py | 0 .../pip/_vendor/requests/_internal_utils.py | 0 .../pip/_vendor/requests/adapters.py | 0 .../pip/_vendor/requests/api.py | 0 .../pip/_vendor/requests/auth.py | 0 .../pip/_vendor/requests/certs.py | 0 .../pip/_vendor/requests/compat.py | 0 .../pip/_vendor/requests/cookies.py | 0 .../pip/_vendor/requests/exceptions.py | 0 .../pip/_vendor/requests/help.py | 0 .../pip/_vendor/requests/hooks.py | 0 .../pip/_vendor/requests/models.py | 0 .../pip/_vendor/requests/packages.py | 0 .../pip/_vendor/requests/sessions.py | 0 .../pip/_vendor/requests/status_codes.py | 0 .../pip/_vendor/requests/structures.py | 0 .../pip/_vendor/requests/utils.py | 0 .../pip/_vendor/retrying.py | 0 .../pip-19.0.3-py3.7.egg/pip/_vendor/six.py | 0 .../pip/_vendor/urllib3/__init__.py | 0 .../pip/_vendor/urllib3/_collections.py | 0 .../pip/_vendor/urllib3/connection.py | 0 .../pip/_vendor/urllib3/connectionpool.py | 0 .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../urllib3/contrib/_appengine_environ.py | 0 .../contrib/_securetransport/__init__.py | 0 .../contrib/_securetransport/bindings.py | 0 .../contrib/_securetransport/low_level.py | 0 .../pip/_vendor/urllib3/contrib/appengine.py | 0 .../pip/_vendor/urllib3/contrib/ntlmpool.py | 0 .../pip/_vendor/urllib3/contrib/pyopenssl.py | 0 .../urllib3/contrib/securetransport.py | 0 .../pip/_vendor/urllib3/contrib/socks.py | 0 .../pip/_vendor/urllib3/exceptions.py | 0 .../pip/_vendor/urllib3/fields.py | 0 .../pip/_vendor/urllib3/filepost.py | 0 .../pip/_vendor/urllib3/packages/__init__.py | 0 .../urllib3/packages/backports/__init__.py | 0 .../urllib3/packages/backports/makefile.py | 0 .../pip/_vendor/urllib3/packages/six.py | 0 .../packages/ssl_match_hostname/__init__.py | 0 .../ssl_match_hostname/_implementation.py | 0 .../pip/_vendor/urllib3/poolmanager.py | 0 .../pip/_vendor/urllib3/request.py | 0 .../pip/_vendor/urllib3/response.py | 0 .../pip/_vendor/urllib3/util/__init__.py | 0 .../pip/_vendor/urllib3/util/connection.py | 0 .../pip/_vendor/urllib3/util/queue.py | 0 .../pip/_vendor/urllib3/util/request.py | 0 .../pip/_vendor/urllib3/util/response.py | 0 .../pip/_vendor/urllib3/util/retry.py | 0 .../pip/_vendor/urllib3/util/ssl_.py | 0 .../pip/_vendor/urllib3/util/timeout.py | 0 .../pip/_vendor/urllib3/util/url.py | 0 .../pip/_vendor/urllib3/util/wait.py | 0 .../pip/_vendor/webencodings/__init__.py | 0 .../pip/_vendor/webencodings/labels.py | 0 .../pip/_vendor/webencodings/mklabels.py | 0 .../pip/_vendor/webencodings/tests.py | 0 .../_vendor/webencodings/x_user_defined.py | 0 .../site-packages/setuptools-40.8.0-py3.7.egg | Bin 571890 -> 571891 bytes .../python3.7/site-packages/setuptools.pth | 0 MinimumEdit/env/pyvenv.cfg | 3 + MinimumEdit/results.txt | 13 + MinimumEdit/words.txt | 4282 ++++ .../__pycache__/divideConcur.cpython-37.pyc | Bin 702 -> 702 bytes PolyMultiplication/main.py | 20 +- .../results.txt | 0 .../.idea/contentModel.xml | 20 + .../.idea/encodings.xml | 4 + .../.idea/indexLayout.xml | 8 + .../.idea.SimpleSpellCheck/.idea/modules.xml | 8 + .../.idea/projectSettingsUpdater.xml | 6 + .../.idea.SimpleSpellCheck/.idea/vcs.xml | 6 + .../.idea.SimpleSpellCheck/riderModule.iml | 7 + SimpleSpellCheck/SimpleSpellCheck.sln | 16 + SimpleSpellCheck/SimpleSpellCheck/Program.cs | 25 + .../Properties/AssemblyInfo.cs | 35 + .../SimpleSpellCheck/SimpleSpellCheck.csproj | 54 + ...leSpellCheck.csprojAssemblyReference.cache | Bin 0 -> 9752 bytes Submissions/HW1.zip | Bin 0 -> 134778 bytes 742 files changed, 117851 insertions(+), 106552 deletions(-) create mode 100644 DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/.gitignore create mode 100644 DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/contentModel.xml create mode 100644 DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/encodings.xml create mode 100644 DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/indexLayout.xml create mode 100644 DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/modules.xml create mode 100644 DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/projectSettingsUpdater.xml create mode 100644 DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/vcs.xml create mode 100644 DNA_Alignment/.idea/.idea.DNA_Alignment/riderModule.iml create mode 100644 DNA_Alignment/DNA_Alignment.sln create mode 100644 DNA_Alignment/DNA_Alignment/Archive.zip create mode 100644 DNA_Alignment/DNA_Alignment/DNA_Alignment.csproj create mode 100644 DNA_Alignment/DNA_Alignment/GreatApes.txt create mode 100644 DNA_Alignment/DNA_Alignment/GreatApes.txt_vs_protypicalHuman.txt.txt create mode 100644 DNA_Alignment/DNA_Alignment/Program.cs create mode 100644 DNA_Alignment/DNA_Alignment/Properties/AssemblyInfo.cs create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/DNA_Alignment.exe create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/DNA_Alignment.pdb create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/GreatApes.txt_vs_protypicalHuman.txt.txt create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.0.json create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.1.json create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.2.json create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.3.json create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.4.json create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.5.json create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.6.json create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.7.json create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.8.json create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt_vs_GreatApes.txt.txt create mode 100644 DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt_vs_protypicalHuman.txt.txt create mode 100644 DNA_Alignment/DNA_Alignment/neanderthal.txt create mode 100644 DNA_Alignment/DNA_Alignment/neanderthal.txt_vs_GreatApes.txt.txt create mode 100644 DNA_Alignment/DNA_Alignment/neanderthal.txt_vs_protypicalHuman.txt.txt create mode 100644 DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.csproj.FileListAbsolute.txt create mode 100644 DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.csprojAssemblyReference.cache create mode 100644 DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.exe create mode 100644 DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.pdb create mode 100644 DNA_Alignment/DNA_Alignment/protypicalHuman.txt delete mode 100644 HW1/.idea/workspace.xml delete mode 100644 HW1/StoneGame.py delete mode 100755 HW1/env/bin/pip3 delete mode 100755 HW1/env/bin/python3.7 delete mode 100644 HW1/env/pyvenv.cfg delete mode 100644 HW1/venv/bin/activate delete mode 100644 HW1/venv/bin/activate.csh delete mode 100644 HW1/venv/bin/activate.fish delete mode 100755 HW1/venv/bin/easy_install delete mode 100755 HW1/venv/bin/easy_install-3.6 delete mode 100755 HW1/venv/bin/pip delete mode 100755 HW1/venv/bin/pip3.6 delete mode 100755 HW1/venv/bin/python delete mode 100755 HW1/venv/bin/python3 delete mode 100755 HW1/venv/bin/python3.6 delete mode 100644 HW1/venv/lib/python3.6/site-packages/easy-install.pth delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/PKG-INFO delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/SOURCES.txt delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/dependency_links.txt delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/entry_points.txt delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/not-zip-safe delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/top_level.txt delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__main__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/build_env.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cache.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/autocompletion.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/base_command.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/cmdoptions.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/main_parser.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/parser.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/status_codes.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/check.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/completion.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/configuration.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/download.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/freeze.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/hash.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/help.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/install.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/list.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/search.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/show.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/uninstall.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/wheel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/configuration.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/download.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/exceptions.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/index.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/locations.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/candidate.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/format_control.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/index.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/link.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/check.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/freeze.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/prepare.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pep425tags.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pyproject.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/constructors.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_file.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_install.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_set.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_tracker.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_uninstall.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/resolve.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/appdirs.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/compat.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/deprecation.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/encoding.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/filesystem.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/glibc.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/hashes.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/logging.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/misc.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/models.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/outdated.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/packaging.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/setuptools_build.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/temp_dir.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/typing.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/ui.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/bazaar.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/git.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/mercurial.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/subversion.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/wheel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/appdirs.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/_cmd.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/adapter.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/cache.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/file_cache.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/redis_cache.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/compat.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/controller.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/filewrapper.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/heuristics.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/serialize.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/wrapper.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__main__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/cacert.pem delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/core.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5freq.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5prober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/chardistribution.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetgroupprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/chardetect.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/codingstatemachine.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/compat.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cp949prober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/enums.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escsm.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/eucjpprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrfreq.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwfreq.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312freq.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312prober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/hebrewprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jisfreq.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jpcntx.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langbulgarianmodel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langcyrillicmodel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langgreekmodel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhebrewmodel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhungarianmodel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langthaimodel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langturkishmodel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/latin1prober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcharsetprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcsgroupprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcssm.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcharsetprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcsgroupprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sjisprober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/universaldetector.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/utf8prober.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/version.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansi.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansitowin32.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/initialise.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/win32.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/winterm.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/misc.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/shutil.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.cfg delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/tarfile.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/compat.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/database.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/index.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/locators.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/manifest.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/markers.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/metadata.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/resources.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/scripts.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t32.exe delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t64.exe delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/util.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/version.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w32.exe delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w64.exe delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/wheel.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distro.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_ihatexml.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_inputstream.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_tokenizer.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/_base.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/datrie.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/py.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_utils.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/constants.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/base.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/lint.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/optionaltags.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/sanitizer.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/whitespace.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/html5parser.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/serializer.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/genshi.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/sax.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/base.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/dom.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/base.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/dom.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/genshi.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/codec.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/compat.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/core.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/idnadata.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/intranges.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/package_data.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/uts46data.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/ipaddress.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/linklockfile.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/mkdirlockfile.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/pidlockfile.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/sqlitelockfile.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/symlinklockfile.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/_version.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/exceptions.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/fallback.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__about__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_compat.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_structures.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/markers.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/requirements.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/specifiers.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/utils.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/version.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/_in_process.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/build.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/check.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/colorlog.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/compat.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/envbuild.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/wrappers.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/py31compat.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/bar.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/counter.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/helpers.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/spinner.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pyparsing.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/core.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/parser.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/test.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/utils.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/writer.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__version__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/_internal_utils.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/adapters.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/api.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/auth.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/certs.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/compat.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/cookies.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/exceptions.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/help.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/hooks.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/models.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/packages.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/sessions.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/status_codes.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/structures.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/utils.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/retrying.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/six.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/_collections.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connection.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connectionpool.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/appengine.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/ntlmpool.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/pyopenssl.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/securetransport.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/socks.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/exceptions.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/fields.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/filepost.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/makefile.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/six.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/poolmanager.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/request.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/response.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/connection.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/queue.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/request.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/response.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/retry.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/ssl_.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/timeout.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/url.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/wait.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/__init__.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/labels.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/mklabels.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/tests.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/x_user_defined.py delete mode 100644 HW1/venv/lib/python3.6/site-packages/setuptools-40.8.0-py3.6.egg delete mode 100644 HW1/venv/lib/python3.6/site-packages/setuptools.pth delete mode 100644 HW1/venv/pyvenv.cfg create mode 100644 HW1_Stones/TimingGraph.png create mode 100644 HW2_KnapSack/.idea/.gitignore create mode 100644 HW2_KnapSack/.idea/HW2_KnapSack.iml rename {HW1 => HW2_KnapSack}/.idea/inspectionProfiles/profiles_settings.xml (100%) rename {HW1 => HW2_KnapSack}/.idea/misc.xml (60%) create mode 100644 HW2_KnapSack/.idea/modules.xml create mode 100644 HW2_KnapSack/.idea/vcs.xml create mode 100644 HW2_KnapSack/Archive 2.zip create mode 100644 HW2_KnapSack/Archive.zip create mode 100644 HW2_KnapSack/Screen Shot 2020-02-02 at 11.49.03 PM.png create mode 100644 HW2_KnapSack/simpleKnapsack.py create mode 100644 HW2_KnapSack/test.png create mode 100644 MinimumEdit/.idea/.gitignore rename HW1/.idea/HW1.iml => MinimumEdit/.idea/MinimumEdit.iml (88%) create mode 100644 MinimumEdit/.idea/inspectionProfiles/profiles_settings.xml create mode 100644 MinimumEdit/.idea/misc.xml rename {HW1 => MinimumEdit}/.idea/modules.xml (57%) create mode 100644 MinimumEdit/.idea/vcs.xml create mode 100644 MinimumEdit/Archive.zip rename {HW1 => MinimumEdit}/env/bin/activate (98%) rename {HW1 => MinimumEdit}/env/bin/activate.csh (97%) rename {HW1 => MinimumEdit}/env/bin/activate.fish (98%) rename {HW1 => MinimumEdit}/env/bin/easy_install (81%) rename {HW1 => MinimumEdit}/env/bin/easy_install-3.7 (81%) rename {HW1 => MinimumEdit}/env/bin/pip (79%) rename {HW1/venv => MinimumEdit/env}/bin/pip3 (79%) rename {HW1 => MinimumEdit}/env/bin/pip3.7 (80%) rename {HW1 => MinimumEdit}/env/bin/python (100%) rename {HW1 => MinimumEdit}/env/bin/python3 (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/easy-install.pth (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/PKG-INFO (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/SOURCES.txt (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/dependency_links.txt (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/entry_points.txt (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/not-zip-safe (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/top_level.txt (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__main__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/build_env.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cache.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/autocompletion.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/base_command.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/cmdoptions.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/main_parser.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/parser.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/status_codes.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/check.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/completion.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/configuration.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/download.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/freeze.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/hash.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/help.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/install.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/list.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/search.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/show.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/uninstall.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/wheel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/configuration.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/download.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/exceptions.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/index.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/locations.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/candidate.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/format_control.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/index.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/link.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/check.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/freeze.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/prepare.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pep425tags.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pyproject.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/constructors.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_file.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_install.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_set.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_tracker.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_uninstall.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/resolve.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/appdirs.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/compat.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/deprecation.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/encoding.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/filesystem.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/glibc.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/hashes.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/logging.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/misc.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/models.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/outdated.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/packaging.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/setuptools_build.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/temp_dir.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/typing.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/ui.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/bazaar.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/git.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/mercurial.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/subversion.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/wheel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/appdirs.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/_cmd.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/adapter.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/cache.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/file_cache.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/redis_cache.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/compat.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/controller.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/filewrapper.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/heuristics.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/serialize.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/wrapper.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__main__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/cacert.pem (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/core.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5freq.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5prober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/chardistribution.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetgroupprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/chardetect.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/codingstatemachine.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/compat.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cp949prober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/enums.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escsm.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/eucjpprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrfreq.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwfreq.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312freq.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312prober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/hebrewprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jisfreq.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jpcntx.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langbulgarianmodel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langcyrillicmodel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langgreekmodel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhebrewmodel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhungarianmodel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langthaimodel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langturkishmodel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/latin1prober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcharsetprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcsgroupprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcssm.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcharsetprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcsgroupprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sjisprober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/universaldetector.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/utf8prober.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/version.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansi.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansitowin32.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/initialise.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/win32.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/winterm.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/misc.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/shutil.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.cfg (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/tarfile.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/compat.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/database.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/index.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/locators.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/manifest.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/markers.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/metadata.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/resources.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/scripts.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t32.exe (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t64.exe (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/util.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/version.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w32.exe (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w64.exe (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/wheel.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distro.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_ihatexml.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_inputstream.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_tokenizer.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/py.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_utils.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/constants.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/base.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/lint.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/optionaltags.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/sanitizer.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/whitespace.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/html5parser.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/serializer.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/genshi.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/sax.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/base.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/dom.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/base.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/dom.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/genshi.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/codec.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/compat.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/core.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/idnadata.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/intranges.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/package_data.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/uts46data.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/ipaddress.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/linklockfile.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/mkdirlockfile.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/pidlockfile.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/sqlitelockfile.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/symlinklockfile.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/_version.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/exceptions.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/fallback.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__about__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_compat.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_structures.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/markers.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/requirements.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/specifiers.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/utils.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/version.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/_in_process.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/build.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/check.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/colorlog.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/compat.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/envbuild.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/wrappers.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/py31compat.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/bar.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/counter.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/helpers.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/spinner.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pyparsing.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/core.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/parser.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/test.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/utils.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/writer.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__version__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/_internal_utils.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/adapters.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/api.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/auth.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/certs.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/compat.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/cookies.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/exceptions.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/help.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/hooks.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/models.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/packages.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/sessions.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/status_codes.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/structures.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/utils.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/retrying.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/six.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/_collections.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connection.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connectionpool.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/appengine.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/ntlmpool.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/pyopenssl.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/securetransport.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/socks.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/exceptions.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/fields.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/filepost.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/makefile.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/six.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/poolmanager.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/request.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/response.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/connection.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/queue.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/request.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/response.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/retry.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/ssl_.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/timeout.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/url.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/wait.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__init__.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/labels.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/mklabels.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/tests.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/x_user_defined.py (100%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/setuptools-40.8.0-py3.7.egg (98%) rename {HW1 => MinimumEdit}/env/lib/python3.7/site-packages/setuptools.pth (100%) create mode 100644 MinimumEdit/env/pyvenv.cfg create mode 100644 MinimumEdit/results.txt rename {HW1_Stones => PolyMultiplication}/results.txt (100%) create mode 100644 SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/contentModel.xml create mode 100644 SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/encodings.xml create mode 100644 SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/indexLayout.xml create mode 100644 SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/modules.xml create mode 100644 SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/projectSettingsUpdater.xml create mode 100644 SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/vcs.xml create mode 100644 SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/riderModule.iml create mode 100644 SimpleSpellCheck/SimpleSpellCheck.sln create mode 100644 SimpleSpellCheck/SimpleSpellCheck/Program.cs create mode 100644 SimpleSpellCheck/SimpleSpellCheck/Properties/AssemblyInfo.cs create mode 100644 SimpleSpellCheck/SimpleSpellCheck/SimpleSpellCheck.csproj create mode 100644 SimpleSpellCheck/SimpleSpellCheck/obj/Debug/SimpleSpellCheck.csprojAssemblyReference.cache create mode 100644 Submissions/HW1.zip diff --git a/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/.gitignore b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/.gitignore new file mode 100644 index 0000000..5c98b42 --- /dev/null +++ b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/contentModel.xml b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/contentModel.xml new file mode 100644 index 0000000..8af5e8c --- /dev/null +++ b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/contentModel.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/encodings.xml b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/indexLayout.xml b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/indexLayout.xml new file mode 100644 index 0000000..27ba142 --- /dev/null +++ b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/modules.xml b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/modules.xml new file mode 100644 index 0000000..c2aaca7 --- /dev/null +++ b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/projectSettingsUpdater.xml b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/projectSettingsUpdater.xml new file mode 100644 index 0000000..7515e76 --- /dev/null +++ b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/projectSettingsUpdater.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/vcs.xml b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/DNA_Alignment/.idea/.idea.DNA_Alignment/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DNA_Alignment/.idea/.idea.DNA_Alignment/riderModule.iml b/DNA_Alignment/.idea/.idea.DNA_Alignment/riderModule.iml new file mode 100644 index 0000000..1a4e0d9 --- /dev/null +++ b/DNA_Alignment/.idea/.idea.DNA_Alignment/riderModule.iml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment.sln b/DNA_Alignment/DNA_Alignment.sln new file mode 100644 index 0000000..282346e --- /dev/null +++ b/DNA_Alignment/DNA_Alignment.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DNA_Alignment", "DNA_Alignment\DNA_Alignment.csproj", "{ED9116C6-3BCE-4B84-89EA-DEE30AE5FBC5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {ED9116C6-3BCE-4B84-89EA-DEE30AE5FBC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ED9116C6-3BCE-4B84-89EA-DEE30AE5FBC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ED9116C6-3BCE-4B84-89EA-DEE30AE5FBC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ED9116C6-3BCE-4B84-89EA-DEE30AE5FBC5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/DNA_Alignment/DNA_Alignment/Archive.zip b/DNA_Alignment/DNA_Alignment/Archive.zip new file mode 100644 index 0000000000000000000000000000000000000000..71254f9e5c022718608605f596fe0e5e8f663e22 GIT binary patch literal 53192 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 BTU!7C literal 0 HcmV?d00001 diff --git a/DNA_Alignment/DNA_Alignment/DNA_Alignment.csproj b/DNA_Alignment/DNA_Alignment/DNA_Alignment.csproj new file mode 100644 index 0000000..8ee4e5d --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/DNA_Alignment.csproj @@ -0,0 +1,55 @@ + + + + + Debug + AnyCPU + {ED9116C6-3BCE-4B84-89EA-DEE30AE5FBC5} + Exe + Properties + DNA_Alignment + DNA_Alignment + v4.7.2 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/GreatApes.txt b/DNA_Alignment/DNA_Alignment/GreatApes.txt new file mode 100644 index 0000000..e780e25 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/GreatApes.txt @@ -0,0 +1,273 @@ +gtttatgtag cttacctccc caaagcaata cactgaaaat gtttcgacgg gctcacatca +ccccataaac aaataggttt ggtcctagcc tttctattaa ctcttagtag gattacacat +gcaagcatcc ccgccccagt gaatcaccct ctaaatcacc acgatcaaaa ggaacaagca +tcaagtacgc agaaatgcag ctcaaaacgc ttagcctagc cacaccccca cgggggacag +cagtgattaa cctttagcaa taaacgaaag tttaactaag ccatactaac cccagggttg +gtcaatttcg tgccagccac cgcggtcaca cgattaaccc aagccaatag aaatcggcgt +aaagagtgtt ttagatcaat ccccaataaa gctaaaattc acctgagttg taaaaaactc +cagctgatat aaaataaact acgaaagtgg ctttaatata tctgaacaca caatagctag +gacccaaact gggattagat accccactat gcctagccct aaacttcaac agttaaatta +acaagactgc tcgccagaac actacgagcc acagcttaaa actcaaagga cctggcggtg +cttcatatcc ctctagagga gcctgttctg taatcgataa accccgatca acctcaccac +ctcttgctca gcctatatac cgccatcttc agcaaaccct gatgaaggcc acaaagtaag +cacaagtacc cacgtaaaga cgttaggtca aggtgtagcc catgaggtgg caagaaatgg +gctacatttt ctacttcaga aaactacgat aacccttatg aaacctaagg gtagaaggtg +gatttagcag taaactaaga gtagagtgct tagttgaaca gggccctgaa gcgcgtacac +accgcccgtc accctcctca agtatacttc aaaggacatt taactaaaac ccctacgcat +ctatatagag gagataagtc gtaacatggt aagtgtactg gaaagtgcac ttggacgaac +cagagtgtag cttaacacaa agcacccaac ttacacttag gagatttcaa ctcaacttga +ccgctctgag caaaacctag ccccaaaccc accccacatt actaccaaac aactttaatc +aaaccattta cccaaataaa gtataggcga tagaaattgt aaatcggcgc aatagatata +gtaccgcaag ggaaagatga aaaaatataa ccaagcacga cacagcaagg actaacccct +gtaccttctg cataatgaat taactagaaa taactttgca aagagaaccg aagctaagac +ccccgaaacc agacgagcta cctaagaaca gctaaaagag cacacccgtc tatgtagcaa +aatagtggga agattcctag gtagaggcga caaacctacc gagcctggtg atagctggtt +gtccaagaca gaatcttagt tcaactttaa atttacccac agaaccctcc aaatcctccc +gtaaatttaa ctgttagtcc aaagaggaac agctctttgg acactaggaa aaaaccttgt +aaagtgagta aaaaatttaa tacccatagt aggcctaaaa gcagccacca attaagaaag +cgttcaagct caacactatc acccaaaata atcccaaaca cacaactgaa ctccctacac +ccaattggac caatctatta ccctatagaa gagctaatgt tagtataagt aacatgaaac +cattctcctc cgcataagcc tacatcagac caaaatatta aactgacaat taacaactca +atatctacaa ctaaccaaca agctattatt acccccactg ttaacccaac acaggcatgc +ccacgaggaa aggttgaaaa aagtaaaagg aactcggcaa attttacccc gcctgtttac +caaaaacatc acctctagca ttaccagtat tagaggcacc gcctgcccag tgacatgcgt +tcaacggccg cggtacccta accgtgcaaa ggtagcataa tcacttgttc cttaaatagg +gactcgtatg aatggctcca cgagggttca gctgtctctt acttttgacc agtgaaattg +acctgcccgt gaagaggcgg acataacata acaagacgag aagaccctat ggagctttaa +ttcattaatg caagcaacac ttaataaacc cacaggtcct aaactaccaa acctgcatta +aaaatttcgg ttggggcgac ctcggagtat aatctaacct ccgaacaaca catgccaaga +cttcaccagt caaagcgagc taccacattt aattgatcca atgacttgac caacggaaca +agttacccta gggataacag cgcaatccta ttctagagtc catatcaaca gtagggttta +cgacctcgat gttggatcag gacatcccga tggtgcagcc gctatcaaag gttcgtttgt +tcaacgatta aagtcctacg tgatctgagt tcagaccgga gtaatccagg tcggtttcta +tctattccgt gtttctccct gtacgaaagg acaagagaaa cgaggcctac ttcacaaagc +gcctcccccc gtaaatgata ctatctcaat ttaatatagc gcccacatct actcaagaat +agggtttgtt aagatggcag agcccggtaa tcgcataaaa cttaaaactt tatagtcaga +ggttcaattc ctcttcttaa caatatatcc atggctaacc ttctactcct cattgtacct +atcctaatcg ccatagcatt cctaatgcta accgaacgaa aaattttagg ctatatacaa +ctacgtaaag gccccaacgt cgtaggcccc tacgggctac tacaaccctt cgctgacgcc +ataaaactct tcaccaaaga gcccctaaaa ccctcaacat caaccatcac cctctacatc +accgccccaa ccttagctct cactattgcc ctactattat gaacccccct ccccataccc +aaccccctag tcaatctcaa tctaggcctc ctattcatcc tagccacctc tagcctagcc +gtttactcca tcctctgatc agggtgggca tcaaactcaa actacgcctt gatcggcgca +ctacgagcag tagcccaaac aatctcatat gaagtcaccc tggccattat cctactatca +acactactga tgaatggttc ctttaacctc tccaccctca tcataacaca agaacacctc +tgactgctcc taccaacatg acccttagct ataatatgat ttatctccac attagcagaa +accaaccgga cccccttcga cctcgctgaa ggagaatctg aactagtctc aggctttaat +atcgaatatg ccgcaggccc cctcgcccta tttttcatag ccgagtacat aaatattatc +ataataaata ctctcaccac tataattttc ctaggaacaa catacaatgc ccactcccct +gaactctaca cagtatgctt catcaccaaa accctgcttc taacctctct attcctatga +attcgaactg catatcctcg atttcgctac gaccaactca tgcacctcct gtgaaaaaac +ttcttgccac tcaccctggc actactcata tgatatattt ccatacctac cacaatctcc +agcattcccc ctcaaaccta agaaatatgt ctgataaaag agttactttg atagagtaaa +taatagaggt ttaaaccccc ttatttctag gactatgaga attgaaccca tccctgagaa +tccaaaattc tccgtgccac ctgtcacacc ccatcctaaa gtaaggtcag ctaaataagc +tatcgggccc ataccccgaa aatgttggtc acatccttcc cgtactaatt aaccccctgg +cccaacccat catctactct accatcttcg caggcactct tattacagca ctaagctccc +actgattttt tgcctgagta ggcctagaaa taaacatact agcttttatc ccagtcctaa +ccaaaaaaat aaatccccgc tccacagaag ccgccatcaa atatttcctc acacaagcaa +ctgcatccat aatcctccta atagccatcc tctccaacaa catactctcc ggacaatgaa +ccacaaccaa tgccactaat caatactcat cattaatgat cgtagtagct atagctataa +aactaggaat agcccccttt cacttctgag tgccagaagt cacccaaggc acccccctaa +tgtctggcct actcctcctc acatgacaaa aactagcccc tatgtcaatc atataccaaa +tttcctcgtc aacaaatgta agccttctcc tcactctttc aatcctatcc atcctagcag +gcagctgagg cggactaaac caaactcaac tacgcaagat tctagcatac tcctcaatca +cccatgtagg atgaataata gcagttctac catataaccc taatataact attcttaatc +tgaccattta tattatcctc actactacca cattcctatt actcaaccta agctccagca +ccacaacctt actactatct cgtacttgaa ataaactgac atgattaaca cctctaatcc +cctccaccct cctctcccta ggaggtctac ccccactaac cggcttccta cccaaatggc +ttattatcga agaattcaca aaaaataacg acctcattac ccccaccatt atggccatca +tcaccctcct caacctctat ttctatctac gcctaattta ctccacctct atcacactac +tacccatatc caacaacgta aagataaaat gacagctcga atatactaaa cccactccct +tcctccctac acttatcaca ctcaccaccc tacttctacc catctccccc ttcatactaa +tagttctata gaaatttagg ttaaacatag accaagagcc ttcaaagccc ttagtaagtt +acaacactta atttctgcaa caactaagga ctgcaaaacc ctactctgca tcaactgaac +gcaaatcagc cactttaatt aagctaagcc cttactagat caatgggact caaacccaca +aacatttagt taacagctaa acaccctagt caactggctt caatctactt ctcccgccgc +aagaaaaaaa ggcgggagaa gccccggcag gtttgaagct gcttcttcga atttgcaatt +caatatgaaa ttcacctcgg agctggtaaa aagaggccca gcctctgtct ttagatttac +agtccaatgc cttactcagc cattttacct ccttttttcc actgatgttc accgaccgct +gattattctc tacaaaccat aaagatattg gaacactata tctactattc ggcgcatgag +ctggagtcct aggcacagcc ctaagtctcc ttattcgagc agaacttggt caaccaggca +accttctagg taacgatcac atctataatg ttatcgtcac agcccatgcg ttcgtaataa +ttttcttcat agtaatgcct atcataatcg gaggctttgg caactggcta gtacccttaa +taattggtgc ccccgacatg gcattccccc gcataaacaa cataagcttc tgactccttc +ccccttcttt cctacttctg ctcgcatccg ctatagtaga agccggcgca gggactggtt +ggacagtcta ccctccctta gcaggaaatt attcccaccc cggagcttct gtagacctaa +ccattttttc cctacaccta gcaggcatct cctctattct aggggccatc aacttcatta +caacaatcat caatataaaa ccccccgcca taacccaata ccaaacaccc cttttcgtct +gatccgtcct aatcacagca gtcttacttc ttctatctct cccagtacta gctgctggaa +ttaccatatt attaacagac cgtaacctca acaccacctt tttcgaccca gccggaggag +gagatcctat cctataccaa cacttattct gattttttgg acaccccgaa gtttacattc +taatcctacc aggcttcgga ataatctccc acattgtaac ttattactcc ggaaaaaaag +aaccattcgg atatataggt atagtctgag ctataatatc aattggtttc ctgggattta +ttgtgtgagc ccaccacata tttacagtag gaatagacgt agatacacga gcctacttca +cctccgctac cataatcatc gctatcccca ccggcgtcaa agtattcagc tgactcgcta +cactccatgg aagtaatacc aaatgatctg ccgcaatgct ctgagcccta gggttcattt +ttctcttcac tgtaggcggc ctaaccggca tcgtactagc aaactcgtca ttagatatcg +tgctgcacga cacatattac gtcgtagctc acttccacta tgtcctatct ataggagctg +tgttcgccat catagggggc tttattcact gatttcccct attctcaggc tacactctag +atcaaaccta cgccaaaatc cactttgcca tcatattcat tggcgttaat ctaaccttct +tcccacaaca ctttcttggc ctatctggaa taccccgaca ttactcggac taccccgatg +catatactac atgaaatatc ctgtcatccg tgggctcatt catttcccta acagcagtaa +tattaataat ttttataatc tgagaagcct tcgcctcaaa acgaaaagtc ctaataatcg +aagaaccctc cacaaatctg gagtgactgt atggatgccc tccaccctat catacatttg +aagagtctgt atatataaag tctaaacaaa aaaggaagga atcgaacccc ccaaagctgg +tttcaagcca accccatgac cttcatgact ttttcaaaaa gatattagaa aaactatttc +ataactttgt caaggttaaa ttacgggtta aaccccgtat atcttaatgg cacatgcagc +gcaagtaggt ctacaagacg ctacttctcc tatcatagaa gaactaatca tctttcatga +tcatgccctc ataatcattt ttctcatctg cttcttagtc ctgtacgccc ttttcctaac +actcacaaca aagctaacta acaacaacat ctcagacgcc caagaaatag agaccatctg +aaccatcctg cccgctatta tcttagtcct gatcgccctc ccatctctac gaatcctcta +tatgacagat gaaatcaatg acccctcctt cactatcaaa tcaatcggtc accaatgata +ctgaacctac gaatacaccg actatggtgg attgatcttt aactcctata tactcccccc +attattccta gaaccaggtg acctacgact ccttgacgtc gacaaccgag tagtccttcc +agttgaagcc cccgtccgta taataattac atcccaagat gtcttacact catgagctgt +tcccacatta ggcctaaaaa cagacgcaat ccccgggcgc ctgaaccaaa ccacattcac +cgccacacga ccaggagtat actacggcca gtgctcagaa atctgtggag ccaaccacag +ttttatgccc attgttctag agctaatccc cctaaaaatc tttgaaatag gacccgtatt +cgccctataa tacccctctc atccctctcc agagctcact gtaaagctaa cctagcgtta +accttttaag ttaaagatta agagtatcgg cacctctttg cagtgaaatg ccccagctaa +ataccaccgt atggcccacc ataattgccc caatactcct cacactattt ctcattaccc +aactaaaagt tttaaacaca aattaccacc tacccccctt accaaaaact ataaaaataa +aaaacttctg taaaccctga gaaccaaaat gaacgaaaat ttattcgctt cattcattgc +ccccacaatc ctaggcttac ccgccgcagt attaattatc ctacttcccc ctctactgat +ccccacctcc aaatatctca tcaacaaccg actgattgcc acccaacagt gactaatcca +actaacctca aaacaaataa taactataca taacgccaag ggacgaacct gatcccttat +gttaatatga ttaattattt ttattgccac aaccaacctc ctcggactct tgccccactc +attcacacca actacccagc tatctataaa cctggccata gccatccccc tgtgagcagg +cgcagtaact acaggctttc gctccaagac taaaaatgcc ctagcccacc tactaccaca +aggcacccct acacccctta tccctatact agtcatcatt gaaaccatca gcctattcat +ccaaccaata gccctagctg tacgcctaac cgctaacatc actgcaggtc acctacttat +gcacctaatc ggaagcgcca cactagcaat atcaactacc aatcttccct caacactcat +tatctttaca gtcctaattt tattaactat actagaaatc gctgtcgccc tcatccaagc +ctacgttttc acacttttag tgagcctcta cctgcacgag aacacataat gatccaccaa +tcacatgcct atcacatagt aaaacccagc ccatgacccc taacaggggc cctctcagcc +ctcctaataa cctcaggctt agccatatga ttccacttcc actctacaac cctactcata +ctaggcctac taaccaacat actaactata taccaatgat gacgtgatgt aatgcgagaa +agcacgtacc aaggccacca tacactaccc gtccaaaaag gcttacgata tggaatgatc +ctatttatta cctcagaagt ctttttcttc gcaggattct tctgagcttt ctaccactcc +agcctagccc ctacccctca actaggagca cactgacccc caacaggcat caccccacta +aaccccctag aagttccact tttaaataca tctgtactgc tcgcatcagg tgtctcaatt +acctgagccc accatagcct aatagaaaat aaccgtaacc aaataattca agcactactt +atcacaattt tactgggcct ctacttcacc ctcctacaag cctcagagta ctttgaagcc +ccctttacca tttccgatgg tatctatggc tcaacatttt ttgtagccac aggctttcac +gggctccacg tcatcattgg gtcaactttc ctcactatct gtcttattcg ccaactaata +tttcacttta catccaaaca ccacttcggc ttcgaagccg ccgcttggta ttggcacttc +gtagatgtag tctgactatt cctatacgtc tccatctact gatgagggtc ctactctttt +agtataatta gtaccgttaa cttccaatta accagttttg gtagtaccca aaaaagagta +ataaacttcg ccctgatctt aataaccaac acccttctag ccctactact aataattatt +acattttgac taccgcaact taacagctac atagaaaaaa ctaaccccta cgaatgtggt +ttcgaccccg tatcccccgc ccgcattcct ttctccataa aatttttcct agtagccatc +actttcttac tatttgacct agaaattgcc ctcctattgc ccctgccatg agccctacaa +acaaccaact taccactaat agtcatgtca tccctcttat taatcattat cctaacccta +agtctagcct acgaatgact gcaaaaagga ctagactgga ccgaattggt acatagttta +aacaaaacga atgatttcga ctcattaaat tatgataatc atatttacca aatgcccctt +atttacataa acattatact agcatttacc atctcacttc taggaatact agtgtaccgt +tcacacctaa tatcctccct actatgccta gaaggaataa tattatcact attcattata +gctactctca taaccctcaa tacccacttc ctcttagcta acattgtacc catcaccata +ctagtctttg ctgcctgtga agcagcagta ggcctagccc tactagtctc aatctctaac +acatatggtc ttgactatgt acaaaaccta aacctgctcc aatgctaaaa ctaatcgccc +caacaattat actactaccg ctaacatgac tctccaaaaa acatataatt tgaatcaaca +caaccaccca cagcctaatc atcagcatca ttcccctact attttttaac caaattaata +acaatctatt tagttactcc ctatcttttt cctccgaccc cctaacgacc cccctcctaa +tattaactac ctgactccta ccccttacaa ttatagcaag ccagcgccac ctatccaacg +aaccactatc acgaaaaaaa ctctatctct ccatattaat ctccctccaa atctccttaa +tcataacatt cacagccaca gaactaatca tattctatat cttcttcgaa gccacactta +tccctaccct agttatcatc acccgatgag gcaaccaacc cgaacgtcta aacgcgggta +catacttcct attctacacc ctagtaggat ccctccccct acttatcgca ttaatccaca +ctcacaacac cttaggctca ctaaatattc tattactcac ccttactgcc caagaactac +ctaactcctg agccaacaac ttaatatgac tggcatacac aatagccttt atagtgaaaa +taccacttta cgggctccac ctatgactcc ctaaggccca tgttgaggcc cccattgctg +gctcaatgat gctcgctgca gtactcttaa aattaggtgg ctatggcata atacgcctca +tactcattct taacccccta acaaaacaca tagcttatcc tttcctcgcc ctatctttat +ggggtataat cataacaagc tccatctcgc tacggcaaac agatttaaaa tcgctcattg +catactcctc aattagccac atagcccttg tagtagcagc tatccttatc caaaccccct +gaagcttcac cggcgcagtt gttcttataa ttgcccacgg acttacatca tcattattat +tctgcctagc aaactcaaac tacgaacgaa cccacagccg catcataatt ctctctcaag +gactccaaac cctactccca ctaatagccc tttgatgact tctggcaagc ctcgccaacc +tcgccttacc ccccaccatt aacctactag gagagctctc cgtactagta accacattct +cctgatcaaa caccaccctt ttacttacag gatctaacat actaattaca gccctgtact +ccctttatat atttaccaca acacaatgag gcccactcac acaccacatc accaacataa +aaccctcatt tacacgagaa aacatcctca tattcatgca cctatccccc atcctcctcc +tatccctcaa ccccgatatt atcaccgggt ttacctcctg taaatatagt ttaaccaaaa +catcagattg tgaatctgat aacagaggct cacaacccct tatttaccga gaaagctcgt +aagagctgct aactcatacc cccgtgctta acaacatggc tttctcaact tttaaaggat +aacagctatc cattggtctt aggacccaaa aattttggtg caactccaaa taaaagtaat +aactatgtac gctaccataa ccaccttagc cctaacttcc ttaattcccc ctatccttac +caccttcatc aatcctaaca aaaaaagctc atacccccat tacgtaaaat ctatcgtcgc +atccaccttt atcatcagcc tcttccccac aacaatattt ctatgcctag accaagaagc +tattatctca agctgacact gagcaacaac ccaaacaatt caactctccc taagctttaa +actagattat ttctccataa tatttatccc tgtagcactg ttcgtcacat gatccatcat +agaattctca ctatgatata taaactcaga ccccaacatc aaccaattct tcaaatacct +gctcatcttt ctaatcacca tactaatcct agtcaccgct aataacctgt ttcaactctt +tatcggctga gaaggtgtgg gaattatatc ttttctactc attggctgat gatacgctcg +aacagacgcc aacacagcag ccgtccaagc aattctatac aaccgtattg gtgacattgg +ttttatccta gccctagcat gatttctcct acactccaac tcatgagacc cacaacaaat +atctctctta aacaccaacc ctaaccttat cccacttcta ggtttcctcc tagcagcagc +aggcaaatca gctcaactag gcctccaccc ctgactcccc tcggccatag aaggccccac +ccccgtctca gccctactcc actcaagcac tatagtcgtg gcaggggtct tcctactcat +ccgcttccgc catttagcag aaaacaactc actagctcaa actcttacac tatgcctagg +cgctattact actctattcg cggcagtctg cgctctcaca caaaatgata tcaaaaaaat +cgtagccttc tccacttcaa gccaattagg gctcatagta gccacaattg gcatcggcca +gccacaccta gcatttctac acatctgcac ccacgctttc tttaaagcca tattatttat +atgctccgga tccattatcc ataacctcaa taatgagcaa gacatccgaa aaataggagg +tctgctcaaa gccatacccc ttacttcaac ctccctagcc attggcagcc tagcactaat +aggaatacct tttctcacag gcttctactc caaagacctc atcatcgaaa ccgcaaacat +atcacacaca aacgcctggg ccctatcaat cattctcatc gccacctctc ttacgagtgc +ctacagcact cgaataatcc ttctcaccct gacaggtcaa cctcgcttcc caacctttgc +caacatcaac gaaaactact ccaccctatt aaatcctatt aaacgcctaa caattggaag +cctgtttgca ggattcttca tcaccaacaa catcctccct acatccgtac cccaaatgac +aatcccactt tacttaaaac ttacagctct aagcatcact ctcctaggac tcctgacagc +cctagacctc aactacctca ccaacaaact caaaataaaa cacccaccac acacatttta +cttctccaac atactcggat tttaccccaa catcacacac cgcacaattc cctatctagg +ccttctcata agtcaaaatc tacccctact cctcctagac ctaatttgac tagaaaaact +actacccaaa acaatctcac agcatcaaat ctcagcctcc atcactacct ctacccaaaa +aggtttgatc aaactgtact tcctctcttt cttcttccct cttcttttaa tccttcttct +aatcacataa cctattaccc cgagcaatct caatcacaat atatacacca acaaataacg +tccaaccagt aaccactacc aatcaacgcc cataatcata caaagccccc gcaccaatag +gatcttcccg aattaaccct gaaccttccc cctcataaat cattcaactc cccacattat +taaaattcac cacaaccacc accccatcat actctttcac ccacaacacc agccccacct +ccattgctaa ccccactaag acactcacca agacctcaac cccagacccc cacgcctcag +gatactcccc aatggccatc gctgtagtat acccaaaaac aaccatcatc ccccctaaat +aaattaaaaa aaccattaaa cccatataac ctcccccaca gtttaaaata atagcacacc +caaccacacc actaacaatc aacactaaac ccccataaat aggagaaggc ttagaggaaa +accccacaaa ccccattact aaacccacac tcaataaaaa taaaacatat gtcatcattc +tcgcacggac cacgaccgcg actaatgata tgaaaaacca tcgttgtact tcaactacaa +gaacatcaat gacccctata cgcaaaacta acccactagc aaaactaatt aaccactcat +tcattgacct ccctaccccg tccaacatct ccacatgatg aaacttcggc tcactccttg +gtgcctgctt aatccttcaa atcaccacag ggctattcct agccatacac tactcacctg +atgcctcaac cgccttctca tcaattgccc acatcacccg agatgtaaac tatggctgaa +ccatccgcta cctccacgct aacggcgcct caatattctt catttgcctc tttctacaca +tcggacgggg cctatactac ggctcatttc tccaccaaga aacctgaaac atcggcatca +tcctcctact cacaaccata gcagcagcct tcataggcta tgtcctccca tgaggccaaa +tatccttctg aggagccaca gtaatcacaa acttgctatc cgccatcccg tacatcggaa +cagacctagt ccaatgagtt tgaggtggtt actcagtaga tagccctacc cttacacgat +tctttacctt ccactttatc ctacccttca tcatcacagc cctaacaacc ctccatctcc +tatttctaca cgaaacagga tcaaacaacc ctctaggcat cccctcccac tctgacaaaa +tcaccttcca cccctactac acaatcaaag acatcctagg cctattcctc tttctcctga +ccttgataac attaacacta ttctcaccag acctcctagg agacccagac aactacacct +tagccaaccc cctaagcacc ccaccccaca tcaaacccga atgatatttc ctatttgcct +acgcaattct ccgatctgtc cccaataaac taggaggcgt cttagctcta ttactatcta +ttctcatcct agcaataatt cctattctcc acatatccaa acaacaaagc ataatattcc +gcccattaag ccaactactc tactgattcc taatcgcaga cctcttcacc ctaacctgaa +tcggaggaca accagtaagc taccccttca tcaccattgg gcaagtagca tccgtactat +acttcacgac aatcctattc ctgataccaa tcacatccct gatcgaaaac aaaatactca +aatgaacctg cccttgtagt acagaccaat acaccagtct tgtaaaccgg aaacgaagac +ctccttccaa gggcatattc agagaaaaag tcctcgactc caccatcagc acccaaagct +aatattctaa tttaaactat tctctgttct ttcatgggga gacaaatttg ggtactacca +gtattagcta acccatcata attatcatgt atgtcgtgca ttactgccag acaccatgaa +taatgtacag taccataaaa cgcccaatca cctgtagcac atcccaacgg aataccaact +aacccatccc tcacaaaaag tacataacac ataagatcat ttatcgcaca tagcacatcc +cagttaaatc accctcgtcc ccacggatgc cccccctcag atgggaatcc cttgaacacc +atcctccgtg aaatcaatat cccgcacaag agtgcactct cctcgctccg ggcccataac +acttgggggt agctaaagtg aactgtatcc ggcatctggt tcctacttca gggtcataac +acctaaagcg cttcacacgt tccccttaaa taagacatca cgatggatca caggtctatc +accctattaa ccactcacgg gagctctcca tgcatttggt atttttcgtc ggggggtgtg +cacgcgatag tgagacgctg gaaccggagc accacatgtc gcagtatctg tctttgattc +ctgccccatg ctaccattta tcgcacctac gttcaatatt acagccgagc gcacagtgtt +catggtgtta attaattcat gcttgttgga cataaaacaa ccaggtggac gtgaacacaa +ccacccttca caccaaaaac acaacaaaaa tccaaccccc ccccccgcac tagaaaacag +ccccaccaaa ctccaaattt catcttttgg cggtatgcac ttttaacagt cacccctcaa +ctaacatagt cagcccacca gtacaacccc cgcccgccct agcaacacac actgctgctg +atcctatacc ccgaattaac caaaccccaa agacacccca caca \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/GreatApes.txt_vs_protypicalHuman.txt.txt b/DNA_Alignment/DNA_Alignment/GreatApes.txt_vs_protypicalHuman.txt.txt new file mode 100644 index 0000000..3f15ae2 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/GreatApes.txt_vs_protypicalHuman.txt.txt @@ -0,0 +1,18669 @@ +Score: 66156 +a = g +c = t +a => - +c => - +a => - +c => - +c => - +c => - +c => - +a => - +c => - +a => - +g => - +a => - +a => - +a => - +c => - +c => - +c => - +c => - +a => - +a => - +a => - +c => - +c => - +a => - +a => - +t => - +t => - +a => - +a = a +g => - +c => - +c => - +c = g +c => - +a => - +t => - +a => - +t => - +c => - +c = c +t => - +a => - +g => - +t => - +c => - +g => - +t = a +c => - +g => - +t => - +c => - +a => - +c => - +a => - +c => - +a => - +c => - +a => - +a => - +c => - +g => - +a => - +t => - +c => - +c => - +c => - +g => - +c => - +c => - +c => - +g => - +c => - +c => - +c => - +c => - +c => - +a => - +a => - +c => - +a => - +t => - +g => - +a => - +c => - +c => - +a => - +c => - +c => - +c => - +g => - +a => - +c = c +t => - +g => - +a => - +t = t +a => - +c => - +a => - +a => - +t => - +c => - +a => - +a => - +c => - +t => - +c => - +c => - +c => - +c => - +a = a +c = c +t => - +g => - +a => - +c => - +a => - +a => - +t => - +t => - +t => - +t => - +c => - +a => - +c => - +g => - +t => - +a => - +t => - +g => - +g => - +c => - +g = a +g => - +t => - +t => - +t => - +t => - +c = g +t => - +a => - +c => - +t => - +t => - +t => - +a => - +a => - +a => - +c = a +c = a +t => - +c = t +a => - +a => - +a => - +c => - +c => - +a => - +c => - +c => - +c => - +c => - +g => - +a => - +c => - +a => - +a => - +a => - +- => a +a => - +g = a +- => a +a = t +t = t +c => - +a => - +c => - +g => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +- => c +c => - +a => - +a = c +c = c +c = c +- => t +t => - +a => - +a => - +a => - +a = t +a = g +c => - +a => - +a => - +c => - +a => - +c => - +a => - +a => - +a => - +a => - +a => - +c => - +c = c +a = a +c = c +a => - +c => - +t => - +t => - +c => - +c => - +c => - +a => - +c => - +c => - +a => - +a = a +- => c +c => - +a => - +- => c +c => - +a => - +a => - +g => - +t => - +g => - +c => - +a = c +g => - +g => - +t => - +g => - +g = g +a => - +c = a +- => t +c = a +- => a +a => - +- => a +- => t +a = c +c = c +a = g +a = a +a = a +a = a +t = t +a = a +c => - +a = c +g => - +g => - +t => - +t = t +- => g +g => - +t => - +t => - +c = g +g = g +t => - +a = a +c = c +t = t +t = t +a = c +a => - +t = a +t = t +a = c +a = c +t => - +t => - +g = t +t = t +g = g +g = g +t => - +a = t +c = c +t => - +t => - +g => - +t => - +g = t +a = a +c = c +a => - +c = a +g = g +- => c +c = c +g = t +- => a +a = t +g = g +c = t +c => - +g => - +a => - +- => c +c = a +- => a +a = g +t => - +- => t +t = g +a => - +t = a +- => a +a => - +- => a +a = t +- => c +- => g +c = a +t => - +- => t +- => g +t = g +- => g +- => g +g => - +c => - +a = g +- => t +t => - +c = t +c = c +a => - +c => - +g = a +c = c +t => - +- => a +a => - +t => - +t = a +t = t +a = a +c => - +- => c +c => - +a = c +t => - +c = c +- => g +- => g +g => - +t => - +a = g +c => - +c => - +- => c +c => - +- => c +- => t +- => c +- => g +c = c +g => - +t = t +c => - +- => c +c => - +t => - +t => - +a = c +g => - +t => - +t => - +t = t +c = c +t => - +g => - +t = t +c = c +t => - +a => - +t => - +g => - +- => a +a = t +c => - +g => - +c = c +- => g +t = t +g = g +t => - +a => - +c = a +- => g +- => a +a => - +c = a +c = c +a = a +c = c +g => - +a => - +g => - +g = g +- => c +c = c +c = c +a = t +a => - +g => - +g = a +t => - +c => - +g => - +c = t +a => - +g = a +- => a +a = c +g => - +t => - +g = t +- => a +a => - +t = a +a = a +g = g +c = t +g = g +c => - +a = c +c = c +g => - +t => - +g => - +t => - +g => - +g => - +g => - +g => - +g => - +g = t +- => c +c => - +t => - +g => - +c = c +t => - +t => - +t => - +t => - +t => - +a => - +t => - +g => - +g => - +t => - +t => - +t = t +- => a +- => c +- => c +- => a +a = c +- => c +c = a +g = g +- => t +t => - +a = t +c => - +- => c +c => - +t => - +- => c +c => - +t => - +c = c +- => t +g => - +a => - +- => g +g => - +- => g +g => - +- => g +g => - +c = g +a => - +c => - +t => - +c => - +a => - +c => - +c => - +a => - +a = a +t => - +- => t +- => a +t = g +- => a +a = c +t = t +c => - +- => c +c => - +- => c +c => - +a => - +- => c +c => - +t => - +a => - +t => - +- => c +c => - +t => - +g => - +g => - +a = c +c = c +a => - +c => - +t => - +a => - +g => - +g => - +t => - +a => - +g => - +c => - +a => - +c => - +t => - +a => - +c => - +a => - +g => - +a => - +- => a +a = g +t = t +a => - +a => - +- => a +- => g +a = g +t => - +- => t +t = a +c = c +c = c +c = c +c = c +t => - +t = t +g => - +c => - +a = g +c = c +a = t +c = c +t = t +t = t +- => c +c = c +g => - +c = c +g = t +a => - +- => a +a => - +- => a +a => - +t => - +c = a +c = c +- => t +- => g +a = a +c = c +a => - +- => a +a = t +t = t +- => a +- => c +a = a +c = c +t => - +g => - +g => - +g = g +a => - +c = a +t => - +- => t +t = a +c = c +a = a +- => t +t = g +c = c +c = c +t = a +t => - +g => - +g => - +- => t +t => - +c = t +t = t +- => a +a = c +c = c +g => - +g = g +c => - +c = a +t = a +a = a +t => - +g => - +- => t +t = a +c => - +a = c +a => - +g = a +t = t +g = g +a => - +a => - +- => a +- => t +a => - +t = a +c = c +g => - +a = a +t => - +g => - +g => - +g => - +g => - +g => - +t => - +t = t +c = g +a = a +c = c +a => - +- => a +a => - +t => - +a => - +c => - +c => - +c => - +g = a +g = t +g = t +c => - +- => c +c => - +t => - +- => c +c => - +g => - +c => - +t => - +c => - +- => c +- => a +- => c +c => - +t => - +- => c +c => - +t => - +c = c +- => a +- => t +a = c +c = c +g => - +t => - +g => - +a => - +g = a +a = a +a = a +c = c +- => a +a => - +c => - +g => - +c = a +c = c +c = c +t => - +a = a +t = t +- => a +- => g +- => g +- => a +- => t +- => c +a => - +- => a +a = c +- => c +c => - +t => - +a = c +a => - +- => a +a = c +g => - +t => - +g = t +c = c +c = c +t => - +c = c +c = c +t => - +a = a +c => - +- => c +c => - +a => - +c = c +- => g +- => a +a => - +- => a +a => - +g => - +t => - +t = a +c => - +- => c +c => - +- => c +- => t +c = c +t => - +a => - +- => a +a => - +g = a +g = c +g = g +- => t +t = c +a => - +g = a +a = a +c => - +t => - +c => - +c => - +c => - +c => - +c => - +c => - +c = c +g => - +t = t +a => - +g => - +g = a +c = c +a => - +c = a +c => - +c => - +c => - +t => - +g => - +c => - +t => - +c => - +c => - +c = c +a = a +c = c +- => t +- => a +t = t +- => c +a => - +a => - +- => a +a => - +t => - +t => - +g => - +- => a +- => c +a = t +c = c +c = c +c = c +t => - +a => - +c = a +a = a +c => - +g => - +a = c +t = t +a => - +c = a +a = a +c => - +g => - +c => - +t => - +a => - +t => - +t => - +t => - +a => - +c => - +t => - +a = c +g = g +a => - +a => - +t => - +a => - +c => - +a = a +c = c +a => - +- => a +- => t +- => g +a => - +t = a +a = a +c => - +a = c +t => - +g = g +a => - +a => - +a => - +- => a +a => - +- => a +- => c +- => a +- => t +a = t +c = c +- => g +- => t +a = a +- => c +c => - +t => - +- => c +c => - +- => c +c => - +- => c +- => t +- => c +c => - +t => - +a = c +- => c +c => - +- => c +c => - +- => c +c = a +- => a +a => - +- => a +a => - +t = a +c = c +- => t +a => - +- => a +- => c +a = a +c => - +- => c +c => - +a = c +t = t +- => a +a => - +- => a +- => c +a = c +g => - +g => - +c = c +- => a +a => - +- => a +a => - +c = a +c = a +c = a +t = t +a = a +c = c +a => - +c = a +- => t +g = g +a = a +t = t +g = g +t => - +c = t +c => - +a => - +- => c +c => - +t => - +a = c +a = a +c => - +- => c +c => - +- => c +c = a +g = g +- => t +- => t +c = c +- => a +a = t +a = a +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +- => g +g => - +a = g +c = c +a = a +t = t +g = g +- => t +t => - +a = t +a = a +t = t +a = a +a = a +g = g +t = t +a = a +c = c +c = c +a = a +- => c +c => - +a = c +g = g +a = a +c = c +c = c +g = g +t = t +c = c +a = a +t = t +t = t +a = a +c = c +g = a +t = t +g = g +c = c +- => t +t => - +g = t +t = t +a = a +t = t +g = g +- => t +- => a +t = t +- => c +- => g +a = c +c = c +t => - +- => a +a => - +t => - +t => - +- => a +a = c +a => - +t = a +a = a +c = c +t = t +a = a +c = c +c = c +c = c +a => - +- => a +a = c +t = t +- => c +c = a +g => - +a = g +t = t +t = t +a = a +t = t +- => g +g = a +- => a +a = c +c = c +c = c +- => a +a = c +t => - +c = c +a = a +t = t +g = g +g = g +g = g +t = t +t = t +t = t +a => - +- => a +a = g +a = a +c => - +a = c +- => g +g = a +a = a +g = g +g = g +g = g +g = g +t = t +a = a +c = c +t = t +t = t +t = t +c = c +t = t +t = t +g = g +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +a = a +a = a +t = t +t = t +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +t = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a => - +c = a +- => t +t = t +a = a +c = c +c = c +a = a +c = c +c = c +t = t +c = c +- => a +a => - +g => - +c = a +- => t +- => t +t => - +c = t +c = c +t = t +g = g +a = a +a = a +a = a +a = a +a = a +g = g +a = a +g = g +a = a +c = c +t => - +t = t +- => a +a => - +t = a +a = a +c = c +g = a +g = g +g = g +a = a +a = a +c = c +c = c +- => t +- => t +t => - +- => t +t => - +c => - +c = t +t = t +c = c +c = c +- => a +a => - +g = a +a = a +a = a +g = g +c = t +a => - +- => a +a = g +a = a +g = g +g = g +c = c +c = c +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a => - +- => a +a => - +c = a +- => t +c = c +- => a +a => - +g => - +- => a +a => - +c = a +- => t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +t = t +c => - +c = c +c = c +- => t +g = g +t = t +c = c +c = c +a = g +a = g +g = g +t = t +a = a +a = a +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +g = g +c = t +t = t +- => a +a => - +g = a +t = t +c = c +c = c +c = c +t => - +a = t +c = c +- => t +- => a +a = t +c = c +t => - +a = a +a = a +c = c +c = c +a = a +t = t +- => a +a => - +g = a +t = t +c = c +c = c +t => - +- => t +t = a +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +- => a +a => - +g = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +t = t +a = a +c = c +g = g +a = a +t = t +g = g +a = a +a = a +c = c +g = a +g = g +g = g +t = t +t = t +a => - +c = a +c = c +- => t +- => a +a = c +c = c +t => - +a => - +c = a +- => t +- => t +t => - +- => t +t => - +c = t +c = c +c = c +c = c +a = a +t = t +c = c +g = g +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a = a +a = a +c = c +a = a +g = g +g = g +a = a +g = g +g = g +c = c +t = t +a = a +a = a +g = g +t = t +c = c +c = c +a = a +a = a +t = t +c => - +c => - +c = c +- => t +- => t +a = a +c = c +t => - +- => t +t = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +g = g +- => c +c = c +t => - +a = g +a = a +t = t +c = c +c = c +t => - +- => t +t = c +a = a +g = g +- => t +t => - +c = t +a = a +- => t +t => - +c = t +t = t +c = c +a => - +t = a +c = c +- => t +a = a +a = a +c = c +c = c +g = g +a = a +a = a +t => - +- => t +t = c +a = a +c = c +c = c +c = c +g = g +c => - +c = c +- => t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +t = t +a => - +c = a +- => t +a = a +c = c +c = c +t = t +- => c +c = c +t => - +t = t +- => a +- => c +a = c +t => - +c = c +c = c +t => - +t = t +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +- => c +c = c +t => - +t = t +- => a +a = c +t => - +c = c +t = t +a = a +t = t +c = c +a = a +t = t +t = t +a = a +t = t +- => c +c = c +t => - +c = c +g => - +a = g +- => t +t => - +- => t +t = c +c = c +t = t +g = g +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a => - +- => a +a => - +c = a +- => t +c = c +c = c +c = c +t = t +g = g +t = c +c = c +t = t +a = a +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +c = c +g = a +c = c +a = a +t = t +c = c +c = c +g = g +t = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +c = c +c = c +a = g +a = a +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +c = c +a = t +c = c +c = c +c = c +c = c +a = a +c = c +g = a +a = a +a = a +- => t +t => - +c = t +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +t => - +- => t +t = c +c = c +c = c +a => - +c => - +- => a +- => t +a = a +- => t +t => - +c = t +a = a +a = a +c = c +a = a +g = g +a = a +c = c +c = c +c = c +a = a +g = g +a = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +c = c +a = a +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +t = t +t = t +a = a +c = c +a => - +- => a +a = g +t = t +- => a +a => - +g = a +t = t +t = t +c => - +- => c +c => - +a => - +g => - +t => - +c => - +- => c +- => t +c = c +t = t +c = c +t => - +- => t +t => - +- => t +t = c +c = c +- => t +t = t +c = c +- => t +c = c +- => t +t => - +- => t +t = c +a = a +- => t +t => - +c = t +c = c +g = g +g = g +a = c +t = t +- => c +c = c +c = c +t => - +a = g +c = c +a = a +g = g +a = a +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +a = a +- => t +t => - +c = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +t = t +c = c +c = c +a = a +c = c +t = t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +g = g +t = c +c = c +- => t +t => - +c = t +a = a +c = c +c = c +c = c +t = t +c => - +- => c +c => - +- => c +c = a +c = c +t = t +- => a +a => - +c = a +g = g +g = g +a = a +t = t +- => c +c = c +t => - +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +t = t +a = a +- => g +g => - +- => g +g => - +a = g +c = c +a = a +a = a +a = a +g = g +c = c +a = a +c = c +- => g +a = t +t = t +c = c +t => - +t = t +t = t +a = a +t = t +c = c +c = c +t = t +- => c +c = c +t => - +a = a +c = c +c = c +t = t +c => - +- => c +c = a +c = c +a = a +a = a +c = c +a = g +a = a +t = t +c = c +c = c +c = c +g = g +a => - +c => - +a = a +c = c +- => g +- => t +t = t +a => - +c = a +- => t +t = t +a = a +c = c +t = t +t = t +c = c +c = c +c = c +a = g +- => t +t => - +c = t +c = c +t = t +- => a +a = c +t => - +t = t +t = t +c = c +a => - +c = a +c = c +- => t +t = t +t = t +c = c +c = c +a = a +t = t +t = t +t = t +c = c +t = t +t = t +a = a +g = g +c = c +a = a +c = c +- => a +a = c +t => - +t = t +c = c +c = c +c = c +a => - +t = a +c = c +c = c +c = c +- => t +g = g +- => a +a = c +t => - +a = a +g = g +a = a +t = t +g = g +a = a +c = c +t = t +c = c +a = a +t => - +- => t +t = c +g = g +g = g +t = a +g = g +g = g +a = a +g = g +t => - +- => t +t = c +t = t +g = a +a = a +g = g +t = t +a => - +- => a +a => - +c = a +c = c +- => t +t = t +g = g +a = a +t = t +c = c +c = c +a = a +g = g +a = a +c = c +a => - +- => a +a = g +g = g +g = g +c = t +t = t +a = a +c = c +a = a +t = t +g = a +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +t = t +a = a +t = t +c = c +g = a +t = t +t = t +c = c +a = a +a = a +a = a +c = c +a => - +c = a +- => t +t = t +a = a +a = a +t = t +g = g +a = a +c = c +a = a +c = c +c = c +- => g +g => - +a = g +g = g +g = g +a = a +g = g +t = t +c = c +t = t +t = t +c = a +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +g = g +g = g +a = a +g = g +t = t +a = g +c = c +c = c +c = c +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +c = c +g = a +a = a +c = c +g = g +a = a +t = t +a => - +c = a +- => t +c = c +a => - +a => - +c = a +a = a +c = c +- => g +- => t +t = t +c = c +a = g +t = t +c = c +c = c +t = t +c = c +c = c +t = t +a => - +c = a +- => t +t = t +a = a +c = c +g = g +g = g +c = c +t = t +a = a +c = c +a = a +a = a +a = a +g = g +t = t +c = c +c = c +a = a +a = a +a = a +g => - +a = g +a = a +c = c +- => t +c = c +a => - +c = a +- => t +c = c +t = t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +c = a +g = g +g = g +c = c +a = a +- => t +t => - +c = t +a = a +t = t +a = a +t = t +c = c +c = c +g => - +- => g +g => - +- => g +g = a +g = g +c = c +a = g +g = g +g = g +c = c +t = t +a = a +c = c +a = a +c = c +a = a +t = t +- => c +c = c +t => - +t = t +t = t +c = c +t = t +c = c +c = c +g = g +t => - +- => t +t = c +t = t +a => - +c = a +- => t +t = t +t = t +c = c +t = t +t = t +a = a +t = t +a = a +a = a +c = c +t = t +c = c +c = c +g = g +c = c +g = g +g = g +c = t +- => a +a => - +- => a +a = c +t => - +c = c +g = g +c = c +a => - +c = a +c = c +- => t +t = t +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +a => - +c = a +c = c +- => t +a = a +a = a +g = g +t = t +c = c +g = g +g = g +t = t +a = a +- => t +t => - +c = t +a = a +a = a +a = a +t = t +g = g +t = c +a = a +g = g +a = a +g = g +c => - +c = c +- => t +c = c +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +g = g +t = c +t = t +a = a +a = a +c = c +t = t +a = a +c = c +- => t +t => - +c = t +t = t +t = t +c = c +c = c +g = g +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +g = g +t = c +a = a +g = g +t = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +a = g +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +c = c +g = a +g = g +g = g +a = a +c = c +a = a +c = c +c = c +a = a +c = c +t = t +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +t = t +c = c +c = c +t = t +a => - +- => a +a = g +t => - +- => t +t = c +c = c +g = g +t = t +c = c +c = c +g = g +t = c +g = g +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +g = g +t = t +a = a +c = c +a = g +c = c +c = c +t = t +c = c +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +g = a +c = c +c = c +c = c +c = c +- => a +a = c +t => - +c = c +c = c +c = c +t = t +c = c +c = c +a = a +g = g +t = c +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +a = a +t = t +t = t +a = a +a = a +- => t +t => - +c = t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +- => t +a => - +c => - +g = a +a = a +t = t +- => c +c => - +a = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +- => a +a => - +t = a +c = c +c = c +c = c +c = c +a = a +g = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +a = a +a = a +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +g = g +t = t +t = t +g = g +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +g = g +t = t +- => a +a => - +- => a +a = c +t => - +c = c +a = a +g = g +c = c +g = a +c = c +c = c +- => a +a => - +g = a +c = c +a => - +c = a +- => t +c = c +a = a +g = g +g = g +c = c +a = a +c = c +g = g +c = c +t = t +c = c +- => t +- => t +- => a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +t => - +g => - +t => - +a = a +t = t +a = a +c = c +- => g +a => - +a => - +- => a +a => - +- => a +a => - +t => - +- => a +- => c +a => - +- => a +a => - +- => a +a => - +- => a +- => g +a => - +- => a +a = c +t => - +a = a +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +g => - +- => g +g = a +a = a +g = g +a = a +t = t +t = t +c = c +g = g +g = g +a = a +a = a +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a => - +c = a +- => t +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +a = a +t = t +c = c +a = g +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a => - +- => a +a = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +g = a +a = a +t = t +a = a +a = a +t = t +a => - +- => a +a => - +- => a +- => g +a => - +- => a +a = c +t => - +t = t +t = t +g = a +- => a +a => - +c = a +a = a +c = c +c = c +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +t = t +a = a +t = t +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +t = t +a => - +c = a +- => t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c => - +c = c +c = c +c = c +c = c +c = c +- => t +t = t +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +c = c +a => - +a => - +- => a +- => g +a => - +- => a +a => - +- => a +a => - +c = a +c = c +c = c +- => t +a = a +t = t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +g => - +- => g +g = a +t = t +a => - +- => a +a => - +c = a +c = c +- => t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +g = g +g = g +a = a +c = c +t = t +c = c +c = c +g = g +c = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +g = g +a = t +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +a = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +- => a +a => - +g = a +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +g = g +t = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +a => - +c => - +c = a +- => t +c = c +c = c +- => t +g = a +a = a +c = c +c = c +a = a +c = c +a = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a => - +c = a +- => t +t = t +t = t +a = g +a => - +- => a +a => - +- => a +a => - +t => - +t => - +a = a +t = t +t = t +- => a +a = t +c = c +a = a +c => - +- => c +c = a +- => t +c = c +c = c +- => t +t = t +c = c +a = g +a = a +c = c +t = t +t = t +a => - +c = a +- => t +t = t +a = a +a = a +a = a +t = t +a = a +c = c +- => t +t = t +c => - +c => - +c => - +- => c +c => - +- => c +- => t +c = c +t => - +- => t +t = c +- => c +c => - +- => c +c => - +a = c +a = a +g = g +t = t +c = c +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +a = a +a = a +g = g +c = c +c = c +c = c +t => - +- => t +t = c +c = c +t = t +a = a +g = g +g = g +a = a +t = t +a = a +a = a +c = c +c = c +a = a +c = c +g = g +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +c = c +a = a +a = a +c = c +t = t +a => - +- => a +a => - +c = a +- => t +c = c +a = a +t = t +c = c +a => - +c = a +- => t +c = c +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a => - +- => a +a => - +c = a +c = c +- => t +t = t +g = g +c = t +- => a +a => - +- => a +a = c +t => - +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +t = t +a = a +t = t +a = a +a = a +c = c +a => - +c = a +- => t +t = t +a = a +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +g = g +a = a +g = g +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c => - +a = c +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +t = t +a = a +c = c +a = a +c = c +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +c = c +t = a +t = t +- => c +c = c +c = c +t => - +a = a +a = a +t => - +t => - +t => - +- => t +t = c +- => c +- => t +- => a +c = c +t => - +t = t +c = c +t = a +c = c +c = c +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +t = t +t = t +c = c +t = t +c = c +t = t +c = c +c = c +t = t +t = t +c = c +a = a +- => t +t => - +g = t +t = t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +- => a +a => - +g = a +t => - +t => - +- => t +- => a +t = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +- => a +a => - +t = a +c = c +t = t +c = c +c = c +a => - +t = a +c = c +- => t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +g => - +- => a +a = c +c = c +t = t +c = c +t = t +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +a = a +c = c +g = g +a = a +c = c +a = a +c = c +- => t +t => - +c = t +t = t +a = a +a = a +c = c +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c = a +- => t +c = c +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c = c +a = g +a = a +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +g = g +t => - +t => - +- => t +- => c +t = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +c = c +a = g +t = t +- => c +c = c +t => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +- => g +- => a +g = g +a = c +a => - +t => - +a => - +c = a +- => t +t = t +c = c +t = t +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +t = t +a = a +t = t +- => c +c = c +c = c +c = c +t => - +t = t +a = a +a = a +c = c +a = a +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +c = c +t = t +a = a +c = c +a = g +a => - +c = a +- => t +c = c +c = c +c = c +a = a +t => - +- => t +t = c +t = t +t = t +a = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +t = t +t = t +t = t +a => - +c => - +a = a +c = c +a = a +c = c +- => g +- => t +a => - +c = a +- => t +c = c +a = a +c => - +- => c +c => - +- => c +c => - +a = c +c = c +- => t +a = a +a = a +a = a +a = a +t = t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +- => a +a => - +c = a +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +- => a +a => - +g = a +t = t +c => - +c = c +- => t +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +c = c +- => t +t => - +c = t +t = t +c = c +a = a +c = c +- => t +- => g +t => - +a = t +c = c +g => - +a = g +a = c +t = t +- => c +c = c +t => - +c = c +g = g +a = a +c = c +- => a +a = c +t => - +t = t +c = c +a = a +a = a +a = a +a = a +t => - +- => t +t = c +c = c +a = a +t => - +- => t +t = c +t = t +- => c +c => - +a = c +c = c +c = c +c = c +t = t +a = a +a = a +c = c +- => a +a => - +g = a +t = c +a = a +a = a +a = a +- => c +c => - +- => c +- => t +- => t +c => - +- => c +c => - +- => c +c => - +a = c +t => - +g => - +c = c +c = c +t = t +a = a +c => - +a = c +t = g +c = c +c = c +c = c +t => - +c = c +c = c +- => t +- => t +t = t +a = a +c = c +a = a +a = a +c = c +a => - +- => a +a => - +c = a +- => t +c = c +a => - +c = a +- => t +t = t +a = a +c = c +t => - +t = t +c = c +- => t +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +t = c +t = t +t = t +g = a +t = t +c = c +c = c +g = g +a = a +a = a +g = g +g = g +t = c +t = c +a = g +a = a +c = c +a = g +a = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +t = t +t = t +- => a +- => c +a = c +t => - +c = c +c = c +t => - +a = a +a = a +a = a +t => - +- => t +t = c +a = a +t = t +c = c +c = c +c = c +- => a +a = c +- => c +c => - +- => c +c => - +t => - +- => c +c = a +a = a +t => - +c = t +a = a +a = a +a = a +a = a +g = g +c = c +a => - +- => a +a => - +c = a +- => t +t = t +a = a +c = c +a => - +- => a +a => - +c = a +- => t +c = c +g = a +t => - +- => t +t => - +- => t +t = c +c = c +c = c +a => - +- => a +a = c +c = c +c = c +c = c +t = t +t = t +c = c +g = g +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +g = g +g = g +a = a +c = c +- => a +a => - +g = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +t = t +t = t +c => - +c = c +- => t +t = t +a = a +a = a +t = t +a = a +a = a +g = g +c = c +t = t +c = c +a = a +c = c +g = g +a => - +c = a +- => t +a = a +t = t +c = c +c = c +g = g +t = c +g = g +- => a +a => - +g = a +c = c +a = a +t = g +t = t +- => c +c = c +t => - +c = c +t = t +c = c +c = c +a => - +c = a +- => t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +t => - +t => - +a = t +- => c +c = a +- => t +t = t +a => - +- => a +a = t +c = c +t = t +a = a +t = t +c = c +c = c +c = c +g => - +- => g +g = a +g = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +c = c +a = a +c = c +a => - +c = a +- => t +a = a +c = c +t = t +a = a +t = t +a = a +c = c +a = a +a = a +a = a +c = c +g = g +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +a = a +c = c +t = t +a = a +c = c +t = a +c = c +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +- => t +t => - +- => t +t => - +c = t +g = g +g = g +a = a +c = c +a = a +c = c +t = t +- => c +c = c +t => - +t = t +t = t +t = t +c = c +c = c +a = a +t = t +a = a +a = a +g = g +g = g +a => - +t => - +- => a +- => c +a = g +a = a +- => t +t => - +c = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +g = g +g = g +t = t +t = t +a = a +c = c +c = c +g => - +- => a +a = c +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +t = t +c = c +a => - +t => - +t = a +c = c +- => t +c = c +- => t +c = c +c = c +a = a +t = t +a = a +c = c +c = c +g = a +a = a +a = a +a = a +c = c +t = t +c = c +g = a +t = t +c = c +t = a +g = g +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c => - +c = c +- => t +t = t +a => - +c = a +- => t +a = a +g = g +a = a +a = a +c = c +g = a +a = a +g = g +t = t +- => a +a => - +- => a +a = c +t => - +a => - +- => a +a => - +c = a +- => t +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +c = c +c = c +t = t +- => a +a = c +t => - +t = t +a = a +c = c +c = c +t = t +a = g +g = g +g = g +c = c +c = c +t = t +c = c +g = g +t = t +a = g +t = t +a = a +t = t +t = t +t = t +a = a +t => - +- => t +t = c +a = a +t = t +a = a +c = c +c = c +g = g +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t = c +c = c +g = g +c = c +a = a +c = c +c = c +c = c +a => - +c = a +- => t +g = g +t = t +c = c +t = t +a = a +c = c +a = a +c = c +a = g +t = t +- => c +c = c +t => - +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +c = c +g = a +a = a +c = c +c = c +g = a +g = a +c = c +t = t +a = a +c = c +g = g +g = g +t = c +t = t +a = a +a = a +c = c +a => - +c => - +c = a +- => t +- => t +g = g +a = a +t = t +g = a +a = a +t = t +a = a +c = c +t = t +c = c +g = a +g = g +g = g +a = a +t => - +- => t +t = c +a => - +- => a +a => - +c = a +c = c +- => t +g = g +a = a +a = a +c = c +t = t +t = t +c = c +a = a +c = c +c = c +t = t +c = c +t = t +t = t +c = c +c = c +g = g +a = a +t = t +g = g +c = c +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +t = t +- => a +a = c +t => - +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +a = a +c = c +a => - +c = a +- => t +t = t +- => c +c = c +t => - +c = c +g = g +c = c +g = g +t = t +c = c +t = t +g = g +a = a +c = c +g => - +- => g +g = a +c = c +g = g +c = c +t = t +t = t +a = g +t = t +c = c +t = t +c = c +- => a +a = c +t => - +c = c +- => a +a = c +t => - +t = t +a = a +t = t +c = c +g = g +c = c +g = g +g = g +a = a +- => t +t => - +c = t +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +- => a +a => - +t = a +t = t +c = c +t = t +c = c +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t = t +c => - +g = a +a = a +t = t +c = c +- => a +a = c +c = c +t => - +c = c +a = g +a => - +c = a +- => t +a = a +a = a +a = a +a = a +g = g +a = a +c = c +g = g +a = a +t => - +t => - +- => t +- => c +t = c +a = c +c = c +c = c +g = a +c = c +c = c +t = t +t = t +c = c +g = g +c = c +c = c +t = t +a = a +c = c +t = t +c = c +a = a +- => t +t => - +c = t +c = c +t = t +t = t +c = c +t = t +g = a +g = a +g = g +g = g +a = a +c = c +g => - +- => g +g = a +t = t +g = g +c = t +t = t +g = g +a = a +t = t +a = a +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +g = g +c = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +g = g +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +c = c +g => - +- => g +g = a +c = c +t = t +c = c +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c => - +c = c +- => t +g = g +g = g +a = a +- => t +t => - +c = t +- => a +a => - +- => a +a = c +c = c +t => - +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t => - +t => - +- => t +- => c +t = c +g = g +g = g +a = a +t = t +c = c +t = a +t = t +c = c +- => a +a = c +c = c +c = c +c = c +t => - +- => a +a = c +t => - +t = t +c = c +c = c +- => g +a => - +- => a +a => - +t => - +c = a +c = c +c = c +- => t +a => - +- => a +a => - +c = a +- => t +c = c +a = g +c = c +a => - +- => a +a => - +- => a +a => - +t = a +t = t +c = c +- => t +t = t +- => c +c = c +t => - +c = c +t = g +a = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +c = c +g = g +a = a +- => t +t => - +c = t +c = c +c = c +g = g +a = c +t = t +c = c +c = c +t = t +- => a +a = c +t => - +t = t +t = t +t = t +g = g +g = g +t = c +t = t +a => - +c = a +- => t +a = a +g = g +t = c +g = g +g = g +t = c +t = t +a = a +t = t +g = g +c = c +c = c +a = a +a = a +c = c +a = a +t = t +a = a +t = t +- => c +c = c +t => - +t = t +a = a +a = a +c = c +g = g +a => - +- => a +a => - +c = a +c = c +- => t +t = t +g = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +g = g +c = t +a = a +g = g +a = a +c = c +a = g +a = a +g = g +- => c +c = c +t => - +c = c +g = g +c = c +a = a +t = t +a = a +g = g +t = t +a = a +g = g +- => t +t => - +c = t +g => - +- => g +g = a +t = c +t = t +a = a +c = c +t = t +c = c +- => g +a = t +t = t +c = c +t => - +t => - +- => t +t => - +- => t +t = c +c = c +t = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +g => - +- => g +g => - +- => g +g = a +t = t +- => g +- => c +g => - +t => - +- => g +g => - +- => g +g => - +a = g +a = a +g = g +a = a +g = g +t = t +c = c +g = g +g = g +c = c +t = t +- => a +a = c +t => - +t = t +t = t +c = g +t = t +c = c +- => a +a => - +- => a +a = c +c = c +t => - +t = t +t = t +g = a +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a => - +c = a +- => t +t = t +g = g +a = a +- => t +t => - +c = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +a => - +c = a +- => t +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +t = t +c = c +t = t +a = a +c = c +t = t +c = c +g = a +t = t +c => - +c = c +- => t +a = a +t = t +a = a +a = a +a = a +c = c +t = t +t = t +c = c +t = t +t = t +a = g +a => - +c = a +c = c +- => t +a => - +- => a +a => - +c = a +- => t +t = t +a = a +c = c +- => a +a => - +- => a +a => - +c = a +c = c +c = c +c = c +a = a +g = g +a = a +c = c +t = t +c = c +a = a +a = a +a = a +t = t +a = a +t = t +a = a +t = t +a = a +g = g +t = t +a = g +t = t +c = c +a = a +c = c +t = t +c = c +t = t +t = t +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +a = g +g = g +t = t +a = a +c = c +a => - +c = a +- => t +t = t +g = g +c = c +t = t +t = t +g = g +- => t +t => - +c = t +a = a +c = c +g = g +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +- => a +a = c +t => - +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t => - +- => t +t = c +a = a +g = g +a = a +t = t +c = c +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +g = g +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +- => g +a => - +- => a +- => c +a = c +c = c +t => - +t => - +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +a => - +- => a +a = c +c = c +g = g +a = a +g = g +t = t +c = c +a = a +c = c +a = a +g = g +t = t +c = c +g => - +- => a +a => - +- => a +a = g +c = c +t = t +c = c +t = t +a = a +t = t +t = t +a = a +- => t +t => - +c = t +g = g +a = a +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +- => g +- => t +g = g +t = t +a => - +t = a +c = c +t => - +t = t +t = t +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +t = t +c = c +t = t +c => - +c = c +- => t +g = g +a = a +c = c +t = t +a => - +c = a +- => t +t = t +a = a +t = t +t = t +t = t +c = c +c = c +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = c +t = t +g = g +c = t +t = t +- => a +a = c +t => - +c = c +t = t +a = a +a = a +a = a +a = a +t = t +g = g +c = t +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +t = t +c = c +g = a +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +a = a +t = t +- => c +c = c +c = c +t => - +a => - +- => a +a => - +c = a +- => t +t = t +a = g +c = c +t => - +- => t +t = c +c = c +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +c = c +t = t +- => a +a = c +t => - +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +a = a +t => - +- => t +t = c +c = c +c = c +t = t +t = t +c = c +a => - +- => a +a = g +t = t +c = c +c = c +c = c +g = a +a = a +t => - +- => t +t = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +t = t +a => - +c = a +- => t +c = c +a = a +t = t +c = c +g = a +c = c +- => a +a = c +t => - +g = g +t = t +- => a +a = c +t => - +c = c +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +a = a +c = c +g = g +t = t +g = g +g = g +t = t +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +- => c +c => - +- => c +c => - +- => c +c => - +a = c +g = g +g = g +a = a +t = t +t = t +c = c +t = t +g = g +g = g +t = t +t = t +a = a +c = c +c = c +t = t +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +a = a +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +t = t +t = t +t = t +c = c +g = g +g = g +t = t +a = a +c = c +a = a +a = a +c = c +a => - +- => a +a => - +t = a +t = t +c = c +- => t +g = g +t = t +g = a +c = c +c = c +c = c +c = c +c = c +a = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +t = t +c = c +g = g +t = t +c = c +g = a +a = a +g = g +- => a +a => - +- => a +- => c +a => - +t => - +g = a +c = c +t = t +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a => - +- => a +a = g +c = c +a => - +c = a +- => t +t = t +c = c +g = g +g = g +a = a +g = g +a = a +c = c +- => a +a => - +- => a +a = c +t => - +a = a +g = g +t = t +c = c +t = t +a = a +a = a +g = g +t = t +g = g +t = t +t = t +a = a +g = g +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a = a +t = t +a = a +a = a +a = a +t = t +g = g +- => t +t => - +c = t +c = c +t = t +c = c +c = c +a = t +t = t +t = t +t = t +g = g +g = g +g = g +c = c +c = c +a => - +c = a +- => t +t = t +- => a +a = c +t => - +t = t +- => a +a = c +t => - +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c => - +c = c +- => t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +a = a +c = c +g = a +t = t +a = a +c = c +t = t +t = t +a = g +t = t +a = a +c = c +t = t +- => c +c = c +c = c +t => - +a = a +c = c +a = a +a = a +a = a +a = a +g = g +a = a +g = g +c = c +a = a +c = c +- => a +a = c +t => - +t = t +t = t +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +a => - +- => a +a => - +c = a +c = c +- => a +a => - +c = a +- => t +t = t +a = a +c = c +a = a +c = c +c = c +a = a +- => c +c => - +a = c +c = c +a = a +c = c +t = t +c = c +a => - +c = a +c = c +- => t +c = c +- => g +g => - +- => g +g => - +a = g +g = g +t = t +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +- => a +- => c +a => - +t => - +a = a +t => - +- => t +t = c +t = t +c = c +c = c +c = c +t = t +c = c +a = a +t = t +g = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +- => a +a = c +t => - +t = t +a = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +- => a +a => - +- => a +a = c +t = t +c = c +t => - +a = a +g = g +g = g +a = a +c = c +a = a +t = t +t = t +c = c +a => - +t => - +t = a +t => - +- => t +t = c +c = c +- => t +c = c +- => t +c = c +a => - +c = a +c = c +- => t +a => - +c = a +- => t +a = a +a = a +a = a +c = c +t = t +a = a +g = g +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = g +c = c +a = a +c = c +c = c +a = a +a = a +t = t +g = g +a = a +t = t +c = c +a = g +t = t +g = g +c = t +c = c +t = t +c = c +t = t +c = c +g = a +a = a +g = g +a = a +- => g +g => - +- => g +g => - +a = g +t = t +c = c +a = a +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a => - +c = a +- => t +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +c = c +g = g +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +g => - +- => g +g = a +t = t +c = c +t = t +t = t +c = c +a = a +g = g +t = t +a = a +g = g +- => t +- => t +t => - +- => t +t => - +- => t +t => - +c => - +c = t +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +t = t +c = c +a = a +t = t +c => - +c = c +- => t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +t = t +c = c +t = t +c = c +t = t +- => c +c = c +t => - +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +g = g +c => - +c = c +- => t +g = g +a = a +c = c +a => - +c = a +c = c +- => t +c = c +a => - +- => a +a = c +g = g +c = c +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +t = t +c = c +t = t +t = t +a = a +t => - +- => t +t = c +a = a +t = t +t = t +a = a +c = c +t = t +a = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +c = c +a = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +g = g +t = c +t = t +a = a +a = a +t = t +- => a +a = c +t => - +t = t +c = c +t => - +- => t +t => - +g => - +- => t +- => a +t = c +t = t +g = g +a = a +c = c +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +t = t +t = t +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a => - +t => - +t = a +c = c +- => t +c = c +- => t +t = t +- => a +a = c +t => - +c = c +g = g +a = a +c = c +g = a +a = a +t = t +g = g +a = a +t = t +g = g +t = c +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +c = c +a = a +c = c +c = c +g = g +- => a +a = c +t => - +t = t +a = a +a = a +c = c +- => t +t => - +c = t +c = c +t = t +c = c +a = a +t = t +a = a +c = c +g = g +t = t +t = t +a = a +c = c +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +a = a +t => - +t => - +- => t +- => c +t = c +a = a +g = g +a = a +c = c +a = a +a = a +a = a +c = c +g = a +g = g +c = c +a = a +t = t +- => c +c => - +g => - +c = c +- => g +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +g = g +a = a +a = a +c = c +a = a +a = a +t = t +a => - +c = a +- => t +t = t +a = a +a = a +t = t +- => a +a = c +t => - +g => - +- => g +g => - +- => g +g = a +g = g +t = t +a = a +t => - +t => - +- => t +- => c +t = c +c = c +t = t +a = a +t = t +c => - +c => - +- => c +c = a +- => t +g = g +c = t +t = t +c = c +c = c +t => - +- => t +t => - +- => t +t = c +- => c +c = c +c = c +t => - +a = a +t => - +- => t +t = c +c = c +g = g +a = a +t = t +a = a +c = c +a = a +c = c +a = a +a = a +a = a +a = a +c = c +a => - +- => a +a = g +t = t +c = c +c = c +c = c +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +c = c +t = t +t = t +a = a +c = c +t = t +c = c +- => a +a = c +t => - +a = a +c = c +t = t +c = c +c = c +g = g +c = c +a = a +t = t +a = a +a = a +t = t +a => - +c = a +- => t +g = g +g = g +t = t +a = a +t = t +c = c +g = g +g = g +t = c +g = g +g = g +a = a +t => - +- => t +t = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +t = t +c = c +a = a +t = t +g = g +a = a +c => - +g => - +t => - +c = c +g = g +- => c +c => - +t => - +c = c +g = g +- => t +- => t +t = c +- => a +a = t +- => g +g = a +t = t +a = a +a = a +c = c +t = t +c = g +g = g +g = g +t = t +c = c +g = g +t = c +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g => - +- => g +g = a +a = a +g = g +t = c +t = t +g = g +t = t +a = a +c = c +c = c +c = c +g => - +- => g +g = a +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +a = a +- => t +t => - +c = t +c = c +a = a +c = c +c = c +t = t +c = c +g = a +g = g +g = g +c = c +a = a +t = t +t = t +t = t +c = c +a = t +c = c +c = c +a = a +t = t +a => - +- => a +- => g +a => - +- => a +a => - +- => a +a => - +g = a +t = t +g = g +a = a +t = t +a = a +- => t +t => - +- => t +t => - +- => t +t => - +c = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +- => t +t => - +a = t +c = c +g => - +- => g +g = a +t = t +c = c +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +a = a +a = a +c = c +c = c +g = g +a = a +g = g +t = t +c = c +c = c +t = t +c = c +- => a +a => - +- => a +a => - +t => - +c = a +c = c +- => t +a = a +t = t +c = c +a = a +a = a +g = g +a = a +a = a +c = c +c = c +c = c +g = g +t = t +c = c +a => - +t => - +t = a +c = c +- => t +c = c +- => t +c = c +a = a +c = c +t = t +c = c +a = a +t => - +- => t +t = c +a = a +t = t +c = c +t = t +t = t +- => a +a = c +t => - +a = a +a = a +a = a +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +a = a +t => - +- => t +t = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a => - +c => - +c = a +- => t +- => t +t = t +a = a +a = a +t => - +- => t +t = c +a = a +c = c +g = g +c = c +t = t +- => a +a = c +t => - +t = t +c = c +a = a +t = t +c => - +c = c +c = c +c = c +c = c +- => t +t = t +c = c +c = c +c = c +t = t +a = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t = t +a = a +c = c +- => a +a = c +t => - +g => - +- => g +g => - +- => g +g = a +c = c +g = g +c = c +a => - +- => a +a => - +- => a +a = g +t = t +- => c +c = c +t => - +g = g +c = c +a = a +a = a +g = g +c = a +c = c +c = c +a = g +a = a +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +g = g +t = t +a = a +g = g +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +t = t +a = a +t => - +- => t +t = c +- => g +g => - +a = g +- => t +t => - +c = t +c = c +c = c +- => a +a = c +t => - +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +a = a +c = c +c = c +g = a +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +a = a +t = t +a = a +- => t +t => - +c = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +t = t +a = a +c = c +a = a +a = a +t = t +a => - +c = a +- => t +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +a = a +a = a +a = a +c => - +- => c +c = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t => - +- => t +t = c +a = a +t = t +a => - +c = a +- => t +c = c +t = t +c = c +t = t +- => c +c = c +t => - +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +c = c +t = t +a = a +t = t +c = c +a = a +c = c +c = c +a = a +a = a +- => g +- => t +g => - +c => - +a = g +a = a +c = c +c = c +t = t +a = a +- => t +t => - +c = t +c = c +a = a +c = c +c = c +g = g +c = c +g = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +- => g +g => - +a = g +t = t +- => a +a = c +t => - +t = t +a = a +a = a +c = c +- => a +a = c +t => - +t = t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +t => - +- => t +t = c +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +- => a +a => - +g = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +g = g +c = c +c = c +t = t +c = c +c = c +t => - +t = t +t = t +t = t +t = t +- => c +c = c +t => - +- => a +a => - +t = a +- => c +c => - +- => c +c => - +- => c +c => - +t => - +c = c +a = t +- => t +- => g +t => - +- => t +t = c +g = g +a = a +t = t +t = t +t = t +a = a +t = t +- => c +c = c +t => - +a = a +a = a +c = c +- => a +a => - +- => a +- => c +a => - +t => - +- => a +a => - +- => a +a = c +t => - +t = t +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +t = t +c = c +a = a +t = t +c = c +- => t +c = c +c = c +c = c +t => - +t = t +a = a +c = c +t = t +a = a +c = c +g = g +a => - +c = a +- => t +t = t +a => - +c = a +- => t +t = t +a = a +a = a +t = t +c = c +c = c +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +g = g +t = t +t = t +t = t +a = a +a = a +t = t +- => a +a = c +t => - +a = a +c = c +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +- => t +t => - +c = t +t = t +c = c +a = a +g = g +t = t +a = a +c = c +a => - +- => a +a = g +t = t +c = c +g = a +c = c +c = c +a = a +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +c = c +a => - +- => a +a => - +c = a +c = c +c = c +c = c +- => t +g = g +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +c = c +g = a +t = t +c = c +c = c +a = a +a = a +a = a +t = t +c = c +c = c +a => - +- => a +a => - +- => a +a = t +a = a +c = c +a = a +t = t +g = g +t = c +a = a +t = t +c = c +a = a +g = g +t = a +t = t +- => c +c = c +t => - +g = g +g = g +t = t +a = a +t = t +a = a +c = c +a = a +c = c +- => a +a => - +- => a +a = c +t => - +c = c +t = t +c = c +t = t +a = a +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +- => g +g => - +- => g +g => - +a = g +t = t +- => g +g => - +a = g +c = c +g = g +a = a +c = c +g = g +a = a +a = a +g = g +t = c +g = g +t = t +c = c +c = c +g = g +t = c +c = c +g = g +t = t +t = t +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c => - +c => - +a = c +c = c +- => g +- => t +t = t +a => - +c = a +- => t +c = c +c = c +a = g +t = t +g = g +t = t +t = t +a => - +c = a +- => t +- => a +a => - +- => a +a = c +t => - +c = c +g = g +a = a +t = t +t = t +c = c +t = t +- => c +c = c +c = c +t => - +t = t +c = c +a = a +c = c +c = c +c = c +- => a +a = c +t => - +a = a +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +t = t +c = c +t = t +c = c +a = a +t = t +c = c +g = g +a = a +t = t +a = a +t = t +t = t +a = a +c = c +t = t +t = t +a = g +t = t +c = c +a = g +c = c +t = t +a = a +t => - +- => t +t = c +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +t = t +c = c +c = c +t = t +a = a +t = t +a => - +- => a +a = c +t = t +c = c +c = c +a = a +c = c +a = a +c = c +t => - +- => t +t = c +g = g +c => - +c = c +- => t +a = a +t = t +g = a +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +a => - +c = a +- => t +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +t = t +t = t +- => a +a = c +t => - +t = t +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +g = g +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +a = a +c = c +t = t +c = c +a = a +g = g +c = c +t = t +t = t +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a => - +c = a +- => t +a = a +t = t +g = g +g = g +t = t +t = t +a = a +a = a +g = g +c = c +c = c +- => a +a => - +g = a +g = g +t = t +c = c +a = a +g = g +a = a +- => t +t => - +c = t +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +g = a +t = t +c = c +a = a +g = g +t = t +a = g +a = a +g = g +c = t +a = a +t = t +c = c +c = c +- => g +g => - +a = g +t = t +c = c +t = t +g = g +a = a +a = a +t = t +c = c +c = c +c = c +a = g +a = a +t = t +c = c +c = c +t = t +- => a +a = c +t => - +t = t +a = a +c = c +t = t +a = a +a = a +t = t +t = t +a = a +t = t +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +g = g +t = t +a => - +c = a +- => t +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +a = g +t => - +- => t +t = c +c = c +a => - +- => a +a => - +c = a +- => t +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +a = a +c = c +c = c +g = a +t = t +c = c +c = c +c = c +c = c +g = a +- => t +t => - +- => t +t => - +a = t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c => - +c = c +- => t +a = a +g = g +t = t +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t = c +c = c +a => - +c = a +- => t +t = t +a => - +c = a +- => t +c = c +g = g +a = a +t = t +g = g +a = a +- => t +t => - +c = t +c = c +t => - +- => t +t => - +- => t +t = c +t = t +t = t +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +t = t +t = t +- => c +c = c +c = c +t => - +t = t +a = g +c = c +g = g +c = c +c = c +c = c +g = g +c = c +c = c +c = c +c = c +c = c +- => t +- => a +t = t +a = a +t => - +g => - +c = t +c = c +c = c +c = c +a = a +g = g +c = c +t => - +- => t +t => - +- => t +t = c +- => g +g => - +- => g +- => c +g => - +t => - +g = g +t = t +a = g +a = a +g = g +c = c +- => a +a = t +t = t +c = c +c = c +c = c +c = c +a => - +a => - +t = a +- => c +c = c +a = t +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +c = c +a = a +t = t +c = c +- => g +g => - +a = g +c = c +- => a +a => - +- => a +a = c +t => - +t = t +c = c +a = a +a = a +c = c +g = a +c = c +c = c +a = a +t = t +c = c +a = a +g = g +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +- => t +t => - +c = t +c = c +c = c +g = g +a = a +t = t +- => c +c = c +t => - +t = t +c = c +c = c +c = c +a = a +c = c +a => - +- => a +a => - +c = a +c = c +- => t +a = a +a = a +t = t +a = a +a = a +- => t +t => - +- => t +t => - +c = t +t = t +- => a +a => - +g = a +- => t +t => - +c = t +c = c +c = c +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c => - +c => - +- => c +- => t +- => t +- => a +c = c +- => a +a => - +t => - +g => - +- => a +- => c +a => - +t => - +g = a +g = g +t = t +t = t +t = t +t = t +g = g +a => - +c = a +- => t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +t = t +t = t +c = c +a = a +a = a +t = t +t = t +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t => - +- => t +t = a +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +t = t +t = t +c = c +t = t +c = c +a = a +- => t +t => - +c = t +c = c +t = t +g = g +g = g +g = g +a = a +g = g +t = t +a = a +g = g +- => t +t => - +c = t +a = a +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +t = t +g = g +c = t +a = a +t = t +a = g +t = t +c => - +c = c +- => t +t = t +t = t +a = a +t = t +c = c +a = a +g = g +- => t +t => - +c = t +t = t +- => g +g => - +a = g +t = t +g = g +t = t +a = a +g = g +a = a +t = t +g = g +c = t +- => t +t => - +- => t +t => - +c = t +a = a +c = c +g = g +g = g +t => - +- => t +t = c +a = a +t = t +g = a +g = g +t => - +- => t +t = c +c = c +g = g +c = c +c = c +g = g +c = c +c = c +g = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +g = g +g = g +c = t +t = t +t = t +c = c +a => - +c = a +c = c +- => t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +g = g +- => c +c = c +t => - +t = t +- => a +a = c +t = t +t = t +c = c +t => - +g = g +t = t +c = c +t = t +a = a +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +g = c +g = g +g = g +t = t +t = t +a => - +c = a +- => t +t = t +a = a +c = c +t = t +g = g +c = c +a => - +c = a +c = c +- => t +t = t +c = c +g = a +g = g +g = g +c = c +- => a +a = c +c = c +t => - +t = t +t = t +c = c +g = g +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +g = g +t = t +t = t +t = t +t = t +t = t +t = t +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +g = g +t = c +a = a +t = t +c = c +t = t +- => a +a = c +t => - +g = g +g = g +t = c +a = a +g = g +c = c +c = c +t = t +t = t +t = t +a = a +c = c +c = c +- => a +a = c +t => - +t = t +t = t +c => - +c = c +c = c +c = c +- => t +c = c +- => t +g => - +a = g +a = a +g = g +t = c +t = t +t = t +c = c +a = a +t = t +g = g +a = a +g = g +a = a +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a => - +c = a +- => t +- => t +t => - +- => t +t => - +c = t +a = a +t = t +c = c +t = t +c => - +c = c +- => t +g = g +g = g +g = g +t = t +c = c +a = a +t = t +t = t +t = t +t = t +a = a +a = a +c = c +a => - +c = a +- => t +t = t +a = a +t = t +t = t +c = c +a = g +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +t = t +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +- => a +a => - +- => a +a => - +t = a +g = g +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +a = a +t = t +c => - +c = c +- => t +g = g +a = a +t = t +a = a +c = c +c = c +a => - +c = a +c = c +- => t +c = c +g = g +a = a +g = g +t = t +c = c +c = c +- => a +a = c +t => - +t = t +a = a +a = a +c = c +t = t +c = a +t = t +g = g +t = a +g = g +g = g +a = a +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +g = a +- => t +t => - +c = t +a = a +t = t +g = g +t = c +c = c +t = t +a = a +c = c +- => a +a = c +t => - +a = a +a = a +a = a +t => - +t => - +- => t +- => c +t = c +t = t +c = c +- => a +a = c +c = c +c = c +t => - +t = t +g = g +a = a +a = a +g = g +a = a +t = t +c => - +c = c +c = c +c = c +c = c +- => t +a = a +a = a +a = a +t = t +c = c +a = g +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +a = a +c = c +c = c +c = c +c = c +c = c +a = g +g = g +t = t +c => - +a => - +c = c +a = a +c = c +- => g +- => g +g = g +a = a +g = g +g = g +a = a +- => t +t => - +c = t +- => a +a => - +- => a +a = c +c = c +t => - +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +a = a +t => - +c = t +- => t +t => - +- => t +t => - +- => t +t = c +c = c +g = g +a = a +g = g +t = t +c = c +- => t +t => - +- => t +t => - +c = t +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = c +t = t +t = t +c = c +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t => - +c = t +t = t +g = g +a = a +a = a +g = g +a = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +- => a +a => - +g = a +t = t +a => - +- => a +a = g +g = g +g = g +t = c +a = a +t = t +a = a +g = g +c => - +a = c +- => t +t => - +- => t +t = c +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +t = t +g = g +c = t +c = c +c = c +- => a +a = c +t => - +c = c +a = a +c = c +- => a +a = c +t => - +a = a +c = c +c = c +a = a +c = c +c = c +g = g +g = g +a = a +a = a +c = c +c = c +a = a +t = t +g = a +c = c +a = a +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +- => c +- => a +c = c +g => - +t => - +a = a +a = a +t = t +g = g +t = t +a = a +g = g +t = c +g = g +c = c +a = g +g = g +t = t +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +- => a +a = c +t => - +c = c +a = a +a = a +t = t +c = c +- => a +a = c +t => - +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +t = t +- => c +c => - +a = c +t = t +c => - +c = c +- => g +c = c +- => a +a => - +- => a +- => t +a = a +c => - +a = c +t => - +c = c +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +a => - +c = a +c = c +- => t +t = t +t = t +a = a +g = g +t = t +a = g +t = t +a = a +c = c +c = c +g = g +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = c +c = c +t = t +c = c +c = c +a => - +- => a +a = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +c = c +c = c +c = c +g = g +g = g +g = g +g = g +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +g = g +a = a +t = t +a => - +c = a +- => t +a = a +c = c +t = t +a = a +t = t +c = c +c = c +g = g +t = t +a = a +c = c +a = a +c = c +t = t +a = a +a = a +c = c +c = c +- => a +a = c +c = c +c = c +t => - +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +a = a +c = c +- => a +a => - +- => a +a = c +g => - +a = a +g = g +c = c +a = a +c = c +g = g +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +g = g +- => a +a => - +g = a +t = t +g = g +a = a +t => - +- => t +t = c +t = t +t = t +c = c +a = a +c = c +a = a +c = c +t = t +t = t +t = t +t = t +g = g +c = c +a = a +t = t +c = c +c = c +g = g +a = a +a = a +c = c +c = c +t = t +- => a +a => - +c = a +- => t +t => - +c = t +c = c +c = c +g = g +c = c +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +g = g +a = a +t = t +- => c +c => - +a = c +t = t +a = a +t = t +c = c +a => - +- => a +a = g +t => - +- => t +t = c +a = a +t => - +- => t +t = c +t = t +t = t +a = a +a = a +t = t +c => - +c = c +- => t +t = t +g = a +a = a +c = c +- => a +a = c +t => - +t = t +t = t +c = c +t = t +- => a +a = c +t => - +t = t +a => - +c = a +- => t +t = t +c = c +a = a +c = c +a => - +- => a +a = t +c = c +t = t +c = c +c = c +c = c +t = t +t = t +- => c +c = c +t => - +- => a +a => - +- => a +- => t +- => t +a => - +c = a +c => - +a = c +t => - +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +- => c +c => - +a = c +c = c +a = a +c = c +c = c +g = g +c = c +g = g +a = a +a = a +g = g +g = g +c = t +t = t +a = a +a = a +t = t +c = c +c = c +a = a +c = c +g = g +t = t +- => a +a = c +t => - +t = t +c = c +a = a +t = t +c = c +c = c +- => a +a = c +c = c +t => - +g = g +g = g +a = a +c = c +g = g +t = t +c = c +a => - +c = a +- => t +t = t +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +g = g +t = c +c = c +- => g +g => - +a = g +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +c = c +c = c +a => - +- => a +a => - +c = a +c = c +- => t +t = t +a = a +c = c +t => - +- => t +t = c +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +g = g +t = c +t = t +a => - +c = a +- => t +t = t +a => - +c = a +- => t +t = t +g = g +a = a +t = t +c = c +a = a +t = t +- => a +a = c +t => - +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c => - +- => c +c => - +- => c +c = a +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +a = a +c = c +c = c +- => a +a = t +t = t +c => - +a = c +- => t +t => - +c = t +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +a = a +a = a +- => t +t => - +c = t +a = a +g = g +a => - +- => a +a => - +c = a +- => t +c = c +t = t +c = c +g = g +c = c +t = t +t = t +t = t +c = c +g = g +g = g +a => - +c => - +- => a +- => t +a = a +- => t +t => - +c = t +a => - +- => a +a = g +t = t +g = g +a = a +c = c +g = a +c = c +- => g +g => - +- => g +g => - +a = g +c = c +g = g +a = a +g => - +t => - +g = g +- => t +- => a +- => t +t => - +c = t +c = c +c = c +c = c +c = c +t = t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +a = a +c = c +c = c +g => - +- => g +g = a +t = t +c = c +c = c +a = a +a = a +a = a +t = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +g = a +a = a +c = c +c = c +c = c +- => a +a = c +t => - +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a => - +c = a +- => t +t = t +t = t +a = a +c = c +t = t +c = c +a => - +c = a +c = c +- => t +c = c +c = c +g = g +t => - +- => t +t = c +c = c +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +c = c +a = a +a = a +c = c +a = a +c = c +c = c +g = g +t = t +t = t +a = a +t = t +t = t +t = t +t = t +t = t +- => a +a = c +t => - +t = t +a = a +a = a +- => t +t => - +- => t +- => c +- => c +t = t +- => a +a = t +g = g +t => - +a = a +t = t +a = c +a => - +t => - +t => - +g = a +t = t +a = a +t = t +t = t +c => - +c = c +- => t +c = c +t = t +a = a +g = g +t = t +c = c +c = c +a = a +a = a +g = g +c = c +a => - +g = a +g = g +g = g +- => a +a => - +- => a +a => - +c = a +- => t +c = c +g = a +c = c +- => a +a => - +- => a +a = c +t => - +a = a +c = c +a = a +t = t +- => a +a = c +t => - +c = c +a = a +a = a +t = t +a => - +- => a +a = g +t = t +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +- => a +a => - +- => a +a => - +c = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +g = g +t = t +g = a +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a = a +- => c +c => - +- => c +- => a +c = c +g => - +t => - +t = t +- => a +a => - +g = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +c = c +t = t +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +g = g +- => t +t => - +c = t +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +c => - +c = c +- => t +t = t +- => a +a = c +t => - +t = t +a => - +- => a +a = g +t => - +- => t +t = c +a = a +t = t +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +c = c +g = g +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +t = t +c = c +g = g +c = c +t => - +- => t +t => - +a => - +- => t +- => g +t => - +- => t +t = c +t = t +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +- => a +- => a +- => a +a = c +a => - +- => a +a => - +t => - +g = a +t = t +c = a +t => - +- => t +t => - +c = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +a => - +t = a +- => c +- => c +c => - +a = c +a = g +a = a +a = a +a = a +c = c +c = c +a => - +t => - +t = a +c = c +- => t +c = c +c = c +c = c +- => t +c = c +c = c +a = a +t = t +c = c +c = c +a = a +c = c +c = c +a = a +t => - +- => t +t = c +a = a +a = a +a = a +c = c +a = a +c = c +a = a +a = a +a = a +t => - +- => t +t => - +- => t +t = a +t = t +g = a +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +- => a +a = c +t => - +t = t +a = a +c = c +t = t +- => c +c = c +t => - +t = t +t = t +a = a +t = t +c = c +a = a +c = c +a => - +c = a +- => t +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a => - +- => a +a = c +c = c +c = c +c = c +c = c +g = a +t = t +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +c = c +c = c +c = c +g = g +g = g +t = t +a = a +t = t +g = g +c = c +c = c +a => - +c = a +- => t +c = c +a = a +t = t +a = a +a = a +a = a +t = t +c = c +g = a +a = a +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +g = g +t = t +g = g +a = a +c = c +g = a +t = t +t = t +t = t +c = c +t = t +- => c +c => - +- => c +- => a +- => c +c = a +a = a +c = c +g => - +g => - +c = c +t => - +- => a +a => - +t = a +g = g +a = a +g = g +a = a +a = a +t = t +t = t +a = a +g = g +a = a +a = a +a = a +t = t +t = t +g = g +a = a +a = a +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +g = a +c = c +g = g +a = a +- => t +t => - +c = t +c = c +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +g = g +t = t +c = c +- => a +a = c +c = c +t => - +c = c +g = g +a = a +g = g +a => - +c = a +- => t +c = c +t = t +- => c +c = c +t => - +c = c +c = c +c = c +t => - +- => a +a = t +c = c +t = t +c = c +t => - +c = c +c = c +c = c +c = c +a => - +t => - +- => a +- => c +a = g +a = a +t = t +a = a +t = t +c => - +- => c +c => - +- => c +c => - +g => - +- => c +c = a +- => t +t = t +t = t +a = a +t = t +g = g +c = c +c = c +c = c +a = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +g = g +t = t +t = t +t = t +c = c +t = t +a = a +a = a +a = a +a = a +a = a +t = t +c => - +c = c +c = c +c = c +c = c +- => t +t = t +- => a +a => - +- => a +a = t +t = t +c => - +g = a +a = a +g = g +a = a +t = t +- => c +c = c +t => - +t = t +g = g +t = c +t = t +a = a +c = c +c = c +c = c +g = g +t = t +- => a +a = c +t => - +t = t +t = t +t = t +g = g +a = a +c = c +a = a +c = c +c = c +- => a +a => - +- => a +a => - +c = a +c = c +g = g +a = a +g = g +g = g +t = t +g = g +t = t +c = c +t = t +a = a +a = a +a = a +g = g +a = t +c = c +t = t +c = c +g => - +t => - +g = g +- => t +- => a +a => - +c = a +c = c +- => t +g = g +g = g +c = c +a = a +t = t +c = c +a = a +t = t +a = a +t = t +- => g +- => g +g => - +a => - +- => g +g => - +- => g +g => - +a = g +c = c +c = c +a = a +g = g +c = c +a = a +c = c +a => - +c = a +- => t +c = c +g = g +c = c +c = c +a = a +c = c +- => t +t => - +- => t +t => - +a = t +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +c = c +- => a +a => - +- => a +a => - +g = a +t = t +c => - +c = c +- => t +g = g +c = c +g = a +g = g +g = g +c => - +c = c +c = c +c = c +- => t +t = t +a = a +a = a +c = c +g = g +c = t +a = a +g = g +a = a +c = c +a = a +a = a +a = a +a = a +a = a +- => t +t => - +c = t +c = c +g = g +g = g +a = a +t = t +t = t +a = a +c = c +- => a +a = c +c = c +c = c +c = c +t => - +t = t +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = g +t = t +t = t +c = c +t = t +g = g +t = c +a = a +g = g +a = a +a = a +c => - +- => c +c = a +c = c +t = t +a = a +c = c +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +a = a +t = t +g = g +c => - +c = c +- => t +t = t +g = a +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +- => t +t => - +- => t +t = a +g = g +a = c +c = c +c = c +t => - +t = t +c => - +- => c +c = a +t = t +g = g +a = a +t = t +g = g +a = a +g = g +c => - +c = c +- => t +a = a +a = a +c = c +a = a +g = g +c = t +t = t +g = g +c = c +a = a +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +g = g +c = c +a = g +t = t +c = c +c = c +a = a +g = g +t = c +g = g +g = g +a = a +c = c +c = c +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +t = t +a => - +c = a +c = c +c = c +c = c +c = c +c = c +- => t +t = t +c = c +a = a +t = t +- => a +a = c +t => - +a = a +t = t +c = c +c = c +t = t +c = c +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +t = t +- => a +a => - +g = a +t => - +- => t +t = c +a = a +g = g +g = g +t = c +g = g +g = g +t = c +a = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +c = c +a = a +t = t +a = g +a = a +g = g +c = c +a = a +t = t +c = c +c = c +a = a +a = a +g = g +t = t +c = c +a = a +t = t +a = g +g = g +t = t +a = a +a = a +c = c +c = c +- => a +a = c +c = c +t => - +g = g +g = g +c = t +t = t +a = a +a = a +c = c +t = t +a = a +a = a +a = a +c = c +t = t +- => a +a = c +t => - +c = c +a => - +c = a +t = t +t = t +- => c +c = c +c = c +t = t +c => - +c = c +c = c +c = c +- => t +a = a +g = g +t = c +a = a +a = a +c = c +t = t +a = g +a = g +a = a +g = g +t = c +a = a +g = g +a = a +c = c +- => a +a => - +g = a +t = t +- => a +- => c +a => - +t => - +a = a +- => t +t => - +c = t +t = t +c = c +c = c +t = t +a => - +- => a +a = c +g = g +c = c +a = a +t = t +- => c +c = c +t => - +c = c +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +c = c +g = g +c = c +t = t +- => a +a = c +g => - +t = t +c = c +c = c +t = t +g = g +a = a +t => - +- => t +t = c +c = c +t = t +- => a +a = c +t => - +t = t +- => a +a = c +t => - +c = c +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +t = t +a => - +c = a +- => t +c = c +a = a +a = a +g = g +t = t +c = c +t = t +a = g +c = c +c = c +- => a +a => - +g = a +a = a +g = g +a = a +t = t +a = a +a = a +a = a +- => g +g => - +a = g +a => - +c = a +c = c +- => t +c = c +g = g +c = c +a = a +g = g +a = a +c = c +t = t +c = c +t = t +a = a +c = c +- => a +a => - +- => a +a = t +c => - +a = c +a => - +c = a +- => t +a = a +a = a +t = t +c = c +a = a +a = a +t = t +c = c +g = a +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +a = a +t = t +c = c +c = c +t = t +t = t +t = t +t = t +c = c +c = c +c = c +g = g +c = t +a = a +t = t +g = g +t = t +c = c +c = c +t = t +g = g +a = a +t => - +- => t +t = c +c = c +t = t +t = t +c = c +g = g +t = t +c = c +t = t +a => - +c = a +- => t +t = t +- => c +c = c +t => - +t = t +t = t +t = t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +c = c +c = c +c = c +g = g +t = c +a = a +c = c +t = t +a = a +g = g +t = t +a = a +c = c +t = t +t = t +t = t +- => c +c = c +t => - +a = a +c = c +t = t +a => - +- => a +a = t +t = t +c = c +a = g +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +t = t +- => c +c = c +c = c +t => - +c = c +t = t +t = t +c = c +a = a +t = t +c = c +g = g +c = c +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +t = t +g = g +g = g +a = a +t = t +g = g +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +g = g +t = t +a = a +c = c +a = a +c = c +g = g +g = g +t = t +a = a +a = a +t = t +t = t +c = c +- => t +- => a +t = t +a = a +t = t +a = a +t => - +g => - +c = t +c => - +c = c +c = c +- => t +a => - +- => a +a => - +- => a +a => - +t = a +t = t +g = c +g = g +g = g +c = a +- => t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +g => - +- => g +g = a +a = a +a = a +c = c +t = t +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +c = c +t = t +t = t +t = t +- => a +a = c +t => - +c = c +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +t = t +a = a +t = t +a = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +t = t +t = t +t = t +t = t +t = t +c = c +a = a +g = g +t = t +- => a +a = c +c = c +t => - +t = t +c = c +c = c +a = g +g = g +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +t = t +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +c = c +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a => - +- => a +a = g +a = a +t = t +c = c +t = t +g = a +a = a +a = a +a = a +t = t +- => a +a = c +t => - +a = a +t = t +a = a +t = t +g = g +t = c +- => c +c = c +t => - +g = a +a = a +g = g +a = a +a = a +g = g +t = c +t = t +t = t +a = a +c = c +- => a +- => c +a => - +t => - +- => a +a = c +c = c +t => - +a = a +t = t +c = c +c = c +c = c +- => a +a = c +c = c +c = c +t => - +c = c +c = c +c = c +g = g +t = t +a = a +g = g +g = g +t = t +a = a +t = t +g = a +t = t +c = c +a = a +g = g +t = t +g = g +a = a +g = g +g = g +t = t +- => c +c = c +t => - +a => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +a = a +g = g +c = a +t = t +a = g +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +a = a +g = g +c = c +a = g +a => - +- => a +a => - +- => a +a = g +c = c +- => t +t => - +c = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +- => t +t => - +c = t +t = t +a => - +- => a +a = g +t = t +- => a +a = c +t => - +t = t +t = t +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +a = a +t = t +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +a = a +t = t +c => - +c = c +- => t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +g => - +- => g +g => - +- => g +g = a +t = t +g = g +c = t +c = c +t = t +a = a +c = c +t = t +g = a +t = t +c = c +c = c +t = t +- => a +a = c +t => - +a = a +a = a +a = a +g = g +t = t +a = a +c = c +- => a +a = c +t => - +c = c +- => a +a = c +t => - +a = a +t = t +a = a +c = c +g = g +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +t = t +a = g +c = c +a = a +g = g +c = c +c = c +c = c +c = c +a = g +t = t +a = a +a = a +g = g +g = g +t = c +c = c +t = t +a = a +t = t +c = c +c = c +g = g +g = g +t = c +t = t +c = c +t = t +t = t +t = t +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +t = t +t = t +c = c +- => t +t => - +- => t +t => - +c = t +c = c +a = a +a = a +t = t +c = c +t = t +- => a +a => - +- => a +a => - +t = a +t = t +g = g +c = c +g = g +g = g +t = c +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +- => a +a = t +- => c +c = a +c = c +g => - +t => - +- => t +t => - +- => t +t => - +c = t +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +c = c +c = c +g = g +c = c +a = a +t = t +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +a = a +g = g +a = a +t = t +- => c +c = c +t => - +c = c +a = a +c = c +a = a +t = t +c = c +g = g +g = g +a = a +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a = a +c = c +t = t +t = t +- => a +a = c +t => - +t = t +t = t +c = c +g => - +- => g +g => - +- => g +g = a +g = g +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +c = t +t = t +t = t +g = a +t = t +g = g +t = t +c = c +g = g +a = a +g = g +g = g +a = a +t = t +- => a +a => - +t = a +c = c +t = t +a = a +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +- => a +a = c +c = c +t => - +c = c +g = g +a = a +t = t +g = g +c = t +t = t +g = g +c = c +a = a +t => - +- => t +t = c +a = a +t = t +a = g +c = c +a = a +c = c +a = a +g = g +c = c +a = a +c = c +g = a +t = t +c = c +g = a +t = t +g = g +c = c +t = t +- => a +a = c +t => - +a = a +g = g +a = a +t => - +- => t +t = c +a = a +c = c +t = t +g = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +- => t +t => - +c = t +a = a +t = t +g = g +c = t +t = t +a = a +c = c +g = g +g = g +c = t +c = c +a => - +- => a +a = g +t = t +c = c +c = c +g = g +g = g +c = t +g = g +g = g +a = a +t = t +g = g +t = c +c = c +a = a +c = c +- => t +t => - +- => t +t => - +c = t +t = t +c = c +t => - +- => t +t => - +- => t +t => - +- => t +t = c +t = t +a = a +c = c +t = t +t = t +g = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +t = t +a = g +a = a +c = c +g = g +c = t +c = c +g = g +t = t +c = c +t = t +a = a +g = g +t = t +a => - +- => a +a => - +- => a +a => - +c => - +c = a +- => g +- => t +a = a +t = t +- => a +a => - +- => a +a = c +t => - +g = g +a = a +a = a +g = g +g = g +t = c +a = a +c = c +c = c +t = t +c = c +a = a +c = c +- => a +a = c +t => - +c = c +g = g +c = c +t = t +c = c +a = a +g = g +t = t +c = c +g = g +a => - +c = a +- => t +t = t +t = t +a = a +t = t +g = g +a = a +a = a +a = a +c = c +t = t +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +c = c +c = c +a = a +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +c = a +c = c +g = g +a = a +g = g +c = c +a = a +c = c +- => a +a = c +t => - +a = a +g = g +a = a +t = t +g = g +c = c +a = a +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a => - +c = a +- => t +a = a +c = c +c = c +a = a +c => - +- => c +c = a +c = c +g = g +a = a +g = g +t = t +g = g +t = t +g = g +t = c +t = t +a = a +t => - +- => t +t => - +- => t +t => - +a = t +- => g +g => - +- => g +g => - +- => g +g = a +t = t +c = c +c = c +t => - +- => t +t => - +- => t +t = c +g = g +g = g +t = t +t = t +a = a +a = a +c = c +t = t +a = a +t = t +a => - +- => a +a = g +t = t +a = a +t = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +- => g +g => - +a = g +t = t +a = a +t = t +g = g +g = g +a = a +t = t +- => a +a = c +t => - +a = a +t = t +a = a +g = g +g = g +c = t +t = t +t = t +a = a +c = c +c = c +a = a +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +c = c +c = c +t = t +c = c +a = a +t => - +- => t +t = c +a = a +t = t +t = t +c = c +a = a +a = a +t = t +g = g +t = t +t = t +a => - +c = a +- => t +a = a +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +c = c +t = t +t = t +c = c +g = g +g = g +a = a +c = c +c = c +a = a +t = t +c = c +c = c +t = t +a => - +- => a +a = t +t = t +c = c +t = t +t = t +a => - +c = a +- => t +a = a +t = t +t = t +t = t +g = g +a = a +a = a +g = g +c = t +c = c +c = c +c = c +a = a +c = c +a = t +g = g +g = g +t = c +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +t = t +t = t +a = a +t => - +- => t +t = c +c = c +a = a +c = c +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +c => - +c = c +- => t +t = t +- => a +- => c +a = c +t => - +c = c +c = c +t => - +a = a +g = g +a = a +g = g +g = g +a = a +g = g +g = g +a = a +g = g +g = g +c = c +c = c +g = g +a = c +c = c +c = c +c = c +a = a +g = g +c = c +t => - +- => t +t => - +- => t +t = c +t = t +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +g = g +c = c +c = c +a = a +g = g +a = a +c = c +a = a +a = a +t => - +- => t +t = c +a = a +t => - +- => t +t = c +a = a +t = t +a => - +c = a +- => t +c = c +- => a +a = c +t => - +t = t +a => - +- => a +a = c +g = g +g = g +t = t +c = c +g = g +t = t +c = c +g = g +a = a +t = t +- => c +c => - +a = c +t = t +g = g +a = a +c = c +c = c +c = c +t = t +c = c +t = t +c = c +t = t +a = a +t = t +- => c +c = c +t => - +t = t +c = c +t = t +t = t +c = c +a = a +t => - +- => t +t = c +c = c +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +c = c +c = c +t = t +a = a +g = g +t = t +c = c +t = t +g = g +c = c +t => - +t => - +- => t +t => - +- => t +- => c +t = t +c = c +c = c +c = c +c = c +a = g +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +c = c +g = g +c = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +t = t +a = a +a = a +c = c +t = t +a => - +c = a +- => t +t = t +a = a +a = a +c = c +a = a +a = a +c = c +- => a +a = c +t => - +t = t +a = a +c = c +- => t +t => - +- => t +t => - +c = t +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +g = g +g = g +g = g +- => a +a = t +t = t +c = c +t => - +t = t +a = a +t = t +c = c +t = t +c = c +c = c +t = t +c = c +- => t +- => g +t => - +a => - +c = t +g = g +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +- => a +a = t +t = t +c => - +c = c +c = c +t => - +t => - +- => t +- => c +t => - +- => t +t => - +- => t +t = c +t = t +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +g = g +t = c +c = c +t => - +- => t +t = c +c = c +g = g +a = a +g = g +g = g +c = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +t => - +- => t +t = c +a => - +t = a +t = t +- => c +a => - +- => a +a => - +- => a +a = g +g = g +g = g +a = a +c = c +g = g +a = a +t = t +t = t +c = c +c = c +c = c +t = t +c = c +c = c +c = c +a = a +t = t +c = c +t = t +g = g +a = a +c = c +- => a +a => - +g = a +g = g +t = t +t = t +g = g +g = g +t = a +c = c +- => a +a => - +g = a +g = g +g = g +a = a +c = c +g = g +c = a +g = g +g = g +c = c +c = c +- => g +g => - +a = g +a = a +- => g +g => - +a = g +t = t +g = g +a = a +t = t +a = a +t = t +c = c +g = g +c = t +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +g = g +t = t +- => c +c = c +t => - +t = t +c = c +a = a +t = t +c = c +c = c +t => - +t => - +t = t +- => c +- => t +c = c +t => - +t = t +- => c +c => - +- => c +c => - +- => c +- => t +c => - +- => c +c => - +- => c +c = a +t => - +- => t +t => - +c = t +c = c +t = t +c = c +a = a +g = g +t = t +c = c +t = t +t = t +c = c +g = g +a = a +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c => - +c = c +c = c +c = c +c = c +- => t +t = t +t = t +a = g +c = c +g = g +g = g +t = t +a => - +c = a +- => t +a = a +g = g +c = c +c = c +c = c +c = c +c = c +g = g +t = t +g = g +g = g +t = c +t = t +a = a +a = a +t = t +a => - +- => a +a => - +t = a +t = t +- => c +c = c +c = c +c = c +a = t +t = t +g = g +a = a +t = t +c = c +g = a +g = g +t = t +c = c +a = a +a = a +c = c +g = g +g = g +t = t +t = t +t = t +c = c +g = g +g = g +a = a +g = g +g = g +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +- => a +a = c +t => - +c = c +c = c +g = a +t = t +a = a +a = a +t = t +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t = c +t = t +a = a +a = a +t = t +a = a +a = a +t = t +g = g +c = t +t = t +t = t +g = a +c = c +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +g = g +c = c +t = t +a = a +t = t +t = t +g = g +t = c +- => a +a => - +- => a +a = c +t => - +a = a +t = t +c = c +t = t +a = a +c = c +- => a +a = c +c = c +t => - +a = a +g = g +c = c +a = a +a = a +t = t +g = g +g = g +a = a +t = t +c = c +t = t +t = t +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +c = c +c = c +- => g +a => - +- => a +a = c +c = c +t = g +g = g +g = g +t => - +t = t +c = c +a = g +a = a +g = g +a = c +c = c +g = g +a = a +g = g +c = c +t = t +t = t +a = a +t = t +t = t +c = c +c = c +t = t +- => c +c = c +t => - +g = g +a = a +a = a +t = t +c => - +c = c +- => t +c = c +g = g +a = a +c = c +a = a +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +g = g +a = a +g = g +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +- => c +c = c +t => - +a = a +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +g = g +t = t +t = t +- => a +a = c +t => - +a = a +g = g +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a = a +c = c +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t => - +- => t +t = c +a = a +g = g +- => t +t => - +c = t +g = g +c = c +c = c +a = a +g = g +c = c +c = c +a = g +c = c +t = t +t = t +g = g +t = t +a = a +g = g +t = t +c = c +- => a +- => c +a = c +- => c +c => - +- => c +c => - +t => - +t => - +t => - +t => - +t => - +t => - +- => c +c = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +t = t +c = c +- => a +a = c +t => - +- => t +t => - +c = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +g = g +a = a +t = t +t = t +t = t +c = c +t = t +g = g +t = t +- => c +c = c +t => - +c = c +c = c +g => - +- => a +a => - +c = a +- => t +c = c +c = c +g = g +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +t = t +g = g +g = g +t = t +c = c +g = g +a = a +g = g +g = g +c = c +t = t +c = c +c = c +a = a +c = c +t => - +- => t +t = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +a = a +c = c +t = t +t = t +a = a +a = a +c = c +g = g +t = t +t = t +t = t +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +g = g +t = t +c = c +g = g +a = a +a = a +g = g +t = t +t = t +t = t +g = g +g = g +a = a +c = c +g = g +g = g +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +g = g +g = g +c = c +g = g +g = g +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = g +- => g +g => - +a = g +a = c +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +a = a +a = a +c = c +t = t +t = t +c = c +g = g +g = g +t = t +c = c +a = a +a = a +c = c +t = t +g = a +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = g +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +t = t +g = g +a = a +t => - +- => t +t => - +- => t +t = c +a = a +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +g = g +g = g +g = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +a = a +g = g +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +c = c +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +a = a +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +c = c +a = a +a = a +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +c = c +g = g +t = t +c = c +t = t +c = c +- => a +a = c +t => - +c = c +c = c +c = c +a = a +a = a +a = a +a = a +c = c +g = g +t = t +c = c +a = a +g = g +g = g +a = a +a = a +t = t +c = c +a = g +a = a +c = c +a => - +- => a +a => - +c = a +- => t +g = g +t = t +c = c +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +a => - +c = a +- => t +a = a +a = a +c = c +a = g +t = t +t = t +g = g +a = a +a = a +t = t +g = g +- => a +a = c +t => - +t = t +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a => - +t => - +a = a +- => c +c = a +- => t +a = a +a = a +a = a +t = t +t = t +g = g +g = g +a = a +t = t +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +- => a +a = t +t = t +c = c +t => - +t = t +g = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a => - +c = a +- => t +- => t +t => - +- => t +t => - +c = t +c = c +c = c +c = c +c = c +t = t +c = c +t = t +a => - +c = a +- => t +c = c +c = c +a = a +t = t +- => c +c = c +t => - +t = t +c = c +a = a +t = t +c => - +c = c +- => g +c = c +a = a +c = c +c = c +a => - +c = a +- => t +t = t +- => c +c => - +a = c +c = c +a = g +c = c +t = t +- => a +a = c +t => - +t = t +c = c +a = a +c = c +- => a +a = c +t => - +c = c +c = c +c = c +t = t +c = c +c = c +- => t +t => - +- => t +t = a +c = c +c = c +c = c +t => - +c = c +a = a +c = c +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a => - +t = a +c = c +a = a +t = t +- => a +a = c +t => - +a = a +a = a +g = g +c = t +- => t +t => - +c = t +g = g +a = a +c = c +a = a +g = g +t = t +a = a +a = a +a = a +a = a +t = t +- => a +a => - +g = a +a = a +a = a +a = a +t = t +g = g +c = c +a = a +a = a +c = c +a => - +- => a +a => - +c = a +- => t +c = c +t = t +a = a +t = t +a = a +- => c +c => - +- => c +c => - +- => c +c => - +a = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +a = a +c = c +t = t +- => a +a => - +t = a +c = c +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t => - +- => t +t = c +t = t +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +- => c +c = c +t => - +a = a +t = t +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +- => a +a = c +c = c +t => - +a = a +c = c +c = c +g => - +- => g +g = a +t = t +- => a +a = c +t => - +t = t +a = a +c = c +c = c +a => - +c = a +c = c +c = c +c = c +c = c +- => t +- => a +a = c +t => - +t = t +a = a +c = c +t = t +c => - +- => c +c => - +a = c +g = g +c = a +- => t +- => a +a => - +- => a +a = c +t => - +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +a = a +a = a +g = g +a = a +a = a +g = g +c = c +t = t +a = a +t = t +t = t +a => - +t = a +t = c +c = c +- => g +g = g +g = g +t = t +a = a +a = a +a = a +c = c +c = c +c = c +a = g +- => t +- => t +t => - +c => - +c = t +t = t +t = t +c = c +g = g +g = g +c = c +c = c +a = a +a = a +t = t +c = c +a = g +c = c +c = c +c = c +c = c +c = c +a = g +t = t +- => c +c = c +t => - +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c => - +c = a +c = c +c = c +- => t +t = t +- => a +a => - +- => a +a = t +t = t +c = c +t => - +c = c +c = c +a = a +c = c +a = a +a = a +t => - +- => t +t = c +a = a +g = g +t = t +a = a +c = c +- => a +a => - +g = a +t = t +c = c +- => g +a => - +- => a +a => - +- => a +a = c +t => - +a = a +a = a +a = a +g = g +t => - +- => t +t = c +c = c +- => a +a = c +t => - +g = g +c = c +t = t +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c = c +a => - +t = a +t = t +- => c +c = c +c = c +a => - +- => a +a = g +c = c +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +g = a +a = a +a = a +- => t +t => - +c = t +c = c +a = a +a = a +c = c +t = t +c = c +a = a +t => - +- => t +t = c +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +a = g +c = c +c = c +a = a +t = t +c = c +a = a +t = t +c = c +- => a +a => - +c = a +t = t +c = c +c = c +t = t +a = a +t = t +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a => - +c = a +- => t +c = c +- => a +a => - +g = a +- => t +t => - +c = t +t = t +a = a +a = a +t = t +t = t +c = c +t = t +t = t +- => a +a = c +t => - +c = c +a = a +a = a +t = t +- => a +a = c +t => - +a = a +a = a +t = t +c = c +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +t = t +a = g +c = c +c = c +a = a +t = t +c = c +t = t +t = t +g = g +a = a +c = c +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +t = t +a = a +g = g +g = g +a = a +t => - +g => - +- => t +- => a +t = c +a = a +c = c +c = c +c = c +a => - +c = a +- => t +t = t +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +c = c +g = g +- => a +a = t +t = t +c = c +t => - +t = t +- => a +a => - +g = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +c = c +- => g +a => - +- => a +a = c +c = c +t => - +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +- => t +t => - +c = t +a = a +g = g +g = g +c = t +g = g +g = g +a = a +g = g +- => t +t => - +c = t +g = g +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +t = t +c = a +c = c +t = t +a = a +c = c +c = c +t = t +a = a +- => t +t => - +c = t +c = c +t = t +a = a +a = a +c = c +t => - +- => t +t = c +t = t +c = c +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +c = c +c = c +g = g +a = a +a = a +t = t +g = g +t = c +- => a +a => - +- => a +a => - +- => a +a = t +c => - +a = c +a = a +c = c +t => - +g = t +- => c +- => c +c = c +t = t +c => - +c = c +t => - +- => t +t = c +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +c = c +t = t +g = c +t = t +- => a +a = c +t => - +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +a = a +c = c +a = a +g = g +t = t +a = a +c = c +a = a +c = c +t = t +c => - +c = c +- => t +t = t +c => - +c = c +- => t +t = t +c = c +a = g +t = t +c = c +c = c +g = g +g = g +t = c +c = c +t => - +g => - +t = t +- => a +- => c +a => - +- => a +a = g +t = t +c => - +c = c +- => t +c = c +c = c +c = c +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +c = c +c = c +a => - +c = a +- => t +t = t +- => g +g => - +a = g +a = a +g = g +- => a +a = c +c = c +c = c +g => - +t = t +g = g +a = a +g = g +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +c = c +c = c +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +- => a +a => - +t = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +g = g +a = a +t = t +g = a +a = a +t = t +g = a +c = c +t = t +- => a +a => - +g = a +t = t +a = a +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +c = c +t = t +- => a +a => - +- => a +a = c +t => - +c = c +a => - +c = a +- => t +c = c +g = a +t = t +a = a +a = a +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +a = a +a = a +g = g +t = t +a = a +a = a +c = c +a = a +g = g +g = g +c = c +c = c +t = t +c = c +t = t +c = c +a = a +t = t +a => - +c = a +- => t +a = a +a = a +c = c +a => - +- => a +a => - +c = a +c = c +- => t +t = t +c = c +t = t +c = c +c = c +t = t +a => - +c = a +- => t +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c => - +c = c +- => t +t = t +c = c +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +a = a +c = c +g = g +t = c +c = c +a = a +a = a +c = c +g = g +a = a +a = a +c = c +a = g +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +a = g +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +c = t +c = c +g = g +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +- => t +t => - +c = t +g = g +c = c +- => t +c = c +c = c +c = c +t => - +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c => - +c = c +- => t +t = t +g = g +a => - +c = a +c = c +c = c +- => t +t = t +a = a +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +c = c +a = g +t = t +a = a +c = c +a = a +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g = g +a = a +g = g +t = t +c = c +c = c +g = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a => - +c = a +c = c +- => g +c = c +t = t +c = c +g = g +a = a +a = a +t = t +c = c +a = g +c = c +g = g +a = a +c = c +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +c = c +t = a +c = c +a = a +c = c +g = g +g = g +a = a +c = c +g = g +c = t +t = t +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +c = c +t = t +a = g +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +g = g +g = g +t = t +c => - +c = c +c = c +c = c +c = c +- => t +a = a +a = a +t = t +t = t +a = a +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +c = c +t = t +t = t +- => c +c = c +c = c +t => - +a => - +c => - +- => a +- => t +a => - +c = a +- => t +t = t +g = g +g = g +t = t +t = t +g = g +t = t +a = a +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +g = g +g = g +g = g +c = c +t = t +a = a +t = t +c = c +g = g +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +t = t +g = g +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +t = t +g = a +t = t +c = c +c = c +a = a +c = c +c = c +g = g +t = t +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +c = c +c = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +t = t +a = a +c = c +c = c +c = c +a = a +a = a +g = g +t = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +a = a +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +t = a +t = t +t = t +g = c +g = g +- => a +a = g +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +a = a +t = t +g = g +a = a +g = g +a = a +t = t +a = a +g = g +t = t +t = t +t = t +c = c +a = a +t = t +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +a = a +g = g +t = t +c = c +t = t +g = g +t = t +a = a +t = t +a = a +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +c = c +- => a +- => t +- => t +a => - +c = a +c => - +a = c +t => - +c = c +c = c +a = a +t = t +a = a +c = c +c = c +t => - +t => - +- => t +- => c +t = t +a = g +t = t +a = a +t = t +a = a +g = g +t = t +a = a +t = t +a => - +c = a +- => t +t = t +c = c +a = a +- => t +t => - +c = t +a = a +c = c +g => - +- => g +g = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +c = c +g = a +t => - +- => t +t = c +c = c +t = t +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +t = t +g = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +c = c +g = a +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +a = a +g = g +c = c +a = a +t = t +c = c +g = g +- => c +c = c +t => - +t = t +t = t +a = a +g = g +- => c +- => c +c = c +t => - +c = c +c = c +t => - +a = a +t = t +a = a +c = c +g = g +t = a +c = c +a = a +a = a +g = g +c = c +t = t +t = t +a = a +a = a +g = g +t = t +a = a +- => t +t => - +c = t +c = c +t = t +t = t +a = g +t = t +- => c +c = c +t => - +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +t = t +t = t +c = c +g = a +t = t +c = c +c = c +c = c +a => - +- => a +a = g +a = a +a = a +c = c +c = c +a = a +c = c +- => t +- => g +- => t +- => t +- => t +t = t +a => - +c = a +t => - +- => t +t = a +c = c +g => - +t => - +a => - +t => - +g = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +g = g +t = t +- => c +c => - +- => c +c => - +- => c +c => - +- => c +- => t +c = c +t = t +c = c +a = a +c => - +c => - +c = c +g = g +t = c +a => - +a => - +c = a +- => g +- => t +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +g = g +g = g +a = a +t = t +c = c +c = c +t => - +- => t +t => - +- => t +t = c +t = t +- => a +a => - +- => a +a = c +t => - +a = a +t = t +c = c +a = a +c = c +c = c +a = a +c = c +t = t +- => c +c = c +t => - +c = c +- => a +a = c +t => - +a = a +a = a +a = a +t = t +a = a +a = a +t = t +a => - +c = a +- => t +t = t +a = a +t = t +t = t +- => a +- => c +a => - +t => - +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a = a +c = c +a = a +t = t +g = a +a = a +g = g +c = c +c = c +g = g +a = a +t = t +a = a +c = c +t => - +- => t +t => - +- => t +t = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +g = g +c = c +- => t +t => - +c = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +c = c +g = g +c = c +c = c +g = g +t = c +a = a +t = t +a = a +a = a +g = g +c = c +t = t +- => a +- => c +a => - +t => - +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +g = g +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +a = a +g = g +t = c +c = c +t = t +a = g +a = a +- => g +g => - +a = g +g = g +g = g +a = a +a = a +g = g +t = c +c = c +g = g +c = t +t = t +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +c = c +c = c +c = c +c = c +- => a +a => - +g = a +g = g +c = c +c = c +a = a +a = a +c = c +c = c +a => - +- => a +a = g +a = a +g = g +a = a +c = c +g = g +a = a +t => - +- => t +t = c +a = a +c = c +a = a +c = c +c = c +t = t +c = c +t = t +a = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +- => a +a = c +t => - +c = c +- => g +g => - +a = g +t = t +t = t +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +a = t +a = a +c = c +c = c +a = g +t = t +c = c +c = c +t = t +c = c +g = a +- => t +t => - +c = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +c = c +- => a +a => - +- => a +a = c +t => - +a = a +c = c +t = t +a => - +c = a +- => t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c = c +t = t +c = c +c = c +a = a +a = a +t = t +t = t +t = t +c = c +c = c +t => - +- => t +t = c +- => g +g => - +- => g +- => t +g = g +t => - +a => - +- => a +a => - +g = a +t = t +- => a +a => - +g = a +t = t +c = c +a = a +- => t +t => - +c = t +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c => - +c = c +- => t +t = t +- => a +a = c +t => - +t = t +a = a +c = c +c = c +g => - +- => g +g = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +a = a +a = a +g = g +t = t +a = a +t = t +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +a = a +c = c +g = g +a = a +g = g +c = c +a = g +t = t +c = c +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +a = a +g = g +t => - +- => t +t = c +c = c +c = c +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +c = c +g => - +- => g +g = a +g = g +t = t +g = g +g = g +g = g +a = a +c = c +t = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +t = t +- => a +a => - +c = a +c = c +t = t +c = c +a = a +t = t +t = t +t = t +g = g +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c => - +c = c +- => t +t = t +a => - +c = a +- => t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +g = g +g = g +a = a +t = t +- => c +c = c +t => - +a = a +a = a +c = c +t = t +- => c +c = c +t => - +a = a +a = a +c = c +t = t +- => g +g => - +a = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +t => - +a => - +t => - +t = t +a = a +t = t +c = c +a = a +t = t +c = c +- => t +- => t +c = c +- => t +c = c +g = g +t = c +t = t +- => a +a = c +t => - +c = c +a = a +c = c +t = t +c = c +t = t +c = c +g = g +a = a +t = t +t = t +c = c +c = c +a => - +- => a +a = g +c = c +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +c = c +a => - +- => a +a = t +c = c +t = t +a = a +c = c +a => - +- => a +a = c +c = c +t = g +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +g = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +g = g +c = c +a = a +g = g +t = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +c = c +a = a +t = t +c = c +g = g +g = g +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +t = t +g = g +c = t +t = t +g = g +c = c +a = a +a = a +c = c +c = c +c = c +c = c +g = g +g = g +- => a +a => - +- => a +a => - +- => a +a = c +t => - +g = g +c = c +a = a +t = t +c = c +a = a +a = a +c = c +a = a +t = t +a = a +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t => - +- => t +t = c +t = t +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +c = c +c = c +a => - +- => a +a = t +t = t +c = c +g = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +- => g +g => - +a = g +t = t +- => a +a => - +c = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +c => - +c = c +- => t +t = t +- => a +a = c +t => - +c = c +c = c +a = a +t = t +g = g +t = t +t = t +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +- => c +c = c +t => - +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +c = c +g = g +g = g +t = t +- => a +a = c +c = c +c = c +t => - +a = a +t = t +- => a +a = c +t => - +a = a +a = a +c = c +a = a +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +c = c +c = c +t = t +t = t +a = a +a = a +c = c +t = t +t = t +g = g +g = g +a = a +g = g +a = a +c = c +t = t +g = g +- => a +a = c +t => - +a = a +t = t +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +g = g +g = g +c = c +c = c +c = c +g = g +a = a +g = g +a = a +c = c +g = g +g = g +t = t +a = a +g = g +a = a +a = a +t = t +t = t +g = g +t = t +t = t +t = t +g = g +g = g +g = g +- => a +a = c +t => - +a = a +a = a +g = g +- => a +a => - +- => a +a = c +c = c +t => - +c = c +a => - +t = a +- => c +- => c +c = c +t => - +a = a +c = c +a => - +c = a +c = c +c = c +g => - +c = c +g => - +- => a +- => t +- => a +a = t +t = t +a = a +t = t +a = g +a = a +t => - +- => t +t => - +- => t +t = c +a = a +a = a +c = c +t = t +c = c +t = t +a => - +t = a +c = c +- => t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +a = a +t = t +g = g +c => - +c = c +c = c +c = c +c = c +c = c +- => t +t = t +c = c +c = c +g = g +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +g = g +g = g +- => a +a => - +g => - +c = a +- => t +a = a +a = a +a = a +g = g +a = a +g = g +a = a +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +- => c +c = c +t => - +t => - +- => t +t => - +g => - +- => t +t = a +g = a +c = a +c = c +- => t +t => - +- => t +t = c +a = a +t = t +c = c +t = t +a = a +t = t +c = c +t = t +t = t +t = t +g = g +g = g +c = c +t = t +g = g +g = g +a = a +c = c +c = c +t = t +a = a +a = a +t = t +g = g +a = a +g = g +g = g +c = c +c = c +a = a +g = g +a = a +c = c +t = t +t = t +g = g +a = a +g = g +t = t +c = c +t = t +a = a +g = g +t = t +g = g +c = c +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +a = a +c = c +t = t +t = t +g = g +t = t +t = t +t = t +g = g +c = c +t = t +t = t +g = g +g = g +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +a = a +t = t +c = c +g = g +c = c +c = c +g = g +a = a +c = c +g = g +t = t +g = g +g = g +t = t +a = a +g = g +c = c +c = c +c = c +t = t +a = a +c = c +a = a +g = g +g = g +a = a +c = c +t = t +a = a +g = g +g = g +t = t +t = t +g = g +t = t +a = a +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +a = a +t = t +t = t +t = t +g = g +g = g +g = g +a = a +t = t +g = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +c = c +c = c +t = t +g = g +a = a +g = g +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +t = t +g = g +a = a +a = a +c = c +a = a +a = a +g = g +g = g +c = c +a = a +a = a +c = c +c = c +a = a +g = g +t = t +t = t +c = c +- => a +a => - +g = a +t = t +a = a +a = a +c = c +c = c +t = t +a = a +g = g +t = t +t = t +- => a +a => - +- => a +a = c +t => - +t => - +t => - +a = t +c = c +- => a +- => t +a => - +c = a +- => t +c = c +a = a +t = t +c = c +g = a +a = a +g = g +c = c +g = g +a = a +a = a +a = a +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +a = a +g = g +a => - +- => a +a => - +c = a +- => t +c = c +g = g +t = t +a => - +c => - +a = a +c = c +- => a +- => t +a = g +a = a +c = c +a = g +a = a +g = g +c = c +c = c +t = t +c = c +c = c +- => a +a => - +- => a +- => c +a = c +t => - +c = c +t => - +a = a +a = a +t = g +- => a +a = c +t => - +g = g +a = a +g = g +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +g = g +g = g +g = g +g = g +t = t +t = t +g = g +g = g +c = c +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +c = c +g = g +t = t +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +a = a +a = a +t = t +c = c +c = c +t = t +g = g +g = g +a = a +c = c +a = a +c = c +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a => - +- => a +a => - +t = a +t = t +c => - +a = c +c = c +- => a +- => t +a = g +a = a +c = c +g = a +a = a +a = a +c = c +g = g +t = t +a = a +a = a +t = t +t = t +a => - +c = a +- => t +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +a = a +g = g +g = g +t = t +a = a +t = t +c = c +c = c +c = c +a = a +g = g +a = a +a = a +g = g +a = a +g = g +c = c +a = a +g = g +a = a +a = a +c = c +- => g +a => - +- => a +a = c +t => - +a = a +c = c +a = a +a = a +t = t +a = a +c = c +a = g +g = g +g = g +c = c +g = g +g = g +a = a +g = g +a = a +a = a +g = g +t = t +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +a = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +t = t +g = g +a = a +c = c +c = c +- => a +a => - +g = a +t = t +t = t +t = t +t = t +c = c +a = a +t = t +t = t +c = c +t = t +c = c +t = t +g = g +t = t +c = c +g = g +a = a +c = c +t = t +t = t +g = g +g = g +g = g +a = a +g = g +c = c +a = a +c = c +c = c +t = t +c = c +g = g +g = g +t = t +a = a +a = a +g = g +t = t +a = a +t = t +g = g +- => t +c = c +t => - +c = c +a = a +g = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +t = t +c = c +c = c +t = t +t = t +g = g +t = t +t = t +c = c +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +t = t +g = g +g = g +a = a +a = a +a = a +c = c +g = g +t = t +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +t = t +g = g +g = g +c = c +g = g +c = c +c = c +g = g +g = g +c = c +a => - +- => a +a => - +c = a +- => t +- => t +t => - +- => t +- => g +t = t +g = a +c = c +g => - +t => - +a = a +c = c +a = a +g = g +t = t +g = g +a = a +c = c +c = c +c = c +g = g +t = t +c = c +c = c +g = g +c = c +c = c +a = a +c = c +g = g +g = g +a = a +g = g +a = a +t = t +t = t +a = a +t = t +g = g +a = a +c = c +c = c +- => a +a = c +t => - +t = t +a = a +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +g = g +t = t +c = c +c = c +g = g +c = c +c = c +c = c +c = c +a = a +t => - +- => t +t => - +- => t +t = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +c = c +t = t +c = c +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +t = t +g = g +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +g = a +t = t +t = t +g = g +g = g +a = a +a = a +a = a +g = g +g = g +- => a +a => - +g => - +c => - +- => a +- => t +a => - +c = a +c = c +- => t +c = c +g = g +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +g = g +t = t +c = c +a => - +c = a +c = c +- => t +c = c +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a => - +t = a +c = c +- => t +g = g +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a => - +- => a +a => - +t = a +c = c +- => t +a = a +a = a +c = c +a = a +t = t +c = c +t = t +a = a +t = t +- => a +a => - +- => a +a = c +c = c +t => - +c = c +a = g +a = a +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +a = a +g = g +t = t +c = c +a => - +- => a +a => - +- => a +a = g +t => - +- => t +t = c +- => a +a = c +t => - +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c => - +c = a +- => t +- => t +a = a +g = g +a = a +c = c +t = t +a = g +c = c +a = g +t = t +c = c +c = c +g = g +a = a +a = a +t = t +a = a +c = c +g = g +c = c +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +c => - +- => c +c = a +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +g = g +t = t +a = a +a = a +t = t +c = c +g = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +t = t +c = c +c = c +c = c +- => a +a = c +t => - +t = t +a = a +t = t +c = c +t = t +a = a +a = a +c = c +c = c +a = a +g = g +g = g +t = t +t = t +a = a +a = a +c = c +c = c +c = c +a = a +c = c +a => - +t = a +c = c +- => t +c = c +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c = c +a => - +- => a +a => - +c => - +- => a +- => t +a => - +c = a +- => t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +t = t +a => - +- => a +a => - +t = a +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = t +c => - +- => c +c => - +- => c +- => a +- => t +c = c +a = a +- => c +c => - +t => - +a = c +t => - +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +a = a +a = a +c = c +t = t +t = t +g = g +c = c +g = g +a = a +a = a +a = a +g = g +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +a = a +a = a +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +a = a +c = c +c = c +c = c +- => a +a = c +t => - +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +a = a +g => - +t => - +g = g +- => a +- => g +a => - +- => a +a = g +a = a +t = t +g = g +t = t +t = t +c = c +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +c = c +a = a +g = g +g = g +t = t +t = t +t = t +c = c +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +g = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +g = g +a = a +t = t +t = t +g = g +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +t = t +g = g +c = t +- => t +c = c +c = c +t => - +c = c +c = c +t = t +a => - +- => a +a => - +- => a +a => - +c = a +- => t +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = g +t = t +t = t +t = t +a = a +a = a +a = a +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +g = g +a => - +c = a +- => t +a = a +g = g +a = a +a = a +c = c +c = c +t = t +g = g +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +t = t +a = a +g = g +t = t +g = g +g = g +t = t +c = c +c = c +g = g +a = a +g = g +c = c +c = c +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +a = a +g = g +c = c +g = g +g = g +a = a +g = g +a = a +t = t +g = g +g = g +a = a +t = t +c => - +c = a +- => t +t = t +t = t +a = a +g = g +a = a +a = a +g = g +g = g +g = g +t = t +g = g +a = a +t = t +a = a +a = a +a = a +a = a +c = c +g = g +a = a +t = t +g = g +t = t +a = a +t = t +c = c +t = t +g = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +g = g +a = a +g = g +c = c +a = a +g = g +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +- => a +a => - +- => a +a => - +g = a +c = c +c = c +a = g +a = a +g = g +a = a +- => g +g => - +a = g +a = a +a = a +c = c +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +g = g +t = t +c = c +t = t +t = t +c = c +c = c +a = a +t = t +g = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +g = g +- => a +- => t +a => - +c => - +- => a +- => t +a => - +c => - +- => a +a => - +g => - +c = a +- => t +a = a +c = c +g = g +a = a +a = a +c = c +c = c +a = a +a = a +t = t +a = a +- => t +t => - +a = t +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +g = g +a = a +a = a +a = a +g = g +g = g +g = g +a = a +a = a +c = c +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t = t +a = a +t = t +a = a +g = g +a = a +t = t +a = a +a = a +c = c +g = g +c = c +g = g +g = g +- => t +- => c +c = c +t => - +a => - +- => a +a => - +- => a +a => - +t = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a = a +g = g +c = c +g = g +g = g +a = a +t = t +a = a +t = t +g = g +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +a = g +a = a +t => - +- => t +t => - +- => t +t = c +c = c +a = a +a = a +c = c +a => - +- => a +a = g +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +t = t +a = c +c = c +a => - +c = a +c = c +c = c +- => t +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +a => - +- => a +a => - +- => a +a => - +- => a +a = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +c = c +c = c +a = a +g = g +t = t +t = t +c = c +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +t = t +a = a +g = g +a = a +g = g +g = g +a = a +t = t +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +a = a +a = a +t = t +t = t +c = c +g = g +a = a +t = t +g = g +t = t +g = g +a = a +g = g +a = a +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g = g +g = g +t = t +t = t +c = c +a = a +c = c +g = g +t = t +g = g +a = a +a = a +a = a +g = g +g = g +t = t +c = c +a = a +t = t +g = g +t = t +g = g +a = a +a = a +t = t +g = g +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +c = c +t = t +g = g +- => a +a => - +- => a +a = c +t => - +a = a +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +a = a +t = t +a = a +- => t +t => - +c = t +t = t +a = a +c = c +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +g = g +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +t = t +g = g +c = c +g = g +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +g = g +g = g +g = g +a = a +c = c +a = a +a = a +g = g +t = t +t = t +g = g +a = a +t = t +t = t +c = c +g = g +t = t +g = g +a = a +g = g +a = a +t = t +g = g +a = a +g = g +a = a +a = a +t = t +c = c +a = a +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +t = t +t = t +t = t +a = a +g = g +g = g +t = t +g = g +g = g +a = a +a = a +g = g +a = c +t = t +g = g +g = g +g = g +a = a +a = a +- => t +t => - +c = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +t = t +t = t +c = c +c = c +c = c +a = g +a = a +t = t +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +a = a +g = g +- => a +- => c +a = c +c = c +t => - +t => - +c = c +a = a +t = t +c = c +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +g = g +a = a +a = a +c = c +g = g +g = g +t = t +g = g +g = g +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +t = t +g = g +g = g +a = a +a = a +c = c +t = t +g = g +g = g +a = a +t = t +t = t +g = g +c = c +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +a = a +c = c +c = c +c = c +a = a +t = t +g = g +a = a +a = a +c = c +a = g +c = c +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +c = c +a => - +c = a +- => t +c = c +g = g +g = g +a = a +a = a +g = g +t = t +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +a = a +c = c +g = g +a = a +c = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +a = a +t = t +a = a +t = t +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +c = c +g = g +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +a = a +g = g +c = c +t = t +a = a +a = a +t = t +g = g +t = t +c = c +t = t +t = t +g = g +t = t +c = c +c = c +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +a = a +c = c +t = t +t = t +c = c +g = g +t = t +g = g +g = g +c = c +g = g +g = g +t = t +c = c +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +g = g +c = c +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +a = a +c = c +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c = c +- => a +a => - +g = a +a = a +a = a +c = c +- => a +a => - +- => a +a = c +t => - +t = t +a = a +a = a +a = a +t = t +t = t +g = g +a = a +c = c +a = a +a = a +c = c +t => - +- => t +t = c +c = c +a = a +a = a +a = a +t = t +c = c +c = c +c = c +g = g +a = a +- => t +t => - +c = t +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +t = t +a = a +g = g +a = a +t = t +t = t +a = a +g = g +g = g +g = g +t = t +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +g => - +- => g +g = a +a = a +t = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +c = c +a = a +a = a +g = g +t = t +c = c +t = t +a = a +t = t +- => a +a = c +t => - +a = a +a = a +t = t +t = t +t = t +c = c +g = g +g = g +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a => - +- => a +a = g +a = a +t = t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +- => c +a => - +t => - +- => a +a = c +t => - +a = a +g = g +- => t +t => - +c = t +g = g +a = a +c = c +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +t = t +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = a +c = c +t => - +- => t +t = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +a = a +a = a +- => c +- => c +- => c +- => c +- => t +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c => - +t => - +a = c +a = a +c = c +t = t +a = a +g = g +a = a +t = t +t = t +t = t +t = t +g = g +t = t +g = g +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +g = g +g = g +- => c +c = c +t => - +a = g +a = a +a = a +g = g +a = a +t = t +a => - +- => a +a => - +c = a +c = c +- => t +g = g +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +g = g +g = g +c = c +g = g +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +t = t +g = g +c = c +t = t +t = t +t = t +a = a +a = a +c = c +t = t +g = g +g = g +t = t +t = t +g = g +g = g +g = g +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t = t +a => - +c = a +- => t +c = c +g = g +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = a +g = g +t = t +g = g +a = a +c = c +g = g +a = a +c = c +- => a +- => a +a => - +g => - +g = a +g = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +t = t +c = c +g = g +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +g = g +a = a +c = c +g = g +t = t +a => - +- => a +a => - +- => a +a = c +g = g +a = a +c = c +g = g +c = c +- => a +a = c +t => - +g = g +a = a +a = a +c = c +t = t +a = a +c = c +g = g +a = a +a = a +c = c +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +c = c +t = t +a = a +g = g +- => c +- => a +- => c +- => c +- => a +- => c +- => t +- => a +- => a +- => a +- => t +- => c +- => t +- => c +- => c +- => c +- => a +- => c +- => t +- => t +- => g +- => a +- => g +- => t +- => g +- => a +- => c +- => c +- => t +- => t +- => g +- => c +- => c +- => c +- => c +- => t +- => a +- => c +- => g +- => a +- => a +- => c +- => g +- => t +- => a +- => c +- => a +- => c +- => a +- => t +- => t +- => a +- => g +- => a +- => a +- => t +- => g +- => a +- => t +- => t +- => c +- => t +- => c +- => g +- => a +- => t +- => t +- => a +- => t +- => c +- => t +- => t +- => t +- => c +- => c +- => g +- => a +- => t +- => c +- => c +- => t +- => g +- => g +- => t +- => t +- => t +- => g +- => g +- => a +- => t +- => a +- => a +- => a +- => c +- => a +- => a +- => a +- => t +- => a +- => c +- => c +- => c +- => c +- => a +- => c +- => t +- => a +- => c +- => a +- => c +- => t +- => c +- => g +- => g +- => g +- => c +- => a +- => g +- => a +- => t +- => t +- => t +- => g +- => t +- => a +- => a +- => a +- => a +- => g +- => t +- => c +- => a +- => c +- => a +- => t +- => a +- => a +- => c +- => g +- => a +- => a +- => a +- => c +- => t +- => c +- => c +- => t +- => c +- => c +- => a +- => t +- => t +- => c +- => g +- => a +- => t +- => g +- => t +- => a +- => t +- => t +- => t +- => g +- => a +- => c +- => a +- => c +- => c +- => c +- => c +- => c +- => c +- => a +- => c +- => a +- => g +- => a +- => a +- => a +- => c +- => c +- => c +- => c +- => a +- => a +- => a +- => c +- => c +- => a +- => a +- => c +- => c +- => a +- => a +- => g +- => c +- => c +- => c +- => c +- => a +- => t +- => a +- => c +- => c +- => c +- => c +- => a +- => a +- => t +- => c +- => g +- => t +- => c +- => g +- => c +- => c +- => a +- => c +- => a +- => c +- => a +- => c +- => a +- => c +- => a +- => c +- => g +- => a +- => c +- => c +- => c +- => a +- => t +- => c +- => c +- => t +- => a +- => c +- => c +- => c +- => g +- => c +- => c +- => c +- => c +- => c +- => a +- => a +- => c +- => a +- => t +- => a +- => a +- => c +- => t +- => a +- => c +- => t +- => c +- => t +- => a +- => a +- => t +- => c +- => a +- => t +- => c +- => a +- => t +- => a +- => c +- => c +- => c +- => t +- => c +- => a +- => c +- => c +- => c +- => t +- => c +- => c +- => c +- => c +- => t +- => t +- => t +- => t +- => a +- => t +- => t +- => a +- => c +- => a +- => c +- => a +- => a +- => t +- => c +- => a +- => a +- => c +- => c +- => c +- => c +- => c +- => c +- => a +- => c +- => t +- => g +- => a +- => c +- => a +- => a +- => t +- => t +- => t +- => t +- => c +- => a +c = c +- => g +- => t +- => a +- => t +- => g +a = g +- => c +- => g +- => g +- => t +- => t +- => t +- => t +c => - +- => c +- => t +- => a +- => t +- => t +- => t +- => t +- => a +c = a +a = a +c = c +- => t +- => t +- => t +- => a +t = g +- => a +- => c +a = c +a = a +a = a +- => t +t = c +- => c +- => g +- => a +- => c +- => c +- => a +- => c +- => a +- => a +- => t +- => c +- => c +- => c +- => a +- => a +- => g +- => a +- => a +- => a +- => c +- => a +- => a +- => a +- => a +- => a +- => c +- => c +- => c +- => c +- => a +- => a +- => a +- => c +- => c +- => g +- => t +- => c +- => t +c = c +- => t +t = a +- => c +- => a +- => c +- => a +- => a +- => a +- => t +- => t +- => c +- => a +- => c +- => g +- => a +- => c +- => a +- => c +- => c +- => g +- => g +- => t +- => c +- => t +- => t +- => c +- => g +- => c +- => c +- => c +- => c +- => c +- => t +- => c +- => c +- => c +- => c +- => c +- => c +- => c +- => a +- => a +c = a +c = c +c = c +- => a +a = c +c = c +- => t +- => t +t = t +- => a +- => a +- => a +- => a +- => a +- => a +- => c +- => a +- => a +- => t +- => a +- => c +- => t +- => a +- => c +a => - +- => a +- => g +- => a +- => c +- => a +- => c +- => a +- => c +a = c +g => - +- => t +- => t +t => - +g => - +a = t +c => - +- => c +c = a +c = c +c = c +- => g +g = a +c => - +- => c +c = a +c = c +- => g +- => t +c = c +- => t +- => g +- => t +- => a +- => a +- => g +- => t +- => t +t = a +- => a +- => c +- => a +- => a +- => t +- => a +- => a +- => t +- => a +- => a +- => t +- => a +- => c +- => a +- => g +- => g +- => a +- => t +- => g +- => t +a = t +c = c +- => g +- => t +- => a +- => a +- => t +- => t +g = a +- => a +- => t +- => t +a => - +- => a +a => - +c = a +- => t +- => t +- => g +- => t +- => g +- => t +- => g +g = a +t = a +- => a +a = t +c = c +- => a +- => t +a = t +c = c +- => a +- => t +- => a +- => c +- => a +- => a +- => g +- => c +- => g +- => g +- => a +- => c +a = a +- => t +t => - +- => t +- => a +t = t +- => a +a => - +g => - +g => - +- => a +- => c +a = t +t = t +- => g +g = c +a = a +t => - +- => t +- => c +- => c +t = a +- => c +- => g +c => - +t => - +c = c +- => t +- => a +- => t +- => t +a = t +a = a +t = t +t = t +a = a +- => t +t = c +c = c +t => - +- => t +- => a +t = c +t = t +c = c +c = c +g => - +a = g +t = t +c = c +c = c +- => t +- => t +t = a +g => - +g = g +- => t +- => t +t => - +- => t +t = c +t = t +g => - +- => g +- => t +g = c +- => t +a = a +- => t +t = g +- => a +- => c +- => g +- => c +- => t +- => g +- => t +a => - +a => - +- => a +- => t +- => c +- => c +- => c +- => a +- => c +- => g +- => a +- => g +- => g +a = c +c = c +- => g +a => - +a => - +a => - +t => - +- => a +- => g +- => g +a = t +c => - +- => c +- => g +c => - +- => c +- => a +- => g +c = a +- => g +c = c +- => g +- => t +- => t +a = a +- => c +- => g +c = a +t = t +- => a +- => g +- => c +a = g +c = c +a = a +c = c +- => g +- => t +- => a +- => t +- => g +t = g +c = g +g = g +g = g +g = g +- => t +c = c +a = t +g = g +c = c +- => t +- => t +- => t +t => - +- => t +- => a +t => - +- => t +t = g +g = g +- => t +- => t +t = t +a => - +a => - +a => - +- => a +a = c +g = g +t => - +c = t +a = a +- => c +c => - +a = c +t = t +a = c +a = t +c = c +g = g +a => - +- => a +- => g +- => g +- => g +a = c +a = a +- => c +- => t +c => - +- => c +- => a +c => - +- => c +c => - +- => c +- => a +- => a +- => t +- => t +- => a +- => t +- => c +c => - +t => - +- => c +c => - +- => c +- => a +c = c +- => t +a => - +t = a +t = t +c = c +- => t +- => g +g = g +- => a +- => c +a => - +t => - +g => - +t => - +- => a +a = c +t => - +t => - +- => t +t = a +g = g diff --git a/DNA_Alignment/DNA_Alignment/Program.cs b/DNA_Alignment/DNA_Alignment/Program.cs new file mode 100644 index 0000000..8f20470 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/Program.cs @@ -0,0 +1,177 @@ +using System; +using System.CodeDom; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using System.Xml.Schema; + +namespace DNA_Alignment +{ + internal class Program + { + /// + /// Cost Matrix + /// + static readonly int[,] AlignmentMatrix = + new int[5, 5] { + {5, -1, -2, -1, -3}, + {-1, 5, -3, -2, -4}, + {-2, -3, 5, -2, -2}, + {-1, -2, -2, 5, -1}, + {-3, -4, -2, -1, 0} + }; + /// + /// Letter LookUP + /// + static readonly Dictionary LetterLookUp= + new Dictionary + { + {'a', 0}, + {'c', 1}, + {'g', 2}, + {'t', 3}, + {'-', 4} + }; + + /// + /// Calculates the chage score given two chars. + /// + /// + /// + /// + private static int score(char i, char j) + { + return AlignmentMatrix[LetterLookUp[i], LetterLookUp[j]]; + } + /// + /// takes a string and reverses it. + /// + /// + /// + private static string ReverseString(string s) + { + char[] arr = s.ToCharArray(); + Array.Reverse(arr); + return new string(arr); + } + + /// + /// Takes M and reverses the process. + /// + /// + /// + /// + /// + private static Tuple Traceback(int[,] M, string writeFile, string score) + { + var xAlign = ""; + var yAlign = ""; + var i = A.Length; + var j = B.Length; + var r = new List(); + r.Add(score); + + while (i > 0 || j > 0) + { + var up = M[i - 1, j]; + var left = M[i, j - 1]; + var diag = M[i - 1, j - 1]; + if (i > 0 && up == Math.Max(Math.Max(up, left), diag))//up + { + r.Add($"{A[i - 1]} => -"); + // Console.WriteLine(A[j - 1]+" => -"); + + xAlign += A[i - 1]; + yAlign += '-'; + i -= 1; + } + else if (j > 0 && left == Math.Max(Math.Max(up, left), diag))//left + { + r.Add($"- => {B[j - 1]}"); + // Console.WriteLine("- => "+B[i - 1]); + + xAlign += '-'; + yAlign += B[j - 1]; + j -= 1; + }else//diag + { + r.Add($"{A[i - 1]} = {B[j - 1]}"); + // Console.WriteLine(A[j - 1]+" = "+B[i - 1]); + xAlign += A[i - 1]; + yAlign += B[j - 1]; + i -= 1; + j -= 1; + } + } + File.WriteAllLines(writeFile, r); + //reverse the strings + xAlign = ReverseString(xAlign); + yAlign = ReverseString(yAlign); + return new Tuple(xAlign, yAlign); + } + + /// + /// Creates the array M + /// + /// + private static int[,] DPmed() + { + var m = A.Length+1; + var n = B.Length+1; + var M = new int [m, n]; + + for (var x = 1; x < m; x++) + { + M[x, 0] = M[x-1, 0] + AlignmentMatrix[LetterLookUp[A[x-1]], LetterLookUp['-']]; + } + + for (var y = 1; y < n; y++) + { + M[0, y] = M[0, y-1] + AlignmentMatrix[LetterLookUp['-'], LetterLookUp[B[y-1]]]; + } + + for (var x = 1; x < m; x++) + { + for (var y = 1; y < n; y++) + { + //sets up the cache + M[x, y] = Math.Max(Math.Max(M[x-1, y-1] + score(A[x - 1], B[y - 1]), + M[x-1, y] + score(A[x-1], '-')), + M[x, y-1] + score('-', B[y-1])); + } + } + + return M; + } + + + + + public static void Main(string[] args) + { + // Debug mode from ../DNA_Alignment/bin/Debug/ + // Release mode from ../DNA_Alignment/bin/Release/ + var f1 = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, args[0])); + var f2 = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, args[1])); + A = Regex.Replace(f1, @"(\r\n|\r|\n)|n|[ ]|[1234567890]", ""); + B = Regex.Replace(f2, @"(\r\n|\r|\n)|n|[ ]", ""); + var M = DPmed(); + var writeFile = Path.Combine(Environment.CurrentDirectory, $"{args[0]}_vs_{args[1]}.txt"); + Console.WriteLine("Score: " + M[A.Length,B.Length]); + var results = Traceback(M, writeFile, $"Score: {M[A.Length,B.Length].ToString()}"); + + + } + + /// + /// String 1 + /// + public static string A { get; set; } + + /// + /// String 2 + /// + public static string B { get; set; } + } +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/Properties/AssemblyInfo.cs b/DNA_Alignment/DNA_Alignment/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9f4af5b --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DNA_Alignment")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DNA_Alignment")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ED9116C6-3BCE-4B84-89EA-DEE30AE5FBC5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/DNA_Alignment.exe b/DNA_Alignment/DNA_Alignment/bin/Debug/DNA_Alignment.exe new file mode 100644 index 0000000000000000000000000000000000000000..4ae276f617f6b6866f25f1f16cb3875691bfd044 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/DNA_Alignment.pdb b/DNA_Alignment/DNA_Alignment/bin/Debug/DNA_Alignment.pdb new file mode 100644 index 0000000000000000000000000000000000000000..80459dd288cc81df528b56e61ff9f5f7c1fb6890 GIT binary patch literal 1740 zcmYjROKclu5T5zHvDb<1#8`D`AZZ#GLQ&-Atsn}`t4&(9B*Y1?A_XVjIBxt%yiOg9 zht>f^DkRh%DiAO6P+JfvAjF{@TA>IE5|^l4D)j(Ja6{r+Ar5@AUZ?q2Gyi-u-_Ae( zb2xTln2AZ64>CDA+GFMe{+ zi`-Jx0f^*-pXwl9NEFftk+}G!2i@igS8&xQy)-8stgmcL^qS3)ob`}B5R_);yN$@- z_=CyMO#2~2kY0scE~Zh)Nys!rW+Y=JV7t&)MtcxGwF@@^yYNXyX$r*%_5cq6Uw~T! zu65!cI@k{!L3|n_@c?iU_GtK))GgM%A@Z^OO}sR2I-EKPiFNZ7$*dv;;5^<7xv zvd&e$#Osi+ilrWDhiu&f&GZ1YqI;oTB=gm%3%Z6npxyK+w1+~_ME66O9)?zS6)qZt zT|>jr9^2M!yRwID?`oAPRcX`%EzuG(5Vc~&79NB?%r8KPlm-2V`Utwu-XB`%qJ?fc zMa6uoU>r-O4N9cqNlMWf%FxurB*T@|!nFS*g zsC3bhT*4U5Wtw(iI&I7sQn{=d9W$~n=Z(bdP&$b~VKHO+N1qr1#QJ26Y@v2CpG)TBndrRPaEPo8 z>n-bD>x#97Z@cyK24?-rJ%xDwAFpW_X{7V zhut_3dz9{z3_e0EK>doE<-D+5ye6d|ppYA$fDk;&4wT$9plTgf(P0JLAfTG&9Tx7k zpfwE71gslc=FrzEDR rTLusC5w_mrvdQK1ygndrk7j+|=Jf5Ae$&C5?RdXEz6Nij?hDiZvf%qY literal 0 HcmV?d00001 diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/GreatApes.txt b/DNA_Alignment/DNA_Alignment/bin/Debug/GreatApes.txt index e69de29..e780e25 100644 --- a/DNA_Alignment/DNA_Alignment/bin/Debug/GreatApes.txt +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/GreatApes.txt @@ -0,0 +1,273 @@ +gtttatgtag cttacctccc caaagcaata cactgaaaat gtttcgacgg gctcacatca +ccccataaac aaataggttt ggtcctagcc tttctattaa ctcttagtag gattacacat +gcaagcatcc ccgccccagt gaatcaccct ctaaatcacc acgatcaaaa ggaacaagca +tcaagtacgc agaaatgcag ctcaaaacgc ttagcctagc cacaccccca cgggggacag +cagtgattaa cctttagcaa taaacgaaag tttaactaag ccatactaac cccagggttg +gtcaatttcg tgccagccac cgcggtcaca cgattaaccc aagccaatag aaatcggcgt +aaagagtgtt ttagatcaat ccccaataaa gctaaaattc acctgagttg taaaaaactc +cagctgatat aaaataaact acgaaagtgg ctttaatata tctgaacaca caatagctag +gacccaaact gggattagat accccactat gcctagccct aaacttcaac agttaaatta +acaagactgc tcgccagaac actacgagcc acagcttaaa actcaaagga cctggcggtg +cttcatatcc ctctagagga gcctgttctg taatcgataa accccgatca acctcaccac +ctcttgctca gcctatatac cgccatcttc agcaaaccct gatgaaggcc acaaagtaag +cacaagtacc cacgtaaaga cgttaggtca aggtgtagcc catgaggtgg caagaaatgg +gctacatttt ctacttcaga aaactacgat aacccttatg aaacctaagg gtagaaggtg +gatttagcag taaactaaga gtagagtgct tagttgaaca gggccctgaa gcgcgtacac +accgcccgtc accctcctca agtatacttc aaaggacatt taactaaaac ccctacgcat +ctatatagag gagataagtc gtaacatggt aagtgtactg gaaagtgcac ttggacgaac +cagagtgtag cttaacacaa agcacccaac ttacacttag gagatttcaa ctcaacttga +ccgctctgag caaaacctag ccccaaaccc accccacatt actaccaaac aactttaatc +aaaccattta cccaaataaa gtataggcga tagaaattgt aaatcggcgc aatagatata +gtaccgcaag ggaaagatga aaaaatataa ccaagcacga cacagcaagg actaacccct +gtaccttctg cataatgaat taactagaaa taactttgca aagagaaccg aagctaagac +ccccgaaacc agacgagcta cctaagaaca gctaaaagag cacacccgtc tatgtagcaa +aatagtggga agattcctag gtagaggcga caaacctacc gagcctggtg atagctggtt +gtccaagaca gaatcttagt tcaactttaa atttacccac agaaccctcc aaatcctccc +gtaaatttaa ctgttagtcc aaagaggaac agctctttgg acactaggaa aaaaccttgt +aaagtgagta aaaaatttaa tacccatagt aggcctaaaa gcagccacca attaagaaag +cgttcaagct caacactatc acccaaaata atcccaaaca cacaactgaa ctccctacac +ccaattggac caatctatta ccctatagaa gagctaatgt tagtataagt aacatgaaac +cattctcctc cgcataagcc tacatcagac caaaatatta aactgacaat taacaactca +atatctacaa ctaaccaaca agctattatt acccccactg ttaacccaac acaggcatgc +ccacgaggaa aggttgaaaa aagtaaaagg aactcggcaa attttacccc gcctgtttac +caaaaacatc acctctagca ttaccagtat tagaggcacc gcctgcccag tgacatgcgt +tcaacggccg cggtacccta accgtgcaaa ggtagcataa tcacttgttc cttaaatagg +gactcgtatg aatggctcca cgagggttca gctgtctctt acttttgacc agtgaaattg +acctgcccgt gaagaggcgg acataacata acaagacgag aagaccctat ggagctttaa +ttcattaatg caagcaacac ttaataaacc cacaggtcct aaactaccaa acctgcatta +aaaatttcgg ttggggcgac ctcggagtat aatctaacct ccgaacaaca catgccaaga +cttcaccagt caaagcgagc taccacattt aattgatcca atgacttgac caacggaaca +agttacccta gggataacag cgcaatccta ttctagagtc catatcaaca gtagggttta +cgacctcgat gttggatcag gacatcccga tggtgcagcc gctatcaaag gttcgtttgt +tcaacgatta aagtcctacg tgatctgagt tcagaccgga gtaatccagg tcggtttcta +tctattccgt gtttctccct gtacgaaagg acaagagaaa cgaggcctac ttcacaaagc +gcctcccccc gtaaatgata ctatctcaat ttaatatagc gcccacatct actcaagaat +agggtttgtt aagatggcag agcccggtaa tcgcataaaa cttaaaactt tatagtcaga +ggttcaattc ctcttcttaa caatatatcc atggctaacc ttctactcct cattgtacct +atcctaatcg ccatagcatt cctaatgcta accgaacgaa aaattttagg ctatatacaa +ctacgtaaag gccccaacgt cgtaggcccc tacgggctac tacaaccctt cgctgacgcc +ataaaactct tcaccaaaga gcccctaaaa ccctcaacat caaccatcac cctctacatc +accgccccaa ccttagctct cactattgcc ctactattat gaacccccct ccccataccc +aaccccctag tcaatctcaa tctaggcctc ctattcatcc tagccacctc tagcctagcc +gtttactcca tcctctgatc agggtgggca tcaaactcaa actacgcctt gatcggcgca +ctacgagcag tagcccaaac aatctcatat gaagtcaccc tggccattat cctactatca +acactactga tgaatggttc ctttaacctc tccaccctca tcataacaca agaacacctc +tgactgctcc taccaacatg acccttagct ataatatgat ttatctccac attagcagaa +accaaccgga cccccttcga cctcgctgaa ggagaatctg aactagtctc aggctttaat +atcgaatatg ccgcaggccc cctcgcccta tttttcatag ccgagtacat aaatattatc +ataataaata ctctcaccac tataattttc ctaggaacaa catacaatgc ccactcccct +gaactctaca cagtatgctt catcaccaaa accctgcttc taacctctct attcctatga +attcgaactg catatcctcg atttcgctac gaccaactca tgcacctcct gtgaaaaaac +ttcttgccac tcaccctggc actactcata tgatatattt ccatacctac cacaatctcc +agcattcccc ctcaaaccta agaaatatgt ctgataaaag agttactttg atagagtaaa +taatagaggt ttaaaccccc ttatttctag gactatgaga attgaaccca tccctgagaa +tccaaaattc tccgtgccac ctgtcacacc ccatcctaaa gtaaggtcag ctaaataagc +tatcgggccc ataccccgaa aatgttggtc acatccttcc cgtactaatt aaccccctgg +cccaacccat catctactct accatcttcg caggcactct tattacagca ctaagctccc +actgattttt tgcctgagta ggcctagaaa taaacatact agcttttatc ccagtcctaa +ccaaaaaaat aaatccccgc tccacagaag ccgccatcaa atatttcctc acacaagcaa +ctgcatccat aatcctccta atagccatcc tctccaacaa catactctcc ggacaatgaa +ccacaaccaa tgccactaat caatactcat cattaatgat cgtagtagct atagctataa +aactaggaat agcccccttt cacttctgag tgccagaagt cacccaaggc acccccctaa +tgtctggcct actcctcctc acatgacaaa aactagcccc tatgtcaatc atataccaaa +tttcctcgtc aacaaatgta agccttctcc tcactctttc aatcctatcc atcctagcag +gcagctgagg cggactaaac caaactcaac tacgcaagat tctagcatac tcctcaatca +cccatgtagg atgaataata gcagttctac catataaccc taatataact attcttaatc +tgaccattta tattatcctc actactacca cattcctatt actcaaccta agctccagca +ccacaacctt actactatct cgtacttgaa ataaactgac atgattaaca cctctaatcc +cctccaccct cctctcccta ggaggtctac ccccactaac cggcttccta cccaaatggc +ttattatcga agaattcaca aaaaataacg acctcattac ccccaccatt atggccatca +tcaccctcct caacctctat ttctatctac gcctaattta ctccacctct atcacactac +tacccatatc caacaacgta aagataaaat gacagctcga atatactaaa cccactccct +tcctccctac acttatcaca ctcaccaccc tacttctacc catctccccc ttcatactaa +tagttctata gaaatttagg ttaaacatag accaagagcc ttcaaagccc ttagtaagtt +acaacactta atttctgcaa caactaagga ctgcaaaacc ctactctgca tcaactgaac +gcaaatcagc cactttaatt aagctaagcc cttactagat caatgggact caaacccaca +aacatttagt taacagctaa acaccctagt caactggctt caatctactt ctcccgccgc +aagaaaaaaa ggcgggagaa gccccggcag gtttgaagct gcttcttcga atttgcaatt +caatatgaaa ttcacctcgg agctggtaaa aagaggccca gcctctgtct ttagatttac +agtccaatgc cttactcagc cattttacct ccttttttcc actgatgttc accgaccgct +gattattctc tacaaaccat aaagatattg gaacactata tctactattc ggcgcatgag +ctggagtcct aggcacagcc ctaagtctcc ttattcgagc agaacttggt caaccaggca +accttctagg taacgatcac atctataatg ttatcgtcac agcccatgcg ttcgtaataa +ttttcttcat agtaatgcct atcataatcg gaggctttgg caactggcta gtacccttaa +taattggtgc ccccgacatg gcattccccc gcataaacaa cataagcttc tgactccttc +ccccttcttt cctacttctg ctcgcatccg ctatagtaga agccggcgca gggactggtt +ggacagtcta ccctccctta gcaggaaatt attcccaccc cggagcttct gtagacctaa +ccattttttc cctacaccta gcaggcatct cctctattct aggggccatc aacttcatta +caacaatcat caatataaaa ccccccgcca taacccaata ccaaacaccc cttttcgtct +gatccgtcct aatcacagca gtcttacttc ttctatctct cccagtacta gctgctggaa +ttaccatatt attaacagac cgtaacctca acaccacctt tttcgaccca gccggaggag +gagatcctat cctataccaa cacttattct gattttttgg acaccccgaa gtttacattc +taatcctacc aggcttcgga ataatctccc acattgtaac ttattactcc ggaaaaaaag +aaccattcgg atatataggt atagtctgag ctataatatc aattggtttc ctgggattta +ttgtgtgagc ccaccacata tttacagtag gaatagacgt agatacacga gcctacttca +cctccgctac cataatcatc gctatcccca ccggcgtcaa agtattcagc tgactcgcta +cactccatgg aagtaatacc aaatgatctg ccgcaatgct ctgagcccta gggttcattt +ttctcttcac tgtaggcggc ctaaccggca tcgtactagc aaactcgtca ttagatatcg +tgctgcacga cacatattac gtcgtagctc acttccacta tgtcctatct ataggagctg +tgttcgccat catagggggc tttattcact gatttcccct attctcaggc tacactctag +atcaaaccta cgccaaaatc cactttgcca tcatattcat tggcgttaat ctaaccttct +tcccacaaca ctttcttggc ctatctggaa taccccgaca ttactcggac taccccgatg +catatactac atgaaatatc ctgtcatccg tgggctcatt catttcccta acagcagtaa +tattaataat ttttataatc tgagaagcct tcgcctcaaa acgaaaagtc ctaataatcg +aagaaccctc cacaaatctg gagtgactgt atggatgccc tccaccctat catacatttg +aagagtctgt atatataaag tctaaacaaa aaaggaagga atcgaacccc ccaaagctgg +tttcaagcca accccatgac cttcatgact ttttcaaaaa gatattagaa aaactatttc +ataactttgt caaggttaaa ttacgggtta aaccccgtat atcttaatgg cacatgcagc +gcaagtaggt ctacaagacg ctacttctcc tatcatagaa gaactaatca tctttcatga +tcatgccctc ataatcattt ttctcatctg cttcttagtc ctgtacgccc ttttcctaac +actcacaaca aagctaacta acaacaacat ctcagacgcc caagaaatag agaccatctg +aaccatcctg cccgctatta tcttagtcct gatcgccctc ccatctctac gaatcctcta +tatgacagat gaaatcaatg acccctcctt cactatcaaa tcaatcggtc accaatgata +ctgaacctac gaatacaccg actatggtgg attgatcttt aactcctata tactcccccc +attattccta gaaccaggtg acctacgact ccttgacgtc gacaaccgag tagtccttcc +agttgaagcc cccgtccgta taataattac atcccaagat gtcttacact catgagctgt +tcccacatta ggcctaaaaa cagacgcaat ccccgggcgc ctgaaccaaa ccacattcac +cgccacacga ccaggagtat actacggcca gtgctcagaa atctgtggag ccaaccacag +ttttatgccc attgttctag agctaatccc cctaaaaatc tttgaaatag gacccgtatt +cgccctataa tacccctctc atccctctcc agagctcact gtaaagctaa cctagcgtta +accttttaag ttaaagatta agagtatcgg cacctctttg cagtgaaatg ccccagctaa +ataccaccgt atggcccacc ataattgccc caatactcct cacactattt ctcattaccc +aactaaaagt tttaaacaca aattaccacc tacccccctt accaaaaact ataaaaataa +aaaacttctg taaaccctga gaaccaaaat gaacgaaaat ttattcgctt cattcattgc +ccccacaatc ctaggcttac ccgccgcagt attaattatc ctacttcccc ctctactgat +ccccacctcc aaatatctca tcaacaaccg actgattgcc acccaacagt gactaatcca +actaacctca aaacaaataa taactataca taacgccaag ggacgaacct gatcccttat +gttaatatga ttaattattt ttattgccac aaccaacctc ctcggactct tgccccactc +attcacacca actacccagc tatctataaa cctggccata gccatccccc tgtgagcagg +cgcagtaact acaggctttc gctccaagac taaaaatgcc ctagcccacc tactaccaca +aggcacccct acacccctta tccctatact agtcatcatt gaaaccatca gcctattcat +ccaaccaata gccctagctg tacgcctaac cgctaacatc actgcaggtc acctacttat +gcacctaatc ggaagcgcca cactagcaat atcaactacc aatcttccct caacactcat +tatctttaca gtcctaattt tattaactat actagaaatc gctgtcgccc tcatccaagc +ctacgttttc acacttttag tgagcctcta cctgcacgag aacacataat gatccaccaa +tcacatgcct atcacatagt aaaacccagc ccatgacccc taacaggggc cctctcagcc +ctcctaataa cctcaggctt agccatatga ttccacttcc actctacaac cctactcata +ctaggcctac taaccaacat actaactata taccaatgat gacgtgatgt aatgcgagaa +agcacgtacc aaggccacca tacactaccc gtccaaaaag gcttacgata tggaatgatc +ctatttatta cctcagaagt ctttttcttc gcaggattct tctgagcttt ctaccactcc +agcctagccc ctacccctca actaggagca cactgacccc caacaggcat caccccacta +aaccccctag aagttccact tttaaataca tctgtactgc tcgcatcagg tgtctcaatt +acctgagccc accatagcct aatagaaaat aaccgtaacc aaataattca agcactactt +atcacaattt tactgggcct ctacttcacc ctcctacaag cctcagagta ctttgaagcc +ccctttacca tttccgatgg tatctatggc tcaacatttt ttgtagccac aggctttcac +gggctccacg tcatcattgg gtcaactttc ctcactatct gtcttattcg ccaactaata +tttcacttta catccaaaca ccacttcggc ttcgaagccg ccgcttggta ttggcacttc +gtagatgtag tctgactatt cctatacgtc tccatctact gatgagggtc ctactctttt +agtataatta gtaccgttaa cttccaatta accagttttg gtagtaccca aaaaagagta +ataaacttcg ccctgatctt aataaccaac acccttctag ccctactact aataattatt +acattttgac taccgcaact taacagctac atagaaaaaa ctaaccccta cgaatgtggt +ttcgaccccg tatcccccgc ccgcattcct ttctccataa aatttttcct agtagccatc +actttcttac tatttgacct agaaattgcc ctcctattgc ccctgccatg agccctacaa +acaaccaact taccactaat agtcatgtca tccctcttat taatcattat cctaacccta +agtctagcct acgaatgact gcaaaaagga ctagactgga ccgaattggt acatagttta +aacaaaacga atgatttcga ctcattaaat tatgataatc atatttacca aatgcccctt +atttacataa acattatact agcatttacc atctcacttc taggaatact agtgtaccgt +tcacacctaa tatcctccct actatgccta gaaggaataa tattatcact attcattata +gctactctca taaccctcaa tacccacttc ctcttagcta acattgtacc catcaccata +ctagtctttg ctgcctgtga agcagcagta ggcctagccc tactagtctc aatctctaac +acatatggtc ttgactatgt acaaaaccta aacctgctcc aatgctaaaa ctaatcgccc +caacaattat actactaccg ctaacatgac tctccaaaaa acatataatt tgaatcaaca +caaccaccca cagcctaatc atcagcatca ttcccctact attttttaac caaattaata +acaatctatt tagttactcc ctatcttttt cctccgaccc cctaacgacc cccctcctaa +tattaactac ctgactccta ccccttacaa ttatagcaag ccagcgccac ctatccaacg +aaccactatc acgaaaaaaa ctctatctct ccatattaat ctccctccaa atctccttaa +tcataacatt cacagccaca gaactaatca tattctatat cttcttcgaa gccacactta +tccctaccct agttatcatc acccgatgag gcaaccaacc cgaacgtcta aacgcgggta +catacttcct attctacacc ctagtaggat ccctccccct acttatcgca ttaatccaca +ctcacaacac cttaggctca ctaaatattc tattactcac ccttactgcc caagaactac +ctaactcctg agccaacaac ttaatatgac tggcatacac aatagccttt atagtgaaaa +taccacttta cgggctccac ctatgactcc ctaaggccca tgttgaggcc cccattgctg +gctcaatgat gctcgctgca gtactcttaa aattaggtgg ctatggcata atacgcctca +tactcattct taacccccta acaaaacaca tagcttatcc tttcctcgcc ctatctttat +ggggtataat cataacaagc tccatctcgc tacggcaaac agatttaaaa tcgctcattg +catactcctc aattagccac atagcccttg tagtagcagc tatccttatc caaaccccct +gaagcttcac cggcgcagtt gttcttataa ttgcccacgg acttacatca tcattattat +tctgcctagc aaactcaaac tacgaacgaa cccacagccg catcataatt ctctctcaag +gactccaaac cctactccca ctaatagccc tttgatgact tctggcaagc ctcgccaacc +tcgccttacc ccccaccatt aacctactag gagagctctc cgtactagta accacattct +cctgatcaaa caccaccctt ttacttacag gatctaacat actaattaca gccctgtact +ccctttatat atttaccaca acacaatgag gcccactcac acaccacatc accaacataa +aaccctcatt tacacgagaa aacatcctca tattcatgca cctatccccc atcctcctcc +tatccctcaa ccccgatatt atcaccgggt ttacctcctg taaatatagt ttaaccaaaa +catcagattg tgaatctgat aacagaggct cacaacccct tatttaccga gaaagctcgt +aagagctgct aactcatacc cccgtgctta acaacatggc tttctcaact tttaaaggat +aacagctatc cattggtctt aggacccaaa aattttggtg caactccaaa taaaagtaat +aactatgtac gctaccataa ccaccttagc cctaacttcc ttaattcccc ctatccttac +caccttcatc aatcctaaca aaaaaagctc atacccccat tacgtaaaat ctatcgtcgc +atccaccttt atcatcagcc tcttccccac aacaatattt ctatgcctag accaagaagc +tattatctca agctgacact gagcaacaac ccaaacaatt caactctccc taagctttaa +actagattat ttctccataa tatttatccc tgtagcactg ttcgtcacat gatccatcat +agaattctca ctatgatata taaactcaga ccccaacatc aaccaattct tcaaatacct +gctcatcttt ctaatcacca tactaatcct agtcaccgct aataacctgt ttcaactctt +tatcggctga gaaggtgtgg gaattatatc ttttctactc attggctgat gatacgctcg +aacagacgcc aacacagcag ccgtccaagc aattctatac aaccgtattg gtgacattgg +ttttatccta gccctagcat gatttctcct acactccaac tcatgagacc cacaacaaat +atctctctta aacaccaacc ctaaccttat cccacttcta ggtttcctcc tagcagcagc +aggcaaatca gctcaactag gcctccaccc ctgactcccc tcggccatag aaggccccac +ccccgtctca gccctactcc actcaagcac tatagtcgtg gcaggggtct tcctactcat +ccgcttccgc catttagcag aaaacaactc actagctcaa actcttacac tatgcctagg +cgctattact actctattcg cggcagtctg cgctctcaca caaaatgata tcaaaaaaat +cgtagccttc tccacttcaa gccaattagg gctcatagta gccacaattg gcatcggcca +gccacaccta gcatttctac acatctgcac ccacgctttc tttaaagcca tattatttat +atgctccgga tccattatcc ataacctcaa taatgagcaa gacatccgaa aaataggagg +tctgctcaaa gccatacccc ttacttcaac ctccctagcc attggcagcc tagcactaat +aggaatacct tttctcacag gcttctactc caaagacctc atcatcgaaa ccgcaaacat +atcacacaca aacgcctggg ccctatcaat cattctcatc gccacctctc ttacgagtgc +ctacagcact cgaataatcc ttctcaccct gacaggtcaa cctcgcttcc caacctttgc +caacatcaac gaaaactact ccaccctatt aaatcctatt aaacgcctaa caattggaag +cctgtttgca ggattcttca tcaccaacaa catcctccct acatccgtac cccaaatgac +aatcccactt tacttaaaac ttacagctct aagcatcact ctcctaggac tcctgacagc +cctagacctc aactacctca ccaacaaact caaaataaaa cacccaccac acacatttta +cttctccaac atactcggat tttaccccaa catcacacac cgcacaattc cctatctagg +ccttctcata agtcaaaatc tacccctact cctcctagac ctaatttgac tagaaaaact +actacccaaa acaatctcac agcatcaaat ctcagcctcc atcactacct ctacccaaaa +aggtttgatc aaactgtact tcctctcttt cttcttccct cttcttttaa tccttcttct +aatcacataa cctattaccc cgagcaatct caatcacaat atatacacca acaaataacg +tccaaccagt aaccactacc aatcaacgcc cataatcata caaagccccc gcaccaatag +gatcttcccg aattaaccct gaaccttccc cctcataaat cattcaactc cccacattat +taaaattcac cacaaccacc accccatcat actctttcac ccacaacacc agccccacct +ccattgctaa ccccactaag acactcacca agacctcaac cccagacccc cacgcctcag +gatactcccc aatggccatc gctgtagtat acccaaaaac aaccatcatc ccccctaaat +aaattaaaaa aaccattaaa cccatataac ctcccccaca gtttaaaata atagcacacc +caaccacacc actaacaatc aacactaaac ccccataaat aggagaaggc ttagaggaaa +accccacaaa ccccattact aaacccacac tcaataaaaa taaaacatat gtcatcattc +tcgcacggac cacgaccgcg actaatgata tgaaaaacca tcgttgtact tcaactacaa +gaacatcaat gacccctata cgcaaaacta acccactagc aaaactaatt aaccactcat +tcattgacct ccctaccccg tccaacatct ccacatgatg aaacttcggc tcactccttg +gtgcctgctt aatccttcaa atcaccacag ggctattcct agccatacac tactcacctg +atgcctcaac cgccttctca tcaattgccc acatcacccg agatgtaaac tatggctgaa +ccatccgcta cctccacgct aacggcgcct caatattctt catttgcctc tttctacaca +tcggacgggg cctatactac ggctcatttc tccaccaaga aacctgaaac atcggcatca +tcctcctact cacaaccata gcagcagcct tcataggcta tgtcctccca tgaggccaaa +tatccttctg aggagccaca gtaatcacaa acttgctatc cgccatcccg tacatcggaa +cagacctagt ccaatgagtt tgaggtggtt actcagtaga tagccctacc cttacacgat +tctttacctt ccactttatc ctacccttca tcatcacagc cctaacaacc ctccatctcc +tatttctaca cgaaacagga tcaaacaacc ctctaggcat cccctcccac tctgacaaaa +tcaccttcca cccctactac acaatcaaag acatcctagg cctattcctc tttctcctga +ccttgataac attaacacta ttctcaccag acctcctagg agacccagac aactacacct +tagccaaccc cctaagcacc ccaccccaca tcaaacccga atgatatttc ctatttgcct +acgcaattct ccgatctgtc cccaataaac taggaggcgt cttagctcta ttactatcta +ttctcatcct agcaataatt cctattctcc acatatccaa acaacaaagc ataatattcc +gcccattaag ccaactactc tactgattcc taatcgcaga cctcttcacc ctaacctgaa +tcggaggaca accagtaagc taccccttca tcaccattgg gcaagtagca tccgtactat +acttcacgac aatcctattc ctgataccaa tcacatccct gatcgaaaac aaaatactca +aatgaacctg cccttgtagt acagaccaat acaccagtct tgtaaaccgg aaacgaagac +ctccttccaa gggcatattc agagaaaaag tcctcgactc caccatcagc acccaaagct +aatattctaa tttaaactat tctctgttct ttcatgggga gacaaatttg ggtactacca +gtattagcta acccatcata attatcatgt atgtcgtgca ttactgccag acaccatgaa +taatgtacag taccataaaa cgcccaatca cctgtagcac atcccaacgg aataccaact +aacccatccc tcacaaaaag tacataacac ataagatcat ttatcgcaca tagcacatcc +cagttaaatc accctcgtcc ccacggatgc cccccctcag atgggaatcc cttgaacacc +atcctccgtg aaatcaatat cccgcacaag agtgcactct cctcgctccg ggcccataac +acttgggggt agctaaagtg aactgtatcc ggcatctggt tcctacttca gggtcataac +acctaaagcg cttcacacgt tccccttaaa taagacatca cgatggatca caggtctatc +accctattaa ccactcacgg gagctctcca tgcatttggt atttttcgtc ggggggtgtg +cacgcgatag tgagacgctg gaaccggagc accacatgtc gcagtatctg tctttgattc +ctgccccatg ctaccattta tcgcacctac gttcaatatt acagccgagc gcacagtgtt +catggtgtta attaattcat gcttgttgga cataaaacaa ccaggtggac gtgaacacaa +ccacccttca caccaaaaac acaacaaaaa tccaaccccc ccccccgcac tagaaaacag +ccccaccaaa ctccaaattt catcttttgg cggtatgcac ttttaacagt cacccctcaa +ctaacatagt cagcccacca gtacaacccc cgcccgccct agcaacacac actgctgctg +atcctatacc ccgaattaac caaaccccaa agacacccca caca \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/GreatApes.txt_vs_protypicalHuman.txt.txt b/DNA_Alignment/DNA_Alignment/bin/Debug/GreatApes.txt_vs_protypicalHuman.txt.txt new file mode 100644 index 0000000..3f15ae2 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/GreatApes.txt_vs_protypicalHuman.txt.txt @@ -0,0 +1,18669 @@ +Score: 66156 +a = g +c = t +a => - +c => - +a => - +c => - +c => - +c => - +c => - +a => - +c => - +a => - +g => - +a => - +a => - +a => - +c => - +c => - +c => - +c => - +a => - +a => - +a => - +c => - +c => - +a => - +a => - +t => - +t => - +a => - +a = a +g => - +c => - +c => - +c = g +c => - +a => - +t => - +a => - +t => - +c => - +c = c +t => - +a => - +g => - +t => - +c => - +g => - +t = a +c => - +g => - +t => - +c => - +a => - +c => - +a => - +c => - +a => - +c => - +a => - +a => - +c => - +g => - +a => - +t => - +c => - +c => - +c => - +g => - +c => - +c => - +c => - +g => - +c => - +c => - +c => - +c => - +c => - +a => - +a => - +c => - +a => - +t => - +g => - +a => - +c => - +c => - +a => - +c => - +c => - +c => - +g => - +a => - +c = c +t => - +g => - +a => - +t = t +a => - +c => - +a => - +a => - +t => - +c => - +a => - +a => - +c => - +t => - +c => - +c => - +c => - +c => - +a = a +c = c +t => - +g => - +a => - +c => - +a => - +a => - +t => - +t => - +t => - +t => - +c => - +a => - +c => - +g => - +t => - +a => - +t => - +g => - +g => - +c => - +g = a +g => - +t => - +t => - +t => - +t => - +c = g +t => - +a => - +c => - +t => - +t => - +t => - +a => - +a => - +a => - +c = a +c = a +t => - +c = t +a => - +a => - +a => - +c => - +c => - +a => - +c => - +c => - +c => - +c => - +g => - +a => - +c => - +a => - +a => - +a => - +- => a +a => - +g = a +- => a +a = t +t = t +c => - +a => - +c => - +g => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +- => c +c => - +a => - +a = c +c = c +c = c +- => t +t => - +a => - +a => - +a => - +a = t +a = g +c => - +a => - +a => - +c => - +a => - +c => - +a => - +a => - +a => - +a => - +a => - +c => - +c = c +a = a +c = c +a => - +c => - +t => - +t => - +c => - +c => - +c => - +a => - +c => - +c => - +a => - +a = a +- => c +c => - +a => - +- => c +c => - +a => - +a => - +g => - +t => - +g => - +c => - +a = c +g => - +g => - +t => - +g => - +g = g +a => - +c = a +- => t +c = a +- => a +a => - +- => a +- => t +a = c +c = c +a = g +a = a +a = a +a = a +t = t +a = a +c => - +a = c +g => - +g => - +t => - +t = t +- => g +g => - +t => - +t => - +c = g +g = g +t => - +a = a +c = c +t = t +t = t +a = c +a => - +t = a +t = t +a = c +a = c +t => - +t => - +g = t +t = t +g = g +g = g +t => - +a = t +c = c +t => - +t => - +g => - +t => - +g = t +a = a +c = c +a => - +c = a +g = g +- => c +c = c +g = t +- => a +a = t +g = g +c = t +c => - +g => - +a => - +- => c +c = a +- => a +a = g +t => - +- => t +t = g +a => - +t = a +- => a +a => - +- => a +a = t +- => c +- => g +c = a +t => - +- => t +- => g +t = g +- => g +- => g +g => - +c => - +a = g +- => t +t => - +c = t +c = c +a => - +c => - +g = a +c = c +t => - +- => a +a => - +t => - +t = a +t = t +a = a +c => - +- => c +c => - +a = c +t => - +c = c +- => g +- => g +g => - +t => - +a = g +c => - +c => - +- => c +c => - +- => c +- => t +- => c +- => g +c = c +g => - +t = t +c => - +- => c +c => - +t => - +t => - +a = c +g => - +t => - +t => - +t = t +c = c +t => - +g => - +t = t +c = c +t => - +a => - +t => - +g => - +- => a +a = t +c => - +g => - +c = c +- => g +t = t +g = g +t => - +a => - +c = a +- => g +- => a +a => - +c = a +c = c +a = a +c = c +g => - +a => - +g => - +g = g +- => c +c = c +c = c +a = t +a => - +g => - +g = a +t => - +c => - +g => - +c = t +a => - +g = a +- => a +a = c +g => - +t => - +g = t +- => a +a => - +t = a +a = a +g = g +c = t +g = g +c => - +a = c +c = c +g => - +t => - +g => - +t => - +g => - +g => - +g => - +g => - +g => - +g = t +- => c +c => - +t => - +g => - +c = c +t => - +t => - +t => - +t => - +t => - +a => - +t => - +g => - +g => - +t => - +t => - +t = t +- => a +- => c +- => c +- => a +a = c +- => c +c = a +g = g +- => t +t => - +a = t +c => - +- => c +c => - +t => - +- => c +c => - +t => - +c = c +- => t +g => - +a => - +- => g +g => - +- => g +g => - +- => g +g => - +c = g +a => - +c => - +t => - +c => - +a => - +c => - +c => - +a => - +a = a +t => - +- => t +- => a +t = g +- => a +a = c +t = t +c => - +- => c +c => - +- => c +c => - +a => - +- => c +c => - +t => - +a => - +t => - +- => c +c => - +t => - +g => - +g => - +a = c +c = c +a => - +c => - +t => - +a => - +g => - +g => - +t => - +a => - +g => - +c => - +a => - +c => - +t => - +a => - +c => - +a => - +g => - +a => - +- => a +a = g +t = t +a => - +a => - +- => a +- => g +a = g +t => - +- => t +t = a +c = c +c = c +c = c +c = c +t => - +t = t +g => - +c => - +a = g +c = c +a = t +c = c +t = t +t = t +- => c +c = c +g => - +c = c +g = t +a => - +- => a +a => - +- => a +a => - +t => - +c = a +c = c +- => t +- => g +a = a +c = c +a => - +- => a +a = t +t = t +- => a +- => c +a = a +c = c +t => - +g => - +g => - +g = g +a => - +c = a +t => - +- => t +t = a +c = c +a = a +- => t +t = g +c = c +c = c +t = a +t => - +g => - +g => - +- => t +t => - +c = t +t = t +- => a +a = c +c = c +g => - +g = g +c => - +c = a +t = a +a = a +t => - +g => - +- => t +t = a +c => - +a = c +a => - +g = a +t = t +g = g +a => - +a => - +- => a +- => t +a => - +t = a +c = c +g => - +a = a +t => - +g => - +g => - +g => - +g => - +g => - +t => - +t = t +c = g +a = a +c = c +a => - +- => a +a => - +t => - +a => - +c => - +c => - +c => - +g = a +g = t +g = t +c => - +- => c +c => - +t => - +- => c +c => - +g => - +c => - +t => - +c => - +- => c +- => a +- => c +c => - +t => - +- => c +c => - +t => - +c = c +- => a +- => t +a = c +c = c +g => - +t => - +g => - +a => - +g = a +a = a +a = a +c = c +- => a +a => - +c => - +g => - +c = a +c = c +c = c +t => - +a = a +t = t +- => a +- => g +- => g +- => a +- => t +- => c +a => - +- => a +a = c +- => c +c => - +t => - +a = c +a => - +- => a +a = c +g => - +t => - +g = t +c = c +c = c +t => - +c = c +c = c +t => - +a = a +c => - +- => c +c => - +a => - +c = c +- => g +- => a +a => - +- => a +a => - +g => - +t => - +t = a +c => - +- => c +c => - +- => c +- => t +c = c +t => - +a => - +- => a +a => - +g = a +g = c +g = g +- => t +t = c +a => - +g = a +a = a +c => - +t => - +c => - +c => - +c => - +c => - +c => - +c => - +c = c +g => - +t = t +a => - +g => - +g = a +c = c +a => - +c = a +c => - +c => - +c => - +t => - +g => - +c => - +t => - +c => - +c => - +c = c +a = a +c = c +- => t +- => a +t = t +- => c +a => - +a => - +- => a +a => - +t => - +t => - +g => - +- => a +- => c +a = t +c = c +c = c +c = c +t => - +a => - +c = a +a = a +c => - +g => - +a = c +t = t +a => - +c = a +a = a +c => - +g => - +c => - +t => - +a => - +t => - +t => - +t => - +a => - +c => - +t => - +a = c +g = g +a => - +a => - +t => - +a => - +c => - +a = a +c = c +a => - +- => a +- => t +- => g +a => - +t = a +a = a +c => - +a = c +t => - +g = g +a => - +a => - +a => - +- => a +a => - +- => a +- => c +- => a +- => t +a = t +c = c +- => g +- => t +a = a +- => c +c => - +t => - +- => c +c => - +- => c +c => - +- => c +- => t +- => c +c => - +t => - +a = c +- => c +c => - +- => c +c => - +- => c +c = a +- => a +a => - +- => a +a => - +t = a +c = c +- => t +a => - +- => a +- => c +a = a +c => - +- => c +c => - +a = c +t = t +- => a +a => - +- => a +- => c +a = c +g => - +g => - +c = c +- => a +a => - +- => a +a => - +c = a +c = a +c = a +t = t +a = a +c = c +a => - +c = a +- => t +g = g +a = a +t = t +g = g +t => - +c = t +c => - +a => - +- => c +c => - +t => - +a = c +a = a +c => - +- => c +c => - +- => c +c = a +g = g +- => t +- => t +c = c +- => a +a = t +a = a +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +- => g +g => - +a = g +c = c +a = a +t = t +g = g +- => t +t => - +a = t +a = a +t = t +a = a +a = a +g = g +t = t +a = a +c = c +c = c +a = a +- => c +c => - +a = c +g = g +a = a +c = c +c = c +g = g +t = t +c = c +a = a +t = t +t = t +a = a +c = c +g = a +t = t +g = g +c = c +- => t +t => - +g = t +t = t +a = a +t = t +g = g +- => t +- => a +t = t +- => c +- => g +a = c +c = c +t => - +- => a +a => - +t => - +t => - +- => a +a = c +a => - +t = a +a = a +c = c +t = t +a = a +c = c +c = c +c = c +a => - +- => a +a = c +t = t +- => c +c = a +g => - +a = g +t = t +t = t +a = a +t = t +- => g +g = a +- => a +a = c +c = c +c = c +- => a +a = c +t => - +c = c +a = a +t = t +g = g +g = g +g = g +t = t +t = t +t = t +a => - +- => a +a = g +a = a +c => - +a = c +- => g +g = a +a = a +g = g +g = g +g = g +g = g +t = t +a = a +c = c +t = t +t = t +t = t +c = c +t = t +t = t +g = g +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +a = a +a = a +t = t +t = t +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +t = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a => - +c = a +- => t +t = t +a = a +c = c +c = c +a = a +c = c +c = c +t = t +c = c +- => a +a => - +g => - +c = a +- => t +- => t +t => - +c = t +c = c +t = t +g = g +a = a +a = a +a = a +a = a +a = a +g = g +a = a +g = g +a = a +c = c +t => - +t = t +- => a +a => - +t = a +a = a +c = c +g = a +g = g +g = g +a = a +a = a +c = c +c = c +- => t +- => t +t => - +- => t +t => - +c => - +c = t +t = t +c = c +c = c +- => a +a => - +g = a +a = a +a = a +g = g +c = t +a => - +- => a +a = g +a = a +g = g +g = g +c = c +c = c +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a => - +- => a +a => - +c = a +- => t +c = c +- => a +a => - +g => - +- => a +a => - +c = a +- => t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +t = t +c => - +c = c +c = c +- => t +g = g +t = t +c = c +c = c +a = g +a = g +g = g +t = t +a = a +a = a +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +g = g +c = t +t = t +- => a +a => - +g = a +t = t +c = c +c = c +c = c +t => - +a = t +c = c +- => t +- => a +a = t +c = c +t => - +a = a +a = a +c = c +c = c +a = a +t = t +- => a +a => - +g = a +t = t +c = c +c = c +t => - +- => t +t = a +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +- => a +a => - +g = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +t = t +a = a +c = c +g = g +a = a +t = t +g = g +a = a +a = a +c = c +g = a +g = g +g = g +t = t +t = t +a => - +c = a +c = c +- => t +- => a +a = c +c = c +t => - +a => - +c = a +- => t +- => t +t => - +- => t +t => - +c = t +c = c +c = c +c = c +a = a +t = t +c = c +g = g +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a = a +a = a +c = c +a = a +g = g +g = g +a = a +g = g +g = g +c = c +t = t +a = a +a = a +g = g +t = t +c = c +c = c +a = a +a = a +t = t +c => - +c => - +c = c +- => t +- => t +a = a +c = c +t => - +- => t +t = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +g = g +- => c +c = c +t => - +a = g +a = a +t = t +c = c +c = c +t => - +- => t +t = c +a = a +g = g +- => t +t => - +c = t +a = a +- => t +t => - +c = t +t = t +c = c +a => - +t = a +c = c +- => t +a = a +a = a +c = c +c = c +g = g +a = a +a = a +t => - +- => t +t = c +a = a +c = c +c = c +c = c +g = g +c => - +c = c +- => t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +t = t +a => - +c = a +- => t +a = a +c = c +c = c +t = t +- => c +c = c +t => - +t = t +- => a +- => c +a = c +t => - +c = c +c = c +t => - +t = t +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +- => c +c = c +t => - +t = t +- => a +a = c +t => - +c = c +t = t +a = a +t = t +c = c +a = a +t = t +t = t +a = a +t = t +- => c +c = c +t => - +c = c +g => - +a = g +- => t +t => - +- => t +t = c +c = c +t = t +g = g +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a => - +- => a +a => - +c = a +- => t +c = c +c = c +c = c +t = t +g = g +t = c +c = c +t = t +a = a +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +c = c +g = a +c = c +a = a +t = t +c = c +c = c +g = g +t = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +c = c +c = c +a = g +a = a +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +c = c +a = t +c = c +c = c +c = c +c = c +a = a +c = c +g = a +a = a +a = a +- => t +t => - +c = t +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +t => - +- => t +t = c +c = c +c = c +a => - +c => - +- => a +- => t +a = a +- => t +t => - +c = t +a = a +a = a +c = c +a = a +g = g +a = a +c = c +c = c +c = c +a = a +g = g +a = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +c = c +a = a +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +t = t +t = t +a = a +c = c +a => - +- => a +a = g +t = t +- => a +a => - +g = a +t = t +t = t +c => - +- => c +c => - +a => - +g => - +t => - +c => - +- => c +- => t +c = c +t = t +c = c +t => - +- => t +t => - +- => t +t = c +c = c +- => t +t = t +c = c +- => t +c = c +- => t +t => - +- => t +t = c +a = a +- => t +t => - +c = t +c = c +g = g +g = g +a = c +t = t +- => c +c = c +c = c +t => - +a = g +c = c +a = a +g = g +a = a +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +a = a +- => t +t => - +c = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +t = t +c = c +c = c +a = a +c = c +t = t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +g = g +t = c +c = c +- => t +t => - +c = t +a = a +c = c +c = c +c = c +t = t +c => - +- => c +c => - +- => c +c = a +c = c +t = t +- => a +a => - +c = a +g = g +g = g +a = a +t = t +- => c +c = c +t => - +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +t = t +a = a +- => g +g => - +- => g +g => - +a = g +c = c +a = a +a = a +a = a +g = g +c = c +a = a +c = c +- => g +a = t +t = t +c = c +t => - +t = t +t = t +a = a +t = t +c = c +c = c +t = t +- => c +c = c +t => - +a = a +c = c +c = c +t = t +c => - +- => c +c = a +c = c +a = a +a = a +c = c +a = g +a = a +t = t +c = c +c = c +c = c +g = g +a => - +c => - +a = a +c = c +- => g +- => t +t = t +a => - +c = a +- => t +t = t +a = a +c = c +t = t +t = t +c = c +c = c +c = c +a = g +- => t +t => - +c = t +c = c +t = t +- => a +a = c +t => - +t = t +t = t +c = c +a => - +c = a +c = c +- => t +t = t +t = t +c = c +c = c +a = a +t = t +t = t +t = t +c = c +t = t +t = t +a = a +g = g +c = c +a = a +c = c +- => a +a = c +t => - +t = t +c = c +c = c +c = c +a => - +t = a +c = c +c = c +c = c +- => t +g = g +- => a +a = c +t => - +a = a +g = g +a = a +t = t +g = g +a = a +c = c +t = t +c = c +a = a +t => - +- => t +t = c +g = g +g = g +t = a +g = g +g = g +a = a +g = g +t => - +- => t +t = c +t = t +g = a +a = a +g = g +t = t +a => - +- => a +a => - +c = a +c = c +- => t +t = t +g = g +a = a +t = t +c = c +c = c +a = a +g = g +a = a +c = c +a => - +- => a +a = g +g = g +g = g +c = t +t = t +a = a +c = c +a = a +t = t +g = a +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +t = t +a = a +t = t +c = c +g = a +t = t +t = t +c = c +a = a +a = a +a = a +c = c +a => - +c = a +- => t +t = t +a = a +a = a +t = t +g = g +a = a +c = c +a = a +c = c +c = c +- => g +g => - +a = g +g = g +g = g +a = a +g = g +t = t +c = c +t = t +t = t +c = a +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +g = g +g = g +a = a +g = g +t = t +a = g +c = c +c = c +c = c +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +c = c +g = a +a = a +c = c +g = g +a = a +t = t +a => - +c = a +- => t +c = c +a => - +a => - +c = a +a = a +c = c +- => g +- => t +t = t +c = c +a = g +t = t +c = c +c = c +t = t +c = c +c = c +t = t +a => - +c = a +- => t +t = t +a = a +c = c +g = g +g = g +c = c +t = t +a = a +c = c +a = a +a = a +a = a +g = g +t = t +c = c +c = c +a = a +a = a +a = a +g => - +a = g +a = a +c = c +- => t +c = c +a => - +c = a +- => t +c = c +t = t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +c = a +g = g +g = g +c = c +a = a +- => t +t => - +c = t +a = a +t = t +a = a +t = t +c = c +c = c +g => - +- => g +g => - +- => g +g = a +g = g +c = c +a = g +g = g +g = g +c = c +t = t +a = a +c = c +a = a +c = c +a = a +t = t +- => c +c = c +t => - +t = t +t = t +c = c +t = t +c = c +c = c +g = g +t => - +- => t +t = c +t = t +a => - +c = a +- => t +t = t +t = t +c = c +t = t +t = t +a = a +t = t +a = a +a = a +c = c +t = t +c = c +c = c +g = g +c = c +g = g +g = g +c = t +- => a +a => - +- => a +a = c +t => - +c = c +g = g +c = c +a => - +c = a +c = c +- => t +t = t +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +a => - +c = a +c = c +- => t +a = a +a = a +g = g +t = t +c = c +g = g +g = g +t = t +a = a +- => t +t => - +c = t +a = a +a = a +a = a +t = t +g = g +t = c +a = a +g = g +a = a +g = g +c => - +c = c +- => t +c = c +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +g = g +t = c +t = t +a = a +a = a +c = c +t = t +a = a +c = c +- => t +t => - +c = t +t = t +t = t +c = c +c = c +g = g +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +g = g +t = c +a = a +g = g +t = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +a = g +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +c = c +g = a +g = g +g = g +a = a +c = c +a = a +c = c +c = c +a = a +c = c +t = t +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +t = t +c = c +c = c +t = t +a => - +- => a +a = g +t => - +- => t +t = c +c = c +g = g +t = t +c = c +c = c +g = g +t = c +g = g +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +g = g +t = t +a = a +c = c +a = g +c = c +c = c +t = t +c = c +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +g = a +c = c +c = c +c = c +c = c +- => a +a = c +t => - +c = c +c = c +c = c +t = t +c = c +c = c +a = a +g = g +t = c +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +a = a +t = t +t = t +a = a +a = a +- => t +t => - +c = t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +- => t +a => - +c => - +g = a +a = a +t = t +- => c +c => - +a = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +- => a +a => - +t = a +c = c +c = c +c = c +c = c +a = a +g = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +a = a +a = a +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +g = g +t = t +t = t +g = g +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +g = g +t = t +- => a +a => - +- => a +a = c +t => - +c = c +a = a +g = g +c = c +g = a +c = c +c = c +- => a +a => - +g = a +c = c +a => - +c = a +- => t +c = c +a = a +g = g +g = g +c = c +a = a +c = c +g = g +c = c +t = t +c = c +- => t +- => t +- => a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +t => - +g => - +t => - +a = a +t = t +a = a +c = c +- => g +a => - +a => - +- => a +a => - +- => a +a => - +t => - +- => a +- => c +a => - +- => a +a => - +- => a +a => - +- => a +- => g +a => - +- => a +a = c +t => - +a = a +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +g => - +- => g +g = a +a = a +g = g +a = a +t = t +t = t +c = c +g = g +g = g +a = a +a = a +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a => - +c = a +- => t +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +a = a +t = t +c = c +a = g +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a => - +- => a +a = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +g = a +a = a +t = t +a = a +a = a +t = t +a => - +- => a +a => - +- => a +- => g +a => - +- => a +a = c +t => - +t = t +t = t +g = a +- => a +a => - +c = a +a = a +c = c +c = c +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +t = t +a = a +t = t +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +t = t +a => - +c = a +- => t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c => - +c = c +c = c +c = c +c = c +c = c +- => t +t = t +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +c = c +a => - +a => - +- => a +- => g +a => - +- => a +a => - +- => a +a => - +c = a +c = c +c = c +- => t +a = a +t = t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +g => - +- => g +g = a +t = t +a => - +- => a +a => - +c = a +c = c +- => t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +g = g +g = g +a = a +c = c +t = t +c = c +c = c +g = g +c = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +g = g +a = t +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +a = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +- => a +a => - +g = a +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +g = g +t = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +a => - +c => - +c = a +- => t +c = c +c = c +- => t +g = a +a = a +c = c +c = c +a = a +c = c +a = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a => - +c = a +- => t +t = t +t = t +a = g +a => - +- => a +a => - +- => a +a => - +t => - +t => - +a = a +t = t +t = t +- => a +a = t +c = c +a = a +c => - +- => c +c = a +- => t +c = c +c = c +- => t +t = t +c = c +a = g +a = a +c = c +t = t +t = t +a => - +c = a +- => t +t = t +a = a +a = a +a = a +t = t +a = a +c = c +- => t +t = t +c => - +c => - +c => - +- => c +c => - +- => c +- => t +c = c +t => - +- => t +t = c +- => c +c => - +- => c +c => - +a = c +a = a +g = g +t = t +c = c +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +a = a +a = a +g = g +c = c +c = c +c = c +t => - +- => t +t = c +c = c +t = t +a = a +g = g +g = g +a = a +t = t +a = a +a = a +c = c +c = c +a = a +c = c +g = g +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +c = c +a = a +a = a +c = c +t = t +a => - +- => a +a => - +c = a +- => t +c = c +a = a +t = t +c = c +a => - +c = a +- => t +c = c +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a => - +- => a +a => - +c = a +c = c +- => t +t = t +g = g +c = t +- => a +a => - +- => a +a = c +t => - +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +t = t +a = a +t = t +a = a +a = a +c = c +a => - +c = a +- => t +t = t +a = a +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +g = g +a = a +g = g +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c => - +a = c +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +t = t +a = a +c = c +a = a +c = c +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +c = c +t = a +t = t +- => c +c = c +c = c +t => - +a = a +a = a +t => - +t => - +t => - +- => t +t = c +- => c +- => t +- => a +c = c +t => - +t = t +c = c +t = a +c = c +c = c +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +t = t +t = t +c = c +t = t +c = c +t = t +c = c +c = c +t = t +t = t +c = c +a = a +- => t +t => - +g = t +t = t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +- => a +a => - +g = a +t => - +t => - +- => t +- => a +t = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +- => a +a => - +t = a +c = c +t = t +c = c +c = c +a => - +t = a +c = c +- => t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +g => - +- => a +a = c +c = c +t = t +c = c +t = t +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +a = a +c = c +g = g +a = a +c = c +a = a +c = c +- => t +t => - +c = t +t = t +a = a +a = a +c = c +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c = a +- => t +c = c +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c = c +a = g +a = a +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +g = g +t => - +t => - +- => t +- => c +t = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +c = c +a = g +t = t +- => c +c = c +t => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +- => g +- => a +g = g +a = c +a => - +t => - +a => - +c = a +- => t +t = t +c = c +t = t +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +t = t +a = a +t = t +- => c +c = c +c = c +c = c +t => - +t = t +a = a +a = a +c = c +a = a +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +c = c +t = t +a = a +c = c +a = g +a => - +c = a +- => t +c = c +c = c +c = c +a = a +t => - +- => t +t = c +t = t +t = t +a = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +t = t +t = t +t = t +a => - +c => - +a = a +c = c +a = a +c = c +- => g +- => t +a => - +c = a +- => t +c = c +a = a +c => - +- => c +c => - +- => c +c => - +a = c +c = c +- => t +a = a +a = a +a = a +a = a +t = t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +- => a +a => - +c = a +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +- => a +a => - +g = a +t = t +c => - +c = c +- => t +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +c = c +- => t +t => - +c = t +t = t +c = c +a = a +c = c +- => t +- => g +t => - +a = t +c = c +g => - +a = g +a = c +t = t +- => c +c = c +t => - +c = c +g = g +a = a +c = c +- => a +a = c +t => - +t = t +c = c +a = a +a = a +a = a +a = a +t => - +- => t +t = c +c = c +a = a +t => - +- => t +t = c +t = t +- => c +c => - +a = c +c = c +c = c +c = c +t = t +a = a +a = a +c = c +- => a +a => - +g = a +t = c +a = a +a = a +a = a +- => c +c => - +- => c +- => t +- => t +c => - +- => c +c => - +- => c +c => - +a = c +t => - +g => - +c = c +c = c +t = t +a = a +c => - +a = c +t = g +c = c +c = c +c = c +t => - +c = c +c = c +- => t +- => t +t = t +a = a +c = c +a = a +a = a +c = c +a => - +- => a +a => - +c = a +- => t +c = c +a => - +c = a +- => t +t = t +a = a +c = c +t => - +t = t +c = c +- => t +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +t = c +t = t +t = t +g = a +t = t +c = c +c = c +g = g +a = a +a = a +g = g +g = g +t = c +t = c +a = g +a = a +c = c +a = g +a = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +t = t +t = t +- => a +- => c +a = c +t => - +c = c +c = c +t => - +a = a +a = a +a = a +t => - +- => t +t = c +a = a +t = t +c = c +c = c +c = c +- => a +a = c +- => c +c => - +- => c +c => - +t => - +- => c +c = a +a = a +t => - +c = t +a = a +a = a +a = a +a = a +g = g +c = c +a => - +- => a +a => - +c = a +- => t +t = t +a = a +c = c +a => - +- => a +a => - +c = a +- => t +c = c +g = a +t => - +- => t +t => - +- => t +t = c +c = c +c = c +a => - +- => a +a = c +c = c +c = c +c = c +t = t +t = t +c = c +g = g +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +g = g +g = g +a = a +c = c +- => a +a => - +g = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +t = t +t = t +c => - +c = c +- => t +t = t +a = a +a = a +t = t +a = a +a = a +g = g +c = c +t = t +c = c +a = a +c = c +g = g +a => - +c = a +- => t +a = a +t = t +c = c +c = c +g = g +t = c +g = g +- => a +a => - +g = a +c = c +a = a +t = g +t = t +- => c +c = c +t => - +c = c +t = t +c = c +c = c +a => - +c = a +- => t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +t => - +t => - +a = t +- => c +c = a +- => t +t = t +a => - +- => a +a = t +c = c +t = t +a = a +t = t +c = c +c = c +c = c +g => - +- => g +g = a +g = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +c = c +a = a +c = c +a => - +c = a +- => t +a = a +c = c +t = t +a = a +t = t +a = a +c = c +a = a +a = a +a = a +c = c +g = g +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +a = a +c = c +t = t +a = a +c = c +t = a +c = c +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +- => t +t => - +- => t +t => - +c = t +g = g +g = g +a = a +c = c +a = a +c = c +t = t +- => c +c = c +t => - +t = t +t = t +t = t +c = c +c = c +a = a +t = t +a = a +a = a +g = g +g = g +a => - +t => - +- => a +- => c +a = g +a = a +- => t +t => - +c = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +g = g +g = g +t = t +t = t +a = a +c = c +c = c +g => - +- => a +a = c +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +t = t +c = c +a => - +t => - +t = a +c = c +- => t +c = c +- => t +c = c +c = c +a = a +t = t +a = a +c = c +c = c +g = a +a = a +a = a +a = a +c = c +t = t +c = c +g = a +t = t +c = c +t = a +g = g +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c => - +c = c +- => t +t = t +a => - +c = a +- => t +a = a +g = g +a = a +a = a +c = c +g = a +a = a +g = g +t = t +- => a +a => - +- => a +a = c +t => - +a => - +- => a +a => - +c = a +- => t +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +c = c +c = c +t = t +- => a +a = c +t => - +t = t +a = a +c = c +c = c +t = t +a = g +g = g +g = g +c = c +c = c +t = t +c = c +g = g +t = t +a = g +t = t +a = a +t = t +t = t +t = t +a = a +t => - +- => t +t = c +a = a +t = t +a = a +c = c +c = c +g = g +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t = c +c = c +g = g +c = c +a = a +c = c +c = c +c = c +a => - +c = a +- => t +g = g +t = t +c = c +t = t +a = a +c = c +a = a +c = c +a = g +t = t +- => c +c = c +t => - +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +c = c +g = a +a = a +c = c +c = c +g = a +g = a +c = c +t = t +a = a +c = c +g = g +g = g +t = c +t = t +a = a +a = a +c = c +a => - +c => - +c = a +- => t +- => t +g = g +a = a +t = t +g = a +a = a +t = t +a = a +c = c +t = t +c = c +g = a +g = g +g = g +a = a +t => - +- => t +t = c +a => - +- => a +a => - +c = a +c = c +- => t +g = g +a = a +a = a +c = c +t = t +t = t +c = c +a = a +c = c +c = c +t = t +c = c +t = t +t = t +c = c +c = c +g = g +a = a +t = t +g = g +c = c +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +t = t +- => a +a = c +t => - +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +a = a +c = c +a => - +c = a +- => t +t = t +- => c +c = c +t => - +c = c +g = g +c = c +g = g +t = t +c = c +t = t +g = g +a = a +c = c +g => - +- => g +g = a +c = c +g = g +c = c +t = t +t = t +a = g +t = t +c = c +t = t +c = c +- => a +a = c +t => - +c = c +- => a +a = c +t => - +t = t +a = a +t = t +c = c +g = g +c = c +g = g +g = g +a = a +- => t +t => - +c = t +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +- => a +a => - +t = a +t = t +c = c +t = t +c = c +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t = t +c => - +g = a +a = a +t = t +c = c +- => a +a = c +c = c +t => - +c = c +a = g +a => - +c = a +- => t +a = a +a = a +a = a +a = a +g = g +a = a +c = c +g = g +a = a +t => - +t => - +- => t +- => c +t = c +a = c +c = c +c = c +g = a +c = c +c = c +t = t +t = t +c = c +g = g +c = c +c = c +t = t +a = a +c = c +t = t +c = c +a = a +- => t +t => - +c = t +c = c +t = t +t = t +c = c +t = t +g = a +g = a +g = g +g = g +a = a +c = c +g => - +- => g +g = a +t = t +g = g +c = t +t = t +g = g +a = a +t = t +a = a +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +g = g +c = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +g = g +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +c = c +g => - +- => g +g = a +c = c +t = t +c = c +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c => - +c = c +- => t +g = g +g = g +a = a +- => t +t => - +c = t +- => a +a => - +- => a +a = c +c = c +t => - +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t => - +t => - +- => t +- => c +t = c +g = g +g = g +a = a +t = t +c = c +t = a +t = t +c = c +- => a +a = c +c = c +c = c +c = c +t => - +- => a +a = c +t => - +t = t +c = c +c = c +- => g +a => - +- => a +a => - +t => - +c = a +c = c +c = c +- => t +a => - +- => a +a => - +c = a +- => t +c = c +a = g +c = c +a => - +- => a +a => - +- => a +a => - +t = a +t = t +c = c +- => t +t = t +- => c +c = c +t => - +c = c +t = g +a = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +c = c +g = g +a = a +- => t +t => - +c = t +c = c +c = c +g = g +a = c +t = t +c = c +c = c +t = t +- => a +a = c +t => - +t = t +t = t +t = t +g = g +g = g +t = c +t = t +a => - +c = a +- => t +a = a +g = g +t = c +g = g +g = g +t = c +t = t +a = a +t = t +g = g +c = c +c = c +a = a +a = a +c = c +a = a +t = t +a = a +t = t +- => c +c = c +t => - +t = t +a = a +a = a +c = c +g = g +a => - +- => a +a => - +c = a +c = c +- => t +t = t +g = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +g = g +c = t +a = a +g = g +a = a +c = c +a = g +a = a +g = g +- => c +c = c +t => - +c = c +g = g +c = c +a = a +t = t +a = a +g = g +t = t +a = a +g = g +- => t +t => - +c = t +g => - +- => g +g = a +t = c +t = t +a = a +c = c +t = t +c = c +- => g +a = t +t = t +c = c +t => - +t => - +- => t +t => - +- => t +t = c +c = c +t = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +g => - +- => g +g => - +- => g +g = a +t = t +- => g +- => c +g => - +t => - +- => g +g => - +- => g +g => - +a = g +a = a +g = g +a = a +g = g +t = t +c = c +g = g +g = g +c = c +t = t +- => a +a = c +t => - +t = t +t = t +c = g +t = t +c = c +- => a +a => - +- => a +a = c +c = c +t => - +t = t +t = t +g = a +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a => - +c = a +- => t +t = t +g = g +a = a +- => t +t => - +c = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +a => - +c = a +- => t +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +t = t +c = c +t = t +a = a +c = c +t = t +c = c +g = a +t = t +c => - +c = c +- => t +a = a +t = t +a = a +a = a +a = a +c = c +t = t +t = t +c = c +t = t +t = t +a = g +a => - +c = a +c = c +- => t +a => - +- => a +a => - +c = a +- => t +t = t +a = a +c = c +- => a +a => - +- => a +a => - +c = a +c = c +c = c +c = c +a = a +g = g +a = a +c = c +t = t +c = c +a = a +a = a +a = a +t = t +a = a +t = t +a = a +t = t +a = a +g = g +t = t +a = g +t = t +c = c +a = a +c = c +t = t +c = c +t = t +t = t +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +a = g +g = g +t = t +a = a +c = c +a => - +c = a +- => t +t = t +g = g +c = c +t = t +t = t +g = g +- => t +t => - +c = t +a = a +c = c +g = g +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +- => a +a = c +t => - +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t => - +- => t +t = c +a = a +g = g +a = a +t = t +c = c +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +g = g +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +- => g +a => - +- => a +- => c +a = c +c = c +t => - +t => - +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +a => - +- => a +a = c +c = c +g = g +a = a +g = g +t = t +c = c +a = a +c = c +a = a +g = g +t = t +c = c +g => - +- => a +a => - +- => a +a = g +c = c +t = t +c = c +t = t +a = a +t = t +t = t +a = a +- => t +t => - +c = t +g = g +a = a +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +- => g +- => t +g = g +t = t +a => - +t = a +c = c +t => - +t = t +t = t +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +t = t +c = c +t = t +c => - +c = c +- => t +g = g +a = a +c = c +t = t +a => - +c = a +- => t +t = t +a = a +t = t +t = t +t = t +c = c +c = c +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = c +t = t +g = g +c = t +t = t +- => a +a = c +t => - +c = c +t = t +a = a +a = a +a = a +a = a +t = t +g = g +c = t +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +t = t +c = c +g = a +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +a = a +t = t +- => c +c = c +c = c +t => - +a => - +- => a +a => - +c = a +- => t +t = t +a = g +c = c +t => - +- => t +t = c +c = c +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +c = c +t = t +- => a +a = c +t => - +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +a = a +t => - +- => t +t = c +c = c +c = c +t = t +t = t +c = c +a => - +- => a +a = g +t = t +c = c +c = c +c = c +g = a +a = a +t => - +- => t +t = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +t = t +a => - +c = a +- => t +c = c +a = a +t = t +c = c +g = a +c = c +- => a +a = c +t => - +g = g +t = t +- => a +a = c +t => - +c = c +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +a = a +c = c +g = g +t = t +g = g +g = g +t = t +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +- => c +c => - +- => c +c => - +- => c +c => - +a = c +g = g +g = g +a = a +t = t +t = t +c = c +t = t +g = g +g = g +t = t +t = t +a = a +c = c +c = c +t = t +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +a = a +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +t = t +t = t +t = t +c = c +g = g +g = g +t = t +a = a +c = c +a = a +a = a +c = c +a => - +- => a +a => - +t = a +t = t +c = c +- => t +g = g +t = t +g = a +c = c +c = c +c = c +c = c +c = c +a = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +t = t +c = c +g = g +t = t +c = c +g = a +a = a +g = g +- => a +a => - +- => a +- => c +a => - +t => - +g = a +c = c +t = t +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a => - +- => a +a = g +c = c +a => - +c = a +- => t +t = t +c = c +g = g +g = g +a = a +g = g +a = a +c = c +- => a +a => - +- => a +a = c +t => - +a = a +g = g +t = t +c = c +t = t +a = a +a = a +g = g +t = t +g = g +t = t +t = t +a = a +g = g +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a = a +t = t +a = a +a = a +a = a +t = t +g = g +- => t +t => - +c = t +c = c +t = t +c = c +c = c +a = t +t = t +t = t +t = t +g = g +g = g +g = g +c = c +c = c +a => - +c = a +- => t +t = t +- => a +a = c +t => - +t = t +- => a +a = c +t => - +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c => - +c = c +- => t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +a = a +c = c +g = a +t = t +a = a +c = c +t = t +t = t +a = g +t = t +a = a +c = c +t = t +- => c +c = c +c = c +t => - +a = a +c = c +a = a +a = a +a = a +a = a +g = g +a = a +g = g +c = c +a = a +c = c +- => a +a = c +t => - +t = t +t = t +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +a => - +- => a +a => - +c = a +c = c +- => a +a => - +c = a +- => t +t = t +a = a +c = c +a = a +c = c +c = c +a = a +- => c +c => - +a = c +c = c +a = a +c = c +t = t +c = c +a => - +c = a +c = c +- => t +c = c +- => g +g => - +- => g +g => - +a = g +g = g +t = t +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +- => a +- => c +a => - +t => - +a = a +t => - +- => t +t = c +t = t +c = c +c = c +c = c +t = t +c = c +a = a +t = t +g = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +- => a +a = c +t => - +t = t +a = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +- => a +a => - +- => a +a = c +t = t +c = c +t => - +a = a +g = g +g = g +a = a +c = c +a = a +t = t +t = t +c = c +a => - +t => - +t = a +t => - +- => t +t = c +c = c +- => t +c = c +- => t +c = c +a => - +c = a +c = c +- => t +a => - +c = a +- => t +a = a +a = a +a = a +c = c +t = t +a = a +g = g +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = g +c = c +a = a +c = c +c = c +a = a +a = a +t = t +g = g +a = a +t = t +c = c +a = g +t = t +g = g +c = t +c = c +t = t +c = c +t = t +c = c +g = a +a = a +g = g +a = a +- => g +g => - +- => g +g => - +a = g +t = t +c = c +a = a +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a => - +c = a +- => t +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +c = c +g = g +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +g => - +- => g +g = a +t = t +c = c +t = t +t = t +c = c +a = a +g = g +t = t +a = a +g = g +- => t +- => t +t => - +- => t +t => - +- => t +t => - +c => - +c = t +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +t = t +c = c +a = a +t = t +c => - +c = c +- => t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +t = t +c = c +t = t +c = c +t = t +- => c +c = c +t => - +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +g = g +c => - +c = c +- => t +g = g +a = a +c = c +a => - +c = a +c = c +- => t +c = c +a => - +- => a +a = c +g = g +c = c +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +t = t +c = c +t = t +t = t +a = a +t => - +- => t +t = c +a = a +t = t +t = t +a = a +c = c +t = t +a = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +c = c +a = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +g = g +t = c +t = t +a = a +a = a +t = t +- => a +a = c +t => - +t = t +c = c +t => - +- => t +t => - +g => - +- => t +- => a +t = c +t = t +g = g +a = a +c = c +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +t = t +t = t +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a => - +t => - +t = a +c = c +- => t +c = c +- => t +t = t +- => a +a = c +t => - +c = c +g = g +a = a +c = c +g = a +a = a +t = t +g = g +a = a +t = t +g = g +t = c +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +c = c +a = a +c = c +c = c +g = g +- => a +a = c +t => - +t = t +a = a +a = a +c = c +- => t +t => - +c = t +c = c +t = t +c = c +a = a +t = t +a = a +c = c +g = g +t = t +t = t +a = a +c = c +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +a = a +t => - +t => - +- => t +- => c +t = c +a = a +g = g +a = a +c = c +a = a +a = a +a = a +c = c +g = a +g = g +c = c +a = a +t = t +- => c +c => - +g => - +c = c +- => g +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +g = g +a = a +a = a +c = c +a = a +a = a +t = t +a => - +c = a +- => t +t = t +a = a +a = a +t = t +- => a +a = c +t => - +g => - +- => g +g => - +- => g +g = a +g = g +t = t +a = a +t => - +t => - +- => t +- => c +t = c +c = c +t = t +a = a +t = t +c => - +c => - +- => c +c = a +- => t +g = g +c = t +t = t +c = c +c = c +t => - +- => t +t => - +- => t +t = c +- => c +c = c +c = c +t => - +a = a +t => - +- => t +t = c +c = c +g = g +a = a +t = t +a = a +c = c +a = a +c = c +a = a +a = a +a = a +a = a +c = c +a => - +- => a +a = g +t = t +c = c +c = c +c = c +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +c = c +t = t +t = t +a = a +c = c +t = t +c = c +- => a +a = c +t => - +a = a +c = c +t = t +c = c +c = c +g = g +c = c +a = a +t = t +a = a +a = a +t = t +a => - +c = a +- => t +g = g +g = g +t = t +a = a +t = t +c = c +g = g +g = g +t = c +g = g +g = g +a = a +t => - +- => t +t = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +t = t +c = c +a = a +t = t +g = g +a = a +c => - +g => - +t => - +c = c +g = g +- => c +c => - +t => - +c = c +g = g +- => t +- => t +t = c +- => a +a = t +- => g +g = a +t = t +a = a +a = a +c = c +t = t +c = g +g = g +g = g +t = t +c = c +g = g +t = c +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g => - +- => g +g = a +a = a +g = g +t = c +t = t +g = g +t = t +a = a +c = c +c = c +c = c +g => - +- => g +g = a +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +a = a +- => t +t => - +c = t +c = c +a = a +c = c +c = c +t = t +c = c +g = a +g = g +g = g +c = c +a = a +t = t +t = t +t = t +c = c +a = t +c = c +c = c +a = a +t = t +a => - +- => a +- => g +a => - +- => a +a => - +- => a +a => - +g = a +t = t +g = g +a = a +t = t +a = a +- => t +t => - +- => t +t => - +- => t +t => - +c = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +- => t +t => - +a = t +c = c +g => - +- => g +g = a +t = t +c = c +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +a = a +a = a +c = c +c = c +g = g +a = a +g = g +t = t +c = c +c = c +t = t +c = c +- => a +a => - +- => a +a => - +t => - +c = a +c = c +- => t +a = a +t = t +c = c +a = a +a = a +g = g +a = a +a = a +c = c +c = c +c = c +g = g +t = t +c = c +a => - +t => - +t = a +c = c +- => t +c = c +- => t +c = c +a = a +c = c +t = t +c = c +a = a +t => - +- => t +t = c +a = a +t = t +c = c +t = t +t = t +- => a +a = c +t => - +a = a +a = a +a = a +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +a = a +t => - +- => t +t = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a => - +c => - +c = a +- => t +- => t +t = t +a = a +a = a +t => - +- => t +t = c +a = a +c = c +g = g +c = c +t = t +- => a +a = c +t => - +t = t +c = c +a = a +t = t +c => - +c = c +c = c +c = c +c = c +- => t +t = t +c = c +c = c +c = c +t = t +a = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t = t +a = a +c = c +- => a +a = c +t => - +g => - +- => g +g => - +- => g +g = a +c = c +g = g +c = c +a => - +- => a +a => - +- => a +a = g +t = t +- => c +c = c +t => - +g = g +c = c +a = a +a = a +g = g +c = a +c = c +c = c +a = g +a = a +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +g = g +t = t +a = a +g = g +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +t = t +a = a +t => - +- => t +t = c +- => g +g => - +a = g +- => t +t => - +c = t +c = c +c = c +- => a +a = c +t => - +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +a = a +c = c +c = c +g = a +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +a = a +t = t +a = a +- => t +t => - +c = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +t = t +a = a +c = c +a = a +a = a +t = t +a => - +c = a +- => t +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +a = a +a = a +a = a +c => - +- => c +c = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t => - +- => t +t = c +a = a +t = t +a => - +c = a +- => t +c = c +t = t +c = c +t = t +- => c +c = c +t => - +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +c = c +t = t +a = a +t = t +c = c +a = a +c = c +c = c +a = a +a = a +- => g +- => t +g => - +c => - +a = g +a = a +c = c +c = c +t = t +a = a +- => t +t => - +c = t +c = c +a = a +c = c +c = c +g = g +c = c +g = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +- => g +g => - +a = g +t = t +- => a +a = c +t => - +t = t +a = a +a = a +c = c +- => a +a = c +t => - +t = t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +t => - +- => t +t = c +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +- => a +a => - +g = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +g = g +c = c +c = c +t = t +c = c +c = c +t => - +t = t +t = t +t = t +t = t +- => c +c = c +t => - +- => a +a => - +t = a +- => c +c => - +- => c +c => - +- => c +c => - +t => - +c = c +a = t +- => t +- => g +t => - +- => t +t = c +g = g +a = a +t = t +t = t +t = t +a = a +t = t +- => c +c = c +t => - +a = a +a = a +c = c +- => a +a => - +- => a +- => c +a => - +t => - +- => a +a => - +- => a +a = c +t => - +t = t +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +t = t +c = c +a = a +t = t +c = c +- => t +c = c +c = c +c = c +t => - +t = t +a = a +c = c +t = t +a = a +c = c +g = g +a => - +c = a +- => t +t = t +a => - +c = a +- => t +t = t +a = a +a = a +t = t +c = c +c = c +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +g = g +t = t +t = t +t = t +a = a +a = a +t = t +- => a +a = c +t => - +a = a +c = c +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +- => t +t => - +c = t +t = t +c = c +a = a +g = g +t = t +a = a +c = c +a => - +- => a +a = g +t = t +c = c +g = a +c = c +c = c +a = a +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +c = c +a => - +- => a +a => - +c = a +c = c +c = c +c = c +- => t +g = g +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +c = c +g = a +t = t +c = c +c = c +a = a +a = a +a = a +t = t +c = c +c = c +a => - +- => a +a => - +- => a +a = t +a = a +c = c +a = a +t = t +g = g +t = c +a = a +t = t +c = c +a = a +g = g +t = a +t = t +- => c +c = c +t => - +g = g +g = g +t = t +a = a +t = t +a = a +c = c +a = a +c = c +- => a +a => - +- => a +a = c +t => - +c = c +t = t +c = c +t = t +a = a +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +- => g +g => - +- => g +g => - +a = g +t = t +- => g +g => - +a = g +c = c +g = g +a = a +c = c +g = g +a = a +a = a +g = g +t = c +g = g +t = t +c = c +c = c +g = g +t = c +c = c +g = g +t = t +t = t +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c => - +c => - +a = c +c = c +- => g +- => t +t = t +a => - +c = a +- => t +c = c +c = c +a = g +t = t +g = g +t = t +t = t +a => - +c = a +- => t +- => a +a => - +- => a +a = c +t => - +c = c +g = g +a = a +t = t +t = t +c = c +t = t +- => c +c = c +c = c +t => - +t = t +c = c +a = a +c = c +c = c +c = c +- => a +a = c +t => - +a = a +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +t = t +c = c +t = t +c = c +a = a +t = t +c = c +g = g +a = a +t = t +a = a +t = t +t = t +a = a +c = c +t = t +t = t +a = g +t = t +c = c +a = g +c = c +t = t +a = a +t => - +- => t +t = c +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +t = t +c = c +c = c +t = t +a = a +t = t +a => - +- => a +a = c +t = t +c = c +c = c +a = a +c = c +a = a +c = c +t => - +- => t +t = c +g = g +c => - +c = c +- => t +a = a +t = t +g = a +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +a => - +c = a +- => t +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +t = t +t = t +- => a +a = c +t => - +t = t +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +g = g +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +a = a +c = c +t = t +c = c +a = a +g = g +c = c +t = t +t = t +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a => - +c = a +- => t +a = a +t = t +g = g +g = g +t = t +t = t +a = a +a = a +g = g +c = c +c = c +- => a +a => - +g = a +g = g +t = t +c = c +a = a +g = g +a = a +- => t +t => - +c = t +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +g = a +t = t +c = c +a = a +g = g +t = t +a = g +a = a +g = g +c = t +a = a +t = t +c = c +c = c +- => g +g => - +a = g +t = t +c = c +t = t +g = g +a = a +a = a +t = t +c = c +c = c +c = c +a = g +a = a +t = t +c = c +c = c +t = t +- => a +a = c +t => - +t = t +a = a +c = c +t = t +a = a +a = a +t = t +t = t +a = a +t = t +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +g = g +t = t +a => - +c = a +- => t +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +a = g +t => - +- => t +t = c +c = c +a => - +- => a +a => - +c = a +- => t +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +a = a +c = c +c = c +g = a +t = t +c = c +c = c +c = c +c = c +g = a +- => t +t => - +- => t +t => - +a = t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c => - +c = c +- => t +a = a +g = g +t = t +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t = c +c = c +a => - +c = a +- => t +t = t +a => - +c = a +- => t +c = c +g = g +a = a +t = t +g = g +a = a +- => t +t => - +c = t +c = c +t => - +- => t +t => - +- => t +t = c +t = t +t = t +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +t = t +t = t +- => c +c = c +c = c +t => - +t = t +a = g +c = c +g = g +c = c +c = c +c = c +g = g +c = c +c = c +c = c +c = c +c = c +- => t +- => a +t = t +a = a +t => - +g => - +c = t +c = c +c = c +c = c +a = a +g = g +c = c +t => - +- => t +t => - +- => t +t = c +- => g +g => - +- => g +- => c +g => - +t => - +g = g +t = t +a = g +a = a +g = g +c = c +- => a +a = t +t = t +c = c +c = c +c = c +c = c +a => - +a => - +t = a +- => c +c = c +a = t +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +c = c +a = a +t = t +c = c +- => g +g => - +a = g +c = c +- => a +a => - +- => a +a = c +t => - +t = t +c = c +a = a +a = a +c = c +g = a +c = c +c = c +a = a +t = t +c = c +a = a +g = g +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +- => t +t => - +c = t +c = c +c = c +g = g +a = a +t = t +- => c +c = c +t => - +t = t +c = c +c = c +c = c +a = a +c = c +a => - +- => a +a => - +c = a +c = c +- => t +a = a +a = a +t = t +a = a +a = a +- => t +t => - +- => t +t => - +c = t +t = t +- => a +a => - +g = a +- => t +t => - +c = t +c = c +c = c +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c => - +c => - +- => c +- => t +- => t +- => a +c = c +- => a +a => - +t => - +g => - +- => a +- => c +a => - +t => - +g = a +g = g +t = t +t = t +t = t +t = t +g = g +a => - +c = a +- => t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +t = t +t = t +c = c +a = a +a = a +t = t +t = t +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t => - +- => t +t = a +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +t = t +t = t +c = c +t = t +c = c +a = a +- => t +t => - +c = t +c = c +t = t +g = g +g = g +g = g +a = a +g = g +t = t +a = a +g = g +- => t +t => - +c = t +a = a +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +t = t +g = g +c = t +a = a +t = t +a = g +t = t +c => - +c = c +- => t +t = t +t = t +a = a +t = t +c = c +a = a +g = g +- => t +t => - +c = t +t = t +- => g +g => - +a = g +t = t +g = g +t = t +a = a +g = g +a = a +t = t +g = g +c = t +- => t +t => - +- => t +t => - +c = t +a = a +c = c +g = g +g = g +t => - +- => t +t = c +a = a +t = t +g = a +g = g +t => - +- => t +t = c +c = c +g = g +c = c +c = c +g = g +c = c +c = c +g = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +g = g +g = g +c = t +t = t +t = t +c = c +a => - +c = a +c = c +- => t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +g = g +- => c +c = c +t => - +t = t +- => a +a = c +t = t +t = t +c = c +t => - +g = g +t = t +c = c +t = t +a = a +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +g = c +g = g +g = g +t = t +t = t +a => - +c = a +- => t +t = t +a = a +c = c +t = t +g = g +c = c +a => - +c = a +c = c +- => t +t = t +c = c +g = a +g = g +g = g +c = c +- => a +a = c +c = c +t => - +t = t +t = t +c = c +g = g +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +g = g +t = t +t = t +t = t +t = t +t = t +t = t +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +g = g +t = c +a = a +t = t +c = c +t = t +- => a +a = c +t => - +g = g +g = g +t = c +a = a +g = g +c = c +c = c +t = t +t = t +t = t +a = a +c = c +c = c +- => a +a = c +t => - +t = t +t = t +c => - +c = c +c = c +c = c +- => t +c = c +- => t +g => - +a = g +a = a +g = g +t = c +t = t +t = t +c = c +a = a +t = t +g = g +a = a +g = g +a = a +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a => - +c = a +- => t +- => t +t => - +- => t +t => - +c = t +a = a +t = t +c = c +t = t +c => - +c = c +- => t +g = g +g = g +g = g +t = t +c = c +a = a +t = t +t = t +t = t +t = t +a = a +a = a +c = c +a => - +c = a +- => t +t = t +a = a +t = t +t = t +c = c +a = g +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +t = t +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +- => a +a => - +- => a +a => - +t = a +g = g +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +a = a +t = t +c => - +c = c +- => t +g = g +a = a +t = t +a = a +c = c +c = c +a => - +c = a +c = c +- => t +c = c +g = g +a = a +g = g +t = t +c = c +c = c +- => a +a = c +t => - +t = t +a = a +a = a +c = c +t = t +c = a +t = t +g = g +t = a +g = g +g = g +a = a +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +g = a +- => t +t => - +c = t +a = a +t = t +g = g +t = c +c = c +t = t +a = a +c = c +- => a +a = c +t => - +a = a +a = a +a = a +t => - +t => - +- => t +- => c +t = c +t = t +c = c +- => a +a = c +c = c +c = c +t => - +t = t +g = g +a = a +a = a +g = g +a = a +t = t +c => - +c = c +c = c +c = c +c = c +- => t +a = a +a = a +a = a +t = t +c = c +a = g +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +a = a +c = c +c = c +c = c +c = c +c = c +a = g +g = g +t = t +c => - +a => - +c = c +a = a +c = c +- => g +- => g +g = g +a = a +g = g +g = g +a = a +- => t +t => - +c = t +- => a +a => - +- => a +a = c +c = c +t => - +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +a = a +t => - +c = t +- => t +t => - +- => t +t => - +- => t +t = c +c = c +g = g +a = a +g = g +t = t +c = c +- => t +t => - +- => t +t => - +c = t +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = c +t = t +t = t +c = c +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t => - +c = t +t = t +g = g +a = a +a = a +g = g +a = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +- => a +a => - +g = a +t = t +a => - +- => a +a = g +g = g +g = g +t = c +a = a +t = t +a = a +g = g +c => - +a = c +- => t +t => - +- => t +t = c +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +t = t +g = g +c = t +c = c +c = c +- => a +a = c +t => - +c = c +a = a +c = c +- => a +a = c +t => - +a = a +c = c +c = c +a = a +c = c +c = c +g = g +g = g +a = a +a = a +c = c +c = c +a = a +t = t +g = a +c = c +a = a +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +- => c +- => a +c = c +g => - +t => - +a = a +a = a +t = t +g = g +t = t +a = a +g = g +t = c +g = g +c = c +a = g +g = g +t = t +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +- => a +a = c +t => - +c = c +a = a +a = a +t = t +c = c +- => a +a = c +t => - +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +t = t +- => c +c => - +a = c +t = t +c => - +c = c +- => g +c = c +- => a +a => - +- => a +- => t +a = a +c => - +a = c +t => - +c = c +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +a => - +c = a +c = c +- => t +t = t +t = t +a = a +g = g +t = t +a = g +t = t +a = a +c = c +c = c +g = g +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = c +c = c +t = t +c = c +c = c +a => - +- => a +a = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +c = c +c = c +c = c +g = g +g = g +g = g +g = g +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +g = g +a = a +t = t +a => - +c = a +- => t +a = a +c = c +t = t +a = a +t = t +c = c +c = c +g = g +t = t +a = a +c = c +a = a +c = c +t = t +a = a +a = a +c = c +c = c +- => a +a = c +c = c +c = c +t => - +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +a = a +c = c +- => a +a => - +- => a +a = c +g => - +a = a +g = g +c = c +a = a +c = c +g = g +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +g = g +- => a +a => - +g = a +t = t +g = g +a = a +t => - +- => t +t = c +t = t +t = t +c = c +a = a +c = c +a = a +c = c +t = t +t = t +t = t +t = t +g = g +c = c +a = a +t = t +c = c +c = c +g = g +a = a +a = a +c = c +c = c +t = t +- => a +a => - +c = a +- => t +t => - +c = t +c = c +c = c +g = g +c = c +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +g = g +a = a +t = t +- => c +c => - +a = c +t = t +a = a +t = t +c = c +a => - +- => a +a = g +t => - +- => t +t = c +a = a +t => - +- => t +t = c +t = t +t = t +a = a +a = a +t = t +c => - +c = c +- => t +t = t +g = a +a = a +c = c +- => a +a = c +t => - +t = t +t = t +c = c +t = t +- => a +a = c +t => - +t = t +a => - +c = a +- => t +t = t +c = c +a = a +c = c +a => - +- => a +a = t +c = c +t = t +c = c +c = c +c = c +t = t +t = t +- => c +c = c +t => - +- => a +a => - +- => a +- => t +- => t +a => - +c = a +c => - +a = c +t => - +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +- => c +c => - +a = c +c = c +a = a +c = c +c = c +g = g +c = c +g = g +a = a +a = a +g = g +g = g +c = t +t = t +a = a +a = a +t = t +c = c +c = c +a = a +c = c +g = g +t = t +- => a +a = c +t => - +t = t +c = c +a = a +t = t +c = c +c = c +- => a +a = c +c = c +t => - +g = g +g = g +a = a +c = c +g = g +t = t +c = c +a => - +c = a +- => t +t = t +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +g = g +t = c +c = c +- => g +g => - +a = g +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +c = c +c = c +a => - +- => a +a => - +c = a +c = c +- => t +t = t +a = a +c = c +t => - +- => t +t = c +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +g = g +t = c +t = t +a => - +c = a +- => t +t = t +a => - +c = a +- => t +t = t +g = g +a = a +t = t +c = c +a = a +t = t +- => a +a = c +t => - +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c => - +- => c +c => - +- => c +c = a +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +a = a +c = c +c = c +- => a +a = t +t = t +c => - +a = c +- => t +t => - +c = t +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +a = a +a = a +- => t +t => - +c = t +a = a +g = g +a => - +- => a +a => - +c = a +- => t +c = c +t = t +c = c +g = g +c = c +t = t +t = t +t = t +c = c +g = g +g = g +a => - +c => - +- => a +- => t +a = a +- => t +t => - +c = t +a => - +- => a +a = g +t = t +g = g +a = a +c = c +g = a +c = c +- => g +g => - +- => g +g => - +a = g +c = c +g = g +a = a +g => - +t => - +g = g +- => t +- => a +- => t +t => - +c = t +c = c +c = c +c = c +c = c +t = t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +a = a +c = c +c = c +g => - +- => g +g = a +t = t +c = c +c = c +a = a +a = a +a = a +t = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +g = a +a = a +c = c +c = c +c = c +- => a +a = c +t => - +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a => - +c = a +- => t +t = t +t = t +a = a +c = c +t = t +c = c +a => - +c = a +c = c +- => t +c = c +c = c +g = g +t => - +- => t +t = c +c = c +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +c = c +a = a +a = a +c = c +a = a +c = c +c = c +g = g +t = t +t = t +a = a +t = t +t = t +t = t +t = t +t = t +- => a +a = c +t => - +t = t +a = a +a = a +- => t +t => - +- => t +- => c +- => c +t = t +- => a +a = t +g = g +t => - +a = a +t = t +a = c +a => - +t => - +t => - +g = a +t = t +a = a +t = t +t = t +c => - +c = c +- => t +c = c +t = t +a = a +g = g +t = t +c = c +c = c +a = a +a = a +g = g +c = c +a => - +g = a +g = g +g = g +- => a +a => - +- => a +a => - +c = a +- => t +c = c +g = a +c = c +- => a +a => - +- => a +a = c +t => - +a = a +c = c +a = a +t = t +- => a +a = c +t => - +c = c +a = a +a = a +t = t +a => - +- => a +a = g +t = t +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +- => a +a => - +- => a +a => - +c = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +g = g +t = t +g = a +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a = a +- => c +c => - +- => c +- => a +c = c +g => - +t => - +t = t +- => a +a => - +g = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +c = c +t = t +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +g = g +- => t +t => - +c = t +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +c => - +c = c +- => t +t = t +- => a +a = c +t => - +t = t +a => - +- => a +a = g +t => - +- => t +t = c +a = a +t = t +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +c = c +g = g +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +t = t +c = c +g = g +c = c +t => - +- => t +t => - +a => - +- => t +- => g +t => - +- => t +t = c +t = t +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +- => a +- => a +- => a +a = c +a => - +- => a +a => - +t => - +g = a +t = t +c = a +t => - +- => t +t => - +c = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +a => - +t = a +- => c +- => c +c => - +a = c +a = g +a = a +a = a +a = a +c = c +c = c +a => - +t => - +t = a +c = c +- => t +c = c +c = c +c = c +- => t +c = c +c = c +a = a +t = t +c = c +c = c +a = a +c = c +c = c +a = a +t => - +- => t +t = c +a = a +a = a +a = a +c = c +a = a +c = c +a = a +a = a +a = a +t => - +- => t +t => - +- => t +t = a +t = t +g = a +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +- => a +a = c +t => - +t = t +a = a +c = c +t = t +- => c +c = c +t => - +t = t +t = t +a = a +t = t +c = c +a = a +c = c +a => - +c = a +- => t +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a => - +- => a +a = c +c = c +c = c +c = c +c = c +g = a +t = t +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +c = c +c = c +c = c +g = g +g = g +t = t +a = a +t = t +g = g +c = c +c = c +a => - +c = a +- => t +c = c +a = a +t = t +a = a +a = a +a = a +t = t +c = c +g = a +a = a +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +g = g +t = t +g = g +a = a +c = c +g = a +t = t +t = t +t = t +c = c +t = t +- => c +c => - +- => c +- => a +- => c +c = a +a = a +c = c +g => - +g => - +c = c +t => - +- => a +a => - +t = a +g = g +a = a +g = g +a = a +a = a +t = t +t = t +a = a +g = g +a = a +a = a +a = a +t = t +t = t +g = g +a = a +a = a +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +g = a +c = c +g = g +a = a +- => t +t => - +c = t +c = c +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +g = g +t = t +c = c +- => a +a = c +c = c +t => - +c = c +g = g +a = a +g = g +a => - +c = a +- => t +c = c +t = t +- => c +c = c +t => - +c = c +c = c +c = c +t => - +- => a +a = t +c = c +t = t +c = c +t => - +c = c +c = c +c = c +c = c +a => - +t => - +- => a +- => c +a = g +a = a +t = t +a = a +t = t +c => - +- => c +c => - +- => c +c => - +g => - +- => c +c = a +- => t +t = t +t = t +a = a +t = t +g = g +c = c +c = c +c = c +a = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +g = g +t = t +t = t +t = t +c = c +t = t +a = a +a = a +a = a +a = a +a = a +t = t +c => - +c = c +c = c +c = c +c = c +- => t +t = t +- => a +a => - +- => a +a = t +t = t +c => - +g = a +a = a +g = g +a = a +t = t +- => c +c = c +t => - +t = t +g = g +t = c +t = t +a = a +c = c +c = c +c = c +g = g +t = t +- => a +a = c +t => - +t = t +t = t +t = t +g = g +a = a +c = c +a = a +c = c +c = c +- => a +a => - +- => a +a => - +c = a +c = c +g = g +a = a +g = g +g = g +t = t +g = g +t = t +c = c +t = t +a = a +a = a +a = a +g = g +a = t +c = c +t = t +c = c +g => - +t => - +g = g +- => t +- => a +a => - +c = a +c = c +- => t +g = g +g = g +c = c +a = a +t = t +c = c +a = a +t = t +a = a +t = t +- => g +- => g +g => - +a => - +- => g +g => - +- => g +g => - +a = g +c = c +c = c +a = a +g = g +c = c +a = a +c = c +a => - +c = a +- => t +c = c +g = g +c = c +c = c +a = a +c = c +- => t +t => - +- => t +t => - +a = t +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +c = c +- => a +a => - +- => a +a => - +g = a +t = t +c => - +c = c +- => t +g = g +c = c +g = a +g = g +g = g +c => - +c = c +c = c +c = c +- => t +t = t +a = a +a = a +c = c +g = g +c = t +a = a +g = g +a = a +c = c +a = a +a = a +a = a +a = a +a = a +- => t +t => - +c = t +c = c +g = g +g = g +a = a +t = t +t = t +a = a +c = c +- => a +a = c +c = c +c = c +c = c +t => - +t = t +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = g +t = t +t = t +c = c +t = t +g = g +t = c +a = a +g = g +a = a +a = a +c => - +- => c +c = a +c = c +t = t +a = a +c = c +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +a = a +t = t +g = g +c => - +c = c +- => t +t = t +g = a +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +- => t +t => - +- => t +t = a +g = g +a = c +c = c +c = c +t => - +t = t +c => - +- => c +c = a +t = t +g = g +a = a +t = t +g = g +a = a +g = g +c => - +c = c +- => t +a = a +a = a +c = c +a = a +g = g +c = t +t = t +g = g +c = c +a = a +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +g = g +c = c +a = g +t = t +c = c +c = c +a = a +g = g +t = c +g = g +g = g +a = a +c = c +c = c +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +t = t +a => - +c = a +c = c +c = c +c = c +c = c +c = c +- => t +t = t +c = c +a = a +t = t +- => a +a = c +t => - +a = a +t = t +c = c +c = c +t = t +c = c +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +t = t +- => a +a => - +g = a +t => - +- => t +t = c +a = a +g = g +g = g +t = c +g = g +g = g +t = c +a = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +c = c +a = a +t = t +a = g +a = a +g = g +c = c +a = a +t = t +c = c +c = c +a = a +a = a +g = g +t = t +c = c +a = a +t = t +a = g +g = g +t = t +a = a +a = a +c = c +c = c +- => a +a = c +c = c +t => - +g = g +g = g +c = t +t = t +a = a +a = a +c = c +t = t +a = a +a = a +a = a +c = c +t = t +- => a +a = c +t => - +c = c +a => - +c = a +t = t +t = t +- => c +c = c +c = c +t = t +c => - +c = c +c = c +c = c +- => t +a = a +g = g +t = c +a = a +a = a +c = c +t = t +a = g +a = g +a = a +g = g +t = c +a = a +g = g +a = a +c = c +- => a +a => - +g = a +t = t +- => a +- => c +a => - +t => - +a = a +- => t +t => - +c = t +t = t +c = c +c = c +t = t +a => - +- => a +a = c +g = g +c = c +a = a +t = t +- => c +c = c +t => - +c = c +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +c = c +g = g +c = c +t = t +- => a +a = c +g => - +t = t +c = c +c = c +t = t +g = g +a = a +t => - +- => t +t = c +c = c +t = t +- => a +a = c +t => - +t = t +- => a +a = c +t => - +c = c +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +t = t +a => - +c = a +- => t +c = c +a = a +a = a +g = g +t = t +c = c +t = t +a = g +c = c +c = c +- => a +a => - +g = a +a = a +g = g +a = a +t = t +a = a +a = a +a = a +- => g +g => - +a = g +a => - +c = a +c = c +- => t +c = c +g = g +c = c +a = a +g = g +a = a +c = c +t = t +c = c +t = t +a = a +c = c +- => a +a => - +- => a +a = t +c => - +a = c +a => - +c = a +- => t +a = a +a = a +t = t +c = c +a = a +a = a +t = t +c = c +g = a +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +a = a +t = t +c = c +c = c +t = t +t = t +t = t +t = t +c = c +c = c +c = c +g = g +c = t +a = a +t = t +g = g +t = t +c = c +c = c +t = t +g = g +a = a +t => - +- => t +t = c +c = c +t = t +t = t +c = c +g = g +t = t +c = c +t = t +a => - +c = a +- => t +t = t +- => c +c = c +t => - +t = t +t = t +t = t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +c = c +c = c +c = c +g = g +t = c +a = a +c = c +t = t +a = a +g = g +t = t +a = a +c = c +t = t +t = t +t = t +- => c +c = c +t => - +a = a +c = c +t = t +a => - +- => a +a = t +t = t +c = c +a = g +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +t = t +- => c +c = c +c = c +t => - +c = c +t = t +t = t +c = c +a = a +t = t +c = c +g = g +c = c +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +t = t +g = g +g = g +a = a +t = t +g = g +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +g = g +t = t +a = a +c = c +a = a +c = c +g = g +g = g +t = t +a = a +a = a +t = t +t = t +c = c +- => t +- => a +t = t +a = a +t = t +a = a +t => - +g => - +c = t +c => - +c = c +c = c +- => t +a => - +- => a +a => - +- => a +a => - +t = a +t = t +g = c +g = g +g = g +c = a +- => t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +g => - +- => g +g = a +a = a +a = a +c = c +t = t +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +c = c +t = t +t = t +t = t +- => a +a = c +t => - +c = c +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +t = t +a = a +t = t +a = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +t = t +t = t +t = t +t = t +t = t +c = c +a = a +g = g +t = t +- => a +a = c +c = c +t => - +t = t +c = c +c = c +a = g +g = g +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +t = t +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +c = c +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a => - +- => a +a = g +a = a +t = t +c = c +t = t +g = a +a = a +a = a +a = a +t = t +- => a +a = c +t => - +a = a +t = t +a = a +t = t +g = g +t = c +- => c +c = c +t => - +g = a +a = a +g = g +a = a +a = a +g = g +t = c +t = t +t = t +a = a +c = c +- => a +- => c +a => - +t => - +- => a +a = c +c = c +t => - +a = a +t = t +c = c +c = c +c = c +- => a +a = c +c = c +c = c +t => - +c = c +c = c +c = c +g = g +t = t +a = a +g = g +g = g +t = t +a = a +t = t +g = a +t = t +c = c +a = a +g = g +t = t +g = g +a = a +g = g +g = g +t = t +- => c +c = c +t => - +a => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +a = a +g = g +c = a +t = t +a = g +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +a = a +g = g +c = c +a = g +a => - +- => a +a => - +- => a +a = g +c = c +- => t +t => - +c = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +- => t +t => - +c = t +t = t +a => - +- => a +a = g +t = t +- => a +a = c +t => - +t = t +t = t +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +a = a +t = t +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +a = a +t = t +c => - +c = c +- => t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +g => - +- => g +g => - +- => g +g = a +t = t +g = g +c = t +c = c +t = t +a = a +c = c +t = t +g = a +t = t +c = c +c = c +t = t +- => a +a = c +t => - +a = a +a = a +a = a +g = g +t = t +a = a +c = c +- => a +a = c +t => - +c = c +- => a +a = c +t => - +a = a +t = t +a = a +c = c +g = g +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +t = t +a = g +c = c +a = a +g = g +c = c +c = c +c = c +c = c +a = g +t = t +a = a +a = a +g = g +g = g +t = c +c = c +t = t +a = a +t = t +c = c +c = c +g = g +g = g +t = c +t = t +c = c +t = t +t = t +t = t +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +t = t +t = t +c = c +- => t +t => - +- => t +t => - +c = t +c = c +a = a +a = a +t = t +c = c +t = t +- => a +a => - +- => a +a => - +t = a +t = t +g = g +c = c +g = g +g = g +t = c +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +- => a +a = t +- => c +c = a +c = c +g => - +t => - +- => t +t => - +- => t +t => - +c = t +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +c = c +c = c +g = g +c = c +a = a +t = t +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +a = a +g = g +a = a +t = t +- => c +c = c +t => - +c = c +a = a +c = c +a = a +t = t +c = c +g = g +g = g +a = a +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a = a +c = c +t = t +t = t +- => a +a = c +t => - +t = t +t = t +c = c +g => - +- => g +g => - +- => g +g = a +g = g +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +c = t +t = t +t = t +g = a +t = t +g = g +t = t +c = c +g = g +a = a +g = g +g = g +a = a +t = t +- => a +a => - +t = a +c = c +t = t +a = a +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +- => a +a = c +c = c +t => - +c = c +g = g +a = a +t = t +g = g +c = t +t = t +g = g +c = c +a = a +t => - +- => t +t = c +a = a +t = t +a = g +c = c +a = a +c = c +a = a +g = g +c = c +a = a +c = c +g = a +t = t +c = c +g = a +t = t +g = g +c = c +t = t +- => a +a = c +t => - +a = a +g = g +a = a +t => - +- => t +t = c +a = a +c = c +t = t +g = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +- => t +t => - +c = t +a = a +t = t +g = g +c = t +t = t +a = a +c = c +g = g +g = g +c = t +c = c +a => - +- => a +a = g +t = t +c = c +c = c +g = g +g = g +c = t +g = g +g = g +a = a +t = t +g = g +t = c +c = c +a = a +c = c +- => t +t => - +- => t +t => - +c = t +t = t +c = c +t => - +- => t +t => - +- => t +t => - +- => t +t = c +t = t +a = a +c = c +t = t +t = t +g = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +t = t +a = g +a = a +c = c +g = g +c = t +c = c +g = g +t = t +c = c +t = t +a = a +g = g +t = t +a => - +- => a +a => - +- => a +a => - +c => - +c = a +- => g +- => t +a = a +t = t +- => a +a => - +- => a +a = c +t => - +g = g +a = a +a = a +g = g +g = g +t = c +a = a +c = c +c = c +t = t +c = c +a = a +c = c +- => a +a = c +t => - +c = c +g = g +c = c +t = t +c = c +a = a +g = g +t = t +c = c +g = g +a => - +c = a +- => t +t = t +t = t +a = a +t = t +g = g +a = a +a = a +a = a +c = c +t = t +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +c = c +c = c +a = a +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +c = a +c = c +g = g +a = a +g = g +c = c +a = a +c = c +- => a +a = c +t => - +a = a +g = g +a = a +t = t +g = g +c = c +a = a +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a => - +c = a +- => t +a = a +c = c +c = c +a = a +c => - +- => c +c = a +c = c +g = g +a = a +g = g +t = t +g = g +t = t +g = g +t = c +t = t +a = a +t => - +- => t +t => - +- => t +t => - +a = t +- => g +g => - +- => g +g => - +- => g +g = a +t = t +c = c +c = c +t => - +- => t +t => - +- => t +t = c +g = g +g = g +t = t +t = t +a = a +a = a +c = c +t = t +a = a +t = t +a => - +- => a +a = g +t = t +a = a +t = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +- => g +g => - +a = g +t = t +a = a +t = t +g = g +g = g +a = a +t = t +- => a +a = c +t => - +a = a +t = t +a = a +g = g +g = g +c = t +t = t +t = t +a = a +c = c +c = c +a = a +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +c = c +c = c +t = t +c = c +a = a +t => - +- => t +t = c +a = a +t = t +t = t +c = c +a = a +a = a +t = t +g = g +t = t +t = t +a => - +c = a +- => t +a = a +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +c = c +t = t +t = t +c = c +g = g +g = g +a = a +c = c +c = c +a = a +t = t +c = c +c = c +t = t +a => - +- => a +a = t +t = t +c = c +t = t +t = t +a => - +c = a +- => t +a = a +t = t +t = t +t = t +g = g +a = a +a = a +g = g +c = t +c = c +c = c +c = c +a = a +c = c +a = t +g = g +g = g +t = c +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +t = t +t = t +a = a +t => - +- => t +t = c +c = c +a = a +c = c +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +c => - +c = c +- => t +t = t +- => a +- => c +a = c +t => - +c = c +c = c +t => - +a = a +g = g +a = a +g = g +g = g +a = a +g = g +g = g +a = a +g = g +g = g +c = c +c = c +g = g +a = c +c = c +c = c +c = c +a = a +g = g +c = c +t => - +- => t +t => - +- => t +t = c +t = t +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +g = g +c = c +c = c +a = a +g = g +a = a +c = c +a = a +a = a +t => - +- => t +t = c +a = a +t => - +- => t +t = c +a = a +t = t +a => - +c = a +- => t +c = c +- => a +a = c +t => - +t = t +a => - +- => a +a = c +g = g +g = g +t = t +c = c +g = g +t = t +c = c +g = g +a = a +t = t +- => c +c => - +a = c +t = t +g = g +a = a +c = c +c = c +c = c +t = t +c = c +t = t +c = c +t = t +a = a +t = t +- => c +c = c +t => - +t = t +c = c +t = t +t = t +c = c +a = a +t => - +- => t +t = c +c = c +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +c = c +c = c +t = t +a = a +g = g +t = t +c = c +t = t +g = g +c = c +t => - +t => - +- => t +t => - +- => t +- => c +t = t +c = c +c = c +c = c +c = c +a = g +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +c = c +g = g +c = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +t = t +a = a +a = a +c = c +t = t +a => - +c = a +- => t +t = t +a = a +a = a +c = c +a = a +a = a +c = c +- => a +a = c +t => - +t = t +a = a +c = c +- => t +t => - +- => t +t => - +c = t +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +g = g +g = g +g = g +- => a +a = t +t = t +c = c +t => - +t = t +a = a +t = t +c = c +t = t +c = c +c = c +t = t +c = c +- => t +- => g +t => - +a => - +c = t +g = g +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +- => a +a = t +t = t +c => - +c = c +c = c +t => - +t => - +- => t +- => c +t => - +- => t +t => - +- => t +t = c +t = t +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +g = g +t = c +c = c +t => - +- => t +t = c +c = c +g = g +a = a +g = g +g = g +c = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +t => - +- => t +t = c +a => - +t = a +t = t +- => c +a => - +- => a +a => - +- => a +a = g +g = g +g = g +a = a +c = c +g = g +a = a +t = t +t = t +c = c +c = c +c = c +t = t +c = c +c = c +c = c +a = a +t = t +c = c +t = t +g = g +a = a +c = c +- => a +a => - +g = a +g = g +t = t +t = t +g = g +g = g +t = a +c = c +- => a +a => - +g = a +g = g +g = g +a = a +c = c +g = g +c = a +g = g +g = g +c = c +c = c +- => g +g => - +a = g +a = a +- => g +g => - +a = g +t = t +g = g +a = a +t = t +a = a +t = t +c = c +g = g +c = t +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +g = g +t = t +- => c +c = c +t => - +t = t +c = c +a = a +t = t +c = c +c = c +t => - +t => - +t = t +- => c +- => t +c = c +t => - +t = t +- => c +c => - +- => c +c => - +- => c +- => t +c => - +- => c +c => - +- => c +c = a +t => - +- => t +t => - +c = t +c = c +t = t +c = c +a = a +g = g +t = t +c = c +t = t +t = t +c = c +g = g +a = a +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c => - +c = c +c = c +c = c +c = c +- => t +t = t +t = t +a = g +c = c +g = g +g = g +t = t +a => - +c = a +- => t +a = a +g = g +c = c +c = c +c = c +c = c +c = c +g = g +t = t +g = g +g = g +t = c +t = t +a = a +a = a +t = t +a => - +- => a +a => - +t = a +t = t +- => c +c = c +c = c +c = c +a = t +t = t +g = g +a = a +t = t +c = c +g = a +g = g +t = t +c = c +a = a +a = a +c = c +g = g +g = g +t = t +t = t +t = t +c = c +g = g +g = g +a = a +g = g +g = g +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +- => a +a = c +t => - +c = c +c = c +g = a +t = t +a = a +a = a +t = t +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t = c +t = t +a = a +a = a +t = t +a = a +a = a +t = t +g = g +c = t +t = t +t = t +g = a +c = c +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +g = g +c = c +t = t +a = a +t = t +t = t +g = g +t = c +- => a +a => - +- => a +a = c +t => - +a = a +t = t +c = c +t = t +a = a +c = c +- => a +a = c +c = c +t => - +a = a +g = g +c = c +a = a +a = a +t = t +g = g +g = g +a = a +t = t +c = c +t = t +t = t +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +c = c +c = c +- => g +a => - +- => a +a = c +c = c +t = g +g = g +g = g +t => - +t = t +c = c +a = g +a = a +g = g +a = c +c = c +g = g +a = a +g = g +c = c +t = t +t = t +a = a +t = t +t = t +c = c +c = c +t = t +- => c +c = c +t => - +g = g +a = a +a = a +t = t +c => - +c = c +- => t +c = c +g = g +a = a +c = c +a = a +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +g = g +a = a +g = g +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +- => c +c = c +t => - +a = a +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +g = g +t = t +t = t +- => a +a = c +t => - +a = a +g = g +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a = a +c = c +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t => - +- => t +t = c +a = a +g = g +- => t +t => - +c = t +g = g +c = c +c = c +a = a +g = g +c = c +c = c +a = g +c = c +t = t +t = t +g = g +t = t +a = a +g = g +t = t +c = c +- => a +- => c +a = c +- => c +c => - +- => c +c => - +t => - +t => - +t => - +t => - +t => - +t => - +- => c +c = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +t = t +c = c +- => a +a = c +t => - +- => t +t => - +c = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +g = g +a = a +t = t +t = t +t = t +c = c +t = t +g = g +t = t +- => c +c = c +t => - +c = c +c = c +g => - +- => a +a => - +c = a +- => t +c = c +c = c +g = g +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +t = t +g = g +g = g +t = t +c = c +g = g +a = a +g = g +g = g +c = c +t = t +c = c +c = c +a = a +c = c +t => - +- => t +t = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +a = a +c = c +t = t +t = t +a = a +a = a +c = c +g = g +t = t +t = t +t = t +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +g = g +t = t +c = c +g = g +a = a +a = a +g = g +t = t +t = t +t = t +g = g +g = g +a = a +c = c +g = g +g = g +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +g = g +g = g +c = c +g = g +g = g +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = g +- => g +g => - +a = g +a = c +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +a = a +a = a +c = c +t = t +t = t +c = c +g = g +g = g +t = t +c = c +a = a +a = a +c = c +t = t +g = a +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = g +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +t = t +g = g +a = a +t => - +- => t +t => - +- => t +t = c +a = a +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +g = g +g = g +g = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +a = a +g = g +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +c = c +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +a = a +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +c = c +a = a +a = a +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +c = c +g = g +t = t +c = c +t = t +c = c +- => a +a = c +t => - +c = c +c = c +c = c +a = a +a = a +a = a +a = a +c = c +g = g +t = t +c = c +a = a +g = g +g = g +a = a +a = a +t = t +c = c +a = g +a = a +c = c +a => - +- => a +a => - +c = a +- => t +g = g +t = t +c = c +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +a => - +c = a +- => t +a = a +a = a +c = c +a = g +t = t +t = t +g = g +a = a +a = a +t = t +g = g +- => a +a = c +t => - +t = t +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a => - +t => - +a = a +- => c +c = a +- => t +a = a +a = a +a = a +t = t +t = t +g = g +g = g +a = a +t = t +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +- => a +a = t +t = t +c = c +t => - +t = t +g = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a => - +c = a +- => t +- => t +t => - +- => t +t => - +c = t +c = c +c = c +c = c +c = c +t = t +c = c +t = t +a => - +c = a +- => t +c = c +c = c +a = a +t = t +- => c +c = c +t => - +t = t +c = c +a = a +t = t +c => - +c = c +- => g +c = c +a = a +c = c +c = c +a => - +c = a +- => t +t = t +- => c +c => - +a = c +c = c +a = g +c = c +t = t +- => a +a = c +t => - +t = t +c = c +a = a +c = c +- => a +a = c +t => - +c = c +c = c +c = c +t = t +c = c +c = c +- => t +t => - +- => t +t = a +c = c +c = c +c = c +t => - +c = c +a = a +c = c +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a => - +t = a +c = c +a = a +t = t +- => a +a = c +t => - +a = a +a = a +g = g +c = t +- => t +t => - +c = t +g = g +a = a +c = c +a = a +g = g +t = t +a = a +a = a +a = a +a = a +t = t +- => a +a => - +g = a +a = a +a = a +a = a +t = t +g = g +c = c +a = a +a = a +c = c +a => - +- => a +a => - +c = a +- => t +c = c +t = t +a = a +t = t +a = a +- => c +c => - +- => c +c => - +- => c +c => - +a = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +a = a +c = c +t = t +- => a +a => - +t = a +c = c +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t => - +- => t +t = c +t = t +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +- => c +c = c +t => - +a = a +t = t +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +- => a +a = c +c = c +t => - +a = a +c = c +c = c +g => - +- => g +g = a +t = t +- => a +a = c +t => - +t = t +a = a +c = c +c = c +a => - +c = a +c = c +c = c +c = c +c = c +- => t +- => a +a = c +t => - +t = t +a = a +c = c +t = t +c => - +- => c +c => - +a = c +g = g +c = a +- => t +- => a +a => - +- => a +a = c +t => - +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +a = a +a = a +g = g +a = a +a = a +g = g +c = c +t = t +a = a +t = t +t = t +a => - +t = a +t = c +c = c +- => g +g = g +g = g +t = t +a = a +a = a +a = a +c = c +c = c +c = c +a = g +- => t +- => t +t => - +c => - +c = t +t = t +t = t +c = c +g = g +g = g +c = c +c = c +a = a +a = a +t = t +c = c +a = g +c = c +c = c +c = c +c = c +c = c +a = g +t = t +- => c +c = c +t => - +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c => - +c = a +c = c +c = c +- => t +t = t +- => a +a => - +- => a +a = t +t = t +c = c +t => - +c = c +c = c +a = a +c = c +a = a +a = a +t => - +- => t +t = c +a = a +g = g +t = t +a = a +c = c +- => a +a => - +g = a +t = t +c = c +- => g +a => - +- => a +a => - +- => a +a = c +t => - +a = a +a = a +a = a +g = g +t => - +- => t +t = c +c = c +- => a +a = c +t => - +g = g +c = c +t = t +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c = c +a => - +t = a +t = t +- => c +c = c +c = c +a => - +- => a +a = g +c = c +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +g = a +a = a +a = a +- => t +t => - +c = t +c = c +a = a +a = a +c = c +t = t +c = c +a = a +t => - +- => t +t = c +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +a = g +c = c +c = c +a = a +t = t +c = c +a = a +t = t +c = c +- => a +a => - +c = a +t = t +c = c +c = c +t = t +a = a +t = t +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a => - +c = a +- => t +c = c +- => a +a => - +g = a +- => t +t => - +c = t +t = t +a = a +a = a +t = t +t = t +c = c +t = t +t = t +- => a +a = c +t => - +c = c +a = a +a = a +t = t +- => a +a = c +t => - +a = a +a = a +t = t +c = c +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +t = t +a = g +c = c +c = c +a = a +t = t +c = c +t = t +t = t +g = g +a = a +c = c +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +t = t +a = a +g = g +g = g +a = a +t => - +g => - +- => t +- => a +t = c +a = a +c = c +c = c +c = c +a => - +c = a +- => t +t = t +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +c = c +g = g +- => a +a = t +t = t +c = c +t => - +t = t +- => a +a => - +g = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +c = c +- => g +a => - +- => a +a = c +c = c +t => - +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +- => t +t => - +c = t +a = a +g = g +g = g +c = t +g = g +g = g +a = a +g = g +- => t +t => - +c = t +g = g +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +t = t +c = a +c = c +t = t +a = a +c = c +c = c +t = t +a = a +- => t +t => - +c = t +c = c +t = t +a = a +a = a +c = c +t => - +- => t +t = c +t = t +c = c +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +c = c +c = c +g = g +a = a +a = a +t = t +g = g +t = c +- => a +a => - +- => a +a => - +- => a +a = t +c => - +a = c +a = a +c = c +t => - +g = t +- => c +- => c +c = c +t = t +c => - +c = c +t => - +- => t +t = c +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +c = c +t = t +g = c +t = t +- => a +a = c +t => - +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +a = a +c = c +a = a +g = g +t = t +a = a +c = c +a = a +c = c +t = t +c => - +c = c +- => t +t = t +c => - +c = c +- => t +t = t +c = c +a = g +t = t +c = c +c = c +g = g +g = g +t = c +c = c +t => - +g => - +t = t +- => a +- => c +a => - +- => a +a = g +t = t +c => - +c = c +- => t +c = c +c = c +c = c +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +c = c +c = c +a => - +c = a +- => t +t = t +- => g +g => - +a = g +a = a +g = g +- => a +a = c +c = c +c = c +g => - +t = t +g = g +a = a +g = g +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +c = c +c = c +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +- => a +a => - +t = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +g = g +a = a +t = t +g = a +a = a +t = t +g = a +c = c +t = t +- => a +a => - +g = a +t = t +a = a +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +c = c +t = t +- => a +a => - +- => a +a = c +t => - +c = c +a => - +c = a +- => t +c = c +g = a +t = t +a = a +a = a +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +a = a +a = a +g = g +t = t +a = a +a = a +c = c +a = a +g = g +g = g +c = c +c = c +t = t +c = c +t = t +c = c +a = a +t = t +a => - +c = a +- => t +a = a +a = a +c = c +a => - +- => a +a => - +c = a +c = c +- => t +t = t +c = c +t = t +c = c +c = c +t = t +a => - +c = a +- => t +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c => - +c = c +- => t +t = t +c = c +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +a = a +c = c +g = g +t = c +c = c +a = a +a = a +c = c +g = g +a = a +a = a +c = c +a = g +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +a = g +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +c = t +c = c +g = g +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +- => t +t => - +c = t +g = g +c = c +- => t +c = c +c = c +c = c +t => - +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c => - +c = c +- => t +t = t +g = g +a => - +c = a +c = c +c = c +- => t +t = t +a = a +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +c = c +a = g +t = t +a = a +c = c +a = a +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g = g +a = a +g = g +t = t +c = c +c = c +g = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a => - +c = a +c = c +- => g +c = c +t = t +c = c +g = g +a = a +a = a +t = t +c = c +a = g +c = c +g = g +a = a +c = c +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +c = c +t = a +c = c +a = a +c = c +g = g +g = g +a = a +c = c +g = g +c = t +t = t +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +c = c +t = t +a = g +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +g = g +g = g +t = t +c => - +c = c +c = c +c = c +c = c +- => t +a = a +a = a +t = t +t = t +a = a +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +c = c +t = t +t = t +- => c +c = c +c = c +t => - +a => - +c => - +- => a +- => t +a => - +c = a +- => t +t = t +g = g +g = g +t = t +t = t +g = g +t = t +a = a +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +g = g +g = g +g = g +c = c +t = t +a = a +t = t +c = c +g = g +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +t = t +g = g +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +t = t +g = a +t = t +c = c +c = c +a = a +c = c +c = c +g = g +t = t +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +c = c +c = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +t = t +a = a +c = c +c = c +c = c +a = a +a = a +g = g +t = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +a = a +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +t = a +t = t +t = t +g = c +g = g +- => a +a = g +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +a = a +t = t +g = g +a = a +g = g +a = a +t = t +a = a +g = g +t = t +t = t +t = t +c = c +a = a +t = t +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +a = a +g = g +t = t +c = c +t = t +g = g +t = t +a = a +t = t +a = a +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +c = c +- => a +- => t +- => t +a => - +c = a +c => - +a = c +t => - +c = c +c = c +a = a +t = t +a = a +c = c +c = c +t => - +t => - +- => t +- => c +t = t +a = g +t = t +a = a +t = t +a = a +g = g +t = t +a = a +t = t +a => - +c = a +- => t +t = t +c = c +a = a +- => t +t => - +c = t +a = a +c = c +g => - +- => g +g = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +c = c +g = a +t => - +- => t +t = c +c = c +t = t +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +t = t +g = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +c = c +g = a +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +a = a +g = g +c = c +a = a +t = t +c = c +g = g +- => c +c = c +t => - +t = t +t = t +a = a +g = g +- => c +- => c +c = c +t => - +c = c +c = c +t => - +a = a +t = t +a = a +c = c +g = g +t = a +c = c +a = a +a = a +g = g +c = c +t = t +t = t +a = a +a = a +g = g +t = t +a = a +- => t +t => - +c = t +c = c +t = t +t = t +a = g +t = t +- => c +c = c +t => - +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +t = t +t = t +c = c +g = a +t = t +c = c +c = c +c = c +a => - +- => a +a = g +a = a +a = a +c = c +c = c +a = a +c = c +- => t +- => g +- => t +- => t +- => t +t = t +a => - +c = a +t => - +- => t +t = a +c = c +g => - +t => - +a => - +t => - +g = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +g = g +t = t +- => c +c => - +- => c +c => - +- => c +c => - +- => c +- => t +c = c +t = t +c = c +a = a +c => - +c => - +c = c +g = g +t = c +a => - +a => - +c = a +- => g +- => t +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +g = g +g = g +a = a +t = t +c = c +c = c +t => - +- => t +t => - +- => t +t = c +t = t +- => a +a => - +- => a +a = c +t => - +a = a +t = t +c = c +a = a +c = c +c = c +a = a +c = c +t = t +- => c +c = c +t => - +c = c +- => a +a = c +t => - +a = a +a = a +a = a +t = t +a = a +a = a +t = t +a => - +c = a +- => t +t = t +a = a +t = t +t = t +- => a +- => c +a => - +t => - +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a = a +c = c +a = a +t = t +g = a +a = a +g = g +c = c +c = c +g = g +a = a +t = t +a = a +c = c +t => - +- => t +t => - +- => t +t = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +g = g +c = c +- => t +t => - +c = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +c = c +g = g +c = c +c = c +g = g +t = c +a = a +t = t +a = a +a = a +g = g +c = c +t = t +- => a +- => c +a => - +t => - +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +g = g +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +a = a +g = g +t = c +c = c +t = t +a = g +a = a +- => g +g => - +a = g +g = g +g = g +a = a +a = a +g = g +t = c +c = c +g = g +c = t +t = t +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +c = c +c = c +c = c +c = c +- => a +a => - +g = a +g = g +c = c +c = c +a = a +a = a +c = c +c = c +a => - +- => a +a = g +a = a +g = g +a = a +c = c +g = g +a = a +t => - +- => t +t = c +a = a +c = c +a = a +c = c +c = c +t = t +c = c +t = t +a = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +- => a +a = c +t => - +c = c +- => g +g => - +a = g +t = t +t = t +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +a = t +a = a +c = c +c = c +a = g +t = t +c = c +c = c +t = t +c = c +g = a +- => t +t => - +c = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +c = c +- => a +a => - +- => a +a = c +t => - +a = a +c = c +t = t +a => - +c = a +- => t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c = c +t = t +c = c +c = c +a = a +a = a +t = t +t = t +t = t +c = c +c = c +t => - +- => t +t = c +- => g +g => - +- => g +- => t +g = g +t => - +a => - +- => a +a => - +g = a +t = t +- => a +a => - +g = a +t = t +c = c +a = a +- => t +t => - +c = t +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c => - +c = c +- => t +t = t +- => a +a = c +t => - +t = t +a = a +c = c +c = c +g => - +- => g +g = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +a = a +a = a +g = g +t = t +a = a +t = t +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +a = a +c = c +g = g +a = a +g = g +c = c +a = g +t = t +c = c +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +a = a +g = g +t => - +- => t +t = c +c = c +c = c +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +c = c +g => - +- => g +g = a +g = g +t = t +g = g +g = g +g = g +a = a +c = c +t = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +t = t +- => a +a => - +c = a +c = c +t = t +c = c +a = a +t = t +t = t +t = t +g = g +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c => - +c = c +- => t +t = t +a => - +c = a +- => t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +g = g +g = g +a = a +t = t +- => c +c = c +t => - +a = a +a = a +c = c +t = t +- => c +c = c +t => - +a = a +a = a +c = c +t = t +- => g +g => - +a = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +t => - +a => - +t => - +t = t +a = a +t = t +c = c +a = a +t = t +c = c +- => t +- => t +c = c +- => t +c = c +g = g +t = c +t = t +- => a +a = c +t => - +c = c +a = a +c = c +t = t +c = c +t = t +c = c +g = g +a = a +t = t +t = t +c = c +c = c +a => - +- => a +a = g +c = c +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +c = c +a => - +- => a +a = t +c = c +t = t +a = a +c = c +a => - +- => a +a = c +c = c +t = g +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +g = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +g = g +c = c +a = a +g = g +t = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +c = c +a = a +t = t +c = c +g = g +g = g +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +t = t +g = g +c = t +t = t +g = g +c = c +a = a +a = a +c = c +c = c +c = c +c = c +g = g +g = g +- => a +a => - +- => a +a => - +- => a +a = c +t => - +g = g +c = c +a = a +t = t +c = c +a = a +a = a +c = c +a = a +t = t +a = a +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t => - +- => t +t = c +t = t +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +c = c +c = c +a => - +- => a +a = t +t = t +c = c +g = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +- => g +g => - +a = g +t = t +- => a +a => - +c = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +c => - +c = c +- => t +t = t +- => a +a = c +t => - +c = c +c = c +a = a +t = t +g = g +t = t +t = t +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +- => c +c = c +t => - +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +c = c +g = g +g = g +t = t +- => a +a = c +c = c +c = c +t => - +a = a +t = t +- => a +a = c +t => - +a = a +a = a +c = c +a = a +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +c = c +c = c +t = t +t = t +a = a +a = a +c = c +t = t +t = t +g = g +g = g +a = a +g = g +a = a +c = c +t = t +g = g +- => a +a = c +t => - +a = a +t = t +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +g = g +g = g +c = c +c = c +c = c +g = g +a = a +g = g +a = a +c = c +g = g +g = g +t = t +a = a +g = g +a = a +a = a +t = t +t = t +g = g +t = t +t = t +t = t +g = g +g = g +g = g +- => a +a = c +t => - +a = a +a = a +g = g +- => a +a => - +- => a +a = c +c = c +t => - +c = c +a => - +t = a +- => c +- => c +c = c +t => - +a = a +c = c +a => - +c = a +c = c +c = c +g => - +c = c +g => - +- => a +- => t +- => a +a = t +t = t +a = a +t = t +a = g +a = a +t => - +- => t +t => - +- => t +t = c +a = a +a = a +c = c +t = t +c = c +t = t +a => - +t = a +c = c +- => t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +a = a +t = t +g = g +c => - +c = c +c = c +c = c +c = c +c = c +- => t +t = t +c = c +c = c +g = g +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +g = g +g = g +- => a +a => - +g => - +c = a +- => t +a = a +a = a +a = a +g = g +a = a +g = g +a = a +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +- => c +c = c +t => - +t => - +- => t +t => - +g => - +- => t +t = a +g = a +c = a +c = c +- => t +t => - +- => t +t = c +a = a +t = t +c = c +t = t +a = a +t = t +c = c +t = t +t = t +t = t +g = g +g = g +c = c +t = t +g = g +g = g +a = a +c = c +c = c +t = t +a = a +a = a +t = t +g = g +a = a +g = g +g = g +c = c +c = c +a = a +g = g +a = a +c = c +t = t +t = t +g = g +a = a +g = g +t = t +c = c +t = t +a = a +g = g +t = t +g = g +c = c +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +a = a +c = c +t = t +t = t +g = g +t = t +t = t +t = t +g = g +c = c +t = t +t = t +g = g +g = g +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +a = a +t = t +c = c +g = g +c = c +c = c +g = g +a = a +c = c +g = g +t = t +g = g +g = g +t = t +a = a +g = g +c = c +c = c +c = c +t = t +a = a +c = c +a = a +g = g +g = g +a = a +c = c +t = t +a = a +g = g +g = g +t = t +t = t +g = g +t = t +a = a +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +a = a +t = t +t = t +t = t +g = g +g = g +g = g +a = a +t = t +g = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +c = c +c = c +t = t +g = g +a = a +g = g +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +t = t +g = g +a = a +a = a +c = c +a = a +a = a +g = g +g = g +c = c +a = a +a = a +c = c +c = c +a = a +g = g +t = t +t = t +c = c +- => a +a => - +g = a +t = t +a = a +a = a +c = c +c = c +t = t +a = a +g = g +t = t +t = t +- => a +a => - +- => a +a = c +t => - +t => - +t => - +a = t +c = c +- => a +- => t +a => - +c = a +- => t +c = c +a = a +t = t +c = c +g = a +a = a +g = g +c = c +g = g +a = a +a = a +a = a +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +a = a +g = g +a => - +- => a +a => - +c = a +- => t +c = c +g = g +t = t +a => - +c => - +a = a +c = c +- => a +- => t +a = g +a = a +c = c +a = g +a = a +g = g +c = c +c = c +t = t +c = c +c = c +- => a +a => - +- => a +- => c +a = c +t => - +c = c +t => - +a = a +a = a +t = g +- => a +a = c +t => - +g = g +a = a +g = g +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +g = g +g = g +g = g +g = g +t = t +t = t +g = g +g = g +c = c +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +c = c +g = g +t = t +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +a = a +a = a +t = t +c = c +c = c +t = t +g = g +g = g +a = a +c = c +a = a +c = c +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a => - +- => a +a => - +t = a +t = t +c => - +a = c +c = c +- => a +- => t +a = g +a = a +c = c +g = a +a = a +a = a +c = c +g = g +t = t +a = a +a = a +t = t +t = t +a => - +c = a +- => t +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +a = a +g = g +g = g +t = t +a = a +t = t +c = c +c = c +c = c +a = a +g = g +a = a +a = a +g = g +a = a +g = g +c = c +a = a +g = g +a = a +a = a +c = c +- => g +a => - +- => a +a = c +t => - +a = a +c = c +a = a +a = a +t = t +a = a +c = c +a = g +g = g +g = g +c = c +g = g +g = g +a = a +g = g +a = a +a = a +g = g +t = t +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +a = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +t = t +g = g +a = a +c = c +c = c +- => a +a => - +g = a +t = t +t = t +t = t +t = t +c = c +a = a +t = t +t = t +c = c +t = t +c = c +t = t +g = g +t = t +c = c +g = g +a = a +c = c +t = t +t = t +g = g +g = g +g = g +a = a +g = g +c = c +a = a +c = c +c = c +t = t +c = c +g = g +g = g +t = t +a = a +a = a +g = g +t = t +a = a +t = t +g = g +- => t +c = c +t => - +c = c +a = a +g = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +t = t +c = c +c = c +t = t +t = t +g = g +t = t +t = t +c = c +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +t = t +g = g +g = g +a = a +a = a +a = a +c = c +g = g +t = t +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +t = t +g = g +g = g +c = c +g = g +c = c +c = c +g = g +g = g +c = c +a => - +- => a +a => - +c = a +- => t +- => t +t => - +- => t +- => g +t = t +g = a +c = c +g => - +t => - +a = a +c = c +a = a +g = g +t = t +g = g +a = a +c = c +c = c +c = c +g = g +t = t +c = c +c = c +g = g +c = c +c = c +a = a +c = c +g = g +g = g +a = a +g = g +a = a +t = t +t = t +a = a +t = t +g = g +a = a +c = c +c = c +- => a +a = c +t => - +t = t +a = a +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +g = g +t = t +c = c +c = c +g = g +c = c +c = c +c = c +c = c +a = a +t => - +- => t +t => - +- => t +t = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +c = c +t = t +c = c +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +t = t +g = g +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +g = a +t = t +t = t +g = g +g = g +a = a +a = a +a = a +g = g +g = g +- => a +a => - +g => - +c => - +- => a +- => t +a => - +c = a +c = c +- => t +c = c +g = g +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +g = g +t = t +c = c +a => - +c = a +c = c +- => t +c = c +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a => - +t = a +c = c +- => t +g = g +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a => - +- => a +a => - +t = a +c = c +- => t +a = a +a = a +c = c +a = a +t = t +c = c +t = t +a = a +t = t +- => a +a => - +- => a +a = c +c = c +t => - +c = c +a = g +a = a +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +a = a +g = g +t = t +c = c +a => - +- => a +a => - +- => a +a = g +t => - +- => t +t = c +- => a +a = c +t => - +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c => - +c = a +- => t +- => t +a = a +g = g +a = a +c = c +t = t +a = g +c = c +a = g +t = t +c = c +c = c +g = g +a = a +a = a +t = t +a = a +c = c +g = g +c = c +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +c => - +- => c +c = a +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +g = g +t = t +a = a +a = a +t = t +c = c +g = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +t = t +c = c +c = c +c = c +- => a +a = c +t => - +t = t +a = a +t = t +c = c +t = t +a = a +a = a +c = c +c = c +a = a +g = g +g = g +t = t +t = t +a = a +a = a +c = c +c = c +c = c +a = a +c = c +a => - +t = a +c = c +- => t +c = c +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c = c +a => - +- => a +a => - +c => - +- => a +- => t +a => - +c = a +- => t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +t = t +a => - +- => a +a => - +t = a +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = t +c => - +- => c +c => - +- => c +- => a +- => t +c = c +a = a +- => c +c => - +t => - +a = c +t => - +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +a = a +a = a +c = c +t = t +t = t +g = g +c = c +g = g +a = a +a = a +a = a +g = g +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +a = a +a = a +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +a = a +c = c +c = c +c = c +- => a +a = c +t => - +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +a = a +g => - +t => - +g = g +- => a +- => g +a => - +- => a +a = g +a = a +t = t +g = g +t = t +t = t +c = c +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +c = c +a = a +g = g +g = g +t = t +t = t +t = t +c = c +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +g = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +g = g +a = a +t = t +t = t +g = g +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +t = t +g = g +c = t +- => t +c = c +c = c +t => - +c = c +c = c +t = t +a => - +- => a +a => - +- => a +a => - +c = a +- => t +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = g +t = t +t = t +t = t +a = a +a = a +a = a +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +g = g +a => - +c = a +- => t +a = a +g = g +a = a +a = a +c = c +c = c +t = t +g = g +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +t = t +a = a +g = g +t = t +g = g +g = g +t = t +c = c +c = c +g = g +a = a +g = g +c = c +c = c +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +a = a +g = g +c = c +g = g +g = g +a = a +g = g +a = a +t = t +g = g +g = g +a = a +t = t +c => - +c = a +- => t +t = t +t = t +a = a +g = g +a = a +a = a +g = g +g = g +g = g +t = t +g = g +a = a +t = t +a = a +a = a +a = a +a = a +c = c +g = g +a = a +t = t +g = g +t = t +a = a +t = t +c = c +t = t +g = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +g = g +a = a +g = g +c = c +a = a +g = g +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +- => a +a => - +- => a +a => - +g = a +c = c +c = c +a = g +a = a +g = g +a = a +- => g +g => - +a = g +a = a +a = a +c = c +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +g = g +t = t +c = c +t = t +t = t +c = c +c = c +a = a +t = t +g = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +g = g +- => a +- => t +a => - +c => - +- => a +- => t +a => - +c => - +- => a +a => - +g => - +c = a +- => t +a = a +c = c +g = g +a = a +a = a +c = c +c = c +a = a +a = a +t = t +a = a +- => t +t => - +a = t +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +g = g +a = a +a = a +a = a +g = g +g = g +g = g +a = a +a = a +c = c +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t = t +a = a +t = t +a = a +g = g +a = a +t = t +a = a +a = a +c = c +g = g +c = c +g = g +g = g +- => t +- => c +c = c +t => - +a => - +- => a +a => - +- => a +a => - +t = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a = a +g = g +c = c +g = g +g = g +a = a +t = t +a = a +t = t +g = g +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +a = g +a = a +t => - +- => t +t => - +- => t +t = c +c = c +a = a +a = a +c = c +a => - +- => a +a = g +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +t = t +a = c +c = c +a => - +c = a +c = c +c = c +- => t +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +a => - +- => a +a => - +- => a +a => - +- => a +a = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +c = c +c = c +a = a +g = g +t = t +t = t +c = c +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +t = t +a = a +g = g +a = a +g = g +g = g +a = a +t = t +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +a = a +a = a +t = t +t = t +c = c +g = g +a = a +t = t +g = g +t = t +g = g +a = a +g = g +a = a +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g = g +g = g +t = t +t = t +c = c +a = a +c = c +g = g +t = t +g = g +a = a +a = a +a = a +g = g +g = g +t = t +c = c +a = a +t = t +g = g +t = t +g = g +a = a +a = a +t = t +g = g +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +c = c +t = t +g = g +- => a +a => - +- => a +a = c +t => - +a = a +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +a = a +t = t +a = a +- => t +t => - +c = t +t = t +a = a +c = c +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +g = g +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +t = t +g = g +c = c +g = g +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +g = g +g = g +g = g +a = a +c = c +a = a +a = a +g = g +t = t +t = t +g = g +a = a +t = t +t = t +c = c +g = g +t = t +g = g +a = a +g = g +a = a +t = t +g = g +a = a +g = g +a = a +a = a +t = t +c = c +a = a +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +t = t +t = t +t = t +a = a +g = g +g = g +t = t +g = g +g = g +a = a +a = a +g = g +a = c +t = t +g = g +g = g +g = g +a = a +a = a +- => t +t => - +c = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +t = t +t = t +c = c +c = c +c = c +a = g +a = a +t = t +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +a = a +g = g +- => a +- => c +a = c +c = c +t => - +t => - +c = c +a = a +t = t +c = c +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +g = g +a = a +a = a +c = c +g = g +g = g +t = t +g = g +g = g +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +t = t +g = g +g = g +a = a +a = a +c = c +t = t +g = g +g = g +a = a +t = t +t = t +g = g +c = c +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +a = a +c = c +c = c +c = c +a = a +t = t +g = g +a = a +a = a +c = c +a = g +c = c +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +c = c +a => - +c = a +- => t +c = c +g = g +g = g +a = a +a = a +g = g +t = t +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +a = a +c = c +g = g +a = a +c = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +a = a +t = t +a = a +t = t +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +c = c +g = g +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +a = a +g = g +c = c +t = t +a = a +a = a +t = t +g = g +t = t +c = c +t = t +t = t +g = g +t = t +c = c +c = c +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +a = a +c = c +t = t +t = t +c = c +g = g +t = t +g = g +g = g +c = c +g = g +g = g +t = t +c = c +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +g = g +c = c +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +a = a +c = c +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c = c +- => a +a => - +g = a +a = a +a = a +c = c +- => a +a => - +- => a +a = c +t => - +t = t +a = a +a = a +a = a +t = t +t = t +g = g +a = a +c = c +a = a +a = a +c = c +t => - +- => t +t = c +c = c +a = a +a = a +a = a +t = t +c = c +c = c +c = c +g = g +a = a +- => t +t => - +c = t +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +t = t +a = a +g = g +a = a +t = t +t = t +a = a +g = g +g = g +g = g +t = t +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +g => - +- => g +g = a +a = a +t = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +c = c +a = a +a = a +g = g +t = t +c = c +t = t +a = a +t = t +- => a +a = c +t => - +a = a +a = a +t = t +t = t +t = t +c = c +g = g +g = g +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a => - +- => a +a = g +a = a +t = t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +- => c +a => - +t => - +- => a +a = c +t => - +a = a +g = g +- => t +t => - +c = t +g = g +a = a +c = c +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +t = t +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = a +c = c +t => - +- => t +t = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +a = a +a = a +- => c +- => c +- => c +- => c +- => t +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c => - +t => - +a = c +a = a +c = c +t = t +a = a +g = g +a = a +t = t +t = t +t = t +t = t +g = g +t = t +g = g +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +g = g +g = g +- => c +c = c +t => - +a = g +a = a +a = a +g = g +a = a +t = t +a => - +- => a +a => - +c = a +c = c +- => t +g = g +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +g = g +g = g +c = c +g = g +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +t = t +g = g +c = c +t = t +t = t +t = t +a = a +a = a +c = c +t = t +g = g +g = g +t = t +t = t +g = g +g = g +g = g +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t = t +a => - +c = a +- => t +c = c +g = g +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = a +g = g +t = t +g = g +a = a +c = c +g = g +a = a +c = c +- => a +- => a +a => - +g => - +g = a +g = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +t = t +c = c +g = g +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +g = g +a = a +c = c +g = g +t = t +a => - +- => a +a => - +- => a +a = c +g = g +a = a +c = c +g = g +c = c +- => a +a = c +t => - +g = g +a = a +a = a +c = c +t = t +a = a +c = c +g = g +a = a +a = a +c = c +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +c = c +t = t +a = a +g = g +- => c +- => a +- => c +- => c +- => a +- => c +- => t +- => a +- => a +- => a +- => t +- => c +- => t +- => c +- => c +- => c +- => a +- => c +- => t +- => t +- => g +- => a +- => g +- => t +- => g +- => a +- => c +- => c +- => t +- => t +- => g +- => c +- => c +- => c +- => c +- => t +- => a +- => c +- => g +- => a +- => a +- => c +- => g +- => t +- => a +- => c +- => a +- => c +- => a +- => t +- => t +- => a +- => g +- => a +- => a +- => t +- => g +- => a +- => t +- => t +- => c +- => t +- => c +- => g +- => a +- => t +- => t +- => a +- => t +- => c +- => t +- => t +- => t +- => c +- => c +- => g +- => a +- => t +- => c +- => c +- => t +- => g +- => g +- => t +- => t +- => t +- => g +- => g +- => a +- => t +- => a +- => a +- => a +- => c +- => a +- => a +- => a +- => t +- => a +- => c +- => c +- => c +- => c +- => a +- => c +- => t +- => a +- => c +- => a +- => c +- => t +- => c +- => g +- => g +- => g +- => c +- => a +- => g +- => a +- => t +- => t +- => t +- => g +- => t +- => a +- => a +- => a +- => a +- => g +- => t +- => c +- => a +- => c +- => a +- => t +- => a +- => a +- => c +- => g +- => a +- => a +- => a +- => c +- => t +- => c +- => c +- => t +- => c +- => c +- => a +- => t +- => t +- => c +- => g +- => a +- => t +- => g +- => t +- => a +- => t +- => t +- => t +- => g +- => a +- => c +- => a +- => c +- => c +- => c +- => c +- => c +- => c +- => a +- => c +- => a +- => g +- => a +- => a +- => a +- => c +- => c +- => c +- => c +- => a +- => a +- => a +- => c +- => c +- => a +- => a +- => c +- => c +- => a +- => a +- => g +- => c +- => c +- => c +- => c +- => a +- => t +- => a +- => c +- => c +- => c +- => c +- => a +- => a +- => t +- => c +- => g +- => t +- => c +- => g +- => c +- => c +- => a +- => c +- => a +- => c +- => a +- => c +- => a +- => c +- => a +- => c +- => g +- => a +- => c +- => c +- => c +- => a +- => t +- => c +- => c +- => t +- => a +- => c +- => c +- => c +- => g +- => c +- => c +- => c +- => c +- => c +- => a +- => a +- => c +- => a +- => t +- => a +- => a +- => c +- => t +- => a +- => c +- => t +- => c +- => t +- => a +- => a +- => t +- => c +- => a +- => t +- => c +- => a +- => t +- => a +- => c +- => c +- => c +- => t +- => c +- => a +- => c +- => c +- => c +- => t +- => c +- => c +- => c +- => c +- => t +- => t +- => t +- => t +- => a +- => t +- => t +- => a +- => c +- => a +- => c +- => a +- => a +- => t +- => c +- => a +- => a +- => c +- => c +- => c +- => c +- => c +- => c +- => a +- => c +- => t +- => g +- => a +- => c +- => a +- => a +- => t +- => t +- => t +- => t +- => c +- => a +c = c +- => g +- => t +- => a +- => t +- => g +a = g +- => c +- => g +- => g +- => t +- => t +- => t +- => t +c => - +- => c +- => t +- => a +- => t +- => t +- => t +- => t +- => a +c = a +a = a +c = c +- => t +- => t +- => t +- => a +t = g +- => a +- => c +a = c +a = a +a = a +- => t +t = c +- => c +- => g +- => a +- => c +- => c +- => a +- => c +- => a +- => a +- => t +- => c +- => c +- => c +- => a +- => a +- => g +- => a +- => a +- => a +- => c +- => a +- => a +- => a +- => a +- => a +- => c +- => c +- => c +- => c +- => a +- => a +- => a +- => c +- => c +- => g +- => t +- => c +- => t +c = c +- => t +t = a +- => c +- => a +- => c +- => a +- => a +- => a +- => t +- => t +- => c +- => a +- => c +- => g +- => a +- => c +- => a +- => c +- => c +- => g +- => g +- => t +- => c +- => t +- => t +- => c +- => g +- => c +- => c +- => c +- => c +- => c +- => t +- => c +- => c +- => c +- => c +- => c +- => c +- => c +- => a +- => a +c = a +c = c +c = c +- => a +a = c +c = c +- => t +- => t +t = t +- => a +- => a +- => a +- => a +- => a +- => a +- => c +- => a +- => a +- => t +- => a +- => c +- => t +- => a +- => c +a => - +- => a +- => g +- => a +- => c +- => a +- => c +- => a +- => c +a = c +g => - +- => t +- => t +t => - +g => - +a = t +c => - +- => c +c = a +c = c +c = c +- => g +g = a +c => - +- => c +c = a +c = c +- => g +- => t +c = c +- => t +- => g +- => t +- => a +- => a +- => g +- => t +- => t +t = a +- => a +- => c +- => a +- => a +- => t +- => a +- => a +- => t +- => a +- => a +- => t +- => a +- => c +- => a +- => g +- => g +- => a +- => t +- => g +- => t +a = t +c = c +- => g +- => t +- => a +- => a +- => t +- => t +g = a +- => a +- => t +- => t +a => - +- => a +a => - +c = a +- => t +- => t +- => g +- => t +- => g +- => t +- => g +g = a +t = a +- => a +a = t +c = c +- => a +- => t +a = t +c = c +- => a +- => t +- => a +- => c +- => a +- => a +- => g +- => c +- => g +- => g +- => a +- => c +a = a +- => t +t => - +- => t +- => a +t = t +- => a +a => - +g => - +g => - +- => a +- => c +a = t +t = t +- => g +g = c +a = a +t => - +- => t +- => c +- => c +t = a +- => c +- => g +c => - +t => - +c = c +- => t +- => a +- => t +- => t +a = t +a = a +t = t +t = t +a = a +- => t +t = c +c = c +t => - +- => t +- => a +t = c +t = t +c = c +c = c +g => - +a = g +t = t +c = c +c = c +- => t +- => t +t = a +g => - +g = g +- => t +- => t +t => - +- => t +t = c +t = t +g => - +- => g +- => t +g = c +- => t +a = a +- => t +t = g +- => a +- => c +- => g +- => c +- => t +- => g +- => t +a => - +a => - +- => a +- => t +- => c +- => c +- => c +- => a +- => c +- => g +- => a +- => g +- => g +a = c +c = c +- => g +a => - +a => - +a => - +t => - +- => a +- => g +- => g +a = t +c => - +- => c +- => g +c => - +- => c +- => a +- => g +c = a +- => g +c = c +- => g +- => t +- => t +a = a +- => c +- => g +c = a +t = t +- => a +- => g +- => c +a = g +c = c +a = a +c = c +- => g +- => t +- => a +- => t +- => g +t = g +c = g +g = g +g = g +g = g +- => t +c = c +a = t +g = g +c = c +- => t +- => t +- => t +t => - +- => t +- => a +t => - +- => t +t = g +g = g +- => t +- => t +t = t +a => - +a => - +a => - +- => a +a = c +g = g +t => - +c = t +a = a +- => c +c => - +a = c +t = t +a = c +a = t +c = c +g = g +a => - +- => a +- => g +- => g +- => g +a = c +a = a +- => c +- => t +c => - +- => c +- => a +c => - +- => c +c => - +- => c +- => a +- => a +- => t +- => t +- => a +- => t +- => c +c => - +t => - +- => c +c => - +- => c +- => a +c = c +- => t +a => - +t = a +t = t +c = c +- => t +- => g +g = g +- => a +- => c +a => - +t => - +g => - +t => - +- => a +a = c +t => - +t => - +- => t +t = a +g = g diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.0.json b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.0.json new file mode 100644 index 0000000..baa5bbd --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.0.json @@ -0,0 +1,232 @@ +{ + "protocol_version" : "0.0.4", + "configuration" : { + "version" : "(6.4.0.198) (2019-06/fe64a4765e6)", + "tlc" : "normal", + "sigsgev" : "altstack", + "notifications" : "kqueue", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "0", + "suspend" : "hybrid" + }, + "memory" : { + "Resident Size" : "37834752", + "Virtual Size" : "4466749440", + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x11437bdc0", + "thread_info_addr" : "0x7f9d2d800000", + "thread_name" : "tid_307", + "ctx" : { + "IP" : "0x7fff6c4bace6", + "SP" : "0x7ffee4485f08", + "BP" : "0x7ffee4485fa0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x70000643a000", + "thread_info_addr" : "0x7f9d2e014600", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7fff6c4be7fa", + "SP" : "0x7000064394f8", + "BP" : "0x700006439520" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x700006237000", + "thread_info_addr" : "0x7f9d2e800e00", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7fff6c4b8296", + "SP" : "0x700006236e48", + "BP" : "0x700006236ef0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + } + ] +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.1.json b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.1.json new file mode 100644 index 0000000..4620f3c --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.1.json @@ -0,0 +1,232 @@ +{ + "protocol_version" : "0.0.4", + "configuration" : { + "version" : "(6.4.0.198) (2019-06/fe64a4765e6)", + "tlc" : "normal", + "sigsgev" : "altstack", + "notifications" : "kqueue", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "0", + "suspend" : "hybrid" + }, + "memory" : { + "Resident Size" : "37117952", + "Virtual Size" : "4466745344", + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x104ff6dc0", + "thread_info_addr" : "0x7fa20c001200", + "thread_name" : "tid_307", + "ctx" : { + "IP" : "0x7fff6c4bace6", + "SP" : "0x7ffeec355f08", + "BP" : "0x7ffeec355fa0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x700001c9d000", + "thread_info_addr" : "0x7fa20b800600", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7fff6c4b8296", + "SP" : "0x700001c9ce48", + "BP" : "0x700001c9cef0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x700001ea0000", + "thread_info_addr" : "0x7fa20c802a00", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7fff6c4be7fa", + "SP" : "0x700001e9f4f8", + "BP" : "0x700001e9f520" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + } + ] +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.2.json b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.2.json new file mode 100644 index 0000000..52ad3a0 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.2.json @@ -0,0 +1,236 @@ +{ + "protocol_version" : "0.0.4", + "configuration" : { + "version" : "(6.4.0.198) (2019-06/fe64a4765e6)", + "tlc" : "normal", + "sigsgev" : "altstack", + "notifications" : "kqueue", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "0", + "suspend" : "hybrid" + }, + "memory" : { + "Resident Size" : "39825408", + "Virtual Size" : "4467929088", + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x700009e42000", + "thread_info_addr" : "0x7fbe49816c00", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7fff6c4b8296", + "SP" : "0x700009e41e48", + "BP" : "0x700009e41ef0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x70000a045000", + "thread_info_addr" : "0x7fbe49008400", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7fff6c4be7fa", + "SP" : "0x70000a0444f8", + "BP" : "0x70000a044520" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x11db44dc0", + "thread_info_addr" : "0x7fbe49801200", + "thread_name" : "tid_307", + "ctx" : { + "IP" : "0x7fff6c4bace6", + "SP" : "0x7ffedfd4def8", + "BP" : "0x7ffedfd4df90" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + } + ] +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.3.json b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.3.json new file mode 100644 index 0000000..bbdcbbc --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.3.json @@ -0,0 +1,236 @@ +{ + "protocol_version" : "0.0.4", + "configuration" : { + "version" : "(6.4.0.198) (2019-06/fe64a4765e6)", + "tlc" : "normal", + "sigsgev" : "altstack", + "notifications" : "kqueue", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "0", + "suspend" : "hybrid" + }, + "memory" : { + "Resident Size" : "25600000", + "Virtual Size" : "4467929088", + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x116c59dc0", + "thread_info_addr" : "0x7fd13000f200", + "thread_name" : "tid_307", + "ctx" : { + "IP" : "0x7fff6c4bace6", + "SP" : "0x7ffee86f6ef8", + "BP" : "0x7ffee86f6f90" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x700009fd4000", + "thread_info_addr" : "0x7fd13002a600", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7fff6c4b8296", + "SP" : "0x700009fd3e48", + "BP" : "0x700009fd3ef0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x70000a1d7000", + "thread_info_addr" : "0x7fd130041600", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7fff6c4be7fa", + "SP" : "0x70000a1d64f8", + "BP" : "0x70000a1d6520" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + } + ] +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.4.json b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.4.json new file mode 100644 index 0000000..9c44a54 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.4.json @@ -0,0 +1,236 @@ +{ + "protocol_version" : "0.0.4", + "configuration" : { + "version" : "(6.4.0.198) (2019-06/fe64a4765e6)", + "tlc" : "normal", + "sigsgev" : "altstack", + "notifications" : "kqueue", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "0", + "suspend" : "hybrid" + }, + "memory" : { + "Resident Size" : "39002112", + "Virtual Size" : "4466749440", + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x700004db3000", + "thread_info_addr" : "0x7fdbd282e200", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7fff6c4be7fa", + "SP" : "0x700004db24f8", + "BP" : "0x700004db2520" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x700004bb0000", + "thread_info_addr" : "0x7fdbd282d000", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7fff6c4b8296", + "SP" : "0x700004bafe48", + "BP" : "0x700004bafef0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x10e36cdc0", + "thread_info_addr" : "0x7fdbd3000000", + "thread_name" : "tid_307", + "ctx" : { + "IP" : "0x7fff6c4bace6", + "SP" : "0x7ffee3b7ceb8", + "BP" : "0x7ffee3b7cf50" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + } + ] +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.5.json b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.5.json new file mode 100644 index 0000000..1afa875 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.5.json @@ -0,0 +1,236 @@ +{ + "protocol_version" : "0.0.4", + "configuration" : { + "version" : "(6.4.0.198) (2019-06/fe64a4765e6)", + "tlc" : "normal", + "sigsgev" : "altstack", + "notifications" : "kqueue", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "0", + "suspend" : "hybrid" + }, + "memory" : { + "Resident Size" : "38891520", + "Virtual Size" : "4467793920", + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x700003d13000", + "thread_info_addr" : "0x7feb54016c00", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7fff6c4b8296", + "SP" : "0x700003d12e48", + "BP" : "0x700003d12ef0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x11a147dc0", + "thread_info_addr" : "0x7feb54802000", + "thread_name" : "tid_307", + "ctx" : { + "IP" : "0x7fff6c4bace6", + "SP" : "0x7ffee2d7aea8", + "BP" : "0x7ffee2d7af40" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x700003f16000", + "thread_info_addr" : "0x7feb5401ca00", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7fff6c4be7fa", + "SP" : "0x700003f154f8", + "BP" : "0x700003f15520" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + } + ] +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.6.json b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.6.json new file mode 100644 index 0000000..fcfe26a --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.6.json @@ -0,0 +1,260 @@ +{ + "protocol_version" : "0.0.4", + "configuration" : { + "version" : "(6.4.0.198) (2019-06/fe64a4765e6)", + "tlc" : "normal", + "sigsgev" : "altstack", + "notifications" : "kqueue", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "0", + "suspend" : "hybrid" + }, + "memory" : { + "Resident Size" : "16523264", + "Virtual Size" : "4466749440", + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x103ab0dc0", + "thread_info_addr" : "0x7fedb000f200", + "thread_name" : "tid_307", + "ctx" : { + "IP" : "0x7fff6c4bace6", + "SP" : "0x7ffeeeb739c8", + "BP" : "0x7ffeeeb73a60" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x700003a7a000", + "thread_info_addr" : "0x7fedb1007800", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7fff6c4b8296", + "SP" : "0x700003a79e48", + "BP" : "0x700003a79ef0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x700003c7d000", + "thread_info_addr" : "0x7fedb1813400", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7fff6c4be7fa", + "SP" : "0x700003c7c4f8", + "BP" : "0x700003c7c520" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + } + ] +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.7.json b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.7.json new file mode 100644 index 0000000..1065831 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.7.json @@ -0,0 +1,260 @@ +{ + "protocol_version" : "0.0.4", + "configuration" : { + "version" : "(6.4.0.198) (2019-06/fe64a4765e6)", + "tlc" : "normal", + "sigsgev" : "altstack", + "notifications" : "kqueue", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "0", + "suspend" : "hybrid" + }, + "memory" : { + "Resident Size" : "19746816", + "Virtual Size" : "4459810816", + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x10c8b6dc0", + "thread_info_addr" : "0x7f8b2780f200", + "thread_name" : "tid_307", + "ctx" : { + "IP" : "0x7fff6c4bace6", + "SP" : "0x7ffeeed7e998", + "BP" : "0x7ffeeed7ea30" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x7000059d5000", + "thread_info_addr" : "0x7f8b28800800", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7fff6c4b8296", + "SP" : "0x7000059d4e48", + "BP" : "0x7000059d4ef0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x700005bd8000", + "thread_info_addr" : "0x7f8b27818c00", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7fff6c4be7fa", + "SP" : "0x700005bd74f8", + "BP" : "0x700005bd7520" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + } + ] +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.8.json b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.8.json new file mode 100644 index 0000000..0fe7f33 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/mono_crash.0.8.json @@ -0,0 +1,260 @@ +{ + "protocol_version" : "0.0.4", + "configuration" : { + "version" : "(6.4.0.198) (2019-06/fe64a4765e6)", + "tlc" : "normal", + "sigsgev" : "altstack", + "notifications" : "kqueue", + "architecture" : "amd64", + "disabled_features" : "none", + "smallconfig" : "disabled", + "bigarrays" : "disabled", + "softdebug" : "enabled", + "interpreter" : "enabled", + "llvm_support" : "0", + "suspend" : "hybrid" + }, + "memory" : { + "Resident Size" : "31916032", + "Virtual Size" : "4459806720", + "minor_gc_time" : "0", + "major_gc_time" : "0", + "minor_gc_count" : "0", + "major_gc_count" : "0", + "major_gc_time_concurrent" : "0" + }, + "threads" : [ + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x70000d300000", + "thread_info_addr" : "0x7fa144803600", + "thread_name" : "Finalizer", + "ctx" : { + "IP" : "0x7fff6c4b8296", + "SP" : "0x70000d2ffe48", + "BP" : "0x70000d2ffef0" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : false, + "native_thread_id" : "0x111a41dc0", + "thread_info_addr" : "0x7fa145805c00", + "thread_name" : "tid_307", + "ctx" : { + "IP" : "0x7fff6c4bace6", + "SP" : "0x7ffeedc81998", + "BP" : "0x7ffeedc81a30" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + }, + { + "is_managed" : false, + "offset_free_hash" : "0x0", + "offset_rich_hash" : "0x0", + "crashed" : true, + "native_thread_id" : "0x70000d503000", + "thread_info_addr" : "0x7fa14400b200", + "thread_name" : "Debugger agent", + "ctx" : { + "IP" : "0x7fff6c4be7fa", + "SP" : "0x70000d5024f8", + "BP" : "0x70000d502520" + }, + "unmanaged_frames" : [ + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } +, + { + "native_address" : "unregistered" + } + + ] + } + ] +} \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt b/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt index e69de29..4e24a48 100644 --- a/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt @@ -0,0 +1,277 @@ +gatcacaggt ctatcaccct attaaccact cacgggagct ctccatgcat ttggtatttt +cgtctggggg gtgtgcacgc gatagcattg cgagacgctg gagccggagc accctatgtc +gcagtatctg tctttgattc ctgccccatt ccattattta tcgcacctac gttcaatatt +acaggcgagc atacttactg aagtgtgtta attaattaat gcttgtagga cataataata +acgactaaat gtctgcacag ctgctttcca cacagacatc ataacaaaaa atttccacca +aaccccccct cccccgcttc tggccacagc acttaaacac atctctgcca aaccccaaaa +acaaagaacc ctaacaccag cctaaccaga tttcaaattt tatcttttgg cggtatacac +ttttaacagt caccccctaa ctaacacatt attttcccct cccactccca tactactaat +ctcatcaata caacccccgc ccatcctacc cagcacacac cgctgctaac cccatacccc +gagccaacca aaccccaaag acacccccca cagtttatgt agcttacctc ctcaaagcaa +tacactgaaa atgtttagac gggctcacat caccccataa acaaataggt ttggtcctag +cctttctatt agctcttagt aagattacac atgcaagcat ccccattcca gtgagttcac +cctctaaatc accacgatca aaagggacaa gcatcaagca cgcaacaatg cagctcaaaa +cgcttagcct agccacaccc ccacgggaaa cagcagtgat aagcctttag caataaacga +aagtttaact aagctatact aaccccaggg ttggtcaatt tcgtgccagc caccgcggtc +acacgattaa cccaagtcaa tagaagccgg cgtaaagagt gttttagatc accccctccc +caataaagct aaaactcacc tgagttgtaa aaaactccag ttgacacaaa ataaactacg +aaagtggctt taacatatct gaacacacaa tagctaagac ccaaactggg attagatacc +ccactatgct tagccctaaa cctcaacagt taaatcaaca aaactgctcg ccagaacact +acgagccaca gcttaaaact caaaggacct ggcggtgctt catatccctc tagaggagcc +tgttctgtaa tcgataaacc ccgatcaacc tcaccacctc ttgctcagcc tatataccgc +catcttcagc aaaccctgat gaaggctaca aagtaagcgc aagtacccac gtaaagacgt +taggtcaagg tgtagcccat gaggtggcaa gaaatgggct acattttcta ccccagaaaa +ctacgatagc ccttatgaaa cctaagggtc gaaggtggat ttagcagtaa actgagagta +gagtgcttag ttgaacaggg ccctgaagcg cgtacacacc gcccgtcacc ctcctcaagt +atacttcaaa ggacatttaa ctaaaacccc tacgcattta tatagaggag acaagtcgta +acatggtaag tgtactggaa agtgcacttg gacgaaccag agtgtagctt aacacaaagc +acccaactta cacttaggag atttcaactt aacttgaccg ctctgagcta aacctagccc +caaacccact ccaccttact accaaacaac cttagccaaa ccatttaccc aaataaagta +taggcgatag aaattgaaac ctggcgcaat agatgtagta ccgcaaggga aagatgaaaa +attataacca agcataatat agcaaggact aacccctata ccttctgcat aatgaattaa +ctagaaataa ctttgcaagg agagccaaag ctaagacccc cgaaaccaga cgagctacct +aagaacagct aaaagagcac acccgtctat gtagcaaaat agtgggaaga tttataggta +gaggcgacaa acctaccgag cctggtgata gctggttgtc caagatagaa tcttagttca +actttaaatt tacccacaga accctctaaa tccccttgta aatttaactg ttagtccaaa +gaggaacagc tctttggaca ctaggaaaaa accttgtaga gagagtaaaa aatttaacac +ccatagtagg cctaaaagca gccaccaatt aagaaagcgt tcaagctcaa cacccactac +ctaaaaaatc ccaaacatat aactgaactc ctcacaccca attggaccaa tctatcaccc +tatagaagaa ctaatgttag tataagtaac atgaaaacat tctcctccgc ataagcctgc +gtcagattaa aacactgaac tgacaattaa cagcccaata tctacaatca accaacaagt +cattattacc ctcactgtca acccaacaca ggcatgctca taaggaaagg ttaaaaaaag +taaaaggaac tcggcaaatc ttaccccgcc tgtttaccaa aaacatcacc tctagcatta +ccagtattag aggcaccgcc tgcccagtga cacatgttta acggccgcgg taccctaacc +gtgcaaaggt agcataatca cttgttcctt aaatagggac ctgtatgaat ggctccacga +gggttcagct gtctcttact tttaaccagt gaaattgacc tgcccgtgaa gaggcgggca +taacacagca agacgagaag accctatgga gctttaattt attaatgcaa acagtaccta +acaaacccac aggtcctaaa ctaccaaacc tgcattaaaa atttcggttg gggcgacctc +ggagcacaac ccaacctccg agcagtacat gctaagacct caccagtcaa agcgaactac +catactcaat tgatccaata acttgaccaa cggaacaagt taccctaggg ataacagcgc +aatcctattc tagagtccat atcaacaata gggtttacga cctcgatgtt ggatcaggac +atcccaatgg tgcagccgct attaaaggtt cgtttgttca acgattaaag tcctacgtga +tctgagttca gaccggagta atccaggtcg gtttctatct acttcaaatt cctccctgta +cgaaaggaca agagaaataa ggcctacttc acaaagcgcc ttcccccgta aatgatatca +tctcaactta gtattatacc cacacccacc caagaacagg gtttgttaag atggcagagc +ccggtaatcg cataaaactt aaaactttac agtcagaggt tcaattcctc ttcttaacaa +cacacccatg gccaacctcc tactcctcgt tgtacccatt ctaatcgcaa tggcattcct +aatgcttacc gaacgaaaaa ttctaggcta tatgcaacta cgcaaaggtc ccaacgttgt +aggcccctac gggctactac aacccttcgc tgacgccata aaactcttca ccaaagaacc +cctaaaaccc gccacatcca ccatcaccct ctacatcacc gccccgacct tagctctcac +catcgctctt ctactatgaa cccccctccc catacccaac cccctggtta acctcaacct +aggcctccta tttattctag ccacctctag cctagccgtt tactcaatcc tctgatcagg +gtgagcatca aactcaaact acgccctgat cggcgcactg cgagcagtag cccaaacaat +ctcatatgaa gtcaccctag ccatcattct actatcaaca ttactaataa gtggctcctt +taacctctcc acccttatca cagcacaaga acacctctga ttactcctgc catcatgacc +cttggccata atatgattta tctccacact agcagagacc aaccgaaccc ccttcgacct +tgctgaaggg gaatccgaac tagtctcagg ctttaacatc gaatacgccg caggcccctt +cgccctattc ttcatagccg aatacacaaa cattattata ataaacaccc tcaccactac +aatcttccta ggaacaacat ataacgcact ctcccctgaa ctctacacaa catattttgt +caccaagacc ctacttctga cctccctgtt cttatgaatt cgaacagcat acccccgatt +ccgctacgac caactcatac acctcctatg aaaaaacttc ctaccactca ccctagcact +acttatatga tatgtctcca tacccattac aatctccagc attccccctc aaacctaaga +aatatgtctg ataaaagagt tactttgata gagtaaataa taggagttta aaccccctta +tttctaggac tatgagaatc gaacccatcc ctgagaatcc aaaattctcc gtgccaccta +tcacacccca tcctaaagta aggtcagcta aataagctat cgggcccata ccccgaaaat +gttggttata cccttcccgt actaattaat cccctggccc aacccgtcat ctactctacc +atctttgcag gcacactcat cacagcacta agctcgcact gattttttac ctgagtgggc +ctagaaataa acatgctagc ttttattcca gttctaacca aaaaaataaa ccctcgttcc +acagaagctg ccatcaagta tttcctcacg caagcaaccg catccataat ccttctaata +gctatcctct tcaacaatat actctccgga caatgaacca taaccaatac taccaatcaa +tactcatcat taataatcat aatggctata gcaataaaac taggaatagc cccctttcac +ttctgagtcc cagaggttac ccaaggcacc cctctgacat ccggcctgct ccttctcaca +tgacaaaaac tagcccccat ctcaatcata taccaaattt ctccctcact aaacgtaagc +ctcctcctca ctctttcaat cttatccatc atagcaggca gttgaggtgg attaaaccaa +acccagctac gcaaaatctt agcatactcc tcaattaccc acataggatg aataatagca +gttctaccgt acaaccctaa cataaccatt cttaatttaa ctatttatat tatcctaact +actaccgcat tcctactact caacttaaac tccagcacca cgaccctact actatctcgc +acctgaaaca agctaacatg actaacaccc ttaattccat ccaccctcct ctccctagga +ggcctgcccc cgctaaccgg ctttttgccc aaatgggcca ttatcgaaga attcacaaaa +aacaatagcc tcatcatccc caccatcata gccaccatca ccctccttaa cctctacttc +tacctacgcc taatctactc cacctcaatc acactactcc ctatatctaa caacgtaaaa +ataaaatgac agtttgaaca tacaaaaccc accccattcc tccccacact catcaccctt +accacactac tcctacctat ctcccctttt atactaatag tcttatagaa atttaggtta +aatacagacc aagagccttc aaagccctca gtaagttgca atacttaatt tctgcaacag +ctaaggactg caaaacccca ctctgcatca actgaacgca aatcagccac tttaattaag +ctaagccctt actagaccaa tgggactcaa acccacaaac acttagttaa cagctaagca +ccctaatcaa ctggcttcaa tctacttctc ccgccgccgg gaaaaaaggc gggagaagcc +ccggcaggtt tgaagctgct tcttcgaatt tgcaattcaa tatgaaaatc acctcagagc +tggtaaaaag aggcttaacc cctgtcttta gatttacagt ccaatgcttc actcagccat +tttacctcac ccccactgat gttcgccgac cgttgactat tctctacaaa ccacaaagac +attggaacac tatacctact attcggcgca tgagctggag tcctaggcac agctctaagc +ctccttattc gagccgaact gggccagcca ggcaaccttc taggtaacga ccacatctac +aacgttatcg tcacagccca tgcatttgta ataatcttct tcatagtaat acccatcata +atcgggggct ttggcaactg actagttccc ttaataatcg gtgcccccga tatggcgttt +ccccgcataa acaatataag cttctgactc ttacctccct ctctcctact cctgctcgca +tctgctatag tggaagccgg cgcaggaaca ggttgaacag tctaccctcc cttagcaggg +aactactccc accctggagc ctccgtagac ctaaccatct tctccttaca cctagcaggt +gtctcctcta tcttaggggc catcaatttc atcacaacaa ttattaatat aaaaccccct +gccataaccc aataccaaac gccccttttc gtctgatccg tcctaatcac agcagtccta +cttctcctat ctctcccagt cctagctgct ggcatcacta tactactaac agaccgcaac +ctcaacacca ccttcttcga ccccgccgga ggaggagacc ccattctata ccaacaccta +ttctgatttt tcggccaccc tgaagtttat attctcatcc taccaggctt cggaataatc +tcccatattg taacttacta ctccggaaaa aaagaaccat ttggatacat aggtatggtc +tgagctatga tatcaattgg cttcctaggg tttatcgtgt gagcacacca tatatttaca +gtaggaatag acgtagacac acgagcatat ttcacctccg ctaccataat catcgctatc +cccaccggcg tcaaagtatt tagctgactc gccacactcc acggaagcaa tatgaaatga +tctgctgcag tgctctgagc cctaggattc atctttcttt tcaccgtagg tggcctgact +ggcattgtat tagcaaactc atcactagac atcgtactac acgacacgta ctacgttgta +gctcacttcc actatgtcct atcaatagga gctgtatttg ccatcatagg aggcttcatt +cactgatttc ccctattctc cggctacacc ctagaccaaa cttacgccaa aatccatttc +actatcatat tcatcggcgt aaatctaact ttcttcccac aacactttct cggcctatcc +ggaatgcccc gacgttactc ggactacccc gatgcataca ccacatgaaa tatcctatca +tctgtaggct cattcatttc tctaacagca gtaatattaa taattttcat gatttgagaa +gccttcgctt cgaagcgaaa agtcctaata gtagaagaac cctccataaa cctggagtga +ctatatggat gccccccacc ctaccacaca ttcgaagagc ccgtatacat aaaatctaga +caaaaaagga aggaatcgaa ccccccaaag ctggtttcaa gccaacccca tggcctccat +gactttttca aaaagatatt agaaaaacca tttcataact ttgtcaaagt taaattatag +gctaaatcct atatatctta atggcacatg cagcgcaagt aggtctacaa gacgctactt +cccctatcat agaagagctt atcatctttc atgatcacgc cctcataatc attttcctta +tctgcttcct agtcctgtat gcccttttcc taacactcac aacaaaacta actaatacta +gcatctcaga cgctcaggaa atagaaaccg tctgaactat cctgcccgcc atcatcctag +tcctcatcgc cctcccatcc ctacgcatcc tttacataac agacgaggtc aacgacccct +cctttaccat caaatcaatt ggccatcaat ggtactgaac ctacgagtac accgactacg +gcggactaat cttcaactcc tacatacttc ccccattatt cctagaacca ggcgacctgc +gactccttga cgttgacaat cgagtagtac tcccggttga agcccccatt cgtataataa +ttacatcaca agacgtctta cactcatgag ctgtccccac attaggctta aaaacagatg +caattcccgg acgtctaaac caaaccactt tcaccgctac acgaccgggg gtatactacg +gtcaatgctc tgaaatctgt ggagcaaacc acagtttcat gcccatcgtc ctagaattaa +ttcccctaaa aatctttgaa atagggcccg tatttaccct atagcacccc ctctaccccc +tctagagccc actgtaaagc taacttagca ttaacctttt aagttaaaga ttaagagaac +cagcacctct ttacagtgag atgccccaac taaatactac tgtatggccc accataatta +tccccatact ccttacacta ttcctcatca cccaactaaa aatattaaat acaaattacc +acttacctcc ctcaccaaag cccataaaaa taaaaaacta taacaaaccc tgagaaccaa +aatgaacgaa aatctgttcg cttcattcat tgcccccaca atcctaggcc tacccgccgc +agtactgatc attctatttc cccctctatt gatccccacc tccaaatatc tcatcaacaa +ccgactaatt accacccaac aatgactaat caaactaacc tcaaaacaaa tgatagccat +acacaacact aagggacgaa cctgatctct tatactagta tccttaatca tttttattac +cacaactaac ctcctcggac tcctgcctca ctcatttaca ccaaccaccc aactatctat +aaacctagcc atggccatcc ccttatgagc gggcgcagtg attataggct ttcgctctaa +gattaaaaat gccctagccc acttcttacc acaaggcaca cctacacccc ttatccctat +actagttatt atcgaaacca tcagcctact cattcaacca gtagccctgg ccgtacgcct +aaccgctaac attactgcag gtcacctact catgcaccta attggaaacg ccaccctagc +aatatcaacc attaaccttc cctctacact tatcatcttc acaattctaa ttctactgac +tatcctagaa atcgctgtcg ccttaatcca agcctacgtt ttcacacttc tagtaagcct +ctacctgcac gacaacacat aatgacccac caatcacatg cctatcatat agtaaaaccc +agcccatgac ccctaacagg ggccctctca gccctcctaa tgacctccgg cctagccatg +tgatttcact tccactccac aaccctcctc atactaggct tactaaccaa cacactaacc +atataccaat gatggcgcga tgtaacacga gaaagcacat accaaggcca ccacacacca +cctgtccaaa aaggccttcg atacgggata gtcctattta ttacctcaga agtttttttc +ttcgcaggat ttttctgagc cttttaccac tccagcctag cccctacccc ccaactagga +gggcactggc ccccaacagg catcaccccg ctaaatcccc tagaagtccc actcctaaac +acatccgtat tactcgcatc aggagtatca atcacctgag ctcaccatag tctaatagaa +aacaaccgaa accaaataat tcaagcactg cttattacaa ttttactggg tctctatttt +accctcctac aagcctcaga gtacttcgaa tctcccttca ccatttccga cggcatctac +ggctcaacat tttttgtagc cacaggcttc cacggacttc acgtcattat tggctcaact +ttcctcacta tctgcttcat ccgtcaacta atatttcact ttacatccaa acatcacttt +ggcttcgaag ccgccgcctg atactggcat tttgtagatg tggtttgact atttctgtat +gtctccatct attgatgagg gtcttactct tttagtataa atagtaccgt taacttccaa +ttaactagtt ttgacaacat tcaaaaaaga gtaataaact tcgccttaat tttaataatc +aacaccctcc tagccctact actaataatt attacatttt gactaccaca actcaacggc +tacatagaaa aatccacccc ttacgagtgc ggcttcgacc ctatatcccc cgcccgcgtc +cctttctcca taaaattctt cttagtagct attaccttct tattatttga cctagaaatt +gccctccttt tacccttacc atgagcccta caaacaacta atctaccact aatagttacg +tcatccctct tattaatcat catcctagcc ctaagtctgg cctatgaatg actacaaaaa +ggattagact gagccgaatt ggtatatagt ttaaacaaaa cgaatgattt cgactcatta +aattatgata atcatattta ccaaatgccc ctcatttaca taaatattat actagcattt +accatctcac ttctgggaat actagtgtat cgctcacacc tcatatcctc cctactatgc +ctagaaggaa taatactatc gctgttcatt atagctactc tcataaccct caacacccac +tccctcttag ccaatattgt gcctattgcc atactagttt ttgccgcctg cgaagcagcg +gtaggcctag ccctactagt ctcaatctcc aacacatatg gcctagacta cgtacataac +ctaagcctac tccaatgcta aaactaatcg tcccaacaat tatattacta ccactgacat +gactctccaa aaaacacata atttgaatca acacaaccac ccacagccta attattagca +tcatccccct actatttttt aaccaaatca acaacaacct atttagctgc tccccaacct +tttcctccga ccccctaaca acccccctcc taatactaac tacctgactc ctacccctca +caatcatggc aagccaacgc cacttatcca gtgaaccact atcacgaaaa aaactctacc +tctctatact aatctcccta caaatctcct taattataac attcacagcc acagaactaa +tcatatttta tatcttcttc gaaaccacac ttatccccac cttggctatc atcacccgat +gaggcaacca gccagaacgc ctgaacgcag gcacatactt cctattctac accctagtag +gctcccttcc cctactcatc gcactaattt acactcacaa caccctaggc tcactaaaca +ttctactact cactctcact gcccaagaac tatcaaactc ctgagccaac aacttaatat +gactagctta cacaatagct tttatagtaa agatacccct ttacggactc cacttatgac +tccctaaagc ccatgtcgaa gcccccatcg ctgggtcaat agtacttgcc gctgtactct +taaaactagg cggctatggt ataatacgcc tcacactcat tctcaacccc ctgacaaaac +atatagccta ccccttcctt gtactatccc tatggggcat aattataaca agctccatct +gcctgcgaca aacagaccta aaatcgctca ttgcatattc ttcaatcagc cacatagccc +tcgtagtaac agccattctc atccaaaccc cctgaagctt caccggcgca gtcattctca +taatcgccca cggacttaca tcctcattac tattctgcct agcaaactca aactacgaac +gcacccacag tcgcatcata atcctctctc aaggacttca aactctactc ccactaatag +ctttttgatg acttctagca agcctcgcta acctcgcctt accccccact attaacctac +tgggagaact ctctgtgcta gtaaccacat tctcctgatc aaatatcact ctcctactta +cagggctcaa catactagtc acagccctat actccctcta catatttacc acaacacaat +ggggctcact cacccaccac attaacaaca taaaaccctc attcacacga gaaaacaccc +tcatattcat acacctatcc cccattctcc tcctatccct caaccccgac atcattaccg +ggttttcctc ttgtaaatat agtttaacca aaacatcaga ttgtgaatct gacaacagag +gctcacgacc ccttatttac cgagaaagct cacaagaact gctaactcat gcccccatgt +ctaacaacat ggctttctca acttttaaag gataacagct atccattggt cttaggcccc +aaaaattttg gtgcaactcc aaataaaagt aataaccatg cacaccacta taaccaccct +gaccctgact tccctaattc cccccatcct taccaccctc attaacccta acaaaaaaaa +ctcatacccc cattatgtaa aatccattgt cgcatccacc tttattatta gtctcttccc +cacaacaata ttcatgtgcc tagaccaaga agttattatc tcgaactgac actgagccac +aacccaaaca acccagctct ccctaagctt caaactagac tacttctcca taatattcat +ccctgtagca ttgttcgtta catggtccat catagaattc tcactgtgat atataaactc +agacccaaac attaatcagt tcttcaaata tctactcatt ttcctaatta ccatactaat +cttagttacc gctaacaacc tattccaact gttcatcggc tgagagggcg taggaattat +atccttcttg ctcatcagtt gatgatacgc ccgagcagat gccaacacag cagccattca +agcaatccta tacaaccgca tcggcgatat cggtttcatc ctcgccttag catgatttat +cctacactcc aactcatgag acccacaaca aatagccctt ctaaacgcta atccaagcct +caccccacta ctaggcctcc tcctagcagc agcaggcaaa tcagcccaat taggtctcca +cccctgactc ccctcagcca tagaaggccc caccccagtc tcagccctac tccactcaag +cactatagtc gtagcaggag tcttcttact catccgcttc caccccctag cagaaaatag +cccactaatc caaactctaa cactatgctt aggcgctatc accactctat tcgcagcagt +ctgcgccctt acacaaaatg acatcaaaaa aatcgtagcc ttctccactt caagtcaact +agggctcata gtagttacaa tcggcatcaa ccaaccacac ctagcattcc tgcacatctg +tacccacgcc ttcttcaaag ccatactatt tatatgctcc gggtccatca tccacaacct +taacaatgaa caagatattc gaaaaatagg aggactactc aaaaccatac ctctcacttc +aacctccctc accattggca gcctagcatt agcaggaata cctttcctca caggtttcta +ctccaaagac cacatcatcg aaaccgcaaa catatcatac acaaacgcct gagccctatc +tattactctc atcgctacct ccctgacaag cgcctatagc actcgaataa ttcttctcac +cctaacaggt caacctcgct tccccaccct cactaacatt aacgaaaata accctaccct +actaaacccc attaaacgcc tagcagccgg aagcctattc gcaggatttc tcattactaa +caacatttcc cccgcatccc ccttccaaac aacaatcccc ctctacctaa aactcgcagc +cctcgctgtc actttcctag gacttctaac agccctagac ctcaactacc taaccaacaa +acttaaaata aaaaccccac tatacacatt ttatttctcc aacatactcg ggttctaccc +tagcatcaca caccgcacaa tcccctatct aggccttctt acgagccaaa acctgcccct +actcctccta gacctaacct gactagaaaa gctattacct aaaacaattt cacagcacca +aatctccgcc tccatcacca cctcaaccca aaaaggcata attaaacttt acttcctctc +tttcttcttc ccactcatcc taaccctact cctaatcata taacctattc ccccgagcaa +tctcaattac aacatataca ccaacaaaca atgttcaacc agtaactact actaatcaac +gcccataatc atacaaagcc cccgcaccaa taggatcctc ccgaatcaac cctgacccct +ctccttcata gattattcag cttcctacac tattaaagtt taccacaacc accaccccat +catactcttt cacccacagc accaatccta cctccatcgc taaccccact aaaacactca +ccaagacctc aacccctgac ccccatgcct caggatactc ctcaatagcc atcgctgtag +tatatccaaa gacaaccatc attcccccta aataaattaa aaaaactatt aaacccatat +aacctccccc aaaattcaga ataataacac acccaaccac accgctaaca atcaatacta +aacccccata aataggagaa ggcttagaag aaaaccccac aaaccccatt actaaaccca +cactcaacag aaacaaagca tacatcatta ttctcgcacg gactacaacc acgaccaatg +atatgaaaaa ccatcgttgt atttcaacta caagaacacc aatgacccca atacgcaaaa +ttaaccccct aataaaatta attaaccact cattcatcga cctccccacc ccatccaaca +tctccgcatg atgaaacttc ggctcactcc ttggcgcctg cctgatcctc caaatcacca +caggactatt cctagccatg cactactcac cagacgcctc gaccgccttt tcatcaatcg +cccacatcac tcgagacgta aattatggct gaatcatccg ctaccttcac gccaatggcg +cctcaatatt ctttatctgc ctcttcctac acatcggacg aggcctatat tacggatcat +ttctctactc aaaaacctga aacatcggca ttatcctcct gcttgcaact atagcaacag +ccttcatagg ctatgtcctc ccatgaggcc aaatatcatt ctgaggggcc acagtaatta +caaacctact atccgccatc ccatacattg ggacagacct ggttcagtga atctgaggag +gctactcagt agacagtccc accctcacac gattctttac ctttcacttt atcttaccct +tcattattgc agccctagca gcactccacc tcctattctt gcacgaaaca ggatcaaaca +accccctagg aatcacctcc cattccgata aaatcacctt ccacccttac tacacaatca +aagacgccct cggcttattt ctcttccttc tctccttaat gacattaaca ctactctcac +cagacctcct aggcgaccca gacaattata ccctagccaa ccccttaaac acccctcccc +acatcaagcc cgaatgatat ttcctattcg cctacacaat tctccgatcc gtccctaaca +aactaggagg cgtccttgcc ctactactat ccatcctcat cctggcaata atccccatcc +ttcatgtatc caaacaacaa agcataatat ttcgcccact aagccaatca ctttattgac +tcctagccgc agacctcctc attctaacct gaatcggagg acaaccagta agctaccctt +ttatcatcat tggacaagta gcatccgtac tatacttcac aacaatccta atcctaatac +caaccatctc cctaattgaa aacaaaatac tcaaatgggc ctgtccttgt agtataaact +aatacaccag tcttgtaaac cggagatgaa aacctttttc caaggacaaa tcagagaaaa +agtctttaac tccaccatta gcacccaaag ctaagattct aatttaaact attctctgtt +ctttcatggg ggagcagatt tgggtaccac ccaagtattg actcacccat cagcaaccgc +tatgtatttc gtacattact gccagccacc atgaatattg tacagtacca taattacttg +actacctgca gtacataaaa acctaatcca catcaacccc ccccccccat gcttacaagc +aagcacagca atcaaccttc aactgtcata catcaactac aactccaaag acgcccttac +acccactagg atatcaacaa acctacccac ccttgacagt acatagcaca taaagtcatt +taccgtacat agcacattac agtcaaatcc cttctcgccc ccatggatga cccccctcag +ataggggtcc cttgatcacc atcctccgtg aaatcaatat cccgcacaag agtgctactc +tcctcgctcc gggcccataa cacttggggg tagctaaagt gaactgtatc cgacatctgg +ttcctacttc agggccataa agcctaaata gcccacacgt tccccttaaa taagacatca +cgatg \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt_vs_GreatApes.txt.txt b/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt_vs_GreatApes.txt.txt new file mode 100644 index 0000000..71bf331 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt_vs_GreatApes.txt.txt @@ -0,0 +1,18693 @@ +Score: 66207 +g = a +t = c +- => a +- => c +a => - +g = a +- => c +- => c +- => c +- => c +- => a +- => c +- => a +- => g +- => a +- => a +- => a +- => c +- => c +- => c +c = c +- => a +- => a +- => a +- => c +- => c +- => a +- => a +- => t +- => t +- => a +- => a +- => g +- => c +- => c +- => c +- => c +- => a +- => t +- => a +- => t +a = c +- => c +- => t +- => a +- => g +- => t +- => c +- => g +- => t +- => c +- => g +- => t +- => c +- => a +- => c +- => a +- => c +- => a +- => c +- => a +- => a +- => c +- => g +- => a +- => t +- => c +- => c +- => c +- => g +- => c +- => c +- => c +- => g +- => c +- => c +- => c +- => c +- => c +- => a +- => a +- => c +- => a +- => t +- => g +- => a +- => c +- => c +- => a +- => c +- => c +- => c +- => g +- => a +c = c +- => t +- => g +- => a +t = t +- => a +- => c +- => a +- => a +- => t +- => c +- => a +- => a +- => c +- => t +- => c +- => c +- => c +- => c +a = a +c = c +- => t +- => g +- => a +- => c +- => a +- => a +- => t +- => t +- => t +- => t +- => c +- => a +- => c +- => g +- => t +- => a +- => t +- => g +- => g +- => c +a = g +- => g +- => t +- => t +- => t +- => t +g = c +- => t +- => a +- => c +- => t +- => t +- => t +- => a +- => a +- => a +a = c +a = c +- => t +t = c +- => a +- => a +- => a +- => c +- => c +- => a +- => c +- => c +- => c +- => c +- => g +- => a +- => c +- => a +- => a +- => a +a => - +- => a +- => g +a => - +- => a +- => t +- => c +- => a +a = c +t = g +t = c +- => c +- => c +- => c +- => c +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c => - +t => - +t => - +g => - +- => c +c => - +a => - +c = c +- => a +a => - +c = a +c = c +c = c +- => t +g = a +- => a +- => a +- => a +a => - +t => - +- => a +a = c +a => - +- => a +a => - +t = a +- => c +c = a +c = c +g => - +- => a +a => - +- => a +a => - +- => a +a => - +t = a +a = a +- => c +c => - +- => c +- => a +c = c +g => - +g => - +g => - +a = a +c = c +- => t +t => - +- => t +- => c +t = c +- => c +- => a +- => c +- => c +- => a +- => a +- => c +- => a +- => c +c = a +- => a +a = g +- => t +t = g +c => - +- => c +c = a +- => g +t = g +t = t +- => g +g => - +- => g +g = a +t = c +- => c +- => a +- => a +- => c +- => a +- => a +- => a +c = a +t = t +a = a +c = c +- => a +- => g +- => g +- => t +a = t +- => g +- => t +- => t +- => c +g = g +- => t +c = a +c = c +- => t +- => t +- => a +- => a +- => t +- => t +t = a +- => a +a = t +- => t +- => g +- => t +t = g +g = g +- => t +t = a +c = c +a = t +a = t +g = g +t = t +g = g +a => - +a => - +a => - +t = a +c = c +g => - +- => a +a = c +t => - +g => - +g => - +g => - +- => g +- => c +g => - +- => g +- => a +g = g +t = c +t => - +c = c +- => g +a = a +c = c +a => - +- => a +- => t +- => t +a = a +t = t +- => a +a => - +c => - +c = a +c = c +- => t +- => t +g => - +g => - +- => g +- => c +g = a +- => t +c = c +c = c +t = a +c = c +g = g +c = c +- => t +- => a +- => t +- => t +t => - +c => - +c => - +- => t +t = a +c = c +t => - +c = c +a = a +t = t +c = c +g => - +t => - +g => - +a => - +g = g +- => t +a => - +- => a +a = c +- => c +c => - +a = c +c = c +g = g +c = t +c = c +c = c +- => t +t = t +- => a +- => g +- => t +- => t +- => t +a = c +- => t +- => g +t => - +a => - +a = t +c = c +t = t +a => - +- => a +- => t +- => g +a => - +- => a +a = c +- => g +- => c +- => t +g = g +t = t +g = a +- => c +- => a +- => c +- => c +- => a +c => - +- => c +- => g +c = a +- => g +t = g +c = c +c = c +t = a +- => a +- => g +- => g +a = t +c => - +- => c +- => g +c = c +- => a +- => g +- => a +- => g +- => t +- => g +a => - +c = a +t = t +a = a +- => g +- => c +g = g +t => - +t => - +c => - +- => c +c = a +c = c +- => g +- => t +- => g +- => t +- => g +- => g +t = g +- => g +g => - +- => g +g => - +- => g +g = c +- => t +g = g +- => c +- => t +- => t +- => t +- => t +- => t +a = a +t = t +a = g +g = g +- => t +- => t +- => t +a = a +c = c +- => g +t = t +c => - +c = a +c => - +- => c +c => - +- => c +- => t +c => - +- => c +- => t +c => - +a = c +g = g +t => - +- => a +a = g +g = g +g = g +t = c +a = a +c => - +c => - +c => - +- => c +- => t +c => - +- => c +- => a +- => c +c => - +g => - +c => - +t => - +- => c +- => a +c = a +- => t +- => t +t = a +t = t +- => c +- => c +- => c +- => a +c => - +- => c +- => t +c = a +- => t +c = c +- => t +- => g +t = g +a => - +- => a +a = c +a = a +c = c +- => t +- => a +t = g +g = g +- => t +- => a +a = g +c = c +a => - +t => - +t => - +a = a +c = c +- => t +a = a +- => c +c = a +- => g +g = a +- => a +- => t +- => a +- => a +- => a +a = t +- => t +t = c +- => c +a = c +c = c +a = t +t = t +g = g +- => c +c = a +c = c +- => a +a = c +t => - +t = t +t = t +- => c +a = g +c = c +t => - +g = g +a = a +a = a +a = a +t = t +a = c +c = c +a = a +c = c +g = a +a = a +t = t +a = a +c => - +a = c +- => t +- => g +t = g +g = g +- => a +- => c +- => t +a = t +c = c +a => - +g => - +t = a +t = t +c = c +c = c +- => t +- => t +- => g +- => g +- => t +c = c +- => t +a = a +c = c +- => g +- => g +c = c +c = c +- => t +- => a +- => t +a = g +t = t +c => - +- => c +- => a +c = a +- => g +- => t +- => g +- => a +a => - +- => a +a => - +- => a +a = t +c = c +- => g +- => a +- => t +- => g +- => g +- => g +- => g +- => g +- => t +- => t +a = c +a = a +c = c +t = a +a = a +t = t +- => a +- => c +- => c +- => c +a = g +- => g +g => - +- => g +- => c +- => c +- => t +- => c +g = g +a = c +t = t +- => c +- => c +- => t +- => c +- => t +c = c +a = a +c => - +c => - +- => c +- => g +- => t +- => g +- => a +- => g +c = a +a = a +c = c +a => - +t => - +t = a +- => c +- => g +c => - +- => c +c => - +- => c +c => - +g => - +- => c +- => t +- => a +- => t +c = a +- => a +a = c +g = t +- => a +a => - +- => a +a => - +- => a +- => g +- => t +a = g +- => c +- => c +- => t +c = c +c = c +- => t +t = a +- => c +- => c +- => a +c = c +- => a +a => - +- => a +- => g +- => t +- => t +- => c +a = c +- => c +- => t +c = a +- => a +- => g +- => g +- => g +- => t +- => a +- => g +- => a +a = c +- => t +- => c +- => c +t = c +- => c +- => c +- => c +c = c +- => g +- => t +a => - +- => a +- => g +a = g +c = c +t => - +a = a +- => c +- => c +- => c +- => c +- => t +- => g +- => c +- => t +- => c +- => c +c => - +a = c +t => - +a = a +c => - +t => - +g => - +t => - +c = c +- => t +- => a +a => - +- => a +a => - +c = a +- => t +t => - +- => t +- => g +t = a +- => c +c => - +- => c +c => - +a => - +a => - +c = c +t = t +- => a +a = c +a = a +c = c +- => g +g = a +- => t +a = a +c = c +a = a +- => c +- => g +c = c +g = t +- => a +- => t +- => t +a = t +a = a +- => c +- => t +c = a +- => g +- => a +g = a +- => t +- => a +a = c +a = a +- => c +c = a +a = a +t => - +- => t +t = a +- => c +c = a +- => t +- => g +g = a +t = a +- => a +- => a +a => - +c => - +c = a +c => - +c => - +- => c +- => a +c => - +- => c +- => t +c => - +- => c +c => - +- => c +c => - +- => c +- => t +c = a +c = c +c = c +c = c +- => a +a => - +- => a +a = t +c = c +t => - +a => - +c = a +a = a +- => c +c => - +- => c +c = a +t = t +a = a +a = a +t = g +c = g +c = c +a => - +- => a +a => - +- => a +a = c +a = c +a = c +t = t +a = a +c = c +- => a +a = c +t => - +g = g +a => - +c = a +- => t +g = g +t = t +- => c +- => c +- => a +c => - +- => c +- => t +c = a +- => a +a = c +t => - +- => c +c => - +a = c +g = g +t => - +t => - +c = c +- => a +a => - +t => - +t = a +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +g = g +a = a +c = c +a = a +t = t +g = g +t => - +- => t +t = a +a = a +t = t +a = a +a = a +g = g +t = t +a = a +c = c +c = c +a = a +c => - +- => c +c = a +g = g +a = a +c = c +c = c +g = g +t = t +c = c +a = a +t = t +t = t +a = a +c = c +a = g +t = t +g = g +c = c +t => - +- => t +t = g +t = t +a = a +t = t +g = g +t = t +a => - +t => - +c => - +g => - +c = a +c = c +- => t +- => a +- => t +- => t +a => - +- => a +a => - +c = a +g = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +- => a +a => - +c = a +t = t +c => - +a = c +- => g +g = a +t = t +t = t +a = a +t = t +g => - +a = g +a => - +c = a +c = c +c = c +a => - +c = a +- => t +c = c +a = a +t = t +g = g +g = g +g = g +t = t +t = t +t = t +- => a +a => - +g = a +a = a +- => c +c = a +g = g +a => - +g = a +g = g +g = g +g = g +g = g +t = t +a = a +c = c +t = t +t = t +t = t +c = c +t = t +t = t +g = g +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +a = a +a = a +t = t +t = t +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +g = t +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +- => a +a = c +t => - +t = t +a = a +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a => - +- => a +- => g +a = c +t => - +t => - +- => t +t = c +c = c +t = t +g = g +a = a +a = a +a = a +a = a +a = a +g = g +a = a +g = g +a = a +c = c +- => t +t = t +a => - +- => a +a = t +a = a +c = c +a = g +g = g +g = g +a = a +a = a +c = c +c = c +t => - +t => - +t => - +- => t +t => - +- => t +- => c +- => c +t = t +c = c +c = c +a => - +- => a +a = g +a = a +a = a +g = g +t = c +- => a +a => - +g = a +a = a +g = g +g = g +c = c +c = c +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a => - +- => a +a => - +t = a +- => c +c = c +a => - +- => a +- => g +a => - +- => a +a = c +t => - +a = a +t = t +g = g +a = a +t = t +g = g +t = t +t = t +- => c +c = c +c = c +t => - +g = g +t = t +c = c +c = c +g = a +g = a +g = g +t = t +a = a +a = a +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +g = g +t = c +t = t +a => - +- => a +a = g +t = t +c => - +c = c +c = c +t => - +c = c +t = t +a = a +- => c +c = a +c = c +- => t +a = a +a = a +c = c +c = c +a = a +t = t +a => - +- => a +a = g +t = t +c = c +c = c +- => t +t => - +a = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a => - +- => a +a = g +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +t = t +a = a +c = c +g = g +a = a +t = t +g = g +a = a +a = a +c = c +a = g +g = g +g = g +t = t +t = t +- => a +a = c +c = c +t => - +a = a +c = c +t = t +- => a +a = c +t => - +t => - +- => t +t => - +- => t +t = c +c = c +c = c +c = c +a = a +t = t +c = c +g = g +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a = a +a = a +c = c +a = a +g = g +g = g +a = a +g = g +g = g +c = c +t = t +a = a +a = a +g = g +t = t +c = c +c = c +a = a +a = a +t = t +- => c +- => c +c = c +t => - +t => - +a = a +c = c +- => t +t => - +c = t +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +g = g +c => - +c = c +- => t +g = a +a = a +t = t +c = c +c = c +- => t +t => - +c = t +a = a +g = g +t => - +- => t +t = c +a = a +t => - +- => t +t = c +t = t +c = c +- => a +a = t +c = c +t => - +a = a +a = a +c = c +c = c +g = g +a = a +a = a +- => t +t => - +c = t +a = a +c = c +c = c +c = c +g = g +- => c +c = c +t => - +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a => - +t => - +g = a +t = t +- => a +- => c +- => a +a = c +c = c +t => - +t = t +c => - +c = c +- => t +t = t +a => - +c => - +c = a +- => t +c = c +c = c +- => t +t = t +a = a +a = a +t = t +a = a +a = a +c = c +g => - +- => g +g = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +c => - +c = c +- => t +t = t +a => - +c = a +- => t +c = c +t = t +a = a +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c => - +c = c +- => t +c = c +- => g +g = a +t => - +- => t +t => - +c = t +c = c +t = t +g = g +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +- => a +a => - +- => a +a = c +t => - +c = c +c = c +c = c +t = t +g = g +c = t +c = c +t = t +a = a +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +c = c +a = g +c = c +a = a +t = t +c = c +c = c +g = g +c = t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +c = c +c = c +g = a +a = a +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = a +c = c +c = c +c = c +c = c +a = a +c = c +a = g +a = a +a = a +t => - +- => t +t = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +- => t +t => - +c = t +c = c +c = c +- => a +- => c +a => - +t => - +a = a +t => - +- => t +t = c +a = a +a = a +c = c +a = a +g = g +a = a +c = c +c = c +c = c +a = a +g = g +c = a +g = g +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +c = c +a = a +c = c +t = t +c = c +- => t +t => - +c = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +t = t +t = t +a = a +c = c +- => a +a => - +g = a +t = t +a => - +- => a +a = g +t = t +t = t +- => c +c => - +- => c +c = a +- => g +t = t +- => c +c = c +t = t +c = c +- => t +t => - +- => t +t => - +c = t +c = c +t => - +t = t +c = c +t => - +c = c +t => - +t = t +t = t +a = a +t => - +- => t +t = c +c = c +g = g +g = g +c = a +t = t +c => - +c = c +c = c +- => t +g = a +c = c +a = a +g = g +a = a +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +a = a +t => - +- => t +t = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +t = t +c = c +c = c +a = a +c = c +t = t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a = a +g = g +c = t +c = c +t => - +- => t +t = c +a = a +c = c +c = c +c = c +t = t +- => c +c => - +- => c +c => - +a = c +c = c +t = t +a => - +- => a +a = c +g = g +g = g +a = a +t = t +c => - +c = c +- => t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +t = t +a = a +g = g +g = g +a = a +c = c +a = a +a = a +a = a +g = g +c = c +a = a +c = c +g => - +t = a +t = t +c = c +- => t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c => - +c = c +- => t +a = a +c = c +c = c +t = t +- => c +- => c +c => - +a => - +c = c +g = a +a = a +c = c +g = a +a = a +t = t +c = c +c = c +c = c +g = g +- => a +- => c +a = a +c = c +g => - +t => - +t = t +- => a +a = c +t => - +t = t +a = a +c = c +t = t +t = t +c = c +c = c +c = c +a = a +t => - +- => t +t = c +c = c +t = t +a = a +t = t +t = t +t = t +c = c +- => a +a = c +c = c +t => - +t = t +t = t +c = c +c = c +a = a +t = t +t = t +t = t +c = c +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a => - +c = a +- => t +t = t +c = c +c = c +c = c +- => a +a = t +c = c +c = c +c = c +t => - +g = g +a => - +c = a +- => t +a = a +g = g +a = a +t = t +g = g +a = a +c = c +t = t +c = c +a = a +- => t +t => - +c = t +g = g +g = g +a = t +g = g +g = g +a = a +g = g +- => t +t => - +c = t +t = t +a = g +a = a +g = g +t = t +g = a +- => a +a = c +c = c +t => - +t = t +g => - +- => g +g = a +t = t +c = c +c = c +a = a +g = g +a = a +c = c +- => a +a => - +g = a +g = g +g = g +t = c +t = t +a = a +c = c +a = a +t = t +a = g +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +t = t +a = a +t = t +c = c +a = g +- => t +t => - +c = t +c = c +a = a +a = a +a = a +c = c +- => a +a = c +t => - +t = t +a = a +a = a +t = t +g = g +a = a +c = c +a = a +c = c +c = c +g => - +- => g +g = a +g = g +g = g +a = a +g = g +t = t +c = c +t = t +t = t +a = c +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +g = g +g = g +a = a +g = g +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +c = c +a = g +a = a +c = c +g = g +a = a +t = t +- => a +a = c +t => - +c = c +- => a +a => - +- => a +- => c +a = a +c = c +g => - +t => - +t = t +c = c +g = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +- => a +a = c +t => - +t = t +a = a +c = c +g = g +g = g +c = c +t = t +a = a +c = c +a = a +a = a +a = a +g = g +t = t +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a = g +a = a +a = a +c = c +t => - +c = c +- => a +a = c +t => - +c = c +t = t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +a = c +g = g +g = g +c = c +a = a +t => - +- => t +t = c +a = a +t = t +a = a +t = t +c = c +c = c +- => g +g => - +- => g +g => - +a = g +g = g +c = c +a = a +g = g +g = g +c = c +t = t +a = a +c = c +a = a +c = c +a = a +t = t +c => - +c = c +- => t +t = t +t = t +c = c +t = t +c = c +c = c +g = g +- => t +t => - +c = t +t = t +- => a +a = c +t => - +t = t +t = t +c = c +t = t +t = t +a = a +t = t +a = a +a = a +c = c +t = t +c = c +c = c +g = g +c = c +g = g +g = g +t = c +a => - +- => a +a => - +c = a +- => t +c = c +g = g +c = c +- => a +a = c +c = c +t => - +t = t +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +- => a +a = c +c = c +t => - +a = a +a = a +g = g +t = t +c = c +g = g +g = g +t = t +a = a +t => - +- => t +t = c +a = a +a = a +a = a +t = t +g = g +c = t +a = a +g = g +a = a +g = g +- => c +c = c +t => - +c = c +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +g = g +c = t +t = t +a = a +a = a +c = c +t = t +a = a +c = c +t => - +- => t +t = c +t = t +t = t +c = c +c = c +g = g +c = c +c = c +- => a +a => - +g = a +c = c +t = t +c = c +c = c +g = g +c = t +a = a +g = g +a = t +c = c +c = c +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +g = a +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +c = c +a = g +g = g +g = g +a = a +c = c +a = a +c = c +c = c +a = a +c = c +t = t +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +t = t +c = c +c = c +t = t +- => a +a => - +g = a +- => t +t => - +c = t +c = c +g = g +t = t +c = c +c = c +g = g +c = t +g = g +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +g = g +t = t +a = a +c = c +g = a +c = c +c = c +t = t +c = c +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +a = g +c = c +c = c +c = c +c = c +a => - +c = a +- => t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +g = g +c = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +a = a +t = t +t = t +a = a +a = a +t => - +- => t +t = c +a => - +- => a +a => - +- => a +a => - +- => a +a => - +t => - +- => a +- => c +a = g +a = a +t = t +c => - +- => c +c = a +c = c +c = c +c = c +a = a +a = a +t => - +- => t +t = c +a = a +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +a => - +- => a +a = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a => - +- => a +a => - +c = a +c = c +- => t +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +g = g +t = t +t = t +g = g +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +g = g +t = t +a => - +- => a +a => - +c = a +- => t +c = c +a = a +g = g +c = c +a = g +c = c +c = c +a => - +- => a +a = g +c = c +- => a +a = c +t => - +c = c +a = a +g = g +g = g +c = c +a = a +c = c +g = g +c = c +t = t +c = c +t => - +t => - +a => - +t = t +t = t +a = a +c = c +t = t +a = a +c = c +- => t +- => g +- => t +a = a +t = t +a = a +c = c +g => - +- => a +- => a +a => - +- => a +a => - +- => a +- => t +a => - +c => - +- => a +a => - +- => a +a => - +- => a +a => - +g => - +- => a +a => - +c = a +- => t +a = a +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +- => g +g => - +a = g +a = a +g = g +a = a +t = t +t = t +c = c +g = g +g = g +a = a +a = a +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +- => a +a = c +t => - +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +a = a +t = t +c = c +g = a +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +a = a +c = c +a = g +a = a +t = t +a = a +a = a +t = t +- => a +a => - +- => a +a => - +g => - +- => a +a => - +c = a +- => t +t = t +t = t +a = g +a => - +- => a +a = c +a = a +c = c +c = c +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +t = t +a = a +t = t +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +t = t +- => a +a = c +t => - +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +a = a +a = a +t = t +a = a +a = a +a = a +t = t +- => c +c = c +c = c +c = c +c = c +c = c +t => - +t = t +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +c = c +- => a +a => - +g = a +- => a +a => - +- => a +a => - +- => a +a = c +c = c +c = c +t => - +a = a +t = t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +c = c +c = c +t = t +c = c +a = a +t = t +a = a +g = g +g = g +a = a +c = c +t = t +c = c +c = c +g = g +t = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +g = g +t = a +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +a = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a => - +- => a +a = g +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +g = g +c = t +t = t +a = a +c = c +c = c +t = t +c = c +c = c +a => - +t = a +- => c +- => c +c = c +c = c +t => - +a = g +a = a +c = c +c = c +a = a +c = c +g = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +- => a +a = c +t => - +t = t +t = t +g = a +- => a +a => - +- => a +a => - +- => a +- => t +- => t +a = a +t = t +t = t +a => - +t = a +c = c +a = a +- => c +c => - +a = c +t => - +c = c +c = c +t => - +t = t +c = c +g = a +a = a +c = c +t = t +t = t +- => a +a = c +t => - +t = t +- => a +a => - +g = a +a = a +t = t +a = a +c = c +t => - +t = t +- => c +- => c +- => c +c => - +- => c +c => - +t => - +c = c +- => t +t => - +c = t +c => - +- => c +c => - +- => c +c = a +a = a +g = g +t = t +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => t +t = t +a = a +a = a +g = g +c = c +c = c +c = c +- => t +t => - +c = t +c = c +t = t +a = a +g = g +g = g +a = a +t = t +a = a +a = a +c = c +c = c +a = a +c = c +g = g +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +c = c +a = a +a = a +c = c +t = t +- => a +a => - +- => a +a = c +t => - +c = c +a = a +t = t +c = c +- => a +a = c +t => - +c = c +a = a +a = a +t = t +g = g +a = a +c = c +c = c +- => a +a => - +- => a +a = c +c = c +t => - +t = t +g = g +t = c +a => - +- => a +a => - +c = a +- => t +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +t = t +a => - +c = a +- => t +a = a +a = a +c = c +- => a +a = c +t => - +t = t +a = a +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +g = g +a = a +g = g +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c = a +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +t = t +- => a +a = c +t => - +a = a +c = c +t = t +a = a +a = a +t = t +c => - +c = c +- => t +t = t +c = c +a = t +t = t +c => - +c = c +c = c +- => t +a = a +a = a +- => t +- => t +- => t +t => - +c = t +c => - +t => - +a => - +c = c +- => t +t = t +c = c +a = t +c = c +c = c +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +t = t +t = t +c = c +t = t +c = c +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t => - +- => t +t = g +t = t +c = c +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +a => - +- => a +a = g +- => t +- => t +t => - +a => - +c = t +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +a => - +- => a +a = t +c = c +t = t +c = c +c = c +a => - +c = a +- => t +c = c +a = a +c = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +g = g +c = a +c = c +t = t +c = c +t = t +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t => - +- => t +t = c +t = t +a = a +a = a +c = c +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = c +t => - +c = c +c = c +a = a +t => - +- => t +t = c +a = a +t = t +c = c +g = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +g = g +- => t +- => t +t => - +c => - +c = t +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = a +t = t +c => - +c = c +- => t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +g => - +a => - +g = g +c = a +- => a +- => t +- => a +a = c +t => - +t = t +c = c +t = t +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +t = t +a = a +t = t +c => - +c = c +c = c +c = c +- => t +t = t +a = a +a = a +c = c +a = a +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +c = c +t = t +a = a +c = c +g = a +- => a +a = c +t => - +c = c +c = c +c = c +a = a +- => t +t => - +c = t +t = t +t = t +g = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +t = t +t = t +t = t +a = a +c = c +a = a +c = c +a => - +t => - +a => - +t = a +c = c +- => a +a = c +- => c +c = a +c = c +c = c +c = c +- => a +a = c +a = a +a = a +a = a +a = a +t = t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +c = c +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a => - +- => a +a = c +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +a => - +- => a +a = g +t = t +- => c +c = c +t => - +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +c = c +t => - +- => t +t = c +t = t +c = c +a = a +c = c +t => - +g => - +- => t +t = a +c = c +- => g +g = a +c = a +t = t +c => - +c = c +- => t +c = c +g = g +a = a +c => - +g => - +- => c +c = a +- => t +t = t +c = c +a = a +a = a +a = a +a = a +- => t +t => - +c = t +c = c +a = a +- => t +t => - +c = t +t = t +c => - +- => c +c = a +c = c +c = c +c = c +t = t +a = a +a = a +c = c +a => - +a => - +c = a +- => g +- => t +a = a +a = a +a = a +c => - +- => c +c => - +t => - +t => - +- => c +c => - +- => c +c => - +- => c +c = a +- => t +- => g +c = c +c = c +t = t +a = a +- => c +c = a +g = t +c = c +c = c +c = c +- => t +c = c +c = c +t => - +t => - +t = t +a = a +c = c +a = a +a = a +c = c +- => a +a => - +- => a +a = c +t => - +c = c +- => a +a = c +t => - +t = t +a = a +c = c +- => t +t = t +c = c +t => - +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = t +t = t +t = t +a = g +t = t +c = c +c = c +g = g +a = a +a = a +g = g +g = g +c = t +c = t +g = a +a = a +c = c +g = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +t = t +t = t +a => - +c => - +c = a +- => t +c = c +c = c +- => t +a = a +a = a +a = a +- => t +t => - +c = t +a = a +t = t +c = c +c = c +c = c +a => - +t = a +c => - +- => c +c => - +- => c +- => t +c => - +a = c +a = a +- => t +t = c +a = a +a = a +a = a +a = a +g = g +c = c +- => a +a => - +- => a +a = c +t => - +t = t +a = a +c = c +a => - +- => a +a => - +t = a +c => - +a = c +c = c +- => g +- => t +- => t +t => - +c = t +c = c +c = c +- => a +a => - +c = a +c = c +c = c +c = c +t = t +t = t +c = c +g = g +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +g = g +g = g +a = a +c = c +a => - +- => a +a = g +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +t = t +t = t +- => c +c = c +t => - +t = t +a = a +a = a +t = t +a = a +a = a +g = g +c = c +t = t +c = c +a = a +c = c +g = g +- => a +a = c +t => - +a = a +t = t +c = c +c = c +g = g +c = t +g = g +a => - +- => a +a = g +c = c +a = a +g = t +t = t +c => - +c = c +- => t +c = c +t = t +c = c +c = c +- => a +a = c +t => - +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +- => t +t => - +c = t +- => a +a = c +t => - +t = t +- => a +a => - +t = a +c = c +t = t +a = a +t = t +c = c +c = c +c = c +- => g +g => - +a = g +g = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +c = c +a = a +c = c +- => a +a = c +t => - +a = a +c = c +t = t +a = a +t = t +a = a +c = c +a = a +a = a +a = a +c = c +g = g +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +a = a +c = c +t = t +a = a +c = c +a = t +c = c +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +t => - +- => t +t => - +- => t +t = c +g = g +g = g +a = a +c = c +a = a +c = c +t = t +c => - +c = c +- => t +t = t +t = t +t = t +c = c +c = c +a = a +t = t +a = a +a = a +g = g +g = g +- => a +- => t +a => - +c => - +g = a +a = a +t => - +- => t +t = c +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +g = g +g = g +t = t +t = t +a = a +c = c +c = c +- => g +a => - +c = a +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +t = t +c = c +a => - +c = a +- => t +t = t +- => c +c = c +t => - +c = c +c = c +a = a +t = t +a = a +c = c +c = c +a = g +a = a +a = a +a = a +c = c +t = t +c = c +a = g +t = t +c = c +a = t +g = g +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +a = a +a = a +g = g +- => c +c = c +t => - +t = t +- => a +a = c +t => - +a = a +g = g +a = a +a = a +c = c +a = g +a = a +g = g +t = t +a => - +- => a +a => - +c = a +- => t +- => a +a => - +- => a +a = c +t => - +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +t = t +a => - +c = a +- => t +t = t +a = a +c = c +c = c +t = t +g = a +g = g +g = g +c = c +c = c +t = t +c = c +g = g +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +a = a +c = c +c = c +g = g +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +t = t +c = c +- => t +t => - +- => t +t => - +c = t +c = c +g = g +c = c +a = a +c = c +c = c +c = c +- => a +a = c +t => - +g = g +t = t +c = c +t = t +a = a +c = c +a = a +c = c +g = a +t = t +c => - +c = c +- => t +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a = g +a = a +c = c +c = c +a = g +a = g +c = c +t = t +a = a +c = c +g = g +g = g +c = t +t = t +a = a +a = a +c = c +- => a +- => c +a = c +t => - +t => - +g = g +a = a +t = t +g = g +a = a +t = t +a = a +c = c +t = t +c = c +g = g +g = g +g = g +a = a +- => t +t => - +c = t +- => a +a => - +- => a +a = c +c = c +t => - +g = g +a = a +a = a +c = c +t = t +t = t +c = c +a = a +c = c +c = c +t = t +c = c +t = t +t = t +c = c +c = c +g = g +a = a +t = t +g = g +c = c +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +t = t +a => - +c = a +- => t +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +a = a +c = c +a => - +t => - +t = a +c = c +- => t +c = c +- => t +c = c +g = g +c = c +g = g +t = t +c = c +t = t +g = g +a = a +c = c +- => g +g => - +a = g +c = c +g = g +c = c +t = t +t = t +a = a +t = t +c = c +t = t +c = c +a => - +c = a +- => t +c = c +a => - +c = a +- => t +t = t +a = a +t = t +c = c +g = g +c = c +g = g +g = g +a = a +t => - +- => t +t = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +a => - +- => a +a = t +t = t +c = c +t = t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +c = c +t = t +- => c +a = g +a = a +t = t +c = c +a => - +c = a +c = c +- => t +c = c +g = a +- => a +a = c +t => - +a = a +a = a +a = a +a = a +g = g +a = a +c = c +g = g +a = a +- => t +- => t +t => - +c => - +c = t +c = a +c = c +c = c +a = g +c = c +c = c +t = t +t = t +c = c +g = g +c = c +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t => - +- => t +t = c +c = c +t = t +t = t +c = c +t = t +- => g +g => - +a = g +g = g +g = g +a = a +c = c +- => g +g => - +a = g +t = t +g = g +c = c +t = t +g = g +a = a +t = t +a = a +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = c +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +g = g +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +c = c +- => g +g => - +a = g +c = c +t = t +c = c +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +- => c +c = c +t => - +g = g +g = g +a = a +t => - +- => t +t = c +a => - +- => a +a => - +c = a +c = c +- => t +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +- => t +- => t +t => - +c => - +c = t +g = g +g = g +a = a +t = t +c = c +a = t +t = t +c = c +a => - +c = a +c = c +c = c +c = c +- => t +a => - +c = a +- => t +t = t +c = c +c = c +g => - +- => a +a => - +- => a +- => t +a = c +c = c +c = c +t => - +- => a +a => - +- => a +a = c +t => - +c = c +g = a +c = c +a => - +- => a +a => - +- => a +a => - +t => - +c = a +t = t +t = t +c = c +- => t +c = c +- => t +c = c +g = t +a = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +a = c +t = t +t = t +t = t +a = a +g = g +t = t +a = a +c = c +g = g +a = a +t => - +- => t +t = c +c = c +c = c +g = g +c = a +t = t +c = c +c = c +t = t +a => - +c = a +- => t +t = t +t = t +t = t +g = g +g = g +c = t +t = t +- => a +a = c +t => - +a = a +g = g +c = t +g = g +g = g +c = t +t = t +a => - +c = a +- => t +g = g +c = c +c = c +a = a +a = a +c = c +a = a +t = t +a = a +t = t +c => - +c = c +- => t +t = t +a = a +a = a +c = c +g = g +- => a +a => - +- => a +a = c +c = c +t => - +t = t +a = g +c = c +c = c +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +g = g +t = c +a = a +g = g +a = a +c = c +g = a +a = a +g = g +c => - +c = c +- => t +c = c +g = g +c = c +a = a +t = t +a = a +g = g +t = t +a = a +g = g +t => - +- => t +t = c +- => g +g => - +a = g +c = t +t = t +a = a +c = c +t = t +c = c +g => - +t = a +t = t +c = c +- => t +- => t +t => - +- => t +t => - +c = t +c = c +t = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +- => g +g => - +- => g +g => - +a = g +t = t +g => - +c => - +- => g +- => t +g => - +- => g +g => - +- => g +g = a +a = a +g = g +a = a +g = g +t = t +c = c +g = g +g = g +c = c +t = t +a => - +c = a +- => t +t = t +t = t +g = c +t = t +c = c +a => - +- => a +a => - +c = a +c = c +- => t +t = t +t = t +a = g +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +a = a +t = t +c = c +g = g +c = c +c = c +- => a +a = c +t => - +t = t +g = g +a = a +t => - +- => t +t = c +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +- => a +a = c +t => - +t = t +a = a +a = a +t => - +c = t +c = c +- => t +t => - +- => t +t => - +- => t +t = c +t = t +a = a +c = c +t = t +c = c +a = g +t = t +- => c +c = c +t => - +a = a +t = t +a = a +a = a +a = a +c = c +t = t +t = t +c = c +t = t +t = t +g = a +- => a +a = c +c = c +t => - +- => a +a => - +- => a +a = c +t => - +t = t +a = a +c = c +a => - +- => a +a => - +- => a +a = c +c = c +c = c +c = c +a = a +g = g +a = a +c = c +t = t +c = c +a = a +a = a +a = a +t = t +a = a +t = t +a = a +t = t +a = a +g = g +t = t +g = a +t = t +c = c +a = a +c = c +t = t +c = c +t = t +t = t +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +g = a +g = g +t = t +a = a +c = c +- => a +a = c +t => - +t = t +g = g +c = c +t = t +t = t +g = g +t => - +- => t +t = c +a = a +c = c +g = g +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +a => - +c = a +- => t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +- => t +t => - +- => t +t => - +c = t +a = a +- => t +t => - +c = t +a = a +g = g +a = a +t = t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +t = t +c = c +g = g +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +g => - +- => a +a => - +c => - +c = a +c = c +- => t +- => t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +- => a +a => - +c = a +c = c +g = g +a = a +g = g +t = t +c = c +a = a +c = c +a = a +g = g +t = t +c = c +- => g +a => - +- => a +a => - +g = a +c = c +t = t +c = c +t = t +a = a +t = t +t = t +a = a +t => - +- => t +t = c +g = g +a = a +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +g => - +t => - +g = g +t = t +- => a +a = t +c = c +- => t +t = t +t = t +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +t = t +c = c +t = t +- => c +c = c +t => - +g = g +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +a = a +t = t +t = t +t = t +c = c +c = c +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = c +t = t +g = g +t = c +t = t +a => - +c = a +- => t +c = c +t = t +a = a +a = a +a = a +a = a +t = t +g = g +t = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +t = t +c = c +a = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +a = a +t = t +c => - +c = c +c = c +- => t +- => a +a => - +- => a +a = c +t => - +t = t +a = a +c = c +- => t +t => - +c = t +c = c +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +c = c +t = t +a => - +c = a +- => t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +a = a +- => t +t => - +c = t +c = c +c = c +t = t +t = t +c = c +- => a +a => - +g = a +t = t +c => - +- => c +c => - +- => c +c => - +a = c +- => g +g = a +- => t +t => - +c = t +c = c +c = c +a = a +c = c +c = c +a => - +- => a +a => - +t => - +a = a +t => - +c = t +a = a +c = c +c = c +- => a +- => t +- => c +a = g +c = c +a => - +c = a +- => t +g = g +t = t +a => - +c = a +- => t +c = c +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +a = a +c = c +g = g +t = t +g = g +g = g +t = t +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +c => - +- => c +c => - +- => c +c => - +- => c +c = a +g = g +g = g +a = a +t = t +t = t +c = c +t = t +g = g +g = g +t = t +t = t +a = a +c = c +c = c +t = t +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +a = a +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +t = t +t = t +t = t +c = c +g = g +g = g +t = t +a = a +c = c +a = a +a = a +c = c +- => a +a => - +- => a +a = t +t = t +c = c +t => - +g = g +t = t +a = g +c = c +c = c +c = c +c = c +c = c +g = a +t = t +a = a +c = c +t = t +c = c +a = a +a = a +t = t +c = c +g = g +t = t +c = c +a = g +a = a +g = g +a => - +a => - +c = a +- => a +- => t +a = g +c = c +t = t +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +- => a +a => - +g = a +c = c +a = a +c = c +t = t +c = c +g = g +g = g +a = a +g = g +a = a +c = c +a => - +- => a +a => - +c = a +- => t +a = a +g = g +t = t +c = c +t = t +a = a +a = a +g = g +t = t +g = g +t = t +t = t +a = a +g = g +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a = a +t = t +a = a +a = a +a = a +t = t +g = g +t => - +- => t +t = c +c = c +t = t +c = c +c = c +t = a +t = t +t = t +t = t +g = g +g = g +g = g +c = c +c = c +a => - +t => - +t => - +a = a +c = c +- => t +- => a +- => t +t = t +a => - +c = a +- => t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +- => c +c = c +t => - +t = t +a = a +c = c +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +a = a +c = c +a = g +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +c => - +c = c +c = c +- => t +a = a +c = c +a = a +a = a +a = a +a = a +g = g +a = a +g = g +c = c +a = a +c = c +a => - +c = a +- => t +t = t +t = t +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +- => a +a => - +- => a +a = c +c = c +a => - +- => a +a = c +t => - +t = t +a = a +c = c +a = a +c = c +c = c +a = a +c => - +- => c +c = a +c = c +a = a +c = c +t = t +c = c +- => a +a = c +c = c +t => - +c = c +g => - +- => g +g => - +- => g +g = a +g = g +t = t +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a => - +c => - +- => a +- => t +a = a +- => t +t => - +c = t +t = t +c = c +c = c +c = c +t = t +c = c +a = a +t = t +a = g +t = t +c = c +c = c +c = c +g = g +a = a +c = c +a => - +c = a +- => t +t = t +g = a +a = a +t = t +c = c +a = a +t = t +a = a +c = c +a => - +- => a +a => - +c = a +t = t +c = c +- => t +g = a +g = g +g = g +a = a +c = c +a = a +t = t +t = t +c = c +- => a +- => t +a = t +- => t +t => - +c = t +c = c +t => - +c = c +t => - +c = c +- => a +a = c +c = c +t => - +- => a +a = c +t => - +a = a +a = a +a = a +c = c +t = t +a = a +g = g +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +c = c +a = a +c = c +c = c +a = a +a = a +t = t +g = g +a = a +t = t +c = c +g = a +t = t +g = g +t = c +c = c +t = t +c = c +t = t +c = c +a = g +a = a +g = g +a = a +g => - +- => g +g => - +- => g +g = a +t = t +c = c +a = a +t = t +c = c +c = c +a = a +a = a +t = t +t = t +- => a +a = c +t => - +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +c = c +g = g +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +- => g +g => - +a = g +t = t +c = c +t = t +t = t +c = c +a = a +g = g +t = t +a = a +g = g +t => - +t => - +- => t +t => - +- => t +t => - +- => t +- => c +t = c +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +t = t +c = c +a = a +t = t +- => c +c = c +t => - +c = c +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +t = t +c = c +t = t +c = c +t = t +c => - +c = c +- => t +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +g = g +- => c +c = c +t => - +g = g +a = a +c = c +a = a +c = c +c = c +c = c +- => a +a => - +c = a +g = g +c = c +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +t = t +c = c +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +t = t +a = a +c = c +t = t +c = a +c = c +t = t +a = a +c = c +a = a +t = t +t = t +c = c +a = a +g = g +g = g +c = c +a = a +c = c +c = c +c = c +g = g +c = t +t = t +a = a +a = a +t = t +a => - +c = a +- => t +t = t +c = c +- => t +t => - +- => t +- => g +t => - +a => - +c = t +t = t +g = g +a = a +c = c +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +t = t +t = t +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a => - +c = a +- => t +t = t +- => c +c = c +t => - +t = t +a => - +c = a +- => t +c = c +g = g +a = a +c = c +a = g +a = a +t = t +g = g +a = a +t = t +g = g +c = t +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +c = c +a = a +c = c +c = c +g = g +a => - +c = a +- => t +t = t +a = a +a = a +c = c +t => - +- => t +t = c +c = c +t => - +- => t +t = c +a = a +t = t +a = a +c = c +g = g +t = t +t = t +a = a +c = c +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +a = a +- => t +- => t +t => - +c => - +c = t +a = a +g = g +a = a +c = c +a = a +a = a +a = a +c = c +a = g +g = g +c = c +g = a +t = t +c => - +- => c +- => g +c = c +g => - +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +g = g +a = a +a = a +c = c +a = a +a = a +t = t +- => a +a = c +t => - +t = t +a = a +a = a +t = t +a => - +c = a +- => t +g = g +g = g +g = g +g = g +t = t +a = a +- => t +- => t +t => - +c => - +c = t +c = c +t = t +a = a +t = t +- => c +- => c +c => - +a = c +t => - +g = g +t = c +t = t +c = c +c = c +- => t +t => - +- => t +t => - +c = t +c => - +c = c +c = c +- => t +a = a +- => t +t => - +c = t +c = c +g = g +a = a +t = t +- => a +a = c +t => - +a = a +c = c +a = a +a = a +a = a +a = a +c = c +- => a +a => - +g = a +t = t +c = c +c = c +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => t +t = t +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a => - +c = a +- => t +a = a +c = c +t = t +c = c +c = c +g = g +c = c +a = a +t = t +a = a +a = a +t = t +- => a +a = c +t => - +g = g +g = g +t = t +a = a +t = t +c = c +g = g +g = g +c = t +g = g +g = g +a = a +- => t +t => - +c = t +a = a +a = a +a = a +a = a +t = t +t = t +c = c +t = t +c = c +- => a +- => t +- => g +- => a +a = c +t => - +g = g +t = t +c = c +g = g +c => - +- => c +- => t +c = c +g = g +t => - +t => - +c = t +a => - +t = a +g => - +a = g +t = t +a = a +a = a +c = c +t = t +g = c +g = g +g = g +t = t +c = c +g = g +c = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +- => g +g => - +a = g +a = a +g = g +c = t +t = t +g = g +t = t +a = a +c = c +c = c +c = c +- => g +g => - +a = g +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +a = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +t = t +c = c +a = g +g = g +g = g +c = c +a = a +t = t +t = t +t = t +c => - +- => c +c = a +c = c +c = c +a = a +t = t +a => - +g = a +- => a +a => - +- => a +a => - +- => a +a = g +t = t +g = g +a = a +t = t +a = a +t => - +- => t +t => - +- => t +t => - +- => t +t = c +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t => - +- => t +t = a +c = c +- => g +g => - +a = g +t = t +c = c +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +a = a +a = a +c = c +c = c +g = g +a = a +g = g +t = t +c = c +c = c +t = t +c = c +a => - +- => a +a => - +- => a +- => t +a = c +c = c +t => - +a = a +t = t +c = c +a = a +a = a +g = g +a = a +a = a +c = c +c = c +c = c +g = g +t = t +c = c +a => - +c = a +- => t +t = t +- => c +c = c +t => - +c = c +a = a +c = c +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c = c +t = t +t = t +a => - +c = a +- => t +a = a +a = a +a = a +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +a = a +- => t +t => - +c = t +c = c +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +- => a +- => c +a = c +t => - +t => - +t = t +a = a +a = a +- => t +t => - +c = t +a = a +c = c +g = g +c = c +t = t +a => - +c = a +- => t +t = t +c = c +a = a +t = t +- => c +c = c +c = c +c = c +c = c +t => - +t = t +c = c +c = c +c = c +t = t +c = a +g = g +g = g +a = a +t = t +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t = t +a = a +c = c +a => - +c = a +- => t +- => g +g => - +- => g +g => - +a = g +c = c +g = g +c = c +- => a +a => - +- => a +a => - +g = a +t = t +c => - +c = c +- => t +g = g +c = c +a = a +a = a +g = g +a = c +c = c +c = c +g = a +a = a +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +g = g +t = t +a = a +g = g +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +t = t +a = a +- => t +t => - +c = t +g => - +- => g +g = a +t => - +- => t +t = c +c = c +c = c +a => - +c = a +- => t +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +a = a +c = c +c = c +a = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +a = a +t = t +a = a +t => - +- => t +t = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +t = t +a = a +c = c +a = a +a = a +t = t +- => a +a = c +t => - +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +a = a +a = a +a = a +- => c +c => - +a = c +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +- => t +t => - +c = t +a = a +t = t +a => - +t = a +- => c +c = c +t = t +c = c +t = t +c => - +c = c +- => t +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +c = c +t = t +a = a +t = t +c = c +a = a +c = c +c = c +a = a +a = a +g => - +t => - +- => g +- => c +g = a +a = a +c = c +c = c +t = t +a = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +g = g +c = c +a = g +a = a +c = c +c = c +g = g +a = a +a = a +c = c +g => - +- => g +g = a +t = t +a => - +c = a +- => t +t = t +a = a +a = a +c = c +a => - +c = a +- => t +t = t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +- => t +t => - +c = t +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a => - +- => a +a = g +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +g = g +c = c +c = c +t = t +c = c +c = c +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t => - +c = t +c = c +a = t +a => - +c = a +- => t +c = c +c = c +c = c +t = t +c = c +g = a +- => t +t => - +c = t +g = g +a = a +t = t +t = t +t = t +a = a +t = t +c => - +c = c +- => t +a = a +a = a +c = c +a => - +- => a +a => - +c => - +- => a +- => t +a => - +- => a +a => - +c = a +- => t +t = t +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +t = t +c = c +a = a +t = t +c => - +c = c +c = c +c = c +c = c +- => t +t = t +a = a +c = c +t = t +a = a +c = c +g = g +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +a = a +a = a +t = t +c = c +c = c +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +g = g +t = t +t = t +t = t +a = a +a = a +t = t +a => - +c = a +- => t +a = a +c = c +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +t = t +c = c +t = t +c = c +a = a +g = g +t = t +a = a +c = c +- => a +a => - +g = a +t = t +c = c +a = g +c = c +c = c +a = a +t = t +c = c +a = a +t => - +- => t +t = c +a = a +t = t +a = a +t = t +t = t +a = a +a = a +c = c +- => a +a => - +- => a +a = c +c = c +c = c +c = c +t => - +g = g +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +c = c +a = g +t = t +c = c +c = c +g = a +a = a +a = a +t = t +c = c +c = c +- => a +a => - +- => a +a => - +t = a +a = a +c = c +a = a +t = t +g = g +c = t +a = a +t = t +c = c +a = a +g = g +a = t +t = t +c => - +c = c +- => t +g = g +g = g +t = t +a = a +t = t +a = a +c = c +a = a +c = c +a => - +- => a +a => - +c = a +- => t +c = c +t = t +c = c +t = t +a = a +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g => - +- => g +g = a +c = c +g = g +a = a +c = c +g = g +a = a +a = a +g = g +c = t +g = g +t = t +c = c +c = c +g = g +c = t +c = c +g = g +t => - +- => t +t => - +- => t +t => - +- => t +t = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +- => c +c => - +- => c +- => a +c = c +g => - +t => - +t = t +- => a +a = c +t => - +c = c +c = c +g = a +t = t +g = g +t = t +t = t +- => a +a = c +t => - +a => - +- => a +a => - +c = a +- => t +c = c +g = g +a = a +t = t +t = t +c = c +t = t +c => - +c = c +c = c +- => t +t = t +c = c +a = a +c = c +c = c +c = c +a => - +c = a +- => t +a = a +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +t = t +c = c +t = t +c = c +a = a +t = t +c = c +g = g +a = a +t = t +a = a +t = t +t = t +a = a +c = c +t = t +t = t +g = a +t = t +c = c +g = a +c = c +t = t +a = a +- => t +t => - +c = t +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +t = t +c = c +c = c +t = t +a = a +t = t +- => a +a => - +c = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +- => t +t => - +c = t +g = g +- => c +c = c +t => - +a = a +t = t +g = g +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +a = a +g => - +- => g +g => - +- => g +g = a +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +- => a +a = c +t => - +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +t = t +t = t +a => - +c = a +- => t +t = t +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +g = g +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +a = a +c = c +t = t +c = c +a = a +g = g +c = c +t = t +t = t +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +- => a +a = c +t => - +a = a +t = t +g = g +g = g +t = t +t = t +a = a +a = a +g = g +- => c +c => - +- => c +c = a +g => - +a = g +g = g +t = t +c = c +a = a +g = g +a = a +t => - +- => t +t = c +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +a = g +t = t +c = c +a = a +g = g +t = t +a = a +a = a +g = g +t = c +a = a +t = t +c = c +c = c +g => - +- => g +g = a +t = t +c = c +t = t +g = g +a = a +a = a +t = t +c = c +c = c +c = c +g = a +a = a +t = t +c = c +c = c +t = t +a => - +c = a +- => t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +t = t +a = a +t = t +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +g = g +c = t +- => a +a = c +t => - +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +- => a +a = t +t = t +c = c +t => - +- => a +a => - +- => a +a = c +t => - +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +a = a +c => - +- => c +c => - +a = c +t = g +t = t +- => c +c = c +c = c +c = c +a = g +t => - +- => t +t => - +- => t +t = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +a = a +g = g +t = t +t = t +t = t +a = a +t => - +- => t +t = c +a = a +t = t +t = t +c = c +- => t +t => - +- => t +t => - +c = t +c = c +- => a +a = c +t => - +t = t +- => a +a = c +t => - +c = c +g = g +a = a +t = t +g = g +a = a +t => - +- => t +t = c +c = c +- => t +t => - +- => t +t => - +c = t +t = t +t = t +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +t = t +t = t +c => - +c = c +c = c +- => t +t = t +g = a +c = c +g = g +c = c +c = c +c = c +g = g +c = c +c = c +c = c +c = c +c = c +t => - +a => - +t = t +a = a +- => t +- => g +t = c +c = c +c = c +c = c +a = a +g = g +c = c +- => t +t => - +- => t +t => - +c = t +g => - +- => g +g => - +c => - +- => g +- => t +g = g +t = t +g = a +a = a +g = g +c = c +a => - +t = a +t = t +c = c +c = c +c = c +c = c +- => a +a => - +c = a +- => t +c = c +t = a +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +c = c +a = a +t = t +c = c +g => - +- => g +g = a +c = c +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +a = a +c = c +a = g +c = c +c = c +a = a +t = t +c = c +a = a +g = g +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c => - +c = c +- => t +t = t +c = c +c = c +c = c +a = a +c = c +- => a +a => - +- => a +a = c +c = c +t => - +a = a +a = a +t = t +a = a +a = a +t => - +t => - +- => t +t => - +- => t +- => c +t = t +a => - +- => a +a = g +t => - +- => t +t = c +c = c +c = c +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +- => c +c => - +t => - +t => - +a = c +c = c +a => - +a => - +c = a +- => t +- => g +- => a +- => t +a = g +g = g +t = t +t = t +t = t +t = t +g = g +- => a +a = c +t => - +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +t = t +t = t +c = c +a = a +a = a +t = t +t = t +g = g +c = c +c = c +a = a +t = t +g = g +a = a +- => t +t => - +a = t +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t => - +- => t +t = c +c = c +t = t +g = g +g = g +g = g +a = a +g = g +t = t +a = a +g = g +t => - +- => t +t = c +a = a +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +t = t +g = g +t = c +a = a +t = t +g = a +t = t +- => c +c = c +t => - +t = t +t = t +a = a +t = t +c = c +a = a +g = g +t => - +- => t +t = c +t = t +g => - +- => g +g = a +t = t +g = g +t = t +a = a +g = g +a = a +t = t +g = g +t = c +t => - +- => t +t => - +- => t +t = c +a = a +c = c +g = g +g = g +- => t +t => - +c = t +a = a +t = t +a = g +g = g +- => t +t => - +c = t +c = c +g = g +c = c +c = c +g = g +c = c +c = c +g = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +g = g +g = g +t = c +t = t +t = t +c = c +- => a +a = c +c = c +t => - +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +c = c +- => a +a => - +- => a +a = c +c = c +t => - +g = g +c => - +c = c +- => t +t = t +a => - +c = a +t = t +t = t +c = c +- => t +g = g +t = t +c = c +t = t +a = a +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = g +g = g +g = g +t = t +t = t +- => a +a = c +t => - +t = t +a = a +c = c +t = t +g = g +c = c +- => a +a = c +c = c +t => - +t = t +c = c +a = g +g = g +g = g +c = c +a => - +c = a +c = c +- => t +t = t +t = t +c = c +g = g +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +g = g +t = t +t = t +t = t +t = t +t = t +t = t +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +g = g +c = t +a = a +t = t +c = c +t = t +a => - +c = a +- => t +g = g +g = g +c = t +a = a +g = g +c = c +c = c +t = t +t = t +t = t +a = a +c = c +c = c +a => - +c = a +- => t +t = t +t = t +- => c +c = c +c = c +c = c +t => - +c = c +t = g +a = a +a = a +g = g +c = t +t = t +t = t +c = c +a = a +t = t +g = g +a = a +g = g +a = a +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +- => a +a = c +t => - +t => - +- => t +t => - +- => t +t = c +a = a +t = t +c = c +t = t +- => c +c = c +t => - +g = g +g = g +g = g +t = t +c = c +a = a +t = t +t = t +t = t +t = t +a = a +a = a +c = c +- => a +a = c +t => - +t = t +a = a +t = t +t = t +c = c +g = a +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +t = t +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +a => - +- => a +a => - +- => a +a = t +g = g +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +a = a +t = t +- => c +c = c +t => - +g = g +a = a +t = t +a = a +c = c +c = c +- => a +a = c +c = c +t => - +c = c +g = g +a = a +g = g +t = t +c = c +c = c +a => - +c = a +- => t +t = t +a = a +a = a +c = c +t = t +a = c +t = t +g = g +a = t +g = g +g = g +a = a +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +a = g +t => - +- => t +t = c +a = a +t = t +g = g +c = t +c = c +t = t +a = a +c = c +a => - +c = a +- => t +a = a +a = a +a = a +- => t +- => t +t => - +c => - +c = t +t = t +c = c +a => - +c = a +c = c +c = c +- => t +t = t +g = g +a = a +a = a +g = g +a = a +t = t +- => c +c = c +c = c +c = c +c = c +t => - +a = a +a = a +a = a +t = t +c = c +g = a +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +a = a +c = c +c = c +c = c +c = c +c = c +g = a +g = g +t = t +- => c +- => a +c = c +a = a +c = c +g => - +g => - +g = g +a = a +g = g +g = g +a = a +t = t +c = c +a => - +- => a +a => - +c = a +c = c +- => t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +a = a +t => - +- => t +- => c +t => - +- => t +t => - +- => t +t => - +c = t +c = c +g = g +a = a +g = g +t = t +c = c +t => - +- => t +t => - +- => t +t = c +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = c +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t = c +t = t +g = g +a = a +a = a +g = g +a = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +- => t +t = a +g => - +a = g +t = t +- => a +a => - +g = a +g = g +g = g +c = t +a = a +t = t +a = a +g = g +- => c +c = a +t => - +- => t +t => - +c = t +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +t = t +g = g +t = c +c = c +c = c +a => - +c = a +- => t +c = c +a = a +c = c +a => - +c = a +- => t +a = a +c = c +c = c +a = a +c = c +c = c +g = g +g = g +a = a +a = a +c = c +c = c +a = a +t = t +a = g +c = c +a = a +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c => - +a => - +c = c +- => g +- => t +a = a +a = a +t = t +g = g +t = t +a = a +g = g +c = t +g = g +c = c +g = a +g = g +t = t +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a => - +c = a +- => t +c = c +a = a +a = a +t = t +c = c +a => - +c = a +- => t +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +t = t +c => - +- => c +c = a +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a => - +c = a +- => t +c = c +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +- => a +a = c +c = c +t => - +t = t +t = t +a = a +g = g +t = t +g = a +t = t +a = a +c = c +c = c +g = g +a = a +- => t +t => - +c = t +c = c +g = g +g = g +c = a +c = c +t = t +c = c +c = c +- => a +a => - +g = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +c = c +c = c +c = c +g = g +g = g +g = g +g = g +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +g = g +a = a +t = t +- => a +a = c +t => - +a = a +c = c +t = t +a = a +t = t +c = c +c = c +g = g +t = t +a = a +c = c +a = a +c = c +t = t +a = a +a = a +c = c +c = c +a => - +c = a +c = c +c = c +- => t +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +a = a +c = c +a => - +- => a +a => - +c = a +- => g +a = a +g = g +c = c +a = a +c = c +g = g +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +g = g +a => - +- => a +a = g +t = t +g = g +a = a +- => t +t => - +c = t +t = t +t = t +c = c +a = a +c = c +a = a +c = c +t = t +t = t +t = t +t = t +g = g +c = c +a = a +t = t +c = c +c = c +g = g +a = a +a = a +c = c +c = c +t = t +a => - +- => a +a = c +t => - +- => t +t = c +c = c +c = c +g = g +c = c +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c => - +- => c +c = a +t = t +a = a +t = t +c = c +- => a +a => - +g = a +- => t +t => - +c = t +a = a +- => t +t => - +c = t +t = t +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +a = g +a = a +c = c +a => - +c = a +- => t +t = t +t = t +c = c +t = t +a => - +c = a +- => t +t = t +- => a +a = c +t => - +t = t +c = c +a = a +c = c +- => a +a => - +t = a +c = c +t = t +c = c +c = c +c = c +t = t +t = t +c => - +c = c +- => t +a => - +- => a +a => - +t => - +t => - +- => a +a = c +- => c +c = a +- => t +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +c => - +- => c +c = a +c = c +a = a +c = c +c = c +g = g +c = c +a = g +a = a +a = a +g = g +g = g +t = c +t = t +a = a +a = a +t = t +c = c +c = c +a = a +c = c +g = g +t = t +a => - +c = a +- => t +t = t +c = c +a = a +t = t +c = c +c = c +a = a +c = c +t = t +g = g +g = g +a = a +c = c +g = g +t = t +c = c +- => a +a = c +t => - +t = t +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +g = g +c = t +c = c +g => - +- => g +g = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +g = a +a = a +c = c +c = c +- => a +a => - +- => a +a = c +c = c +t => - +t = t +a = a +c = c +- => t +t => - +c = t +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = t +t = t +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +c = c +a = a +t = t +- => c +c => - +- => c +c => - +a = c +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +a = a +c = c +c = c +a => - +t = a +t = t +- => c +c = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +a = a +a = a +t => - +- => t +t = c +a = a +g = g +- => a +a => - +- => a +a = c +t => - +c = c +t = t +c = c +g = g +c = c +t = t +t = t +t = t +c = c +g = g +g = g +- => a +- => c +a => - +t => - +a = a +t => - +- => t +t = c +- => a +a => - +g = a +t = t +g = g +a = a +c = c +g = g +c = c +g => - +- => g +g => - +- => g +g = a +c = c +g = g +a = a +- => g +- => t +g = g +t => - +a => - +t => - +- => t +t = c +c = c +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g => - +- => g +g = a +t = t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +c = c +c = c +a = a +a = a +a = a +t = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +a = g +a = a +c = c +c = c +c = c +a => - +c = a +- => t +c = c +a = a +a = a +c = c +c = c +a = a +c = c +- => a +a = c +t => - +t = t +t = t +a = a +c = c +t = t +c = c +- => a +a = c +c = c +t => - +c = c +c = c +g = g +- => t +t => - +c = t +c = c +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = g +t = t +t = t +a = a +t = t +t = t +t = t +t = t +t = t +a => - +c = a +- => t +t = t +a = a +a = a +t => - +- => t +t => - +c => - +c => - +t = t +a => - +t = a +g = g +- => t +a = a +t = t +c = a +- => a +- => t +- => t +a = g +t = t +a = a +t = t +t = t +- => c +c = c +t => - +c = c +t = t +a = a +g = g +t = t +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g = g +g = g +g = g +a => - +- => a +a => - +t = a +- => c +c = c +a = g +c = c +a => - +- => a +a => - +c = a +- => t +a = a +c = c +a = a +t = t +a => - +c = a +- => t +c = c +g = a +a = a +t = t +- => a +a => - +g = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +a => - +- => a +a => - +- => a +a = c +c = c +t = t +a = a +a = a +t = t +c = c +a = a +g = g +t = t +a = g +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = g +t = t +t = t +a => - +- => a +a = g +t = t +c = c +a = a +g = g +c = c +c = c +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +c = c +t = t +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +g = g +t => - +- => t +t = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +- => c +c = c +t => - +t = t +a => - +c = a +- => t +t = t +- => a +a => - +g = a +- => t +t => - +c = t +a = a +t = t +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +a = a +- => t +t => - +c = t +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +c = c +g = g +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +t = t +c = c +g = g +c = c +- => t +t => - +- => t +- => a +t => - +g => - +- => t +t => - +c = t +t = t +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +a => - +a => - +a => - +c = a +- => a +a => - +- => a +- => t +a = g +- => t +- => c +t => - +a = t +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +a => - +c = a +- => t +c => - +- => c +c = a +g = a +a = a +a = a +a = a +c = c +c = c +a => - +c = a +- => t +t = t +- => c +c = c +c = c +c = c +t => - +c = c +c = c +a = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +a = a +t = t +t = t +a = a +a = a +a = a +c = c +- => a +a = c +t => - +a = a +a = a +a = a +- => t +t => - +- => t +t => - +a = t +t = t +a = g +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a => - +c = a +- => t +t = t +a = a +c = c +t = t +c => - +c = c +- => t +t = t +t = t +a = a +t = t +c = c +a = a +c = c +- => a +a = c +t => - +t = t +c = c +c = c +t = t +c = c +- => a +- => t +a => - +t = a +a = a +c = c +c = c +c = c +c = c +t => - +a = g +t = t +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +c = c +c = c +c = c +g = g +g = g +t = t +a = a +t = t +g = g +t = c +c = c +- => a +a = c +t => - +c = c +a = a +t = t +a = a +a = a +a = a +t = t +c = c +a = g +a = a +c = c +c = c +c = c +c = c +g = g +t = t +- => a +a => - +g = a +a = a +g = g +t = t +g = g +a = a +c = c +a = g +t = t +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +- => g +g => - +a = g +c => - +c = c +- => t +a => - +- => a +a = t +g = g +a = a +g = g +a = a +a = a +t = t +t = t +a = a +g = g +a = a +a = a +a = a +t = t +t = t +g = g +a = a +a = a +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = g +c = c +g = g +a = a +t => - +- => t +t = c +c = c +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +g = g +t = t +c = c +a => - +c = a +c = c +- => t +c = c +g = g +a = a +g = g +a => - +t = a +- => c +c = c +t = t +c => - +c = c +- => t +c = c +c = c +c = c +- => t +a => - +t = a +c = c +t = t +c = c +- => t +c = c +c = c +c = c +c = c +- => a +- => t +a => - +c => - +g = a +a = a +t = t +a = a +t = t +- => c +c => - +- => c +c => - +- => c +- => g +c => - +a = c +t => - +t = t +t = t +a = a +t = t +g = g +c = c +c = c +c = c +g = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +g = g +t = t +t = t +t = t +c = c +t = t +a = a +a = a +a = a +a = a +a = a +t = t +- => c +c = c +c = c +c = c +c = c +t => - +t = t +a => - +- => a +a => - +t = a +t = t +- => c +a = g +a = a +g = g +a = a +t = t +c => - +c = c +- => t +t = t +g = g +c = t +t = t +a = a +c = c +c = c +c = c +g = g +t = t +a => - +c = a +- => t +t = t +t = t +t = t +g = g +a = a +c = c +a = a +c = c +c = c +a => - +- => a +a => - +- => a +a = c +c = c +g = g +a = a +g = g +g = g +t = t +g = g +t = t +c = c +t = t +a = a +a = a +a = a +g = g +t = a +c = c +t = t +c = c +- => g +- => t +g = g +t => - +a => - +- => a +a = c +c = c +t => - +g = g +g = g +c = c +a = a +t = t +c = c +a = a +t = t +a = a +t = t +g => - +g => - +- => g +- => a +g => - +- => g +g => - +- => g +g = a +c = c +c = c +a = a +g = g +c = c +a = a +c = c +- => a +a = c +t => - +c = c +g = g +c = c +c = c +a = a +c = c +t => - +- => t +t => - +- => t +t = a +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a => - +- => a +a => - +- => a +a = g +t = t +- => c +c = c +t => - +g = g +c = c +a = g +g = g +g = g +- => c +c = c +c = c +c = c +t => - +t = t +a = a +a = a +c = c +g = g +t = c +a = a +g = g +a = a +c = c +a = a +a = a +a = a +a = a +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +t = t +t = t +a = a +c = c +a => - +c = a +c = c +c = c +c = c +- => t +t = t +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +t = t +g = g +c = t +a = a +g = g +a = a +a = a +- => c +c => - +a = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +a = a +t = t +g = g +- => c +c = c +t => - +t = t +a = g +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +t => - +- => t +t => - +g = t +g = g +c = a +c = c +c = c +- => t +t = t +- => c +c => - +a = c +t = t +g = g +a = a +t = t +g = g +a = a +g = g +- => c +c = c +t => - +a = a +a = a +c = c +a = a +g = g +t = c +t = t +g = g +c = c +a = a +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +g = g +c = c +g = a +t = t +c = c +c = c +a = a +g = g +c = t +g = g +g = g +a = a +c = c +c = c +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +t = t +- => a +a = c +c = c +c = c +c = c +c = c +c = c +t => - +t = t +c = c +a = a +t = t +a => - +c = a +- => t +a = a +t = t +c = c +c = c +t = t +c = c +a => - +- => a +a => - +c = a +- => t +t = t +t = t +c = c +t = t +a => - +- => a +a = g +- => t +t => - +c = t +a = a +g = g +g = g +c = t +g = g +g = g +c = t +a = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +c = c +a = a +t = t +g = a +a = a +g = g +c = c +a = a +t = t +c = c +c = c +a = a +a = a +g = g +t = t +c = c +a = a +t = t +g = a +g = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +a => - +c = a +c = c +- => t +g = g +g = g +t = c +t = t +a = a +a = a +c = c +t = t +a = a +a = a +a = a +c = c +t = t +a => - +c = a +- => t +c = c +- => a +a = c +t => - +t = t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +c = c +a = a +g = g +c = t +a = a +a = a +c = c +t = t +g = a +g = a +a = a +g = g +c = t +a = a +g = g +a = a +c = c +a => - +- => a +a = g +t = t +a => - +c => - +- => a +- => t +a = a +t => - +- => t +t = c +t = t +c = c +c = c +t = t +- => a +a => - +c = a +g = g +c = c +a = a +t = t +c => - +c = c +- => t +c = c +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +c = c +g = g +c = c +t = t +a => - +c = a +- => g +t = t +c = c +c = c +t = t +g = g +a = a +- => t +t => - +c = t +c = c +t = t +a => - +c = a +- => t +t = t +a => - +c = a +- => t +c = c +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +t = t +- => a +a = c +t => - +c = c +a = a +a = a +g = g +t = t +c = c +t = t +g = a +c = c +c = c +a => - +- => a +a = g +a = a +g = g +a = a +t = t +a = a +a = a +a = a +g => - +- => g +g = a +- => a +a = c +c = c +t => - +c = c +g = g +c = c +a = a +g = g +a = a +c = c +t = t +c = c +t = t +a = a +c = c +g => - +- => a +a => - +t = a +- => c +c = a +- => a +a = c +t => - +a = a +a = a +t = t +c = c +a = a +a = a +t = t +c = c +a = g +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +a = a +t = t +c = c +c = c +t = t +t = t +t = t +t = t +c = c +c = c +c = c +g = g +t = c +a = a +t = t +g = g +t = t +c = c +c = c +t = t +g = g +a = a +- => t +t => - +c = t +c = c +t = t +t = t +c = c +g = g +t = t +c = c +t = t +a => - +t => - +t = a +c = c +- => t +c = c +- => t +t = t +t = t +t = t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +c = c +c = c +c = c +g = g +c = t +a = a +c = c +t = t +a = a +g = g +t = t +a = a +c = c +t = t +t = t +t = t +c = c +t = t +a = a +c = c +t = t +- => a +a => - +t = a +t = t +c = c +g = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +t = t +c => - +c = c +c = c +- => t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +g = g +c = c +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +t = t +g = g +g = g +a = a +t = t +g = g +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +g = g +t = t +a = a +c = c +a = a +c = c +g = g +g = g +t = t +a = a +a = a +t = t +t = t +c = c +t => - +a => - +t = t +a = a +t = t +a = a +- => t +- => g +t = c +- => c +c = c +c = c +t => - +- => a +a => - +- => a +a => - +- => a +a = t +t = t +c = g +g = g +g = g +a = c +t => - +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +- => g +g => - +a = g +a = a +a = a +c = c +t = t +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +c = c +t = t +t = t +t = t +a => - +c = a +- => t +c = c +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +t = t +a = a +t = t +a = a +g = g +a = a +a = a +a = a +a = a +a = a +c = c +t = t +t = t +t = t +t = t +t = t +c = c +a = a +g = g +t = t +a => - +c = a +c = c +- => t +t = t +c = c +c = c +g = a +g = g +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +t = t +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +c = c +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c = c +- => a +a => - +g = a +a = a +t = t +c = c +t = t +a = g +a = a +a = a +a = a +t = t +a => - +c = a +- => t +a = a +t = t +a = a +t = t +g = g +c = t +c => - +c = c +- => t +g = g +a = a +g = g +a = a +a = a +g = g +c = t +t = t +t = t +a = a +c = c +a => - +c => - +- => a +- => t +a => - +c = a +c = c +- => t +a = a +t = t +c = c +c = c +c = c +a => - +c = a +c = c +c = c +- => t +c = c +c = c +c = c +g = g +t = t +a = a +g = g +g = g +t = t +a = a +t = t +a = g +t = t +c = c +a = a +g = g +t = t +g = g +a = a +g = g +g = g +t = t +c => - +c = c +- => t +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a = a +c = c +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +a = a +g = g +a = c +t = t +g = a +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +a = a +g = g +c = c +g = a +- => a +a => - +- => a +a => - +g = a +c = c +t => - +- => t +t = c +c = c +g = g +c = c +t = t +t = t +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +t => - +- => t +t = c +t = t +- => a +a => - +g = a +t = t +a => - +c = a +- => t +t = t +t = t +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +a = a +t = t +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +a = a +t = t +- => c +c = c +t => - +c = c +t = t +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +- => g +g => - +- => g +g => - +a = g +t = t +g = g +t = c +c = c +t = t +a = a +c = c +t = t +a = g +t = t +c = c +c = c +t = t +a = a +t = t +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a => - +c = a +- => t +c = c +a => - +c = a +- => t +a = a +t = t +a = a +c = c +g = g +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +t = t +g = a +c = c +a = a +g = g +c = c +c = c +c = c +c = c +g = a +t = t +a = a +a = a +g = g +g = g +c = t +c = c +t = t +a = a +t = t +c = c +c = c +g = g +g = g +c = t +t = t +c = c +t = t +t = t +t = t +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t = c +c = c +a = a +a = a +t = t +c = c +t = t +a => - +- => a +a => - +- => a +a = t +t = t +g = g +c = c +g = g +g = g +c = t +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a => - +t = a +c => - +a = c +c = c +- => g +- => t +t => - +- => t +t => - +- => t +t = c +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +c = c +c = c +g = g +c = c +a = a +t => - +- => t +t = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +a = a +g = g +a = a +t = t +c => - +c = c +- => t +c = c +a = a +c = c +a = a +t = t +c = c +g = g +g = g +c = a +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a = a +c = c +t = t +t = t +a => - +c = a +- => t +t = t +t = t +c = c +- => g +g => - +- => g +g => - +a = g +g = g +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = c +t = t +t = t +a = g +t = t +g = g +t = t +c = c +g = g +a = a +g = g +g = g +a = a +t = t +a => - +- => a +a = t +c = c +t = t +a = a +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +g = g +a = a +t = t +g = g +t = c +t = t +g = g +c = c +a = a +- => t +t => - +c = t +a = a +t = t +g = a +c = c +a = a +c = c +a = a +g = g +c = c +a = a +c = c +a = g +t = t +c = c +a = g +t = t +g = g +c = c +t = t +a => - +c = a +- => t +a = a +g = g +a = a +- => t +t => - +c = t +a = a +c = c +t = t +a = g +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t => - +- => t +t = c +a = a +t = t +g = g +t = c +t = t +a = a +c = c +g = g +g = g +t = c +c = c +- => a +a => - +g = a +t = t +c = c +c = c +g = g +g = g +t = c +g = g +g = g +a = a +t = t +g = g +c = t +c = c +a = a +c = c +t => - +- => t +t => - +- => t +t = c +t = t +c = c +- => t +t => - +- => t +t => - +- => t +t => - +c = t +t = t +a = a +c = c +t = t +t = t +a = g +g = g +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +t = t +g = a +a = a +c = c +g = g +t = c +c = c +g = g +t = t +c = c +t = t +a = a +g = g +t = t +- => a +a => - +- => a +a => - +- => a +- => c +a = c +g => - +t => - +a = a +t = t +a => - +- => a +a => - +c = a +- => t +g = g +a = a +a = a +g = g +g = g +c = t +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a => - +c = a +- => t +c = c +g = g +c = c +t = t +c = c +a = a +g = g +t = t +c = c +g = g +- => a +a = c +t => - +t = t +t = t +a = a +t = t +g = g +a = a +a = a +a = a +c = c +t = t +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +c = c +c = c +a = a +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +a = c +c = c +g = g +a = a +g = g +c = c +a = a +c = c +a => - +c = a +- => t +a = a +g = g +a = a +t = t +g = g +c = c +a = a +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +t = t +- => a +a = c +t => - +a = a +c = c +c = c +a = a +- => c +c => - +a = c +c = c +g = g +a = a +g = g +t = t +g = g +t = t +g = g +c = t +t = t +a = a +- => t +t => - +- => t +t => - +- => t +t = a +g => - +- => g +g => - +- => g +g => - +a = g +t = t +c = c +c = c +- => t +t => - +- => t +t => - +c = t +g = g +g = g +t = t +t = t +a = a +a = a +c = c +t = t +a = a +t = t +- => a +a => - +g = a +t = t +a = a +t = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +g => - +- => g +g = a +t = t +a = a +t = t +g = g +g = g +a = a +t = t +a => - +c = a +- => t +a = a +t = t +a = a +g = g +g = g +t = c +t = t +t = t +a = a +c = c +c = c +a = a +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +c = c +c = c +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +t = t +c = c +a = a +a = a +t = t +g = g +t = t +t = t +- => a +a = c +t => - +a = a +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +c = c +t = t +t = t +c = c +g = g +g = g +a = a +c = c +c = c +a = a +t = t +c = c +c = c +t = t +- => a +a => - +c = a +t = t +c = c +t = t +t = t +- => a +a = c +t => - +a = a +t = t +t = t +t = t +g = g +a = a +a = a +g = g +t = c +c = c +c = c +c = c +a = a +c => - +- => c +c = a +g = g +g = g +c = t +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +t = t +t = t +a = a +- => t +t => - +c = t +c = c +a = a +c = c +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +- => c +c = c +t => - +t = t +a => - +c => - +c = a +- => t +c = c +c = c +- => t +a = a +g = g +a = a +g = g +g = g +a = a +g = g +g = g +a = a +g = g +g = g +c = c +c = c +g = g +c = a +c = c +c = c +c = c +a = a +g = g +c = c +- => t +t => - +- => t +t => - +c = t +t = t +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +g = g +c = c +c = c +a = a +g = g +a = a +c = c +a = a +a = a +- => t +t => - +c = t +a = a +- => t +t => - +c = t +a = a +t = t +- => a +a = c +t => - +c = c +a => - +c = a +- => t +t = t +- => a +a => - +c = a +g = g +g = g +t = t +c = c +g = g +t = t +c = c +g = g +a = a +t = t +c => - +- => c +c = a +t = t +g = g +a = a +c = c +c = c +c = c +t = t +c = c +t = t +c = c +t = t +a = a +t = t +c => - +c = c +- => t +t = t +c = c +t = t +t = t +c = c +a = a +- => t +t => - +c = t +c = c +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +c = c +c = c +t = t +a = a +g = g +t = t +c = c +t = t +g = g +c = c +t = t +t = t +t = t +t = t +c = c +c = c +c = c +c = c +g = a +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +c = c +g = g +t = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +t = t +- => a +a => - +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a => - +c = a +- => t +t = t +a = a +c = c +t => - +- => t +t => - +- => t +t = c +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +g = g +g = g +g = g +a => - +t = a +t = t +c = c +- => t +t = t +a = a +t = t +c = c +t = t +c = c +c = c +t = t +c = c +t => - +g => - +- => t +- => a +t = c +g = g +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a => - +t = a +t = t +- => c +c = c +c = c +- => t +- => t +t => - +c => - +- => t +t => - +- => t +t => - +c = t +t = t +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +g = g +c = t +c = c +- => t +t => - +c = t +c = c +g = g +a = a +g = g +g = g +t = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +- => t +t => - +c = t +- => a +a = t +t = t +c => - +- => a +a => - +- => a +a => - +g = a +g = g +g = g +a = a +c = c +g = g +a = a +t = t +t = t +c = c +c = c +c = c +t = t +c = c +c = c +c = c +a = a +t = t +c = c +t = t +g = g +a = a +c = c +a => - +- => a +a = g +g = g +t = t +t = t +g = g +g = g +a = t +c = c +a => - +- => a +a = g +g = g +g = g +a = a +c = c +g = g +c = c +g = g +g = g +c = c +c = c +g = g +a = a +a = a +g => - +- => g +g = a +t = t +g = g +a = a +t = t +a = a +t = t +c = c +g = g +t = c +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c => - +c = c +- => t +t = t +c = c +a = a +t = t +c = c +c = c +- => t +- => t +t = t +c => - +t => - +c = c +- => t +t = t +c => - +- => c +c => - +- => c +c => - +t => - +- => c +c => - +- => c +c => - +a = c +- => t +t => - +- => t +t = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +t = t +t = t +c = c +g = g +a = a +a = a +t = t +- => a +a = c +t => - +a = a +a = a +c = c +a = a +a = a +a = a +t = t +a = a +c = c +g = g +- => c +c = c +c = c +c = c +c = c +t => - +t = t +t = t +g = a +c = c +g = g +g = g +t = t +- => a +a = c +t => - +a = a +g = g +c = c +c = c +c = c +c = c +c = c +g = g +t = t +g = g +g = g +c = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +c = c +c = c +c = c +t = a +t = t +g = g +a = a +t = t +c = c +a = g +g = g +t = t +c = c +a = a +a = a +c = c +g = g +g = g +t = t +t = t +t = t +c = c +g => - +- => g +g => - +- => g +g = a +g = g +g = g +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a => - +c = a +- => t +c = c +c = c +a = g +t = t +a = a +a = a +t = t +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +- => t +t => - +- => t +t => - +c = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +g = g +t = c +t = t +t = t +a = g +c = c +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +g = g +c = c +t = t +a = a +t = t +t = t +g = g +c = t +a => - +- => a +a => - +c = a +- => t +a = a +t = t +c = c +t = t +a = a +c = c +a => - +c = a +c = c +- => t +a = a +g = g +c = c +a = a +a = a +t = t +g = g +g = g +a = a +t = t +c = c +t = t +t = t +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +c = c +c = c +g => - +- => a +a => - +c = a +c = c +g = t +g = g +g = g +- => t +t = t +c = c +a = a +a = a +g = g +c = a +c = c +g = g +a = a +g = g +c = c +t = t +t = t +a = a +t = t +t = t +c = c +c = c +t = t +c => - +c = c +- => t +g = g +a = a +a = a +t = t +- => c +c = c +t => - +c = c +g = g +a = a +c = c +a = a +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +g = g +a = a +g = g +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +t = t +a = a +t = t +c = c +a = a +t = t +c => - +c = c +- => t +a = a +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +g = g +t = t +t = t +a => - +c = a +- => t +a = a +g = g +a => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +t = t +c = c +t = t +t = t +a = a +- => t +t => - +c = t +a = a +g = g +t => - +- => t +t = c +g = g +c = c +c = c +a = a +g = g +c = c +c = c +g = a +c = c +t = t +t = t +g = g +t = t +a = a +g = g +t = t +c = c +a => - +c => - +c = a +c => - +- => c +c => - +- => c +- => t +- => t +- => t +- => t +- => t +- => t +c => - +a = c +c = c +t = t +c = c +c = c +a = a +t = t +t = t +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +t = t +c = c +a => - +c = a +- => t +t => - +- => t +t = c +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +g = g +a = a +t = t +t = t +t = t +c = c +t = t +g = g +t = t +c => - +c = c +- => t +c = c +c = c +- => g +a => - +- => a +- => c +a = c +t => - +t => - +c = c +g = g +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +t = t +g = g +g = g +t = t +c = c +g = g +a = a +- => g +g => - +a = g +c = c +t = t +c = c +c = c +a = a +c = c +- => t +t => - +a = t +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +a = a +c = c +t = t +t = t +a = a +a = a +c = c +g = g +t = t +t = t +t = t +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +g = g +t = t +c = c +g = g +a = a +a = a +g = g +t = t +t = t +t = t +g = g +g = g +a = a +c = c +g = g +g = g +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +g = g +g = g +c = c +g = g +g = g +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +g = a +g => - +- => g +g = a +c = a +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +a = a +a = a +c = c +t = t +t = t +c = c +g = g +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +g = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +t = t +g = g +a = a +- => t +t => - +- => t +t => - +c = t +a = a +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +g = g +g = g +g = g +t = t +a => - +- => a +a => - +c = a +c = c +- => t +a = a +g = g +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +c = c +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +a = a +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +c = c +a = a +a = a +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +c = c +g = g +t = t +c = c +t = t +c = c +a => - +c = a +- => t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +c = c +g = g +t = t +c = c +a = a +g = g +g = g +a = a +a = a +t = t +c = c +g = a +a = a +c = c +a = a +a = a +c = c +g = g +t = t +c = c +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +- => a +a = c +t => - +a = a +a = a +c = c +g = a +t = t +t = t +g = g +a = a +a = a +t = t +g = g +a => - +c = a +- => t +t = t +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +- => a +- => t +a = a +c => - +a = c +t => - +a = a +a = a +a = a +t = t +t = t +g = g +g = g +a = a +t = t +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a => - +t = a +t = t +c = c +- => t +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +- => a +a = c +t => - +t => - +- => t +t => - +- => t +t = c +c = c +c = c +c = c +c = c +t = t +c = c +t = t +- => a +a = c +t => - +c = c +c = c +a = a +t = t +c => - +c = c +- => t +t = t +c = c +a = a +t = t +- => c +c => - +a = c +c = c +a = a +c = c +c = c +- => a +a = c +t => - +t = t +c => - +- => c +c = a +c = c +a = a +c = c +t = t +a => - +c = a +- => t +t = t +c = c +a = a +c = c +a => - +c = a +- => t +c = c +c = c +c = c +t = t +c = c +c = c +t => - +- => t +t => - +a = t +c = c +c = c +c = c +- => t +c = c +a = a +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +- => a +a = t +c = c +a = a +t = t +a => - +c = a +- => t +a = a +a = a +g = g +t = c +t => - +- => t +t = c +g = g +a = a +c = c +a = a +g = g +t = t +a = a +a = a +a = a +a = a +t = t +a => - +- => a +a = g +a = a +a = a +a = a +t = t +g = g +c = c +a = a +a = a +c = c +- => a +a => - +- => a +a = c +t => - +c = c +t = t +a = a +t = t +a => - +t = a +- => c +c => - +- => c +c => - +- => c +c = a +t = t +c = c +a = a +t = t +c = c +a = a +c = c +a = a +c = c +t = t +a => - +- => a +a = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +- => t +t => - +c = t +t = t +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +c => - +c = c +- => t +a = a +t = t +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a => - +c = a +c = c +- => t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +a => - +c = a +- => t +t = t +a = a +c = c +c = c +- => a +a = c +c = c +c = c +c = c +c = c +t => - +a => - +c = a +- => t +t = t +a = a +c = c +t = t +- => c +c => - +- => c +c = a +g = g +a = c +t => - +a => - +- => a +a => - +c = a +- => t +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +a = a +a = a +g = g +a = a +a = a +g = g +c = c +t = t +a = a +t = t +t = t +a => - +c = a +- => t +- => t +c = c +g => - +g = g +g = g +t = t +a = a +a = a +a = a +c = c +c = c +c = c +g = a +t => - +t => - +- => t +- => c +t = c +t = t +t = t +c = c +g = g +g = g +c = c +c = c +a = a +a = a +t = t +c = c +g = a +c = c +c = c +c = c +c = c +c = c +g = a +t = t +c => - +c = c +- => t +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +- => c +a = c +c = c +c = c +t => - +t = t +a => - +- => a +a => - +t = a +t = t +c = c +- => t +c = c +c = c +a = a +c = c +a = a +a = a +- => t +t => - +c = t +a = a +g = g +t = t +a = a +c = c +a => - +- => a +a = g +t = t +c = c +g => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +a = a +a = a +g = g +- => t +t => - +c = t +c = c +a => - +c = a +- => t +g = g +c = c +t = t +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c = c +- => a +a = t +t = t +c => - +c = c +c = c +- => a +a => - +g = a +c = c +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = g +a = a +a = a +t => - +- => t +t = c +c = c +a = a +a = a +c = c +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +c = c +a => - +- => a +a = c +t = t +c = c +c = c +t = t +a = a +t = t +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a => - +t = a +- => c +c = c +a => - +- => a +a = g +t => - +- => t +t = c +t = t +a = a +a = a +t = t +t = t +c = c +t = t +t = t +a => - +c = a +- => t +c = c +a = a +a = a +t = t +a => - +c = a +- => t +a = a +a = a +t = t +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +t = t +g = a +c = c +c = c +a = a +t = t +c = c +t = t +t = t +g = g +a = a +c = c +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +t = t +a = a +g = g +g = g +a = a +- => t +- => g +t => - +a => - +c = t +a = a +c = c +c = c +c = c +- => a +a = c +t => - +t = t +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +c = c +g = g +a => - +t = a +t = t +c = c +- => t +t = t +a => - +- => a +a = g +a = a +a = a +c = c +g = g +c = c +a = a +t = t +c = c +g => - +- => a +a => - +c = a +c = c +- => t +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +t => - +- => t +t = c +a = a +g = g +g = g +t = c +g = g +g = g +a = a +g = g +t => - +- => t +t = c +g = g +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +t = t +a = c +c = c +t = t +a = a +c = c +c = c +t = t +a = a +t => - +- => t +t = c +c = c +t = t +a = a +a = a +c = c +t = t +t = t +t = t +c = c +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +c => - +c = c +- => t +t = t +c = c +c = c +g = g +a = a +a = a +t = t +g = g +c = t +a => - +- => a +a => - +- => a +a => - +t = a +- => c +c = a +a = a +c = c +- => t +t = g +c => - +c => - +- => c +- => t +c = c +t => - +c = c +t = t +t = t +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +c = c +t = t +c = g +t = t +a => - +c = a +- => t +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +a = a +c = c +a = a +g = g +t = t +a = a +c = c +a = a +c = c +t = t +- => c +c = c +t => - +t = t +c = c +c = c +t = t +c = c +g = a +t = t +c = c +c = c +g = g +g = g +c = t +c = c +- => t +- => g +t = t +a => - +c => - +- => a +a => - +g = a +t = t +- => c +c = c +t => - +c = c +c = c +c = c +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +c = c +c = c +- => a +a = c +t => - +t = t +g => - +- => g +g = a +a = a +g = g +a => - +c = a +c = c +c = c +- => g +t = t +g = g +a = a +g = g +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +c = c +c = c +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a => - +- => a +a = t +c = c +g = g +a = a +t = t +a = a +t = t +c = c +g => - +- => g +g = a +t = t +a = g +a = a +t = t +a = g +c = c +t = t +a => - +- => a +a = g +t = t +a = a +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +c = c +t = t +a => - +- => a +a => - +c = a +- => t +c = c +a => - +t = a +- => c +c = c +a = g +t = t +a = a +a = a +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +c = c +c = c +a = a +a = a +g = g +t = t +a = a +a = a +c = c +a = a +g = g +g = g +c = c +c = c +t = t +c = c +t = t +c = c +a = a +t = t +- => a +a = c +t => - +a = a +a = a +c = c +- => a +a => - +- => a +a = c +c = c +t => - +t = t +c = c +t = t +c = c +c = c +t = t +- => a +a = c +t => - +c = c +g = g +a = a +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +c = c +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = t +c = c +a = a +a = a +c = c +g = g +a = a +a = a +c = c +g = a +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +g = a +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = c +c = c +g = g +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +t => - +- => t +t = c +g = g +c = c +t => - +c = c +c = c +c = c +- => t +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +- => c +c = c +t => - +t = t +g = g +- => a +a = c +c = c +c = c +t => - +t = t +a = a +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +c = c +g = a +t = t +a = a +c = c +a = a +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g => - +- => g +g => - +- => g +g = a +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = g +t = t +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +- => a +a = c +c = c +g => - +c = c +t = t +c = c +g = g +a = a +a = a +t = t +c = c +a = a +c = c +g = g +a = a +c = c +a => - +c = a +- => t +t = t +a => - +c = a +- => t +t = t +c = c +a = t +c = c +a = a +c = c +g = g +g = g +a = a +c = c +g = g +t = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +c = c +t = t +g = a +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +g = g +g = g +t = t +- => c +c = c +c = c +c = c +c = c +t => - +a = a +a = a +t = t +t = t +a = a +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +c = c +t = t +t = t +c => - +c = c +c = c +- => t +- => a +- => c +a => - +t => - +- => a +a = c +t => - +t = t +g = g +g = g +t = t +t = t +g = g +t = t +a = a +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +g = g +g = g +g = g +c = c +t = t +a = a +t = t +c = c +g = g +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +t = t +g = g +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +t = t +a = g +t = t +c = c +c = c +a = a +c = c +c = c +g = g +t = t +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +c = c +c = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +t = t +a = a +c = c +c = c +c = c +a = a +a = a +g = g +c = t +t = t +a = a +a = a +g = g +a = a +g = g +t = t +a = a +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +- => t +t => - +- => t +t => - +- => t +t = g +g = g +a => - +g = a +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +a = a +t = t +g = g +a = a +g = g +a = a +t = t +a = a +g = g +t = t +t = t +t = t +c = c +a = a +t = t +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +a = a +g = g +t = t +c = c +t = t +g = g +t = t +a = a +t = t +a = a +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a => - +t => - +t => - +- => a +a = c +- => c +c = a +- => t +c = c +c = c +a = a +t = t +a = a +c = c +c = c +- => t +t => - +c = t +t = t +g = a +t = t +a = a +t = t +a = a +g = g +t = t +a = a +t = t +- => a +a = c +t => - +t = t +c = c +a = a +t = t +c = c +a = a +c = c +- => g +g => - +a = g +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = g +- => t +t => - +c = t +c = c +t = t +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = g +t = t +c = c +c = c +t = t +c = c +c = c +a = a +c = c +a = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +a = a +g = g +c = c +a = a +t = t +c = c +g = g +c => - +c = c +- => t +t = t +t = t +a = a +g = g +c => - +c => - +c = c +- => t +c = c +c = c +- => t +a = a +t = t +a = a +c = c +g = g +a = t +c = c +a = a +a = a +g = g +c = c +t = t +t = t +a = a +a = a +g = g +t = t +a = a +t => - +- => t +t = c +c = c +t = t +t = t +g = a +t = t +c => - +c = c +- => t +c = c +t = t +c = c +c = c +- => a +a => - +g = a +t = t +c = c +t = t +t = t +c = c +a = g +t = t +c = c +c = c +c = c +- => a +a => - +g = a +a = a +a = a +c = c +c = c +a = a +c = c +t => - +g => - +t => - +t => - +t => - +t = t +- => a +a = c +- => t +t => - +a = t +c = c +- => g +- => t +- => a +- => t +a = g +a = a +c = c +a = a +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c => - +- => c +c => - +- => c +c => - +- => c +c => - +t => - +c = c +t = t +- => c +- => a +- => c +c => - +a = c +c = c +g = g +c = t +- => a +a => - +- => a +a = c +t => - +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +g = g +g = g +a = a +t = t +c = c +c = c +- => t +t => - +- => t +t => - +c = t +t = t +a => - +- => a +a => - +c = a +- => t +a = a +t = t +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c => - +c = c +- => t +c = c +a => - +c = a +- => t +a = a +a = a +a = a +t = t +a = a +a = a +t = t +- => a +a = c +t => - +t = t +a = a +t = t +t = t +a => - +c => - +- => a +- => t +a => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +c = c +a = a +t = t +a = g +a = a +g = g +c = c +c = c +g = g +a = a +t = t +a = a +c = c +- => t +t => - +- => t +t => - +c = t +t = t +t = t +a = a +t = t +c = c +c = c +c = c +g = g +c = c +t => - +- => t +t = c +c = c +c = c +c = c +c = c +g = g +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = t +a = a +t = t +a = a +a = a +g = g +c = c +t = t +a => - +c = a +- => t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +a = a +g = g +c = t +c = c +t = t +a = a +a = a +g => - +- => g +g = a +g = g +g = g +a = a +a = a +g = g +t = t +c = c +g = g +t = c +t = t +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a => - +- => a +a = g +g = g +c = c +c = c +a = a +a = a +c = c +c = c +- => a +a => - +g = a +a = a +g = g +a = a +c = c +g = g +a = a +- => t +t => - +c = t +a = a +c = c +a = a +c = c +c = c +t = t +c = c +t = t +a = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +a => - +c = a +- => t +c = c +g => - +- => g +g = a +t = t +t = t +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +t = a +a = a +c = c +c = c +g = a +t = t +c = c +c = c +t = t +c = c +a = g +t => - +- => t +t = c +a = a +g = g +t = t +c = c +t = t +c = c +c = c +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +c = c +g => - +- => a +a => - +c = a +- => t +a = a +c = c +t = t +- => a +a = c +t => - +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c = c +t = t +c = c +c = c +a = a +a = a +t = t +t = t +t = t +c = c +c = c +- => t +t => - +c = t +g => - +- => g +g => - +t => - +g = g +- => t +- => a +a => - +- => a +a = g +t = t +a => - +- => a +a = g +t = t +c = c +a = a +t => - +- => t +t = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +c = c +a = a +t = t +- => c +c = c +t => - +t = t +a => - +c = a +- => t +t = t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +a = a +a = a +g = g +t = t +a = a +t = t +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +a = a +c = c +g = g +a = a +g = g +c = c +g = a +t = t +c = c +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +a = a +g = g +- => t +t => - +c = t +c = c +c = c +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +c = c +- => g +g => - +a = g +g = g +t = t +g = g +g = g +g = g +a = a +c = c +t = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +t = t +a => - +- => a +a = c +c = c +t = t +c = c +a = a +t = t +t = t +t = t +g = g +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +g = g +a = a +t = t +- => c +c = c +t => - +t = t +- => a +a = c +t => - +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c => - +c = c +- => t +a = a +a = a +c = c +t = t +c => - +c = c +- => t +- => a +a => - +- => a +a = c +t => - +t = t +g => - +- => g +g = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +- => t +- => a +- => t +t = t +a = a +t = t +c = c +a = a +t = t +c = c +t => - +t => - +c = c +t => - +c = c +g = g +c = t +t = t +a => - +c = a +- => t +c = c +a = a +c = c +t = t +c = c +t = t +c = c +g = g +a = a +t = t +t = t +c = c +c = c +- => a +a => - +g = a +c = c +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +c = c +- => a +a => - +c = a +c = c +t = t +a = a +c = c +- => a +a => - +c = a +c = c +g = t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +g = g +c = c +a = a +g = g +t = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +c = c +a = a +t = t +c = c +g = g +g = g +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +t = t +g = g +t = c +t = t +g = g +c = c +- => a +a => - +- => a +a = c +c = c +c = c +c = c +t => - +g = g +g = g +a => - +- => a +a => - +- => a +a => - +c = a +- => t +g = g +c = c +a = a +t = t +c = c +a = a +a = a +c = c +g = a +t = t +a = a +t = t +a = a +t = t +c = c +g = g +g = g +a = a +- => t +t => - +c = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +c = c +c = c +- => a +a => - +t = a +t = t +c = c +g = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g => - +- => g +g = a +t = t +a => - +- => a +a = c +c = c +g = g +c = c +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +a => - +c = a +- => t +c = c +c = c +a = a +t = t +g = g +t = t +t = t +g = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c => - +c = c +- => t +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +c = c +g = g +g = g +t = t +a => - +c = a +c = c +c = c +- => t +a => - +c => - +- => a +- => t +a => - +c = a +- => t +a = a +a = a +c = c +a = a +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +c = c +c = c +t = t +t = t +a = a +a = a +c = c +t = t +t = t +g = g +g = g +a = a +g = g +a = a +c = c +t = t +g = g +a => - +c = a +- => t +a = a +t = t +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +g = g +g = g +c = c +c = c +c = c +g = g +a = a +g = g +a = a +c = c +g = g +g = g +t = t +a = a +g = g +a = a +a = a +t = t +t = t +g = g +t = t +t = t +t = t +g = g +g = g +g = g +a => - +c = a +- => t +a = a +a = a +g = g +a => - +- => a +a => - +c = a +c = c +- => t +c = c +- => a +a = t +c => - +c => - +c = c +- => t +a = a +c = c +- => a +a = c +c = c +c = c +- => g +c = c +- => g +a => - +t => - +a => - +t = a +t = t +a = a +t = t +g = a +a = a +- => t +t => - +- => t +t => - +c = t +a = a +a = a +c = c +t = t +c = c +t = t +- => a +a = t +c = c +t => - +a = a +t = t +a = a +g = g +t = t +a = a +a = a +a = a +t = t +g = g +- => c +c = c +c = c +c = c +c = c +c = c +t => - +t = t +c = c +c = c +g = g +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +g = g +g = g +a => - +- => a +- => g +a = c +t => - +a = a +a = a +a = a +g = g +a = a +g = g +a = a +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +c => - +c = c +- => t +- => t +t => - +- => t +- => g +t => - +a = t +a = g +a = c +c = c +t => - +- => t +t => - +c = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +t = t +t = t +t = t +g = g +g = g +c = c +t = t +g = g +g = g +a = a +c = c +c = c +t = t +a = a +a = a +t = t +g = g +a = a +g = g +g = g +c = c +c = c +a = a +g = g +a = a +c = c +t = t +t = t +g = g +a = a +g = g +t = t +c = c +t = t +a = a +g = g +t = t +g = g +c = c +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +a = a +c = c +t = t +t = t +g = g +t = t +t = t +t = t +g = g +c = c +t = t +t = t +g = g +g = g +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +a = a +t = t +c = c +g = g +c = c +c = c +g = g +a = a +c = c +g = g +t = t +g = g +g = g +t = t +a => - +- => a +a = g +c = c +c = c +c = c +t = t +a = a +c = c +a = a +g = g +g = g +a = a +c = c +t = t +a = a +g = g +g = g +t = t +t = t +g = g +t = t +a = a +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +a = a +t = t +t = t +t = t +g = g +g = g +g = g +a = a +t = t +a = g +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +c = c +c = c +t = t +g = g +a = a +g = g +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +t = t +g = g +a = a +a = a +c = c +a = a +a = a +g = g +g = g +c = c +a = a +a = a +c = c +c = c +a = a +g = g +t = t +t = t +c = c +a => - +- => a +a = g +t = t +a = a +a = a +c = c +c = c +t = t +a = a +g = g +t = t +t = t +a => - +- => a +a => - +c = a +- => t +- => t +t => - +c = t +- => a +a = c +t => - +a = a +c = c +c = c +a = a +t = t +c = c +a = g +a = a +g = g +c = c +g = g +a = a +a = a +a = a +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +- => t +t => - +c = t +c = c +a = a +g = g +- => a +a => - +- => a +a = c +t => - +c = c +g = g +t = t +- => a +- => c +a = a +c = c +a => - +t => - +g = a +a = a +c = c +g = a +a = a +g = g +c = c +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c => - +c = a +- => t +c = c +- => t +a => - +- => a +a => - +c => - +- => a +- => t +a => - +c = a +- => t +g = g +a = a +g = g +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +g = g +g = g +g = g +g = g +t = t +t = t +g = g +g = g +c = c +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +c = c +g = g +t = t +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +a = a +a = a +t = t +c = c +c = c +t = t +g = g +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +- => a +a => - +- => a +a = t +t = t +c => - +- => c +- => a +c = c +a => - +t => - +g = a +a = a +c = c +a = g +a = a +a = a +c = c +g = g +t = t +a = a +a = a +t = t +t = t +- => a +a = c +t => - +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +a = a +g = g +g = g +t = t +a = a +t = t +c = c +c = c +c = c +a = a +g = g +a = a +a = a +g = g +a = a +g = g +c = c +a = a +g = g +a = a +a = a +c = c +g => - +- => a +a => - +c = a +- => t +a = a +c = c +a = a +a = a +t = t +a = a +c = c +g = a +g = g +g = g +c = c +g = g +g = g +a = a +g = g +a = a +a = a +g = g +t = t +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +a = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +t = t +g = g +a = a +c = c +c = c +a => - +- => a +a = g +t = t +t = t +t = t +t = t +c = c +a = a +t = t +t = t +c = c +t = t +c = c +t = t +g = g +t = t +c = c +g = g +a = a +c = c +t = t +t = t +g = g +g = g +g = g +a = a +g = g +c = c +a = a +c = c +c = c +t = t +c = c +g = g +g = g +t = t +a = a +a = a +g = g +t = t +a = a +t = t +g = g +t => - +c = c +- => t +c = c +a = a +g = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +t = t +c = c +c = c +t = t +t = t +g = g +t = t +t = t +c = c +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +t = t +g = g +g = g +a = a +a = a +a = a +c = c +g = g +t = t +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +t = t +g = g +g = g +c = c +g = g +c = c +c = c +g = g +g = g +c = c +- => a +a => - +- => a +a = c +t => - +t => - +- => t +t => - +g => - +t = t +a = g +c = c +- => g +- => t +a = a +c = c +a = a +g = g +t = t +g = g +a = a +c = c +c = c +c = c +g = g +t = t +c = c +c = c +g = g +c = c +c = c +a = a +c = c +g = g +g = g +a = a +g = g +a = a +t = t +t = t +a = a +t = t +g = g +a = a +c = c +c = c +a = a +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +g = g +t = t +c = c +c = c +g = g +c = c +c = c +c = c +c = c +a = a +- => t +t => - +- => t +t => - +c = t +t = t +a = a +a = a +a = a +c = c +g = g +g = g +c = c +t = t +c = c +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +t = t +g = g +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = g +t = t +t = t +g = g +g = g +a = a +a = a +a = a +g = g +g = g +a => - +- => a +- => g +- => c +a => - +t => - +- => a +a = c +c = c +t => - +c = c +g = g +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => t +t = t +g = g +t = t +c = c +- => a +a = c +c = c +t => - +c = c +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +- => a +a = t +c = c +t => - +g = g +a = a +a = a +c = c +a = a +a = a +c = c +c = c +- => a +a => - +- => a +a = t +c = c +t => - +a = a +a = a +c = c +a = a +t = t +c = c +t = t +a = a +t = t +a => - +- => a +a => - +c = a +c = c +- => t +c = c +g = a +a = a +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +a = a +g = g +t = t +c = c +- => a +a => - +- => a +a => - +g = a +- => t +t => - +c = t +a => - +c = a +- => t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +- => c +a = c +t => - +t => - +a = a +g = g +a = a +c = c +t = t +g = a +c = c +g = a +t = t +c = c +c = c +g = g +a = a +a = a +t = t +a = a +c = c +g = g +c = c +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +- => c +c => - +a = c +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +g = g +t = t +a = a +a = a +t = t +c = c +a = g +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +t = t +c = c +c = c +c = c +a => - +c = a +- => t +t = t +a = a +t = t +c = c +t = t +a = a +a = a +c = c +c = c +a = a +g = g +g = g +t = t +t = t +a = a +a = a +c = c +c = c +c = c +a = a +c = c +- => a +a = t +c = c +t => - +c = c +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c = c +- => a +a => - +- => a +- => c +a => - +t => - +- => a +a = c +t => - +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +t = t +a => - +- => a +a => - +- => a +- => t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +t = a +- => c +c => - +- => c +c => - +a => - +t => - +c = c +a = a +c => - +- => c +- => t +c = a +- => t +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +a = a +a = a +c = c +t = t +t = t +g = g +c = c +g = g +a = a +a = a +a = a +g = g +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +a = a +a = a +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +a = a +c = c +c = c +c = c +a => - +c = a +- => t +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +a = a +- => g +- => t +g = g +a => - +g => - +- => a +a => - +g = a +a = a +t = t +g = g +t = t +t = t +c = c +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +c = c +a = a +g = g +g = g +t = t +t = t +t = t +c = c +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +g = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +g = g +a = a +t = t +t = t +g = g +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +t = t +g = g +t = c +t => - +c = c +c = c +- => t +c = c +c = c +t = t +- => a +a => - +- => a +a => - +- => a +a = c +t => - +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +a = a +a = a +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +g = g +- => a +a = c +t => - +a = a +g = g +a = a +a = a +c = c +c = c +t = t +g = g +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +t = t +a = a +g = g +t = t +g = g +g = g +t = t +c = c +c = c +g = g +a = a +g = g +c = c +c = c +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +a = a +g = g +c = c +g = g +g = g +a = a +g = g +a = a +t = t +g = g +g = g +a = a +t = t +- => c +a = c +t => - +t = t +t = t +a = a +g = g +a = a +a = a +g = g +g = g +g = g +t = t +g = g +a = a +t = t +a = a +a = a +a = a +a = a +c = c +g = g +a = a +t = t +g = g +t = t +a = a +t = t +c = c +t = t +g = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +g = g +a = a +g = g +c = c +a = a +g = g +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +a => - +- => a +a => - +- => a +a = g +c = c +c = c +g = a +a = a +g = g +a = a +g => - +- => g +g = a +a = a +a = a +c = c +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +g = g +t = t +c = c +t = t +t = t +c = c +c = c +a = a +t = t +a = g +t = t +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +g = g +a => - +t => - +- => a +- => c +a => - +t => - +- => a +- => c +a => - +- => a +- => g +a = c +t => - +a = a +c = c +g = g +a = a +a = a +c = c +c = c +a = a +a = a +t = t +a = a +t => - +- => t +t = a +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +g = g +a = a +a = a +a = a +g = g +g = g +g = g +a = a +a = a +c = c +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t = t +g = a +t = t +a = a +g = g +a = a +t = t +a = a +a = a +c = c +g = g +c = c +g = g +g = g +t => - +c => - +c = c +- => t +- => a +a => - +- => a +a => - +- => a +a = t +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a = a +g = g +c = c +g = g +g = g +a = a +t = t +a = a +t = t +g = g +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +g = a +a = a +- => t +t => - +- => t +t => - +c = t +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +t = t +c = a +c = c +- => a +a = c +c = c +c = c +t => - +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a => - +t = a +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +c = c +c = c +a = a +g = g +t = t +t = t +c = c +- => a +a => - +- => a +a = c +t => - +t = t +c = c +a = a +a = a +c = c +t = t +t = t +t = t +a = a +g = g +a = a +g = g +g = g +a = a +t = t +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +a = a +a = a +t = t +t = t +c = c +g = g +a = a +t = t +g = g +t = t +g = g +a = a +g = g +a = a +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g = g +g = g +t = t +t = t +c = c +a = a +c = c +g = g +t = t +g = g +a = a +a = a +a = a +g = g +g = g +t = t +c = c +a = a +t = t +g = g +t = t +g = g +a = a +a = a +t = t +g = g +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +c = c +t = t +g = g +a => - +- => a +a => - +c = a +- => t +a = a +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +a = a +t = t +a = a +t => - +- => t +t = c +t = t +a = a +c = c +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +g = g +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +t = t +g = g +c = c +g = g +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +g = g +g = g +g = g +a = a +c = c +a = a +a = a +g = g +t = t +t = t +g = g +a = a +t = t +t = t +c = c +g = g +t = t +g = g +a = a +g = g +a = a +t = t +g = g +a = a +g = g +- => a +a => - +g = a +t = t +c = c +a = a +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +t = t +t = t +t = t +a = a +g = g +g = g +t = t +g = g +g = g +a = a +a = a +g = g +c = a +t = t +g = g +g = g +g = g +a = a +a = a +t = t +c = c +c = c +a = a +a = a +a = a +g = g +t = t +a = a +t = t +t = t +c = c +c = c +c = c +g = a +a = a +t = t +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +a = a +g = g +a => - +c => - +c = a +c = c +- => t +- => t +c = c +a = a +t = t +c = c +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +g = g +a = a +a = a +c = c +g = g +g = g +t = t +g = g +g = g +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +t = t +g = g +g = g +a = a +a = a +c = c +t = t +g = g +g = g +a = a +t = t +t = t +g = g +c = c +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +a = a +c = c +c = c +c = c +a = a +t = t +g = g +a = a +a = a +c = c +g = a +c = c +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +c = c +- => a +a = c +t => - +c = c +g = g +g = g +a = a +a = a +g = g +t = t +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +a = a +c = c +g = g +a = a +c = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +a = a +t = t +a = a +t = t +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +c = c +g = g +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +a = a +g = g +c = c +t = t +a = a +a = a +t = t +g = g +t = t +c = c +t = t +t = t +g = g +t = t +c = c +c = c +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +a = a +c = c +t = t +t = t +c = c +g = g +t = t +g = g +g = g +c = c +g = g +g = g +t = t +c = c +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +g = g +c = c +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +a = a +c = c +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c = c +a => - +- => a +a = g +a = a +a = a +c = c +a => - +- => a +a => - +c = a +- => t +t = t +a = a +a = a +a = a +t = t +t = t +g = g +a = a +c = c +a = a +a = a +c = c +- => t +t => - +c = t +c = c +a = a +a = a +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t => - +- => t +t = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +t = t +a = a +g = g +a = a +t = t +t = t +a = a +g = g +g = g +g = g +t = t +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +- => g +g => - +a = g +a = a +t = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +c = c +a = a +a = a +g = g +t = t +c = c +t = t +a = a +t = t +a => - +c = a +- => t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +g = g +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +t = t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c => - +- => a +- => t +a => - +c = a +- => t +a = a +g = g +t => - +- => t +t = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +t = t +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = a +c = c +- => t +t => - +c = t +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +a = a +a = a +c => - +c => - +c => - +c => - +t => - +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +- => t +c = a +a = a +c = c +t = t +a = a +g = g +a = a +t = t +t = t +t = t +t = t +g = g +t = t +g = g +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +g = g +g = g +c => - +c = c +- => t +g = a +a = a +a = a +g = g +a = a +t = t +- => a +a => - +- => a +a = c +c = c +t => - +g = g +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +g = g +g = g +c = c +g = g +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +t = t +g = g +c = c +t = t +t = t +t = t +a = a +a = a +c = c +t = t +g = g +g = g +t = t +t = t +g = g +g = g +g = g +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t = t +- => a +a = c +t => - +c = c +g = g +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +t = t +t = t +c = c +c = c +g => - +- => a +a => - +- => a +a = t +t = t +a = a +g = g +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a => - +a => - +- => a +- => g +a = g +g = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +t = t +c = c +g = g +c = c +a => - +a => - +a => - +a => - +c => - +t => - +c => - +g => - +a => - +c => - +g => - +t => - +a => - +a => - +c => - +a => - +a => - +c => - +g => - +c => - +a => - +c => - +g => - +a => - +a => - +c => - +t => - +a => - +c => - +g => - +a => - +a => - +c => - +a => - +g => - +g => - +g => - +a => - +a => - +a => - +a => - +c => - +t => - +a => - +g => - +c => - +a => - +c => - +c => - +a => - +c => - +t => - +a => - +a => - +a => - +t => - +c => - +t => - +c => - +c => - +c => - +a => - +c => - +t => - +t => - +g => - +a => - +g => - +t => - +g => - +a => - +c => - +c => - +t => - +t => - +a => - +c => - +c => - +c => - +c => - +t => - +a => - +c => - +g => - +a => - +a => - +c => - +g => - +t => - +a => - +c => - +a => - +c => - +a => - +t => - +t => - +a => - +g => - +a => - +a => - +t => - +g => - +a => - +t => - +t => - +c => - +t => - +c => - +g => - +a => - +t => - +t => - +a => - +t => - +c => - +t => - +t => - +t => - +c => - +c => - +g => - +a => - +t => - +c => - +c => - +t => - +g => - +g => - +t => - +t => - +t => - +g => - +g => - +a => - +t => - +a => - +a => - +a => - +c => - +a => - +a => - +a => - +t => - +a => - +c => - +c => - +c => - +c => - +a => - +c => - +t => - +a => - +c => - +a => - +c => - +t => - +c => - +g => - +g => - +g => - +c => - +a => - +g => - +a => - +t => - +t => - +t => - +g => - +t => - +a => - +a => - +a => - +a => - +g => - +t => - +c => - +a => - +c => - +a => - +t => - +a => - +a => - +c => - +g => - +a => - +a => - +a => - +c => - +t => - +c => - +c => - +t => - +c => - +c => - +a => - +t => - +t => - +c => - +g => - +a => - +t => - +g => - +t => - +a => - +t => - +t => - +t => - +g => - +a => - +c => - +a => - +c => - +c => - +c => - +c => - +c => - +c => - +a => - +c => - +a => - +g => - +a => - +a => - +a => - +c => - +c => - +c => - +c => - +a => - +a => - +a => - +c = a +c = a +a = a +a = a +c => - +c => - +g => - +a => - +g => - +c => - +c => - +c => - +c => - +a => - +t => - +a => - +c => - +c => - +c => - +c => - +a => - +a => - +t => - +c => - +g => - +t => - +c => - +g => - +c => - +c => - +a => - +c => - +a => - +c => - +a => - +c => - +g => - +a => - +c => - +c => - +c => - +a => - +t => - +c => - +c => - +t => - +a => - +c => - +c => - +c => - +g => - +c => - +c => - +c => - +c => - +c => - +a => - +a => - +c => - +a => - +t => - +a => - +a => - +c => - +t => - +a => - +c => - +t => - +c => - +t => - +a => - +a => - +t => - +c => - +a => - +t => - +c => - +a => - +t => - +a => - +c => - +c => - +c => - +t => - +c => - +a => - +c => - +c => - +c => - +t => - +c => - +c => - +c => - +c => - +t => - +t => - +t => - +t => - +a => - +t => - +t => - +a => - +c => - +a => - +c => - +a => - +a => - +t => - +c => - +a => - +a => - +t => - +c => - +c => - +c => - +c => - +c => - +a => - +c => - +t => - +g => - +a => - +c => - +a => - +a => - +t => - +t => - +t => - +t => - +c => - +a => - +c => - +a => - +t => - +a = c +t => - +g => - +g = t +c = c +g => - +g = g +t => - +t => - +t => - +t = a +c => - +t => - +a = c +t = g +t => - +t => - +t => - +a = t +a => - +- => a +a => - +c => - +t => - +t => - +t = a +a = a +g = g +a = a +c => - +c => - +a => - +a => - +t => - +c => - +c => - +g => - +a => - +c => - +c => - +a => - +c => - +a => - +a => - +t => - +c => - +c => - +c => - +a => - +a = c +g => - +a => - +a => - +a = g +c = c +a => - +a => - +a => - +a => - +a => - +c => - +c => - +c => - +c => - +a => - +a => - +a => - +c => - +c => - +g => - +t => - +c => - +t => - +c => - +t => - +a => - +c => - +a => - +c => - +a => - +- => a +- => t +- => g +a => - +- => a +a => - +t => - +t = a +c = c +- => t +a = a +c = c +g = g +- => a +a => - +c => - +a = a +c => - +c => - +g => - +g => - +t => - +c => - +t => - +t => - +c => - +g => - +c => - +c => - +c => - +c => - +c => - +t => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +a => - +a => - +a => - +c => - +c => - +a => - +c => - +c => - +t => - +t => - +t => - +a = c +a => - +a => - +a => - +- => a +a => - +- => a +- => g +- => g +a => - +c => - +- => a +a => - +- => a +a => - +t = a +a = a +c = c +t = t +a => - +c => - +a = a +g => - +a = g +c => - +a => - +c => - +a => - +c => - +c => - +t => - +t => - +t => - +c => - +g => - +t => - +c => - +g => - +a => - +c => - +a => - +c => - +g => - +t => - +c => - +t => - +g => - +t => - +a => - +a = c +a => - +t = a +- => c +c => - +a => - +g => - +c = c +a => - +a => - +t => - +a => - +a => - +t => - +a => - +a => - +t => - +a = a +c = c +- => t +- => a +a => - +g => - +g => - +- => a +a => - +t => - +g => - +t = a +t = t +c = c +g => - +t = t +- => c +a = c +a = c +t => - +t => - +a => - +- => a +a = c +t => - +t = t +a => - +- => a +a => - +t => - +t = a +g => - +t => - +g = g +t = t +g = g +a => - +- => a +- => c +- => c +- => c +a = c +g = g +t => - +- => c +- => c +- => c +c => - +a = c +t => - +- => t +t = a +c = c +- => g +a => - +t = a +a = a +c = c +g = g +- => t +a => - +g = a +c = c +g => - +g => - +a = a +c = c +a = a +t => - +- => t +t => - +a => - +t = t +a => - +a => - +c => - +t => - +t = a +- => g +g => - +c = g +a = a +t => - +c = t +c = g +- => a +- => t +a = t +c => - +g => - +- => c +- => t +c = c +t => - +- => a +a => - +t => - +t => - +t => - +a = a +t = t +t = t +a => - +c = a +- => t +c = c +- => t +t => - +- => t +t => - +a => - +c => - +c = t +c = c +c = c +- => g +g = a +t = t +c = c +c = c +t => - +t => - +a = t +- => g +g = g +t => - +t => - +- => t +t => - +c = t +t = t +- => g +g => - +t => - +c = g +t => - +a = a +t => - +g = t +a => - +c => - +g => - +c => - +t => - +g => - +t => - +- => a +- => a +a => - +t => - +c => - +c = a +c = c +- => a +- => a +a => - +c => - +g => - +- => a +- => t +a => - +g => - +g = a +c => - +c => - +g => - +a => - +g => - +g => - +t => - +- => c +c => - +g => - +- => c +c => - +a => - +g => - +a = c +g => - +c = c +g => - +t => - +t => - +a = a +c => - +g => - +a = c +t = t +a => - +g => - +c => - +g = a +c = c +a = a +c = c +g => - +t => - +g => - +t => - +g => - +g = t +g = c +g = g +g = g +g = g +t => - +c = c +t = a +g = g +c = c +t => - +t => - +t => - +- => t +t => - +a => - +- => t +t => - +g = t +g = g +t => - +t => - +t = t +a => - +c => - +g => - +t => - +- => a +- => a +a => - +c => - +c => - +t => - +c => - +t => - +c => - +g => - +- => a +a => - +g = a +g => - +g = g +- => t +c = c +a = a +- => c +c = a +t = t +c => - +- => a +a => - +c = a +c = c +- => g +a => - +- => a +a => - +t => - +t => - +- => a +a => - +t = a +- => c +- => c +- => c +c => - +- => c +- => t +c => - +- => c +c => - +a => - +c = c +t => - +- => a +a = t +t = t +c = c +t => - +g => - +g = g +a => - +c => - +a => - +c = a +- => t +- => g +t = t +- => a +- => t +- => t +a = t +g = g diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt_vs_protypicalHuman.txt.txt b/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt_vs_protypicalHuman.txt.txt new file mode 100644 index 0000000..78b5654 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/neanderthal.txt_vs_protypicalHuman.txt.txt @@ -0,0 +1,16749 @@ +Score: 81380 +g = g +t = t +a = a +g = g +c = c +a = a +c = c +t = t +a = a +c = c +a = a +g = g +a = a +a = a +t = t +a = a +a = a +a = a +t = t +t = t +c = c +c = c +c = c +c = c +t = t +t = t +g = g +c = c +a = a +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +a = a +t = t +c = c +c = c +g = g +a = a +a = a +a = a +t = t +a => - +c = a +c = c +- => t +g = g +g = g +g = g +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +t = t +t = t +g = g +g = g +t = t +c = c +t = t +a = a +c = c +a = a +g = g +c = c +c = c +t = t +a = a +t = t +g = g +t = t +c = c +a = a +a = a +g = g +t = t +g = g +a = a +a = a +a = a +t = t +c = c +g = g +a = a +t = t +g = g +g = g +g = g +g = g +g = g +t = t +t = t +c = c +a = a +c = c +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +g = g +g = g +c = c +c = c +t = t +c = c +g = g +c = c +t = t +c = c +c = c +t = t +c = c +t = t +c = c +a = a +t = t +c = c +g = g +t = t +g = g +a = a +g = g +a = a +a = a +c = c +a = a +c = c +g = g +c = c +c = c +c = c +t = t +a = a +t = t +a = a +a = a +c = c +t = t +a = a +a = a +a = a +g = g +t = t +g = g +c = c +c = c +t = t +c = c +c = c +t = t +a = a +c = c +c = c +- => a +a = c +c = c +t => - +a = a +g = g +t = t +t = t +c = c +c = c +c = c +t = t +g = g +g = g +g = g +g = g +a = a +t = t +a = a +g = g +a = a +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +g = g +g = g +t = t +a => - +c = a +c = c +c = c +c = c +c = c +- => t +g = g +c = c +t = t +c = c +t = t +t = t +c = c +c = c +c = c +t = t +a = a +a = a +a = a +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +a = a +c = c +a = a +c = c +g = g +a = a +t = t +a = a +c = c +a = a +t = t +g = g +c = c +c = c +a = a +t = t +t = t +t = t +- => a +a = c +c = c +t => - +g = g +a = a +a = a +a = a +t = t +a = a +c = c +a => - +c = a +- => t +g = g +a = a +t = t +a = a +c = c +a = a +t = t +g = g +a = a +c = c +- => a +a => - +g = a +t = t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +- => a +a => - +- => a +a = c +c = c +t => - +a = a +t = t +a = a +g = g +g = g +a = a +t = t +c = c +a = a +c = c +c = c +c = c +a = a +c => - +a = c +t => - +- => t +t = c +- => c +c => - +- => c +c => - +- => c +- => a +c => - +g => - +- => c +c => - +a = c +g = g +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +a = a +c = c +a = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +c = c +- => a +a = c +t => - +a = a +c = c +t = t +g = a +t = t +c = c +a = a +a = a +c = c +t => - +- => t +t = c +c = c +c = c +a = a +a = a +c = c +t = t +a = a +a = a +c = c +g = g +a = a +c = c +a => - +c = a +- => t +g = g +a = a +a = a +c = c +g = g +a = a +a = a +c = c +a = a +t = t +t = t +c = c +g = g +t = t +a => - +c = a +c => - +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +- => t +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +- => a +c = a +a = a +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +t = t +- => a +a => - +- => a +a = c +t => - +c = c +c = c +a = a +a = a +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +g = g +a => - +c = a +- => t +g = g +t = t +c = c +c = c +- => a +a = c +t => - +c = c +a = a +g = g +t = t +t = t +c = c +a = a +t => - +- => t +t = a +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +- => g +g => - +a = g +c = c +a = a +t = t +g = g +t = t +t = t +a = a +t = t +a = a +a = a +g = g +t = t +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +t = t +c = c +a = a +t = t +t = t +a = a +c = c +a = a +t = t +g = g +c = c +t = t +t = t +t = t +a = a +t = t +g = g +t = t +a = a +t = t +c = c +g = g +c = c +c = c +a = a +a = a +c = c +g = a +a = a +c = c +t = t +a = a +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +g = g +t = t +t = t +a = a +t = t +g = g +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +t = t +g = g +g = g +g = g +t = t +t = t +t = t +a = a +g = g +a = a +c = c +g = g +- => a +a => - +g = a +g = g +g = g +g = g +g = g +t = t +a = a +c = c +t = t +t = t +t = t +c = c +t = t +t = t +g = g +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +a = a +a = a +t = t +t = t +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a = a +t = t +t = t +a = a +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +a = a +t = t +t = t +t = t +c = c +t = t +g = g +a = a +a = a +a = a +a = a +a = a +g = g +a = a +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +a = a +g = g +g = g +a = a +a = a +c = c +c = c +t = t +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +a = a +a = a +g = g +t = t +a = a +g = g +a = a +g = g +g = g +c = c +c = c +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +a = a +t = t +c = c +a = a +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +t = t +c = c +c = c +t = t +g = g +t = t +c = c +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +g = g +t = t +t = t +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a => - +c = a +- => t +c = c +a = a +a = a +c = c +c = c +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +t = t +a = a +c = c +g = g +a = a +t = t +g = g +a = a +a = a +c = c +a = a +g = g +g = g +t = t +t = t +a = a +c = c +t = t +- => a +a = c +c = c +t => - +a = a +t = t +t = t +t = t +t = t +c = c +c = c +c = c +a = a +t = t +c = c +g = g +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a = a +a = a +c = c +a = a +g = g +g = g +a = a +g = g +g = g +c = c +t = t +a = a +a = a +g = g +t = t +c = c +c = c +a = a +a = a +t = t +c = c +t = t +t = t +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +g = g +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +a = a +g = g +t = t +t = t +a = a +t = t +t = t +t = t +c = c +a = a +c = c +t = t +a = a +a = a +c = c +c = c +g = g +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +g = g +c = c +t = t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +t = t +g = a +t = t +- => a +a = c +c = c +t => - +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +t = t +a = a +a = a +t = t +a = a +a = a +c = c +g => - +- => g +g = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +c = c +c = c +t = t +a = a +c = c +c = c +t = t +a = a +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c = c +c = c +c = c +g = g +t = t +t = t +c = c +c = c +t = t +g = g +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +t = t +g = g +c = c +c = c +t = t +a = a +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +c = c +g = g +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +c = c +c = c +g = g +a = a +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +a = a +c = c +a = a +a = a +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +a = a +t = t +t = t +a = a +a = a +c = c +a = a +g = g +a = a +c = c +c = c +c = c +a = a +g = g +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +c = c +a = a +c = c +t = t +c = c +- => t +t => - +c = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +t = t +t = t +a = a +c = c +a = a +g = g +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +c = c +t = t +t = t +c = c +c = c +t = t +t = t +c = c +t = t +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +t = t +c = c +g = g +g = g +c = c +t = t +c = c +c = c +c = c +g = g +c = c +a = a +g = g +a = a +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +t = t +c = c +c = c +a = a +c = c +t = t +a = a +a = a +a = a +a = a +t = t +a = a +g = g +c = c +c = c +t = t +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +t = t +a = a +- => g +g => - +- => g +g => - +a = g +c = c +a = a +a = a +a = a +g = g +c = c +a = a +c = c +g = g +t = t +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +c = c +g = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +g = g +t = t +t = t +a = a +t = t +t = t +a = a +c = c +t = t +t = t +c = c +c = c +c = c +a = g +t = t +t = t +c = c +t = t +- => a +a = c +t => - +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +c = c +c = c +a = a +t = t +t = t +t = t +c = c +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +t = t +g = g +a = a +c = c +a = a +g = g +a = a +t = t +g = g +a = a +c = c +t = t +c = c +a = a +t = t +c = c +g = g +g = g +a = a +g = g +g = g +a = a +g = g +t = t +c = c +t = t +a = a +a = a +g = g +t = t +g = a +a = a +c = c +t = t +t = t +g => - +- => g +g = a +t = t +c = c +c = c +a = a +g = g +a = a +c = c +a = a +g = g +g = g +g = g +t = t +t = t +a = a +c = c +a = a +t = t +a = a +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +t = t +a = a +t = t +c = c +a = a +- => t +t => - +c = t +c = c +a = a +a = a +a = a +c = c +a = a +t = t +t = t +a = a +a = a +t = t +g = g +a = a +c = c +a = a +c = c +c = c +g = g +g = g +g = g +g = g +a = a +g = g +t = t +c = c +t = t +t = t +a = a +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +g = g +g = g +a = a +g = g +t = t +a = g +c = c +c = c +c = c +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +c = c +a = a +a = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +a = a +a = a +c = c +g = g +t = t +t = t +c = c +g = g +t = t +c = c +c = c +t = t +c = c +c = c +t = t +a = a +t = t +t = t +a = a +c = c +g = g +g = g +c = c +t = t +a = a +c = c +a = a +a = a +a = a +g = g +t = t +c = c +c = c +a => - +- => a +a => - +- => a +a => - +- => a +a = g +a = a +c = c +t = t +c = c +a = a +t = t +c = c +t = t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +a = a +g = g +g = g +c = c +a = a +t = t +t = t +a = a +t = t +a = a +t = t +c = c +c = c +g = g +g = g +a = a +g = g +c = c +a = g +g = g +g = g +c = c +t = t +a = a +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +t = t +c = c +t = t +c = c +c = c +g = g +t = t +c = c +t = t +a = a +t = t +t = t +t = t +c = c +t = t +t = t +a = a +t = t +a = a +a = a +c = c +t = t +c = c +c = c +g = g +c = c +g = g +g = g +t = t +a = a +a = a +c = c +c = c +g = g +c = c +a = a +c = c +t = t +t = t +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +a = a +c = c +t = t +a = a +a = a +g = g +t = t +c = c +g = g +g = g +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +g = g +c = c +a = a +g = g +a = a +g = g +c = c +t = t +c = c +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +g = g +c = c +t = t +a = a +a = a +c = c +t = t +a = a +c = c +t = t +t = t +t = t +t = t +c = c +c = c +g = g +c = c +c = c +- => a +a => - +g = a +c = c +t = t +c = c +c = c +g = g +c = c +a = a +g = g +a = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +g = g +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +c = c +a = a +g = g +g = g +a = a +c = c +a = a +c = c +c = c +a = a +c = c +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +c = c +t = t +a = a +g = g +t = t +c = c +c = c +g = g +t = t +c = c +c = c +g = g +c = c +g = g +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +g = g +t = t +a = a +c = c +g = g +c = c +c = c +t = t +c = c +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +a = a +g = g +c = c +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +a = a +a = a +a = a +a = a +t = t +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +t => - +- => t +t = c +a = a +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +a = a +a = a +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t = t +t = t +t = t +a = a +t = t +g = g +t = t +t = t +g = g +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +g = g +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +t = t +c = c +a = a +g = g +g = g +c = c +a = a +c = c +g = g +c = c +t = t +c = c +t = t +t = t +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +a = a +t = t +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +a = a +a = a +g = g +a = a +c = c +a = a +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +t = t +c = c +g = g +g = g +a = a +a = a +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a => - +- => a +a = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +a = a +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +a = a +c = c +t = t +t = t +a = a +a = a +a = a +a = a +c = c +c = c +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +t = t +a = a +t = t +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +t = t +a = a +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +a = a +t = t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +g = g +a = a +t = t +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +g = g +g = g +a = a +c = c +t = t +c = c +c = c +g = g +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +a = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +a = a +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +g = g +a = a +a = a +a = a +t = t +t = t +a = a +t = t +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +t = t +c = c +g = g +a = a +c = c +t = t +t = t +a = a +t = t +t = t +- => a +a => - +g = a +a = a +t = t +a = a +c = c +t = t +t = t +c = c +c = c +t = t +c = c +t = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +c = c +t = t +a = a +a = a +g = g +c = c +c = c +c = c +t = t +c = c +c = c +t = t +a = a +g = g +g = g +a = a +t = t +a = a +a = a +c = c +c = c +a = a +c = c +g = g +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +c = c +a = a +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a = a +a = a +c = c +t = t +t = t +g = g +t = t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +t = t +a => - +c = a +- => t +a = a +a = a +c = c +a = a +t = t +t = t +a = a +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +g = g +a = a +g = g +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +t = t +- => a +a = c +t => - +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +a = a +a = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +c = c +a = a +c = c +c = c +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +t = t +t = t +c = c +t = t +c = c +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t = t +t = t +t = t +c = c +a = a +a = a +a = a +t = t +t = t +a = a +a = a +t = t +a = a +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a => - +c = a +c = c +- => t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +g = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t = t +t = t +t = t +a = a +a = a +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +c = c +g = g +a = a +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +g = g +t = t +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +t = t +c = c +c = c +a = a +a = a +a = a +a = a +c = c +c = c +g = g +a = a +g = g +c = c +a = a +t = t +t = t +c = c +t = t +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +a = a +a = a +c = c +a = a +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +c = c +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +c = c +t = t +t = t +g = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +c = c +t = t +t = t +t = t +a = a +t = t +t = t +t = t +t = t +a = a +c = c +a = a +c = c +a = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = t +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +a = a +a = a +t = t +c = c +t = t +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +c = c +t = t +t = t +t = t +c = c +a = a +c = c +t = t +g = g +t = t +c = c +g = g +c = c +t = t +c = c +c = c +c = c +g = g +a = a +c = c +g = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +t = t +c = c +c = c +c = c +c = c +c = c +t = t +a = a +c = c +g = g +c = c +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +t = t +c = c +t = t +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = c +t = t +t = t +a = a +t = t +c = c +c = c +g = g +a = a +a = a +g = g +g = g +c = c +c = c +g = g +a = a +c = c +- => g +g => - +a = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +- => a +a = c +t => - +c = c +c = c +c = c +a = a +a = a +t = t +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +t = t +t = t +a = a +c = c +a = a +a = a +t = t +c = c +a => - +c = a +- => t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +t = t +c = c +g = g +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +g = g +g = g +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +t = t +t = t +c = c +t = t +t = t +a = a +a = a +t = t +a = a +a = a +g = g +c = c +t = t +c = c +a = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +c = c +g = g +c = c +g = g +a = a +a = a +c = c +a = a +g = g +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +t = t +c = c +a = a +t = t +t = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +c = c +a = a +c = c +a = a +t = t +a = a +c = c +t = t +a = a +t = t +a = a +c = c +a = a +a = a +a = a +c = c +g = g +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +t = t +t = t +t = t +g = g +g = g +a = a +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +c = c +c = c +a = a +t = t +a = a +a = a +g = g +g = g +a = a +c = c +g = g +a = a +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +g = g +g = g +t = t +t = t +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +t = t +c = c +c = c +a = a +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +g = g +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c = c +t = t +t = t +a = a +t = t +a = a +g = g +a = a +a = a +c = c +a = a +a = a +g = g +t = t +a = a +a = a +c = c +a = a +a = a +t = t +t = t +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +g = g +g = g +g = g +c = c +c = c +t = t +c = c +g = g +t = t +a = g +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +t = t +t = t +c = c +c = c +g = g +c = c +a = a +c = c +c = c +c = c +a = a +t = t +g = g +t = t +c = c +t = t +a = a +c = c +a = a +c = c +g = g +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a = a +a = a +c = c +c = c +a = a +a = a +c = c +t = t +a = a +c = c +g = g +g = g +c = c +t = t +a = a +a = a +c = c +a = a +t = t +t = t +g = g +a = a +t = t +g = a +a = a +t = t +a = a +c = c +t = t +c = c +g = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +c = c +t = t +g = g +a = a +a = a +c = c +t = t +t = t +c = c +a = a +c = c +c = c +t = t +c = c +t = t +t = t +c = c +c = c +g = g +a = a +t = t +g = g +c = c +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +t = t +a = a +c = c +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +a = a +c = c +a = a +t = t +t = t +c = c +c = c +c = c +g = g +c = c +g = g +t = t +c = c +t = t +g = g +a = a +c = c +g = g +a = a +c = c +g = g +c = c +t = t +t = t +a = g +t = t +c = c +t = t +c = c +a = a +c = c +c = c +a = a +c = c +t = t +a = a +t = t +c = c +g = g +c = c +g = g +g = g +a = a +t = t +t = t +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +a = a +a = a +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +t = t +c = c +g = g +c = c +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +g = a +a = a +g = g +g = g +a = a +c = c +g = g +a = a +t = t +g = g +c = t +t = t +g = g +a = a +t = t +a = a +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +g = g +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +c = c +g = g +a = a +c = c +t = t +c = c +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c = c +t = t +g = g +g = g +a = a +t = t +t = t +a = a +a = a +c = c +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +c = c +t = t +a = a +a = a +t = t +c = c +g = g +c = c +a = a +a = a +a = a +t = t +c = c +t = t +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +a = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +c = c +g = g +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +c = c +c = c +t = t +a = a +c = c +t = t +t = t +t = t +g = g +g = g +c = c +t = t +a = a +t = t +a = a +g = g +c = c +g = g +g = g +c = c +t = t +a => - +c = a +- => t +g = g +c = c +c = c +a = a +a = a +c = c +a = a +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +g = g +a = a +a = a +c = c +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +g = g +t = t +a = a +g = g +a = a +c = c +g = g +a = a +g = g +c = c +c = c +c = c +g = g +c = c +a = a +t = t +a = a +g = g +t = t +a = a +g = g +t = t +t = t +g = g +a = a +c = c +t = t +a = a +c = c +t = t +c = c +g = g +t = t +t = t +c = c +t = t +t = t +c = c +c = c +t = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +g = g +g = g +a = a +t = t +g = g +c = c +g = g +g = g +g = g +a = a +g = g +a = a +g = g +t = t +c = c +g = g +g = g +c = c +t = t +a = a +c = c +t = t +t = t +g = g +t = t +c = c +a = a +a = a +c = c +c = c +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +t = t +t = t +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +a = a +t = t +t = t +a = a +a = a +t = t +c = c +c = c +t => - +- => t +t => - +- => t +t = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +t = t +t = t +c = c +t = t +t = t +g = g +a = a +c = c +t = t +a = a +a = a +t = t +t = t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +g = g +a = a +c = c +t = t +c = c +a = a +a = a +a = a +t = t +a = a +t = t +a = a +t = t +a = a +g = g +t = t +g = g +t = t +c = c +a = a +c = c +t = t +c = c +t = t +t = t +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +g = g +g = g +t = t +a = a +c = c +a = a +t = t +t = t +g = g +c = c +t = t +t = t +g = g +t = t +t = t +a = a +c = c +g = g +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +a = a +g = g +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +t = t +c = c +g = g +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +g = g +a = a +g = g +t = t +c = c +a = a +c = c +a = a +g = g +t = t +c = c +a = a +a = a +g = g +c = c +t = t +c = c +t = t +a = a +t = t +t = t +a = a +t = t +t = t +g = g +a = a +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +g = g +t = t +g = g +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +t = t +c = c +t = t +c = c +t = t +g = g +- => a +a = c +t => - +t = t +a = a +t = t +t = t +a = a +t = t +t = t +t = t +c = c +c = c +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = c +t = t +g = g +t = t +t = t +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +t = t +g = g +t = t +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +a = a +t = t +t = t +a = g +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +a = a +t = t +c = c +c = c +c = c +t = t +t = t +c = c +a = a +g = g +t = t +c = c +c = c +c = c +- => a +a => - +g = a +t = t +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +t = t +a = a +t = t +c = c +a => - +c = a +- => t +c = c +a = a +c = c +a = a +c = c +g = g +t = t +a = a +c = c +c = c +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +a = a +c = c +g = g +t = t +g = g +g = g +t = t +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +c = c +g = g +g = g +a = a +t = t +t = t +c = c +t = t +g = g +g = g +t = t +t = t +a = a +c = c +c = c +t = t +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +a = a +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +t = t +t = t +t = t +c = c +g = g +g = g +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +t = t +g = g +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +t = t +c = c +g = g +t = t +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +c = c +t = t +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +g = g +c = c +a => - +c = a +- => t +t = t +c = c +g = g +g = g +a = a +g = g +a = a +c = c +a = a +a = a +c = c +a = a +g = g +t = t +c = c +t = t +a = a +a = a +g = g +t = t +g = g +t = t +t = t +a = a +g = g +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a = a +t = t +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +t = t +c = c +c = c +t = t +t = t +t = t +t = t +g = g +g = g +g = g +c = c +c = c +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +a = a +c = c +a = a +t = t +a = a +c = c +t = t +t = t +a = g +t = t +a = a +c = c +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +a = a +a = a +g = g +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +t = t +t = t +a = a +c = c +a = a +c = c +c = c +a = a +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +g = g +g = g +t = t +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +c = c +a = a +t = t +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = a +g = g +g = g +a = a +c = c +a = a +t = t +t = t +c = c +a = a +t = t +c = c +c = c +t = t +c = c +t = t +c = c +a = a +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +t = t +a = a +g = g +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = g +c = c +a = a +c = c +c = c +a = a +a = a +t = t +g = g +a = a +t = t +c = c +g = g +t = t +g = g +t = t +c = c +t = t +c = c +t = t +c = c +a = a +a = a +g = g +a = a +g = g +g = g +g = g +t = t +c = c +a = a +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +g = g +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +g = g +a = a +t = t +c = c +t = t +t = t +c = c +a = a +g = g +t = t +a = a +g = g +t = t +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +t = t +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +t = t +c = c +t = t +c = c +t = t +c = c +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +g = g +c = c +t = t +g = g +a = a +c = c +a => - +c = a +c = c +- => t +c = c +a = a +c = c +g = g +c = c +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +t = t +c = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +c = c +a = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +g = g +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +c = c +t = t +t = t +a = a +c = c +t = t +g = g +a = a +c = c +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +t = t +t = t +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +c = c +t = t +c = c +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +a = a +a = a +t = t +g = g +a = a +t = t +g = g +c = c +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +c = c +a = a +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +c = c +t = t +t = t +c = c +t => - +- => t +t = c +a = a +t = t +a = a +c = c +g = g +t = t +t = t +a = a +c = c +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +c = c +a = a +a = a +a = a +c = c +a = a +g = g +c = c +g = a +t = t +c = c +c = c +g = g +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +g = g +a = a +a = a +c = c +a = a +a = a +t = t +a = a +t = t +t = t +a = a +a = a +t = t +a = a +c = c +g => - +- => g +g => - +- => g +g = a +g = g +t = t +a = a +t = t +c = c +c = c +c = c +t = t +a = a +t = t +c = c +a = a +t = t +g = g +t = t +t = t +c = c +c = c +t = t +t = t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +g = g +a = a +t = t +- => a +a = c +t => - +a = a +c = c +a = a +a = a +a = a +a = a +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +t = t +c = c +c = c +g = g +c = c +a = a +t = t +a = a +a = a +t = t +a = a +t = t +g = g +g = g +t = t +a = a +t = t +c = c +g = g +g = g +c = c +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +t = t +c = c +a = a +t = t +g = g +t = a +c = c +g = g +c = c +c = c +g = g +t = t +t = t +c = c +a = a +t = t +g = g +a = a +t = t +a = a +a = a +c = c +t = t +g = g +g = g +g = g +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +c = c +t = t +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +a = a +t = t +t = t +c = c +a = a +c = c +c = c +t = t +c = c +a = a +g = g +g = g +c = c +a = a +t = t +t = t +t = t +c => - +c = c +- => t +c = c +c = c +a = a +t = t +a = a +g = g +a = a +a = a +a = a +t = t +g = g +a = a +t = t +a = a +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +t = t +c = c +g = g +a = a +t = t +c = c +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +a = a +a = a +c = c +c = c +g = g +a = a +g = g +t = t +c = c +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +t = t +c = c +a = a +a = a +g = g +a = a +a = a +c = c +c = c +c = c +g = g +t = t +c = c +a = a +c = c +t = t +c = c +t = t +c = c +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +t = t +t = t +a = a +c = c +a = a +a = a +a = a +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +t = t +t = t +t = t +a = a +a = a +t = t +c = c +a = a +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +c = c +c = c +c = c +t = t +c = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t = t +a = a +c = c +a = a +c = c +g = g +g = g +a = a +c = c +g = g +c = c +a = a +a = a +g = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +g = g +a = a +c = c +c = c +g = g +a = a +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +g = g +t = t +a = a +g = g +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +t = t +a = a +t = t +c = c +g = g +g = g +t = t +t = t +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +a = a +t = t +a = a +t = t +t = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +t = t +a = a +c = c +a = a +a = a +t = t +a = a +t = t +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +a = a +a = a +a = a +c = c +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +t = t +c = c +t = t +c = c +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +c = c +t = t +a = a +t = t +c = c +a = a +c = c +c = c +a = a +a = a +g = g +t = t +g = g +a = a +c = c +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +c = c +g = g +c = c +a = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +g = g +g = g +t = t +a = a +c = c +t = t +a = a +a = a +c = c +a = a +c = c +t = t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +t = t +c = c +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +g = g +c = c +c = c +t = t +c = c +c = c +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +c = c +c = c +c = c +c = c +- => t +t => - +c = t +g = g +t = t +c = c +g = g +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +t = t +c = c +a = a +t = t +c => - +c = c +- => t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +g = g +a = a +t = t +t = t +a = a +t = t +t = t +a = a +a = a +t = t +c = c +c = c +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +g = g +t = t +t = t +t = t +a = a +a = a +t = t +a = a +c = c +a = a +c = c +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +- => t +t => - +c = t +t = t +c = c +a = a +g = g +t = t +a = a +c = c +a = a +g = g +t = t +c = c +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +t = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +c = c +a = a +a = a +c = c +c = c +c = c +t = t +g = g +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +g = a +a = a +a = a +t = t +c = c +c = c +a = a +a = a +t = t +a = a +c = c +a = a +t = t +g = g +c = c +a = a +t = t +c = c +a = a +g = g +a = a +t = t +c = c +c = c +g = g +g = g +t = t +a = a +t = t +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +- => g +g => - +- => g +g => - +a = g +t = t +g = g +g = g +c = c +g = g +a = a +c = c +g = g +a = a +a = a +g = g +c = c +g = g +t = t +c = c +c = c +g = g +c = c +c = c +g = g +t => - +- => t +t => - +- => t +t => - +- => t +t = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +g = g +t = t +t = t +a = a +t = t +c = c +c = c +g = g +t = t +g = g +t = t +t = t +a = a +t = t +a = a +a = a +c = c +c = c +g = g +a = a +t = t +t = t +c = c +t = t +c = c +c = c +c = c +t = t +c = c +a = a +c = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +t = t +c = c +t = t +c = c +a = a +t = t +c = c +g = g +a = a +t = t +a = a +t = t +t = t +a = a +c = c +t = t +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +t = t +c = c +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +t = t +c = c +c = c +t = t +a = a +t = t +a = a +c = c +t = t +c = c +c = c +a = a +c = c +a = a +c = c +t = t +c = c +g = g +c = c +t = t +a = a +t = t +g = a +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +a = a +g => - +- => g +g => - +- => g +g = a +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +a = a +t = t +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +t = t +t = t +a = a +c = c +t = t +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +g = g +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +a = a +c = c +t = t +c = c +a = a +g = g +c = c +t = t +t = t +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a = a +t = t +a = a +t = t +g = g +g = g +t = t +t = t +a = a +a = a +g = g +c = c +c = c +g = a +a = a +g = g +t = t +c = c +a = a +g = g +a = a +t = t +t = t +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +a = a +t = t +c = c +a = a +g = g +t = t +a = g +a = a +g = g +t = t +a = a +t = t +c = c +c = c +g = g +g = g +t = t +c = c +t = t +g = g +a = a +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +t = t +a = a +a = a +t = t +t = t +a = a +t = t +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +g = g +c = t +a = a +t = t +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +a = g +t = t +- => c +c = c +t => - +a = a +a = a +t = t +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +a = a +c = c +c = c +a = a +t => - +- => t +t = c +c = c +c = c +c = c +a = a +t = t +t = t +t = t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c => - +c = c +- => t +a = a +g = g +t = t +t = t +t = t +a = a +t = t +t = t +a = a +t = t +t = t +c = c +t = t +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +c = c +g = g +a = a +t = t +g = g +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +t = t +t = t +c = c +c = c +c = c +t = t +g = g +c = c +g = g +c = c +c = c +c = c +g = g +c = c +c = c +c = c +c = c +c = c +t = t +a = a +t = t +a = a +t = t +c = c +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +g = g +g = g +c = c +g = g +t = t +g = g +a = a +g = g +c = c +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +c = c +a = a +t = t +c = c +g = g +g = g +c = c +a = a +a = a +c = c +t = t +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +c = c +a = a +g = g +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +- => t +t => - +c = t +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c = c +t = t +t = t +a = a +c = c +a = a +a = a +c = c +a = a +g = g +t = t +t = t +t = t +t = t +g = g +a = a +t = t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +t = t +t = t +c = c +a = a +a = a +t = t +t = t +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t = t +a = a +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t = t +t = t +c = c +t = t +g = g +g = g +g = g +a = a +g = g +t = t +a = a +g = g +t = t +t = t +a = a +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +t = t +g = g +t = t +a = a +t = t +g = g +t = t +c = c +t = t +t = t +t = t +a = a +t = t +c = c +a = a +g = g +t = t +t = t +t = t +g = g +g = g +t = t +g = g +t = t +a = a +g = g +a = a +t = t +g = g +t = t +t = t +t = t +t = t +a = a +c = c +g = g +g = g +t = t +c = c +a = a +t = t +a = a +g = g +t = t +c = c +c = c +g = g +c = c +c = c +g = g +c = c +c = c +g = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +g = g +g = g +t = t +t = t +t = t +c = c +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +c = c +- => a +a => - +- => a +a = c +c = c +t => - +g = g +c = c +c = c +t = t +a = a +c = c +t = t +t = t +c = c +g = g +t = t +c = c +t = t +a = a +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +g = g +g = g +t = t +t = t +a = a +t = t +t = t +a = a +c = c +t = t +g = g +c = c +a = a +c = c +t = t +t = t +c = c +a = a +g = g +g = g +c = c +a = a +c = c +c = c +t = t +t = t +c = c +g = g +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +g = g +t = t +t = t +t = t +t = t +t = t +t = t +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +g = g +c = c +a = a +t = t +c = c +t = t +a = a +c = c +g = g +g = g +c = c +a = a +g = g +c = c +c = c +t = t +t = t +t = t +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a = g +a = a +g = g +c = c +t = t +t = t +c = c +a = a +t = t +g = g +a = a +g = g +a = a +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +t = t +t = t +t = t +t = t +a = a +t = t +c = c +t = t +c = c +t = t +g = g +g = g +g = g +t = t +c = c +a = a +t = t +t = t +t = t +t = t +a = a +a = a +c = c +a = a +t = t +t = t +a = a +t = t +t = t +c = c +g = g +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +t = t +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +a = a +t = t +c = c +t = t +g = g +a = a +t = t +a = a +c = c +c = c +a = a +c = c +t = t +c = c +g = g +a = a +g = g +t = t +c = c +c = c +a = a +c = c +t = t +a = a +a = a +c = c +t = t +a = a +t = t +g = g +a = a +g = g +g = g +a = a +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +a = a +t = t +t = t +a = a +t = t +g = g +c = c +c = c +t = t +a = a +c = c +a = a +c = c +a = a +a = a +a = a +t = t +c = c +c = c +t = t +c = c +a = a +c = c +c = c +c = c +t = t +g = g +a = a +a = a +g = g +a = a +t = t +c = c +c = c +c = c +c = c +t = t +a = a +a = a +a = a +t = t +c = c +g = g +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +a = a +c = c +c = c +c = c +c = c +c = c +g = g +g = g +t = t +c = c +a = a +c = c +g = g +g = g +g = g +a = a +g = g +g = g +a = a +- => t +t => - +c = t +a = a +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +t = t +c = c +c = c +g = g +a = a +g = g +t = t +c = c +t = t +t = t +t = t +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = c +t = t +t = t +c = c +t = t +t = t +t = t +t = t +t = t +t = t +t = t +g = g +a = a +a = a +g = g +a = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +g = a +a = a +t = t +a = a +g = g +g = g +g = g +c = c +a = a +t = t +a = a +g = g +c = c +t = t +t = t +c = c +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +t = t +g = g +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +a = a +c = c +a = a +c = c +c = c +a = a +c = c +c = c +g = g +g = g +a = a +a = a +c = c +c = c +a = a +t = t +a = a +c = c +a = a +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c = c +a = a +c = c +a = a +a = a +t = t +g = g +t = t +a = a +g = g +c = c +g = g +c = c +g = g +g = g +t = t +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a = a +c = c +c = c +a = a +a = a +t = t +c = c +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +t = t +c = c +c = c +t = t +c => - +c = c +- => g +c = c +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +g = g +t = t +g = g +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +g = g +c = c +c = c +t = t +c = c +c = c +a = a +g = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +c = c +c = c +c = c +g = g +g = g +g = g +g = g +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +g = g +a = a +t = t +a = a +t = t +a = a +c = c +t = t +a = a +t = t +c = c +c = c +g = g +t = t +a = a +c = c +a = a +c = c +t = t +a = a +a = a +c = c +c = c +a = a +c = c +c = c +c = c +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +a = a +c = c +a = a +a = a +c = c +a = a +g = g +c = c +a = a +c = c +g = g +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +g = g +a = a +a = a +t = t +g = g +a = a +t = t +c = c +t = t +t = t +c = c +a = a +c = c +a = a +c = c +t = t +t = t +t = t +t = t +g = g +c = c +a = a +t = t +c = c +c = c +g = g +a = a +a = a +c = c +c = c +t = t +a = a +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +a = a +t = t +c = c +a = a +g = g +t = t +c = c +a = a +t = t +c = c +t = t +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +t = t +a = a +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = a +c = c +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +c = c +g = g +c = c +a = g +a = a +a = a +g = g +g = g +t = t +t = t +a = a +a = a +t = t +c = c +c = c +a = a +c = c +g = g +t = t +a = a +c = c +t = t +c = c +a = a +t = t +c = c +c = c +- => a +a = c +c = c +t => - +g = g +g = g +a = a +c = c +g = g +t = t +c = c +a = a +t = t +t = t +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +g = g +c = c +c = c +g = g +g = g +t = t +c = c +c = c +c = c +g = g +a = a +t = t +g = a +a = a +c = c +c = c +a = a +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +a = a +t = t +t = t +a = a +t = t +t = t +g = g +a = a +t = t +c = c +a = a +t = t +- => a +a = c +t => - +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +t = t +t = t +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +g = g +a = a +a = a +t = t +c = c +t = t +c = c +g = g +c = c +t = t +t = t +t = t +c = c +g = g +g = g +a = a +t = t +a = a +t = t +t = t +a = a +g = g +t = t +g = g +a = a +c = c +g = a +c = c +g = g +g = g +g = g +c = c +g = g +a = a +g = g +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g = g +g = g +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +a = a +a = a +a = a +t = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a = a +t = t +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +t = t +c = c +c = c +g = g +t = t +c = c +c = c +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = g +t = t +t = t +a = a +t = t +t = t +t = t +t = t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +a = a +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +c = c +t = t +c = c +t = t +a = a +g = g +t = t +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g => - +- => g +g => - +- => g +g = a +a = a +a = a +t = t +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +a = a +t = t +a = a +c = c +c = c +g = a +a = a +t = t +a = a +g = g +t = t +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +g = g +t = t +a = a +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +- => a +a = c +t => - +t = t +a = a +a = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +c = c +t = t +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +g = g +t = t +t = t +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +t = t +c = c +t = t +t = t +a = a +c = c +t = t +a = a +g = g +t = t +c = c +a = a +t = t +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +c = c +g = g +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +t = t +c = c +g = g +c = c +t = t +t = t +g = g +t = t +c = c +t = t +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +a = a +t = t +a = a +- => t +t => - +c = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +a = a +t => - +- => t +t = c +a = a +a = a +a = a +c = c +- => a +a = c +t => - +a = a +a = a +a = a +t = t +t = t +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +t = t +c = c +c = c +t = t +t = t +a = a +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +c = c +t = t +c = c +a = a +t = t +- => a +a = c +c = c +c = c +c = c +c = c +t => - +a = a +t = t +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +c = c +c = c +c = c +g = g +g = g +t = t +a = a +t = t +g = g +t = c +c = c +a = a +t = t +c = c +a = a +t = t +a = a +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +c = c +g = g +t = t +- => a +a => - +g = a +a = a +g = g +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +g = a +a = a +c = c +c = c +a = a +a = a +g = g +a = a +g = g +a = a +a = a +t = t +t = t +a = a +g = g +a = a +a = a +a = a +t = t +t = t +g = g +a = a +a = a +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = a +c = c +g = g +a = a +t = t +t = t +c = c +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +g = g +t = t +c = c +a = a +c = c +c = c +c = c +g = g +a = a +g = g +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +a = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +g = g +c = c +c = c +c = c +g = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +g = g +t = t +t = t +t = t +c = c +t = t +a = a +a = a +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +a = a +a = a +t = t +t = t +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +g = g +c = c +t = t +a = a +c = c +c = c +c = c +g = g +t = t +a = a +c = c +t = t +t = t +t = t +g = g +a = a +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +g = g +a = a +g = g +g = g +t = t +g = g +t = t +c = c +t = t +a = a +a = a +a = a +g = g +t = t +c = c +t = t +c = c +g = g +t = t +a = a +a = a +c = c +t = t +g = g +g = g +c = c +a = a +t = t +c = c +a = a +t = t +a = a +t = t +g = g +g = g +g = g +g = g +g = g +c = c +c = c +a = a +g = g +c = c +a = a +c = c +a = a +t = t +c = c +g = g +c = c +c = c +a = a +c = c +t = t +t = t +t = t +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +t = t +c = c +t = t +g = g +c = c +a = a +g = g +g = g +c = c +c = c +c = c +t = t +t = t +a = a +a = a +c = c +g = g +t = t +a = a +g = g +a = a +c = c +a = a +a = a +a = a +a = a +a = a +t = t +t = t +c = c +g = g +g = g +a = a +t = t +t = t +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = g +t = t +t = t +c = c +t = t +g = g +c = c +a = a +g = g +a = a +a = a +c = c +a = a +c = c +t = t +a = a +c = c +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +a = a +t = t +g = g +c = c +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +t = t +t = t +g = a +g = g +c = c +c = c +c = c +t = t +c = c +a = a +t = t +g = g +a = a +t = t +g = g +a = a +g = g +c = c +t = t +a = a +a = a +c = c +a = a +g = g +t = t +t = t +g = g +c = c +a = a +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +g = g +c = c +g = g +t = t +c = c +c = c +a = a +g = g +c = c +g = g +g = g +a = a +c = c +c = c +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +t = t +t = t +c = c +a = a +t = t +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +a = a +c = c +t = t +t = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +g = g +g = g +c = c +g = g +g = g +c = c +a = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +c = c +a = a +t = t +g = g +a = a +g = g +c = c +a = a +t = t +c = c +c = c +a = a +a = a +g = g +t = t +c = c +a = a +t = t +g = g +g = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +a = a +c = c +c = c +g = g +g = g +t = t +t = t +a = a +a = a +c = c +t = t +a = a +a = a +a = a +c = c +t = t +a = a +c = c +c = c +a => - +t = a +t = t +t = t +- => c +c = c +c = c +t = t +c => - +c = c +c = c +c = c +- => t +a = a +g = g +c = c +a = a +a = a +c = c +t = t +g = g +g = g +a = a +g = g +c = c +a = a +g = g +a = a +c = c +a = a +a = a +t = t +a = a +c = c +a = a +t = t +t = t +t = t +c = c +c = c +t = t +a = a +c = c +g = g +c = c +a = a +t = t +c = c +c = c +c = c +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +c = c +t = t +g = g +a = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +t = t +a = a +t = t +c = c +a = a +a = a +g = g +t = t +c = c +t = t +g = g +c = c +c = c +a = a +a = a +a = a +g = g +a = a +t = t +a = a +a = a +a = a +g = g +g = g +a = a +c = c +t = t +c = c +g = g +c = c +a = a +g = g +a = a +c = c +t = t +c = c +t = t +a = a +c = c +g = a +a = a +t = t +c = c +a = a +t = t +a = a +a = a +t = t +c = c +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +a = a +t = t +c = c +c = c +t = t +t = t +t = t +t = t +c = c +c = c +c = c +g = g +t = t +a = a +t = t +g = g +t = t +c = c +c = c +t = t +g = g +a = a +t = t +c = c +c = c +t = t +t = t +c = c +g = g +t = t +c = c +t = t +a = a +t = t +t = t +c = c +c = c +t = t +t = t +t = t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +c = c +c = c +c = c +g = g +c = c +a = a +c = c +t = t +a = a +g = g +t = t +a = a +c = c +t = t +t = t +t = t +- => c +c = c +t => - +a = a +c = c +t = t +a = a +t = t +t = t +c = c +g = g +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +c = c +a = a +t = t +c = c +g = g +c = c +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +t = t +g = g +g = g +a = a +t = t +g = g +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +g = g +t = t +a = a +c = c +a = a +c = c +g = g +g = g +t = t +a = a +a = a +t = t +t = t +c = c +t = t +a = a +t = t +a = a +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +a = a +t = t +c = c +g = g +g = g +a = a +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +g = g +a = a +a = a +a = a +c = c +t = t +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +c = c +t = t +t = t +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +t = t +a = a +t = t +a = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +t = t +t = t +t = t +t = t +t = t +c = c +a = a +g = g +t = t +a = a +c = c +c = c +t = t +c = c +c = c +g = g +g = g +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +t = t +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +c = c +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +g = g +a = a +t = t +c = c +t = t +a = a +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +a = a +t = t +g = g +c = c +c = c +c = c +g = a +a = a +g = g +a = a +a = a +g = g +c = c +t = t +t = t +a = a +c = c +a = a +c = c +a = a +c = c +c = c +a = a +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +g = g +t = t +a = a +g = g +g = g +t = t +a = a +t = t +a = a +t = t +c = c +a = a +g = g +t = t +g = g +a = a +g = g +g = g +t = t +c = c +c = c +a = a +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +a = a +g = g +c = c +g = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +t = t +t = t +t = t +a = a +g = g +t = t +a = a +c = c +t = t +t = t +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +a = a +t = t +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +a = a +t = t +c = c +t = t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +g = g +g = g +a = a +t = t +g = g +t = t +c = c +t = t +a = a +c = c +t = t +a = a +t = t +c = c +c = c +t = t +- => a +a = c +t => - +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +c = c +g = g +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +t = t +g = g +c = c +a = a +g = g +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +g = g +g = g +c = c +c = c +t = t +a = a +t = t +c = c +c = c +g = g +g = g +c = c +t = t +c = c +t = t +t = t +t = t +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +t = t +t = t +c = c +t = t +t = t +t = t +c = c +a = a +a = a +t = t +c = c +t = t +a = a +a = a +a = a +t = t +g = g +c = c +g = g +g = g +c = c +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +c = c +c = c +g = g +c = c +a = a +t => - +- => t +t = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +g = g +g = g +c = a +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a = a +c = c +t = t +t = t +a = a +c = c +t = t +t = t +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = t +t = t +t = t +a = a +t = t +g = g +t = t +c = c +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +c = c +t = t +a = a +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +- => a +a = c +c = c +t => - +c = c +g = g +a = a +t = t +g = g +t = t +t = t +g = g +c = c +a = a +t = t +c = c +a = a +t = t +g = g +c = c +a = a +c = c +a = a +g = g +c = c +a = a +c = c +a = a +t = t +c = c +a = a +t = t +g = g +c = c +t = t +a = a +c = c +a = a +g = g +a = a +t = t +c = c +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t = t +t = t +a = a +t = t +g = g +t = t +t = t +a = a +c = c +g = g +g = g +t = t +c = c +a = a +g = g +t = t +c = c +c = c +g = g +g = g +t = t +g = g +g = g +a = a +t = t +g = g +c = c +c = c +a = a +c = c +t = t +t = t +t = t +t = t +c = c +t = t +t = t +t = t +c = c +t = t +a = a +c = c +t = t +t = t +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +t = t +g = g +a = a +c = c +g = g +t = t +c = c +g = g +t = t +c = c +t = t +a = a +g = g +t = t +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +a = a +c = c +g = g +a = a +a = a +g = g +g = g +c = c +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +g = g +c = c +t = t +c = c +a = a +g = g +t = t +c = c +g = g +a = a +t = t +t = t +t = t +a = a +t = t +g = g +a = a +a = a +a = a +c = c +t = t +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +c = c +c = c +a = a +c = c +t = t +t = t +t = t +a = a +t = t +a = a +c = c +g = g +a = a +g = g +c = c +a = a +c = c +a = a +c = c +a = a +g = g +a = a +t = t +g = g +c = c +a = a +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +t = t +a = a +c = c +c = c +a = a +c = c +a = a +c = c +g = g +a = a +g = g +t = t +g = g +t = t +g = g +c = c +t = t +a = a +t = t +t = t +t = t +g = g +g = g +g = g +a = a +t = t +c = c +c = c +t = t +t = t +c = c +g = g +g = g +t = t +t = t +a = a +a = a +c = c +t = t +a = a +t = t +a = a +g = g +t = t +a = a +t = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +g = g +g = g +t = t +a = a +t = t +g = g +g = g +a = a +t = t +a = a +c = c +a = a +t = t +a = a +g = g +g = g +t = t +t = t +t = t +a = a +c = c +c = c +a = a +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +c = c +c = c +t = t +c = c +a = a +t = t +c = c +a = a +t = t +t = t +c = c +a = a +a = a +t = t +g = g +t = t +t = t +a = a +t = t +a = a +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +c = c +t = t +t = t +c = c +g = g +g = g +a = a +c = c +c = c +a = a +t = t +c = c +c = c +t = t +a => - +c = a +- => t +t = t +c = c +t = t +t = t +a = a +t = t +a = a +t = t +t = t +t = t +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +a => - +c = a +c = c +- => t +g = g +g = g +c = c +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +a = a +c = c +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +c = c +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +g = g +a = a +g = g +g = g +a = a +g = g +g = g +a = a +g = g +g = g +c = c +c = c +g = g +c = c +c = c +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +c = c +g = g +c = c +c = c +a = a +g = g +a = a +c = c +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +a = a +t = t +c = c +a = a +c = c +t = t +a = a +c = c +g = g +g = g +t = t +c = c +g = g +t = t +c = c +g = g +a = a +t = t +c = c +c = c +t = t +g = g +a = a +c = c +c = c +c = c +t = t +c = c +t = t +c = c +t = t +a = a +t = t +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +c = c +c = c +t = t +a = a +g = g +t = t +c = c +t = t +g = g +c = c +t => - +- => t +t => - +- => t +t = c +t = t +c = c +c = c +c = c +c = c +g = g +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +c = c +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +t = t +- => a +a => - +- => a +a = c +t => - +t = t +a = a +t = t +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +a = a +c = c +t = t +t = t +t = t +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +g = g +g = g +g = g +a = a +t = t +t = t +c = c +t = t +a = a +t = t +c = c +t = t +c = c +c = c +t = t +c = c +t = t +g = g +t = t +g = g +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +g = g +c = c +c = c +t = t +c = c +c = c +g = g +a = a +g = g +g = g +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +t = t +c = c +a = a +t = t +c = c +a = a +a = a +g = g +g = g +g = g +a = a +c = c +g = g +a = a +t = t +t = t +c = c +c = c +c = c +t = t +c = c +c = c +c = c +a = a +t = t +c = c +t = t +g = g +a = a +c = c +a = a +a = a +g = g +t = t +t = t +g = g +g = g +a = a +c = c +a = a +a = a +g = g +g = g +a = a +c = c +g = g +c = a +g = g +g = g +c = c +c = c +- => g +g => - +a = g +a = a +g = g +g = g +t = t +g = g +a = a +t = t +a = a +t = t +c = c +g = g +t = t +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +t = t +c = c +t = t +c = c +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +t = t +t = t +c = c +t = t +c = c +a = a +g = g +t = t +c = c +t = t +t = t +c = c +g = g +a = a +a = a +t = t +- => a +a = c +t => - +a = a +a = a +c = c +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c = c +c = c +c = c +c = c +t = t +t = t +t = t +g = g +c = c +g = g +g = g +t = t +a = a +t = t +a = a +g = g +c = c +c = c +c = c +c = c +c = c +g = g +t = t +g = g +g = g +c = c +t = t +a = a +a = a +t = t +a = a +a = a +t => - +- => t +t = c +c = c +c = c +c = c +t = t +t = t +g = g +a = a +t = t +c = c +a = a +g = g +t = t +c = c +a = a +a = a +c = c +g = g +g = g +t = t +t = t +t = t +c = c +g => - +- => g +g => - +- => g +g = a +g = g +g = g +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +a = a +t = t +a = a +a = a +t = t +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +a = a +a = a +t = t +a = a +a = a +t = t +g = g +t = t +t = t +t = t +a = a +c = c +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +g = g +c = c +t = t +a = a +t = t +t = t +g = g +c = c +a = a +a = a +c = c +a = a +t = t +c = c +t = t +a = a +c = c +a = a +c = c +c = c +a = a +g = g +c = c +a = a +a = a +t = t +g = g +g = g +a = a +t = t +c = c +t = t +t = t +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +g = g +g = g +t = t +c = c +a = g +a = a +g = g +c = c +c = c +g = g +a = a +g = g +c = c +t = t +t = t +a = a +t = t +t = t +c = c +c = c +t = t +c = c +c = c +g = g +a = a +a = a +t = t +c = c +t = t +c = c +g = g +a = a +c = c +a = a +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +g = g +a = a +g = g +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +c = c +c = c +a = a +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +g = g +t = t +t = t +a = a +c = c +a = a +g = g +a = a +a = a +a = a +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +g = g +t = t +t = t +g = g +c = c +c = c +a = a +g = g +c = c +c = c +g = g +c = c +t = t +t = t +g = g +t = t +a = a +g = g +t = t +c = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +t = t +c = c +a = a +c = c +t = t +t = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +g = g +a = a +t = t +t = t +t = t +c = c +t = t +g = g +t = t +c = c +c = c +c = c +c = c +a = a +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +t = t +g = g +g = g +t = t +c = c +g = g +a = a +- => g +g => - +a = g +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +a = a +c = c +t = t +t = t +a = a +a = a +c = c +g = g +t = t +t = t +t = t +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +g = g +t = t +c = c +g = g +a = a +a = a +g = g +t = t +t = t +t = t +g = g +g = g +a = a +c = c +g = g +g = g +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +g = g +g = g +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +g = g +c = c +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +a = a +a = a +c = c +t = t +t = t +c = c +g = g +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +c = c +a = a +c = c +g = g +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +t = t +g = g +a = a +t = t +t = t +c = c +a = a +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +g = g +g = g +g = g +t = t +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +c = c +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +a = a +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +c = c +a = a +a = a +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +c = c +g = g +t = t +c = c +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +c = c +g = g +t = t +c = c +a = a +g = g +g = g +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a => - +- => a +a => - +c = a +- => t +g = g +t = t +c = c +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +a = a +t = t +a = a +a = a +c = c +g = g +t = t +t = t +g = g +a = a +a = a +t = t +g = g +a = a +c = c +t = t +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a = a +c = c +a = a +t = t +a = a +a = a +a = a +t = t +t = t +g = g +g = g +a = a +t = t +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a = a +t = t +t = t +c = c +t = t +g = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +t = t +t = t +c = c +c = c +c = c +c = c +t = t +c = c +t = t +a = a +t = t +c = c +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +a = g +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +c = c +c = c +a = g +c = c +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +a = a +c = c +a = a +t = t +a = a +c = c +a = a +a = a +g = g +t = t +t = t +t = t +g = g +a = a +c = c +a = a +g = g +t = t +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +g = g +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +t = t +a = a +t = t +- => a +a = c +t => - +c = c +c = c +c = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +a = a +c = c +t = t +a = a +a = a +c = c +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +c = c +c = c +a = a +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +c = c +c = c +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +t = t +c = c +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +a = a +a = a +g = g +a = a +a = a +g = g +c = c +t = t +a = a +t = t +t = t +a = a +c = c +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +c = c +c = c +c = c +g = g +t = t +t = t +t = t +t = t +t = t +c = c +g = g +g = g +c = c +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +c = c +c = c +c = c +g = g +t = t +c = c +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +a = a +c = c +c = c +t = t +t = t +a = a +a = a +t = t +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +t = t +c = c +a = a +g = g +t = t +a = a +c = c +a = a +a = a +t = t +c = c +g = g +a = a +a = a +c = c +a = a +a = a +a = a +g = g +t = t +c = c +c = c +a = a +c = c +g = g +c = c +t = t +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +a = a +g = g +c = c +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g = g +c = c +c = c +a = a +t = t +c = c +a = a +t = t +c = c +a = a +a = a +t = t +c = c +c = c +t = t +a = a +t = t +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +t = t +t = t +a = a +c = c +c = c +a = a +a = a +t = t +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +g = g +c = c +c = c +a = a +t = t +c = c +t = t +t = t +g = g +a = a +c = c +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +t = t +a = a +g = g +g = g +a = a +t = t +a = a +c = c +a = a +c = c +c = c +c = c +a = a +t = t +t = t +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +c = c +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +t = t +t = t +a = a +g = g +g = g +t = t +g = g +g = g +a = a +g = g +t = t +t = t +g = g +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +a = a +t = t +t = t +c = c +t = t +a = a +a = a +c = c +t => - +- => t +t = c +t = t +c = c +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +c => - +c = c +- => t +t = t +c = c +c = c +g = g +a = a +a = a +t = t +g = g +c = c +a = a +a = a +a = a +t = t +c = c +a = a +c = c +t = t +c = c +c = c +c = c +t = t +c = c +t => - +- => t +t = c +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +c = c +t = t +c = c +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +a = a +c = c +a = a +g = g +t = t +a = a +c = c +a = a +c = c +t = t +c = c +t = t +t = t +c => - +c = c +- => t +t = t +c = c +g = g +t = t +c = c +c = c +g = g +g = g +c = c +c = c +t = t +a = a +c = c +a = a +g = g +t = t +c = c +t = t +c = c +c = c +c = c +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +c = c +c = c +a = a +t = t +t = t +g = g +g = g +a = a +g = g +a = a +c = c +c = c +c = c +t = t +g = g +a = a +g = g +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +c = c +c = c +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +g => - +- => g +g = a +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +c = c +t = t +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +a = a +a = a +c = c +c = c +a = a +a = a +t = t +a = a +c = c +c = c +a = a +a = a +g = g +t = t +a = a +a = a +c = c +a = a +g = g +g = g +c = c +c = c +t = t +c = c +t = t +c = c +a = a +t = t +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +t = t +t = t +c = c +t = t +c = c +c = c +t = t +a = a +t = t +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c = c +t = t +t = t +c = c +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = c +c = c +a = a +a = a +c = c +g = g +a = a +a = a +c = c +g = g +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +g = g +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = t +c = c +g = g +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +t = t +t = t +g = g +c = c +t = t +c = c +c = c +c = c +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +t = t +t = t +g = g +a = a +c = c +c = c +t = t +t = t +a = a +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +c = c +g = g +t = t +a = a +c = c +a = a +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g => - +- => g +g => - +- => g +g = a +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a = a +c = c +g = g +c = c +t = t +c = c +g = g +a = a +a = a +t = t +c = c +a = g +c = c +g = g +a = a +c = c +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +g = g +g = g +a = a +c = c +g = g +t = t +t = t +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +c = c +t = t +g = g +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +g = g +g = g +t = t +c = c +c = c +c = c +c = c +t = t +a = a +a = a +t = t +t = t +a = a +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +c = c +t = t +t = t +c = c +c = c +c = c +a = a +t = t +a = a +t = t +t = t +g = g +g = g +t = t +t = t +g = g +t = t +a = a +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +g = g +g = g +g = g +c = c +t = t +a = a +t = t +c = c +g = g +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +t = t +g = g +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +t = t +a = a +t = t +c = c +c = c +a = a +c = c +c = c +g = g +t = t +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +c = c +c = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +t = t +a = a +c = c +c = c +c = c +a = a +a = a +g = g +c = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +a = a +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t => - +- => t +t => - +- => t +t = c +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +a = a +t = t +g = g +a = a +g = g +a = a +t = t +a = a +g = g +t = t +t = t +t = t +c = c +a = a +t = t +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +a = a +g = g +t = t +c = c +t = t +g = g +t = t +a = a +t = t +a = a +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +g = g +t = t +a = a +t = t +a = a +g = g +t = t +a = a +t = t +a = a +t = t +t = t +c = c +a = a +- => t +t => - +c = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +t = t +c = c +c = c +t = t +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +c = c +a = a +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +a = a +g = g +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +t = t +a = a +g = g +c = c +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +g = g +a = a +c = c +a = a +a = a +g = g +c = c +t = t +t = t +a = a +a = a +g = g +t = t +a = a +t = t +t = t +c = c +t = t +t = t +g = g +t = t +c = c +c = c +c = c +t = t +c = c +c = c +- => a +a => - +g = a +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +c = c +a = a +g = g +a = a +a = a +c = c +c = c +a = a +c = c +t = t +g = g +t = t +t = t +t = t +t = t +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c = c +c = c +c = c +c = c +t = t +c = c +t = t +c = c +a = a +c = c +g = g +c = c +a => - +- => a +a = g +t = t +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +g = g +g = g +a = a +t = t +c = c +c = c +t = t +t = t +c = c +t = t +a = a +a = a +c = c +a = a +t = t +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +a = a +t = t +a = a +a = a +t = t +a = a +t = t +t = t +a = a +t = t +t = t +a = a +c = c +a = a +a = a +a = a +c = c +a = a +c = c +a = a +t = t +a = a +a = a +g = g +c = c +c = c +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +g = g +c = c +t = t +t = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = c +a = a +t = t +a = a +a = a +g = g +c = c +t = t +a = a +c = c +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +g = g +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +a = a +g = g +c = c +c = c +t = t +a = g +a = a +g = g +g = g +g = g +g = g +a = a +a = a +g = g +t = c +c = c +g = g +t = t +t = t +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +c = c +c = c +a = a +a = a +c = c +c = c +a = a +g = g +a = a +g = g +a = a +c = c +g = g +a = a +t = t +c = c +a = a +c = c +a = a +c = c +c = c +t = t +c = c +t = t +a = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +c = c +g = g +g = g +t = t +t = t +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = t +c = c +c = c +t = t +c = c +a = a +t = t +t = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +c = c +g = a +a = a +c = c +a = a +c = c +t = t +a = a +t = t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c = c +t = t +c = c +c = c +a = a +a = a +t = t +t = t +t = t +c = c +c = c +t = t +c = c +g = g +g = g +t = t +g = g +a = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c = c +t = t +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +a = a +a = a +g = g +t = t +a = a +t = t +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +a = a +c = c +g = g +a = a +g = g +c = c +g = g +t = t +c = c +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +a = a +g = g +t = t +c = c +c = c +c = c +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +c = c +g = g +a = a +g = g +t = t +g = g +g = g +g = g +a = a +c = c +t = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +t = t +a = a +a = a +c = c +t = t +c = c +a = a +t = t +t = t +t = t +g = g +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c = c +t = t +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +g = g +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +t = t +a = a +t = t +c = c +a = a +t = t +c = c +t = t +t = t +c = c +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +a = a +c = c +t = t +c = c +t = t +c = c +g = g +a = a +t = t +t = t +c = c +c = c +a = a +g = g +c = c +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +c = c +a => - +c = a +- => t +c = c +t = t +a = a +c = c +a = a +c = c +c = c +g = g +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +g = g +c = c +a = a +g = g +t = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +c = c +a = a +t = t +c = c +g = g +g = g +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +t = t +g = g +t = t +t = t +g = g +c = c +- => a +a => - +- => a +a = c +c = c +c = c +c = c +t => - +g = g +g = g +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +c = c +a = a +a = a +c = c +g = a +t = t +a = a +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +c = c +c = c +a = a +t = t +t = t +c = c +g = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g = g +g = g +t = t +a = a +a = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +c = c +c = c +c = c +a = a +t = t +g = g +t = t +t = t +g = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +c = c +g = g +g = g +t = t +a = a +c = c +c = c +c = c +a => - +c = a +- => t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +c = c +c = c +t = t +t = t +a = a +a = a +c = c +t = t +t = t +g = g +g = g +a = a +g = g +a = a +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +g = g +g = g +c = c +c = c +c = c +g = g +a = a +g = g +a = a +c = c +g = g +g = g +t = t +a = a +g = g +a = a +a = a +t = t +t = t +g = g +t = t +t = t +t = t +g = g +g = g +g = g +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +c = c +a = a +c = c +a = a +c = c +c = c +c = c +a = a +t = t +a = a +t = t +t = t +a = a +t = t +g = g +a = a +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +t = t +a = a +c = c +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +a = a +t = t +g = g +c = c +c = c +c = c +c = c +c = c +t = t +t = t +c = c +c = c +g = g +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +g = g +g = g +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +g = g +a = a +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +c = c +c = c +t = t +t = t +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +a = a +t = t +c = c +t = t +t = t +t = t +g = g +g = g +c = c +t = t +g = g +g = g +a = a +c = c +c = c +t = t +a = a +a = a +t = t +g = g +a = a +g = g +g = g +c = c +c = c +a = a +g = g +a = a +c = c +t = t +t = t +g = g +a = a +g = g +t = t +c = c +t = t +a = a +g = g +t = t +g = g +c = c +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +a = a +c = c +t = t +t = t +g = g +t = t +t = t +t = t +g = g +c = c +t = t +t = t +g = g +g = g +a = a +a = a +a = a +t = t +t = t +a = a +t = t +c = c +g = g +c = c +c = c +g = g +a = a +c = c +g = g +t = t +g = g +g = g +t = t +a => - +- => a +a = g +c = c +c = c +c = c +t = t +a = a +c = c +a = a +g = g +g = g +a = a +c = c +t = t +a = a +g = g +g = g +t = t +t = t +g = g +t = t +a = a +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +a = a +t = t +t = t +t = t +g = g +g = g +g = g +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +c = c +c = c +t = t +g = g +a = a +g = g +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +t = t +g = g +a = a +a = a +c = c +a = a +a = a +g = g +g = g +c = c +a = a +a = a +c = c +c = c +a = a +g = g +t = t +t = t +c = c +a = a +a = a +t = t +a = a +a = a +c = c +c = c +t = t +a = a +g = g +t = t +t = t +a = a +a = a +c = c +t = t +c = c +a = a +t = t +a => - +c = a +- => t +c = c +a = a +t = t +c = c +a = a +a = a +g = g +c = c +g = g +a = a +a = a +a = a +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +- => t +t => - +c = t +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +t = t +a = a +c = c +a = a +t = t +g = g +a = a +c = c +g = g +a = a +g = g +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => g +a = a +c = c +g = g +a = a +g = g +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +g = g +g = g +g = g +g = g +t = t +t = t +g = g +g = g +c = c +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +c = c +g = g +t = t +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +a = a +a = a +t = t +c = c +c = c +t = t +g = g +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +a = a +t = t +c = c +c = c +a = a +t = t +g = g +a = a +c = c +a = a +a = a +a = a +c = c +g = g +t = t +a = a +a = a +t = t +t = t +a = a +t = t +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +a = a +g = g +g = g +t = t +a = a +t = t +c = c +c = c +c = c +a = a +g = g +a = a +a = a +g = g +a = a +g = g +c = c +a = a +g = g +a = a +a = a +c = c +g = g +a = a +c = c +a = a +c = c +a = a +a = a +t = t +a = a +c = c +g = g +g = g +g = g +c = c +g = g +g = g +a = a +g = g +a = a +a = a +g = g +t = t +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +a = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +t = t +g = g +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +t = t +t = t +c = c +t = t +c = c +t = t +g = g +t = t +c = c +g = g +a = a +c = c +t = t +t = t +g = g +g = g +g = g +a = a +g = g +c = c +a = a +c = c +c = c +t = t +c = c +g = g +g = g +t = t +a = a +a = a +g = g +t = t +a = a +t = t +g = g +t = t +c = c +c = c +a = a +g = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +t = t +c = c +c = c +t = t +t = t +g = g +t = t +t = t +c = c +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +t = t +g = g +g = g +a = a +a = a +a = a +c = c +g = g +t = t +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +t = t +g = g +g = g +c = c +g = g +c = c +c = c +g = g +g = g +c = c +a = a +a = a +t = t +t = t +t = t +g = g +t = t +a = a +c = c +a = a +c = c +a = a +g = g +t = t +g = g +a = a +c = c +c = c +c = c +g = g +t = t +c = c +c = c +g = g +c = c +c = c +a = a +c = c +g = g +g = g +a = a +g = g +a = a +t = t +t = t +a = a +t = t +g = g +a = a +c = c +c = c +- => a +a = c +t => - +t = t +a = a +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +g = g +t = t +c = c +c = c +g = g +c = c +c = c +c = c +c = c +a = a +t = t +t = t +c = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +c = c +t = t +c = c +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +t = t +g = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +t = t +t = t +g = g +g = g +a = a +a = a +a = a +g = g +g = g +a = a +a = a +t = t +a = a +c = c +t = t +c = c +g = g +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +t = t +g = g +t = t +c = c +a = a +c = c +t = t +c = c +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a = a +c = c +t = t +g = g +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +t = t +c = c +t = t +a = a +t = t +a = a +a = a +c = c +c = c +c = c +g = g +a = a +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +a = a +g = g +t = t +c = c +a = a +a = a +g = g +t = t +c = c +a = a +c = c +a = a +a = a +a = a +a = a +t = t +t = t +a = a +g = g +a = a +c = c +t = t +g = g +c = c +g = g +t = t +c = c +c = c +g = g +a = a +a = a +t = t +a = a +c = c +g = g +c = c +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +c = c +a = a +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +g = g +t = t +a = a +a = a +t = t +c = c +a = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +t = t +c = c +t = t +a = a +a = a +c = c +c = c +a = a +g = g +g = g +t = t +t = t +a = a +a = a +c = c +c = c +c = c +a = a +c = c +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c = c +a = a +a = a +t = t +a = a +t = t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +t = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +a = a +c = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +a = a +a = a +c = c +t = t +t = t +g = g +c = c +g = g +a = a +a = a +a = a +g = g +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +a = a +a = a +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +a = a +c = c +c = c +c = c +a = a +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +a = a +g = g +a = a +g = g +a = a +g = g +a = a +t = t +g = g +t = t +t = t +c = c +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +c = c +a = a +g = g +g = g +t = t +t = t +t = t +c = c +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +g = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +g = g +a = a +t = t +t = t +g = g +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +c = c +c = c +c = c +t = t +a = a +a = a +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = g +t = t +t = t +t = t +a = a +a = a +a = a +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +g = g +a = a +t = t +a = a +g = g +a = a +a = a +c = c +c = c +t = t +g = g +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +t = t +a = a +g = g +t = t +g = g +g = g +t = t +c = c +c = c +g = g +a = a +g = g +c = c +c = c +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +a = a +g = g +c = c +g = g +g = g +a = a +g = g +a = a +t = t +g = g +g = g +a = a +t = t +a = a +t = t +t = t +t = t +a = a +g = g +a = a +a = a +g = g +g = g +g = g +t = t +g = g +a = a +t = t +a = a +a = a +a = a +a = a +c = c +g = g +a = a +t = t +g = g +t = t +a = a +t = t +c = c +t = t +g = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +g = g +a = a +g = g +c = c +a = a +g = g +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +g = g +a = a +g = g +a = a +g = g +g = g +a = a +a = a +c = c +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +g = g +t = t +c = c +t = t +t = t +c = c +c = c +a = a +t = t +a = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +g = g +a = a +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +a = a +c = c +c = c +a = a +a = a +t = t +a = a +t = t +t = t +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +g = g +a = a +a = a +a = a +g = g +g = g +g = g +a = a +a = a +c = c +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t = t +g = a +t = t +a = a +g = g +a = a +t = t +a = a +a = a +c = c +g = g +c = c +g = g +g = g +t = t +c = c +c = c +a = a +a = a +a = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a = a +g = g +c = c +g = g +g = g +a = a +t = t +a = a +t = t +g = g +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +c = c +a = a +a = a +a = a +c = c +c = c +g = g +a = a +t = t +t = t +c = c +c = c +a = a +a = a +c = c +a => - +- => a +a = g +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +a = a +a = a +a = a +t = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +c = c +c = c +a = a +g = g +t = t +t = t +c = c +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +t = t +a = a +g = g +a = a +g = g +g = g +a = a +t = t +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +a = a +a = a +t = t +t = t +c = c +g = g +a = a +t = t +g = g +t = t +g = g +a = a +g = g +a = a +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g = g +g = g +t = t +t = t +c = c +a = a +c = c +g = g +t = t +g = g +a = a +a = a +a = a +g = g +g = g +t = t +c = c +a = a +t = t +g = g +t = t +g = g +a = a +a = a +t = t +g = g +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +c = c +t = t +g = g +a = a +a = a +c = c +a = a +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a = a +c = c +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +g = g +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +t = t +g = g +c = c +g = g +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +g = g +g = g +g = g +a = a +c = c +a = a +a = a +g = g +t = t +t = t +g = g +a = a +t = t +t = t +c = c +g = g +t = t +g = g +a = a +g = g +a = a +t = t +g = g +a = a +g = g +- => a +a => - +g = a +t = t +c = c +a = a +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +t = t +t = t +t = t +a = a +g = g +g = g +t = t +g = g +g = g +a = a +a = a +g = g +c = c +t = t +g = g +g = g +g = g +a = a +a = a +- => t +t => - +c = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +t = t +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +a = a +g = g +a = a +c = c +c = c +c = c +c = c +a = a +t = t +c = c +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +g = g +a = a +a = a +c = c +g = g +g = g +t = t +g = g +g = g +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +t = t +g = g +g = g +a = a +a = a +c = c +t = t +g = g +g = g +a = a +t = t +t = t +g = g +c = c +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +a = a +c = c +c = c +c = c +a = a +t = t +g = g +a = a +a = a +c = c +g = g +c = c +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +c = c +a = a +t = t +c = c +g = g +g = g +a = a +a = a +g = g +t = t +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +a = a +c = c +g = g +a = a +c = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +a = a +t = t +a = a +t = t +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +c = c +g = g +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +a = a +g = g +c = c +t = t +a = a +a = a +t = t +g = g +t = t +c = c +t = t +t = t +g = g +t = t +c = c +c = c +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +a = a +c = c +t = t +t = t +c = c +g = g +t = t +g = g +g = g +c = c +g = g +g = g +t = t +c = c +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +g = g +c = c +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +a = a +c = c +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +a = a +t = t +t = t +g = g +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +t = t +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +t = t +a = a +g = g +a = a +t = t +t = t +a = a +g = g +g = g +g = g +t = t +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +c = c +a = a +a = a +g = g +t = t +c = c +t = t +a = a +t = t +a = a +c = c +a = a +a = a +t = t +t = t +t = t +c = c +g = g +g = g +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a => - +- => a +a = g +a = a +t = t +a = a +a = a +a = a +a = a +c = c +a = a +c = c +a = a +g = g +t = t +t = t +g = g +a = a +c = c +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +t = t +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +a = a +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +g = g +a = a +t = t +t = t +t = t +t = t +g = g +t = t +g = g +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +g = g +g = g +c = c +c = c +g = g +a = a +a = a +g = g +a = a +t = t +a = a +a = a +c = c +t = t +g = g +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +g = g +g = g +c = c +g = g +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +t = t +g = g +c = c +t = t +t = t +t = t +a = a +a = a +c = c +t = t +g = g +g = g +t = t +t = t +g = g +g = g +g = g +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t = t +a = a +t = t +c = c +g = g +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +t = t +t = t +c = c +c = c +g => - +- => a +a => - +- => a +a = t +t = t +a = a +g = g +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +a = a +a = a +g = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +t = t +c = c +g = g +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +g = g +a = a +c = c +g = g +t = t +a = a +a = a +c = c +a = g +a = a +c = c +g = g +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +a = a +c = c +g = g +a = a +a = a +c = c +- => a +a => - +g = a +g = g +g = g +a = a +a = a +a = a +a = a +c = c +t = t +a = a +g = g +c = c +a = a +c = c +c = c +a = a +c = c +t = t +a = a +a = a +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +t = t +g = g +a = a +g = g +t = t +g = g +a = a +c = c +c = c +t = t +t = t +a = g +c = c +c = c +c = c +c = c +t = t +a = a +c = c +g = g +a = a +a = a +c = c +g = g +t = t +a = a +c = c +a = a +c = c +a = a +t = t +t = t +a = a +g = g +a = a +a = a +t = t +g = g +a = a +t = t +t = t +c = c +t = t +c = c +g = g +a = a +t = t +t = t +a = a +t = t +c = c +t = t +t = t +t = t +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +g = g +g = g +t = t +t = t +t = t +g = g +g = g +a = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +c = c +t = t +c = c +g = g +g = g +g = g +c = c +a = a +g = g +a = a +t = t +t = t +t = t +g = g +t = t +a = a +a = a +a = a +a = a +g = g +t = t +c = c +a = a +c = c +a = a +t = t +a = a +a = a +c = c +g = g +a = a +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +a = a +t = t +t = t +c = c +g = g +a = a +t = t +g = g +t = t +a = a +t = t +t = t +t = t +g = g +a = a +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +c = c +c = c +g = a +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +g = g +t = t +- => c +- => g +- => c +c = c +g = a +- => c +c = a +c = c +a = a +c = c +a = a +c = c +a = a +c = c +g = g +a = a +c = c +c = c +c = c +a = a +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +g = g +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +a = a +a = a +c = c +t = t +a = a +c = c +t = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +c = c +t = t +c = c +a = a +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +t = t +t = t +t = t +t = t +a = a +t = t +t = t +a = a +c = c +a = a +c = c +a = a +a = a +t = t +c = c +- => a +a => - +- => a +a = c +t => - +c = c +c = c +c = c +c = c +c = c +a = a +c = c +t = t +g = g +a = a +c = c +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +c = c +a = g +t = t +a = a +t = t +g = g +g = g +c = c +g = g +g = g +t = t +t = t +t = t +t = t +c = c +t = t +a = a +t = t +t = t +t = t +t = t +a = a +a = a +a = a +c = c +t = t +t = t +t = t +a = a +g = g +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +g = g +a = a +c = c +c = c +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +g = g +t = t +c = c +t = t +c = c +t = t +a = a +c = c +a = a +c = c +a = a +a = a +a = a +t = t +t = t +c = c +a = a +c = c +g = g +a = a +c = c +a = a +c = c +c = c +g = g +g = g +t = t +c = c +t = t +t = t +c = c +g = g +c = c +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +c = c +c = c +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +a = a +g = g +a = a +c = c +a = a +c = c +a = a +c = c +c = c +t = t +t = t +t = t +- => c +- => a +c = c +g => - +t => - +c = c +g = g +a = a +c = c +a = a +c = c +g = g +t = t +c = c +t = t +g = g +t = t +a => - +- => a +a => - +- => a +- => g +a = t +t = t +c => - +- => a +a => - +g = a +c = c +a = a +a = a +t = t +a = a +a = a +t = t +a = a +a = a +t = t +a = a +c = c +a = a +g = g +g = g +a = a +t = t +g = g +t = t +t = t +c = c +g = g +t = t +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +g = g +t = t +g = g +t = t +g = g +- => a +a => - +- => a +a => - +g = a +t = t +c = c +a = a +t = t +t = t +c = c +a = a +t = t +a = a +c = c +g = a +a = a +g = g +c = c +g = g +g = g +a = a +c = c +a = a +t = t +t = t +a = a +t = t +a = a +a = a +c = c +t = t +t = t +g = g +c = c +a = a +t = t +c = c +c = c +a = a +c = c +g = g +c = c +t = t +a = a +t = t +t = t +t = t +a = a +t = t +t = t +- => a +a = t +c = c +c = c +t => - +t = t +a => - +c = a +c = c +- => t +c = c +c = c +g = g +t = t +c = c +c = c +t = t +t = t +a = a +g = g +t = t +t = t +t = t +c = c +t = t +g = g +t = t +c = c +t = t +a = a +t = t +g = g +a = a +c = c +g = g +c = c +t = t +g = g +t = t +a = a +t = t +c = c +c = c +c = c +a = a +c = c +g = g +a = a +g = g +g = g +c = c +c = c +g = g +a = a +g = g +g = g +t = t +c = c +g = g +c = c +a = a +g = g +a = a +g = g +c = c +g = g +t = t +t = t +a = a +c = c +g = g +a = a +t = t +a = a +g = g +c = c +g = g +c = c +a = a +c = c +g = g +t = t +g = a +t = t +g = g +g = g +g = g +g = g +g = g +g = g +t = t +c = c +t = t +g = g +c = c +t = t +t = t +t = t +t = t +a = a +t = t +g = g +g = g +t = t +t = t +t = t +a = a +c = c +g = g +t = t +a = a +c = c +c = c +t = t +c = c +t = t +c = c +g = g +a = a +g = g +g = g +g = g +c = c +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +a = a +t = t +t = t +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +t = t +c = c +t = t +g = g +g = g +a = a +c = c +a = a +c = c +t = t +a = a +g = g diff --git a/DNA_Alignment/DNA_Alignment/bin/Debug/protypicalHuman.txt b/DNA_Alignment/DNA_Alignment/bin/Debug/protypicalHuman.txt index e69de29..7394b9c 100644 --- a/DNA_Alignment/DNA_Alignment/bin/Debug/protypicalHuman.txt +++ b/DNA_Alignment/DNA_Alignment/bin/Debug/protypicalHuman.txt @@ -0,0 +1,277 @@ +gatcacaggt ctatcaccct attaaccact cacgggagct ctccatgcat ttggtatttt +cgtctggggg gtatgcacgc gatagcattg cgagacgctg gagccggagc accctatgtc +gcagtatctg tctttgattc ctgcctcatc ctattattta tcgcacctac gttcaatatt +acaggcgaac atacttacta aagtgtgtta attaattaat gcttgtagga cataataata +acaattgaat gtctgcacag ccactttcca cacagacatc ataacaaaaa atttccacca +aaccccccct cccccgcttc tggccacagc acttaaacac atctctgcca aaccccaaaa +acaaagaacc ctaacaccag cctaaccaga tttcaaattt tatcttttgg cggtatgcac +ttttaacagt caccccccaa ctaacacatt attttcccct cccactccca tactactaat +ctcatcaata caacccccgc ccatcctacc cagcacacac acaccgctgc taaccccata +ccccgaacca accaaacccc aaagacaccc cccacagttt atgtagctta cctcctcaaa +gcaatacact gaaaatgttt agacgggctc acatcacccc ataaacaaat aggtttggtc +ctagcctttc tattagctct tagtaagatt acacatgcaa gcatccccgt tccagtgagt +tcaccctcta aatcaccacg atcaaaagga acaagcatca agcacgcagc aatgcagctc +aaaacgctta gcctagccac acccccacgg gaaacagcag tgattaacct ttagcaataa +acgaaagttt aactaagcta tactaacccc agggttggtc aatttcgtgc cagccaccgc +ggtcacacga ttaacccaag tcaatagaag ccggcgtaaa gagtgtttta gatcaccccc +tccccaataa agctaaaact cacctgagtt gtaaaaaact ccagttgaca caaaatagac +tacgaaagtg gctttaacat atctgaacac acaatagcta agacccaaac tgggattaga +taccccacta tgcttagccc taaacctcaa cagttaaatc aacaaaactg ctcgccagaa +cactacgagc cacagcttaa aactcaaagg acctggcggt gcttcatatc cctctagagg +agcctgttct gtaatcgata aaccccgatc aacctcacca cctcttgctc agcctatata +ccgccatctt cagcaaaccc tgatgaaggc tacaaagtaa gcgcaagtac ccacgtaaag +acgttaggtc aaggtgtagc ccatgaggtg gcaagaaatg ggctacattt tctaccccag +aaaactacga tagcccttat gaaacttaag ggtcgaaggt ggatttagca gtaaactaag +agtagagtgc ttagttgaac agggccctga agcgcgtaca caccgcccgt caccctcctc +aagtatactt caaaggacat ttaactaaaa cccctacgca tttatataga ggagacaagt +cgtaacatgg taagtgtact ggaaagtgca cttggacgaa ccagagtgta gcttaacaca +aagcacccaa cttacactta ggagatttca acttaacttg accgctctga gctaaaccta +gccccaaacc cactccacct tactaccaga caaccttagc caaaccattt acccaaataa +agtataggcg atagaaattg aaacctggcg caatagatat agtaccgcaa gggaaagatg +aaaaattata accaagcata atatagcaag gactaacccc tataccttct gcataatgaa +ttaactagaa ataactttgc aaggagagcc aaagctaaga cccccgaaac cagacgagct +acctaagaac agctaaaaga gcacacccgt ctatgtagca aaatagtggg aagatttata +ggtagaggcg acaaacctac cgagcctggt gatagctggt tgtccaagat agaatcttag +ttcaacttta aatttgccca cagaaccctc taaatcccct tgtaaattta actgttagtc +caaagaggaa cagctctttg gacactagga aaaaaccttg tagagagagt aaaaaattta +acacccatag taggcctaaa agcagccacc aattaagaaa gcgttcaagc tcaacaccca +ctacctaaaa aatcccaaac atataactga actcctcaca cccaattgga ccaatctatc +accctataga agaactaatg ttagtataag taacatgaaa acattctcct ccgcataagc +ctgcgtcaga ttaaaacact gaactgacaa ttaacagccc aatatctaca atcaaccaac +aagtcattat taccctcact gtcaacccaa cacaggcatg ctcataagga aaggttaaaa +aaagtaaaag gaactcggca aatcttaccc cgcctgttta ccaaaaacat cacctctagc +atcaccagta ttagaggcac cgcctgccca gtgacacatg tttaacggcc gcggtaccct +aaccgtgcaa aggtagcata atcacttgtt ccttaaatag ggacctgtat gaatggctcc +acgagggttc agctgtctct tacttttaac cagtgaaatt gacctgcccg tgaagaggcg +ggcataacac agcaagacga gaagacccta tggagcttta atttattaat gcaaacagta +cctaacaaac ccacaggtcc taaactacca aacctgcatt aaaaatttcg gttggggcga +cctcggagca gaacccaacc tccgagcagt acatgctaag acttcaccag tcaaagcgaa +ctactatact caattgatcc aataacttga ccaacggaac aagttaccct agggataaca +gcgcaatcct attctagagt ccatatcaac aatagggttt acgacctcga tgttggatca +ggacatcccg atggtgcagc cgctattaaa ggttcgtttg ttcaacgatt aaagtcctac +gtgatctgag ttcagaccgg agtaatccag gtcggtttct atctacnttc aaattcctcc +ctgtacgaaa ggacaagaga aataaggcct acttcacaaa gcgccttccc ccgtaaatga +tatcatctca acttagtatt atacccacac ccacccaaga acagggtttg ttaagatggc +agagcccggt aatcgcataa aacttaaaac tttacagtca gaggttcaat tcctcttctt +aacaacatac ccatggccaa cctcctactc ctcattgtac ccattctaat cgcaatggca +ttcctaatgc ttaccgaacg aaaaattcta ggctatatac aactacgcaa aggccccaac +gttgtaggcc cctacgggct actacaaccc ttcgctgacg ccataaaact cttcaccaaa +gagcccctaa aacccgccac atctaccatc accctctaca tcaccgcccc gaccttagct +ctcaccatcg ctcttctact atgaaccccc ctccccatac ccaaccccct ggtcaacctc +aacctaggcc tcctatttat tctagccacc tctagcctag ccgtttactc aatcctctga +tcagggtgag catcaaactc aaactacgcc ctgatcggcg cactgcgagc agtagcccaa +acaatctcat atgaagtcac cctagccatc attctactat caacattact aataagtggc +tcctttaacc tctccaccct tatcacaaca caagaacacc tctgattact cctgccatca +tgacccttgg ccataatatg atttatctcc acactagcag agaccaaccg aacccccttc +gaccttgccg aaggggagtc cgaactagtc tcaggcttca acatcgaata cgccgcaggc +cccttcgccc tattcttcat agccgaatac acaaacatta ttataataaa caccctcacc +actacaatct tcctaggaac aacatatgac gcactctccc ctgaactcta cacaacatat +tttgtcacca agaccctact tctaacctcc ctgttcttat gaattcgaac agcatacccc +cgattccgct acgaccaact catacacctc ctatgaaaaa acttcctacc actcacccta +gcattactta tatgatatgt ctccataccc attacaatct ccagcattcc ccctcaaacc +taagaaatat gtctgataaa agagttactt tgatagagta aataatagga gcttaaaccc +ccttatttct aggactatga gaatcgaacc catccctgag aatccaaaat tctccgtgcc +acctatcaca ccccatccta aagtaaggtc agctaaataa gctatcgggc ccataccccg +aaaatgttgg ttataccctt cccgtactaa ttaatcccct ggcccaaccc gtcatctact +ctaccatctt tgcaggcaca ctcatcacag cgctaagctc gcactgattt tttacctgag +taggcctaga aataaacatg ctagctttta ttccagttct aaccaaaaaa ataaaccctc +gttccacaga agctgccatc aagtatttcc tcacgcaagc aaccgcatcc ataatccttc +taatagctat cctcttcaac aatatactct ccggacaatg aaccataacc aatactacca +atcaatactc atcattaata atcataatag ctatagcaat aaaactagga atagccccct +ttcacttctg agtcccagag gttacccaag gcacccctct gacatccggc ctgcttcttc +tcacatgaca aaaactagcc cccatctcaa tcatatacca aatctctccc tcactaaacg +taagccttct cctcactctc tcaatcttat ccatcatagc aggcagttga ggtggattaa +accaaaccca gctacgcaaa atcttagcat actcctcaat tacccacata ggatgaataa +tagcagttct accgtacaac cctaacataa ccattcttaa tttaactatt tatattatcc +taactactac cgcattccta ctactcaact taaactccag caccacgacc ctactactat +ctcgcacctg aaacaagcta acatgactaa cacccttaat tccatccacc ctcctctccc +taggaggcct gcccccgcta accggctttt tgcccaaatg ggccattatc gaagaattca +caaaaaacaa tagcctcatc atccccacca tcatagccac catcaccctc cttaacctct +acttctacct acgcctaatc tactccacct caatcacact actccccata tctaacaacg +taaaaataaa atgacagttt gaacatacaa aacccacccc attcctcccc acactcatcg +cccttaccac gctactccta cctatctccc cttttatact aataatctta tagaaattta +ggttaaatac agaccaagag ccttcaaagc cctcagtaag ttgcaatact taatttctgt +aacagctaag gactgcaaaa ccccactctg catcaactga acgcaaatca gccactttaa +ttaagctaag cccttactag accaatggga cttaaaccca caaacactta gttaacagct +aagcacccta atcaactggc ttcaatctac ttctcccgcc gccgggaaaa aaggcgggag +aagccccggc aggtttgaag ctgcttcttc gaatttgcaa ttcaatatga aaatcacctc +ggagctggta aaaagaggcc taacccctgt ctttagattt acagtccaat gcttcactca +gccattttac ctcaccccca ctgatgttcg ccgaccgttg actattctct acaaaccaca +aagacattgg aacactatac ctattattcg gcgcatgagc tggagtccta ggcacagctc +taagcctcct tattcgagcc gagctgggcc agccaggcaa ccttctaggt aacgaccaca +tctacaacgt tatcgtcaca gcccatgcat ttgtaataat cttcttcata gtaataccca +tcataatcgg aggctttggc aactgactag ttcccctaat aatcggtgcc cccgatatgg +cgtttccccg cataaacaac ataagcttct gactcttacc tccctctctc ctactcctgc +tcgcatctgc tatagtggag gccggagcag gaacaggttg aacagtctac cctcccttag +cagggaacta ctcccaccct ggagcctccg tagacctaac catcttctcc ttacacctag +caggtgtctc ctctatctta ggggccatca atttcatcac aacaattatc aatataaaac +cccctgccat aacccaatac caaacgcccc tcttcgtctg atccgtccta atcacagcag +tcctacttct cctatctctc ccagtcctag ctgctggcat cactatacta ctaacagacc +gcaacctcaa caccaccttc ttcgaccccg ccggaggagg agaccccatt ctataccaac +acctattctg atttttcggt caccctgaag tttatattct tatcctacca ggcttcggaa +taatctccca tattgtaact tactactccg gaaaaaaaga accatttgga tacataggta +tggtctgagc tatgatatca attggcttcc tagggtttat cgtgtgagca caccatatat +ttacagtagg aatagacgta gacacacgag catatttcac ctccgctacc ataatcatcg +ctatccccac cggcgtcaaa gtatttagct gactcgccac actccacgga agcaatatga +aatgatctgc tgcagtgctc tgagccctag gattcatctt tcttttcacc gtaggtggcc +tgactggcat tgtattagca aactcatcac tagacatcgt actacacgac acgtactacg +ttgtagccca cttccactat gtcctatcaa taggagctgt atttgccatc ataggaggct +tcattcactg atttccccta ttctcaggct acaccctaga ccaaacctac gccaaaatcc +atttcactat catattcatc ggcgtaaatc taactttctt cccacaacac tttctcggcc +tatccggaat gccccgacgt tactcggact accccgatgc atacaccaca tgaaacatcc +tatcatctgt aggctcattc atttctctaa cagcagtaat attaataatt ttcatgattt +gagaagcctt cgcttcgaag cgaaaagtcc taatagtaga agaaccctcc ataaacctgg +agtgactata tggatgcccc ccaccctacc acacattcga agaacccgta tacataaaat +ctagacaaaa aaggaaggaa tcgaaccccc caaagctggt ttcaagccaa ccccatggcc +tccatgactt tttcaaaaag gtattagaaa aaccatttca taactttgtc aaagttaaat +tataggctaa atcctatata tcttaatggc acatgcagcg caagtaggtc tacaagacgc +tacttcccct atcatagaag agcttatcac ctttcatgat cacgccctca taatcatttt +ccttatctgc ttcctagtcc tgtatgccct tttcctaaca ctcacaacaa aactaactaa +tactaacatc tcagacgctc aggaaataga aaccgtctga actatcctgc ccgccatcat +cctagtcctc atcgccctcc catccctacg catcctttac ataacagacg aggtcaacga +tccctccctt accatcaaat caattggcca ccaatggtac tgaacctacg agtacaccga +ctacggcgga ctaatcttca actcctacat acttccccca ttattcctag aaccaggcga +cctgcgactc cttgacgttg acaatcgagt agtactcccg attgaagccc ccattcgtat +aataattaca tcacaagacg tcttgcactc atgagctgtc cccacattag gcttaaaaac +agatgcaatt cccggacgtc taaaccaaac cactttcacc gctacacgac cgggggtata +ctacggtcaa tgctctgaaa tctgtggagc aaaccacagt ttcatgccca tcgtcctaga +attaattccc ctaaaaatct ttgaaatagg gcccgtattt accctatagc accccctcta +ccccctctag agcccactgt aaagctaact tagcattaac cttttaagtt aaagattaag +agaaccaaca cctctttaca gtgaaatgcc ccaactaaat actaccgtat ggcccaccat +aattaccccc atactcctta cactattcct catcacccaa ctaaaaatat taaacacaaa +ctaccaccta cctccctcac caaagcccat aaaaataaaa aattataaca aaccctgaga +accaaaatga acgaaaatct gttcgcttca ttcattgccc ccacaatcct aggcctaccc +gccgcagtac tgatcattct atttccccct ctattgatcc ccacctccaa atatctcatc +aacaaccgac taatcaccac ccaacaatga ctaatcaaac taacctcaaa acaaatgata +accatacaca acactaaagg acgaacctga tctcttatac tagtatcctt aatcattttt +attgccacaa ctaacctcct cggactcctg cctcactcat ttacaccaac cacccaacta +tctataaacc tagccatggc catcccctta tgagcgggca cagtgattat aggctttcgc +tctaagatta aaaatgccct agcccacttc ttaccacaag gcacacctac accccttatc +cccatactag ttattatcga aaccatcagc ctactcattc aaccaatagc cctggccgta +cgcctaaccg ctaacattac tgcaggccac ctactcatgc acctaattgg aagcgccacc +ctagcaatat caaccattaa ccttccctct acacttatca tcttcacaat tctaattcta +ctgactatcc tagaaatcgc tgtcgcctta atccaagcct acgttttcac acttctagta +agcctctacc tgcacgacaa cacataatga cccaccaatc acatgcctat catatagtaa +aacccagccc atgaccccta acaggggccc tctcagccct cctaatgacc tccggcctag +ccatgtgatt tcacttccac tccataacgc tcctcatact aggcctacta accaacacac +taaccatata ccaatgatgg cgcgatgtaa cacgagaaag cacataccaa ggccaccaca +caccacctgt ccaaaaaggc cttcgatacg ggataatcct atttattacc tcagaagttt +ttttcttcgc aggatttttc tgagcctttt accactccag cctagcccct accccccaat +taggagggca ctggccccca acaggcatca ccccgctaaa tcccctagaa gtcccactcc +taaacacatc cgtattactc gcatcaggag tatcaatcac ctgagctcac catagtctaa +tagaaaacaa ccgaaaccaa ataattcaag cactgcttat tacaatttta ctgggtctct +attttaccct cctacaagcc tcagagtact tcgagtctcc cttcaccatt tccgacggca +tctacggctc aacatttttt gtagccacag gcttccacgg acttcacgtc attattggct +caactttcct cactatctgc ttcatccgcc aactaatatt tcactttaca tccaaacatc +actttggctt cgaagccgcc gcctgatact ggcattttgt agatgtggtt tgactatttc +tgtatgtctc catctattga tgagggtctt actcttttag tataaatagt accgttaact +tccaattaac tagttttgac aacattcaaa aaagagtaat aaacttcgcc ttaattttaa +taatcaacac cctcctagcc ttactactaa taattattac attttgacta ccacaactca +acggctacat agaaaaatcc accccttacg agtgcggctt cgaccctata tcccccgccc +gcgtcccttt ctccataaaa ttcttcttag tagctattac cttcttatta tttgatctag +aaattgccct ccttttaccc ctaccatgag ccctacaaac aactaacctg ccactaatag +ttatgtcatc cctcttatta atcatcatcc tagccctaag tctggcctat gagtgactac +aaaaaggatt agactgaacc gaattggtat atagtttaaa caaaacgaat gatttcgact +cattaaatta tgataatcat atttaccaaa tgcccctcat ttacataaat attatactag +catttaccat ctcacttcta ggaatactag tatatcgctc acacctcata tcctccctac +tatgcctaga aggaataata ctatcgctgt tcattatagc tactctcata accctcaaca +cccactccct cttagccaat attgtgccta ttgccatact agtctttgcc gcctgcgaag +cagcggtggg cctagcccta ctagtctcaa tctccaacac atatggccta gactacgtac +ataacctaaa cctactccaa tgctaaaact aatcgtccca acaattatat tactaccact +gacatgactt tccaaaaaac acataatttg aatcaacaca accacccaca gcctaattat +tagcatcatc cctctactat tttttaacca aatcaacaac aacctattta gctgttcccc +aaccttttcc tccgaccccc taacaacccc cctcctaata ctaactacct gactcctacc +cctcacaatc atggcaagcc aacgccactt atccagtgaa ccactatcac gaaaaaaact +ctacctctct atactaatct ccctacaaat ctccttaatt ataacattca cagccacaga +actaatcata ttttatatct tcttcgaaac cacacttatc cccaccttgg ctatcatcac +ccgatgaggc aaccagccag aacgcctgaa cgcaggcaca tacttcctat tctacaccct +agtaggctcc cttcccctac tcatcgcact aatttacact cacaacaccc taggctcact +aaacattcta ctactcactc tcactgccca agaactatca aactcctgag ccaacaactt +aatatgacta gcttacacaa tagcttttat agtaaagata cctctttacg gactccactt +atgactccct aaagcccatg tcgaagcccc catcgctggg tcaatagtac ttgccgcagt +actcttaaaa ctaggcggct atggtataat acgcctcaca ctcattctca accccctgac +aaaacacata gcctacccct tccttgtact atccctatga ggcataatta taacaagctc +catctgccta cgacaaacag acctaaaatc gctcattgca tactcttcaa tcagccacat +agccctcgta gtaacagcca ttctcatcca aaccccctga agcttcaccg gcgcagtcat +tctcataatc gcccacgggc ttacatcctc attactattc tgcctagcaa actcaaacta +cgaacgcact cacagtcgca tcataatcct ctctcaagga cttcaaactc tactcccact +aatagctttt tgatgacttc tagcaagcct cgctaacctc gccttacccc ccactattaa +cctactggga gaactctctg tgctagtaac cacgttctcc tgatcaaata tcactctcct +acttacagga ctcaacatac tagtcacagc cctatactcc ctctacatat ttaccacaac +acaatggggc tcactcaccc accacattaa caacataaaa ccctcattca cacgagaaaa +caccctcatg ttcatacacc tatcccccat tctcctccta tccctcaacc ccgacatcat +taccgggttt tcctcttgta aatatagttt aaccaaaaca tcagattgtg aatctgacaa +cagaggctta cgacccctta tttaccgaga aagctcacaa gaactgctaa ctcatgcccc +catgtctaac aacatggctt tctcaacttt taaaggataa cagctatcca ttggtcttag +gccccaaaaa ttttggtgca actccaaata aaagtaataa ccatgcacac tactataacc +accctaaccc tgacttccct aattcccccc atccttacca ccctcgttaa ccctaacaaa +aaaaactcat acccccatta tgtaaaatcc attgtcgcat ccacctttat tatcagtctc +ttccccacaa caatattcat gtgcctagac caagaagtta ttatctcgaa ctgacactga +gccacaaccc aaacaaccca gctctcccta agcttcaaac tagactactt ctccataata +ttcatccctg tagcattgtt cgttacatgg tccatcatag aattctcact gtgatatata +aactcagacc caaacattaa tcagttcttc aaatatctac tcatcttcct aattaccata +ctaatcttag ttaccgctaa caacctattc caactgttca tcggctgaga gggcgtagga +attatatcct tcttgctcat cagttgatga tacgcccgag cagatgccaa cacagcagcc +attcaagcaa tcctatacaa ccgtatcggc gatatcggtt tcatcctcgc cttagcatga +tttatcctac actccaactc atgagaccca caacaaatag cccttctaaa cgctaatcca +agcctcaccc cactactagg cctcctccta gcagcagcag gcaaatcagc ccaattaggt +ctccacccct gactcccctc agccatagaa ggccccaccc cagtctcagc cctactccac +tcaagcacta tagttgtagc aggaatcttc ttactcatcc gcttccaccc cctagcagaa +aatagcccac taatccaaac tctaacacta tgcttaggcg ctatcaccac tctgttcgca +gcagtctgcg cccttacaca aaatgacatc aaaaaaatcg tagccttctc cacttcaagt +caactaggac tcataatagt tacaatcggc atcaaccaac cacacctagc attcctgcac +atctgtaccc acgccttctt caaagccata ctatttatgt gctccgggtc catcatccac +aaccttaaca atgaacaaga tattcgaaaa ataggaggac tactcaaaac catacctctc +acttcaacct ccctcaccat tggcagccta gcattagcag gaataccttt cctcacaggt +ttctactcca aagaccacat catcgaaacc gcaaacatat catacacaaa cgcctgagcc +ctatctatta ctctcatcgc tacctccctg acaagcgcct atagcactcg aataattctt +ctcaccctaa caggtcaacc tcgcttcccc acccttacta acattaacga aaataacccc +accctactaa accccattaa acgcctggca gccggaagcc tattcgcagg atttctcatt +actaacaaca tttcccccgc atcccccttc caaacaacaa tccccctcta cctaaaactc +acagccctcg ctgtcacttt cctaggactt ctaacagccc tagacctcaa ctacctaacc +aacaaactta aaataaaatc cccactatgc acattttatt tctccaacat actcggattc +taccctagca tcacacaccg cacaatcccc tatctaggcc ttcttacgag ccaaaacctg +cccctactcc tcctagacct aacctgacta gaaaagctat tacctaaaac aatttcacag +caccaaatct ccacctccat catcacctca acccaaaaag gcataattaa actttacttc +ctctctttct tcttcccact catcctaacc ctactcctaa tcacataacc tattcccccg +agcaatctca attacaatat atacaccaac aaacaatgtt caaccagtaa ctactactaa +tcaacgccca taatcataca aagcccccgc accaatagga tcctcccgaa tcaaccctga +cccctctcct tcataaatta ttcagcttcc tacactatta aagtttacca caaccaccac +cccatcatac tctttcaccc acagcaccaa tcctacctcc atcgctaacc ccactaaaac +actcaccaag acctcaaccc ctgaccccca tgcctcagga tactcctcaa tagccatcgc +tgtagtatat ccaaagacaa ccatcattcc ccctaaataa attaaaaaaa ctattaaacc +catataacct cccccaaaat tcagaataat aacacacccg accacaccgc taacaatcaa +tactaaaccc ccataaatag gagaaggctt agaagaaaac cccacaaacc ccattactaa +acccacactc aacagaaaca aagcatacat cattattctc gcacggacta caaccacgac +caatgatatg aaaaaccatc gttgtatttc aactacaaga acaccaatga ccccaatacg +caaaactaac cccctaataa aattaattaa ccactcattc atcgacctcc ccaccccatc +caacatctcc gcatgatgaa acttcggctc actccttggc gcctgcctga tcctccaaat +caccacagga ctattcctag ccatgcacta ctcaccagac gcctcaaccg ccttttcatc +aatcgcccac atcactcgag acgtaaatta tggctgaatc atccgctacc ttcacgccaa +tggcgcctca atattcttta tctgcctctt cctacacatc gggcgaggcc tatattacgg +atcatttctc tactcagaaa cctgaaacat cggcattatc ctcctgcttg caactatagc +aacagccttc ataggctatg tcctcccgtg aggccaaata tcattctgag gggccacagt +aattacaaac ttactatccg ccatcccata cattgggaca gacctagttc aatgaatctg +aggaggctac tcagtagaca gtcccaccct cacacgattc tttacctttc acttcatctt +gcccttcatt attgcagccc tagcaacact ccacctccta ttcttgcacg aaacgggatc +aaacaacccc ctaggaatca cctcccattc cgataaaatc accttccacc cttactacac +aatcaaagac gccctcggct tacttctctt ccttctctcc ttaatgacat taacactatt +ctcaccagac ctcctaggcg acccagacaa ttatacccta gccaacccct taaacacccc +tccccacatc aagcccgaat gatatttcct attcgcctac acaattctcc gatccgtccc +taacaaacta ggaggcgtcc ttgccctatt actatccatc ctcatcctag caataatccc +catcctccat atatccaaac aacaaagcat aatatttcgc ccactaagcc aatcacttta +ttgactccta gccgcagacc tcctcattct aacctgaatc ggaggacaac cagtaagcta +cccttttacc atcattggac aagtagcatc cgtactatac ttcacaacaa tcctaatcct +aataccaact atctccctaa ttgaaaacaa aatactcaaa tgggcctgtc cttgtagtat +aaactaatac accagtcttg taaaccggag atgaaaacct ttttccaagg acaaatcaga +gaaaaagtct ttaactccac cattagcacc caaagctaag attctaattt aaactattct +ctgttctttc atggggaagc agatttgggt accacccaag tattgactca cccatcaaca +accgctatgt atttcgtaca ttactgccag ccaccatgaa tattgtacgg taccataaat +acttgaccac ctgtagtaca taaaaaccca atccacatca aaaccccctc cccatgctta +caagcaagta cagcaatcaa ccctcaacta tcacacatca actgcaactc caaagccacc +cctcacccac taggatacca acaaacctac ccacccttaa cagtacatag tacataaagc +catttaccgt acatagcaca ttacagtcaa atcccttctc gtccccatgg atgacccccc +tcagataggg gtcccttgac caccatcctc cgtgaaatca atatcccgca caagagtgct +actctcctcg ctccgggccc ataacacttg ggggtagcta aagtgaactg tatccgacat +ctggttccta cttcagggtc ataaagccta aatagcccac acgttcccct taaataagac +atcacgatg \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/neanderthal.txt b/DNA_Alignment/DNA_Alignment/neanderthal.txt new file mode 100644 index 0000000..4e24a48 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/neanderthal.txt @@ -0,0 +1,277 @@ +gatcacaggt ctatcaccct attaaccact cacgggagct ctccatgcat ttggtatttt +cgtctggggg gtgtgcacgc gatagcattg cgagacgctg gagccggagc accctatgtc +gcagtatctg tctttgattc ctgccccatt ccattattta tcgcacctac gttcaatatt +acaggcgagc atacttactg aagtgtgtta attaattaat gcttgtagga cataataata +acgactaaat gtctgcacag ctgctttcca cacagacatc ataacaaaaa atttccacca +aaccccccct cccccgcttc tggccacagc acttaaacac atctctgcca aaccccaaaa +acaaagaacc ctaacaccag cctaaccaga tttcaaattt tatcttttgg cggtatacac +ttttaacagt caccccctaa ctaacacatt attttcccct cccactccca tactactaat +ctcatcaata caacccccgc ccatcctacc cagcacacac cgctgctaac cccatacccc +gagccaacca aaccccaaag acacccccca cagtttatgt agcttacctc ctcaaagcaa +tacactgaaa atgtttagac gggctcacat caccccataa acaaataggt ttggtcctag +cctttctatt agctcttagt aagattacac atgcaagcat ccccattcca gtgagttcac +cctctaaatc accacgatca aaagggacaa gcatcaagca cgcaacaatg cagctcaaaa +cgcttagcct agccacaccc ccacgggaaa cagcagtgat aagcctttag caataaacga +aagtttaact aagctatact aaccccaggg ttggtcaatt tcgtgccagc caccgcggtc +acacgattaa cccaagtcaa tagaagccgg cgtaaagagt gttttagatc accccctccc +caataaagct aaaactcacc tgagttgtaa aaaactccag ttgacacaaa ataaactacg +aaagtggctt taacatatct gaacacacaa tagctaagac ccaaactggg attagatacc +ccactatgct tagccctaaa cctcaacagt taaatcaaca aaactgctcg ccagaacact +acgagccaca gcttaaaact caaaggacct ggcggtgctt catatccctc tagaggagcc +tgttctgtaa tcgataaacc ccgatcaacc tcaccacctc ttgctcagcc tatataccgc +catcttcagc aaaccctgat gaaggctaca aagtaagcgc aagtacccac gtaaagacgt +taggtcaagg tgtagcccat gaggtggcaa gaaatgggct acattttcta ccccagaaaa +ctacgatagc ccttatgaaa cctaagggtc gaaggtggat ttagcagtaa actgagagta +gagtgcttag ttgaacaggg ccctgaagcg cgtacacacc gcccgtcacc ctcctcaagt +atacttcaaa ggacatttaa ctaaaacccc tacgcattta tatagaggag acaagtcgta +acatggtaag tgtactggaa agtgcacttg gacgaaccag agtgtagctt aacacaaagc +acccaactta cacttaggag atttcaactt aacttgaccg ctctgagcta aacctagccc +caaacccact ccaccttact accaaacaac cttagccaaa ccatttaccc aaataaagta +taggcgatag aaattgaaac ctggcgcaat agatgtagta ccgcaaggga aagatgaaaa +attataacca agcataatat agcaaggact aacccctata ccttctgcat aatgaattaa +ctagaaataa ctttgcaagg agagccaaag ctaagacccc cgaaaccaga cgagctacct +aagaacagct aaaagagcac acccgtctat gtagcaaaat agtgggaaga tttataggta +gaggcgacaa acctaccgag cctggtgata gctggttgtc caagatagaa tcttagttca +actttaaatt tacccacaga accctctaaa tccccttgta aatttaactg ttagtccaaa +gaggaacagc tctttggaca ctaggaaaaa accttgtaga gagagtaaaa aatttaacac +ccatagtagg cctaaaagca gccaccaatt aagaaagcgt tcaagctcaa cacccactac +ctaaaaaatc ccaaacatat aactgaactc ctcacaccca attggaccaa tctatcaccc +tatagaagaa ctaatgttag tataagtaac atgaaaacat tctcctccgc ataagcctgc +gtcagattaa aacactgaac tgacaattaa cagcccaata tctacaatca accaacaagt +cattattacc ctcactgtca acccaacaca ggcatgctca taaggaaagg ttaaaaaaag +taaaaggaac tcggcaaatc ttaccccgcc tgtttaccaa aaacatcacc tctagcatta +ccagtattag aggcaccgcc tgcccagtga cacatgttta acggccgcgg taccctaacc +gtgcaaaggt agcataatca cttgttcctt aaatagggac ctgtatgaat ggctccacga +gggttcagct gtctcttact tttaaccagt gaaattgacc tgcccgtgaa gaggcgggca +taacacagca agacgagaag accctatgga gctttaattt attaatgcaa acagtaccta +acaaacccac aggtcctaaa ctaccaaacc tgcattaaaa atttcggttg gggcgacctc +ggagcacaac ccaacctccg agcagtacat gctaagacct caccagtcaa agcgaactac +catactcaat tgatccaata acttgaccaa cggaacaagt taccctaggg ataacagcgc +aatcctattc tagagtccat atcaacaata gggtttacga cctcgatgtt ggatcaggac +atcccaatgg tgcagccgct attaaaggtt cgtttgttca acgattaaag tcctacgtga +tctgagttca gaccggagta atccaggtcg gtttctatct acttcaaatt cctccctgta +cgaaaggaca agagaaataa ggcctacttc acaaagcgcc ttcccccgta aatgatatca +tctcaactta gtattatacc cacacccacc caagaacagg gtttgttaag atggcagagc +ccggtaatcg cataaaactt aaaactttac agtcagaggt tcaattcctc ttcttaacaa +cacacccatg gccaacctcc tactcctcgt tgtacccatt ctaatcgcaa tggcattcct +aatgcttacc gaacgaaaaa ttctaggcta tatgcaacta cgcaaaggtc ccaacgttgt +aggcccctac gggctactac aacccttcgc tgacgccata aaactcttca ccaaagaacc +cctaaaaccc gccacatcca ccatcaccct ctacatcacc gccccgacct tagctctcac +catcgctctt ctactatgaa cccccctccc catacccaac cccctggtta acctcaacct +aggcctccta tttattctag ccacctctag cctagccgtt tactcaatcc tctgatcagg +gtgagcatca aactcaaact acgccctgat cggcgcactg cgagcagtag cccaaacaat +ctcatatgaa gtcaccctag ccatcattct actatcaaca ttactaataa gtggctcctt +taacctctcc acccttatca cagcacaaga acacctctga ttactcctgc catcatgacc +cttggccata atatgattta tctccacact agcagagacc aaccgaaccc ccttcgacct +tgctgaaggg gaatccgaac tagtctcagg ctttaacatc gaatacgccg caggcccctt +cgccctattc ttcatagccg aatacacaaa cattattata ataaacaccc tcaccactac +aatcttccta ggaacaacat ataacgcact ctcccctgaa ctctacacaa catattttgt +caccaagacc ctacttctga cctccctgtt cttatgaatt cgaacagcat acccccgatt +ccgctacgac caactcatac acctcctatg aaaaaacttc ctaccactca ccctagcact +acttatatga tatgtctcca tacccattac aatctccagc attccccctc aaacctaaga +aatatgtctg ataaaagagt tactttgata gagtaaataa taggagttta aaccccctta +tttctaggac tatgagaatc gaacccatcc ctgagaatcc aaaattctcc gtgccaccta +tcacacccca tcctaaagta aggtcagcta aataagctat cgggcccata ccccgaaaat +gttggttata cccttcccgt actaattaat cccctggccc aacccgtcat ctactctacc +atctttgcag gcacactcat cacagcacta agctcgcact gattttttac ctgagtgggc +ctagaaataa acatgctagc ttttattcca gttctaacca aaaaaataaa ccctcgttcc +acagaagctg ccatcaagta tttcctcacg caagcaaccg catccataat ccttctaata +gctatcctct tcaacaatat actctccgga caatgaacca taaccaatac taccaatcaa +tactcatcat taataatcat aatggctata gcaataaaac taggaatagc cccctttcac +ttctgagtcc cagaggttac ccaaggcacc cctctgacat ccggcctgct ccttctcaca +tgacaaaaac tagcccccat ctcaatcata taccaaattt ctccctcact aaacgtaagc +ctcctcctca ctctttcaat cttatccatc atagcaggca gttgaggtgg attaaaccaa +acccagctac gcaaaatctt agcatactcc tcaattaccc acataggatg aataatagca +gttctaccgt acaaccctaa cataaccatt cttaatttaa ctatttatat tatcctaact +actaccgcat tcctactact caacttaaac tccagcacca cgaccctact actatctcgc +acctgaaaca agctaacatg actaacaccc ttaattccat ccaccctcct ctccctagga +ggcctgcccc cgctaaccgg ctttttgccc aaatgggcca ttatcgaaga attcacaaaa +aacaatagcc tcatcatccc caccatcata gccaccatca ccctccttaa cctctacttc +tacctacgcc taatctactc cacctcaatc acactactcc ctatatctaa caacgtaaaa +ataaaatgac agtttgaaca tacaaaaccc accccattcc tccccacact catcaccctt +accacactac tcctacctat ctcccctttt atactaatag tcttatagaa atttaggtta +aatacagacc aagagccttc aaagccctca gtaagttgca atacttaatt tctgcaacag +ctaaggactg caaaacccca ctctgcatca actgaacgca aatcagccac tttaattaag +ctaagccctt actagaccaa tgggactcaa acccacaaac acttagttaa cagctaagca +ccctaatcaa ctggcttcaa tctacttctc ccgccgccgg gaaaaaaggc gggagaagcc +ccggcaggtt tgaagctgct tcttcgaatt tgcaattcaa tatgaaaatc acctcagagc +tggtaaaaag aggcttaacc cctgtcttta gatttacagt ccaatgcttc actcagccat +tttacctcac ccccactgat gttcgccgac cgttgactat tctctacaaa ccacaaagac +attggaacac tatacctact attcggcgca tgagctggag tcctaggcac agctctaagc +ctccttattc gagccgaact gggccagcca ggcaaccttc taggtaacga ccacatctac +aacgttatcg tcacagccca tgcatttgta ataatcttct tcatagtaat acccatcata +atcgggggct ttggcaactg actagttccc ttaataatcg gtgcccccga tatggcgttt +ccccgcataa acaatataag cttctgactc ttacctccct ctctcctact cctgctcgca +tctgctatag tggaagccgg cgcaggaaca ggttgaacag tctaccctcc cttagcaggg +aactactccc accctggagc ctccgtagac ctaaccatct tctccttaca cctagcaggt +gtctcctcta tcttaggggc catcaatttc atcacaacaa ttattaatat aaaaccccct +gccataaccc aataccaaac gccccttttc gtctgatccg tcctaatcac agcagtccta +cttctcctat ctctcccagt cctagctgct ggcatcacta tactactaac agaccgcaac +ctcaacacca ccttcttcga ccccgccgga ggaggagacc ccattctata ccaacaccta +ttctgatttt tcggccaccc tgaagtttat attctcatcc taccaggctt cggaataatc +tcccatattg taacttacta ctccggaaaa aaagaaccat ttggatacat aggtatggtc +tgagctatga tatcaattgg cttcctaggg tttatcgtgt gagcacacca tatatttaca +gtaggaatag acgtagacac acgagcatat ttcacctccg ctaccataat catcgctatc +cccaccggcg tcaaagtatt tagctgactc gccacactcc acggaagcaa tatgaaatga +tctgctgcag tgctctgagc cctaggattc atctttcttt tcaccgtagg tggcctgact +ggcattgtat tagcaaactc atcactagac atcgtactac acgacacgta ctacgttgta +gctcacttcc actatgtcct atcaatagga gctgtatttg ccatcatagg aggcttcatt +cactgatttc ccctattctc cggctacacc ctagaccaaa cttacgccaa aatccatttc +actatcatat tcatcggcgt aaatctaact ttcttcccac aacactttct cggcctatcc +ggaatgcccc gacgttactc ggactacccc gatgcataca ccacatgaaa tatcctatca +tctgtaggct cattcatttc tctaacagca gtaatattaa taattttcat gatttgagaa +gccttcgctt cgaagcgaaa agtcctaata gtagaagaac cctccataaa cctggagtga +ctatatggat gccccccacc ctaccacaca ttcgaagagc ccgtatacat aaaatctaga +caaaaaagga aggaatcgaa ccccccaaag ctggtttcaa gccaacccca tggcctccat +gactttttca aaaagatatt agaaaaacca tttcataact ttgtcaaagt taaattatag +gctaaatcct atatatctta atggcacatg cagcgcaagt aggtctacaa gacgctactt +cccctatcat agaagagctt atcatctttc atgatcacgc cctcataatc attttcctta +tctgcttcct agtcctgtat gcccttttcc taacactcac aacaaaacta actaatacta +gcatctcaga cgctcaggaa atagaaaccg tctgaactat cctgcccgcc atcatcctag +tcctcatcgc cctcccatcc ctacgcatcc tttacataac agacgaggtc aacgacccct +cctttaccat caaatcaatt ggccatcaat ggtactgaac ctacgagtac accgactacg +gcggactaat cttcaactcc tacatacttc ccccattatt cctagaacca ggcgacctgc +gactccttga cgttgacaat cgagtagtac tcccggttga agcccccatt cgtataataa +ttacatcaca agacgtctta cactcatgag ctgtccccac attaggctta aaaacagatg +caattcccgg acgtctaaac caaaccactt tcaccgctac acgaccgggg gtatactacg +gtcaatgctc tgaaatctgt ggagcaaacc acagtttcat gcccatcgtc ctagaattaa +ttcccctaaa aatctttgaa atagggcccg tatttaccct atagcacccc ctctaccccc +tctagagccc actgtaaagc taacttagca ttaacctttt aagttaaaga ttaagagaac +cagcacctct ttacagtgag atgccccaac taaatactac tgtatggccc accataatta +tccccatact ccttacacta ttcctcatca cccaactaaa aatattaaat acaaattacc +acttacctcc ctcaccaaag cccataaaaa taaaaaacta taacaaaccc tgagaaccaa +aatgaacgaa aatctgttcg cttcattcat tgcccccaca atcctaggcc tacccgccgc +agtactgatc attctatttc cccctctatt gatccccacc tccaaatatc tcatcaacaa +ccgactaatt accacccaac aatgactaat caaactaacc tcaaaacaaa tgatagccat +acacaacact aagggacgaa cctgatctct tatactagta tccttaatca tttttattac +cacaactaac ctcctcggac tcctgcctca ctcatttaca ccaaccaccc aactatctat +aaacctagcc atggccatcc ccttatgagc gggcgcagtg attataggct ttcgctctaa +gattaaaaat gccctagccc acttcttacc acaaggcaca cctacacccc ttatccctat +actagttatt atcgaaacca tcagcctact cattcaacca gtagccctgg ccgtacgcct +aaccgctaac attactgcag gtcacctact catgcaccta attggaaacg ccaccctagc +aatatcaacc attaaccttc cctctacact tatcatcttc acaattctaa ttctactgac +tatcctagaa atcgctgtcg ccttaatcca agcctacgtt ttcacacttc tagtaagcct +ctacctgcac gacaacacat aatgacccac caatcacatg cctatcatat agtaaaaccc +agcccatgac ccctaacagg ggccctctca gccctcctaa tgacctccgg cctagccatg +tgatttcact tccactccac aaccctcctc atactaggct tactaaccaa cacactaacc +atataccaat gatggcgcga tgtaacacga gaaagcacat accaaggcca ccacacacca +cctgtccaaa aaggccttcg atacgggata gtcctattta ttacctcaga agtttttttc +ttcgcaggat ttttctgagc cttttaccac tccagcctag cccctacccc ccaactagga +gggcactggc ccccaacagg catcaccccg ctaaatcccc tagaagtccc actcctaaac +acatccgtat tactcgcatc aggagtatca atcacctgag ctcaccatag tctaatagaa +aacaaccgaa accaaataat tcaagcactg cttattacaa ttttactggg tctctatttt +accctcctac aagcctcaga gtacttcgaa tctcccttca ccatttccga cggcatctac +ggctcaacat tttttgtagc cacaggcttc cacggacttc acgtcattat tggctcaact +ttcctcacta tctgcttcat ccgtcaacta atatttcact ttacatccaa acatcacttt +ggcttcgaag ccgccgcctg atactggcat tttgtagatg tggtttgact atttctgtat +gtctccatct attgatgagg gtcttactct tttagtataa atagtaccgt taacttccaa +ttaactagtt ttgacaacat tcaaaaaaga gtaataaact tcgccttaat tttaataatc +aacaccctcc tagccctact actaataatt attacatttt gactaccaca actcaacggc +tacatagaaa aatccacccc ttacgagtgc ggcttcgacc ctatatcccc cgcccgcgtc +cctttctcca taaaattctt cttagtagct attaccttct tattatttga cctagaaatt +gccctccttt tacccttacc atgagcccta caaacaacta atctaccact aatagttacg +tcatccctct tattaatcat catcctagcc ctaagtctgg cctatgaatg actacaaaaa +ggattagact gagccgaatt ggtatatagt ttaaacaaaa cgaatgattt cgactcatta +aattatgata atcatattta ccaaatgccc ctcatttaca taaatattat actagcattt +accatctcac ttctgggaat actagtgtat cgctcacacc tcatatcctc cctactatgc +ctagaaggaa taatactatc gctgttcatt atagctactc tcataaccct caacacccac +tccctcttag ccaatattgt gcctattgcc atactagttt ttgccgcctg cgaagcagcg +gtaggcctag ccctactagt ctcaatctcc aacacatatg gcctagacta cgtacataac +ctaagcctac tccaatgcta aaactaatcg tcccaacaat tatattacta ccactgacat +gactctccaa aaaacacata atttgaatca acacaaccac ccacagccta attattagca +tcatccccct actatttttt aaccaaatca acaacaacct atttagctgc tccccaacct +tttcctccga ccccctaaca acccccctcc taatactaac tacctgactc ctacccctca +caatcatggc aagccaacgc cacttatcca gtgaaccact atcacgaaaa aaactctacc +tctctatact aatctcccta caaatctcct taattataac attcacagcc acagaactaa +tcatatttta tatcttcttc gaaaccacac ttatccccac cttggctatc atcacccgat +gaggcaacca gccagaacgc ctgaacgcag gcacatactt cctattctac accctagtag +gctcccttcc cctactcatc gcactaattt acactcacaa caccctaggc tcactaaaca +ttctactact cactctcact gcccaagaac tatcaaactc ctgagccaac aacttaatat +gactagctta cacaatagct tttatagtaa agatacccct ttacggactc cacttatgac +tccctaaagc ccatgtcgaa gcccccatcg ctgggtcaat agtacttgcc gctgtactct +taaaactagg cggctatggt ataatacgcc tcacactcat tctcaacccc ctgacaaaac +atatagccta ccccttcctt gtactatccc tatggggcat aattataaca agctccatct +gcctgcgaca aacagaccta aaatcgctca ttgcatattc ttcaatcagc cacatagccc +tcgtagtaac agccattctc atccaaaccc cctgaagctt caccggcgca gtcattctca +taatcgccca cggacttaca tcctcattac tattctgcct agcaaactca aactacgaac +gcacccacag tcgcatcata atcctctctc aaggacttca aactctactc ccactaatag +ctttttgatg acttctagca agcctcgcta acctcgcctt accccccact attaacctac +tgggagaact ctctgtgcta gtaaccacat tctcctgatc aaatatcact ctcctactta +cagggctcaa catactagtc acagccctat actccctcta catatttacc acaacacaat +ggggctcact cacccaccac attaacaaca taaaaccctc attcacacga gaaaacaccc +tcatattcat acacctatcc cccattctcc tcctatccct caaccccgac atcattaccg +ggttttcctc ttgtaaatat agtttaacca aaacatcaga ttgtgaatct gacaacagag +gctcacgacc ccttatttac cgagaaagct cacaagaact gctaactcat gcccccatgt +ctaacaacat ggctttctca acttttaaag gataacagct atccattggt cttaggcccc +aaaaattttg gtgcaactcc aaataaaagt aataaccatg cacaccacta taaccaccct +gaccctgact tccctaattc cccccatcct taccaccctc attaacccta acaaaaaaaa +ctcatacccc cattatgtaa aatccattgt cgcatccacc tttattatta gtctcttccc +cacaacaata ttcatgtgcc tagaccaaga agttattatc tcgaactgac actgagccac +aacccaaaca acccagctct ccctaagctt caaactagac tacttctcca taatattcat +ccctgtagca ttgttcgtta catggtccat catagaattc tcactgtgat atataaactc +agacccaaac attaatcagt tcttcaaata tctactcatt ttcctaatta ccatactaat +cttagttacc gctaacaacc tattccaact gttcatcggc tgagagggcg taggaattat +atccttcttg ctcatcagtt gatgatacgc ccgagcagat gccaacacag cagccattca +agcaatccta tacaaccgca tcggcgatat cggtttcatc ctcgccttag catgatttat +cctacactcc aactcatgag acccacaaca aatagccctt ctaaacgcta atccaagcct +caccccacta ctaggcctcc tcctagcagc agcaggcaaa tcagcccaat taggtctcca +cccctgactc ccctcagcca tagaaggccc caccccagtc tcagccctac tccactcaag +cactatagtc gtagcaggag tcttcttact catccgcttc caccccctag cagaaaatag +cccactaatc caaactctaa cactatgctt aggcgctatc accactctat tcgcagcagt +ctgcgccctt acacaaaatg acatcaaaaa aatcgtagcc ttctccactt caagtcaact +agggctcata gtagttacaa tcggcatcaa ccaaccacac ctagcattcc tgcacatctg +tacccacgcc ttcttcaaag ccatactatt tatatgctcc gggtccatca tccacaacct +taacaatgaa caagatattc gaaaaatagg aggactactc aaaaccatac ctctcacttc +aacctccctc accattggca gcctagcatt agcaggaata cctttcctca caggtttcta +ctccaaagac cacatcatcg aaaccgcaaa catatcatac acaaacgcct gagccctatc +tattactctc atcgctacct ccctgacaag cgcctatagc actcgaataa ttcttctcac +cctaacaggt caacctcgct tccccaccct cactaacatt aacgaaaata accctaccct +actaaacccc attaaacgcc tagcagccgg aagcctattc gcaggatttc tcattactaa +caacatttcc cccgcatccc ccttccaaac aacaatcccc ctctacctaa aactcgcagc +cctcgctgtc actttcctag gacttctaac agccctagac ctcaactacc taaccaacaa +acttaaaata aaaaccccac tatacacatt ttatttctcc aacatactcg ggttctaccc +tagcatcaca caccgcacaa tcccctatct aggccttctt acgagccaaa acctgcccct +actcctccta gacctaacct gactagaaaa gctattacct aaaacaattt cacagcacca +aatctccgcc tccatcacca cctcaaccca aaaaggcata attaaacttt acttcctctc +tttcttcttc ccactcatcc taaccctact cctaatcata taacctattc ccccgagcaa +tctcaattac aacatataca ccaacaaaca atgttcaacc agtaactact actaatcaac +gcccataatc atacaaagcc cccgcaccaa taggatcctc ccgaatcaac cctgacccct +ctccttcata gattattcag cttcctacac tattaaagtt taccacaacc accaccccat +catactcttt cacccacagc accaatccta cctccatcgc taaccccact aaaacactca +ccaagacctc aacccctgac ccccatgcct caggatactc ctcaatagcc atcgctgtag +tatatccaaa gacaaccatc attcccccta aataaattaa aaaaactatt aaacccatat +aacctccccc aaaattcaga ataataacac acccaaccac accgctaaca atcaatacta +aacccccata aataggagaa ggcttagaag aaaaccccac aaaccccatt actaaaccca +cactcaacag aaacaaagca tacatcatta ttctcgcacg gactacaacc acgaccaatg +atatgaaaaa ccatcgttgt atttcaacta caagaacacc aatgacccca atacgcaaaa +ttaaccccct aataaaatta attaaccact cattcatcga cctccccacc ccatccaaca +tctccgcatg atgaaacttc ggctcactcc ttggcgcctg cctgatcctc caaatcacca +caggactatt cctagccatg cactactcac cagacgcctc gaccgccttt tcatcaatcg +cccacatcac tcgagacgta aattatggct gaatcatccg ctaccttcac gccaatggcg +cctcaatatt ctttatctgc ctcttcctac acatcggacg aggcctatat tacggatcat +ttctctactc aaaaacctga aacatcggca ttatcctcct gcttgcaact atagcaacag +ccttcatagg ctatgtcctc ccatgaggcc aaatatcatt ctgaggggcc acagtaatta +caaacctact atccgccatc ccatacattg ggacagacct ggttcagtga atctgaggag +gctactcagt agacagtccc accctcacac gattctttac ctttcacttt atcttaccct +tcattattgc agccctagca gcactccacc tcctattctt gcacgaaaca ggatcaaaca +accccctagg aatcacctcc cattccgata aaatcacctt ccacccttac tacacaatca +aagacgccct cggcttattt ctcttccttc tctccttaat gacattaaca ctactctcac +cagacctcct aggcgaccca gacaattata ccctagccaa ccccttaaac acccctcccc +acatcaagcc cgaatgatat ttcctattcg cctacacaat tctccgatcc gtccctaaca +aactaggagg cgtccttgcc ctactactat ccatcctcat cctggcaata atccccatcc +ttcatgtatc caaacaacaa agcataatat ttcgcccact aagccaatca ctttattgac +tcctagccgc agacctcctc attctaacct gaatcggagg acaaccagta agctaccctt +ttatcatcat tggacaagta gcatccgtac tatacttcac aacaatccta atcctaatac +caaccatctc cctaattgaa aacaaaatac tcaaatgggc ctgtccttgt agtataaact +aatacaccag tcttgtaaac cggagatgaa aacctttttc caaggacaaa tcagagaaaa +agtctttaac tccaccatta gcacccaaag ctaagattct aatttaaact attctctgtt +ctttcatggg ggagcagatt tgggtaccac ccaagtattg actcacccat cagcaaccgc +tatgtatttc gtacattact gccagccacc atgaatattg tacagtacca taattacttg +actacctgca gtacataaaa acctaatcca catcaacccc ccccccccat gcttacaagc +aagcacagca atcaaccttc aactgtcata catcaactac aactccaaag acgcccttac +acccactagg atatcaacaa acctacccac ccttgacagt acatagcaca taaagtcatt +taccgtacat agcacattac agtcaaatcc cttctcgccc ccatggatga cccccctcag +ataggggtcc cttgatcacc atcctccgtg aaatcaatat cccgcacaag agtgctactc +tcctcgctcc gggcccataa cacttggggg tagctaaagt gaactgtatc cgacatctgg +ttcctacttc agggccataa agcctaaata gcccacacgt tccccttaaa taagacatca +cgatg \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/neanderthal.txt_vs_GreatApes.txt.txt b/DNA_Alignment/DNA_Alignment/neanderthal.txt_vs_GreatApes.txt.txt new file mode 100644 index 0000000..71bf331 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/neanderthal.txt_vs_GreatApes.txt.txt @@ -0,0 +1,18693 @@ +Score: 66207 +g = a +t = c +- => a +- => c +a => - +g = a +- => c +- => c +- => c +- => c +- => a +- => c +- => a +- => g +- => a +- => a +- => a +- => c +- => c +- => c +c = c +- => a +- => a +- => a +- => c +- => c +- => a +- => a +- => t +- => t +- => a +- => a +- => g +- => c +- => c +- => c +- => c +- => a +- => t +- => a +- => t +a = c +- => c +- => t +- => a +- => g +- => t +- => c +- => g +- => t +- => c +- => g +- => t +- => c +- => a +- => c +- => a +- => c +- => a +- => c +- => a +- => a +- => c +- => g +- => a +- => t +- => c +- => c +- => c +- => g +- => c +- => c +- => c +- => g +- => c +- => c +- => c +- => c +- => c +- => a +- => a +- => c +- => a +- => t +- => g +- => a +- => c +- => c +- => a +- => c +- => c +- => c +- => g +- => a +c = c +- => t +- => g +- => a +t = t +- => a +- => c +- => a +- => a +- => t +- => c +- => a +- => a +- => c +- => t +- => c +- => c +- => c +- => c +a = a +c = c +- => t +- => g +- => a +- => c +- => a +- => a +- => t +- => t +- => t +- => t +- => c +- => a +- => c +- => g +- => t +- => a +- => t +- => g +- => g +- => c +a = g +- => g +- => t +- => t +- => t +- => t +g = c +- => t +- => a +- => c +- => t +- => t +- => t +- => a +- => a +- => a +a = c +a = c +- => t +t = c +- => a +- => a +- => a +- => c +- => c +- => a +- => c +- => c +- => c +- => c +- => g +- => a +- => c +- => a +- => a +- => a +a => - +- => a +- => g +a => - +- => a +- => t +- => c +- => a +a = c +t = g +t = c +- => c +- => c +- => c +- => c +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c => - +t => - +t => - +g => - +- => c +c => - +a => - +c = c +- => a +a => - +c = a +c = c +c = c +- => t +g = a +- => a +- => a +- => a +a => - +t => - +- => a +a = c +a => - +- => a +a => - +t = a +- => c +c = a +c = c +g => - +- => a +a => - +- => a +a => - +- => a +a => - +t = a +a = a +- => c +c => - +- => c +- => a +c = c +g => - +g => - +g => - +a = a +c = c +- => t +t => - +- => t +- => c +t = c +- => c +- => a +- => c +- => c +- => a +- => a +- => c +- => a +- => c +c = a +- => a +a = g +- => t +t = g +c => - +- => c +c = a +- => g +t = g +t = t +- => g +g => - +- => g +g = a +t = c +- => c +- => a +- => a +- => c +- => a +- => a +- => a +c = a +t = t +a = a +c = c +- => a +- => g +- => g +- => t +a = t +- => g +- => t +- => t +- => c +g = g +- => t +c = a +c = c +- => t +- => t +- => a +- => a +- => t +- => t +t = a +- => a +a = t +- => t +- => g +- => t +t = g +g = g +- => t +t = a +c = c +a = t +a = t +g = g +t = t +g = g +a => - +a => - +a => - +t = a +c = c +g => - +- => a +a = c +t => - +g => - +g => - +g => - +- => g +- => c +g => - +- => g +- => a +g = g +t = c +t => - +c = c +- => g +a = a +c = c +a => - +- => a +- => t +- => t +a = a +t = t +- => a +a => - +c => - +c = a +c = c +- => t +- => t +g => - +g => - +- => g +- => c +g = a +- => t +c = c +c = c +t = a +c = c +g = g +c = c +- => t +- => a +- => t +- => t +t => - +c => - +c => - +- => t +t = a +c = c +t => - +c = c +a = a +t = t +c = c +g => - +t => - +g => - +a => - +g = g +- => t +a => - +- => a +a = c +- => c +c => - +a = c +c = c +g = g +c = t +c = c +c = c +- => t +t = t +- => a +- => g +- => t +- => t +- => t +a = c +- => t +- => g +t => - +a => - +a = t +c = c +t = t +a => - +- => a +- => t +- => g +a => - +- => a +a = c +- => g +- => c +- => t +g = g +t = t +g = a +- => c +- => a +- => c +- => c +- => a +c => - +- => c +- => g +c = a +- => g +t = g +c = c +c = c +t = a +- => a +- => g +- => g +a = t +c => - +- => c +- => g +c = c +- => a +- => g +- => a +- => g +- => t +- => g +a => - +c = a +t = t +a = a +- => g +- => c +g = g +t => - +t => - +c => - +- => c +c = a +c = c +- => g +- => t +- => g +- => t +- => g +- => g +t = g +- => g +g => - +- => g +g => - +- => g +g = c +- => t +g = g +- => c +- => t +- => t +- => t +- => t +- => t +a = a +t = t +a = g +g = g +- => t +- => t +- => t +a = a +c = c +- => g +t = t +c => - +c = a +c => - +- => c +c => - +- => c +- => t +c => - +- => c +- => t +c => - +a = c +g = g +t => - +- => a +a = g +g = g +g = g +t = c +a = a +c => - +c => - +c => - +- => c +- => t +c => - +- => c +- => a +- => c +c => - +g => - +c => - +t => - +- => c +- => a +c = a +- => t +- => t +t = a +t = t +- => c +- => c +- => c +- => a +c => - +- => c +- => t +c = a +- => t +c = c +- => t +- => g +t = g +a => - +- => a +a = c +a = a +c = c +- => t +- => a +t = g +g = g +- => t +- => a +a = g +c = c +a => - +t => - +t => - +a = a +c = c +- => t +a = a +- => c +c = a +- => g +g = a +- => a +- => t +- => a +- => a +- => a +a = t +- => t +t = c +- => c +a = c +c = c +a = t +t = t +g = g +- => c +c = a +c = c +- => a +a = c +t => - +t = t +t = t +- => c +a = g +c = c +t => - +g = g +a = a +a = a +a = a +t = t +a = c +c = c +a = a +c = c +g = a +a = a +t = t +a = a +c => - +a = c +- => t +- => g +t = g +g = g +- => a +- => c +- => t +a = t +c = c +a => - +g => - +t = a +t = t +c = c +c = c +- => t +- => t +- => g +- => g +- => t +c = c +- => t +a = a +c = c +- => g +- => g +c = c +c = c +- => t +- => a +- => t +a = g +t = t +c => - +- => c +- => a +c = a +- => g +- => t +- => g +- => a +a => - +- => a +a => - +- => a +a = t +c = c +- => g +- => a +- => t +- => g +- => g +- => g +- => g +- => g +- => t +- => t +a = c +a = a +c = c +t = a +a = a +t = t +- => a +- => c +- => c +- => c +a = g +- => g +g => - +- => g +- => c +- => c +- => t +- => c +g = g +a = c +t = t +- => c +- => c +- => t +- => c +- => t +c = c +a = a +c => - +c => - +- => c +- => g +- => t +- => g +- => a +- => g +c = a +a = a +c = c +a => - +t => - +t = a +- => c +- => g +c => - +- => c +c => - +- => c +c => - +g => - +- => c +- => t +- => a +- => t +c = a +- => a +a = c +g = t +- => a +a => - +- => a +a => - +- => a +- => g +- => t +a = g +- => c +- => c +- => t +c = c +c = c +- => t +t = a +- => c +- => c +- => a +c = c +- => a +a => - +- => a +- => g +- => t +- => t +- => c +a = c +- => c +- => t +c = a +- => a +- => g +- => g +- => g +- => t +- => a +- => g +- => a +a = c +- => t +- => c +- => c +t = c +- => c +- => c +- => c +c = c +- => g +- => t +a => - +- => a +- => g +a = g +c = c +t => - +a = a +- => c +- => c +- => c +- => c +- => t +- => g +- => c +- => t +- => c +- => c +c => - +a = c +t => - +a = a +c => - +t => - +g => - +t => - +c = c +- => t +- => a +a => - +- => a +a => - +c = a +- => t +t => - +- => t +- => g +t = a +- => c +c => - +- => c +c => - +a => - +a => - +c = c +t = t +- => a +a = c +a = a +c = c +- => g +g = a +- => t +a = a +c = c +a = a +- => c +- => g +c = c +g = t +- => a +- => t +- => t +a = t +a = a +- => c +- => t +c = a +- => g +- => a +g = a +- => t +- => a +a = c +a = a +- => c +c = a +a = a +t => - +- => t +t = a +- => c +c = a +- => t +- => g +g = a +t = a +- => a +- => a +a => - +c => - +c = a +c => - +c => - +- => c +- => a +c => - +- => c +- => t +c => - +- => c +c => - +- => c +c => - +- => c +- => t +c = a +c = c +c = c +c = c +- => a +a => - +- => a +a = t +c = c +t => - +a => - +c = a +a = a +- => c +c => - +- => c +c = a +t = t +a = a +a = a +t = g +c = g +c = c +a => - +- => a +a => - +- => a +a = c +a = c +a = c +t = t +a = a +c = c +- => a +a = c +t => - +g = g +a => - +c = a +- => t +g = g +t = t +- => c +- => c +- => a +c => - +- => c +- => t +c = a +- => a +a = c +t => - +- => c +c => - +a = c +g = g +t => - +t => - +c = c +- => a +a => - +t => - +t = a +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +g = g +a = a +c = c +a = a +t = t +g = g +t => - +- => t +t = a +a = a +t = t +a = a +a = a +g = g +t = t +a = a +c = c +c = c +a = a +c => - +- => c +c = a +g = g +a = a +c = c +c = c +g = g +t = t +c = c +a = a +t = t +t = t +a = a +c = c +a = g +t = t +g = g +c = c +t => - +- => t +t = g +t = t +a = a +t = t +g = g +t = t +a => - +t => - +c => - +g => - +c = a +c = c +- => t +- => a +- => t +- => t +a => - +- => a +a => - +c = a +g = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +- => a +a => - +c = a +t = t +c => - +a = c +- => g +g = a +t = t +t = t +a = a +t = t +g => - +a = g +a => - +c = a +c = c +c = c +a => - +c = a +- => t +c = c +a = a +t = t +g = g +g = g +g = g +t = t +t = t +t = t +- => a +a => - +g = a +a = a +- => c +c = a +g = g +a => - +g = a +g = g +g = g +g = g +g = g +t = t +a = a +c = c +t = t +t = t +t = t +c = c +t = t +t = t +g = g +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +a = a +a = a +t = t +t = t +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +g = t +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +- => a +a = c +t => - +t = t +a = a +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a => - +- => a +- => g +a = c +t => - +t => - +- => t +t = c +c = c +t = t +g = g +a = a +a = a +a = a +a = a +a = a +g = g +a = a +g = g +a = a +c = c +- => t +t = t +a => - +- => a +a = t +a = a +c = c +a = g +g = g +g = g +a = a +a = a +c = c +c = c +t => - +t => - +t => - +- => t +t => - +- => t +- => c +- => c +t = t +c = c +c = c +a => - +- => a +a = g +a = a +a = a +g = g +t = c +- => a +a => - +g = a +a = a +g = g +g = g +c = c +c = c +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a => - +- => a +a => - +t = a +- => c +c = c +a => - +- => a +- => g +a => - +- => a +a = c +t => - +a = a +t = t +g = g +a = a +t = t +g = g +t = t +t = t +- => c +c = c +c = c +t => - +g = g +t = t +c = c +c = c +g = a +g = a +g = g +t = t +a = a +a = a +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +g = g +t = c +t = t +a => - +- => a +a = g +t = t +c => - +c = c +c = c +t => - +c = c +t = t +a = a +- => c +c = a +c = c +- => t +a = a +a = a +c = c +c = c +a = a +t = t +a => - +- => a +a = g +t = t +c = c +c = c +- => t +t => - +a = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a => - +- => a +a = g +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +t = t +a = a +c = c +g = g +a = a +t = t +g = g +a = a +a = a +c = c +a = g +g = g +g = g +t = t +t = t +- => a +a = c +c = c +t => - +a = a +c = c +t = t +- => a +a = c +t => - +t => - +- => t +t => - +- => t +t = c +c = c +c = c +c = c +a = a +t = t +c = c +g = g +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a = a +a = a +c = c +a = a +g = g +g = g +a = a +g = g +g = g +c = c +t = t +a = a +a = a +g = g +t = t +c = c +c = c +a = a +a = a +t = t +- => c +- => c +c = c +t => - +t => - +a = a +c = c +- => t +t => - +c = t +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +g = g +c => - +c = c +- => t +g = a +a = a +t = t +c = c +c = c +- => t +t => - +c = t +a = a +g = g +t => - +- => t +t = c +a = a +t => - +- => t +t = c +t = t +c = c +- => a +a = t +c = c +t => - +a = a +a = a +c = c +c = c +g = g +a = a +a = a +- => t +t => - +c = t +a = a +c = c +c = c +c = c +g = g +- => c +c = c +t => - +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a => - +t => - +g = a +t = t +- => a +- => c +- => a +a = c +c = c +t => - +t = t +c => - +c = c +- => t +t = t +a => - +c => - +c = a +- => t +c = c +c = c +- => t +t = t +a = a +a = a +t = t +a = a +a = a +c = c +g => - +- => g +g = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +c => - +c = c +- => t +t = t +a => - +c = a +- => t +c = c +t = t +a = a +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c => - +c = c +- => t +c = c +- => g +g = a +t => - +- => t +t => - +c = t +c = c +t = t +g = g +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +- => a +a => - +- => a +a = c +t => - +c = c +c = c +c = c +t = t +g = g +c = t +c = c +t = t +a = a +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +c = c +a = g +c = c +a = a +t = t +c = c +c = c +g = g +c = t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +c = c +c = c +g = a +a = a +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = a +c = c +c = c +c = c +c = c +a = a +c = c +a = g +a = a +a = a +t => - +- => t +t = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +- => t +t => - +c = t +c = c +c = c +- => a +- => c +a => - +t => - +a = a +t => - +- => t +t = c +a = a +a = a +c = c +a = a +g = g +a = a +c = c +c = c +c = c +a = a +g = g +c = a +g = g +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +c = c +a = a +c = c +t = t +c = c +- => t +t => - +c = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +t = t +t = t +a = a +c = c +- => a +a => - +g = a +t = t +a => - +- => a +a = g +t = t +t = t +- => c +c => - +- => c +c = a +- => g +t = t +- => c +c = c +t = t +c = c +- => t +t => - +- => t +t => - +c = t +c = c +t => - +t = t +c = c +t => - +c = c +t => - +t = t +t = t +a = a +t => - +- => t +t = c +c = c +g = g +g = g +c = a +t = t +c => - +c = c +c = c +- => t +g = a +c = c +a = a +g = g +a = a +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +a = a +t => - +- => t +t = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +t = t +c = c +c = c +a = a +c = c +t = t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a = a +g = g +c = t +c = c +t => - +- => t +t = c +a = a +c = c +c = c +c = c +t = t +- => c +c => - +- => c +c => - +a = c +c = c +t = t +a => - +- => a +a = c +g = g +g = g +a = a +t = t +c => - +c = c +- => t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +t = t +a = a +g = g +g = g +a = a +c = c +a = a +a = a +a = a +g = g +c = c +a = a +c = c +g => - +t = a +t = t +c = c +- => t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c => - +c = c +- => t +a = a +c = c +c = c +t = t +- => c +- => c +c => - +a => - +c = c +g = a +a = a +c = c +g = a +a = a +t = t +c = c +c = c +c = c +g = g +- => a +- => c +a = a +c = c +g => - +t => - +t = t +- => a +a = c +t => - +t = t +a = a +c = c +t = t +t = t +c = c +c = c +c = c +a = a +t => - +- => t +t = c +c = c +t = t +a = a +t = t +t = t +t = t +c = c +- => a +a = c +c = c +t => - +t = t +t = t +c = c +c = c +a = a +t = t +t = t +t = t +c = c +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a => - +c = a +- => t +t = t +c = c +c = c +c = c +- => a +a = t +c = c +c = c +c = c +t => - +g = g +a => - +c = a +- => t +a = a +g = g +a = a +t = t +g = g +a = a +c = c +t = t +c = c +a = a +- => t +t => - +c = t +g = g +g = g +a = t +g = g +g = g +a = a +g = g +- => t +t => - +c = t +t = t +a = g +a = a +g = g +t = t +g = a +- => a +a = c +c = c +t => - +t = t +g => - +- => g +g = a +t = t +c = c +c = c +a = a +g = g +a = a +c = c +- => a +a => - +g = a +g = g +g = g +t = c +t = t +a = a +c = c +a = a +t = t +a = g +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +t = t +a = a +t = t +c = c +a = g +- => t +t => - +c = t +c = c +a = a +a = a +a = a +c = c +- => a +a = c +t => - +t = t +a = a +a = a +t = t +g = g +a = a +c = c +a = a +c = c +c = c +g => - +- => g +g = a +g = g +g = g +a = a +g = g +t = t +c = c +t = t +t = t +a = c +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +g = g +g = g +a = a +g = g +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +c = c +a = g +a = a +c = c +g = g +a = a +t = t +- => a +a = c +t => - +c = c +- => a +a => - +- => a +- => c +a = a +c = c +g => - +t => - +t = t +c = c +g = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +- => a +a = c +t => - +t = t +a = a +c = c +g = g +g = g +c = c +t = t +a = a +c = c +a = a +a = a +a = a +g = g +t = t +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a = g +a = a +a = a +c = c +t => - +c = c +- => a +a = c +t => - +c = c +t = t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +a = c +g = g +g = g +c = c +a = a +t => - +- => t +t = c +a = a +t = t +a = a +t = t +c = c +c = c +- => g +g => - +- => g +g => - +a = g +g = g +c = c +a = a +g = g +g = g +c = c +t = t +a = a +c = c +a = a +c = c +a = a +t = t +c => - +c = c +- => t +t = t +t = t +c = c +t = t +c = c +c = c +g = g +- => t +t => - +c = t +t = t +- => a +a = c +t => - +t = t +t = t +c = c +t = t +t = t +a = a +t = t +a = a +a = a +c = c +t = t +c = c +c = c +g = g +c = c +g = g +g = g +t = c +a => - +- => a +a => - +c = a +- => t +c = c +g = g +c = c +- => a +a = c +c = c +t => - +t = t +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +- => a +a = c +c = c +t => - +a = a +a = a +g = g +t = t +c = c +g = g +g = g +t = t +a = a +t => - +- => t +t = c +a = a +a = a +a = a +t = t +g = g +c = t +a = a +g = g +a = a +g = g +- => c +c = c +t => - +c = c +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +g = g +c = t +t = t +a = a +a = a +c = c +t = t +a = a +c = c +t => - +- => t +t = c +t = t +t = t +c = c +c = c +g = g +c = c +c = c +- => a +a => - +g = a +c = c +t = t +c = c +c = c +g = g +c = t +a = a +g = g +a = t +c = c +c = c +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +g = a +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +c = c +a = g +g = g +g = g +a = a +c = c +a = a +c = c +c = c +a = a +c = c +t = t +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +t = t +c = c +c = c +t = t +- => a +a => - +g = a +- => t +t => - +c = t +c = c +g = g +t = t +c = c +c = c +g = g +c = t +g = g +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +g = g +t = t +a = a +c = c +g = a +c = c +c = c +t = t +c = c +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +a = g +c = c +c = c +c = c +c = c +a => - +c = a +- => t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +g = g +c = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +a = a +t = t +t = t +a = a +a = a +t => - +- => t +t = c +a => - +- => a +a => - +- => a +a => - +- => a +a => - +t => - +- => a +- => c +a = g +a = a +t = t +c => - +- => c +c = a +c = c +c = c +c = c +a = a +a = a +t => - +- => t +t = c +a = a +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +a => - +- => a +a = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a => - +- => a +a => - +c = a +c = c +- => t +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +g = g +t = t +t = t +g = g +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +g = g +t = t +a => - +- => a +a => - +c = a +- => t +c = c +a = a +g = g +c = c +a = g +c = c +c = c +a => - +- => a +a = g +c = c +- => a +a = c +t => - +c = c +a = a +g = g +g = g +c = c +a = a +c = c +g = g +c = c +t = t +c = c +t => - +t => - +a => - +t = t +t = t +a = a +c = c +t = t +a = a +c = c +- => t +- => g +- => t +a = a +t = t +a = a +c = c +g => - +- => a +- => a +a => - +- => a +a => - +- => a +- => t +a => - +c => - +- => a +a => - +- => a +a => - +- => a +a => - +g => - +- => a +a => - +c = a +- => t +a = a +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +- => g +g => - +a = g +a = a +g = g +a = a +t = t +t = t +c = c +g = g +g = g +a = a +a = a +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +- => a +a = c +t => - +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +a = a +t = t +c = c +g = a +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +a = a +c = c +a = g +a = a +t = t +a = a +a = a +t = t +- => a +a => - +- => a +a => - +g => - +- => a +a => - +c = a +- => t +t = t +t = t +a = g +a => - +- => a +a = c +a = a +c = c +c = c +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +t = t +a = a +t = t +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +t = t +- => a +a = c +t => - +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +a = a +a = a +t = t +a = a +a = a +a = a +t = t +- => c +c = c +c = c +c = c +c = c +c = c +t => - +t = t +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +c = c +- => a +a => - +g = a +- => a +a => - +- => a +a => - +- => a +a = c +c = c +c = c +t => - +a = a +t = t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +c = c +c = c +t = t +c = c +a = a +t = t +a = a +g = g +g = g +a = a +c = c +t = t +c = c +c = c +g = g +t = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +g = g +t = a +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +a = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a => - +- => a +a = g +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +g = g +c = t +t = t +a = a +c = c +c = c +t = t +c = c +c = c +a => - +t = a +- => c +- => c +c = c +c = c +t => - +a = g +a = a +c = c +c = c +a = a +c = c +g = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +- => a +a = c +t => - +t = t +t = t +g = a +- => a +a => - +- => a +a => - +- => a +- => t +- => t +a = a +t = t +t = t +a => - +t = a +c = c +a = a +- => c +c => - +a = c +t => - +c = c +c = c +t => - +t = t +c = c +g = a +a = a +c = c +t = t +t = t +- => a +a = c +t => - +t = t +- => a +a => - +g = a +a = a +t = t +a = a +c = c +t => - +t = t +- => c +- => c +- => c +c => - +- => c +c => - +t => - +c = c +- => t +t => - +c = t +c => - +- => c +c => - +- => c +c = a +a = a +g = g +t = t +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => t +t = t +a = a +a = a +g = g +c = c +c = c +c = c +- => t +t => - +c = t +c = c +t = t +a = a +g = g +g = g +a = a +t = t +a = a +a = a +c = c +c = c +a = a +c = c +g = g +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +c = c +a = a +a = a +c = c +t = t +- => a +a => - +- => a +a = c +t => - +c = c +a = a +t = t +c = c +- => a +a = c +t => - +c = c +a = a +a = a +t = t +g = g +a = a +c = c +c = c +- => a +a => - +- => a +a = c +c = c +t => - +t = t +g = g +t = c +a => - +- => a +a => - +c = a +- => t +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +t = t +a => - +c = a +- => t +a = a +a = a +c = c +- => a +a = c +t => - +t = t +a = a +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +g = g +a = a +g = g +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c = a +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +t = t +- => a +a = c +t => - +a = a +c = c +t = t +a = a +a = a +t = t +c => - +c = c +- => t +t = t +c = c +a = t +t = t +c => - +c = c +c = c +- => t +a = a +a = a +- => t +- => t +- => t +t => - +c = t +c => - +t => - +a => - +c = c +- => t +t = t +c = c +a = t +c = c +c = c +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +t = t +t = t +c = c +t = t +c = c +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t => - +- => t +t = g +t = t +c = c +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +a => - +- => a +a = g +- => t +- => t +t => - +a => - +c = t +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +a => - +- => a +a = t +c = c +t = t +c = c +c = c +a => - +c = a +- => t +c = c +a = a +c = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +g = g +c = a +c = c +t = t +c = c +t = t +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t => - +- => t +t = c +t = t +a = a +a = a +c = c +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = c +t => - +c = c +c = c +a = a +t => - +- => t +t = c +a = a +t = t +c = c +g = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +g = g +- => t +- => t +t => - +c => - +c = t +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = a +t = t +c => - +c = c +- => t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +g => - +a => - +g = g +c = a +- => a +- => t +- => a +a = c +t => - +t = t +c = c +t = t +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +t = t +a = a +t = t +c => - +c = c +c = c +c = c +- => t +t = t +a = a +a = a +c = c +a = a +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +c = c +t = t +a = a +c = c +g = a +- => a +a = c +t => - +c = c +c = c +c = c +a = a +- => t +t => - +c = t +t = t +t = t +g = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +t = t +t = t +t = t +a = a +c = c +a = a +c = c +a => - +t => - +a => - +t = a +c = c +- => a +a = c +- => c +c = a +c = c +c = c +c = c +- => a +a = c +a = a +a = a +a = a +a = a +t = t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +c = c +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a => - +- => a +a = c +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +a => - +- => a +a = g +t = t +- => c +c = c +t => - +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +c = c +t => - +- => t +t = c +t = t +c = c +a = a +c = c +t => - +g => - +- => t +t = a +c = c +- => g +g = a +c = a +t = t +c => - +c = c +- => t +c = c +g = g +a = a +c => - +g => - +- => c +c = a +- => t +t = t +c = c +a = a +a = a +a = a +a = a +- => t +t => - +c = t +c = c +a = a +- => t +t => - +c = t +t = t +c => - +- => c +c = a +c = c +c = c +c = c +t = t +a = a +a = a +c = c +a => - +a => - +c = a +- => g +- => t +a = a +a = a +a = a +c => - +- => c +c => - +t => - +t => - +- => c +c => - +- => c +c => - +- => c +c = a +- => t +- => g +c = c +c = c +t = t +a = a +- => c +c = a +g = t +c = c +c = c +c = c +- => t +c = c +c = c +t => - +t => - +t = t +a = a +c = c +a = a +a = a +c = c +- => a +a => - +- => a +a = c +t => - +c = c +- => a +a = c +t => - +t = t +a = a +c = c +- => t +t = t +c = c +t => - +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = t +t = t +t = t +a = g +t = t +c = c +c = c +g = g +a = a +a = a +g = g +g = g +c = t +c = t +g = a +a = a +c = c +g = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +t = t +t = t +a => - +c => - +c = a +- => t +c = c +c = c +- => t +a = a +a = a +a = a +- => t +t => - +c = t +a = a +t = t +c = c +c = c +c = c +a => - +t = a +c => - +- => c +c => - +- => c +- => t +c => - +a = c +a = a +- => t +t = c +a = a +a = a +a = a +a = a +g = g +c = c +- => a +a => - +- => a +a = c +t => - +t = t +a = a +c = c +a => - +- => a +a => - +t = a +c => - +a = c +c = c +- => g +- => t +- => t +t => - +c = t +c = c +c = c +- => a +a => - +c = a +c = c +c = c +c = c +t = t +t = t +c = c +g = g +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +g = g +g = g +a = a +c = c +a => - +- => a +a = g +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +t = t +t = t +- => c +c = c +t => - +t = t +a = a +a = a +t = t +a = a +a = a +g = g +c = c +t = t +c = c +a = a +c = c +g = g +- => a +a = c +t => - +a = a +t = t +c = c +c = c +g = g +c = t +g = g +a => - +- => a +a = g +c = c +a = a +g = t +t = t +c => - +c = c +- => t +c = c +t = t +c = c +c = c +- => a +a = c +t => - +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +- => t +t => - +c = t +- => a +a = c +t => - +t = t +- => a +a => - +t = a +c = c +t = t +a = a +t = t +c = c +c = c +c = c +- => g +g => - +a = g +g = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +c = c +a = a +c = c +- => a +a = c +t => - +a = a +c = c +t = t +a = a +t = t +a = a +c = c +a = a +a = a +a = a +c = c +g = g +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +a = a +c = c +t = t +a = a +c = c +a = t +c = c +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +t => - +- => t +t => - +- => t +t = c +g = g +g = g +a = a +c = c +a = a +c = c +t = t +c => - +c = c +- => t +t = t +t = t +t = t +c = c +c = c +a = a +t = t +a = a +a = a +g = g +g = g +- => a +- => t +a => - +c => - +g = a +a = a +t => - +- => t +t = c +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +g = g +g = g +t = t +t = t +a = a +c = c +c = c +- => g +a => - +c = a +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +t = t +c = c +a => - +c = a +- => t +t = t +- => c +c = c +t => - +c = c +c = c +a = a +t = t +a = a +c = c +c = c +a = g +a = a +a = a +a = a +c = c +t = t +c = c +a = g +t = t +c = c +a = t +g = g +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +a = a +a = a +g = g +- => c +c = c +t => - +t = t +- => a +a = c +t => - +a = a +g = g +a = a +a = a +c = c +a = g +a = a +g = g +t = t +a => - +- => a +a => - +c = a +- => t +- => a +a => - +- => a +a = c +t => - +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +t = t +a => - +c = a +- => t +t = t +a = a +c = c +c = c +t = t +g = a +g = g +g = g +c = c +c = c +t = t +c = c +g = g +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +a = a +c = c +c = c +g = g +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +t = t +c = c +- => t +t => - +- => t +t => - +c = t +c = c +g = g +c = c +a = a +c = c +c = c +c = c +- => a +a = c +t => - +g = g +t = t +c = c +t = t +a = a +c = c +a = a +c = c +g = a +t = t +c => - +c = c +- => t +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a = g +a = a +c = c +c = c +a = g +a = g +c = c +t = t +a = a +c = c +g = g +g = g +c = t +t = t +a = a +a = a +c = c +- => a +- => c +a = c +t => - +t => - +g = g +a = a +t = t +g = g +a = a +t = t +a = a +c = c +t = t +c = c +g = g +g = g +g = g +a = a +- => t +t => - +c = t +- => a +a => - +- => a +a = c +c = c +t => - +g = g +a = a +a = a +c = c +t = t +t = t +c = c +a = a +c = c +c = c +t = t +c = c +t = t +t = t +c = c +c = c +g = g +a = a +t = t +g = g +c = c +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +t = t +a => - +c = a +- => t +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +a = a +c = c +a => - +t => - +t = a +c = c +- => t +c = c +- => t +c = c +g = g +c = c +g = g +t = t +c = c +t = t +g = g +a = a +c = c +- => g +g => - +a = g +c = c +g = g +c = c +t = t +t = t +a = a +t = t +c = c +t = t +c = c +a => - +c = a +- => t +c = c +a => - +c = a +- => t +t = t +a = a +t = t +c = c +g = g +c = c +g = g +g = g +a = a +t => - +- => t +t = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +a => - +- => a +a = t +t = t +c = c +t = t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +c = c +t = t +- => c +a = g +a = a +t = t +c = c +a => - +c = a +c = c +- => t +c = c +g = a +- => a +a = c +t => - +a = a +a = a +a = a +a = a +g = g +a = a +c = c +g = g +a = a +- => t +- => t +t => - +c => - +c = t +c = a +c = c +c = c +a = g +c = c +c = c +t = t +t = t +c = c +g = g +c = c +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t => - +- => t +t = c +c = c +t = t +t = t +c = c +t = t +- => g +g => - +a = g +g = g +g = g +a = a +c = c +- => g +g => - +a = g +t = t +g = g +c = c +t = t +g = g +a = a +t = t +a = a +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = c +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +g = g +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +c = c +- => g +g => - +a = g +c = c +t = t +c = c +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +- => c +c = c +t => - +g = g +g = g +a = a +t => - +- => t +t = c +a => - +- => a +a => - +c = a +c = c +- => t +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +- => t +- => t +t => - +c => - +c = t +g = g +g = g +a = a +t = t +c = c +a = t +t = t +c = c +a => - +c = a +c = c +c = c +c = c +- => t +a => - +c = a +- => t +t = t +c = c +c = c +g => - +- => a +a => - +- => a +- => t +a = c +c = c +c = c +t => - +- => a +a => - +- => a +a = c +t => - +c = c +g = a +c = c +a => - +- => a +a => - +- => a +a => - +t => - +c = a +t = t +t = t +c = c +- => t +c = c +- => t +c = c +g = t +a = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +a = c +t = t +t = t +t = t +a = a +g = g +t = t +a = a +c = c +g = g +a = a +t => - +- => t +t = c +c = c +c = c +g = g +c = a +t = t +c = c +c = c +t = t +a => - +c = a +- => t +t = t +t = t +t = t +g = g +g = g +c = t +t = t +- => a +a = c +t => - +a = a +g = g +c = t +g = g +g = g +c = t +t = t +a => - +c = a +- => t +g = g +c = c +c = c +a = a +a = a +c = c +a = a +t = t +a = a +t = t +c => - +c = c +- => t +t = t +a = a +a = a +c = c +g = g +- => a +a => - +- => a +a = c +c = c +t => - +t = t +a = g +c = c +c = c +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +g = g +t = c +a = a +g = g +a = a +c = c +g = a +a = a +g = g +c => - +c = c +- => t +c = c +g = g +c = c +a = a +t = t +a = a +g = g +t = t +a = a +g = g +t => - +- => t +t = c +- => g +g => - +a = g +c = t +t = t +a = a +c = c +t = t +c = c +g => - +t = a +t = t +c = c +- => t +- => t +t => - +- => t +t => - +c = t +c = c +t = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +- => g +g => - +- => g +g => - +a = g +t = t +g => - +c => - +- => g +- => t +g => - +- => g +g => - +- => g +g = a +a = a +g = g +a = a +g = g +t = t +c = c +g = g +g = g +c = c +t = t +a => - +c = a +- => t +t = t +t = t +g = c +t = t +c = c +a => - +- => a +a => - +c = a +c = c +- => t +t = t +t = t +a = g +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +a = a +t = t +c = c +g = g +c = c +c = c +- => a +a = c +t => - +t = t +g = g +a = a +t => - +- => t +t = c +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +- => a +a = c +t => - +t = t +a = a +a = a +t => - +c = t +c = c +- => t +t => - +- => t +t => - +- => t +t = c +t = t +a = a +c = c +t = t +c = c +a = g +t = t +- => c +c = c +t => - +a = a +t = t +a = a +a = a +a = a +c = c +t = t +t = t +c = c +t = t +t = t +g = a +- => a +a = c +c = c +t => - +- => a +a => - +- => a +a = c +t => - +t = t +a = a +c = c +a => - +- => a +a => - +- => a +a = c +c = c +c = c +c = c +a = a +g = g +a = a +c = c +t = t +c = c +a = a +a = a +a = a +t = t +a = a +t = t +a = a +t = t +a = a +g = g +t = t +g = a +t = t +c = c +a = a +c = c +t = t +c = c +t = t +t = t +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +g = a +g = g +t = t +a = a +c = c +- => a +a = c +t => - +t = t +g = g +c = c +t = t +t = t +g = g +t => - +- => t +t = c +a = a +c = c +g = g +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +a => - +c = a +- => t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +- => t +t => - +- => t +t => - +c = t +a = a +- => t +t => - +c = t +a = a +g = g +a = a +t = t +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +t = t +c = c +g = g +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +g => - +- => a +a => - +c => - +c = a +c = c +- => t +- => t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +- => a +a => - +c = a +c = c +g = g +a = a +g = g +t = t +c = c +a = a +c = c +a = a +g = g +t = t +c = c +- => g +a => - +- => a +a => - +g = a +c = c +t = t +c = c +t = t +a = a +t = t +t = t +a = a +t => - +- => t +t = c +g = g +a = a +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +g => - +t => - +g = g +t = t +- => a +a = t +c = c +- => t +t = t +t = t +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +t = t +c = c +t = t +- => c +c = c +t => - +g = g +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +a = a +t = t +t = t +t = t +c = c +c = c +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = c +t = t +g = g +t = c +t = t +a => - +c = a +- => t +c = c +t = t +a = a +a = a +a = a +a = a +t = t +g = g +t = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +t = t +c = c +a = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +a = a +t = t +c => - +c = c +c = c +- => t +- => a +a => - +- => a +a = c +t => - +t = t +a = a +c = c +- => t +t => - +c = t +c = c +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +c = c +t = t +a => - +c = a +- => t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +a = a +- => t +t => - +c = t +c = c +c = c +t = t +t = t +c = c +- => a +a => - +g = a +t = t +c => - +- => c +c => - +- => c +c => - +a = c +- => g +g = a +- => t +t => - +c = t +c = c +c = c +a = a +c = c +c = c +a => - +- => a +a => - +t => - +a = a +t => - +c = t +a = a +c = c +c = c +- => a +- => t +- => c +a = g +c = c +a => - +c = a +- => t +g = g +t = t +a => - +c = a +- => t +c = c +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +a = a +c = c +g = g +t = t +g = g +g = g +t = t +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +c => - +- => c +c => - +- => c +c => - +- => c +c = a +g = g +g = g +a = a +t = t +t = t +c = c +t = t +g = g +g = g +t = t +t = t +a = a +c = c +c = c +t = t +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +a = a +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +t = t +t = t +t = t +c = c +g = g +g = g +t = t +a = a +c = c +a = a +a = a +c = c +- => a +a => - +- => a +a = t +t = t +c = c +t => - +g = g +t = t +a = g +c = c +c = c +c = c +c = c +c = c +g = a +t = t +a = a +c = c +t = t +c = c +a = a +a = a +t = t +c = c +g = g +t = t +c = c +a = g +a = a +g = g +a => - +a => - +c = a +- => a +- => t +a = g +c = c +t = t +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +- => a +a => - +g = a +c = c +a = a +c = c +t = t +c = c +g = g +g = g +a = a +g = g +a = a +c = c +a => - +- => a +a => - +c = a +- => t +a = a +g = g +t = t +c = c +t = t +a = a +a = a +g = g +t = t +g = g +t = t +t = t +a = a +g = g +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a = a +t = t +a = a +a = a +a = a +t = t +g = g +t => - +- => t +t = c +c = c +t = t +c = c +c = c +t = a +t = t +t = t +t = t +g = g +g = g +g = g +c = c +c = c +a => - +t => - +t => - +a = a +c = c +- => t +- => a +- => t +t = t +a => - +c = a +- => t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +- => c +c = c +t => - +t = t +a = a +c = c +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +a = a +c = c +a = g +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +c => - +c = c +c = c +- => t +a = a +c = c +a = a +a = a +a = a +a = a +g = g +a = a +g = g +c = c +a = a +c = c +a => - +c = a +- => t +t = t +t = t +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +- => a +a => - +- => a +a = c +c = c +a => - +- => a +a = c +t => - +t = t +a = a +c = c +a = a +c = c +c = c +a = a +c => - +- => c +c = a +c = c +a = a +c = c +t = t +c = c +- => a +a = c +c = c +t => - +c = c +g => - +- => g +g => - +- => g +g = a +g = g +t = t +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a => - +c => - +- => a +- => t +a = a +- => t +t => - +c = t +t = t +c = c +c = c +c = c +t = t +c = c +a = a +t = t +a = g +t = t +c = c +c = c +c = c +g = g +a = a +c = c +a => - +c = a +- => t +t = t +g = a +a = a +t = t +c = c +a = a +t = t +a = a +c = c +a => - +- => a +a => - +c = a +t = t +c = c +- => t +g = a +g = g +g = g +a = a +c = c +a = a +t = t +t = t +c = c +- => a +- => t +a = t +- => t +t => - +c = t +c = c +t => - +c = c +t => - +c = c +- => a +a = c +c = c +t => - +- => a +a = c +t => - +a = a +a = a +a = a +c = c +t = t +a = a +g = g +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +c = c +a = a +c = c +c = c +a = a +a = a +t = t +g = g +a = a +t = t +c = c +g = a +t = t +g = g +t = c +c = c +t = t +c = c +t = t +c = c +a = g +a = a +g = g +a = a +g => - +- => g +g => - +- => g +g = a +t = t +c = c +a = a +t = t +c = c +c = c +a = a +a = a +t = t +t = t +- => a +a = c +t => - +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +c = c +g = g +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +- => g +g => - +a = g +t = t +c = c +t = t +t = t +c = c +a = a +g = g +t = t +a = a +g = g +t => - +t => - +- => t +t => - +- => t +t => - +- => t +- => c +t = c +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +t = t +c = c +a = a +t = t +- => c +c = c +t => - +c = c +- => a +a => - +- => a +a => - +- => a +a = c +c = c +t => - +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +t = t +c = c +t = t +c = c +t = t +c => - +c = c +- => t +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +g = g +- => c +c = c +t => - +g = g +a = a +c = c +a = a +c = c +c = c +c = c +- => a +a => - +c = a +g = g +c = c +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +t = t +c = c +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +t = t +a = a +c = c +t = t +c = a +c = c +t = t +a = a +c = c +a = a +t = t +t = t +c = c +a = a +g = g +g = g +c = c +a = a +c = c +c = c +c = c +g = g +c = t +t = t +a = a +a = a +t = t +a => - +c = a +- => t +t = t +c = c +- => t +t => - +- => t +- => g +t => - +a => - +c = t +t = t +g = g +a = a +c = c +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +t = t +t = t +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a => - +c = a +- => t +t = t +- => c +c = c +t => - +t = t +a => - +c = a +- => t +c = c +g = g +a = a +c = c +a = g +a = a +t = t +g = g +a = a +t = t +g = g +c = t +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +c = c +a = a +c = c +c = c +g = g +a => - +c = a +- => t +t = t +a = a +a = a +c = c +t => - +- => t +t = c +c = c +t => - +- => t +t = c +a = a +t = t +a = a +c = c +g = g +t = t +t = t +a = a +c = c +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +a = a +- => t +- => t +t => - +c => - +c = t +a = a +g = g +a = a +c = c +a = a +a = a +a = a +c = c +a = g +g = g +c = c +g = a +t = t +c => - +- => c +- => g +c = c +g => - +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +g = g +a = a +a = a +c = c +a = a +a = a +t = t +- => a +a = c +t => - +t = t +a = a +a = a +t = t +a => - +c = a +- => t +g = g +g = g +g = g +g = g +t = t +a = a +- => t +- => t +t => - +c => - +c = t +c = c +t = t +a = a +t = t +- => c +- => c +c => - +a = c +t => - +g = g +t = c +t = t +c = c +c = c +- => t +t => - +- => t +t => - +c = t +c => - +c = c +c = c +- => t +a = a +- => t +t => - +c = t +c = c +g = g +a = a +t = t +- => a +a = c +t => - +a = a +c = c +a = a +a = a +a = a +a = a +c = c +- => a +a => - +g = a +t = t +c = c +c = c +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => t +t = t +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a => - +c = a +- => t +a = a +c = c +t = t +c = c +c = c +g = g +c = c +a = a +t = t +a = a +a = a +t = t +- => a +a = c +t => - +g = g +g = g +t = t +a = a +t = t +c = c +g = g +g = g +c = t +g = g +g = g +a = a +- => t +t => - +c = t +a = a +a = a +a = a +a = a +t = t +t = t +c = c +t = t +c = c +- => a +- => t +- => g +- => a +a = c +t => - +g = g +t = t +c = c +g = g +c => - +- => c +- => t +c = c +g = g +t => - +t => - +c = t +a => - +t = a +g => - +a = g +t = t +a = a +a = a +c = c +t = t +g = c +g = g +g = g +t = t +c = c +g = g +c = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +- => g +g => - +a = g +a = a +g = g +c = t +t = t +g = g +t = t +a = a +c = c +c = c +c = c +- => g +g => - +a = g +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +a = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +t = t +c = c +a = g +g = g +g = g +c = c +a = a +t = t +t = t +t = t +c => - +- => c +c = a +c = c +c = c +a = a +t = t +a => - +g = a +- => a +a => - +- => a +a => - +- => a +a = g +t = t +g = g +a = a +t = t +a = a +t => - +- => t +t => - +- => t +t => - +- => t +t = c +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t => - +- => t +t = a +c = c +- => g +g => - +a = g +t = t +c = c +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +a = a +a = a +c = c +c = c +g = g +a = a +g = g +t = t +c = c +c = c +t = t +c = c +a => - +- => a +a => - +- => a +- => t +a = c +c = c +t => - +a = a +t = t +c = c +a = a +a = a +g = g +a = a +a = a +c = c +c = c +c = c +g = g +t = t +c = c +a => - +c = a +- => t +t = t +- => c +c = c +t => - +c = c +a = a +c = c +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c = c +t = t +t = t +a => - +c = a +- => t +a = a +a = a +a = a +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +a = a +- => t +t => - +c = t +c = c +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +- => a +- => c +a = c +t => - +t => - +t = t +a = a +a = a +- => t +t => - +c = t +a = a +c = c +g = g +c = c +t = t +a => - +c = a +- => t +t = t +c = c +a = a +t = t +- => c +c = c +c = c +c = c +c = c +t => - +t = t +c = c +c = c +c = c +t = t +c = a +g = g +g = g +a = a +t = t +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t = t +a = a +c = c +a => - +c = a +- => t +- => g +g => - +- => g +g => - +a = g +c = c +g = g +c = c +- => a +a => - +- => a +a => - +g = a +t = t +c => - +c = c +- => t +g = g +c = c +a = a +a = a +g = g +a = c +c = c +c = c +g = a +a = a +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +g = g +t = t +a = a +g = g +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +t = t +a = a +- => t +t => - +c = t +g => - +- => g +g = a +t => - +- => t +t = c +c = c +c = c +a => - +c = a +- => t +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +a = a +c = c +c = c +a = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +a = a +t = t +a = a +t => - +- => t +t = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +t = t +a = a +c = c +a = a +a = a +t = t +- => a +a = c +t => - +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +a = a +a = a +a = a +- => c +c => - +a = c +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +- => t +t => - +c = t +a = a +t = t +a => - +t = a +- => c +c = c +t = t +c = c +t = t +c => - +c = c +- => t +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +c = c +t = t +a = a +t = t +c = c +a = a +c = c +c = c +a = a +a = a +g => - +t => - +- => g +- => c +g = a +a = a +c = c +c = c +t = t +a = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +g = g +c = c +a = g +a = a +c = c +c = c +g = g +a = a +a = a +c = c +g => - +- => g +g = a +t = t +a => - +c = a +- => t +t = t +a = a +a = a +c = c +a => - +c = a +- => t +t = t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +- => t +t => - +c = t +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a => - +- => a +a = g +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +g = g +c = c +c = c +t = t +c = c +c = c +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t => - +c = t +c = c +a = t +a => - +c = a +- => t +c = c +c = c +c = c +t = t +c = c +g = a +- => t +t => - +c = t +g = g +a = a +t = t +t = t +t = t +a = a +t = t +c => - +c = c +- => t +a = a +a = a +c = c +a => - +- => a +a => - +c => - +- => a +- => t +a => - +- => a +a => - +c = a +- => t +t = t +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +t = t +c = c +a = a +t = t +c => - +c = c +c = c +c = c +c = c +- => t +t = t +a = a +c = c +t = t +a = a +c = c +g = g +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +a = a +a = a +t = t +c = c +c = c +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +g = g +t = t +t = t +t = t +a = a +a = a +t = t +a => - +c = a +- => t +a = a +c = c +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +t = t +c = c +t = t +c = c +a = a +g = g +t = t +a = a +c = c +- => a +a => - +g = a +t = t +c = c +a = g +c = c +c = c +a = a +t = t +c = c +a = a +t => - +- => t +t = c +a = a +t = t +a = a +t = t +t = t +a = a +a = a +c = c +- => a +a => - +- => a +a = c +c = c +c = c +c = c +t => - +g = g +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +c = c +a = g +t = t +c = c +c = c +g = a +a = a +a = a +t = t +c = c +c = c +- => a +a => - +- => a +a => - +t = a +a = a +c = c +a = a +t = t +g = g +c = t +a = a +t = t +c = c +a = a +g = g +a = t +t = t +c => - +c = c +- => t +g = g +g = g +t = t +a = a +t = t +a = a +c = c +a = a +c = c +a => - +- => a +a => - +c = a +- => t +c = c +t = t +c = c +t = t +a = a +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g => - +- => g +g = a +c = c +g = g +a = a +c = c +g = g +a = a +a = a +g = g +c = t +g = g +t = t +c = c +c = c +g = g +c = t +c = c +g = g +t => - +- => t +t => - +- => t +t => - +- => t +t = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +- => c +c => - +- => c +- => a +c = c +g => - +t => - +t = t +- => a +a = c +t => - +c = c +c = c +g = a +t = t +g = g +t = t +t = t +- => a +a = c +t => - +a => - +- => a +a => - +c = a +- => t +c = c +g = g +a = a +t = t +t = t +c = c +t = t +c => - +c = c +c = c +- => t +t = t +c = c +a = a +c = c +c = c +c = c +a => - +c = a +- => t +a = a +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +t = t +c = c +t = t +c = c +a = a +t = t +c = c +g = g +a = a +t = t +a = a +t = t +t = t +a = a +c = c +t = t +t = t +g = a +t = t +c = c +g = a +c = c +t = t +a = a +- => t +t => - +c = t +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +t = t +c = c +c = c +t = t +a = a +t = t +- => a +a => - +c = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +- => t +t => - +c = t +g = g +- => c +c = c +t => - +a = a +t = t +g = g +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +a = a +g => - +- => g +g => - +- => g +g = a +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +- => a +a = c +t => - +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +t = t +t = t +a => - +c = a +- => t +t = t +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +g = g +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +a = a +c = c +t = t +c = c +a = a +g = g +c = c +t = t +t = t +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +- => a +a = c +t => - +a = a +t = t +g = g +g = g +t = t +t = t +a = a +a = a +g = g +- => c +c => - +- => c +c = a +g => - +a = g +g = g +t = t +c = c +a = a +g = g +a = a +t => - +- => t +t = c +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +a = g +t = t +c = c +a = a +g = g +t = t +a = a +a = a +g = g +t = c +a = a +t = t +c = c +c = c +g => - +- => g +g = a +t = t +c = c +t = t +g = g +a = a +a = a +t = t +c = c +c = c +c = c +g = a +a = a +t = t +c = c +c = c +t = t +a => - +c = a +- => t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +t = t +a = a +t = t +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +g = g +c = t +- => a +a = c +t => - +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +- => a +a = t +t = t +c = c +t => - +- => a +a => - +- => a +a = c +t => - +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +a = a +c => - +- => c +c => - +a = c +t = g +t = t +- => c +c = c +c = c +c = c +a = g +t => - +- => t +t => - +- => t +t = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +a = a +g = g +t = t +t = t +t = t +a = a +t => - +- => t +t = c +a = a +t = t +t = t +c = c +- => t +t => - +- => t +t => - +c = t +c = c +- => a +a = c +t => - +t = t +- => a +a = c +t => - +c = c +g = g +a = a +t = t +g = g +a = a +t => - +- => t +t = c +c = c +- => t +t => - +- => t +t => - +c = t +t = t +t = t +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +t = t +t = t +c => - +c = c +c = c +- => t +t = t +g = a +c = c +g = g +c = c +c = c +c = c +g = g +c = c +c = c +c = c +c = c +c = c +t => - +a => - +t = t +a = a +- => t +- => g +t = c +c = c +c = c +c = c +a = a +g = g +c = c +- => t +t => - +- => t +t => - +c = t +g => - +- => g +g => - +c => - +- => g +- => t +g = g +t = t +g = a +a = a +g = g +c = c +a => - +t = a +t = t +c = c +c = c +c = c +c = c +- => a +a => - +c = a +- => t +c = c +t = a +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +c = c +a = a +t = t +c = c +g => - +- => g +g = a +c = c +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +a = a +c = c +a = g +c = c +c = c +a = a +t = t +c = c +a = a +g = g +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c => - +c = c +- => t +t = t +c = c +c = c +c = c +a = a +c = c +- => a +a => - +- => a +a = c +c = c +t => - +a = a +a = a +t = t +a = a +a = a +t => - +t => - +- => t +t => - +- => t +- => c +t = t +a => - +- => a +a = g +t => - +- => t +t = c +c = c +c = c +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +- => c +c => - +t => - +t => - +a = c +c = c +a => - +a => - +c = a +- => t +- => g +- => a +- => t +a = g +g = g +t = t +t = t +t = t +t = t +g = g +- => a +a = c +t => - +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +t = t +t = t +c = c +a = a +a = a +t = t +t = t +g = g +c = c +c = c +a = a +t = t +g = g +a = a +- => t +t => - +a = t +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t => - +- => t +t = c +c = c +t = t +g = g +g = g +g = g +a = a +g = g +t = t +a = a +g = g +t => - +- => t +t = c +a = a +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +t = t +g = g +t = c +a = a +t = t +g = a +t = t +- => c +c = c +t => - +t = t +t = t +a = a +t = t +c = c +a = a +g = g +t => - +- => t +t = c +t = t +g => - +- => g +g = a +t = t +g = g +t = t +a = a +g = g +a = a +t = t +g = g +t = c +t => - +- => t +t => - +- => t +t = c +a = a +c = c +g = g +g = g +- => t +t => - +c = t +a = a +t = t +a = g +g = g +- => t +t => - +c = t +c = c +g = g +c = c +c = c +g = g +c = c +c = c +g = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +g = g +g = g +t = c +t = t +t = t +c = c +- => a +a = c +c = c +t => - +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +c = c +- => a +a => - +- => a +a = c +c = c +t => - +g = g +c => - +c = c +- => t +t = t +a => - +c = a +t = t +t = t +c = c +- => t +g = g +t = t +c = c +t = t +a = a +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = g +g = g +g = g +t = t +t = t +- => a +a = c +t => - +t = t +a = a +c = c +t = t +g = g +c = c +- => a +a = c +c = c +t => - +t = t +c = c +a = g +g = g +g = g +c = c +a => - +c = a +c = c +- => t +t = t +t = t +c = c +g = g +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +g = g +t = t +t = t +t = t +t = t +t = t +t = t +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +g = g +c = t +a = a +t = t +c = c +t = t +a => - +c = a +- => t +g = g +g = g +c = t +a = a +g = g +c = c +c = c +t = t +t = t +t = t +a = a +c = c +c = c +a => - +c = a +- => t +t = t +t = t +- => c +c = c +c = c +c = c +t => - +c = c +t = g +a = a +a = a +g = g +c = t +t = t +t = t +c = c +a = a +t = t +g = g +a = a +g = g +a = a +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +- => a +a = c +t => - +t => - +- => t +t => - +- => t +t = c +a = a +t = t +c = c +t = t +- => c +c = c +t => - +g = g +g = g +g = g +t = t +c = c +a = a +t = t +t = t +t = t +t = t +a = a +a = a +c = c +- => a +a = c +t => - +t = t +a = a +t = t +t = t +c = c +g = a +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +t = t +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +a => - +- => a +a => - +- => a +a = t +g = g +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +a = a +t = t +- => c +c = c +t => - +g = g +a = a +t = t +a = a +c = c +c = c +- => a +a = c +c = c +t => - +c = c +g = g +a = a +g = g +t = t +c = c +c = c +a => - +c = a +- => t +t = t +a = a +a = a +c = c +t = t +a = c +t = t +g = g +a = t +g = g +g = g +a = a +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +a = g +t => - +- => t +t = c +a = a +t = t +g = g +c = t +c = c +t = t +a = a +c = c +a => - +c = a +- => t +a = a +a = a +a = a +- => t +- => t +t => - +c => - +c = t +t = t +c = c +a => - +c = a +c = c +c = c +- => t +t = t +g = g +a = a +a = a +g = g +a = a +t = t +- => c +c = c +c = c +c = c +c = c +t => - +a = a +a = a +a = a +t = t +c = c +g = a +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +a = a +c = c +c = c +c = c +c = c +c = c +g = a +g = g +t = t +- => c +- => a +c = c +a = a +c = c +g => - +g => - +g = g +a = a +g = g +g = g +a = a +t = t +c = c +a => - +- => a +a => - +c = a +c = c +- => t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +a = a +t => - +- => t +- => c +t => - +- => t +t => - +- => t +t => - +c = t +c = c +g = g +a = a +g = g +t = t +c = c +t => - +- => t +t => - +- => t +t = c +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = c +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t => - +- => t +t = c +t = t +g = g +a = a +a = a +g = g +a = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +- => t +t = a +g => - +a = g +t = t +- => a +a => - +g = a +g = g +g = g +c = t +a = a +t = t +a = a +g = g +- => c +c = a +t => - +- => t +t => - +c = t +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +t = t +g = g +t = c +c = c +c = c +a => - +c = a +- => t +c = c +a = a +c = c +a => - +c = a +- => t +a = a +c = c +c = c +a = a +c = c +c = c +g = g +g = g +a = a +a = a +c = c +c = c +a = a +t = t +a = g +c = c +a = a +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c => - +a => - +c = c +- => g +- => t +a = a +a = a +t = t +g = g +t = t +a = a +g = g +c = t +g = g +c = c +g = a +g = g +t = t +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a => - +c = a +- => t +c = c +a = a +a = a +t = t +c = c +a => - +c = a +- => t +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +t = t +c => - +- => c +c = a +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a => - +c = a +- => t +c = c +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +- => a +a = c +c = c +t => - +t = t +t = t +a = a +g = g +t = t +g = a +t = t +a = a +c = c +c = c +g = g +a = a +- => t +t => - +c = t +c = c +g = g +g = g +c = a +c = c +t = t +c = c +c = c +- => a +a => - +g = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +c = c +c = c +c = c +g = g +g = g +g = g +g = g +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +g = g +a = a +t = t +- => a +a = c +t => - +a = a +c = c +t = t +a = a +t = t +c = c +c = c +g = g +t = t +a = a +c = c +a = a +c = c +t = t +a = a +a = a +c = c +c = c +a => - +c = a +c = c +c = c +- => t +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +a = a +c = c +a => - +- => a +a => - +c = a +- => g +a = a +g = g +c = c +a = a +c = c +g = g +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +g = g +a => - +- => a +a = g +t = t +g = g +a = a +- => t +t => - +c = t +t = t +t = t +c = c +a = a +c = c +a = a +c = c +t = t +t = t +t = t +t = t +g = g +c = c +a = a +t = t +c = c +c = c +g = g +a = a +a = a +c = c +c = c +t = t +a => - +- => a +a = c +t => - +- => t +t = c +c = c +c = c +g = g +c = c +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c => - +- => c +c = a +t = t +a = a +t = t +c = c +- => a +a => - +g = a +- => t +t => - +c = t +a = a +- => t +t => - +c = t +t = t +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +a = g +a = a +c = c +a => - +c = a +- => t +t = t +t = t +c = c +t = t +a => - +c = a +- => t +t = t +- => a +a = c +t => - +t = t +c = c +a = a +c = c +- => a +a => - +t = a +c = c +t = t +c = c +c = c +c = c +t = t +t = t +c => - +c = c +- => t +a => - +- => a +a => - +t => - +t => - +- => a +a = c +- => c +c = a +- => t +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +c => - +- => c +c = a +c = c +a = a +c = c +c = c +g = g +c = c +a = g +a = a +a = a +g = g +g = g +t = c +t = t +a = a +a = a +t = t +c = c +c = c +a = a +c = c +g = g +t = t +a => - +c = a +- => t +t = t +c = c +a = a +t = t +c = c +c = c +a = a +c = c +t = t +g = g +g = g +a = a +c = c +g = g +t = t +c = c +- => a +a = c +t => - +t = t +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +g = g +c = t +c = c +g => - +- => g +g = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +g = a +a = a +c = c +c = c +- => a +a => - +- => a +a = c +c = c +t => - +t = t +a = a +c = c +- => t +t => - +c = t +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = t +t = t +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +c = c +a = a +t = t +- => c +c => - +- => c +c => - +a = c +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +a = a +c = c +c = c +a => - +t = a +t = t +- => c +c = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +a = a +a = a +t => - +- => t +t = c +a = a +g = g +- => a +a => - +- => a +a = c +t => - +c = c +t = t +c = c +g = g +c = c +t = t +t = t +t = t +c = c +g = g +g = g +- => a +- => c +a => - +t => - +a = a +t => - +- => t +t = c +- => a +a => - +g = a +t = t +g = g +a = a +c = c +g = g +c = c +g => - +- => g +g => - +- => g +g = a +c = c +g = g +a = a +- => g +- => t +g = g +t => - +a => - +t => - +- => t +t = c +c = c +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g => - +- => g +g = a +t = t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +c = c +c = c +a = a +a = a +a = a +t = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +a = g +a = a +c = c +c = c +c = c +a => - +c = a +- => t +c = c +a = a +a = a +c = c +c = c +a = a +c = c +- => a +a = c +t => - +t = t +t = t +a = a +c = c +t = t +c = c +- => a +a = c +c = c +t => - +c = c +c = c +g = g +- => t +t => - +c = t +c = c +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = g +t = t +t = t +a = a +t = t +t = t +t = t +t = t +t = t +a => - +c = a +- => t +t = t +a = a +a = a +t => - +- => t +t => - +c => - +c => - +t = t +a => - +t = a +g = g +- => t +a = a +t = t +c = a +- => a +- => t +- => t +a = g +t = t +a = a +t = t +t = t +- => c +c = c +t => - +c = c +t = t +a = a +g = g +t = t +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g = g +g = g +g = g +a => - +- => a +a => - +t = a +- => c +c = c +a = g +c = c +a => - +- => a +a => - +c = a +- => t +a = a +c = c +a = a +t = t +a => - +c = a +- => t +c = c +g = a +a = a +t = t +- => a +a => - +g = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +a => - +- => a +a => - +- => a +a = c +c = c +t = t +a = a +a = a +t = t +c = c +a = a +g = g +t = t +a = g +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = g +t = t +t = t +a => - +- => a +a = g +t = t +c = c +a = a +g = g +c = c +c = c +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +c = c +t = t +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +g = g +t => - +- => t +t = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +- => c +c = c +t => - +t = t +a => - +c = a +- => t +t = t +- => a +a => - +g = a +- => t +t => - +c = t +a = a +t = t +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +a = a +- => t +t => - +c = t +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +c = c +g = g +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +t = t +c = c +g = g +c = c +- => t +t => - +- => t +- => a +t => - +g => - +- => t +t => - +c = t +t = t +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +a => - +a => - +a => - +c = a +- => a +a => - +- => a +- => t +a = g +- => t +- => c +t => - +a = t +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +a => - +c = a +- => t +c => - +- => c +c = a +g = a +a = a +a = a +a = a +c = c +c = c +a => - +c = a +- => t +t = t +- => c +c = c +c = c +c = c +t => - +c = c +c = c +a = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +a = a +t = t +t = t +a = a +a = a +a = a +c = c +- => a +a = c +t => - +a = a +a = a +a = a +- => t +t => - +- => t +t => - +a = t +t = t +a = g +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a => - +c = a +- => t +t = t +a = a +c = c +t = t +c => - +c = c +- => t +t = t +t = t +a = a +t = t +c = c +a = a +c = c +- => a +a = c +t => - +t = t +c = c +c = c +t = t +c = c +- => a +- => t +a => - +t = a +a = a +c = c +c = c +c = c +c = c +t => - +a = g +t = t +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +c = c +c = c +c = c +g = g +g = g +t = t +a = a +t = t +g = g +t = c +c = c +- => a +a = c +t => - +c = c +a = a +t = t +a = a +a = a +a = a +t = t +c = c +a = g +a = a +c = c +c = c +c = c +c = c +g = g +t = t +- => a +a => - +g = a +a = a +g = g +t = t +g = g +a = a +c = c +a = g +t = t +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +- => g +g => - +a = g +c => - +c = c +- => t +a => - +- => a +a = t +g = g +a = a +g = g +a = a +a = a +t = t +t = t +a = a +g = g +a = a +a = a +a = a +t = t +t = t +g = g +a = a +a = a +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = g +c = c +g = g +a = a +t => - +- => t +t = c +c = c +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +g = g +t = t +c = c +a => - +c = a +c = c +- => t +c = c +g = g +a = a +g = g +a => - +t = a +- => c +c = c +t = t +c => - +c = c +- => t +c = c +c = c +c = c +- => t +a => - +t = a +c = c +t = t +c = c +- => t +c = c +c = c +c = c +c = c +- => a +- => t +a => - +c => - +g = a +a = a +t = t +a = a +t = t +- => c +c => - +- => c +c => - +- => c +- => g +c => - +a = c +t => - +t = t +t = t +a = a +t = t +g = g +c = c +c = c +c = c +g = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +g = g +t = t +t = t +t = t +c = c +t = t +a = a +a = a +a = a +a = a +a = a +t = t +- => c +c = c +c = c +c = c +c = c +t => - +t = t +a => - +- => a +a => - +t = a +t = t +- => c +a = g +a = a +g = g +a = a +t = t +c => - +c = c +- => t +t = t +g = g +c = t +t = t +a = a +c = c +c = c +c = c +g = g +t = t +a => - +c = a +- => t +t = t +t = t +t = t +g = g +a = a +c = c +a = a +c = c +c = c +a => - +- => a +a => - +- => a +a = c +c = c +g = g +a = a +g = g +g = g +t = t +g = g +t = t +c = c +t = t +a = a +a = a +a = a +g = g +t = a +c = c +t = t +c = c +- => g +- => t +g = g +t => - +a => - +- => a +a = c +c = c +t => - +g = g +g = g +c = c +a = a +t = t +c = c +a = a +t = t +a = a +t = t +g => - +g => - +- => g +- => a +g => - +- => g +g => - +- => g +g = a +c = c +c = c +a = a +g = g +c = c +a = a +c = c +- => a +a = c +t => - +c = c +g = g +c = c +c = c +a = a +c = c +t => - +- => t +t => - +- => t +t = a +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a => - +- => a +a => - +- => a +a = g +t = t +- => c +c = c +t => - +g = g +c = c +a = g +g = g +g = g +- => c +c = c +c = c +c = c +t => - +t = t +a = a +a = a +c = c +g = g +t = c +a = a +g = g +a = a +c = c +a = a +a = a +a = a +a = a +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +t = t +t = t +a = a +c = c +a => - +c = a +c = c +c = c +c = c +- => t +t = t +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +t = t +g = g +c = t +a = a +g = g +a = a +a = a +- => c +c => - +a = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +a = a +t = t +g = g +- => c +c = c +t => - +t = t +a = g +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +t => - +- => t +t => - +g = t +g = g +c = a +c = c +c = c +- => t +t = t +- => c +c => - +a = c +t = t +g = g +a = a +t = t +g = g +a = a +g = g +- => c +c = c +t => - +a = a +a = a +c = c +a = a +g = g +t = c +t = t +g = g +c = c +a = a +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +g = g +c = c +g = a +t = t +c = c +c = c +a = a +g = g +c = t +g = g +g = g +a = a +c = c +c = c +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +t = t +- => a +a = c +c = c +c = c +c = c +c = c +c = c +t => - +t = t +c = c +a = a +t = t +a => - +c = a +- => t +a = a +t = t +c = c +c = c +t = t +c = c +a => - +- => a +a => - +c = a +- => t +t = t +t = t +c = c +t = t +a => - +- => a +a = g +- => t +t => - +c = t +a = a +g = g +g = g +c = t +g = g +g = g +c = t +a = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +c = c +a = a +t = t +g = a +a = a +g = g +c = c +a = a +t = t +c = c +c = c +a = a +a = a +g = g +t = t +c = c +a = a +t = t +g = a +g = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +a => - +c = a +c = c +- => t +g = g +g = g +t = c +t = t +a = a +a = a +c = c +t = t +a = a +a = a +a = a +c = c +t = t +a => - +c = a +- => t +c = c +- => a +a = c +t => - +t = t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +c = c +a = a +g = g +c = t +a = a +a = a +c = c +t = t +g = a +g = a +a = a +g = g +c = t +a = a +g = g +a = a +c = c +a => - +- => a +a = g +t = t +a => - +c => - +- => a +- => t +a = a +t => - +- => t +t = c +t = t +c = c +c = c +t = t +- => a +a => - +c = a +g = g +c = c +a = a +t = t +c => - +c = c +- => t +c = c +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +c = c +g = g +c = c +t = t +a => - +c = a +- => g +t = t +c = c +c = c +t = t +g = g +a = a +- => t +t => - +c = t +c = c +t = t +a => - +c = a +- => t +t = t +a => - +c = a +- => t +c = c +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +t = t +- => a +a = c +t => - +c = c +a = a +a = a +g = g +t = t +c = c +t = t +g = a +c = c +c = c +a => - +- => a +a = g +a = a +g = g +a = a +t = t +a = a +a = a +a = a +g => - +- => g +g = a +- => a +a = c +c = c +t => - +c = c +g = g +c = c +a = a +g = g +a = a +c = c +t = t +c = c +t = t +a = a +c = c +g => - +- => a +a => - +t = a +- => c +c = a +- => a +a = c +t => - +a = a +a = a +t = t +c = c +a = a +a = a +t = t +c = c +a = g +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +a = a +t = t +c = c +c = c +t = t +t = t +t = t +t = t +c = c +c = c +c = c +g = g +t = c +a = a +t = t +g = g +t = t +c = c +c = c +t = t +g = g +a = a +- => t +t => - +c = t +c = c +t = t +t = t +c = c +g = g +t = t +c = c +t = t +a => - +t => - +t = a +c = c +- => t +c = c +- => t +t = t +t = t +t = t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +c = c +c = c +c = c +g = g +c = t +a = a +c = c +t = t +a = a +g = g +t = t +a = a +c = c +t = t +t = t +t = t +c = c +t = t +a = a +c = c +t = t +- => a +a => - +t = a +t = t +c = c +g = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +t = t +c => - +c = c +c = c +- => t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +g = g +c = c +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +t = t +g = g +g = g +a = a +t = t +g = g +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +g = g +t = t +a = a +c = c +a = a +c = c +g = g +g = g +t = t +a = a +a = a +t = t +t = t +c = c +t => - +a => - +t = t +a = a +t = t +a = a +- => t +- => g +t = c +- => c +c = c +c = c +t => - +- => a +a => - +- => a +a => - +- => a +a = t +t = t +c = g +g = g +g = g +a = c +t => - +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +- => g +g => - +a = g +a = a +a = a +c = c +t = t +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +c = c +t = t +t = t +t = t +a => - +c = a +- => t +c = c +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +t = t +a = a +t = t +a = a +g = g +a = a +a = a +a = a +a = a +a = a +c = c +t = t +t = t +t = t +t = t +t = t +c = c +a = a +g = g +t = t +a => - +c = a +c = c +- => t +t = t +c = c +c = c +g = a +g = g +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +t = t +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +c = c +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c = c +- => a +a => - +g = a +a = a +t = t +c = c +t = t +a = g +a = a +a = a +a = a +t = t +a => - +c = a +- => t +a = a +t = t +a = a +t = t +g = g +c = t +c => - +c = c +- => t +g = g +a = a +g = g +a = a +a = a +g = g +c = t +t = t +t = t +a = a +c = c +a => - +c => - +- => a +- => t +a => - +c = a +c = c +- => t +a = a +t = t +c = c +c = c +c = c +a => - +c = a +c = c +c = c +- => t +c = c +c = c +c = c +g = g +t = t +a = a +g = g +g = g +t = t +a = a +t = t +a = g +t = t +c = c +a = a +g = g +t = t +g = g +a = a +g = g +g = g +t = t +c => - +c = c +- => t +- => a +a => - +- => a +a => - +- => a +a = c +t => - +a = a +c = c +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +a = a +g = g +a = c +t = t +g = a +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +a = a +g = g +c = c +g = a +- => a +a => - +- => a +a => - +g = a +c = c +t => - +- => t +t = c +c = c +g = g +c = c +t = t +t = t +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +t => - +- => t +t = c +t = t +- => a +a => - +g = a +t = t +a => - +c = a +- => t +t = t +t = t +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +a = a +t = t +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +a = a +t = t +- => c +c = c +t => - +c = c +t = t +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +- => g +g => - +- => g +g => - +a = g +t = t +g = g +t = c +c = c +t = t +a = a +c = c +t = t +a = g +t = t +c = c +c = c +t = t +a = a +t = t +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a => - +c = a +- => t +c = c +a => - +c = a +- => t +a = a +t = t +a = a +c = c +g = g +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +t = t +g = a +c = c +a = a +g = g +c = c +c = c +c = c +c = c +g = a +t = t +a = a +a = a +g = g +g = g +c = t +c = c +t = t +a = a +t = t +c = c +c = c +g = g +g = g +c = t +t = t +c = c +t = t +t = t +t = t +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +t = t +t = t +c = c +t => - +- => t +t => - +- => t +t = c +c = c +a = a +a = a +t = t +c = c +t = t +a => - +- => a +a => - +- => a +a = t +t = t +g = g +c = c +g = g +g = g +c = t +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a => - +t = a +c => - +a = c +c = c +- => g +- => t +t => - +- => t +t => - +- => t +t = c +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +c = c +c = c +g = g +c = c +a = a +t => - +- => t +t = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +a = a +g = g +a = a +t = t +c => - +c = c +- => t +c = c +a = a +c = c +a = a +t = t +c = c +g = g +g = g +c = a +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a = a +c = c +t = t +t = t +a => - +c = a +- => t +t = t +t = t +c = c +- => g +g => - +- => g +g => - +a = g +g = g +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = c +t = t +t = t +a = g +t = t +g = g +t = t +c = c +g = g +a = a +g = g +g = g +a = a +t = t +a => - +- => a +a = t +c = c +t = t +a = a +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +g = g +a = a +t = t +g = g +t = c +t = t +g = g +c = c +a = a +- => t +t => - +c = t +a = a +t = t +g = a +c = c +a = a +c = c +a = a +g = g +c = c +a = a +c = c +a = g +t = t +c = c +a = g +t = t +g = g +c = c +t = t +a => - +c = a +- => t +a = a +g = g +a = a +- => t +t => - +c = t +a = a +c = c +t = t +a = g +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t => - +- => t +t = c +a = a +t = t +g = g +t = c +t = t +a = a +c = c +g = g +g = g +t = c +c = c +- => a +a => - +g = a +t = t +c = c +c = c +g = g +g = g +t = c +g = g +g = g +a = a +t = t +g = g +c = t +c = c +a = a +c = c +t => - +- => t +t => - +- => t +t = c +t = t +c = c +- => t +t => - +- => t +t => - +- => t +t => - +c = t +t = t +a = a +c = c +t = t +t = t +a = g +g = g +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +t = t +g = a +a = a +c = c +g = g +t = c +c = c +g = g +t = t +c = c +t = t +a = a +g = g +t = t +- => a +a => - +- => a +a => - +- => a +- => c +a = c +g => - +t => - +a = a +t = t +a => - +- => a +a => - +c = a +- => t +g = g +a = a +a = a +g = g +g = g +c = t +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a => - +c = a +- => t +c = c +g = g +c = c +t = t +c = c +a = a +g = g +t = t +c = c +g = g +- => a +a = c +t => - +t = t +t = t +a = a +t = t +g = g +a = a +a = a +a = a +c = c +t = t +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +c = c +c = c +a = a +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +a = c +c = c +g = g +a = a +g = g +c = c +a = a +c = c +a => - +c = a +- => t +a = a +g = g +a = a +t = t +g = g +c = c +a = a +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +t = t +- => a +a = c +t => - +a = a +c = c +c = c +a = a +- => c +c => - +a = c +c = c +g = g +a = a +g = g +t = t +g = g +t = t +g = g +c = t +t = t +a = a +- => t +t => - +- => t +t => - +- => t +t = a +g => - +- => g +g => - +- => g +g => - +a = g +t = t +c = c +c = c +- => t +t => - +- => t +t => - +c = t +g = g +g = g +t = t +t = t +a = a +a = a +c = c +t = t +a = a +t = t +- => a +a => - +g = a +t = t +a = a +t = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +g => - +- => g +g = a +t = t +a = a +t = t +g = g +g = g +a = a +t = t +a => - +c = a +- => t +a = a +t = t +a = a +g = g +g = g +t = c +t = t +t = t +a = a +c = c +c = c +a = a +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +c = c +c = c +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +t = t +c = c +a = a +a = a +t = t +g = g +t = t +t = t +- => a +a = c +t => - +a = a +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +c = c +t = t +t = t +c = c +g = g +g = g +a = a +c = c +c = c +a = a +t = t +c = c +c = c +t = t +- => a +a => - +c = a +t = t +c = c +t = t +t = t +- => a +a = c +t => - +a = a +t = t +t = t +t = t +g = g +a = a +a = a +g = g +t = c +c = c +c = c +c = c +a = a +c => - +- => c +c = a +g = g +g = g +c = t +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +t = t +t = t +a = a +- => t +t => - +c = t +c = c +a = a +c = c +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +- => c +c = c +t => - +t = t +a => - +c => - +c = a +- => t +c = c +c = c +- => t +a = a +g = g +a = a +g = g +g = g +a = a +g = g +g = g +a = a +g = g +g = g +c = c +c = c +g = g +c = a +c = c +c = c +c = c +a = a +g = g +c = c +- => t +t => - +- => t +t => - +c = t +t = t +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +g = g +c = c +c = c +a = a +g = g +a = a +c = c +a = a +a = a +- => t +t => - +c = t +a = a +- => t +t => - +c = t +a = a +t = t +- => a +a = c +t => - +c = c +a => - +c = a +- => t +t = t +- => a +a => - +c = a +g = g +g = g +t = t +c = c +g = g +t = t +c = c +g = g +a = a +t = t +c => - +- => c +c = a +t = t +g = g +a = a +c = c +c = c +c = c +t = t +c = c +t = t +c = c +t = t +a = a +t = t +c => - +c = c +- => t +t = t +c = c +t = t +t = t +c = c +a = a +- => t +t => - +c = t +c = c +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +c = c +c = c +t = t +a = a +g = g +t = t +c = c +t = t +g = g +c = c +t = t +t = t +t = t +t = t +c = c +c = c +c = c +c = c +g = a +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +c = c +g = g +t = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +t = t +- => a +a => - +- => a +a = c +t => - +t = t +- => a +a = c +t => - +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a => - +c = a +- => t +t = t +a = a +c = c +t => - +- => t +t => - +- => t +t = c +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +g = g +g = g +g = g +a => - +t = a +t = t +c = c +- => t +t = t +a = a +t = t +c = c +t = t +c = c +c = c +t = t +c = c +t => - +g => - +- => t +- => a +t = c +g = g +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a => - +t = a +t = t +- => c +c = c +c = c +- => t +- => t +t => - +c => - +- => t +t => - +- => t +t => - +c = t +t = t +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +g = g +c = t +c = c +- => t +t => - +c = t +c = c +g = g +a = a +g = g +g = g +t = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +- => t +t => - +c = t +- => a +a = t +t = t +c => - +- => a +a => - +- => a +a => - +g = a +g = g +g = g +a = a +c = c +g = g +a = a +t = t +t = t +c = c +c = c +c = c +t = t +c = c +c = c +c = c +a = a +t = t +c = c +t = t +g = g +a = a +c = c +a => - +- => a +a = g +g = g +t = t +t = t +g = g +g = g +a = t +c = c +a => - +- => a +a = g +g = g +g = g +a = a +c = c +g = g +c = c +g = g +g = g +c = c +c = c +g = g +a = a +a = a +g => - +- => g +g = a +t = t +g = g +a = a +t = t +a = a +t = t +c = c +g = g +t = c +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c => - +c = c +- => t +t = t +c = c +a = a +t = t +c = c +c = c +- => t +- => t +t = t +c => - +t => - +c = c +- => t +t = t +c => - +- => c +c => - +- => c +c => - +t => - +- => c +c => - +- => c +c => - +a = c +- => t +t => - +- => t +t = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +t = t +t = t +c = c +g = g +a = a +a = a +t = t +- => a +a = c +t => - +a = a +a = a +c = c +a = a +a = a +a = a +t = t +a = a +c = c +g = g +- => c +c = c +c = c +c = c +c = c +t => - +t = t +t = t +g = a +c = c +g = g +g = g +t = t +- => a +a = c +t => - +a = a +g = g +c = c +c = c +c = c +c = c +c = c +g = g +t = t +g = g +g = g +c = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +c = c +c = c +c = c +t = a +t = t +g = g +a = a +t = t +c = c +a = g +g = g +t = t +c = c +a = a +a = a +c = c +g = g +g = g +t = t +t = t +t = t +c = c +g => - +- => g +g => - +- => g +g = a +g = g +g = g +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a => - +c = a +- => t +c = c +c = c +a = g +t = t +a = a +a = a +t = t +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +- => t +t => - +- => t +t => - +c = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +g = g +t = c +t = t +t = t +a = g +c = c +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +g = g +c = c +t = t +a = a +t = t +t = t +g = g +c = t +a => - +- => a +a => - +c = a +- => t +a = a +t = t +c = c +t = t +a = a +c = c +a => - +c = a +c = c +- => t +a = a +g = g +c = c +a = a +a = a +t = t +g = g +g = g +a = a +t = t +c = c +t = t +t = t +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +c = c +c = c +g => - +- => a +a => - +c = a +c = c +g = t +g = g +g = g +- => t +t = t +c = c +a = a +a = a +g = g +c = a +c = c +g = g +a = a +g = g +c = c +t = t +t = t +a = a +t = t +t = t +c = c +c = c +t = t +c => - +c = c +- => t +g = g +a = a +a = a +t = t +- => c +c = c +t => - +c = c +g = g +a = a +c = c +a = a +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +g = g +a = a +g = g +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +t = t +a = a +t = t +c = c +a = a +t = t +c => - +c = c +- => t +a = a +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +g = g +t = t +t = t +a => - +c = a +- => t +a = a +g = g +a => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +t = t +c = c +t = t +t = t +a = a +- => t +t => - +c = t +a = a +g = g +t => - +- => t +t = c +g = g +c = c +c = c +a = a +g = g +c = c +c = c +g = a +c = c +t = t +t = t +g = g +t = t +a = a +g = g +t = t +c = c +a => - +c => - +c = a +c => - +- => c +c => - +- => c +- => t +- => t +- => t +- => t +- => t +- => t +c => - +a = c +c = c +t = t +c = c +c = c +a = a +t = t +t = t +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +t = t +c = c +a => - +c = a +- => t +t => - +- => t +t = c +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +g = g +a = a +t = t +t = t +t = t +c = c +t = t +g = g +t = t +c => - +c = c +- => t +c = c +c = c +- => g +a => - +- => a +- => c +a = c +t => - +t => - +c = c +g = g +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +t = t +g = g +g = g +t = t +c = c +g = g +a = a +- => g +g => - +a = g +c = c +t = t +c = c +c = c +a = a +c = c +- => t +t => - +a = t +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +a = a +c = c +t = t +t = t +a = a +a = a +c = c +g = g +t = t +t = t +t = t +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +g = g +t = t +c = c +g = g +a = a +a = a +g = g +t = t +t = t +t = t +g = g +g = g +a = a +c = c +g = g +g = g +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +g = g +g = g +c = c +g = g +g = g +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +g = a +g => - +- => g +g = a +c = a +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +a = a +a = a +c = c +t = t +t = t +c = c +g = g +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +g = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +t = t +g = g +a = a +- => t +t => - +- => t +t => - +c = t +a = a +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +g = g +g = g +g = g +t = t +a => - +- => a +a => - +c = a +c = c +- => t +a = a +g = g +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +c = c +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +a = a +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +c = c +a = a +a = a +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +c = c +g = g +t = t +c = c +t = t +c = c +a => - +c = a +- => t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +c = c +g = g +t = t +c = c +a = a +g = g +g = g +a = a +a = a +t = t +c = c +g = a +a = a +c = c +a = a +a = a +c = c +g = g +t = t +c = c +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +- => a +a = c +t => - +a = a +a = a +c = c +g = a +t = t +t = t +g = g +a = a +a = a +t = t +g = g +a => - +c = a +- => t +t = t +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +- => a +- => t +a = a +c => - +a = c +t => - +a = a +a = a +a = a +t = t +t = t +g = g +g = g +a = a +t = t +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a => - +t = a +t = t +c = c +- => t +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +- => a +a = c +t => - +t => - +- => t +t => - +- => t +t = c +c = c +c = c +c = c +c = c +t = t +c = c +t = t +- => a +a = c +t => - +c = c +c = c +a = a +t = t +c => - +c = c +- => t +t = t +c = c +a = a +t = t +- => c +c => - +a = c +c = c +a = a +c = c +c = c +- => a +a = c +t => - +t = t +c => - +- => c +c = a +c = c +a = a +c = c +t = t +a => - +c = a +- => t +t = t +c = c +a = a +c = c +a => - +c = a +- => t +c = c +c = c +c = c +t = t +c = c +c = c +t => - +- => t +t => - +a = t +c = c +c = c +c = c +- => t +c = c +a = a +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +- => a +a = t +c = c +a = a +t = t +a => - +c = a +- => t +a = a +a = a +g = g +t = c +t => - +- => t +t = c +g = g +a = a +c = c +a = a +g = g +t = t +a = a +a = a +a = a +a = a +t = t +a => - +- => a +a = g +a = a +a = a +a = a +t = t +g = g +c = c +a = a +a = a +c = c +- => a +a => - +- => a +a = c +t => - +c = c +t = t +a = a +t = t +a => - +t = a +- => c +c => - +- => c +c => - +- => c +c = a +t = t +c = c +a = a +t = t +c = c +a = a +c = c +a = a +c = c +t = t +a => - +- => a +a = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +- => t +t => - +c = t +t = t +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +c => - +c = c +- => t +a = a +t = t +c = c +- => t +t => - +- => t +t => - +c = t +a = a +t = t +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a => - +c = a +c = c +- => t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +a => - +c = a +- => t +t = t +a = a +c = c +c = c +- => a +a = c +c = c +c = c +c = c +c = c +t => - +a => - +c = a +- => t +t = t +a = a +c = c +t = t +- => c +c => - +- => c +c = a +g = g +a = c +t => - +a => - +- => a +a => - +c = a +- => t +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +a = a +a = a +g = g +a = a +a = a +g = g +c = c +t = t +a = a +t = t +t = t +a => - +c = a +- => t +- => t +c = c +g => - +g = g +g = g +t = t +a = a +a = a +a = a +c = c +c = c +c = c +g = a +t => - +t => - +- => t +- => c +t = c +t = t +t = t +c = c +g = g +g = g +c = c +c = c +a = a +a = a +t = t +c = c +g = a +c = c +c = c +c = c +c = c +c = c +g = a +t = t +c => - +c = c +- => t +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +- => c +a = c +c = c +c = c +t => - +t = t +a => - +- => a +a => - +t = a +t = t +c = c +- => t +c = c +c = c +a = a +c = c +a = a +a = a +- => t +t => - +c = t +a = a +g = g +t = t +a = a +c = c +a => - +- => a +a = g +t = t +c = c +g => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +a = a +a = a +g = g +- => t +t => - +c = t +c = c +a => - +c = a +- => t +g = g +c = c +t = t +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c = c +- => a +a = t +t = t +c => - +c = c +c = c +- => a +a => - +g = a +c = c +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = g +a = a +a = a +t => - +- => t +t = c +c = c +a = a +a = a +c = c +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +c = c +a => - +- => a +a = c +t = t +c = c +c = c +t = t +a = a +t = t +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a => - +t = a +- => c +c = c +a => - +- => a +a = g +t => - +- => t +t = c +t = t +a = a +a = a +t = t +t = t +c = c +t = t +t = t +a => - +c = a +- => t +c = c +a = a +a = a +t = t +a => - +c = a +- => t +a = a +a = a +t = t +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => t +a = a +t = t +g = a +c = c +c = c +a = a +t = t +c = c +t = t +t = t +g = g +a = a +c = c +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +t = t +a = a +g = g +g = g +a = a +- => t +- => g +t => - +a => - +c = t +a = a +c = c +c = c +c = c +- => a +a = c +t => - +t = t +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +c = c +g = g +a => - +t = a +t = t +c = c +- => t +t = t +a => - +- => a +a = g +a = a +a = a +c = c +g = g +c = c +a = a +t = t +c = c +g => - +- => a +a => - +c = a +c = c +- => t +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +t => - +- => t +t = c +a = a +g = g +g = g +t = c +g = g +g = g +a = a +g = g +t => - +- => t +t = c +g = g +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +t = t +a = c +c = c +t = t +a = a +c = c +c = c +t = t +a = a +t => - +- => t +t = c +c = c +t = t +a = a +a = a +c = c +t = t +t = t +t = t +c = c +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +c => - +c = c +- => t +t = t +c = c +c = c +g = g +a = a +a = a +t = t +g = g +c = t +a => - +- => a +a => - +- => a +a => - +t = a +- => c +c = a +a = a +c = c +- => t +t = g +c => - +c => - +- => c +- => t +c = c +t => - +c = c +t = t +t = t +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +c = c +t = t +c = g +t = t +a => - +c = a +- => t +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +a = a +c = c +a = a +g = g +t = t +a = a +c = c +a = a +c = c +t = t +- => c +c = c +t => - +t = t +c = c +c = c +t = t +c = c +g = a +t = t +c = c +c = c +g = g +g = g +c = t +c = c +- => t +- => g +t = t +a => - +c => - +- => a +a => - +g = a +t = t +- => c +c = c +t => - +c = c +c = c +c = c +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +c = c +c = c +- => a +a = c +t => - +t = t +g => - +- => g +g = a +a = a +g = g +a => - +c = a +c = c +c = c +- => g +t = t +g = g +a = a +g = g +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +c = c +c = c +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a => - +- => a +a = t +c = c +g = g +a = a +t = t +a = a +t = t +c = c +g => - +- => g +g = a +t = t +a = g +a = a +t = t +a = g +c = c +t = t +a => - +- => a +a = g +t = t +a = a +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +c = c +t = t +a => - +- => a +a => - +c = a +- => t +c = c +a => - +t = a +- => c +c = c +a = g +t = t +a = a +a = a +c = c +c = c +- => a +a => - +- => a +a = c +t => - +a = a +c = c +c = c +a = a +a = a +g = g +t = t +a = a +a = a +c = c +a = a +g = g +g = g +c = c +c = c +t = t +c = c +t = t +c = c +a = a +t = t +- => a +a = c +t => - +a = a +a = a +c = c +- => a +a => - +- => a +a = c +c = c +t => - +t = t +c = c +t = t +c = c +c = c +t = t +- => a +a = c +t => - +c = c +g = g +a = a +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +c = c +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = t +c = c +a = a +a = a +c = c +g = g +a = a +a = a +c = c +g = a +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +g = a +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = c +c = c +g = g +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +t => - +- => t +t = c +g = g +c = c +t => - +c = c +c = c +c = c +- => t +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +- => c +c = c +t => - +t = t +g = g +- => a +a = c +c = c +c = c +t => - +t = t +a = a +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +c = c +g = a +t = t +a = a +c = c +a = a +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g => - +- => g +g => - +- => g +g = a +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = g +t = t +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +- => a +a = c +c = c +g => - +c = c +t = t +c = c +g = g +a = a +a = a +t = t +c = c +a = a +c = c +g = g +a = a +c = c +a => - +c = a +- => t +t = t +a => - +c = a +- => t +t = t +c = c +a = t +c = c +a = a +c = c +g = g +g = g +a = a +c = c +g = g +t = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +c = c +t = t +g = a +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +g = g +g = g +t = t +- => c +c = c +c = c +c = c +c = c +t => - +a = a +a = a +t = t +t = t +a = a +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +c = c +t = t +t = t +c => - +c = c +c = c +- => t +- => a +- => c +a => - +t => - +- => a +a = c +t => - +t = t +g = g +g = g +t = t +t = t +g = g +t = t +a = a +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +g = g +g = g +g = g +c = c +t = t +a = a +t = t +c = c +g = g +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +t = t +g = g +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +t = t +a = g +t = t +c = c +c = c +a = a +c = c +c = c +g = g +t = t +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +c = c +c = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +t = t +a = a +c = c +c = c +c = c +a = a +a = a +g = g +c = t +t = t +a = a +a = a +g = g +a = a +g = g +t = t +a = a +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +- => t +t => - +- => t +t => - +- => t +t = g +g = g +a => - +g = a +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +a = a +t = t +g = g +a = a +g = g +a = a +t = t +a = a +g = g +t = t +t = t +t = t +c = c +a = a +t = t +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +a = a +g = g +t = t +c = c +t = t +g = g +t = t +a = a +t = t +a = a +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a => - +t => - +t => - +- => a +a = c +- => c +c = a +- => t +c = c +c = c +a = a +t = t +a = a +c = c +c = c +- => t +t => - +c = t +t = t +g = a +t = t +a = a +t = t +a = a +g = g +t = t +a = a +t = t +- => a +a = c +t => - +t = t +c = c +a = a +t = t +c = c +a = a +c = c +- => g +g => - +a = g +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = g +- => t +t => - +c = t +c = c +t = t +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = g +t = t +c = c +c = c +t = t +c = c +c = c +a = a +c = c +a = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +a = a +g = g +c = c +a = a +t = t +c = c +g = g +c => - +c = c +- => t +t = t +t = t +a = a +g = g +c => - +c => - +c = c +- => t +c = c +c = c +- => t +a = a +t = t +a = a +c = c +g = g +a = t +c = c +a = a +a = a +g = g +c = c +t = t +t = t +a = a +a = a +g = g +t = t +a = a +t => - +- => t +t = c +c = c +t = t +t = t +g = a +t = t +c => - +c = c +- => t +c = c +t = t +c = c +c = c +- => a +a => - +g = a +t = t +c = c +t = t +t = t +c = c +a = g +t = t +c = c +c = c +c = c +- => a +a => - +g = a +a = a +a = a +c = c +c = c +a = a +c = c +t => - +g => - +t => - +t => - +t => - +t = t +- => a +a = c +- => t +t => - +a = t +c = c +- => g +- => t +- => a +- => t +a = g +a = a +c = c +a = a +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c => - +- => c +c => - +- => c +c => - +- => c +c => - +t => - +c = c +t = t +- => c +- => a +- => c +c => - +a = c +c = c +g = g +c = t +- => a +a => - +- => a +a = c +t => - +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +g = g +g = g +a = a +t = t +c = c +c = c +- => t +t => - +- => t +t => - +c = t +t = t +a => - +- => a +a => - +c = a +- => t +a = a +t = t +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c => - +c = c +- => t +c = c +a => - +c = a +- => t +a = a +a = a +a = a +t = t +a = a +a = a +t = t +- => a +a = c +t => - +t = t +a = a +t = t +t = t +a => - +c => - +- => a +- => t +a => - +- => a +a => - +- => a +a => - +c = a +- => t +a = a +c = c +a = a +t = t +a = g +a = a +g = g +c = c +c = c +g = g +a = a +t = t +a = a +c = c +- => t +t => - +- => t +t => - +c = t +t = t +t = t +a = a +t = t +c = c +c = c +c = c +g = g +c = c +t => - +- => t +t = c +c = c +c = c +c = c +c = c +g = g +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = t +a = a +t = t +a = a +a = a +g = g +c = c +t = t +a => - +c = a +- => t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +a = a +g = g +c = t +c = c +t = t +a = a +a = a +g => - +- => g +g = a +g = g +g = g +a = a +a = a +g = g +t = t +c = c +g = g +t = c +t = t +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a => - +- => a +a = g +g = g +c = c +c = c +a = a +a = a +c = c +c = c +- => a +a => - +g = a +a = a +g = g +a = a +c = c +g = g +a = a +- => t +t => - +c = t +a = a +c = c +a = a +c = c +c = c +t = t +c = c +t = t +a = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +a => - +c = a +- => t +c = c +g => - +- => g +g = a +t = t +t = t +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +t = a +a = a +c = c +c = c +g = a +t = t +c = c +c = c +t = t +c = c +a = g +t => - +- => t +t = c +a = a +g = g +t = t +c = c +t = t +c = c +c = c +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +c = c +g => - +- => a +a => - +c = a +- => t +a = a +c = c +t = t +- => a +a = c +t => - +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c = c +t = t +c = c +c = c +a = a +a = a +t = t +t = t +t = t +c = c +c = c +- => t +t => - +c = t +g => - +- => g +g => - +t => - +g = g +- => t +- => a +a => - +- => a +a = g +t = t +a => - +- => a +a = g +t = t +c = c +a = a +t => - +- => t +t = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +c = c +a = a +t = t +- => c +c = c +t => - +t = t +a => - +c = a +- => t +t = t +a = a +c = c +c = c +- => g +g => - +a = g +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +a = a +a = a +g = g +t = t +a = a +t = t +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +a = a +c = c +g = g +a = a +g = g +c = c +g = a +t = t +c = c +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +a = a +g = g +- => t +t => - +c = t +c = c +c = c +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +c = c +- => g +g => - +a = g +g = g +t = t +g = g +g = g +g = g +a = a +c = c +t = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +t = t +a => - +- => a +a = c +c = c +t = t +c = c +a = a +t = t +t = t +t = t +g = g +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +g = g +a = a +t = t +- => c +c = c +t => - +t = t +- => a +a = c +t => - +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c => - +c = c +- => t +a = a +a = a +c = c +t = t +c => - +c = c +- => t +- => a +a => - +- => a +a = c +t => - +t = t +g => - +- => g +g = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +- => t +- => a +- => t +t = t +a = a +t = t +c = c +a = a +t = t +c = c +t => - +t => - +c = c +t => - +c = c +g = g +c = t +t = t +a => - +c = a +- => t +c = c +a = a +c = c +t = t +c = c +t = t +c = c +g = g +a = a +t = t +t = t +c = c +c = c +- => a +a => - +g = a +c = c +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +c = c +- => a +a => - +c = a +c = c +t = t +a = a +c = c +- => a +a => - +c = a +c = c +g = t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +g = g +c = c +a = a +g = g +t = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +c = c +a = a +t = t +c = c +g = g +g = g +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +t = t +g = g +t = c +t = t +g = g +c = c +- => a +a => - +- => a +a = c +c = c +c = c +c = c +t => - +g = g +g = g +a => - +- => a +a => - +- => a +a => - +c = a +- => t +g = g +c = c +a = a +t = t +c = c +a = a +a = a +c = c +g = a +t = t +a = a +t = t +a = a +t = t +c = c +g = g +g = g +a = a +- => t +t => - +c = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +c = c +c = c +- => a +a => - +t = a +t = t +c = c +g = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g => - +- => g +g = a +t = t +a => - +- => a +a = c +c = c +g = g +c = c +t = t +a = a +a = a +t = t +- => c +c = c +t => - +t = t +a => - +c = a +- => t +c = c +c = c +a = a +t = t +g = g +t = t +t = t +g = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c => - +c = c +- => t +t = t +c = c +c = c +a => - +- => a +a => - +c = a +- => t +c = c +g = g +g = g +t = t +a => - +c = a +c = c +c = c +- => t +a => - +c => - +- => a +- => t +a => - +c = a +- => t +a = a +a = a +c = c +a = a +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +c = c +c = c +t = t +t = t +a = a +a = a +c = c +t = t +t = t +g = g +g = g +a = a +g = g +a = a +c = c +t = t +g = g +a => - +c = a +- => t +a = a +t = t +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +g = g +g = g +c = c +c = c +c = c +g = g +a = a +g = g +a = a +c = c +g = g +g = g +t = t +a = a +g = g +a = a +a = a +t = t +t = t +g = g +t = t +t = t +t = t +g = g +g = g +g = g +a => - +c = a +- => t +a = a +a = a +g = g +a => - +- => a +a => - +c = a +c = c +- => t +c = c +- => a +a = t +c => - +c => - +c = c +- => t +a = a +c = c +- => a +a = c +c = c +c = c +- => g +c = c +- => g +a => - +t => - +a => - +t = a +t = t +a = a +t = t +g = a +a = a +- => t +t => - +- => t +t => - +c = t +a = a +a = a +c = c +t = t +c = c +t = t +- => a +a = t +c = c +t => - +a = a +t = t +a = a +g = g +t = t +a = a +a = a +a = a +t = t +g = g +- => c +c = c +c = c +c = c +c = c +c = c +t => - +t = t +c = c +c = c +g = g +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +g = g +g = g +a => - +- => a +- => g +a = c +t => - +a = a +a = a +a = a +g = g +a = a +g = g +a = a +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +c => - +c = c +- => t +- => t +t => - +- => t +- => g +t => - +a = t +a = g +a = c +c = c +t => - +- => t +t => - +c = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +t = t +t = t +t = t +g = g +g = g +c = c +t = t +g = g +g = g +a = a +c = c +c = c +t = t +a = a +a = a +t = t +g = g +a = a +g = g +g = g +c = c +c = c +a = a +g = g +a = a +c = c +t = t +t = t +g = g +a = a +g = g +t = t +c = c +t = t +a = a +g = g +t = t +g = g +c = c +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +a = a +c = c +t = t +t = t +g = g +t = t +t = t +t = t +g = g +c = c +t = t +t = t +g = g +g = g +- => a +a => - +- => a +a => - +- => a +a = c +t => - +t = t +a = a +t = t +c = c +g = g +c = c +c = c +g = g +a = a +c = c +g = g +t = t +g = g +g = g +t = t +a => - +- => a +a = g +c = c +c = c +c = c +t = t +a = a +c = c +a = a +g = g +g = g +a = a +c = c +t = t +a = a +g = g +g = g +t = t +t = t +g = g +t = t +a = a +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +a = a +t = t +t = t +t = t +g = g +g = g +g = g +a = a +t = t +a = g +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +c = c +c = c +t = t +g = g +a = a +g = g +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +t = t +g = g +a = a +a = a +c = c +a = a +a = a +g = g +g = g +c = c +a = a +a = a +c = c +c = c +a = a +g = g +t = t +t = t +c = c +a => - +- => a +a = g +t = t +a = a +a = a +c = c +c = c +t = t +a = a +g = g +t = t +t = t +a => - +- => a +a => - +c = a +- => t +- => t +t => - +c = t +- => a +a = c +t => - +a = a +c = c +c = c +a = a +t = t +c = c +a = g +a = a +g = g +c = c +g = g +a = a +a = a +a = a +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +- => t +t => - +c = t +c = c +a = a +g = g +- => a +a => - +- => a +a = c +t => - +c = c +g = g +t = t +- => a +- => c +a = a +c = c +a => - +t => - +g = a +a = a +c = c +g = a +a = a +g = g +c = c +c = c +t = t +c = c +c = c +a => - +- => a +a => - +c => - +c = a +- => t +c = c +- => t +a => - +- => a +a => - +c => - +- => a +- => t +a => - +c = a +- => t +g = g +a = a +g = g +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +g = g +g = g +g = g +g = g +t = t +t = t +g = g +g = g +c = c +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +c = c +g = g +t = t +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +a = a +a = a +t = t +c = c +c = c +t = t +g = g +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +- => a +a => - +- => a +a = t +t = t +c => - +- => c +- => a +c = c +a => - +t => - +g = a +a = a +c = c +a = g +a = a +a = a +c = c +g = g +t = t +a = a +a = a +t = t +t = t +- => a +a = c +t => - +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +a = a +g = g +g = g +t = t +a = a +t = t +c = c +c = c +c = c +a = a +g = g +a = a +a = a +g = g +a = a +g = g +c = c +a = a +g = g +a = a +a = a +c = c +g => - +- => a +a => - +c = a +- => t +a = a +c = c +a = a +a = a +t = t +a = a +c = c +g = a +g = g +g = g +c = c +g = g +g = g +a = a +g = g +a = a +a = a +g = g +t = t +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +a = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +t = t +g = g +a = a +c = c +c = c +a => - +- => a +a = g +t = t +t = t +t = t +t = t +c = c +a = a +t = t +t = t +c = c +t = t +c = c +t = t +g = g +t = t +c = c +g = g +a = a +c = c +t = t +t = t +g = g +g = g +g = g +a = a +g = g +c = c +a = a +c = c +c = c +t = t +c = c +g = g +g = g +t = t +a = a +a = a +g = g +t = t +a = a +t = t +g = g +t => - +c = c +- => t +c = c +a = a +g = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +t = t +c = c +c = c +t = t +t = t +g = g +t = t +t = t +c = c +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +t = t +g = g +g = g +a = a +a = a +a = a +c = c +g = g +t = t +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +t = t +g = g +g = g +c = c +g = g +c = c +c = c +g = g +g = g +c = c +- => a +a => - +- => a +a = c +t => - +t => - +- => t +t => - +g => - +t = t +a = g +c = c +- => g +- => t +a = a +c = c +a = a +g = g +t = t +g = g +a = a +c = c +c = c +c = c +g = g +t = t +c = c +c = c +g = g +c = c +c = c +a = a +c = c +g = g +g = g +a = a +g = g +a = a +t = t +t = t +a = a +t = t +g = g +a = a +c = c +c = c +a = a +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +g = g +t = t +c = c +c = c +g = g +c = c +c = c +c = c +c = c +a = a +- => t +t => - +- => t +t => - +c = t +t = t +a = a +a = a +a = a +c = c +g = g +g = g +c = c +t = t +c = c +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +t = t +g = g +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a => - +- => a +a = g +t = t +t = t +g = g +g = g +a = a +a = a +a = a +g = g +g = g +a => - +- => a +- => g +- => c +a => - +t => - +- => a +a = c +c = c +t => - +c = c +g = g +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => t +t = t +g = g +t = t +c = c +- => a +a = c +c = c +t => - +c = c +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +- => a +a = t +c = c +t => - +g = g +a = a +a = a +c = c +a = a +a = a +c = c +c = c +- => a +a => - +- => a +a = t +c = c +t => - +a = a +a = a +c = c +a = a +t = t +c = c +t = t +a = a +t = t +a => - +- => a +a => - +c = a +c = c +- => t +c = c +g = a +a = a +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +a = a +g = g +t = t +c = c +- => a +a => - +- => a +a => - +g = a +- => t +t => - +c = t +a => - +c = a +- => t +- => a +a => - +- => a +a => - +- => a +a => - +- => a +- => c +a = c +t => - +t => - +a = a +g = g +a = a +c = c +t = t +g = a +c = c +g = a +t = t +c = c +c = c +g = g +a = a +a = a +t = t +a = a +c = c +g = g +c = c +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +- => c +c => - +a = c +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +g = g +t = t +a = a +a = a +t = t +c = c +a = g +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +t = t +c = c +c = c +c = c +a => - +c = a +- => t +t = t +a = a +t = t +c = c +t = t +a = a +a = a +c = c +c = c +a = a +g = g +g = g +t = t +t = t +a = a +a = a +c = c +c = c +c = c +a = a +c = c +- => a +a = t +c = c +t => - +c = c +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c = c +- => a +a => - +- => a +- => c +a => - +t => - +- => a +a = c +t => - +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +t = t +a => - +- => a +a => - +- => a +- => t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +t = a +- => c +c => - +- => c +c => - +a => - +t => - +c = c +a = a +c => - +- => c +- => t +c = a +- => t +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +a = a +a = a +c = c +t = t +t = t +g = g +c = c +g = g +a = a +a = a +a = a +g = g +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +a = a +a = a +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +a = a +c = c +c = c +c = c +a => - +c = a +- => t +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +a = a +- => g +- => t +g = g +a => - +g => - +- => a +a => - +g = a +a = a +t = t +g = g +t = t +t = t +c = c +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +c = c +a = a +g = g +g = g +t = t +t = t +t = t +c = c +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +g = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +g = g +a = a +t = t +t = t +g = g +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +t = t +g = g +t = c +t => - +c = c +c = c +- => t +c = c +c = c +t = t +- => a +a => - +- => a +a => - +- => a +a = c +t => - +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +a = a +a = a +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +g = g +- => a +a = c +t => - +a = a +g = g +a = a +a = a +c = c +c = c +t = t +g = g +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +t = t +a = a +g = g +t = t +g = g +g = g +t = t +c = c +c = c +g = g +a = a +g = g +c = c +c = c +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +a = a +g = g +c = c +g = g +g = g +a = a +g = g +a = a +t = t +g = g +g = g +a = a +t = t +- => c +a = c +t => - +t = t +t = t +a = a +g = g +a = a +a = a +g = g +g = g +g = g +t = t +g = g +a = a +t = t +a = a +a = a +a = a +a = a +c = c +g = g +a = a +t = t +g = g +t = t +a = a +t = t +c = c +t = t +g = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +g = g +a = a +g = g +c = c +a = a +g = g +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +a => - +- => a +a => - +- => a +a = g +c = c +c = c +g = a +a = a +g = g +a = a +g => - +- => g +g = a +a = a +a = a +c = c +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +g = g +t = t +c = c +t = t +t = t +c = c +c = c +a = a +t = t +a = g +t = t +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +g = g +a => - +t => - +- => a +- => c +a => - +t => - +- => a +- => c +a => - +- => a +- => g +a = c +t => - +a = a +c = c +g = g +a = a +a = a +c = c +c = c +a = a +a = a +t = t +a = a +t => - +- => t +t = a +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +g = g +a = a +a = a +a = a +g = g +g = g +g = g +a = a +a = a +c = c +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t = t +g = a +t = t +a = a +g = g +a = a +t = t +a = a +a = a +c = c +g = g +c = c +g = g +g = g +t => - +c => - +c = c +- => t +- => a +a => - +- => a +a => - +- => a +a = t +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a = a +g = g +c = c +g = g +g = g +a = a +t = t +a = a +t = t +g = g +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +c = c +- => t +g = a +a = a +- => t +t => - +- => t +t => - +c = t +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +t = t +c = a +c = c +- => a +a = c +c = c +c = c +t => - +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +- => a +a => - +- => a +a => - +- => a +a => - +t = a +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +c = c +c = c +a = a +g = g +t = t +t = t +c = c +- => a +a => - +- => a +a = c +t => - +t = t +c = c +a = a +a = a +c = c +t = t +t = t +t = t +a = a +g = g +a = a +g = g +g = g +a = a +t = t +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +a = a +a = a +t = t +t = t +c = c +g = g +a = a +t = t +g = g +t = t +g = g +a = a +g = g +a = a +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g = g +g = g +t = t +t = t +c = c +a = a +c = c +g = g +t = t +g = g +a = a +a = a +a = a +g = g +g = g +t = t +c = c +a = a +t = t +g = g +t = t +g = g +a = a +a = a +t = t +g = g +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +c = c +t = t +g = g +a => - +- => a +a => - +c = a +- => t +a = a +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +a = a +t = t +a = a +t => - +- => t +t = c +t = t +a = a +c = c +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +g = g +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +t = t +g = g +c = c +g = g +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +g = g +g = g +g = g +a = a +c = c +a = a +a = a +g = g +t = t +t = t +g = g +a = a +t = t +t = t +c = c +g = g +t = t +g = g +a = a +g = g +a = a +t = t +g = g +a = a +g = g +- => a +a => - +g = a +t = t +c = c +a = a +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +t = t +t = t +t = t +a = a +g = g +g = g +t = t +g = g +g = g +a = a +a = a +g = g +c = a +t = t +g = g +g = g +g = g +a = a +a = a +t = t +c = c +c = c +a = a +a = a +a = a +g = g +t = t +a = a +t = t +t = t +c = c +c = c +c = c +g = a +a = a +t = t +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +a = a +g = g +a => - +c => - +c = a +c = c +- => t +- => t +c = c +a = a +t = t +c = c +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +g = g +a = a +a = a +c = c +g = g +g = g +t = t +g = g +g = g +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +t = t +g = g +g = g +a = a +a = a +c = c +t = t +g = g +g = g +a = a +t = t +t = t +g = g +c = c +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +a = a +c = c +c = c +c = c +a = a +t = t +g = g +a = a +a = a +c = c +g = a +c = c +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +c = c +- => a +a = c +t => - +c = c +g = g +g = g +a = a +a = a +g = g +t = t +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +a = a +c = c +g = g +a = a +c = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +a = a +t = t +a = a +t = t +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +c = c +g = g +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +a = a +g = g +c = c +t = t +a = a +a = a +t = t +g = g +t = t +c = c +t = t +t = t +g = g +t = t +c = c +c = c +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +a = a +c = c +t = t +t = t +c = c +g = g +t = t +g = g +g = g +c = c +g = g +g = g +t = t +c = c +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +g = g +c = c +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +a = a +c = c +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c = c +a => - +- => a +a = g +a = a +a = a +c = c +a => - +- => a +a => - +c = a +- => t +t = t +a = a +a = a +a = a +t = t +t = t +g = g +a = a +c = c +a = a +a = a +c = c +- => t +t => - +c = t +c = c +a = a +a = a +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t => - +- => t +t = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +t = t +a = a +g = g +a = a +t = t +t = t +a = a +g = g +g = g +g = g +t = t +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +- => g +g => - +a = g +a = a +t = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +c = c +a = a +a = a +g = g +t = t +c = c +t = t +a = a +t = t +a => - +c = a +- => t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +g = g +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +t = t +a => - +- => a +a => - +- => a +a => - +- => a +a => - +c => - +- => a +- => t +a => - +c = a +- => t +a = a +g = g +t => - +- => t +t = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +t = t +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = a +c = c +- => t +t => - +c = t +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +a = a +a = a +c => - +c => - +c => - +c => - +t => - +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +- => t +c = a +a = a +c = c +t = t +a = a +g = g +a = a +t = t +t = t +t = t +t = t +g = g +t = t +g = g +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +g = g +g = g +c => - +c = c +- => t +g = a +a = a +a = a +g = g +a = a +t = t +- => a +a => - +- => a +a = c +c = c +t => - +g = g +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +g = g +g = g +c = c +g = g +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +t = t +g = g +c = c +t = t +t = t +t = t +a = a +a = a +c = c +t = t +g = g +g = g +t = t +t = t +g = g +g = g +g = g +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t = t +- => a +a = c +t => - +c = c +g = g +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +t = t +t = t +c = c +c = c +g => - +- => a +a => - +- => a +a = t +t = t +a = a +g = g +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a => - +a => - +- => a +- => g +a = g +g = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +t = t +c = c +g = g +c = c +a => - +a => - +a => - +a => - +c => - +t => - +c => - +g => - +a => - +c => - +g => - +t => - +a => - +a => - +c => - +a => - +a => - +c => - +g => - +c => - +a => - +c => - +g => - +a => - +a => - +c => - +t => - +a => - +c => - +g => - +a => - +a => - +c => - +a => - +g => - +g => - +g => - +a => - +a => - +a => - +a => - +c => - +t => - +a => - +g => - +c => - +a => - +c => - +c => - +a => - +c => - +t => - +a => - +a => - +a => - +t => - +c => - +t => - +c => - +c => - +c => - +a => - +c => - +t => - +t => - +g => - +a => - +g => - +t => - +g => - +a => - +c => - +c => - +t => - +t => - +a => - +c => - +c => - +c => - +c => - +t => - +a => - +c => - +g => - +a => - +a => - +c => - +g => - +t => - +a => - +c => - +a => - +c => - +a => - +t => - +t => - +a => - +g => - +a => - +a => - +t => - +g => - +a => - +t => - +t => - +c => - +t => - +c => - +g => - +a => - +t => - +t => - +a => - +t => - +c => - +t => - +t => - +t => - +c => - +c => - +g => - +a => - +t => - +c => - +c => - +t => - +g => - +g => - +t => - +t => - +t => - +g => - +g => - +a => - +t => - +a => - +a => - +a => - +c => - +a => - +a => - +a => - +t => - +a => - +c => - +c => - +c => - +c => - +a => - +c => - +t => - +a => - +c => - +a => - +c => - +t => - +c => - +g => - +g => - +g => - +c => - +a => - +g => - +a => - +t => - +t => - +t => - +g => - +t => - +a => - +a => - +a => - +a => - +g => - +t => - +c => - +a => - +c => - +a => - +t => - +a => - +a => - +c => - +g => - +a => - +a => - +a => - +c => - +t => - +c => - +c => - +t => - +c => - +c => - +a => - +t => - +t => - +c => - +g => - +a => - +t => - +g => - +t => - +a => - +t => - +t => - +t => - +g => - +a => - +c => - +a => - +c => - +c => - +c => - +c => - +c => - +c => - +a => - +c => - +a => - +g => - +a => - +a => - +a => - +c => - +c => - +c => - +c => - +a => - +a => - +a => - +c = a +c = a +a = a +a = a +c => - +c => - +g => - +a => - +g => - +c => - +c => - +c => - +c => - +a => - +t => - +a => - +c => - +c => - +c => - +c => - +a => - +a => - +t => - +c => - +g => - +t => - +c => - +g => - +c => - +c => - +a => - +c => - +a => - +c => - +a => - +c => - +g => - +a => - +c => - +c => - +c => - +a => - +t => - +c => - +c => - +t => - +a => - +c => - +c => - +c => - +g => - +c => - +c => - +c => - +c => - +c => - +a => - +a => - +c => - +a => - +t => - +a => - +a => - +c => - +t => - +a => - +c => - +t => - +c => - +t => - +a => - +a => - +t => - +c => - +a => - +t => - +c => - +a => - +t => - +a => - +c => - +c => - +c => - +t => - +c => - +a => - +c => - +c => - +c => - +t => - +c => - +c => - +c => - +c => - +t => - +t => - +t => - +t => - +a => - +t => - +t => - +a => - +c => - +a => - +c => - +a => - +a => - +t => - +c => - +a => - +a => - +t => - +c => - +c => - +c => - +c => - +c => - +a => - +c => - +t => - +g => - +a => - +c => - +a => - +a => - +t => - +t => - +t => - +t => - +c => - +a => - +c => - +a => - +t => - +a = c +t => - +g => - +g = t +c = c +g => - +g = g +t => - +t => - +t => - +t = a +c => - +t => - +a = c +t = g +t => - +t => - +t => - +a = t +a => - +- => a +a => - +c => - +t => - +t => - +t = a +a = a +g = g +a = a +c => - +c => - +a => - +a => - +t => - +c => - +c => - +g => - +a => - +c => - +c => - +a => - +c => - +a => - +a => - +t => - +c => - +c => - +c => - +a => - +a = c +g => - +a => - +a => - +a = g +c = c +a => - +a => - +a => - +a => - +a => - +c => - +c => - +c => - +c => - +a => - +a => - +a => - +c => - +c => - +g => - +t => - +c => - +t => - +c => - +t => - +a => - +c => - +a => - +c => - +a => - +- => a +- => t +- => g +a => - +- => a +a => - +t => - +t = a +c = c +- => t +a = a +c = c +g = g +- => a +a => - +c => - +a = a +c => - +c => - +g => - +g => - +t => - +c => - +t => - +t => - +c => - +g => - +c => - +c => - +c => - +c => - +c => - +t => - +c => - +c => - +c => - +c => - +c => - +c => - +c => - +a => - +a => - +a => - +c => - +c => - +a => - +c => - +c => - +t => - +t => - +t => - +a = c +a => - +a => - +a => - +- => a +a => - +- => a +- => g +- => g +a => - +c => - +- => a +a => - +- => a +a => - +t = a +a = a +c = c +t = t +a => - +c => - +a = a +g => - +a = g +c => - +a => - +c => - +a => - +c => - +c => - +t => - +t => - +t => - +c => - +g => - +t => - +c => - +g => - +a => - +c => - +a => - +c => - +g => - +t => - +c => - +t => - +g => - +t => - +a => - +a = c +a => - +t = a +- => c +c => - +a => - +g => - +c = c +a => - +a => - +t => - +a => - +a => - +t => - +a => - +a => - +t => - +a = a +c = c +- => t +- => a +a => - +g => - +g => - +- => a +a => - +t => - +g => - +t = a +t = t +c = c +g => - +t = t +- => c +a = c +a = c +t => - +t => - +a => - +- => a +a = c +t => - +t = t +a => - +- => a +a => - +t => - +t = a +g => - +t => - +g = g +t = t +g = g +a => - +- => a +- => c +- => c +- => c +a = c +g = g +t => - +- => c +- => c +- => c +c => - +a = c +t => - +- => t +t = a +c = c +- => g +a => - +t = a +a = a +c = c +g = g +- => t +a => - +g = a +c = c +g => - +g => - +a = a +c = c +a = a +t => - +- => t +t => - +a => - +t = t +a => - +a => - +c => - +t => - +t = a +- => g +g => - +c = g +a = a +t => - +c = t +c = g +- => a +- => t +a = t +c => - +g => - +- => c +- => t +c = c +t => - +- => a +a => - +t => - +t => - +t => - +a = a +t = t +t = t +a => - +c = a +- => t +c = c +- => t +t => - +- => t +t => - +a => - +c => - +c = t +c = c +c = c +- => g +g = a +t = t +c = c +c = c +t => - +t => - +a = t +- => g +g = g +t => - +t => - +- => t +t => - +c = t +t = t +- => g +g => - +t => - +c = g +t => - +a = a +t => - +g = t +a => - +c => - +g => - +c => - +t => - +g => - +t => - +- => a +- => a +a => - +t => - +c => - +c = a +c = c +- => a +- => a +a => - +c => - +g => - +- => a +- => t +a => - +g => - +g = a +c => - +c => - +g => - +a => - +g => - +g => - +t => - +- => c +c => - +g => - +- => c +c => - +a => - +g => - +a = c +g => - +c = c +g => - +t => - +t => - +a = a +c => - +g => - +a = c +t = t +a => - +g => - +c => - +g = a +c = c +a = a +c = c +g => - +t => - +g => - +t => - +g => - +g = t +g = c +g = g +g = g +g = g +t => - +c = c +t = a +g = g +c = c +t => - +t => - +t => - +- => t +t => - +a => - +- => t +t => - +g = t +g = g +t => - +t => - +t = t +a => - +c => - +g => - +t => - +- => a +- => a +a => - +c => - +c => - +t => - +c => - +t => - +c => - +g => - +- => a +a => - +g = a +g => - +g = g +- => t +c = c +a = a +- => c +c = a +t = t +c => - +- => a +a => - +c = a +c = c +- => g +a => - +- => a +a => - +t => - +t => - +- => a +a => - +t = a +- => c +- => c +- => c +c => - +- => c +- => t +c => - +- => c +c => - +a => - +c = c +t => - +- => a +a = t +t = t +c = c +t => - +g => - +g = g +a => - +c => - +a => - +c = a +- => t +- => g +t = t +- => a +- => t +- => t +a = t +g = g diff --git a/DNA_Alignment/DNA_Alignment/neanderthal.txt_vs_protypicalHuman.txt.txt b/DNA_Alignment/DNA_Alignment/neanderthal.txt_vs_protypicalHuman.txt.txt new file mode 100644 index 0000000..78b5654 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/neanderthal.txt_vs_protypicalHuman.txt.txt @@ -0,0 +1,16749 @@ +Score: 81380 +g = g +t = t +a = a +g = g +c = c +a = a +c = c +t = t +a = a +c = c +a = a +g = g +a = a +a = a +t = t +a = a +a = a +a = a +t = t +t = t +c = c +c = c +c = c +c = c +t = t +t = t +g = g +c = c +a = a +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +a = a +t = t +c = c +c = c +g = g +a = a +a = a +a = a +t = t +a => - +c = a +c = c +- => t +g = g +g = g +g = g +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +t = t +t = t +g = g +g = g +t = t +c = c +t = t +a = a +c = c +a = a +g = g +c = c +c = c +t = t +a = a +t = t +g = g +t = t +c = c +a = a +a = a +g = g +t = t +g = g +a = a +a = a +a = a +t = t +c = c +g = g +a = a +t = t +g = g +g = g +g = g +g = g +g = g +t = t +t = t +c = c +a = a +c = c +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +g = g +g = g +c = c +c = c +t = t +c = c +g = g +c = c +t = t +c = c +c = c +t = t +c = c +t = t +c = c +a = a +t = t +c = c +g = g +t = t +g = g +a = a +g = g +a = a +a = a +c = c +a = a +c = c +g = g +c = c +c = c +c = c +t = t +a = a +t = t +a = a +a = a +c = c +t = t +a = a +a = a +a = a +g = g +t = t +g = g +c = c +c = c +t = t +c = c +c = c +t = t +a = a +c = c +c = c +- => a +a = c +c = c +t => - +a = a +g = g +t = t +t = t +c = c +c = c +c = c +t = t +g = g +g = g +g = g +g = g +a = a +t = t +a = a +g = g +a = a +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +g = g +g = g +t = t +a => - +c = a +c = c +c = c +c = c +c = c +- => t +g = g +c = c +t = t +c = c +t = t +t = t +c = c +c = c +c = c +t = t +a = a +a = a +a = a +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +a = a +c = c +a = a +c = c +g = g +a = a +t = t +a = a +c = c +a = a +t = t +g = g +c = c +c = c +a = a +t = t +t = t +t = t +- => a +a = c +c = c +t => - +g = g +a = a +a = a +a = a +t = t +a = a +c = c +a => - +c = a +- => t +g = g +a = a +t = t +a = a +c = c +a = a +t = t +g = g +a = a +c = c +- => a +a => - +g = a +t = t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +- => a +a => - +- => a +a = c +c = c +t => - +a = a +t = t +a = a +g = g +g = g +a = a +t = t +c = c +a = a +c = c +c = c +c = c +a = a +c => - +a = c +t => - +- => t +t = c +- => c +c => - +- => c +c => - +- => c +- => a +c => - +g => - +- => c +c => - +a = c +g = g +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +a = a +c = c +a = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +c = c +- => a +a = c +t => - +a = a +c = c +t = t +g = a +t = t +c = c +a = a +a = a +c = c +t => - +- => t +t = c +c = c +c = c +a = a +a = a +c = c +t = t +a = a +a = a +c = c +g = g +a = a +c = c +a => - +c = a +- => t +g = g +a = a +a = a +c = c +g = g +a = a +a = a +c = c +a = a +t = t +t = t +c = c +g = g +t = t +a => - +c = a +c => - +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +- => t +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +c => - +- => c +- => a +c = a +a = a +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +t = t +- => a +a => - +- => a +a = c +t => - +c = c +c = c +a = a +a = a +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +g = g +a => - +c = a +- => t +g = g +t = t +c = c +c = c +- => a +a = c +t => - +c = c +a = a +g = g +t = t +t = t +c = c +a = a +t => - +- => t +t = a +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +- => g +g => - +a = g +c = c +a = a +t = t +g = g +t = t +t = t +a = a +t = t +a = a +a = a +g = g +t = t +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +t = t +c = c +a = a +t = t +t = t +a = a +c = c +a = a +t = t +g = g +c = c +t = t +t = t +t = t +a = a +t = t +g = g +t = t +a = a +t = t +c = c +g = g +c = c +c = c +a = a +a = a +c = c +g = a +a = a +c = c +t = t +a = a +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +g = g +t = t +t = t +a = a +t = t +g = g +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +t = t +g = g +g = g +g = g +t = t +t = t +t = t +a = a +g = g +a = a +c = c +g = g +- => a +a => - +g = a +g = g +g = g +g = g +g = g +t = t +a = a +c = c +t = t +t = t +t = t +c = c +t = t +t = t +g = g +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +a = a +a = a +t = t +t = t +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a = a +t = t +t = t +a = a +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +a = a +t = t +t = t +t = t +c = c +t = t +g = g +a = a +a = a +a = a +a = a +a = a +g = g +a = a +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +a = a +g = g +g = g +a = a +a = a +c = c +c = c +t = t +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +a = a +a = a +g = g +t = t +a = a +g = g +a = a +g = g +g = g +c = c +c = c +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +a = a +t = t +c = c +a = a +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +t = t +c = c +c = c +t = t +g = g +t = t +c = c +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +g = g +t = t +t = t +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a => - +c = a +- => t +c = c +a = a +a = a +c = c +c = c +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +t = t +a = a +c = c +g = g +a = a +t = t +g = g +a = a +a = a +c = c +a = a +g = g +g = g +t = t +t = t +a = a +c = c +t = t +- => a +a = c +c = c +t => - +a = a +t = t +t = t +t = t +t = t +c = c +c = c +c = c +a = a +t = t +c = c +g = g +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a = a +a = a +c = c +a = a +g = g +g = g +a = a +g = g +g = g +c = c +t = t +a = a +a = a +g = g +t = t +c = c +c = c +a = a +a = a +t = t +c = c +t = t +t = t +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +g = g +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +a = a +g = g +t = t +t = t +a = a +t = t +t = t +t = t +c = c +a = a +c = c +t = t +a = a +a = a +c = c +c = c +g = g +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +g = g +c = c +t = t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +t = t +g = a +t = t +- => a +a = c +c = c +t => - +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +t = t +a = a +a = a +t = t +a = a +a = a +c = c +g => - +- => g +g = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +c = c +c = c +t = t +a = a +c = c +c = c +t = t +a = a +t = t +c = c +a = a +- => t +t => - +c = t +a = a +t = t +c = c +c = c +c = c +g = g +t = t +t = t +c = c +c = c +t = t +g = g +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +t = t +g = g +c = c +c = c +t = t +a = a +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +c = c +g = g +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +c = c +c = c +g = g +a = a +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +a = a +c = c +a = a +a = a +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +a = a +t = t +t = t +a = a +a = a +c = c +a = a +g = g +a = a +c = c +c = c +c = c +a = a +g = g +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +g = g +a = a +c = c +c = c +a = a +c = c +t = t +c = c +- => t +t => - +c = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +t = t +t = t +a = a +c = c +a = a +g = g +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +c = c +t = t +t = t +c = c +c = c +t = t +t = t +c = c +t = t +c = c +t => - +- => t +t => - +- => t +t = c +a = a +t = t +t = t +c = c +g = g +g = g +c = c +t = t +c = c +c = c +c = c +g = g +c = c +a = a +g = g +a = a +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +t = t +c = c +c = c +a = a +c = c +t = t +a = a +a = a +a = a +a = a +t = t +a = a +g = g +c = c +c = c +t = t +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +t = t +a = a +- => g +g => - +- => g +g => - +a = g +c = c +a = a +a = a +a = a +g = g +c = c +a = a +c = c +g = g +t = t +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +c = c +g = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +g = g +t = t +t = t +a = a +t = t +t = t +a = a +c = c +t = t +t = t +c = c +c = c +c = c +a = g +t = t +t = t +c = c +t = t +- => a +a = c +t => - +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +c = c +c = c +a = a +t = t +t = t +t = t +c = c +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +t = t +g = g +a = a +c = c +a = a +g = g +a = a +t = t +g = g +a = a +c = c +t = t +c = c +a = a +t = t +c = c +g = g +g = g +a = a +g = g +g = g +a = a +g = g +t = t +c = c +t = t +a = a +a = a +g = g +t = t +g = a +a = a +c = c +t = t +t = t +g => - +- => g +g = a +t = t +c = c +c = c +a = a +g = g +a = a +c = c +a = a +g = g +g = g +g = g +t = t +t = t +a = a +c = c +a = a +t = t +a = a +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +t = t +a = a +t = t +c = c +a = a +- => t +t => - +c = t +c = c +a = a +a = a +a = a +c = c +a = a +t = t +t = t +a = a +a = a +t = t +g = g +a = a +c = c +a = a +c = c +c = c +g = g +g = g +g = g +g = g +a = a +g = g +t = t +c = c +t = t +t = t +a = a +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +g = g +g = g +a = a +g = g +t = t +a = g +c = c +c = c +c = c +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +c = c +a = a +a = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +a = a +a = a +c = c +g = g +t = t +t = t +c = c +g = g +t = t +c = c +c = c +t = t +c = c +c = c +t = t +a = a +t = t +t = t +a = a +c = c +g = g +g = g +c = c +t = t +a = a +c = c +a = a +a = a +a = a +g = g +t = t +c = c +c = c +a => - +- => a +a => - +- => a +a => - +- => a +a = g +a = a +c = c +t = t +c = c +a = a +t = t +c = c +t = t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +a = a +g = g +g = g +c = c +a = a +t = t +t = t +a = a +t = t +a = a +t = t +c = c +c = c +g = g +g = g +a = a +g = g +c = c +a = g +g = g +g = g +c = c +t = t +a = a +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +t = t +c = c +t = t +c = c +c = c +g = g +t = t +c = c +t = t +a = a +t = t +t = t +t = t +c = c +t = t +t = t +a = a +t = t +a = a +a = a +c = c +t = t +c = c +c = c +g = g +c = c +g = g +g = g +t = t +a = a +a = a +c = c +c = c +g = g +c = c +a = a +c = c +t = t +t = t +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +a = a +c = c +t = t +a = a +a = a +g = g +t = t +c = c +g = g +g = g +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +g = g +c = c +a = a +g = g +a = a +g = g +c = c +t = t +c = c +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +c = c +g = g +c = c +t = t +a = a +a = a +c = c +t = t +a = a +c = c +t = t +t = t +t = t +t = t +c = c +c = c +g = g +c = c +c = c +- => a +a => - +g = a +c = c +t = t +c = c +c = c +g = g +c = c +a = a +g = g +a = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +g = g +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +c = c +a = a +g = g +g = g +a = a +c = c +a = a +c = c +c = c +a = a +c = c +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +c = c +t = t +a = a +g = g +t = t +c = c +c = c +g = g +t = t +c = c +c = c +g = g +c = c +g = g +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +g = g +t = t +a = a +c = c +g = g +c = c +c = c +t = t +c = c +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +a = a +g = g +c = c +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +a = a +a = a +a = a +a = a +t = t +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +t => - +- => t +t = c +a = a +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +a = a +a = a +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t = t +t = t +t = t +a = a +t = t +g = g +t = t +t = t +g = g +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +g = g +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +t = t +c = c +a = a +g = g +g = g +c = c +a = a +c = c +g = g +c = c +t = t +c = c +t = t +t = t +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +a = a +t = t +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +a = a +a = a +g = g +a = a +c = c +a = a +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +t = t +c = c +g = g +g = g +a = a +a = a +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a => - +- => a +a = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +a = a +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +a = a +c = c +t = t +t = t +a = a +a = a +a = a +a = a +c = c +c = c +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +t = t +a = a +t = t +a = a +c = c +c = c +c = c +a = a +a = a +a = a +t = t +t = t +a = a +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +a = a +t = t +a = a +t = t +g = g +a = a +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +g = g +a = a +t = t +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +g = g +g = g +a = a +c = c +t = t +c = c +c = c +g = g +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +a = a +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +a = a +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +g = g +a = a +a = a +a = a +t = t +t = t +a = a +t = t +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +t = t +c = c +g = g +a = a +c = c +t = t +t = t +a = a +t = t +t = t +- => a +a => - +g = a +a = a +t = t +a = a +c = c +t = t +t = t +c = c +c = c +t = t +c = c +t = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +c = c +t = t +a = a +a = a +g = g +c = c +c = c +c = c +t = t +c = c +c = c +t = t +a = a +g = g +g = g +a = a +t = t +a = a +a = a +c = c +c = c +a = a +c = c +g = g +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +c = c +a = a +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +a = a +a = a +t = t +g = g +a = a +c = c +c = c +a = a +a = a +c = c +t = t +t = t +g = g +t = t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +t = t +a => - +c = a +- => t +a = a +a = a +c = c +a = a +t = t +t = t +a = a +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +g = g +a = a +g = g +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +t = t +- => a +a = c +t => - +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +a = a +a = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +c = c +a = a +c = c +c = c +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +t = t +t = t +c = c +t = t +c = c +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t = t +t = t +t = t +c = c +a = a +a = a +a = a +t = t +t = t +a = a +a = a +t = t +a = a +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a => - +c = a +c = c +- => t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +c = c +c = c +g = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t = t +t = t +t = t +a = a +a = a +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +c = c +g = g +a = a +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +g = g +t = t +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +t = t +c = c +c = c +a = a +a = a +a = a +a = a +c = c +c = c +g = g +a = a +g = g +c = c +a = a +t = t +t = t +c = c +t = t +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +a = a +a = a +c = c +a = a +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +c = c +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +c = c +t = t +t = t +g = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +a = a +c = c +a = a +a = a +c = c +c = c +t = t +c = c +t = t +t = t +t = t +a = a +t = t +t = t +t = t +t = t +a = a +c = c +a = a +c = c +a = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = t +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +a = a +a = a +t = t +c = c +t = t +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +c = c +t = t +t = t +t = t +c = c +a = a +c = c +t = t +g = g +t = t +c = c +g = g +c = c +t = t +c = c +c = c +c = c +g = g +a = a +c = c +g = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +t = t +c = c +c = c +c = c +c = c +c = c +t = t +a = a +c = c +g = g +c = c +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +t = t +c = c +t = t +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = c +t = t +t = t +a = a +t = t +c = c +c = c +g = g +a = a +a = a +g = g +g = g +c = c +c = c +g = g +a = a +c = c +- => g +g => - +a = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +- => a +a = c +t => - +c = c +c = c +c = c +a = a +a = a +t = t +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +t = t +t = t +a = a +c = c +a = a +a = a +t = t +c = c +a => - +c = a +- => t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +t = t +c = c +g = g +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +g = g +g = g +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +t = t +t = t +c = c +t = t +t = t +a = a +a = a +t = t +a = a +a = a +g = g +c = c +t = t +c = c +a = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +c = c +g = g +c = c +g = g +a = a +a = a +c = c +a = a +g = g +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +t = t +c = c +a = a +t = t +t = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +a = a +c = c +a = a +c = c +a = a +t = t +a = a +c = c +t = t +a = a +t = t +a = a +c = c +a = a +a = a +a = a +c = c +g = g +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +a = a +c = c +t = t +a = a +c = c +a = a +c = c +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +t = t +t = t +t = t +g = g +g = g +a = a +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +c = c +c = c +a = a +t = t +a = a +a = a +g = g +g = g +a = a +c = c +g = g +a = a +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +g = g +g = g +t = t +t = t +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +t = t +c = c +c = c +a = a +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +g = g +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c = c +t = t +t = t +a = a +t = t +a = a +g = g +a = a +a = a +c = c +a = a +a = a +g = g +t = t +a = a +a = a +c = c +a = a +a = a +t = t +t = t +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +g = g +g = g +g = g +c = c +c = c +t = t +c = c +g = g +t = t +a = g +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +t = t +t = t +c = c +c = c +g = g +c = c +a = a +c = c +c = c +c = c +a = a +t = t +g = g +t = t +c = c +t = t +a = a +c = c +a = a +c = c +g = g +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +c = c +a = a +a = a +c = c +c = c +a = a +a = a +c = c +t = t +a = a +c = c +g = g +g = g +c = c +t = t +a = a +a = a +c = c +a = a +t = t +t = t +g = g +a = a +t = t +g = a +a = a +t = t +a = a +c = c +t = t +c = c +g = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +c = c +t = t +g = g +a = a +a = a +c = c +t = t +t = t +c = c +a = a +c = c +c = c +t = t +c = c +t = t +t = t +c = c +c = c +g = g +a = a +t = t +g = g +c = c +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +t = t +a = a +c = c +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +a = a +c = c +a = a +t = t +t = t +c = c +c = c +c = c +g = g +c = c +g = g +t = t +c = c +t = t +g = g +a = a +c = c +g = g +a = a +c = c +g = g +c = c +t = t +t = t +a = g +t = t +c = c +t = t +c = c +a = a +c = c +c = c +a = a +c = c +t = t +a = a +t = t +c = c +g = g +c = c +g = g +g = g +a = a +t = t +t = t +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +a = a +a = a +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +t = t +c = c +g = g +c = c +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +g = a +a = a +g = g +g = g +a = a +c = c +g = g +a = a +t = t +g = g +c = t +t = t +g = g +a = a +t = t +a = a +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +g = g +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +c = c +g = g +a = a +c = c +t = t +c = c +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c = c +t = t +g = g +g = g +a = a +t = t +t = t +a = a +a = a +c = c +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +c = c +t = t +a = a +a = a +t = t +c = c +g = g +c = c +a = a +a = a +a = a +t = t +c = c +t = t +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a = a +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a = a +t = t +c = c +c = c +t = t +a = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +c = c +g = g +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +c = c +c = c +t = t +a = a +c = c +t = t +t = t +t = t +g = g +g = g +c = c +t = t +a = a +t = t +a = a +g = g +c = c +g = g +g = g +c = c +t = t +a => - +c = a +- => t +g = g +c = c +c = c +a = a +a = a +c = c +a = a +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +g = g +a = a +a = a +c = c +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +g = g +t = t +a = a +g = g +a = a +c = c +g = g +a = a +g = g +c = c +c = c +c = c +g = g +c = c +a = a +t = t +a = a +g = g +t = t +a = a +g = g +t = t +t = t +g = g +a = a +c = c +t = t +a = a +c = c +t = t +c = c +g = g +t = t +t = t +c = c +t = t +t = t +c = c +c = c +t = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +g = g +g = g +a = a +t = t +g = g +c = c +g = g +g = g +g = g +a = a +g = g +a = a +g = g +t = t +c = c +g = g +g = g +c = c +t = t +a = a +c = c +t = t +t = t +g = g +t = t +c = c +a = a +a = a +c = c +c = c +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +t = t +t = t +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +a = a +t = t +t = t +a = a +a = a +t = t +c = c +c = c +t => - +- => t +t => - +- => t +t = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +t = t +t = t +c = c +t = t +t = t +g = g +a = a +c = c +t = t +a = a +a = a +t = t +t = t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +g = g +a = a +c = c +t = t +c = c +a = a +a = a +a = a +t = t +a = a +t = t +a = a +t = t +a = a +g = g +t = t +g = g +t = t +c = c +a = a +c = c +t = t +c = c +t = t +t = t +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +g = g +g = g +t = t +a = a +c = c +a = a +t = t +t = t +g = g +c = c +t = t +t = t +g = g +t = t +t = t +a = a +c = c +g = g +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +a = a +g = g +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +t = t +c = c +g = g +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +a = a +c = c +c = c +g = g +a = a +g = g +t = t +c = c +a = a +c = c +a = a +g = g +t = t +c = c +a = a +a = a +g = g +c = c +t = t +c = c +t = t +a = a +t = t +t = t +a = a +t = t +t = t +g = g +a = a +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +g = g +t = t +g = g +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +t = t +c = c +t = t +c = c +t = t +g = g +- => a +a = c +t => - +t = t +a = a +t = t +t = t +a = a +t = t +t = t +t = t +c = c +c = c +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = c +t = t +g = g +t = t +t = t +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +t = t +g = g +t = t +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +a = a +t = t +t = t +a = g +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +a = a +t = t +c = c +c = c +c = c +t = t +t = t +c = c +a = a +g = g +t = t +c = c +c = c +c = c +- => a +a => - +g = a +t = t +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +t = t +a = a +t = t +c = c +a => - +c = a +- => t +c = c +a = a +c = c +a = a +c = c +g = g +t = t +a = a +c = c +c = c +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +a = a +a = a +c = c +g = g +t = t +g = g +g = g +t = t +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +c = c +g = g +g = g +a = a +t = t +t = t +c = c +t = t +g = g +g = g +t = t +t = t +a = a +c = c +c = c +t = t +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +a = a +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +t = t +t = t +t = t +c = c +g = g +g = g +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +t = t +g = g +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g = g +t = t +a = a +c = c +t = t +c = c +a = a +a = a +t = t +c = c +g = g +t = t +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +c = c +t = t +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +g = g +c = c +a => - +c = a +- => t +t = t +c = c +g = g +g = g +a = a +g = g +a = a +c = c +a = a +a = a +c = c +a = a +g = g +t = t +c = c +t = t +a = a +a = a +g = g +t = t +g = g +t = t +t = t +a = a +g = g +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a = a +t = t +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +t = t +c = c +c = c +t = t +t = t +t = t +t = t +g = g +g = g +g = g +c = c +c = c +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +c = c +a = a +c = c +a = a +t = t +a = a +c = c +t = t +t = t +a = g +t = t +a = a +c = c +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +a = a +a = a +g = g +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +t = t +t = t +a = a +c = c +a = a +c = c +c = c +a = a +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +g = g +g = g +t = t +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +c = c +a = a +t = t +a = a +t = t +c = c +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = a +g = g +g = g +a = a +c = c +a = a +t = t +t = t +c = c +a = a +t = t +c = c +c = c +t = t +c = c +t = t +c = c +a = a +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +t = t +a = a +g = g +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = g +c = c +a = a +c = c +c = c +a = a +a = a +t = t +g = g +a = a +t = t +c = c +g = g +t = t +g = g +t = t +c = c +t = t +c = c +t = t +c = c +a = a +a = a +g = g +a = a +g = g +g = g +g = g +t = t +c = c +a = a +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +g = g +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +g = g +a = a +t = t +c = c +t = t +t = t +c = c +a = a +g = g +t = t +a = a +g = g +t = t +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +c = c +t = t +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +t = t +c = c +t = t +c = c +t = t +c = c +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +g = g +c = c +t = t +g = g +a = a +c = c +a => - +c = a +c = c +- => t +c = c +a = a +c = c +g = g +c = c +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +g = g +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +t = t +c = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +c = c +a = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +g = g +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +c = c +t = t +t = t +a = a +c = c +t = t +g = g +a = a +c = c +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +t = t +t = t +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +c = c +t = t +c = c +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +a = a +a = a +t = t +g = g +a = a +t = t +g = g +c = c +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +c = c +a = a +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +c = c +t = t +t = t +c = c +t => - +- => t +t = c +a = a +t = t +a = a +c = c +g = g +t = t +t = t +a = a +c = c +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +c = c +a = a +a = a +a = a +c = c +a = a +g = g +c = c +g = a +t = t +c = c +c = c +g = g +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +g = g +a = a +a = a +c = c +a = a +a = a +t = t +a = a +t = t +t = t +a = a +a = a +t = t +a = a +c = c +g => - +- => g +g => - +- => g +g = a +g = g +t = t +a = a +t = t +c = c +c = c +c = c +t = t +a = a +t = t +c = c +a = a +t = t +g = g +t = t +t = t +c = c +c = c +t = t +t = t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +g = g +a = a +t = t +- => a +a = c +t => - +a = a +c = c +a = a +a = a +a = a +a = a +c = c +a = a +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +t = t +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +t = t +c = c +c = c +g = g +c = c +a = a +t = t +a = a +a = a +t = t +a = a +t = t +g = g +g = g +t = t +a = a +t = t +c = c +g = g +g = g +c = c +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +t = t +c = c +a = a +t = t +g = g +t = a +c = c +g = g +c = c +c = c +g = g +t = t +t = t +c = c +a = a +t = t +g = g +a = a +t = t +a = a +a = a +c = c +t = t +g = g +g = g +g = g +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +c = c +t = t +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +a = a +a = a +t = t +c = c +c = c +c = c +t = t +c = c +a = a +g = g +t = t +a = a +t = t +t = t +c = c +a = a +c = c +c = c +t = t +c = c +a = a +g = g +g = g +c = c +a = a +t = t +t = t +t = t +c => - +c = c +- => t +c = c +c = c +a = a +t = t +a = a +g = g +a = a +a = a +a = a +t = t +g = g +a = a +t = t +a = a +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +t = t +t = t +c = c +g = g +a = a +t = t +c = c +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +a = a +a = a +c = c +c = c +g = g +a = a +g = g +t = t +c = c +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +t = t +c = c +a = a +a = a +g = g +a = a +a = a +c = c +c = c +c = c +g = g +t = t +c = c +a = a +c = c +t = t +c = c +t = t +c = c +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +t = t +t = t +a = a +c = c +a = a +a = a +a = a +t = t +c = c +a = a +c = c +t = t +c = c +g = g +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +t = t +t = t +t = t +a = a +a = a +t = t +c = c +a = a +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +c = c +c = c +c = c +t = t +c = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +t = t +c = c +a = a +t = t +a = a +c = c +a = a +c = c +g = g +g = g +a = a +c = c +g = g +c = c +a = a +a = a +g = g +t = t +c = c +c = c +g = g +c = c +a = a +a = a +g = g +a = a +c = c +c = c +g = g +a = a +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +g = g +t = t +a = a +g = g +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +t = t +a = a +t = t +c = c +g = g +g = g +t = t +t = t +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +a = a +t = t +a = a +t = t +t = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +t = t +a = a +c = c +a = a +a = a +t = t +a = a +t = t +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +a = a +a = a +a = a +c = c +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +t = t +c = c +t = t +c = c +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +c = c +t = t +a = a +t = t +c = c +a = a +c = c +c = c +a = a +a = a +g = g +t = t +g = g +a = a +c = c +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +c = c +g = g +c = c +a = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +g = g +g = g +t = t +a = a +c = c +t = t +a = a +a = a +c = c +a = a +c = c +t = t +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +g = g +t = t +c = c +c = c +a = a +t = t +c = c +a = a +a = a +t = t +c = c +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +c = c +a = a +g = g +c = c +c = c +t = t +c = c +c = c +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +c = c +c = c +c = c +c = c +- => t +t => - +c = t +g = g +t = t +c = c +g = g +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +a = a +a = a +c = c +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +t = t +c = c +a = a +t = t +c => - +c = c +- => t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +g = g +a = a +t = t +t = t +a = a +t = t +t = t +a = a +a = a +t = t +c = c +c = c +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +g = g +t = t +t = t +t = t +a = a +a = a +t = t +a = a +c = c +a = a +c = c +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +- => t +t => - +c = t +t = t +c = c +a = a +g = g +t = t +a = a +c = c +a = a +g = g +t = t +c = c +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +t = t +a = a +t = t +a = a +t = t +t = t +a = a +a = a +c = c +a = a +a = a +c = c +c = c +c = c +t = t +g = g +c = c +t = t +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +g = a +a = a +a = a +t = t +c = c +c = c +a = a +a = a +t = t +a = a +c = c +a = a +t = t +g = g +c = c +a = a +t = t +c = c +a = a +g = g +a = a +t = t +c = c +c = c +g = g +g = g +t = t +a = a +t = t +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +- => g +g => - +- => g +g => - +a = g +t = t +g = g +g = g +c = c +g = g +a = a +c = c +g = g +a = a +a = a +g = g +c = c +g = g +t = t +c = c +c = c +g = g +c = c +c = c +g = g +t => - +- => t +t => - +- => t +t => - +- => t +t = c +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +g = g +t = t +t = t +a = a +t = t +c = c +c = c +g = g +t = t +g = g +t = t +t = t +a = a +t = t +a = a +a = a +c = c +c = c +g = g +a = a +t = t +t = t +c = c +t = t +c = c +c = c +c = c +t = t +c = c +a = a +c = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +t = t +c = c +t = t +c = c +a = a +t = t +c = c +g = g +a = a +t = t +a = a +t = t +t = t +a = a +c = c +t = t +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +t = t +c = c +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g = g +t = t +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +t = t +c = c +c = c +t = t +a = a +t = t +a = a +c = c +t = t +c = c +c = c +a = a +c = c +a = a +c = c +t = t +c = c +g = g +c = c +t = t +a = a +t = t +g = a +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +a = a +g => - +- => g +g => - +- => g +g = a +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +a = a +t = t +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +t = t +t = t +a = a +c = c +t = t +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +g = g +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +a = a +c = c +t = t +c = c +a = a +g = g +c = c +t = t +t = t +t = t +a = a +g = g +t = t +a = a +a = a +g = g +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +a = a +t = t +t = t +t = t +g = g +a = a +t = t +a = a +t = t +a = a +t = t +g = g +g = g +t = t +t = t +a = a +a = a +g = g +c = c +c = c +g = a +a = a +g = g +t = t +c = c +a = a +g = g +a = a +t = t +t = t +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +a = a +t = t +c = c +a = a +g = g +t = t +a = g +a = a +g = g +t = t +a = a +t = t +c = c +c = c +g = g +g = g +t = t +c = c +t = t +g = g +a = a +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +t = t +a = a +a = a +t = t +t = t +a = a +t = t +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +c = c +t = t +g = g +c = t +a = a +t = t +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +a = a +c = c +c = c +a = g +t = t +- => c +c = c +t => - +a = a +a = a +t = t +c = c +a = a +a = a +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +a = a +c = c +c = c +a = a +t => - +- => t +t = c +c = c +c = c +c = c +a = a +t = t +t = t +t = t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c => - +c = c +- => t +a = a +g = g +t = t +t = t +t = t +a = a +t = t +t = t +a = a +t = t +t = t +c = c +t = t +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +c = c +g = g +a = a +t = t +g = g +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +t = t +t = t +c = c +c = c +c = c +t = t +g = g +c = c +g = g +c = c +c = c +c = c +g = g +c = c +c = c +c = c +c = c +c = c +t = t +a = a +t = t +a = a +t = t +c = c +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +g = g +g = g +c = c +g = g +t = t +g = g +a = a +g = g +c = c +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +c = c +a = a +t = t +c = c +g = g +g = g +c = c +a = a +a = a +c = c +t = t +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +c = c +a = a +g = g +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +- => t +t => - +c = t +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +t = t +c = c +a = a +a = a +a = a +t = t +a = a +a = a +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c = c +t = t +t = t +a = a +c = c +a = a +a = a +c = c +a = a +g = g +t = t +t = t +t = t +t = t +g = g +a = a +t = t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +t = t +t = t +c = c +a = a +a = a +t = t +t = t +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t = t +a = a +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +t = t +t = t +c = c +t = t +c = c +a = a +t = t +t = t +c = c +t = t +g = g +g = g +g = g +a = a +g = g +t = t +a = a +g = g +t = t +t = t +a = a +t = t +c = c +t = t +a = a +c = c +c = c +t = t +c = c +t = t +g = g +t = t +a = a +t = t +g = g +t = t +c = c +t = t +t = t +t = t +a = a +t = t +c = c +a = a +g = g +t = t +t = t +t = t +g = g +g = g +t = t +g = g +t = t +a = a +g = g +a = a +t = t +g = g +t = t +t = t +t = t +t = t +a = a +c = c +g = g +g = g +t = t +c = c +a = a +t = t +a = a +g = g +t = t +c = c +c = c +g = g +c = c +c = c +g = g +c = c +c = c +g = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +g = g +g = g +t = t +t = t +t = t +c = c +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +t = t +a = a +c = c +a = a +t = t +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +t = t +a = a +a = a +t = t +c = c +- => a +a => - +- => a +a = c +c = c +t => - +g = g +c = c +c = c +t = t +a = a +c = c +t = t +t = t +c = c +g = g +t = t +c = c +t = t +a = a +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +g = g +g = g +t = t +t = t +a = a +t = t +t = t +a = a +c = c +t = t +g = g +c = c +a = a +c = c +t = t +t = t +c = c +a = a +g = g +g = g +c = c +a = a +c = c +c = c +t = t +t = t +c = c +g = g +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +g = g +t = t +t = t +t = t +t = t +t = t +t = t +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +g = g +c = c +a = a +t = t +c = c +t = t +a = a +c = c +g = g +g = g +c = c +a = a +g = g +c = c +c = c +t = t +t = t +t = t +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +c = c +c = c +t = t +c = c +t = t +a = g +a = a +g = g +c = c +t = t +t = t +c = c +a = a +t = t +g = g +a = a +g = g +a = a +c = c +t = t +c = c +c = c +g = g +a = a +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +t = t +t = t +t = t +t = t +a = a +t = t +c = c +t = t +c = c +t = t +g = g +g = g +g = g +t = t +c = c +a = a +t = t +t = t +t = t +t = t +a = a +a = a +c = c +a = a +t = t +t = t +a = a +t = t +t = t +c = c +g = g +t = t +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +t = t +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +c = c +a = a +a = a +c = c +a = a +a = a +a = a +a = a +g = g +a = a +t = t +a = a +a = a +t = t +c = c +t = t +g = g +a = a +t = t +a = a +c = c +c = c +a = a +c = c +t = t +c = c +g = g +a = a +g = g +t = t +c = c +c = c +a = a +c = c +t = t +a = a +a = a +c = c +t = t +a = a +t = t +g = g +a = a +g = g +g = g +a = a +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +a = a +t = t +t = t +a = a +t = t +g = g +c = c +c = c +t = t +a = a +c = c +a = a +c = c +a = a +a = a +a = a +t = t +c = c +c = c +t = t +c = c +a = a +c = c +c = c +c = c +t = t +g = g +a = a +a = a +g = g +a = a +t = t +c = c +c = c +c = c +c = c +t = t +a = a +a = a +a = a +t = t +c = c +g = g +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +a = a +c = c +c = c +c = c +c = c +c = c +g = g +g = g +t = t +c = c +a = a +c = c +g = g +g = g +g = g +a = a +g = g +g = g +a = a +- => t +t => - +c = t +a = a +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +a = a +t = t +t = t +t = t +t = t +c = c +c = c +g = g +a = a +g = g +t = t +c = c +t = t +t = t +t = t +t = t +t = t +a = a +g = g +g = g +a = a +c = c +g = g +c = c +t = t +t = t +c = c +t = t +t = t +t = t +t = t +t = t +t = t +t = t +g = g +a = a +a = a +g = g +a = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +g = a +a = a +t = t +a = a +g = g +g = g +g = g +c = c +a = a +t = t +a = a +g = g +c = c +t = t +t = t +c = c +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +c = c +t = t +g = g +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +a = a +c = c +a = a +c = c +c = c +a = a +c = c +c = c +g = g +g = g +a = a +a = a +c = c +c = c +a = a +t = t +a = a +c = c +a = a +c = c +g = g +a = a +a = a +a = a +g = g +a = a +g = g +c = c +a = a +c = c +a = a +a = a +t = t +g = g +t = t +a = a +g = g +c = c +g = g +c = c +g = g +g = g +t = t +a = a +g = g +t = t +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a = a +c = c +c = c +a = a +a = a +t = t +c = c +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +t = t +c = c +a = a +t = t +a = a +c = c +t = t +c = c +c = c +t = t +c => - +c = c +- => g +c = c +a => - +- => a +a => - +c = a +- => t +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +g = g +t = t +g = g +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +g = g +c = c +c = c +t = t +c = c +c = c +a = a +g = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +c = c +c = c +c = c +g = g +a = a +c = c +t = t +c = c +t = t +c = c +c = c +c = c +g = g +g = g +g = g +g = g +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +g = g +a = a +t = t +a = a +t = t +a = a +c = c +t = t +a = a +t = t +c = c +c = c +g = g +t = t +a = a +c = c +a = a +c = c +t = t +a = a +a = a +c = c +c = c +a = a +c = c +c = c +c = c +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +a = a +c = c +a = a +a = a +c = c +a = a +g = g +c = c +a = a +c = c +g = g +t = t +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +g = g +a = a +a = a +t = t +g = g +a = a +t = t +c = c +t = t +t = t +c = c +a = a +c = c +a = a +c = c +t = t +t = t +t = t +t = t +g = g +c = c +a = a +t = t +c = c +c = c +g = g +a = a +a = a +c = c +c = c +t = t +a = a +a = a +t = t +t = t +c = c +c = c +g = g +c = c +t = t +g = g +t = t +c = c +g = g +c = c +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +a = a +t = t +c = c +a = a +g = g +t = t +c = c +a = a +t = t +c = c +t = t +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +t = t +a = a +c = c +t = t +a = a +t = t +t = t +c = c +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = a +c = c +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +c = c +g = g +c = c +a = g +a = a +a = a +g = g +g = g +t = t +t = t +a = a +a = a +t = t +c = c +c = c +a = a +c = c +g = g +t = t +a = a +c = c +t = t +c = c +a = a +t = t +c = c +c = c +- => a +a = c +c = c +t => - +g = g +g = g +a = a +c = c +g = g +t = t +c = c +a = a +t = t +t = t +a = a +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +g = g +c = c +c = c +g = g +g = g +t = t +c = c +c = c +c = c +g = g +a = a +t = t +g = a +a = a +c = c +c = c +a = a +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +t = t +a = a +t = t +t = t +a = a +t = t +t = t +g = g +a = a +t = t +c = c +a = a +t = t +- => a +a = c +t => - +c = c +c = c +c = c +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +c = c +a = a +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +t = t +t = t +c = c +a = a +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +g = g +t = t +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +g = g +a = a +a = a +t = t +c = c +t = t +c = c +g = g +c = c +t = t +t = t +t = t +c = c +g = g +g = g +a = a +t = t +a = a +t = t +t = t +a = a +g = g +t = t +g = g +a = a +c = c +g = a +c = c +g = g +g = g +g = g +c = c +g = g +a = a +g = g +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +t = t +a = a +c = c +c = c +g = g +g = g +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +a = a +a = a +a = a +t = t +a = a +t = t +c = c +t = t +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +a = a +a = a +c = c +c = c +a = a +c = c +a = a +t = t +t = t +t = t +a = a +c = c +t = t +c = c +a = a +c = c +t = t +c = c +c = c +g = g +t = t +c = c +c = c +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +a = a +a = a +c = c +a = a +c = c +c = c +a = g +t = t +t = t +a = a +t = t +t = t +t = t +t = t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +t = t +c = c +c = c +t = t +a = a +t = t +g = g +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +c = c +t = t +c = c +t = t +a = a +g = g +t = t +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g => - +- => g +g => - +- => g +g = a +a = a +a = a +t = t +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +a = a +t = t +a = a +c = c +c = c +g = a +a = a +t = t +a = a +g = g +t = t +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +a = a +t = t +c = c +a = a +g = g +t = t +a = a +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +- => a +a = c +t => - +t = t +a = a +a = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +c = c +t = t +c = c +t = t +a = a +t = t +a = a +a = a +a = a +c = c +c = c +t = t +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +g = g +t = t +t = t +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +t = t +c = c +t = t +t = t +a = a +c = c +t = t +a = a +g = g +t = t +c = c +a = a +t = t +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +a = a +c = c +c = c +c = c +c = c +c = c +g = g +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +t = t +c = c +g = g +c = c +t = t +t = t +g = g +t = t +c = c +t = t +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +t = t +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +a = a +t = t +a = a +- => t +t => - +c = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +t => - +- => t +t = c +c = c +a = a +c = c +c = c +a = a +t => - +- => t +t = c +a = a +a = a +a = a +c = c +- => a +a = c +t => - +a = a +a = a +a = a +t = t +t = t +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +t = t +c = c +c = c +t = t +t = t +a = a +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +c = c +t = t +c = c +a = a +t = t +- => a +a = c +c = c +c = c +c = c +c = c +t => - +a = a +t = t +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +c = c +c = c +c = c +g = g +g = g +t = t +a = a +t = t +g = g +t = c +c = c +a = a +t = t +c = c +a = a +t = t +a = a +a = a +a = a +t = t +c = c +a = a +a = a +c = c +c = c +c = c +c = c +g = g +t = t +- => a +a => - +g = a +a = a +g = g +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +g = a +a = a +c = c +c = c +a = a +a = a +g = g +a = a +g = g +a = a +a = a +t = t +t = t +a = a +g = g +a = a +a = a +a = a +t = t +t = t +g = g +a = a +a = a +t = t +t = t +t = t +t = t +c = c +c = c +a = a +a = a +t = t +t = t +a = a +c = c +g = g +a = a +t = t +t = t +c = c +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +g = g +t = t +c = c +a = a +c = c +c = c +c = c +g = g +a = a +g = g +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +c = c +c = c +a = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +t = t +g = g +c = c +c = c +c = c +g = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +g = g +t = t +t = t +t = t +c = c +t = t +a = a +a = a +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +a = a +a = a +t = t +t = t +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +g = g +c = c +t = t +a = a +c = c +c = c +c = c +g = g +t = t +a = a +c = c +t = t +t = t +t = t +g = g +a = a +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +g = g +a = a +g = g +g = g +t = t +g = g +t = t +c = c +t = t +a = a +a = a +a = a +g = g +t = t +c = c +t = t +c = c +g = g +t = t +a = a +a = a +c = c +t = t +g = g +g = g +c = c +a = a +t = t +c = c +a = a +t = t +a = a +t = t +g = g +g = g +g = g +g = g +g = g +c = c +c = c +a = a +g = g +c = c +a = a +c = c +a = a +t = t +c = c +g = g +c = c +c = c +a = a +c = c +t = t +t = t +t = t +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +t = t +c = c +t = t +g = g +c = c +a = a +g = g +g = g +c = c +c = c +c = c +t = t +t = t +a = a +a = a +c = c +g = g +t = t +a = a +g = g +a = a +c = c +a = a +a = a +a = a +a = a +a = a +t = t +t = t +c = c +g = g +g = g +a = a +t = t +t = t +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = g +t = t +t = t +c = c +t = t +g = g +c = c +a = a +g = g +a = a +a = a +c = c +a = a +c = c +t = t +a = a +c = c +a = a +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +a = a +t = t +g = g +c = c +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +t = t +t = t +g = a +g = g +c = c +c = c +c = c +t = t +c = c +a = a +t = t +g = g +a = a +t = t +g = g +a = a +g = g +c = c +t = t +a = a +a = a +c = c +a = a +g = g +t = t +t = t +g = g +c = c +a = a +g = g +t = t +t = t +c = c +c = c +t = t +c = c +a = a +g = g +c = c +g = g +t = t +c = c +c = c +a = a +g = g +c = c +g = g +g = g +a = a +c = c +c = c +a = a +a = a +g = g +a = a +t = t +c = c +c = c +t = t +t = t +a = a +t = t +t = t +a = a +c = c +c = c +c = c +c = c +c = c +t = t +t = t +c = c +a = a +t = t +a = a +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +a = a +c = c +t = t +t = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +g = g +g = g +c = c +g = g +g = g +c = c +a = a +t = t +c = c +a = a +g = g +c = c +c = c +a = a +c = c +a = a +t = t +g = g +a = a +g = g +c = c +a = a +t = t +c = c +c = c +a = a +a = a +g = g +t = t +c = c +a = a +t = t +g = g +g = g +t = t +- => a +a => - +- => a +a = c +c = c +t => - +a = a +c = c +c = c +g = g +g = g +t = t +t = t +a = a +a = a +c = c +t = t +a = a +a = a +a = a +c = c +t = t +a = a +c = c +c = c +a => - +t = a +t = t +t = t +- => c +c = c +c = c +t = t +c => - +c = c +c = c +c = c +- => t +a = a +g = g +c = c +a = a +a = a +c = c +t = t +g = g +g = g +a = a +g = g +c = c +a = a +g = g +a = a +c = c +a = a +a = a +t = t +a = a +c = c +a = a +t = t +t = t +t = t +c = c +c = c +t = t +a = a +c = c +g = g +c = c +a = a +t = t +c = c +c = c +c = c +t = t +a = a +c = c +c = c +c = c +t = t +c = c +c = c +c = c +g = g +c = c +t = t +a = a +c = c +t = t +c = c +c = c +t = t +g = g +a = a +t = t +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +t = t +a = a +t = t +c = c +a = a +a = a +g = g +t = t +c = c +t = t +g = g +c = c +c = c +a = a +a = a +a = a +g = g +a = a +t = t +a = a +a = a +a = a +g = g +g = g +a = a +c = c +t = t +c = c +g = g +c = c +a = a +g = g +a = a +c = c +t = t +c = c +t = t +a = a +c = c +g = a +a = a +t = t +c = c +a = a +t = t +a = a +a = a +t = t +c = c +a = a +a = a +t = t +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +c = c +a = a +c = c +a = a +a = a +t = t +c = c +c = c +t = t +t = t +t = t +t = t +c = c +c = c +c = c +g = g +t = t +a = a +t = t +g = g +t = t +c = c +c = c +t = t +g = g +a = a +t = t +c = c +c = c +t = t +t = t +c = c +g = g +t = t +c = c +t = t +a = a +t = t +t = t +c = c +c = c +t = t +t = t +t = t +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +c = c +c = c +c = c +g = g +c = c +a = a +c = c +t = t +a = a +g = g +t = t +a = a +c = c +t = t +t = t +t = t +- => c +c = c +t => - +a = a +c = c +t = t +a = a +t = t +t = t +c = c +g = g +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +c = c +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +c = c +a = a +t = t +c = c +g = g +c = c +a = a +g = g +a = a +a = a +c = c +a = a +t = t +c = c +t = t +g = g +g = g +a = a +t = t +g = g +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +g = g +t = t +a = a +c = c +a = a +c = c +g = g +g = g +t = t +a = a +a = a +t = t +t = t +c = c +t = t +a = a +t = t +a = a +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +a = a +t = t +c = c +g = g +g = g +a = a +t = t +a = a +t = t +t = t +a = a +a = a +a = a +t = t +t = t +g = g +a = a +a = a +a = a +c = c +t = t +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +c = c +t = t +t = t +t = t +a = a +c = c +c = c +a = a +a = a +a = a +a = a +a = a +g = g +a = a +t = t +t = t +a = a +t = t +a = g +g = g +a = a +a = a +a = a +a = a +a = a +c = c +t = t +t = t +t = t +t = t +t = t +c = c +a = a +g = g +t = t +a = a +c = c +c = c +t = t +c = c +c = c +g = g +g = g +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +g = g +a = a +a = a +c = c +t = t +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +c = c +t = t +a = a +a = a +g = g +g = g +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +g = g +a = a +t = t +c = c +t = t +a = a +a = a +a = a +a = a +t = t +a = a +c = c +a = a +t = t +a = a +t = t +g = g +c = c +c = c +c = c +g = a +a = a +g = g +a = a +a = a +g = g +c = c +t = t +t = t +a = a +c = c +a = a +c = c +a = a +c = c +c = c +a = a +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +g = g +t = t +a = a +g = g +g = g +t = t +a = a +t = t +a = a +t = t +c = c +a = a +g = g +t = t +g = g +a = a +g = g +g = g +t = t +c = c +c = c +a = a +a = a +a = a +t = t +a = a +c = c +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +g = g +a = a +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +a = a +g = g +c = c +g = g +a = a +a = a +g = g +c = c +t = t +t = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +t = t +t = t +t = t +a = a +g = g +t = t +a = a +c = c +t = t +t = t +t = t +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +a = a +t = t +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +a = a +t = t +c = c +t = t +c = c +t = t +t = t +t = t +a = a +c = c +t = t +t = t +a = a +c = c +t = t +c = c +g = g +g = g +a = a +t = t +g = g +t = t +c = c +t = t +a = a +c = c +t = t +a = a +t = t +c = c +c = c +t = t +- => a +a = c +t => - +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a = a +c = c +c = c +a = a +c = c +a = a +t = t +a = a +c = c +g = g +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +c = c +a = a +g = g +g = g +c = c +t = t +c = c +a = a +t = t +t = t +g = g +c = c +a = a +g = g +c = c +c = c +c = c +c = c +g = g +t = t +a = a +a = a +g = g +g = g +c = c +c = c +t = t +a = a +t = t +c = c +c = c +g = g +g = g +c = c +t = t +c = c +t = t +t = t +t = t +c = c +a = a +c = c +a = a +a = a +c = c +a = a +c = c +c = c +c = c +t = t +t = t +c = c +t = t +t = t +t = t +c = c +a = a +a = a +t = t +c = c +t = t +a = a +a = a +a = a +t = t +g = g +c = c +g = g +g = g +c = c +t = t +a = a +c = c +t = t +t = t +a = a +t = t +a = a +c = c +t = t +a = a +t = t +c = c +a = a +c = c +t = t +t = t +t = t +a = a +c = c +c = c +t = t +a = a +a = a +a = a +a = a +c = c +c = c +g = g +c = c +a = a +t => - +- => t +t = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +a = a +t = t +c = c +g = g +g = g +c = a +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +c = c +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a = a +c = c +t = t +t = t +a = a +c = c +t = t +t = t +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = t +t = t +t = t +a = a +t = t +g = g +t = t +c = c +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +c = c +t = t +a = a +t = t +c = c +c = c +t = t +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +t = t +t = t +c = c +- => a +a = c +c = c +t => - +c = c +g = g +a = a +t = t +g = g +t = t +t = t +g = g +c = c +a = a +t = t +c = c +a = a +t = t +g = g +c = c +a = a +c = c +a = a +g = g +c = c +a = a +c = c +a = a +t = t +c = c +a = a +t = t +g = g +c = c +t = t +a = a +c = c +a = a +g = g +a = a +t = t +c = c +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +g = g +a = a +t = t +t = t +a = a +t = t +g = g +t = t +t = t +a = a +c = c +g = g +g = g +t = t +c = c +a = a +g = g +t = t +c = c +c = c +g = g +g = g +t = t +g = g +g = g +a = a +t = t +g = g +c = c +c = c +a = a +c = c +t = t +t = t +t = t +t = t +c = c +t = t +t = t +t = t +c = c +t = t +a = a +c = c +t = t +t = t +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +t = t +g = g +a = a +c = c +g = g +t = t +c = c +g = g +t = t +c = c +t = t +a = a +g = g +t = t +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +a = a +c = c +g = g +a = a +a = a +g = g +g = g +c = c +a = a +c = c +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +g = g +c = c +t = t +c = c +a = a +g = g +t = t +c = c +g = g +a = a +t = t +t = t +t = t +a = a +t = t +g = g +a = a +a = a +a = a +c = c +t = t +g = g +c = c +g = g +g = g +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +t = t +c = c +g = g +c = c +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +c = c +c = c +a = a +c = c +t = t +t = t +t = t +a = a +t = t +a = a +c = c +g = g +a = a +g = g +c = c +a = a +c = c +a = a +c = c +a = a +g = g +a = a +t = t +g = g +c = c +a = a +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +t = t +a = a +t = t +a = a +c = c +c = c +a = a +c = c +a = a +c = c +g = g +a = a +g = g +t = t +g = g +t = t +g = g +c = c +t = t +a = a +t = t +t = t +t = t +g = g +g = g +g = g +a = a +t = t +c = c +c = c +t = t +t = t +c = c +g = g +g = g +t = t +t = t +a = a +a = a +c = c +t = t +a = a +t = t +a = a +g = g +t = t +a = a +t = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +g = g +g = g +t = t +a = a +t = t +g = g +g = g +a = a +t = t +a = a +c = c +a = a +t = t +a = a +g = g +g = g +t = t +t = t +t = t +a = a +c = c +c = c +a = a +a = a +g = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +c = c +c = c +t = t +c = c +a = a +t = t +c = c +a = a +t = t +t = t +c = c +a = a +a = a +t = t +g = g +t = t +t = t +a = a +t = t +a = a +c = c +c = c +c = c +t = t +c = c +t = t +a = a +a = a +t = t +a = a +a = a +g = g +g = g +c = c +t = t +t = t +c = c +g = g +g = g +a = a +c = c +c = c +a = a +t = t +c = c +c = c +t = t +a => - +c = a +- => t +t = t +c = c +t = t +t = t +a = a +t = t +a = a +t = t +t = t +t = t +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +a => - +c = a +c = c +- => t +g = g +g = g +c = c +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +a = a +c = c +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +c = c +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +g = g +a = a +g = g +g = g +a = a +g = g +g = g +a = a +g = g +g = g +c = c +c = c +g = g +c = c +c = c +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +c = c +g = g +c = c +c = c +a = a +g = g +a = a +c = c +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +a = a +t = t +c = c +a = a +c = c +t = t +a = a +c = c +g = g +g = g +t = t +c = c +g = g +t = t +c = c +g = g +a = a +t = t +c = c +c = c +t = t +g = g +a = a +c = c +c = c +c = c +t = t +c = c +t = t +c = c +t = t +a = a +t = t +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +t = t +g = g +c = c +c = c +t = t +a = a +g = g +t = t +c = c +t = t +g = g +c = c +t => - +- => t +t => - +- => t +t = c +t = t +c = c +c = c +c = c +c = c +g = g +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +a = a +c = c +c = c +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +a = a +t = t +- => a +a => - +- => a +a = c +t => - +t = t +a = a +t = t +t = t +a = a +a = a +c = c +a = a +a = a +c = c +a = a +c = c +t = t +a = a +c = c +t = t +t = t +t = t +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +g = g +g = g +g = g +a = a +t = t +t = t +c = c +t = t +a = a +t = t +c = c +t = t +c = c +c = c +t = t +c = c +t = t +g = g +t = t +g = g +g = g +a = a +c = c +g = g +a = a +t = t +c = c +c = c +a = a +c = c +a = a +t = t +t = t +c = c +c = c +t = t +c = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +a = a +g = g +a = a +t = t +g = g +c = c +c = c +t = t +c = c +c = c +g = g +a = a +g = g +g = g +t = t +c = c +c = c +c = c +a = a +c = c +c = c +c = c +t = t +c = c +a = a +t = t +c = c +a = a +a = a +g = g +g = g +g = g +a = a +c = c +g = g +a = a +t = t +t = t +c = c +c = c +c = c +t = t +c = c +c = c +c = c +a = a +t = t +c = c +t = t +g = g +a = a +c = c +a = a +a = a +g = g +t = t +t = t +g = g +g = g +a = a +c = c +a = a +a = a +g = g +g = g +a = a +c = c +g = g +c = a +g = g +g = g +c = c +c = c +- => g +g => - +a = g +a = a +g = g +g = g +t = t +g = g +a = a +t = t +a = a +t = t +c = c +g = g +t = t +c = c +t = t +a = a +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +t = t +c = c +t = t +c = c +t = t +c = c +c = c +c = c +t = t +c = c +c = c +a = a +t = t +t = t +c = c +t = t +c = c +a = a +g = g +t = t +c = c +t = t +t = t +c = c +g = g +a = a +a = a +t = t +- => a +a = c +t => - +a = a +a = a +c = c +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c = c +c = c +c = c +c = c +t = t +t = t +t = t +g = g +c = c +g = g +g = g +t = t +a = a +t = t +a = a +g = g +c = c +c = c +c = c +c = c +c = c +g = g +t = t +g = g +g = g +c = c +t = t +a = a +a = a +t = t +a = a +a = a +t => - +- => t +t = c +c = c +c = c +c = c +t = t +t = t +g = g +a = a +t = t +c = c +a = a +g = g +t = t +c = c +a = a +a = a +c = c +g = g +g = g +t = t +t = t +t = t +c = c +g => - +- => g +g => - +- => g +g = a +g = g +g = g +c = c +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +c = c +a = a +t = t +a = a +a = a +t = t +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +t = t +t = t +c = c +t = t +a = a +a = a +t = t +a = a +a = a +t = t +g = g +t = t +t = t +t = t +a = a +c = c +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +c = c +a = a +c = c +t = t +g = g +c = c +t = t +a = a +t = t +t = t +g = g +c = c +a = a +a = a +c = c +a = a +t = t +c = c +t = t +a = a +c = c +a = a +c = c +c = c +a = a +g = g +c = c +a = a +a = a +t = t +g = g +g = g +a = a +t = t +c = c +t = t +t = t +c = c +c = c +a = a +a = a +c = c +g = g +g = g +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +g = g +g = g +t = t +c = c +a = g +a = a +g = g +c = c +c = c +g = g +a = a +g = g +c = c +t = t +t = t +a = a +t = t +t = t +c = c +c = c +t = t +c = c +c = c +g = g +a = a +a = a +t = t +c = c +t = t +c = c +g = g +a = a +c = c +a = a +c = c +g = g +g = g +a = a +t = t +c = c +c = c +t = t +g = g +a = a +g = g +g = g +t = t +c = c +g = g +a = a +g = g +t = t +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +t = t +a = a +- => t +t => - +c = t +a = a +t = t +c = c +c = c +a = a +t = t +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +g = g +t = t +t = t +a = a +c = c +a = a +g = g +a = a +a = a +a = a +c = c +a = a +c = c +c = c +a = a +a = a +a = a +c = c +a = a +t = t +c = c +t = t +c = c +t = t +t = t +a = a +t = t +c = c +a = a +g = g +t = t +t = t +g = g +c = c +c = c +a = a +g = g +c = c +c = c +g = g +c = c +t = t +t = t +g = g +t = t +a = a +g = g +t = t +c = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +c = c +t = t +c = c +c = c +a = a +t = t +t = t +t = t +t = t +a = a +c = c +c = c +g = g +a = a +c = c +t = t +c = c +a = a +c = c +t = t +t = t +c = c +g = g +t = t +a = a +a = a +c = c +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +a = a +g = g +a = a +t = t +t = t +t = t +c = c +t = t +g = g +t = t +c = c +c = c +c = c +c = c +a = a +a = a +t => - +- => t +t = c +c = c +g = g +g = g +a = a +g = g +a = a +a = a +a = a +a = a +a = a +t = t +g = g +g = g +t = t +c = c +g = g +a = a +- => g +g => - +a = g +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +a = a +a = a +c = c +t = t +t = t +a = a +a = a +c = c +g = g +t = t +t = t +t = t +a = a +a = a +g = g +c = c +t = t +t = t +c = c +t = t +t = t +c = c +g = g +t = t +c = c +g = g +a = a +a = a +g = g +t = t +t = t +t = t +g = g +g = g +a = a +c = c +g = g +g = g +c = c +c = c +c = c +c = c +g = g +a = a +a = a +g = g +a = a +g = g +g = g +g = g +c = c +g = g +g = g +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +g = g +c = c +c = c +g = g +c = c +c = c +g = g +c = c +c = c +c = c +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +a = a +a = a +c = c +t = t +t = t +c = c +g = g +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +a = a +t = t +c = c +c = c +c = c +a = a +c = c +g = g +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +t = t +t = t +g = g +a = a +t = t +t = t +c = c +a = a +c = c +a = a +a = a +a = a +c = c +a = a +c = c +c = c +c = c +a => - +- => a +a => - +- => a +a => - +c = a +- => t +t = t +c = c +a = a +g = g +g = g +g = g +t = t +a = a +a = a +c = c +c = c +a = a +g = g +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +c = c +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +a = a +c = c +c = c +g = g +a = a +c = c +t = t +a = a +a = a +a = a +c = c +g = g +c = c +a = a +a = a +g = g +t = t +c = c +a = a +a = a +c = c +t = t +a = a +c = c +g = g +t = t +c = c +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +c = c +g = g +t = t +c = c +a = a +g = g +g = g +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a => - +- => a +a => - +c = a +- => t +g = g +t = t +c = c +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +a = a +t = t +a = a +a = a +c = c +g = g +t = t +t = t +g = g +a = a +a = a +t = t +g = g +a = a +c = c +t = t +c = c +c = c +c = c +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +c = c +g = g +a = a +g = g +a = a +a = a +c = c +c = c +a = a +g = g +a = a +c = c +a = a +t = t +a = a +a = a +a = a +t = t +t = t +g = g +g = g +a = a +t = t +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a = a +t = t +t = t +c = c +t = t +g = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +a = a +t = t +t = t +t = t +t = t +c = c +c = c +c = c +c = c +t = t +c = c +t = t +a = a +t = t +c = c +c = c +a = a +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +a = g +c = c +a = a +c = c +c = c +a = a +t = t +t = t +c = c +c = c +c = c +a = g +c = c +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +t = t +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +a = a +c = c +a = a +t = t +a = a +c = c +a = a +a = a +g = g +t = t +t = t +t = t +g = g +a = a +c = c +a = a +g = g +t = t +a = a +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +t = t +g = g +c = c +a = a +a = a +c = c +a = a +a = a +t = t +c = c +t = t +a = a +t = t +- => a +a = c +t => - +c = c +c = c +c = c +t = t +c = c +a = a +t = t +c = c +a = a +c = c +a = a +c = c +t = t +a = a +a = a +c = c +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +a = a +t = t +c = c +c = c +g = g +c = c +a = a +t = t +c = c +c = c +a = a +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +c = c +c = c +a = a +a = a +t = t +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +a = a +c = c +c = c +c = c +c = c +t = t +a = a +c = c +t = t +a = a +c = c +t = t +c = c +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +a = a +a = a +g = g +a = a +a = a +g = g +c = c +t = t +a = a +t = t +t = t +a = a +c = c +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +c = c +c = c +c = c +g = g +t = t +t = t +t = t +t = t +t = t +c = c +g = g +g = g +c = c +c = c +a = a +a = a +t = t +c = c +g = g +c = c +c = c +c = c +c = c +c = c +g = g +t = t +c = c +c = c +g = g +g = g +a = a +g = g +g = g +a = a +t = t +c = c +c = c +c = c +t = t +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +a = a +c = c +c = c +t = t +t = t +a = a +a = a +t = t +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +t = t +c = c +a = a +g = g +t = t +a = a +c = c +a = a +a = a +t = t +c = c +g = g +a = a +a = a +c = c +a = a +a = a +a = a +g = g +t = t +c = c +c = c +a = a +c = c +g = g +c = c +t = t +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +c = c +c = c +a = a +g = g +c = c +a = a +c = c +c = c +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +a = a +t = t +c = c +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g = g +c = c +c = c +a = a +t = t +c = c +a = a +t = t +c = c +a = a +a = a +t = t +c = c +c = c +t = t +a = a +t = t +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +t = t +t = t +c = c +t = t +t = t +a = a +c = c +c = c +a = a +a = a +t = t +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +g = g +c = c +c = c +a = a +t = t +c = c +t = t +t = t +g = g +a = a +c = c +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +g = g +t = t +a = a +g = g +g = g +a = a +t = t +a = a +c = c +a = a +c = c +c = c +c = c +a = a +t = t +t = t +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +a = a +c = c +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +c = c +g = g +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +a = a +t = t +t = t +a = a +g = g +g = g +t = t +g = g +g = g +a = a +g = g +t = t +t = t +g = g +a = a +c = c +g = g +g = g +a = a +c = c +g = g +a = a +t = t +a = a +c = c +t = t +a = a +c = c +c = c +t = t +a = a +t = t +t = t +c = c +t = t +a = a +a = a +c = c +t => - +- => t +t = c +t = t +c = c +t = t +c = c +a = a +c = c +t = t +c = c +c = c +t = t +c => - +c = c +- => t +t = t +c = c +c = c +g = g +a = a +a = a +t = t +g = g +c = c +a = a +a = a +a = a +t = t +c = c +a = a +c = c +t = t +c = c +c = c +c = c +t = t +c = c +t => - +- => t +t = c +t = t +a = a +a = a +a = a +c = c +c = c +a = a +t = t +a = a +t = t +a = a +c = c +t = t +a = a +a = a +c = c +t = t +c = c +t = t +a = a +c = c +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +a = a +c = c +a = a +g = g +t = t +a = a +c = c +a = a +c = c +t = t +c = c +t = t +t = t +c => - +c = c +- => t +t = t +c = c +g = g +t = t +c = c +c = c +g = g +g = g +c = c +c = c +t = t +a = a +c = c +a = a +g = g +t = t +c = c +t = t +c = c +c = c +c = c +c = c +a = a +c = c +g = g +g = g +a = a +a = a +c = c +c = c +c = c +a = a +t = t +t = t +g = g +g = g +a = a +g = g +a = a +c = c +c = c +c = c +t = t +g = g +a = a +g = g +t = t +c = c +t = t +t = t +c = c +a = a +c = c +t = t +t = t +t = t +c = c +c = c +c = c +c = c +c = c +g = g +a = a +t = t +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +a = a +t = t +c = c +g => - +- => g +g = a +t = t +a = a +a = a +t = t +a = a +c = c +t = t +a = a +a = a +t = t +a = a +a = a +t = t +t = t +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +t = t +a = a +a = a +c = c +t = t +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +a = a +a = a +c = c +c = c +a = a +a = a +t = t +a = a +c = c +c = c +a = a +a = a +g = g +t = t +a = a +a = a +c = c +a = a +g = g +g = g +c = c +c = c +t = t +c = c +t = t +c = c +a = a +t = t +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +t = t +t = t +c = c +t = t +c = c +c = c +t = t +a = a +t = t +c = c +g = g +a = a +t = t +a = a +a = a +t = t +c = c +t = t +t = t +c = c +c = c +t = t +a = a +a = a +t = t +a = a +c = c +c = c +t = t +a = a +c = c +g = g +c = c +c = c +a = a +a = a +c = c +g = g +a = a +a = a +c = c +g = g +c = c +a = a +c = c +t = t +c = c +c = c +t = t +t = t +t = t +a = a +t = t +g = g +a = a +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = t +c = c +g = g +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +t = t +t = t +g = g +c = c +t = t +c = c +c = c +c = c +a = a +a = a +a = a +t = t +a = a +a = a +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +a = a +t = t +c = c +t = t +t = t +g = g +a = a +c = c +c = c +t = t +t = t +a = a +t = t +t = t +t = t +t = t +c = c +g = g +a = a +t = t +c = c +g = g +t = t +a = a +c = c +a = a +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +c = c +g => - +- => g +g => - +- => g +g = a +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = a +t = t +t = t +t = t +t = t +t = t +t = t +a = a +g = g +t = t +c = c +a = a +c = c +g = g +c = c +t = t +c = c +g = g +a = a +a = a +t = t +c = c +a = g +c = c +g = g +a = a +c = c +a = a +c = c +t = t +a = a +c = c +t = t +c = c +a = a +c = c +a = a +c = c +g = g +g = g +a = a +c = c +g = g +t = t +t = t +t = t +c = c +t = t +a = a +c = c +c = c +a = a +t = t +c = c +t = t +c = c +a = a +t = t +c = c +t = t +a = a +c = c +t = t +g = g +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +g = g +g = g +t = t +c = c +c = c +c = c +c = c +t = t +a = a +a = a +t = t +t = t +a = a +a = a +t = t +c = c +a = a +t = t +g = g +c = c +c = c +c = c +t = t +t = t +c = c +c = c +c = c +a = a +t = t +a = a +t = t +t = t +g = g +g = g +t = t +t = t +g = g +t = t +a = a +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +g = g +g = g +g = g +c = c +t = t +a = a +t = t +c = c +g = g +a = a +a = a +t = t +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +t = t +g = g +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +t = t +a = a +t = t +c = c +c = c +a = a +c = c +c = c +g = g +t = t +g = g +c = c +c = c +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +c = c +c = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +c = c +c = c +c = c +t = t +a = a +c = c +c = c +c = c +a = a +a = a +g = g +c = c +t = t +a = a +a = a +g = g +a = a +g = g +t = t +a = a +t = t +c = c +a = a +g = g +g = g +a = a +t = t +c = c +t = t +t = t +t = t +a = a +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t => - +- => t +t => - +- => t +t = c +g = g +a = a +g = g +g = g +a = a +t = t +a = a +a = a +t = t +a = a +a = a +a = a +t = t +g = g +a = a +g = g +a = a +t = t +a = a +g = g +t = t +t = t +t = t +c = c +a = a +t = t +t = t +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +a = a +g = g +t = t +c = c +t = t +g = g +t = t +a = a +t = t +a = a +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +t = t +c = c +c = c +c = c +c = c +c = c +t = t +t = t +a = a +c = c +g = g +a = a +c = c +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a = a +t = t +t = t +a = a +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +t = t +c = c +t = t +g = g +t = t +a = a +t = t +a = a +g = g +t = t +a = a +t = t +a = a +t = t +t = t +c = c +a = a +- => t +t => - +c = t +a = a +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +t = t +c = c +c = c +t = t +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +c = c +a = a +t = t +a = a +c = c +t = t +c = c +a = a +a = a +c = c +c = c +a = a +g = g +c = c +a = a +t = t +c = c +g = g +c = c +c = c +t = t +t = t +a = a +g = g +c = c +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +g = g +a = a +c = c +a = a +a = a +g = g +c = c +t = t +t = t +a = a +a = a +g = g +t = t +a = a +t = t +t = t +c = c +t = t +t = t +g = g +t = t +c = c +c = c +c = c +t = t +c = c +c = c +- => a +a => - +g = a +t = t +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +c = c +a = a +g = g +a = a +a = a +c = c +c = c +a = a +c = c +t = t +g = g +t = t +t = t +t = t +t = t +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +c = c +a = a +t = t +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c = c +c = c +c = c +c = c +t = t +c = c +t = t +c = c +a = a +c = c +g = g +c = c +a => - +- => a +a = g +t = t +a = a +t = t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +g = g +g = g +a = a +t = t +c = c +c = c +t = t +t = t +c = c +t = t +a = a +a = a +c = c +a = a +t = t +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +c = c +a = a +c = c +a = a +a = a +a = a +t = t +a = a +a = a +t = t +a = a +t = t +t = t +a = a +t = t +t = t +a = a +c = c +a = a +a = a +a = a +c = c +a = a +c = c +a = a +t = t +a = a +a = a +g = g +c = c +c = c +g = g +a = a +t = t +a = a +c = c +t = t +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +c = c +g = g +c = c +t = t +t = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +c = c +g = g +c = c +c = c +g = g +c = c +a = a +t = t +a = a +a = a +g = g +c = c +t = t +a = a +c = c +- => a +a => - +- => a +a = c +t => - +t = t +t = t +c = c +g = g +g = g +a = a +c = c +t = t +c = c +t = t +g = g +a = a +t = t +c = c +a = a +a = a +g = g +c = c +c = c +t = t +a = g +a = a +g = g +g = g +g = g +g = g +a = a +a = a +g = g +t = c +c = c +g = g +t = t +t = t +c = c +c = c +a = a +g = g +c = c +t = t +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +c = c +c = c +a = a +a = a +c = c +c = c +a = a +g = g +a = a +g = g +a = a +c = c +g = g +a = a +t = t +c = c +a = a +c = c +a = a +c = c +c = c +t = t +c = c +t = t +a = a +t = t +t = t +t = t +a = a +g = g +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +c = c +g = g +g = g +t = t +t = t +c = c +c = c +c = c +a = a +g = g +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +t = t +c = c +c = c +t = t +c = c +a = a +t = t +t = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +a = a +c = c +g = a +a = a +c = c +a = a +c = c +t = t +a = a +t = t +t = t +c = c +c = c +c = c +a = a +c = c +c = c +t = t +c = c +t = t +c = c +c = c +a = a +a = a +t = t +t = t +t = t +c = c +c = c +t = t +c = c +g = g +g = g +t = t +g = g +a = a +a = a +t = t +a = a +a = a +t = t +c = c +a = a +t = t +t = t +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +c = c +a = a +t = t +c = c +t = t +t = t +a = a +c = c +t = t +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +a = a +a = a +g = g +t = t +a = a +t = t +a = a +c = c +t = t +c = c +t = t +a = a +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +a = a +c = c +g = g +a = a +g = g +c = c +g = g +t = t +c = c +a = a +c = c +g = g +c = c +g = g +g = g +c = c +t = t +a = a +g = g +t = t +c = c +c = c +c = c +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +c = c +t = t +a = a +c = c +g = g +a = a +g = g +t = t +g = g +g = g +g = g +a = a +c = c +t = t +a = a +g = g +t = t +c = c +t = t +c = c +c = c +t = t +a = a +a = a +c = c +t = t +c = c +a = a +t = t +t = t +t = t +g = g +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c = c +t = t +t = t +a = a +t = t +t = t +t = t +a = a +t = t +c = c +c = c +t = t +c = c +c = c +g = g +g = g +a = a +t = t +c = c +c = c +a = a +a = a +c = c +t = t +c = c +c = c +- => a +a => - +- => a +a = c +t => - +t = t +g = g +g = g +t = t +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +g = g +t = t +a = a +t = t +c = c +a = a +t = t +c = c +t = t +t = t +c = c +t = t +c = c +g = g +c = c +t = t +a = a +c = c +c = c +a = a +c = c +t = t +c = c +t = t +c = c +g = g +a = a +t = t +t = t +c = c +c = c +a = a +g = g +c = c +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +c = c +a => - +c = a +- => t +c = c +t = t +a = a +c = c +a = a +c = c +c = c +g = g +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +c = c +c = c +c = c +a = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +a = a +c = c +t = t +t = t +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +c = c +g = g +c = c +a = a +g = g +t = t +c = c +g = g +c = c +t = t +t = t +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +c = c +a = a +t = t +c = c +g = g +g = g +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +g = g +g = g +a = a +t = t +g = g +t = t +t = t +g = g +c = c +- => a +a => - +- => a +a = c +c = c +c = c +c = c +t => - +g = g +g = g +a = a +a = a +a = a +c = c +g = g +c = c +a = a +t = t +c = c +a = a +a = a +c = c +g = a +t = t +a = a +t = t +a = a +t = t +c = c +g = g +g = g +a = a +t = t +c = c +t = t +t = t +a = a +a = a +a = a +a = a +a = a +g = g +c = c +a = a +a = a +g = g +c = c +c = c +a = a +t = t +t = t +c = c +g = g +t = t +a = a +a = a +t = t +c = c +c = c +t = t +t = t +a = a +c = c +g = g +g = g +t = t +a = a +a = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +c = c +t = t +t = t +a = a +c = c +c = c +c = c +a = a +t = t +g = g +t = t +t = t +g = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +t = t +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +c = c +g = g +g = g +t = t +a = a +c = c +c = c +c = c +a => - +c = a +- => t +a = a +c = c +a = a +a = a +c = c +a = a +a = a +t = t +t = t +c = c +t = t +t = t +c = c +t = t +c = c +c = c +t = t +t = t +a = a +a = a +c = c +t = t +t = t +g = g +g = g +a = a +g = g +a = a +c = c +t = t +g = g +a = a +c = c +a = a +t = t +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +a = a +a = a +a = a +a = a +t = t +a = a +c = c +g = g +c = c +t = t +a = a +a = a +t = t +g = g +g = g +c = c +c = c +c = c +g = g +a = a +g = g +a = a +c = c +g = g +g = g +t = t +a = a +g = g +a = a +a = a +t = t +t = t +g = g +t = t +t = t +t = t +g = g +g = g +g = g +a = a +c = c +a = a +a = a +g = g +a = a +a = a +c = c +c = c +c = c +a = a +c = c +c = c +c = c +a = a +c = c +a = a +c = c +c = c +c = c +a = a +t = t +a = a +t = t +t = t +a = a +t = t +g = g +a = a +t = t +t = t +c = c +a = a +a = a +c = c +t = t +c = c +t = t +a = a +c = c +t = t +a = a +t = t +a = a +g = g +t = t +a = a +a = a +a = a +t = t +g = g +c = c +c = c +c = c +c = c +c = c +t = t +t = t +c = c +c = c +g = g +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +c = c +g = g +g = g +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +g = g +a = a +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +g = g +t = t +c = c +c = c +c = c +t = t +c = c +c = c +t = t +t = t +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +t = t +c = c +t = t +a = a +t = t +c = c +t = t +t = t +t = t +g = g +g = g +c = c +t = t +g = g +g = g +a = a +c = c +c = c +t = t +a = a +a = a +t = t +g = g +a = a +g = g +g = g +c = c +c = c +a = a +g = g +a = a +c = c +t = t +t = t +g = g +a = a +g = g +t = t +c = c +t = t +a = a +g = g +t = t +g = g +c = c +a = a +t = t +c = c +c = c +t = t +g = g +a = a +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +a = a +c = c +t = t +t = t +g = g +t = t +t = t +t = t +g = g +c = c +t = t +t = t +g = g +g = g +a = a +a = a +a = a +t = t +t = t +a = a +t = t +c = c +g = g +c = c +c = c +g = g +a = a +c = c +g = g +t = t +g = g +g = g +t = t +a => - +- => a +a = g +c = c +c = c +c = c +t = t +a = a +c = c +a = a +g = g +g = g +a = a +c = c +t = t +a = a +g = g +g = g +t = t +t = t +g = g +t = t +a = a +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +a = a +t = t +t = t +t = t +g = g +g = g +g = g +a = a +t = t +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +t = t +a = a +c = c +c = c +t = t +g = g +a = a +g = g +a = a +t = t +c = c +t = t +t = t +a = a +t = t +c = c +c = c +t = t +a = a +a = a +c = c +g = g +c = c +g = g +a = a +c = c +a = a +a = a +t = t +a = a +g = g +g = g +g = g +a = a +t = t +c = c +c = c +c = c +a = a +t = t +t = t +g = g +a = a +a = a +c = c +a = a +a = a +g = g +g = g +c = c +a = a +a = a +c = c +c = c +a = a +g = g +t = t +t = t +c = c +a = a +a = a +t = t +a = a +a = a +c = c +c = c +t = t +a = a +g = g +t = t +t = t +a = a +a = a +c = c +t = t +c = c +a = a +t = t +a => - +c = a +- => t +c = c +a = a +t = t +c = c +a = a +a = a +g = g +c = c +g = g +a = a +a = a +a = a +c = c +t = t +g = g +a = a +c = c +c = c +a = a +c = c +- => t +t => - +c = t +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +t = t +a = a +c = c +a = a +t = t +g = g +a = a +c = c +g = g +a = a +g = g +c = c +c = c +t = t +c = c +c = c +a = a +a = a +c = c +c = c +c = c +a => - +- => a +a => - +c = a +- => g +a = a +c = c +g = g +a = a +g = g +g = g +c = c +t = t +c = c +c = c +a = a +g = g +c = c +g = g +g = g +g = g +g = g +t = t +t = t +g = g +g = g +c = c +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +t = t +t = t +a = a +c = c +g = g +t = t +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +t = t +c = c +a = a +a = a +a = a +t = t +c = c +c = c +t = t +g = g +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +a = a +a = a +t = t +c = c +c = c +a = a +t = t +g = g +a = a +c = c +a = a +a = a +a = a +c = c +g = g +t = t +a = a +a = a +t = t +t = t +a = a +t = t +t = t +t = t +a = a +a = a +t = t +t = t +t = t +c = c +g = g +a = a +g = g +g = g +t = t +a = a +t = t +c = c +c = c +c = c +a = a +g = g +a = a +a = a +g = g +a = a +g = g +c = c +a = a +g = g +a = a +a = a +c = c +g = g +a = a +c = c +a = a +c = c +a = a +a = a +t = t +a = a +c = c +g = g +g = g +g = g +c = c +g = g +g = g +a = a +g = g +a = a +a = a +g = g +t = t +g = g +c = c +c = c +c = c +g = g +t = t +c = c +c = c +a = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +t = t +g = g +a = a +c = c +c = c +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +t = t +t = t +c = c +t = t +c = c +t = t +g = g +t = t +c = c +g = g +a = a +c = c +t = t +t = t +g = g +g = g +g = g +a = a +g = g +c = c +a = a +c = c +c = c +t = t +c = c +g = g +g = g +t = t +a = a +a = a +g = g +t = t +a = a +t = t +g = g +t = t +c = c +c = c +a = a +g = g +g = g +g = g +a = a +t = t +a = a +a = a +a = a +t = t +t = t +c = c +c = c +t = t +t = t +g = g +t = t +t = t +c = c +a = a +c = c +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +t = t +g = g +g = g +a = a +a = a +a = a +c = c +g = g +t = t +g = g +c = c +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +t = t +g = g +g = g +c = c +g = g +c = c +c = c +g = g +g = g +c = c +a = a +a = a +t = t +t = t +t = t +g = g +t = t +a = a +c = c +a = a +c = c +a = a +g = g +t = t +g = g +a = a +c = c +c = c +c = c +g = g +t = t +c = c +c = c +g = g +c = c +c = c +a = a +c = c +g = g +g = g +a = a +g = g +a = a +t = t +t = t +a = a +t = t +g = g +a = a +c = c +c = c +- => a +a = c +t => - +t = t +a = a +c = c +g = g +a = a +t = t +c = c +t = t +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +a = a +a = a +a = a +a = a +c = c +c = c +a = a +t = t +t = t +t = t +g = g +t = t +c = c +c = c +g = g +c = c +c = c +c = c +c = c +a = a +t = t +t = t +c = c +t = t +a = a +a = a +a = a +c = c +g = g +g = g +c = c +t = t +c = c +a = a +a = a +g = g +g = g +a = a +a = a +a = a +a = a +t = t +g = g +a = a +a = a +a = a +a = a +a = a +a = a +a = a +t = t +t = t +g = g +g = g +a = a +a = a +a = a +g = g +g = g +a = a +a = a +t = t +a = a +c = c +t = t +c = c +g = g +t = t +a = a +c = c +g = g +g = g +a = a +c = c +a = a +c = c +a = a +a = a +c = c +c = c +c = c +a = a +a = a +c = c +t = t +g = g +t = t +c = c +a = a +c = c +t = t +c = c +c = c +c = c +a = a +t = t +t = t +a = a +t = t +t = t +a = a +c = c +t = t +g = g +a = a +a = a +c = c +a = a +a = a +c = c +c = c +a = a +a = a +c = c +t = t +a = a +a = a +c = c +a = a +t = t +c = c +t = t +a = a +t = t +a = a +a = a +c = c +c = c +c = c +g = g +a = a +c = c +a = a +a = a +t = t +t = t +a = a +a = a +c = c +a = a +g = g +t = t +c = c +a = a +a = a +g = g +t = t +c = c +a = a +c = c +a = a +a = a +a = a +a = a +t = t +t = t +a = a +g = g +a = a +c = c +t = t +g = g +c = c +g = g +t = t +c = c +c = c +g = g +a = a +a = a +t = t +a = a +c = c +g = g +c = c +c = c +t = t +c = c +c = c +t = t +c = c +t = t +t = t +a = a +c = c +a = a +a = a +a = a +a = a +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +a = a +a = a +t = t +a = a +t = t +g = g +a = a +t = t +t = t +g = g +t = t +a = a +a = a +t = t +c = c +a = a +a = a +g = g +a = a +a = a +g = g +a = a +t = t +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +t = t +c = c +t = t +a = a +a = a +c = c +c = c +a = a +g = g +g = g +t = t +t = t +a = a +a = a +c = c +c = c +c = c +a = a +c = c +a = a +c = c +t = t +c = c +c = c +t = t +c = c +a = a +a = a +g = g +t = t +c = c +a = a +a = a +t = t +a = a +t = t +a = a +c = c +a = a +a = a +a = a +c = c +c = c +c = c +t = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +a = a +c = c +c = c +c = c +a = a +c = c +a = a +a = a +c = c +t = t +c = c +g = g +a = a +a = a +c = c +t = t +t = t +g = g +c = c +g = g +a = a +a = a +a = a +g = g +a = a +a = a +t = t +t = t +a = a +a = a +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +g = g +a = a +a = a +a = a +a = a +t = t +c = c +c = c +g = g +g = g +a = a +t = t +g = g +a = a +t = t +a = a +c = c +c = c +c = c +a = a +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +a = a +g = g +a = a +g = g +a = a +g = g +a = a +t = t +g = g +t = t +t = t +c = c +c = c +a = a +a = a +a = a +a = a +a = a +a = a +g = g +g = g +a = a +t = t +c = c +a = a +c = c +a = a +g = g +g = g +t = t +t = t +t = t +c = c +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +g = g +a = a +g = g +a = a +a = a +a = a +c = c +c = c +t = t +g = g +a = a +t = t +t = t +g = g +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +a = a +a = a +t = t +g = g +t = t +t = t +c = c +c = c +c = c +c = c +t = t +a = a +a = a +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +c = c +a = a +c = c +c = c +c = c +a = g +t = t +t = t +t = t +a = a +a = a +a = a +t = t +t = t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +g = g +a = a +t = t +t = t +c = c +t = t +a = a +a = a +g = g +a = a +t = t +a = a +g = g +a = a +a = a +c = c +c = c +t = t +g = g +t = t +t = t +g = g +g = g +t = t +c = c +g = g +a = a +t = t +a = a +g = g +t = t +g = g +g = g +t = t +c = c +c = c +g = g +a = a +g = g +c = c +c = c +a = a +t = t +c = c +c = c +a = a +a = a +a = a +c = c +a = a +g = g +c = c +g = g +g = g +a = a +g = g +a = a +t = t +g = g +g = g +a = a +t = t +a = a +t = t +t = t +t = t +a = a +g = g +a = a +a = a +g = g +g = g +g = g +t = t +g = g +a = a +t = t +a = a +a = a +a = a +a = a +c = c +g = g +a = a +t = t +g = g +t = t +a = a +t = t +c = c +t = t +g = g +c = c +c = c +c = c +a = a +c = c +a = a +c = c +g = g +a = a +g = g +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +c = c +a = a +a = a +g = g +a = a +a = a +t = t +c = c +c = c +a = a +t = t +c = c +g = g +a = a +g = g +c = c +a = a +g = g +a = a +c = c +c = c +a = a +a = a +a = a +g = g +c = c +c = c +c = c +c = c +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +c = c +c = c +g = g +a = a +g = g +a = a +g = g +g = g +a = a +a = a +c = c +g = g +t = t +t = t +t = t +c = c +a = a +a = a +t = t +a = a +a = a +a = a +g = g +a = a +t = t +c = c +a = a +a = a +t = t +t = t +a = a +a = a +g = g +t = t +a = a +a = a +t = t +a = a +c = c +g = g +t = t +c = c +t = t +t = t +c = c +c = c +a = a +t = t +a = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +g = g +g = g +a = a +a = a +c = c +g = g +a = a +t = t +a = a +t = t +a = a +a = a +t = t +a = a +c = c +g = g +a = a +a = a +c = c +c = c +a = a +a = a +t = t +a = a +t = t +t = t +a = a +a = a +a = a +a = a +a = a +g = g +t = t +a = a +g = g +a = a +a = a +a = a +g = g +g = g +g = g +a = a +a = a +c = c +g = g +c = c +c = c +a = a +t = t +g = g +a = a +t = t +g = a +t = t +a = a +g = g +a = a +t = t +a = a +a = a +c = c +g = g +c = c +g = g +g = g +t = t +c = c +c = c +a = a +a = a +a = a +g = g +t = t +t = t +a = a +a = a +a = a +g = g +a = a +t = t +a = a +g = g +c = c +g = g +g = g +a = a +t = t +a = a +t = t +g = g +a = a +a = a +a = a +t = t +a = a +a = a +a = a +c = c +c = c +c = c +a = a +t = t +t = t +t = t +a = a +c = c +c = c +a = a +a = a +a = a +c = c +c = c +g = g +a = a +t = t +t = t +c = c +c = c +a = a +a = a +c = c +a => - +- => a +a = g +a = a +c = c +c = c +a = a +t = t +c = c +a = a +t = t +t = t +c = c +c = c +a = a +c = c +c = c +t = t +c = c +a = a +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +c = c +c = c +g = g +a = a +t = t +c = c +c = c +a = a +a = a +a = a +t = t +c = c +g = g +a = a +g = g +t = t +c = c +t = t +c = c +g = g +c = c +c = c +a = a +g = g +t = t +t = t +c = c +a = a +a = a +t = t +t = t +c = c +a = a +a = a +c = c +t = t +t = t +t = t +a = a +g = g +a = a +g = g +g = g +a = a +t = t +t = t +c = c +a = a +c = c +a = a +t = t +t = t +c = c +a = a +a = a +c = c +c = c +c = c +a = a +c = c +g = g +a = a +a = a +a = a +c = c +a = a +c = c +a = a +a = a +t = t +t = t +c = c +g = g +a = a +t = t +g = g +t = t +g = g +a = a +g = g +a = a +c = c +c = c +a = a +a = a +g = g +c = c +a = a +g = g +g = g +t = t +t = t +c = c +a = a +c = c +g = g +t = t +g = g +a = a +a = a +a = a +g = g +g = g +t = t +c = c +a = a +t = t +g = g +t = t +g = g +a = a +a = a +t = t +g = g +g = g +t = t +a = a +c = c +a = a +a = a +t = t +g = g +c = c +t = t +g = g +a = a +a = a +c = c +a = a +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +a = a +t = t +a = a +t = t +t = t +t = t +a = a +c = c +g = g +c = c +a = a +t = t +c = c +c = c +c = c +c = c +a = a +a = a +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +a = a +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +t = t +c = c +a = a +t = t +a = a +t = t +g = g +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +g = g +c = c +c = c +c = c +g = g +c = c +c = c +a = a +c = c +a = a +c = c +a = a +t = t +g = g +c = c +g = g +c = c +g = g +a = a +a = a +g = g +t = t +c = c +c = c +c = c +g = g +g = g +g = g +a = a +c = c +a = a +a = a +g = g +t = t +t = t +g = g +a = a +t = t +t = t +c = c +g = g +t = t +g = g +a = a +g = g +a = a +t = t +g = g +a = a +g = g +- => a +a => - +g = a +t = t +c = c +a = a +a = a +a = a +t = t +g = g +a = a +c = c +g = g +a = a +t = t +t = t +t = t +a = a +g = g +g = g +t = t +g = g +g = g +a = a +a = a +g = g +c = c +t = t +g = g +g = g +g = g +a = a +a = a +- => t +t => - +c = t +c = c +a = a +a = a +a = a +g = g +t = t +a = a +t = t +t = t +c = c +c = c +c = c +g = g +a = a +t = t +a = a +g = g +c = c +a = a +t = t +c = c +a = a +a = a +a = a +a = a +g = g +a = a +c = c +c = c +c = c +c = c +a = a +t = t +c = c +t = t +t = t +t = t +t = t +a = a +c = c +a = a +t = t +c = c +g = g +g = g +g = g +t = t +a = a +a = a +a = a +g = g +a = a +a = a +c = c +g = g +g = g +t = t +g = g +g = g +a = a +g = g +t = t +a = a +c = c +c = c +c = c +g = g +a = a +t = t +g = g +t = t +g = g +g = g +a = a +a = a +c = c +t = t +g = g +g = g +a = a +t = t +t = t +g = g +c = c +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +a = a +c = c +c = c +c = c +a = a +t = t +g = g +a = a +a = a +c = c +g = g +c = c +g = g +a = a +a = a +t = t +g = g +a = a +a = a +a = a +c = c +a = a +t = t +c = c +g = g +g = g +a = a +a = a +g = g +t = t +a = a +g = g +t = t +c = c +c = c +c = c +a = a +a = a +a = a +c = c +g = g +a = a +c = c +t = t +t = t +c = c +t = t +a = a +c = c +c = c +g = g +c = c +c = c +a = a +t = t +a = a +t = t +a = a +t = t +c = c +c = c +g = g +a = a +c = c +t = t +c = c +g = g +t = t +t = t +c = c +t = t +c = c +c = c +a = a +c = c +c = c +a = a +c = c +t = t +c = c +c = c +a = a +a = a +c = c +t = t +a = a +g = g +c = c +c = c +c = c +c = c +a = a +a = a +a = a +t = t +a = a +g = g +c = c +t = t +a = a +a = a +t = t +g = g +t = t +c = c +t = t +t = t +g = g +t = t +c = c +c = c +g = g +a = a +g = g +g = g +a = a +g = g +a = a +t = t +c = c +t = t +c = c +c = c +c = c +t = t +a = a +t = t +a = a +c = c +t = t +t = t +c = c +g = g +t = t +g = g +g = g +c = c +g = g +g = g +t = t +c = c +c = c +a = a +g = g +g = g +a = a +a = a +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +t = t +c = c +g = g +a = a +c = c +a = a +c = c +c = c +g = g +a = a +g = g +c = c +a = a +t = t +c = c +a = a +c = c +a = a +a = a +g = g +a = a +c = c +c = c +g = g +c = c +t = t +c = c +g = g +t = t +c = c +a = a +a = a +a = a +a = a +c = c +a = a +a = a +c = c +t = t +a = a +a = a +a = a +t = t +t = t +g = g +a = a +c = c +a = a +a = a +c = c +t = t +c = c +c = c +a = a +a = a +a = a +t = t +c = c +c = c +c = c +g = g +a = a +t = t +t = t +c = c +g = g +t = t +a = a +t = t +c = c +a = a +c = c +c = c +c = c +c = c +a = a +t = t +a = a +g = g +a = a +t = t +t = t +a = a +g = g +g = g +g = g +t = t +c = c +a = a +a = a +a = a +c = c +c = c +c = c +a = a +g = g +a = a +a = a +t = t +c = c +g = g +a = a +t = t +a = a +a = a +c = c +a = a +c = c +a = a +c = c +a = a +a = a +g = g +t = t +c = c +t = t +a = a +t = t +a = a +c = c +a = a +a = a +t = t +t = t +t = t +c = c +g = g +g = g +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +t = t +c = c +a => - +- => a +a = g +a = a +t = t +a = a +a = a +a = a +a = a +c = c +a = a +c = c +a = a +g = g +t = t +t = t +g = g +a = a +c = c +c = c +t = t +c = c +a = a +a = a +a = a +a = a +a = a +a = a +t = t +g = g +t = t +t = t +g = g +a = a +g = g +t = t +c = c +c = c +a = a +c = c +t = t +c = c +a = a +a = a +a = a +a = a +t = t +c = c +g = g +a = a +a = a +a = a +t = t +a = a +a = a +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +g = g +a = a +t = t +t = t +t = t +t = t +g = g +t = t +g = g +a = a +g = g +a = a +a = a +a = a +t = t +g = g +c = c +g = g +g = g +c = c +c = c +g = g +a = a +a = a +g = g +a = a +t = t +a = a +a = a +c = c +t = t +g = g +a = a +a = a +c = c +c = c +c = c +a = a +a = a +t = t +t = t +a = a +g = g +c = c +a = a +c = c +a = a +c = c +t = t +g = g +g = g +c = c +g = g +c = c +c = c +a = a +c = c +c = c +g = g +a = a +c = c +c = c +g = g +t = t +g = g +c = c +t = t +t = t +t = t +a = a +a = a +c = c +t = t +g = g +g = g +t = t +t = t +g = g +g = g +g = g +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +a = a +t = t +a = a +t = t +c = c +g = g +a = a +a = a +t = t +c = c +a = a +a = a +t = t +t = t +t = t +g = g +a = a +a = a +a = a +g = g +c = c +a = a +a = a +a = a +t = t +a = a +a = a +c = c +g = g +a = a +t = t +t = t +t = t +c = c +c = c +g => - +- => a +a => - +- => a +a = t +t = t +a = a +g = g +t = t +g = g +a = a +c = c +g = g +a = a +c = c +a = a +a = a +a = a +g = g +g = g +g = g +c = c +a = a +c = c +c = c +c = c +c = c +c = c +a = a +c = c +a = a +c = c +c = c +g = g +a = a +t = t +c = c +c = c +g = g +a = a +t = t +t = t +c = c +g = g +c = c +a = a +a = a +a = a +a = a +c = c +t = t +c = c +g = g +a = a +c = c +g = g +t = t +a = a +a = a +c = c +a = g +a = a +c = c +g = g +c = c +a = a +c = c +g = g +a = a +a = a +c = c +t = t +a = a +c = c +g = g +a = a +a = a +c = c +- => a +a => - +g = a +g = g +g = g +a = a +a = a +a = a +a = a +c = c +t = t +a = a +g = g +c = c +a = a +c = c +c = c +a = a +c = c +t = t +a = a +a = a +a = a +t = t +c = c +t = t +c = c +c = c +c = c +a = a +c = c +t = t +t = t +g = g +a = a +g = g +t = t +g = g +a = a +c = c +c = c +t = t +t = t +a = g +c = c +c = c +c = c +c = c +t = t +a = a +c = c +g = g +a = a +a = a +c = c +g = g +t = t +a = a +c = c +a = a +c = c +a = a +t = t +t = t +a = a +g = g +a = a +a = a +t = t +g = g +a = a +t = t +t = t +c = c +t = t +c = c +g = g +a = a +t = t +t = t +a = a +t = t +c = c +t = t +t = t +t = t +c = c +c = c +g = g +a = a +t = t +c = c +c = c +t = t +g = g +g = g +t = t +t = t +t = t +g = g +g = g +a = a +t = t +a = a +a = a +a = a +c = c +a = a +a = a +a = a +t = t +a = a +c = c +c = c +c = c +c = c +a = a +c = c +t = t +a = a +c = c +a = a +c = c +t = t +c = c +g = g +g = g +g = g +c = c +a = a +g = g +a = a +t = t +t = t +t = t +g = g +t = t +a = a +a = a +a = a +a = a +g = g +t = t +c = c +a = a +c = c +a = a +t = t +a = a +a = a +c = c +g = g +a = a +a = a +a = a +c = c +t = t +c = c +c = c +t = t +c = c +c = c +a = a +t = t +t = t +c = c +g = g +a = a +t = t +g = g +t = t +a = a +t = t +t = t +t = t +g = g +a = a +c = c +a = a +c = c +c = c +c = c +c = c +c = c +c = c +a = a +c = c +a = a +g = g +a = a +a = a +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +a = a +c = c +c = c +g = a +a = a +g = g +c = c +c = c +c = c +c = c +a = a +t = t +a = a +c = c +c = c +c = c +c = c +a = a +a = a +t = t +c = c +g = g +t = t +- => c +- => g +- => c +c = c +g = a +- => c +c = a +c = c +a = a +c = c +a = a +c = c +a = a +c = c +g = g +a = a +c = c +c = c +c = c +a = a +t = t +c = c +c = c +t = t +a = a +c = c +c = c +c = c +g = g +c = c +c = c +c = c +c = c +c = c +a = a +a = a +c = c +a = a +t = t +a = a +a = a +c = c +t = t +a = a +c = c +t = t +c = c +t = t +a = a +a = a +t = t +c = c +a = a +t = t +c = c +a = a +t = t +a = a +c = c +c = c +c = c +t = t +c = c +a = a +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +t = t +t = t +t = t +t = t +a = a +t = t +t = t +a = a +c = c +a = a +c = c +a = a +a = a +t = t +c = c +- => a +a => - +- => a +a = c +t => - +c = c +c = c +c = c +c = c +c = c +a = a +c = c +t = t +g = g +a = a +c = c +a = a +a = a +t = t +t = t +t = t +t = t +c = c +a = a +c = c +a = g +t = t +a = a +t = t +g = g +g = g +c = c +g = g +g = g +t = t +t = t +t = t +t = t +c = c +t = t +a = a +t = t +t = t +t = t +t = t +a = a +a = a +a = a +c = c +t = t +t = t +t = t +a = a +g = g +a = a +c = c +c = c +a = a +a = a +t = t +c = c +c = c +g = g +a = a +c = c +c = c +a = a +c = c +a = a +a = a +t = t +c = c +c = c +c = c +a = a +a = a +g = g +a = a +a = a +a = a +c = c +a = a +a = a +a = a +a = a +a = a +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +g = g +t = t +c = c +t = t +c = c +t = t +a = a +c = c +a = a +c = c +a = a +a = a +a = a +t = t +t = t +c = c +a = a +c = c +g = g +a = a +c = c +a = a +c = c +c = c +g = g +g = g +t = t +c = c +t = t +t = t +c = c +g = g +c = c +c = c +c = c +c = c +c = c +t = t +c = c +c = c +c = c +c = c +c = c +c = c +c = c +a = a +a = a +a = a +c = c +c = c +a = a +c = c +c = c +t = t +t = t +t = t +a = a +a = a +a = a +a = a +a = a +a = a +c = c +a = a +a = a +t = t +a = a +c = c +t = t +a = a +c = c +a = a +g = g +a = a +c = c +a = a +c = c +a = a +c = c +c = c +t = t +t = t +t = t +- => c +- => a +c = c +g => - +t => - +c = c +g = g +a = a +c = c +a = a +c = c +g = g +t = t +c = c +t = t +g = g +t = t +a => - +- => a +a => - +- => a +- => g +a = t +t = t +c => - +- => a +a => - +g = a +c = c +a = a +a = a +t = t +a = a +a = a +t = t +a = a +a = a +t = t +a = a +c = c +a = a +g = g +g = g +a = a +t = t +g = g +t = t +t = t +c = c +g = g +t = t +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +a = a +a = a +t = t +t = t +g = g +t = t +g = g +t = t +g = g +- => a +a => - +- => a +a => - +g = a +t = t +c = c +a = a +t = t +t = t +c = c +a = a +t = t +a = a +c = c +g = a +a = a +g = g +c = c +g = g +g = g +a = a +c = c +a = a +t = t +t = t +a = a +t = t +a = a +a = a +c = c +t = t +t = t +g = g +c = c +a = a +t = t +c = c +c = c +a = a +c = c +g = g +c = c +t = t +a = a +t = t +t = t +t = t +a = a +t = t +t = t +- => a +a = t +c = c +c = c +t => - +t = t +a => - +c = a +c = c +- => t +c = c +c = c +g = g +t = t +c = c +c = c +t = t +t = t +a = a +g = g +t = t +t = t +t = t +c = c +t = t +g = g +t = t +c = c +t = t +a = a +t = t +g = g +a = a +c = c +g = g +c = c +t = t +g = g +t = t +a = a +t = t +c = c +c = c +c = c +a = a +c = c +g = g +a = a +g = g +g = g +c = c +c = c +g = g +a = a +g = g +g = g +t = t +c = c +g = g +c = c +a = a +g = g +a = a +g = g +c = c +g = g +t = t +t = t +a = a +c = c +g = g +a = a +t = t +a = a +g = g +c = c +g = g +c = c +a = a +c = c +g = g +t = t +g = a +t = t +g = g +g = g +g = g +g = g +g = g +g = g +t = t +c = c +t = t +g = g +c = c +t = t +t = t +t = t +t = t +a = a +t = t +g = g +g = g +t = t +t = t +t = t +a = a +c = c +g = g +t = t +a = a +c = c +c = c +t = t +c = c +t = t +c = c +g = g +a = a +g = g +g = g +g = g +c = c +a = a +c = c +t = t +c = c +a = a +c = c +c = c +a = a +a = a +t = t +t = t +a = a +t = t +c = c +c = c +c = c +a = a +c = c +t = t +a = a +t = t +c = c +t = t +g = g +g = g +a = a +c = c +a = a +c = c +t = t +a = a +g = g diff --git a/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.csproj.FileListAbsolute.txt b/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..2a15f04 --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.csproj.FileListAbsolute.txt @@ -0,0 +1,5 @@ +/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/DNA_Alignment/DNA_Alignment/bin/Debug/DNA_Alignment.exe +/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/DNA_Alignment/DNA_Alignment/bin/Debug/DNA_Alignment.pdb +/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.csprojAssemblyReference.cache +/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.exe +/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.pdb diff --git a/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.csprojAssemblyReference.cache b/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.csprojAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..7e066edcf40a78a37e6fad350ab20bd29728b2fe GIT binary patch literal 9752 zcmeHM!H*MF7@ui7ZQm?f5JXWlpqQvE(_MC#1!aL{fq<}!(9KE$xW2ZpyF;g)Ix}7E zng9uyfC-rBK~40a2R-NkPeuPdq=}Y>}yf?r1&HKLJ zd*A!!Rgxu1xKXcGcFVOiK)InG=?+oArs|F>P2I z(uM}NOf?OsX^DxtXgU@*2DiN0EE;<0xMo{Cd7^gPq@{jcP-ALoeoQgvgI-eDSIajk9x8_6K;jZQZ(tI+`F_VYaf_0bvHFU!sf_NAr2eFoff(P6Ga}8`i z;?I9fg=Ebvr|4Hr@Or8&8g|;o`mhztSrS&FQpZ$FBqWv{T&=mVNE5rPP1?4o6^+&m z&7{L`JED%IjK!n%(&6lRbde!0e{$zXvG@0^yI9vz1AByos!B49hLIt}dLTBm5%5SC z;!z+rwh?ew7veD>9&aPy%PzzwAfE6L3I^4aJ79pa$nD9QRGr+EXjGGps*@xSD;0w; z*qKtJ$*s~NFjL18B|Sqoi<8CzBZwOgoNUP~iz2P&OjWcRT(=Z%7aS|2+XZ-DMbAca zl9VvLR%^N;ENh7xZ!|<%k~0}ZF)5i$B;ePCoJc&}UTN)>p3TbHu}(m&SM-IZ#Ss&I zhIL{4x2>bz@Jvg07HfO&wO9L1o#TCZH%T%MqpAVSupSDP|+ojg3MFLYimv7~T0sV~b+D02+tbO(Jac z&q1Sq3LE`0p?#yFC@!NBc->*RiB0cx@1^c+0%9M;eux7QlO$wBZqE@1=`QV&#-{N6 z5X4~;VITYu^uhOG9~>q0F;7Qa=3`fJM{u9B{TOv;uRt6pkwfIf7KRz*7G#PjIfPRL zy~KCR=jJwz-oBnfY+bbt0G*zn<`+zhE;{9q>3KI}XY;4Ul8()t5K@+kuNZZd9KuNS ztGCgU(5qzx8oYkB5(SI5r#bN8H`m0<<_fRV=DNzM4|;DsL8I#Itty+QDw`qU7cbI( z8=UvILh~NEvZ^4Y_Ng%z;!Jx^kx$z}NoA+0!U`n(;t}&rkeII{h`~13CnjEE=E$cT zI$L}oA6D6G^oX7DIijma(^o;7zU-zchioG{J|YDP$4BHNk?|2*e4p!hxjqZ``{}yM z&QX<}C*c>5-!Fpve%{Tmg2by&O}x~+K|bxoM@|)1B;gm2n9qX5eA-P+4jFIs!b2Jy zUUJm4#QKDqA4o7mweMgZzHf&98#wzfVoP)LbB+2F?gnR;31J z_{`ANBj>{)IUhujvyY&Ca^fY&B%gMoVuLE|O%i_bh`AXg=0*fD_)zW>6E86i`P4sb z!9NWuYf=ka@~NS#$IkU2JJ%xEIY7`pJMps9BA;$*=k$l`j<6b*Zi|Ajmh_UaRklpe z**hfs;&F8~$kmkyu5i%Q=PF*VE|O2zx4D|Nc-^M|R`Cz5%J3%uyG+6_9!r;kEM4qo zDTgz^=q&IMJqc%lI2DY{0&&{br#fD$ufY8)S>RQwvUf@N#p8E5$ZxBgUj=8NeQM&R z<{J6*E~g;Z=@EO+=ZLNzP0b)pP6SOjrS8)dFHJYdr=ev1CN;44N%+Mhrx7H_>?S9N zqv3EQ#5r+PB+TKkG7QDZWh4{_W-j#B{`pJmep6qPae5XB#o0?(D-L2Jp*Rf)Lvb_^ z3B`wH7>cjVNGLvY!cctkL_(2xhoQ*ABcaFw!%(Dzkx(QdF0|t;WF(PL?1W*hm+uBe dPz^&7VI#F-VTT8RRUQe&Gz)9RoQr}E`~$65?neLs literal 0 HcmV?d00001 diff --git a/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.exe b/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.exe new file mode 100644 index 0000000000000000000000000000000000000000..4ae276f617f6b6866f25f1f16cb3875691bfd044 GIT binary patch literal 8192 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 literal 0 HcmV?d00001 diff --git a/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.pdb b/DNA_Alignment/DNA_Alignment/obj/Debug/DNA_Alignment.pdb new file mode 100644 index 0000000000000000000000000000000000000000..80459dd288cc81df528b56e61ff9f5f7c1fb6890 GIT binary patch literal 1740 zcmYjROKclu5T5zHvDb<1#8`D`AZZ#GLQ&-Atsn}`t4&(9B*Y1?A_XVjIBxt%yiOg9 zht>f^DkRh%DiAO6P+JfvAjF{@TA>IE5|^l4D)j(Ja6{r+Ar5@AUZ?q2Gyi-u-_Ae( zb2xTln2AZ64>CDA+GFMe{+ zi`-Jx0f^*-pXwl9NEFftk+}G!2i@igS8&xQy)-8stgmcL^qS3)ob`}B5R_);yN$@- z_=CyMO#2~2kY0scE~Zh)Nys!rW+Y=JV7t&)MtcxGwF@@^yYNXyX$r*%_5cq6Uw~T! zu65!cI@k{!L3|n_@c?iU_GtK))GgM%A@Z^OO}sR2I-EKPiFNZ7$*dv;;5^<7xv zvd&e$#Osi+ilrWDhiu&f&GZ1YqI;oTB=gm%3%Z6npxyK+w1+~_ME66O9)?zS6)qZt zT|>jr9^2M!yRwID?`oAPRcX`%EzuG(5Vc~&79NB?%r8KPlm-2V`Utwu-XB`%qJ?fc zMa6uoU>r-O4N9cqNlMWf%FxurB*T@|!nFS*g zsC3bhT*4U5Wtw(iI&I7sQn{=d9W$~n=Z(bdP&$b~VKHO+N1qr1#QJ26Y@v2CpG)TBndrRPaEPo8 z>n-bD>x#97Z@cyK24?-rJ%xDwAFpW_X{7V zhut_3dz9{z3_e0EK>doE<-D+5ye6d|ppYA$fDk;&4wT$9plTgf(P0JLAfTG&9Tx7k zpfwE71gslc=FrzEDR rTLusC5w_mrvdQK1ygndrk7j+|=Jf5Ae$&C5?RdXEz6Nij?hDiZvf%qY literal 0 HcmV?d00001 diff --git a/DNA_Alignment/DNA_Alignment/protypicalHuman.txt b/DNA_Alignment/DNA_Alignment/protypicalHuman.txt new file mode 100644 index 0000000..7394b9c --- /dev/null +++ b/DNA_Alignment/DNA_Alignment/protypicalHuman.txt @@ -0,0 +1,277 @@ +gatcacaggt ctatcaccct attaaccact cacgggagct ctccatgcat ttggtatttt +cgtctggggg gtatgcacgc gatagcattg cgagacgctg gagccggagc accctatgtc +gcagtatctg tctttgattc ctgcctcatc ctattattta tcgcacctac gttcaatatt +acaggcgaac atacttacta aagtgtgtta attaattaat gcttgtagga cataataata +acaattgaat gtctgcacag ccactttcca cacagacatc ataacaaaaa atttccacca +aaccccccct cccccgcttc tggccacagc acttaaacac atctctgcca aaccccaaaa +acaaagaacc ctaacaccag cctaaccaga tttcaaattt tatcttttgg cggtatgcac +ttttaacagt caccccccaa ctaacacatt attttcccct cccactccca tactactaat +ctcatcaata caacccccgc ccatcctacc cagcacacac acaccgctgc taaccccata +ccccgaacca accaaacccc aaagacaccc cccacagttt atgtagctta cctcctcaaa +gcaatacact gaaaatgttt agacgggctc acatcacccc ataaacaaat aggtttggtc +ctagcctttc tattagctct tagtaagatt acacatgcaa gcatccccgt tccagtgagt +tcaccctcta aatcaccacg atcaaaagga acaagcatca agcacgcagc aatgcagctc +aaaacgctta gcctagccac acccccacgg gaaacagcag tgattaacct ttagcaataa +acgaaagttt aactaagcta tactaacccc agggttggtc aatttcgtgc cagccaccgc +ggtcacacga ttaacccaag tcaatagaag ccggcgtaaa gagtgtttta gatcaccccc +tccccaataa agctaaaact cacctgagtt gtaaaaaact ccagttgaca caaaatagac +tacgaaagtg gctttaacat atctgaacac acaatagcta agacccaaac tgggattaga +taccccacta tgcttagccc taaacctcaa cagttaaatc aacaaaactg ctcgccagaa +cactacgagc cacagcttaa aactcaaagg acctggcggt gcttcatatc cctctagagg +agcctgttct gtaatcgata aaccccgatc aacctcacca cctcttgctc agcctatata +ccgccatctt cagcaaaccc tgatgaaggc tacaaagtaa gcgcaagtac ccacgtaaag +acgttaggtc aaggtgtagc ccatgaggtg gcaagaaatg ggctacattt tctaccccag +aaaactacga tagcccttat gaaacttaag ggtcgaaggt ggatttagca gtaaactaag +agtagagtgc ttagttgaac agggccctga agcgcgtaca caccgcccgt caccctcctc +aagtatactt caaaggacat ttaactaaaa cccctacgca tttatataga ggagacaagt +cgtaacatgg taagtgtact ggaaagtgca cttggacgaa ccagagtgta gcttaacaca +aagcacccaa cttacactta ggagatttca acttaacttg accgctctga gctaaaccta +gccccaaacc cactccacct tactaccaga caaccttagc caaaccattt acccaaataa +agtataggcg atagaaattg aaacctggcg caatagatat agtaccgcaa gggaaagatg +aaaaattata accaagcata atatagcaag gactaacccc tataccttct gcataatgaa +ttaactagaa ataactttgc aaggagagcc aaagctaaga cccccgaaac cagacgagct +acctaagaac agctaaaaga gcacacccgt ctatgtagca aaatagtggg aagatttata +ggtagaggcg acaaacctac cgagcctggt gatagctggt tgtccaagat agaatcttag +ttcaacttta aatttgccca cagaaccctc taaatcccct tgtaaattta actgttagtc +caaagaggaa cagctctttg gacactagga aaaaaccttg tagagagagt aaaaaattta +acacccatag taggcctaaa agcagccacc aattaagaaa gcgttcaagc tcaacaccca +ctacctaaaa aatcccaaac atataactga actcctcaca cccaattgga ccaatctatc +accctataga agaactaatg ttagtataag taacatgaaa acattctcct ccgcataagc +ctgcgtcaga ttaaaacact gaactgacaa ttaacagccc aatatctaca atcaaccaac +aagtcattat taccctcact gtcaacccaa cacaggcatg ctcataagga aaggttaaaa +aaagtaaaag gaactcggca aatcttaccc cgcctgttta ccaaaaacat cacctctagc +atcaccagta ttagaggcac cgcctgccca gtgacacatg tttaacggcc gcggtaccct +aaccgtgcaa aggtagcata atcacttgtt ccttaaatag ggacctgtat gaatggctcc +acgagggttc agctgtctct tacttttaac cagtgaaatt gacctgcccg tgaagaggcg +ggcataacac agcaagacga gaagacccta tggagcttta atttattaat gcaaacagta +cctaacaaac ccacaggtcc taaactacca aacctgcatt aaaaatttcg gttggggcga +cctcggagca gaacccaacc tccgagcagt acatgctaag acttcaccag tcaaagcgaa +ctactatact caattgatcc aataacttga ccaacggaac aagttaccct agggataaca +gcgcaatcct attctagagt ccatatcaac aatagggttt acgacctcga tgttggatca +ggacatcccg atggtgcagc cgctattaaa ggttcgtttg ttcaacgatt aaagtcctac +gtgatctgag ttcagaccgg agtaatccag gtcggtttct atctacnttc aaattcctcc +ctgtacgaaa ggacaagaga aataaggcct acttcacaaa gcgccttccc ccgtaaatga +tatcatctca acttagtatt atacccacac ccacccaaga acagggtttg ttaagatggc +agagcccggt aatcgcataa aacttaaaac tttacagtca gaggttcaat tcctcttctt +aacaacatac ccatggccaa cctcctactc ctcattgtac ccattctaat cgcaatggca +ttcctaatgc ttaccgaacg aaaaattcta ggctatatac aactacgcaa aggccccaac +gttgtaggcc cctacgggct actacaaccc ttcgctgacg ccataaaact cttcaccaaa +gagcccctaa aacccgccac atctaccatc accctctaca tcaccgcccc gaccttagct +ctcaccatcg ctcttctact atgaaccccc ctccccatac ccaaccccct ggtcaacctc +aacctaggcc tcctatttat tctagccacc tctagcctag ccgtttactc aatcctctga +tcagggtgag catcaaactc aaactacgcc ctgatcggcg cactgcgagc agtagcccaa +acaatctcat atgaagtcac cctagccatc attctactat caacattact aataagtggc +tcctttaacc tctccaccct tatcacaaca caagaacacc tctgattact cctgccatca +tgacccttgg ccataatatg atttatctcc acactagcag agaccaaccg aacccccttc +gaccttgccg aaggggagtc cgaactagtc tcaggcttca acatcgaata cgccgcaggc +cccttcgccc tattcttcat agccgaatac acaaacatta ttataataaa caccctcacc +actacaatct tcctaggaac aacatatgac gcactctccc ctgaactcta cacaacatat +tttgtcacca agaccctact tctaacctcc ctgttcttat gaattcgaac agcatacccc +cgattccgct acgaccaact catacacctc ctatgaaaaa acttcctacc actcacccta +gcattactta tatgatatgt ctccataccc attacaatct ccagcattcc ccctcaaacc +taagaaatat gtctgataaa agagttactt tgatagagta aataatagga gcttaaaccc +ccttatttct aggactatga gaatcgaacc catccctgag aatccaaaat tctccgtgcc +acctatcaca ccccatccta aagtaaggtc agctaaataa gctatcgggc ccataccccg +aaaatgttgg ttataccctt cccgtactaa ttaatcccct ggcccaaccc gtcatctact +ctaccatctt tgcaggcaca ctcatcacag cgctaagctc gcactgattt tttacctgag +taggcctaga aataaacatg ctagctttta ttccagttct aaccaaaaaa ataaaccctc +gttccacaga agctgccatc aagtatttcc tcacgcaagc aaccgcatcc ataatccttc +taatagctat cctcttcaac aatatactct ccggacaatg aaccataacc aatactacca +atcaatactc atcattaata atcataatag ctatagcaat aaaactagga atagccccct +ttcacttctg agtcccagag gttacccaag gcacccctct gacatccggc ctgcttcttc +tcacatgaca aaaactagcc cccatctcaa tcatatacca aatctctccc tcactaaacg +taagccttct cctcactctc tcaatcttat ccatcatagc aggcagttga ggtggattaa +accaaaccca gctacgcaaa atcttagcat actcctcaat tacccacata ggatgaataa +tagcagttct accgtacaac cctaacataa ccattcttaa tttaactatt tatattatcc +taactactac cgcattccta ctactcaact taaactccag caccacgacc ctactactat +ctcgcacctg aaacaagcta acatgactaa cacccttaat tccatccacc ctcctctccc +taggaggcct gcccccgcta accggctttt tgcccaaatg ggccattatc gaagaattca +caaaaaacaa tagcctcatc atccccacca tcatagccac catcaccctc cttaacctct +acttctacct acgcctaatc tactccacct caatcacact actccccata tctaacaacg +taaaaataaa atgacagttt gaacatacaa aacccacccc attcctcccc acactcatcg +cccttaccac gctactccta cctatctccc cttttatact aataatctta tagaaattta +ggttaaatac agaccaagag ccttcaaagc cctcagtaag ttgcaatact taatttctgt +aacagctaag gactgcaaaa ccccactctg catcaactga acgcaaatca gccactttaa +ttaagctaag cccttactag accaatggga cttaaaccca caaacactta gttaacagct +aagcacccta atcaactggc ttcaatctac ttctcccgcc gccgggaaaa aaggcgggag +aagccccggc aggtttgaag ctgcttcttc gaatttgcaa ttcaatatga aaatcacctc +ggagctggta aaaagaggcc taacccctgt ctttagattt acagtccaat gcttcactca +gccattttac ctcaccccca ctgatgttcg ccgaccgttg actattctct acaaaccaca +aagacattgg aacactatac ctattattcg gcgcatgagc tggagtccta ggcacagctc +taagcctcct tattcgagcc gagctgggcc agccaggcaa ccttctaggt aacgaccaca +tctacaacgt tatcgtcaca gcccatgcat ttgtaataat cttcttcata gtaataccca +tcataatcgg aggctttggc aactgactag ttcccctaat aatcggtgcc cccgatatgg +cgtttccccg cataaacaac ataagcttct gactcttacc tccctctctc ctactcctgc +tcgcatctgc tatagtggag gccggagcag gaacaggttg aacagtctac cctcccttag +cagggaacta ctcccaccct ggagcctccg tagacctaac catcttctcc ttacacctag +caggtgtctc ctctatctta ggggccatca atttcatcac aacaattatc aatataaaac +cccctgccat aacccaatac caaacgcccc tcttcgtctg atccgtccta atcacagcag +tcctacttct cctatctctc ccagtcctag ctgctggcat cactatacta ctaacagacc +gcaacctcaa caccaccttc ttcgaccccg ccggaggagg agaccccatt ctataccaac +acctattctg atttttcggt caccctgaag tttatattct tatcctacca ggcttcggaa +taatctccca tattgtaact tactactccg gaaaaaaaga accatttgga tacataggta +tggtctgagc tatgatatca attggcttcc tagggtttat cgtgtgagca caccatatat +ttacagtagg aatagacgta gacacacgag catatttcac ctccgctacc ataatcatcg +ctatccccac cggcgtcaaa gtatttagct gactcgccac actccacgga agcaatatga +aatgatctgc tgcagtgctc tgagccctag gattcatctt tcttttcacc gtaggtggcc +tgactggcat tgtattagca aactcatcac tagacatcgt actacacgac acgtactacg +ttgtagccca cttccactat gtcctatcaa taggagctgt atttgccatc ataggaggct +tcattcactg atttccccta ttctcaggct acaccctaga ccaaacctac gccaaaatcc +atttcactat catattcatc ggcgtaaatc taactttctt cccacaacac tttctcggcc +tatccggaat gccccgacgt tactcggact accccgatgc atacaccaca tgaaacatcc +tatcatctgt aggctcattc atttctctaa cagcagtaat attaataatt ttcatgattt +gagaagcctt cgcttcgaag cgaaaagtcc taatagtaga agaaccctcc ataaacctgg +agtgactata tggatgcccc ccaccctacc acacattcga agaacccgta tacataaaat +ctagacaaaa aaggaaggaa tcgaaccccc caaagctggt ttcaagccaa ccccatggcc +tccatgactt tttcaaaaag gtattagaaa aaccatttca taactttgtc aaagttaaat +tataggctaa atcctatata tcttaatggc acatgcagcg caagtaggtc tacaagacgc +tacttcccct atcatagaag agcttatcac ctttcatgat cacgccctca taatcatttt +ccttatctgc ttcctagtcc tgtatgccct tttcctaaca ctcacaacaa aactaactaa +tactaacatc tcagacgctc aggaaataga aaccgtctga actatcctgc ccgccatcat +cctagtcctc atcgccctcc catccctacg catcctttac ataacagacg aggtcaacga +tccctccctt accatcaaat caattggcca ccaatggtac tgaacctacg agtacaccga +ctacggcgga ctaatcttca actcctacat acttccccca ttattcctag aaccaggcga +cctgcgactc cttgacgttg acaatcgagt agtactcccg attgaagccc ccattcgtat +aataattaca tcacaagacg tcttgcactc atgagctgtc cccacattag gcttaaaaac +agatgcaatt cccggacgtc taaaccaaac cactttcacc gctacacgac cgggggtata +ctacggtcaa tgctctgaaa tctgtggagc aaaccacagt ttcatgccca tcgtcctaga +attaattccc ctaaaaatct ttgaaatagg gcccgtattt accctatagc accccctcta +ccccctctag agcccactgt aaagctaact tagcattaac cttttaagtt aaagattaag +agaaccaaca cctctttaca gtgaaatgcc ccaactaaat actaccgtat ggcccaccat +aattaccccc atactcctta cactattcct catcacccaa ctaaaaatat taaacacaaa +ctaccaccta cctccctcac caaagcccat aaaaataaaa aattataaca aaccctgaga +accaaaatga acgaaaatct gttcgcttca ttcattgccc ccacaatcct aggcctaccc +gccgcagtac tgatcattct atttccccct ctattgatcc ccacctccaa atatctcatc +aacaaccgac taatcaccac ccaacaatga ctaatcaaac taacctcaaa acaaatgata +accatacaca acactaaagg acgaacctga tctcttatac tagtatcctt aatcattttt +attgccacaa ctaacctcct cggactcctg cctcactcat ttacaccaac cacccaacta +tctataaacc tagccatggc catcccctta tgagcgggca cagtgattat aggctttcgc +tctaagatta aaaatgccct agcccacttc ttaccacaag gcacacctac accccttatc +cccatactag ttattatcga aaccatcagc ctactcattc aaccaatagc cctggccgta +cgcctaaccg ctaacattac tgcaggccac ctactcatgc acctaattgg aagcgccacc +ctagcaatat caaccattaa ccttccctct acacttatca tcttcacaat tctaattcta +ctgactatcc tagaaatcgc tgtcgcctta atccaagcct acgttttcac acttctagta +agcctctacc tgcacgacaa cacataatga cccaccaatc acatgcctat catatagtaa +aacccagccc atgaccccta acaggggccc tctcagccct cctaatgacc tccggcctag +ccatgtgatt tcacttccac tccataacgc tcctcatact aggcctacta accaacacac +taaccatata ccaatgatgg cgcgatgtaa cacgagaaag cacataccaa ggccaccaca +caccacctgt ccaaaaaggc cttcgatacg ggataatcct atttattacc tcagaagttt +ttttcttcgc aggatttttc tgagcctttt accactccag cctagcccct accccccaat +taggagggca ctggccccca acaggcatca ccccgctaaa tcccctagaa gtcccactcc +taaacacatc cgtattactc gcatcaggag tatcaatcac ctgagctcac catagtctaa +tagaaaacaa ccgaaaccaa ataattcaag cactgcttat tacaatttta ctgggtctct +attttaccct cctacaagcc tcagagtact tcgagtctcc cttcaccatt tccgacggca +tctacggctc aacatttttt gtagccacag gcttccacgg acttcacgtc attattggct +caactttcct cactatctgc ttcatccgcc aactaatatt tcactttaca tccaaacatc +actttggctt cgaagccgcc gcctgatact ggcattttgt agatgtggtt tgactatttc +tgtatgtctc catctattga tgagggtctt actcttttag tataaatagt accgttaact +tccaattaac tagttttgac aacattcaaa aaagagtaat aaacttcgcc ttaattttaa +taatcaacac cctcctagcc ttactactaa taattattac attttgacta ccacaactca +acggctacat agaaaaatcc accccttacg agtgcggctt cgaccctata tcccccgccc +gcgtcccttt ctccataaaa ttcttcttag tagctattac cttcttatta tttgatctag +aaattgccct ccttttaccc ctaccatgag ccctacaaac aactaacctg ccactaatag +ttatgtcatc cctcttatta atcatcatcc tagccctaag tctggcctat gagtgactac +aaaaaggatt agactgaacc gaattggtat atagtttaaa caaaacgaat gatttcgact +cattaaatta tgataatcat atttaccaaa tgcccctcat ttacataaat attatactag +catttaccat ctcacttcta ggaatactag tatatcgctc acacctcata tcctccctac +tatgcctaga aggaataata ctatcgctgt tcattatagc tactctcata accctcaaca +cccactccct cttagccaat attgtgccta ttgccatact agtctttgcc gcctgcgaag +cagcggtggg cctagcccta ctagtctcaa tctccaacac atatggccta gactacgtac +ataacctaaa cctactccaa tgctaaaact aatcgtccca acaattatat tactaccact +gacatgactt tccaaaaaac acataatttg aatcaacaca accacccaca gcctaattat +tagcatcatc cctctactat tttttaacca aatcaacaac aacctattta gctgttcccc +aaccttttcc tccgaccccc taacaacccc cctcctaata ctaactacct gactcctacc +cctcacaatc atggcaagcc aacgccactt atccagtgaa ccactatcac gaaaaaaact +ctacctctct atactaatct ccctacaaat ctccttaatt ataacattca cagccacaga +actaatcata ttttatatct tcttcgaaac cacacttatc cccaccttgg ctatcatcac +ccgatgaggc aaccagccag aacgcctgaa cgcaggcaca tacttcctat tctacaccct +agtaggctcc cttcccctac tcatcgcact aatttacact cacaacaccc taggctcact +aaacattcta ctactcactc tcactgccca agaactatca aactcctgag ccaacaactt +aatatgacta gcttacacaa tagcttttat agtaaagata cctctttacg gactccactt +atgactccct aaagcccatg tcgaagcccc catcgctggg tcaatagtac ttgccgcagt +actcttaaaa ctaggcggct atggtataat acgcctcaca ctcattctca accccctgac +aaaacacata gcctacccct tccttgtact atccctatga ggcataatta taacaagctc +catctgccta cgacaaacag acctaaaatc gctcattgca tactcttcaa tcagccacat +agccctcgta gtaacagcca ttctcatcca aaccccctga agcttcaccg gcgcagtcat +tctcataatc gcccacgggc ttacatcctc attactattc tgcctagcaa actcaaacta +cgaacgcact cacagtcgca tcataatcct ctctcaagga cttcaaactc tactcccact +aatagctttt tgatgacttc tagcaagcct cgctaacctc gccttacccc ccactattaa +cctactggga gaactctctg tgctagtaac cacgttctcc tgatcaaata tcactctcct +acttacagga ctcaacatac tagtcacagc cctatactcc ctctacatat ttaccacaac +acaatggggc tcactcaccc accacattaa caacataaaa ccctcattca cacgagaaaa +caccctcatg ttcatacacc tatcccccat tctcctccta tccctcaacc ccgacatcat +taccgggttt tcctcttgta aatatagttt aaccaaaaca tcagattgtg aatctgacaa +cagaggctta cgacccctta tttaccgaga aagctcacaa gaactgctaa ctcatgcccc +catgtctaac aacatggctt tctcaacttt taaaggataa cagctatcca ttggtcttag +gccccaaaaa ttttggtgca actccaaata aaagtaataa ccatgcacac tactataacc +accctaaccc tgacttccct aattcccccc atccttacca ccctcgttaa ccctaacaaa +aaaaactcat acccccatta tgtaaaatcc attgtcgcat ccacctttat tatcagtctc +ttccccacaa caatattcat gtgcctagac caagaagtta ttatctcgaa ctgacactga +gccacaaccc aaacaaccca gctctcccta agcttcaaac tagactactt ctccataata +ttcatccctg tagcattgtt cgttacatgg tccatcatag aattctcact gtgatatata +aactcagacc caaacattaa tcagttcttc aaatatctac tcatcttcct aattaccata +ctaatcttag ttaccgctaa caacctattc caactgttca tcggctgaga gggcgtagga +attatatcct tcttgctcat cagttgatga tacgcccgag cagatgccaa cacagcagcc +attcaagcaa tcctatacaa ccgtatcggc gatatcggtt tcatcctcgc cttagcatga +tttatcctac actccaactc atgagaccca caacaaatag cccttctaaa cgctaatcca +agcctcaccc cactactagg cctcctccta gcagcagcag gcaaatcagc ccaattaggt +ctccacccct gactcccctc agccatagaa ggccccaccc cagtctcagc cctactccac +tcaagcacta tagttgtagc aggaatcttc ttactcatcc gcttccaccc cctagcagaa +aatagcccac taatccaaac tctaacacta tgcttaggcg ctatcaccac tctgttcgca +gcagtctgcg cccttacaca aaatgacatc aaaaaaatcg tagccttctc cacttcaagt +caactaggac tcataatagt tacaatcggc atcaaccaac cacacctagc attcctgcac +atctgtaccc acgccttctt caaagccata ctatttatgt gctccgggtc catcatccac +aaccttaaca atgaacaaga tattcgaaaa ataggaggac tactcaaaac catacctctc +acttcaacct ccctcaccat tggcagccta gcattagcag gaataccttt cctcacaggt +ttctactcca aagaccacat catcgaaacc gcaaacatat catacacaaa cgcctgagcc +ctatctatta ctctcatcgc tacctccctg acaagcgcct atagcactcg aataattctt +ctcaccctaa caggtcaacc tcgcttcccc acccttacta acattaacga aaataacccc +accctactaa accccattaa acgcctggca gccggaagcc tattcgcagg atttctcatt +actaacaaca tttcccccgc atcccccttc caaacaacaa tccccctcta cctaaaactc +acagccctcg ctgtcacttt cctaggactt ctaacagccc tagacctcaa ctacctaacc +aacaaactta aaataaaatc cccactatgc acattttatt tctccaacat actcggattc +taccctagca tcacacaccg cacaatcccc tatctaggcc ttcttacgag ccaaaacctg +cccctactcc tcctagacct aacctgacta gaaaagctat tacctaaaac aatttcacag +caccaaatct ccacctccat catcacctca acccaaaaag gcataattaa actttacttc +ctctctttct tcttcccact catcctaacc ctactcctaa tcacataacc tattcccccg +agcaatctca attacaatat atacaccaac aaacaatgtt caaccagtaa ctactactaa +tcaacgccca taatcataca aagcccccgc accaatagga tcctcccgaa tcaaccctga +cccctctcct tcataaatta ttcagcttcc tacactatta aagtttacca caaccaccac +cccatcatac tctttcaccc acagcaccaa tcctacctcc atcgctaacc ccactaaaac +actcaccaag acctcaaccc ctgaccccca tgcctcagga tactcctcaa tagccatcgc +tgtagtatat ccaaagacaa ccatcattcc ccctaaataa attaaaaaaa ctattaaacc +catataacct cccccaaaat tcagaataat aacacacccg accacaccgc taacaatcaa +tactaaaccc ccataaatag gagaaggctt agaagaaaac cccacaaacc ccattactaa +acccacactc aacagaaaca aagcatacat cattattctc gcacggacta caaccacgac +caatgatatg aaaaaccatc gttgtatttc aactacaaga acaccaatga ccccaatacg +caaaactaac cccctaataa aattaattaa ccactcattc atcgacctcc ccaccccatc +caacatctcc gcatgatgaa acttcggctc actccttggc gcctgcctga tcctccaaat +caccacagga ctattcctag ccatgcacta ctcaccagac gcctcaaccg ccttttcatc +aatcgcccac atcactcgag acgtaaatta tggctgaatc atccgctacc ttcacgccaa +tggcgcctca atattcttta tctgcctctt cctacacatc gggcgaggcc tatattacgg +atcatttctc tactcagaaa cctgaaacat cggcattatc ctcctgcttg caactatagc +aacagccttc ataggctatg tcctcccgtg aggccaaata tcattctgag gggccacagt +aattacaaac ttactatccg ccatcccata cattgggaca gacctagttc aatgaatctg +aggaggctac tcagtagaca gtcccaccct cacacgattc tttacctttc acttcatctt +gcccttcatt attgcagccc tagcaacact ccacctccta ttcttgcacg aaacgggatc +aaacaacccc ctaggaatca cctcccattc cgataaaatc accttccacc cttactacac +aatcaaagac gccctcggct tacttctctt ccttctctcc ttaatgacat taacactatt +ctcaccagac ctcctaggcg acccagacaa ttatacccta gccaacccct taaacacccc +tccccacatc aagcccgaat gatatttcct attcgcctac acaattctcc gatccgtccc +taacaaacta ggaggcgtcc ttgccctatt actatccatc ctcatcctag caataatccc +catcctccat atatccaaac aacaaagcat aatatttcgc ccactaagcc aatcacttta +ttgactccta gccgcagacc tcctcattct aacctgaatc ggaggacaac cagtaagcta +cccttttacc atcattggac aagtagcatc cgtactatac ttcacaacaa tcctaatcct +aataccaact atctccctaa ttgaaaacaa aatactcaaa tgggcctgtc cttgtagtat +aaactaatac accagtcttg taaaccggag atgaaaacct ttttccaagg acaaatcaga +gaaaaagtct ttaactccac cattagcacc caaagctaag attctaattt aaactattct +ctgttctttc atggggaagc agatttgggt accacccaag tattgactca cccatcaaca +accgctatgt atttcgtaca ttactgccag ccaccatgaa tattgtacgg taccataaat +acttgaccac ctgtagtaca taaaaaccca atccacatca aaaccccctc cccatgctta +caagcaagta cagcaatcaa ccctcaacta tcacacatca actgcaactc caaagccacc +cctcacccac taggatacca acaaacctac ccacccttaa cagtacatag tacataaagc +catttaccgt acatagcaca ttacagtcaa atcccttctc gtccccatgg atgacccccc +tcagataggg gtcccttgac caccatcctc cgtgaaatca atatcccgca caagagtgct +actctcctcg ctccgggccc ataacacttg ggggtagcta aagtgaactg tatccgacat +ctggttccta cttcagggtc ataaagccta aatagcccac acgttcccct taaataagac +atcacgatg \ No newline at end of file diff --git a/DNA_Alignment/DNA_Alignment/writeup.txt b/DNA_Alignment/DNA_Alignment/writeup.txt index e69de29..81649c7 100644 --- a/DNA_Alignment/DNA_Alignment/writeup.txt +++ b/DNA_Alignment/DNA_Alignment/writeup.txt @@ -0,0 +1,3 @@ +This algorithm becomes impracticle at about 25,000 entries due to memory allocation. + +Given larger storage this algorithm is incredibly fast. \ No newline at end of file diff --git a/HW1/.idea/workspace.xml b/HW1/.idea/workspace.xml deleted file mode 100644 index 7824639..0000000 --- a/HW1/.idea/workspace.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - 1578970640423 - - - - - - \ No newline at end of file diff --git a/HW1/StoneGame.py b/HW1/StoneGame.py deleted file mode 100644 index 308508b..0000000 --- a/HW1/StoneGame.py +++ /dev/null @@ -1,5 +0,0 @@ -import sys - -def main(): - t = "hello" - print(t); \ No newline at end of file diff --git a/HW1/env/bin/pip3 b/HW1/env/bin/pip3 deleted file mode 100755 index 07fd45a..0000000 --- a/HW1/env/bin/pip3 +++ /dev/null @@ -1,12 +0,0 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/env/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip3' -__requires__ = 'pip==19.0.3' -import re -import sys -from pkg_resources import load_entry_point - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('pip==19.0.3', 'console_scripts', 'pip3')() - ) diff --git a/HW1/env/bin/python3.7 b/HW1/env/bin/python3.7 deleted file mode 100755 index 942057074ee57391fef6dcca4e273c0831f7ecd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9604 zcmeHNZ)_Y#6`vz9anmH{l%|E!2KP^h3Bu==xD9D6>?Z4Mz;@jvPMwHqbN21Ur=IVQ zy>(*;8Jxy$eYqG}&_-2>AW&3=ph_01NE9T;Ndxu=)JA~75`Pq>X|+}BGW%$r-!_>K48eSet{p(R2Ld_)Mb8oB(VLJWyYP(pkH zSw}XE)`socK5gftY%NZqVs=4}I8_+HFm`M0yNgAnenoMcP&{lCWyml|Cd07JURyD! zf_M|uSmCHsTgnxw=|5b-P4gRGzIZataS0>O2Xqkg>r>AXCLv5E;E@i zEeHkimacN~&M5%$^m`%Av#&F2TZz;GB@o0LS9rfx{p9_r2pb)S(UUruNX3jqDxQ{n z@p?QLcJ1SuGm#HsxIJ!Z7-p9dx1!yq#~0&WQFtF$O60NE7ERnI!&pGW*w(PS!6%0O zAooe7YV-DsZ=Vp?TWiBeC5>!fcSkyDWNd3uJP(HZ&2Jaild<3>!#I%kZM%7R70{=B z-aN?%@jm8(p*DiHQh38khrAz;adBG_UPpFr7ti57zD0#$b-?!kd;0fxN-vQ8QIxzSQHn<4+u?9hrT!SuDe9 zB1f7M9ahxpi!?HZ4yLUqvys+5yDOclmQlr)$R5+mCeo>Ftcc3~CTxiv{#R!_G^YHK&0A z?N^`;!%jd0M*oC;1^bjmU#CbNjaC*#eHMMyMf-~1qP;Gr?qW8eYaZr?Am&OR=3Oo( zzefwREJObcCP`yg$^Kdg-)QIPZD%bybJ`_+q<;$Q;^_J2Sv?ohC$%YRIN#$^pC!qp zk2FK7?hd*#-{Umpwb`b8SkFyjy3S9rfjnpbj5g-moSZfRM-8GUULF3_pafC-Z@-=| zyCALUxeNqnFND-yfN=sAT&MWVa$1n@zw8`>05;hy%$(KBwonFYo88t4Y`qD}hlh%^ ze@U@(H&g=71Ps6IT#=w{6Z(?2S^e-ucI&yeDZrl{!)Tc0!_5=J+L`bmzd$hJRCv7n z@V~g(!_QwFZaZ^SJ98=&9)cspj3=U(xj5R?%ozegOE0670ZZq)7}dlW!um>BpTJ0M zIlbmLcFK9kGc?zRFx5^0=DL35(*7r2iwFE!qa%{zliF1R_g{BD2Tg>e^H+?NZ=TM< zd{Dxj(Rp}{oAzGRSfDp0hm{{`y9UQQGF)Bzj63&7(TCEU0Dwzp1TmwHDBdu;qyIL zov)!Sr(JgLM~wx`)f|2wlxIEd13qm4svPaerJ5&R8@;ja84Pw~-LNc=%JP^jzbVU6 zS$<2F&&l$*EMJi2i?Tc+%kRqaq%40R%OA?}Wt2iRjokGg4BoKo#=3V=k9M(f=52VV z>rPUCAjJ=YnO~9mBB?1-{3e_kC)GjfRZ`ugPLt{*b&}LDspF)MlR8G~N2H!6^>b3a zq~0NwBDDf`%*04-AhnOw7f7{|;s@bOBPh#^CNojHYjfqgtf&?dd{(#a-J`YaF`63M zTDI!iPQwtHbT-jzWHZr&DJkdUqqc3~FCp76Bipj3-H}LTEHnNAU6t`@B5B4d?Q~^l zI@7m&A<=j;dLS!yn%Q)Z)oB*K?V_1XWNSKQn<+aRX^wV2y36-nhuH}_p2=Txu_kc( zZbZ$@zeSlyBiQgQ7{WIjwPljTtsZk|rwH{{geq1nD<3V0sLl^j-HI5e+FDgtsrms` zZ&7uls#{gPPt`G1r&Qgm>ZetGOx4F#eNxq@RsE`}KZL0zk&*{W9w>RBdI-^XL7 zWo5)@yNWPTGmvaNxBb`9aJ0IWCV&LB(cC}Fb1@;0I-X(idvbL2p;b>u-%6*76;wo93teNTsIa-W|!L4vo{ zk7!Zi$v5P1h%be%GT$K~LL8aaqXbhJlb7OtzA?Z*7T}Elp9=6#1^90Sc;3?c$2%I} zza8Me6W~t;`0)V$#{mD&0KW=@`^Ud6z^@JP>jOOR_3*AB7X>%i^2G=*&+4Xxz7X(Us22sfpP38qd9B59y->Fs(2GQ}7s5CeW$dz+K|AlP Vw4yO. -# Ported to Python 3.3 venv by Andrew Svetlov - -alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate' - -# Unset irrelevant variables. -deactivate nondestructive - -setenv VIRTUAL_ENV "/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/venv" - -set _OLD_VIRTUAL_PATH="$PATH" -setenv PATH "$VIRTUAL_ENV/bin:$PATH" - - -set _OLD_VIRTUAL_PROMPT="$prompt" - -if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then - if ("venv" != "") then - set env_name = "venv" - else - if (`basename "VIRTUAL_ENV"` == "__") then - # special case for Aspen magic directories - # see http://www.zetadev.com/software/aspen/ - set env_name = `basename \`dirname "$VIRTUAL_ENV"\`` - else - set env_name = `basename "$VIRTUAL_ENV"` - endif - endif - set prompt = "[$env_name] $prompt" - unset env_name -endif - -alias pydoc python -m pydoc - -rehash diff --git a/HW1/venv/bin/activate.fish b/HW1/venv/bin/activate.fish deleted file mode 100644 index 986bcb4..0000000 --- a/HW1/venv/bin/activate.fish +++ /dev/null @@ -1,75 +0,0 @@ -# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org) -# you cannot run it directly - -function deactivate -d "Exit virtualenv and return to normal shell environment" - # reset old environment variables - if test -n "$_OLD_VIRTUAL_PATH" - set -gx PATH $_OLD_VIRTUAL_PATH - set -e _OLD_VIRTUAL_PATH - end - if test -n "$_OLD_VIRTUAL_PYTHONHOME" - set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME - set -e _OLD_VIRTUAL_PYTHONHOME - end - - if test -n "$_OLD_FISH_PROMPT_OVERRIDE" - functions -e fish_prompt - set -e _OLD_FISH_PROMPT_OVERRIDE - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt - end - - set -e VIRTUAL_ENV - if test "$argv[1]" != "nondestructive" - # Self destruct! - functions -e deactivate - end -end - -# unset irrelevant variables -deactivate nondestructive - -set -gx VIRTUAL_ENV "/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/venv" - -set -gx _OLD_VIRTUAL_PATH $PATH -set -gx PATH "$VIRTUAL_ENV/bin" $PATH - -# unset PYTHONHOME if set -if set -q PYTHONHOME - set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME - set -e PYTHONHOME -end - -if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" - # fish uses a function instead of an env var to generate the prompt. - - # save the current fish_prompt function as the function _old_fish_prompt - functions -c fish_prompt _old_fish_prompt - - # with the original prompt function renamed, we can override with our own. - function fish_prompt - # Save the return status of the last command - set -l old_status $status - - # Prompt override? - if test -n "(venv) " - printf "%s%s" "(venv) " (set_color normal) - else - # ...Otherwise, prepend env - set -l _checkbase (basename "$VIRTUAL_ENV") - if test $_checkbase = "__" - # special case for Aspen magic directories - # see http://www.zetadev.com/software/aspen/ - printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal) - else - printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal) - end - end - - # Restore the return status of the previous command. - echo "exit $old_status" | . - _old_fish_prompt - end - - set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" -end diff --git a/HW1/venv/bin/easy_install b/HW1/venv/bin/easy_install deleted file mode 100755 index 303e388..0000000 --- a/HW1/venv/bin/easy_install +++ /dev/null @@ -1,12 +0,0 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/venv/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==40.8.0','console_scripts','easy_install' -__requires__ = 'setuptools==40.8.0' -import re -import sys -from pkg_resources import load_entry_point - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('setuptools==40.8.0', 'console_scripts', 'easy_install')() - ) diff --git a/HW1/venv/bin/easy_install-3.6 b/HW1/venv/bin/easy_install-3.6 deleted file mode 100755 index b096bd7..0000000 --- a/HW1/venv/bin/easy_install-3.6 +++ /dev/null @@ -1,12 +0,0 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/venv/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==40.8.0','console_scripts','easy_install-3.6' -__requires__ = 'setuptools==40.8.0' -import re -import sys -from pkg_resources import load_entry_point - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('setuptools==40.8.0', 'console_scripts', 'easy_install-3.6')() - ) diff --git a/HW1/venv/bin/pip b/HW1/venv/bin/pip deleted file mode 100755 index 7a322fc..0000000 --- a/HW1/venv/bin/pip +++ /dev/null @@ -1,12 +0,0 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/venv/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip' -__requires__ = 'pip==19.0.3' -import re -import sys -from pkg_resources import load_entry_point - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('pip==19.0.3', 'console_scripts', 'pip')() - ) diff --git a/HW1/venv/bin/pip3.6 b/HW1/venv/bin/pip3.6 deleted file mode 100755 index 3847c16..0000000 --- a/HW1/venv/bin/pip3.6 +++ /dev/null @@ -1,12 +0,0 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/venv/bin/python -# EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip3.6' -__requires__ = 'pip==19.0.3' -import re -import sys -from pkg_resources import load_entry_point - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit( - load_entry_point('pip==19.0.3', 'console_scripts', 'pip3.6')() - ) diff --git a/HW1/venv/bin/python b/HW1/venv/bin/python deleted file mode 100755 index 9ff1ee1a02de19bdd5b5972c1ed6271a07753f2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3094132 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

u)o*p=l+xgBS?uQINSFL) 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 z%0D-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

dia5&_dYG9p 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ˆU;RjeF>V$pHnGT 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

Uu)7f0@`2&hb1b9ec!x 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%0A~5yV^G&8cuOXQFK-}mF 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

Ce#LgLbmiz6tPQ3mtwc)@UP{ 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

EUqdK&5>!U%EBt^+5MQ}V_Iw8Q@h zDmk?l<4h<{B^6`k#@)TSt&i_ly?&IPAaE5vtEU^2!xg~LJhMX*otpdA27D*Lf#->* z+8g&7hrf#qhgp*8*{x@uQEjjw^rE>uA6xwx&TOF>>F0}VohViuk?KcQJny#K;T zJ~qoN+!Vl1TIKwg_0gB*sV;B>3BX>p8ofk243VjDneMYOK8s$echv$*;+i>8-3?Z4 zPJq-G7awNF8`X$$@qWuLJ4=u!#(wqY%a}L9Dv}d8VA%Qho#X~R=u1%#a@xeEJ{Y#& z;?X!9*8`?&2oC_hR09uJvJZh6r2u{$^g03lMo*W4d664zv-)UhvXAdZOxOb%Sd1fL zy8+srHcwsjg%FuP4+D6jy*;_BTH8*Ri`KxAehJaG5-cn(@F=?qC_g@y`d~ih-Z%g?~b?3^H9{OLuDZXRYWkVr`Ut(WV9 z!V(7QBEGQ{Gs4ah+l8#?gMJ+DUvR;5XdX4ijgSbZN91z4S~{x~fChw#1A0cLO%?9~ zYA`e``IObiYt(!A2aw20z%VANTbtNUmzeyc=U?vdV`8>xneOspWFo5Tu2WoGWFGib zXS9otS3|HGW6dZGx`N*#c-M+K>gPqk4{UW1n|n&IktgdY{fQmip}vT3Nb}TTJW$R? zBm6n4!Y!-joPhku&@FMv+M!!7V3YtYjR=|hgXTzL3$Bwwj)XWVJ0Qv_ynVO2dYeT) zhoDb`e2}J^gF_e-iD(TcLc*c+dpjh`sASl_9TsJB^JW##eNuBEm_i}6Pu0KqO+gy`StY2Ga4Y=FUlu`sx6*a(~> zpBzK95D{rSMq34D%%}+ChaRi1kvDWVXZ80QKm6vu7G~{{xUNFSKF-fNEirNJ&PK`z zr0Dp;8$@~jgTSs+i0ax7djb4bFyC_eK?BeUwy39%u`ogaJ&tXjtnD1*W0L{D$((vI z?j-r{tnrmxs$1$&=pd3PXAeX7Fk?h!#A-~KV-MUDx`k1Ur)r>rA+5+38Gu|Fwp(TB ziWoQC1CEF%h@$+*?alce>dby?%!Q6)v0=kGueKc}#UipV(lM&P(=0HKRu7!NAidWU z3y2r5i${7L`(P&#=(0KISDgjI?Cspq;OgJXq#-tQ8k2OktBO9>sSu}z9dx1r@z+467{NF2vCZAI`itDoE#?+dJw zlcjy+vWG2ALH46oat9IL_HI58w4M>4C+)$C%l5L{{kajYRDU+1vB`0bg;}{_tg+|$ zd~$_u94O7V{C#$N*M`yF=g%axcS&4(xvc-ORUiFd&*!%j+7tbR@kr305n~f7Ev8F# z_7_|wq5kl?5}lAK-d_yaH#EIiHR6w;d@%wvq>*{j_~cZX&eJt&O&!_8@CrNDoBSSS zvi*z2b+j~|9^Jw9?)4{+E^+vefO#WU%wrVb%v*VxZW&l}Hr2BryF<5Utqp|c61_w8 z`YyUd-1|Uuhwv4Gu8K!-Ti~WpjCLAGK}vt)n}caxq~=2B)yD!Nqw#(93Sn#bJ^|m= z!^@*zua1jxLbKEUrry9uKqy;G>o)clGX(h6Tg)3vvBeBsCMP1}0_yS-{j~!x5c(oy z=J00{{HeEWmca;(O))T>-_V#vW95AQ$$E|<^PK+5iP|DE!Ps9l!6+@5&wu9fpE>-e z4F6QzhqVWwXEkGd+b(zbX?Y=v*F}iHE;%?}uq7CGVA@n3`|$~4*lmImuXg5g*!H=zN=?yTboBPgT7Gdmf5k+&R2 z<3i432uN+oKCTbQ^z7qG=>w*W&{#-iTZ=FCbQzoH%Vc2uF)}MHyC2%5TdmxNF?+I5 zG*ncE34li~Hm7quea99Xvw!2(7W#k_Q|Lex>BzFeES#%3roPyWMxY%Sfqrx+z@&zJ zHAIo4+MTsbUDTUsnf9>>4V2U2f!9O*Z3!j6UG8#;k4qxE{FE)LIoV8sz5|>wKJ<&m zE30pH`hd^@U~H;kWOjx;PtJhRuZTis%qUQUwO$zR_P2S|i2X^*4FF)3 zSVhYGS@;BM@(A*{kFjKB(o-ih}DsU>(<3XrM?j7A@*Fc!pd%AHeGX3Q3?I))eS**o_W>tn~` zzdUv0X9z+G%}i4NM0~3Rk@f)Q;jezTu`Dtu^`78nh@w9PH9r&kqFIcYi<=pv;#TOI z<{$A7SR=2+AdnA!B-3XiBRK{|569PQF?-Dg6)TB)AGC~3qCtOD);lO#h@ z*PwNokvhPe7<2=F_;~unBNJ3}6xDus#N69n)rzeph#`sxlc=A7+8)Pt zmX6L=5Hk@Rn}_WS+F&UefwLXlB?-`Q*6aI;* zpMWUxg?&EC)|b!7X5ShVXgM7^scugQha6-H(Avsdh6rQGd^m$2&VIfDwjySzdoo>f z$D2c%JHjv~4u?iTn>+fh;EmTv+~K@dH-PHDVOB)^z8CGNuRf*tt<8_N-9K*32v}VT z>{0z32>@-g?U?l(qi?0EI&}(|7;qmMOWh5^oscx-T>LH{s~>tN9020;FK%VKAks7k zw7Be!IPYYguPLy{yyGIJ-S|?Rlosa)+6WFVw{GbCbFiOU5pP#YmhSAu595^l`mn}S zw#F2XzWi%?G>Q{TA)53FjuB_0_4e+bp8}l0itAiwZTO+=DQxfYPedcOQ=V#h%eLPp z_Wwu#<%gZ!fA{nEA6jSkzr4QH|Ildv*RZ{&|9$^&K1BHcd^Y?Ko*({b|M_z3;w zg|f%8y~h{**YLkoPWaF6zx(<74}BGdzn%?$wEr8~Ueo`+|0`L3y|q%}=YQJy;g9y8 zZ}-1$nGOFwnSbmaVyieH0k5^^KZ8Q9MSowi{IIk8?|%ONLtjSWciQkr`+tP(HU01V zpTP3#XPrI&#pj1V+JC;?|GK3%{1*xQvavvWJU9GuVAq2G4C!Uq+5LAvfB&H`qVU(X z;g9yefbBK?&;7^a{~4iwa7H&6SN!}>JwN=>{`2kr*DbN(A1w60@O<-c=|{LTKp#l7 zormB`9F=AA4QIDvGgs?j;Q$&%6Jg?HP0eL!JXvT2+G6Xb+8dyE0(#R zC$gU>Kg5Qu??2EY*u$6(iN2S{Xp{lVToFAudM4RwXI8YGOtv!!?NF1`qd-6i1T~Rc zZiUna3jo6j5)yRjB?qB1K5dN6x{0NVEtG=Bi!f(f7-Iwbh94PR5w~9Td@*|5o}dqj zXkPG;9V*2jpLtZ1&ZHPZC;N%e<(MDe#KOKEpW5Y2GAf=UX2ZEx89)`X;oNQqUL&tc z_H}H?YcpEfW2{_*(gs%<;az>NkfnA(WAdhWKJ|* zQBpnmaTB_8$mjO#RXVWEs}G1`#BJ<|s+Is=+b=ALeFm!KH5QS=OexnE0=)Wpf!)$h ztOE5CTB1@Jy?!<^-z&U^NX`a*Lx$qJOj|UOMz7>2XOgcs+iN6U;I26Tm5>gbG^v*q zxdQKBTy6KG*w2;d$9xBIjtDFv&^m}K&DV<#?$m{dGlkXzQBEIaaz6^8m{uRi_cK{3 zR>P0b*;MyzHf|?M`57IcHe}Hr?`fH{!fjQ8*_x;KuEb**4BJc$xm{g7_5gL-N}6a3 zL${?B%o?2Oq5OlZxB&u&&MR6ykx82GYcrl+wd9Iygf8GZ&Y#YM#IS5|v!OqyA#*HAvj( zYu589LV5Cxr&lidCH3T<(p!dH^@1@ZA5Cils z9!#c~BzLJ8h$u+&cPxwY6UqJ}-dyt=3x|jF@PtRXaj&eA|M_*shxvavBZEG|%AGmP z;CAw&iu$bI3jfruvLOFr4d+r;fsK-Q2*??m#KuGUubh^)xqi$q@sB55D!m_F!tPHp zXJr<1R$ec_{KC#cL)lYXcjuiy=x|Zxsc9rj{pC3HlIJsYPA!6M8-3o(CJ;pn5f^T1( z3M9INBj@K=dN-**?nDZkSzaVYFIXt6Bol3ehLinGUATM8c!YAq%;T1taP+F1+ky>eM~%u-joQ*ie2Fi*y5Om7i?rZ-GXVeV4N-e~xQq z{)I^mBUjIH=NvR1dk(8XzPjY=AZaubpuRW3Rh?giJ8dI|-f!^uBCog=T$p3I4@Gkc z>GHu5MM)-a6%_lND>&lCB=gGXe#LJ554wyG(+5r{2OO8hSBJfK0xA?~fIb{CFc|=$ zSn5Ee!JTE<9HhCUL*D4FW`7tFErv&PCh$Ftccq|Tvoh~W+H*ukm+AQ{q7T7<^6`l z55Y!TY!F6;1H(4^p#>CvEWU6Ir_muB6U?nc2$B?zoL>-t&~+NKWs|+D>KClSU)mO=e3@T4B{R}gg`h)oL4X7J zT3}yc=xh1%PI0aR%g<@Pa)N`=%O|$~@^Hiw!9u#sfBB3-$*JzJ$1(MABz3}^@)@DJ z`tgVq>WrDkxd|8X36==DtQ%cb3gw?CPbfdpFyF{O%Q_26&mmC;Aw*F?*Vw?Nl(q;cb*}Khns#C1%be^W1u+$x3vO%V#E9b zffAs0Q5&R^zp#IgyMvKi^)5f&uO3UjBb{G{6nzH*{*0zk+HQ5H=Sh;KpxmFsqFPY37@F(EOv#gz`R39=KfA z&voVfdZb<-uG<6a=R&L>d}tXP@|@V`Bhq?*G$MMzZ!WUxhYZnNOim+eo*}Opu}>#e6N3TX6};WGrZ=$MvvaQdXzG05g}feoCu&dbQSL&ibi`bJios z2aG{xa8`5%@#(wBPu6}c^M^J7T^ULwS?dvHj<7nfZ|4kdj(FqfF><}J_z;NL?2FH& zC{NZ8;QE+guo{wcr%e_)AJ=*o)Wt5yT!6S$i{p5MxXWw_HVf<)t7`3kp|qZ>vAf`$ zMzl-ElE@}^7eq2x3!>2RU1VjH-|5_@mJ*qe1F#*O$70vH6kg&C!pHOlt?je(@N*}m z{@Y?H%otG0%|$hH^Dv_^+(!Eod%QkB&hrAGUbKsQbsptOX)m)??kWr;6+N?$Zgfi~ z`xQ8U?D~xGf~Y+>d$TT7gd;cwn{lWqjmgIGx&h9c!aSY{uDOQukNA1fu#HR znvN?uGn2NK{gm8cN6Kd0%$W({0n$9iY9Hbzz0sa5_*gk`yhAnlBReeqgLOv#e@b!d zE?+dCkm-xxUe8CGMQFE(S%q+O-n_Fh{T}{)#LF{{cFA3|l!SA=N0Ei>^xaGqqa(d1 zf`pXzKdc0VlS(py#n+IlNCH-v!Fy;13?UyJkR!V9zDBQ{*q(?g7`3=%F|;(3?UchT z7NJA;;g4+7z#>#s7rYVkS;PXb(CoVvjmU`A9>2ELj3%jub3Z=9+i6!q-GBVA#QySH z8#%S^fRBXBjL3)v|2TrAH{~-oC;5As45G1UiUWI83`ZE#*cmb=HTdt^-^~lZ)#C&R zb{=aSw_4-iMMW4#-{?3RoPQj9!5Zvw^x`;}Fc}?pG)?*9{CT?W_}jO2$BXbt@1+=W7D%l&fYF z_OA-aKbS;)*I?Z175a6LTBR8kh0=X$y?$1|&a3shOusJX>sa#Md)%=Uys@{V@b)h( zpHS9?&fqwYuihO6xkn|w&A{7*XT43#6MPQ-AnUJsU>a%yE}ajQY$;P-K<@8kxLR;dJG6 z!EGgY$metjk9ug<1#I1IV;+- zJ$?Q)_M~yNZmX&fc`u^#)(6dU4y|u~VA&qCHHrRh=GwRAq)gSxW+ zIBp*|Ovm<-(?3O0BaJ);m4vCC$#f+$>B$GglkZz5VXb+#i4%7cAa&FcmbML+*PwG$ z1P3d92_|+}!ykhmH3eQ*+KJ21pq+ipD8PXiV5Qbq z5&8cT9Jw}#6S$$7nOKWVR9lcKP{pxceB`p1kDbo(QCIa!1~4>JI08TRIY&)d z_WYQ4j*qhX`LX!ykDpfJ9mmwlQ(eK|{9pWb;R$_80cwa9?)eK1cm|arOC| z|4Znix}r>8f_SUNImIV5Hc|hrn9INTAH6}BSV%MiUqF~s7w+PoE)-v}1ux8Jp`of{ zI6fkaAc!X(|HZc47tSVL4Tk+s*56M^G(|b=e(i}-&CB=JoMp#FysNfyKvH_QiqQ@Q zm_g847dDJYx>Gny$Ay`9(hA=<4v%0 z!x9Wz6UK<#y6X2=tpGZRWhxK3iW2IlqCU+D>P8ztW+oy4;q03M9}Z_7xtjMHr+#qQ z3BY+4>eSuzQx$Zgg}O;BkIAw7XF-(OGoVgDMvu_{yKfp4< zB9i7iaQr?ra;>Yf;3ik)$kDD!?-+0zm+@4=&At{4?*94@0uWXz?ExTFGNKlG7*AKB z-Yu@OnKvc*3nHoW9kEAbwU{ZZyPN8{Q(71*E<NU=#y7Qo5~HU#wwn5kDfI3Wf>= zhO-}>34#EAh1!qYCDd*NZbLmT7}VK$yBtTW#r>g`g68|781+;CSkVK|sBb2M7J~)g zLKr>|mdI#**FszL-i(n3&eZXF*p4P(!N2Sdnoc;8)MgW^>B-Q7C)cQehuAAtU z3P_RjCsaq#51!_&rZuY9x`R~ia5a!~_fBV$IZ!@3*Sw<1d-%&-slJx#`DcllZ9t<@ z;XxVmY8Fhi77BlmQ=aZP!!SBK04aivKx%b2sZVQZ8j5u|At$5;hDP!1r~Yln2C1^5KX)(Eo#uCq774j|AT!!_#+KWH=2R#$xsA43jY}tMA`oR>7jfDb1%*!aA*}Z_>GCyoBr30v&;SMrAc>`R;c?ZUI5@ ze9R)ez@UN}Jmt7k6Y|A!B&Kg_4sd|r7M$3rU=AS7vQ4d0I@4d)WcvbS7B1nt(3aZ% z6xi1qK}-dAX7e-r7WlAWVF-6F-YWokLg^hOmEtyyO(AD&f*cRK8!h`1uCte2!t~(L zwkJ})R(B%LFIOV$Gm=047T8zS4NvP>f_MQ^+dI@%waTCBhw|;uU%q~=@`u6h)gb`K zScP-6zo~!Xc)H$%@=MQK9*FqC&%i^Z4mH#95LB~W0Dsw&)Gc6zp_+~iJvhjm zyKFtS?zfxq^gJv)b|wwnN9lHKfOC0=>*#r*3gEpd15r_>!y#e-W zl^?9?;BdhgShn*_$`Th{`Rf%N?Fuom#QEQtisUW%P?BpLqeBr?7MG=Cp<7N1ZOGkFiq1@O~&HsHyev5--KhRdETIclXQv4 zQRNLD#IMyJ2k-=CCRn$F%HwHsAUjwC7=diwpaL}q*UVIGC`O)$f>oYy-MW%-2_eQf z3b@ysvlmxum(N_6cH`Y89obTIfrL@r8(pnIiw2E99w}FfeUVoKptC#We?^h*ureX8Oeh8 z2+&$xk-{IAc5oUyAzT}^^&NV$ z)6*e%Eyph`f`eKD#wshrQ6x1hj730&2Hl`Lo!pNk-(Gq+qn@*R*eyLI#7UvGML&_z z^`YfG^L3e19|G&-)HZUEquIE#bmlZXqt3n25zO0+5u|VgH|r7bw6{?~XP?RF1dIvu zqF+*sGI^H{<|GrX43nOFsMa@GF+~~p#*GrX(TY*$6A^<4PGPQo1uR^36$A=x9r-a8 zcBejAM&`G86YcW_Jeb7b_2I^_Uyeku$0oM}8mqs`6CRPB#B>=s2i!*CdYJifUBmiF zqe90XcbAcfzQRRI!FBMG&9{y>VnRzBdist^LxM7pie3vUv<*l*%W#39Gn^zdDkh;I z2BW9uJXyHT#ZDM?n=n&oK}WXqiBn)|FDh#Zkm#O{ypAXS3Pqlm5$qyyR3OzuO(Ym& zc;x3|dCe5FD`P<)*P<%uEAxBIZs(Ae_>yLSp-n#Qd}ya^nMJ01^u7f7 zGir|<>JGhJ$q55$0!#2i99fUbE8IX*otJ`l;NbihyG0|pv%&I?fz6^1r}WW>H)b?L zD)+P9N&0*!K=s{;ivwOl@ffW1=OH2(ocBs%3h6{vL*$rsi^vLCmq<^3;h$;8^nd62 zz(JzL5uU)Wx=DX4FlefkxCGsfc9xU=`ffTHpQC4!<5o=z*1;fh-%bznV8PG z_Evkx{0Dc;q9CPAXv&OwHF-=_UEc>=Y^7E=F4#Q47}iRKZtCr zsNhwp)CF3dc}Qw`v9Mfr#z%i=$U$D|-nOKVM1551^Qbk5n@~&6#mV*11-Qx-Og|ym z9F$Vh?vTq!dvq=^aL5?vjD(y?hulWzHHVBbtMH@icVPAz2sUsVbP;b?4SAmpWXM)r zm6&Z{aBLD1Yloekwx=dV+Hx9gv)4;#)Owyrzj4}xXs3LUMvTqLi1KgS;3 zkQ^tr^@L5@Q~hWeCWZfVBfN(Mbg40_>X66iyxbVI+9I8?OF&djg{WkO`CCRNOklBu zx434R=^lawRd5Pd5fPsjGF6#KP`;bJp?AbK&l3~j+&(ZR0j5U(JOQ@!C_hjFIE%U0 znj|9Zik`p{Ppc7q@J0SB2fhPv*M{Nre#V z&<20t4a~*hPQtgOO~1i!Er51MUu6=YvH&$qt?0$4>_X*&aj-v9IYC52_VMpY#5JmF zfbdR#uL#KLvw46)6psjgs1C5HSc(S|Mb3=&G6h9>zN;mv52`59%f-2ga=;_SJhFnCa3hNAXA3E4rkgJmd$Jx3Zb0w3TBap*%4 zrEUadT;c3V6GXvHA4b-a`X$&s=cr2kb%cEmCO%QOds!)Cb5mArENfW z0Ey;mJd;NP!e!sd+^f(~OB#EZ-z>E?^nbxR(9~B>K zWos%h6;O6SYsgI`v)6I6%${X-`ViOB0F6fA01rVYu3Ug2OiTM5g->y?@p=y06!`-i zcy{C4X*UydYEN9bBCS4ucB?d*J?@i~F6MN6*0{TuzhYpSAfO3Hb$2QxpQ< zC*K(UrEI3nFSoKDLWC##c=DgZJ_?Bjn_Dtj4wyzJ|AK2=2MSvLl+87Uuc!Qjd6lT9 ze?;H^yaw+J@culkqv6eD9he*89iMC_@7S%F1)r39WduIwPdY@I$LqkQ+6}8ma2a+U zZm!owdm6q9J#8(;2*5vZD_oNAMmF``VF@ZLqyMdv0tGK4q|w3%=$ruq(>$T~JCxyz zJL>>0m@5qa<~9azhQ?w%RsgcYE8{VGjHv#Mz+W{5M+{`DI>}ZnM&EbIB8$+w*&Hu< zAdky_?YDZ_KUHWg`=he#MG4Ehe&5+HS?pKA_GrM=Y4@a+>@$CeQc0ts7L~lC8)8Qk zINlqq1r9`lCIgVL^CsOh*5JfV#OX;bRGdP6$g#E5AL1r(Gh2)r8Pkl46I^rQR5dDo z4Of6(WDT#MVTqX?QP2Dcz2Y^_52@lS=*R&s}DPcClU+UDC)g(iqHBr8mGzZhCe{DrW%~#y0T^m&v z_4vA=b1=yB5>M&HAe_>+AezWkf|v2V6Y;{Vni?tef5}M9|A-WTV8j1dGHGNyF#?9^ zj5H&+PE=`Gno;`!VJDCR$v7-g*ldcL0Q6)0Nm8wF&zhzQqv8MbakP54O*SbTa)4W)lWq6B0lw1eK!LtlFd9o2MF@c96kDkzb9Sl*LHKR|)l#=Ia2Y%@IL3fa@&KXOxH@RXU%PCzak(d}F=Be^83 zVIa{L@?GdgnL7XYye{Ei-IL!>e#fM`{h6>xJq^jn77Eb-$!4ySP4Go ze^8ta(A9M^+yWCl*v=5`&e8GpwmrLc{25NiIxC}Xwz9kNM_>JG1-fa%ZmOVV*|BG+ zwPgeu9pcU?YKAvxJNU?c=pQuHJpvWkwsHH0s!tJ;5+`Q1j5dGSQULa{j`P9{tM~WG zCh>%}on^mq3m7hZ6S1z%C$0zM)t0qmUumZP*#L{F(?KX4uUbvYKd)tt_WoKqn4|H> za=(|>GT^`wp*#n`-VwI9*TcAGL1yBH=&R6jpeRzDu(QhTSa9HQ?-^Vz*{@*3hTmgSE4ua%f{uzk zvLzuCG(;iTy=^5X;#5Ub85fg%BdXA#L67zI@ue?}D~%K+aW`N!$JARLx=~xI8mtN! z?2E3bx`F~Rm9@J3vENVh1G{kR=ExxPllY zLTdtvbVCObL~x0sDDH~T&7v&9Buaa2Z`&?$ zV;}nco>TXBcOo;t=lSc+2deAVUZ+l-I(6#Qsr1%A{t2H7Zv}H&9+!2y3**JYK-^E0 zTDdzm~r+RZ6au-_v#gF7j~ipk|68j3T^Je9 zfIlNwc&4_y1vmYedfR7J3G5vGL=8J!0i74rtmqb}f1foAIDU6KlVua+L25YfqNc_(OP zXnK^PM#uA3G*u49CuK-IVZ;}eTJx4u@TX@A%Uoti;BD^;clVP$?i51;2PK|HsWHVc zi_qVGDc~^7a^aw3strf3VvjmYXjiheYJB*rSAoM~R_V%;s$>gabuV(`<8m=i+zVIv z!rMyvn9Q#d;IZeP_M-^u7X67YUv+QJ=$Z>)VuksWKm?xh{mIOK)(R1%%Kk~17_>$% zqEKVoTVAd2?-W@|k=%**)r>b)pS#Efrwurfl0i($r#n38OHA(g5hS!fgL~G(TS+#v z8Sf)&R^1FIttkA(mHiZLR^*m%8FJoO?2vP@Fy?H{AD}UE`p|4=E?oN4Qp{;MDCRv# z5xmNo0?TE71C~nQ=c^tf0~#wFdyY^+1BKF3hmDupi+|Wc&YO**+iamHY=@i5BT*r( zlnDO*ce<;()$B+04^ME&Xu}An?(G!v$GQPY;XIlOjj!YQY2bzueR&3G-zgad8cpP& zN^}RqF{-wZuljiLTBoq88WcHqn1RLPjECsm_^Kl^GQfRU zNW-M4`B>7%yyf-jp^XkV=vMO;aq;VzF!tb{&K#Z0morBnktL+NJ6=14r5!D4+qr2^ zPN%(J(*AtCGq$fv+MW_CZ`J2$GFR5EEdG6x-~ebz%idnEEel$5-lU+6m&8RUPVug0 zk)#ry`ZDsko29ojYvCryE|cOHDrZ-G%hQlXHCi~k*qKjvY33$^+^TuYJmK@q7#5x~ zP7Cm&Uuu;v1!qokb54?+!r8bNCBS?!V@*9*VZ9|S*>6MTWSnpObW`xW)kcN2++ErpsPlO>{R-ct;o9Mb@rrEjJO?IT+DJbJnn z1}u+|BL2Ki8h-<8u@!krgod^D+-8-@AvC>}y~A0iw_h%ig?DqQRrUbsL#I2inkt25 z_Bc0!6``EDBQty3h0FJGJ-mo{4>he*T|HiIqpSh6(QRQh52iF1#fcop^6vd}2EE{N z9U6gb#?mJqryi~+9x_IpcvP^rO`^!hR=T~jZN%;)lc%N<5XhhG7S4H*ZR^moW%Et~ zZ2i{?*rdn*kTv~0hDNcjx74NEPr;{|R2sijhS@4x#_&{96jkb|)LaG5#@VVE{xp4l zx$yf%QlsT9bUMK%Q;t!l`udkGhC5$IEGBeeJGyZXMRyHn)1ng>x|DD=E4(ru-BLjl zpyu|A*Eo#F=l7?fQ`48_TNsap>!jKY-h(oyjLhIUI=^Xnj;%%x78#UyE|cfDn)S{e zUYx;mJXqZaJgpCW#x-uPU?=N77<6)ydl)omzsiAdh>%X4B=DnE_=mUA`&WF+-!Zb8?Kg} zMXj&qEr!WmbYl~iQdQ?S3_lnXgR!7w#Zq%#`-l=D4Q0F+2aYWfEuF|);VG93 zt*REGnVBu#x9iO0GqT_bZZFT3f}&-Wl(JmT*5m~3+?r(+g7t>ub~CG%n(2H`T^UWh zr?x=u=nN6*<{hFY6|hVrs_F^?(b#NSS+bg7&+;sNHuiC+R@s<+WndLKCO*|mM&832 zrR1swlaQHtFZ6;`)=&qcC6ee5@Rw;YNkoycynlmxR4;WJ+o)sRtgR($lezD!t_Szh zMyVb@%t)NxB~*-3HQTESG(!Ei&1*Y4)?sk`4*CPT<^b~M+B6kA#2x;76tgqvYb$Pw zG3-oc8a(WOq=yq$z|-GO7nj~^263!p;&Ok+p}Vhos341VL-Q6X8=z9ulSxqCe^eNP7G&YKw6YN5_Fp6S&sqt%lfIMsL=srY8fv%UGCfpE+th0GbI_RQCq zNhk45u>}-y@f+H4yZ>N^jXgr*%w33&2N^cD3F9VA>;lFPd zp@xLMd~cdaRBs{J&RZg|D_a5j$@L>>J72HgR`%GUGG3{ew_>$$M=D$#xWUdp+lX2% z?{%34-9E;{e09QVXHzzUz9*!RZC|An)5Q+^1x_qO9^c; z!i_%!#+Ik}P|`!PHHw(wKUw+uiSE z(q>izrame-qL_Nu9ZfLxN0gccE1r-{7MfJ4%T7FN(Mub*CzSOSmaeoFxeh}Uh`uf2 z$>?T;Cv0LHdH!f_Pp}fT;wj}11hUE(TjjS$%a_)diGCM505lJS$@L*idm4<51g)^o zLSC#x-ToAq9G86~D75Nym(D-<63fh(sg44IoM6WVof+W!G>xmO@bJr^np|wK%5H}# z&K%R4<0x4M%v@&VnyoYO2n-T6qve7wQ+@r! z+I#=96@1mkN3te|qQK~~5U8}!KSsfz3Dwq6E%Ol}c;--XWU^l2 zkn`ecnQY9s7nNySHbtS4d5$b|1;v+1AW$H-L~J_RT`z}!Fg?D!OdD{?F_}GX=k%DZ z1SX?3r)6^H!VotjlnRH#b}JlspjSMptF`fcnDb%G+G<;eIC7GXj9dK7CJ3E>h(Tx; z^kk^zjOGZvzU;BA@}eES*x9mH#k^f!b;(GUuo|N-g;niD)+X|n@nel4egJ!M8REvM zYMHMXCCjPYB2aoN@)cQ`j($l6)ks(}1l1xQJ!7_uZXd%|D5End6?DzB)cy`IcMl$2 zAu_k}wvqWPZRY@CEsSJxTcH`$5B{*MsW|mvlU^P)5bpCiNsSKtqnRhJ2bKTLavM2- zM%t%Ji;R5n)>KUGGsG0QF-E>sH=;eN>-(VG=^73uzbr|WvhjIJ`RtNZ`A4T>CQJFX zZj5vOd;&nY^cAyc{C1))8sQcy_*{RrHrXC?r2@XAz2st0E9QM^gmX7!l^vnmlQrUlgHkW%IJ~)v~yb>^G-~~ES4f0 zX_P_|tELt4=@Y(BpMPkPJyDz&o)|^N?&J(wt$B(!R`}#|Os8mlVgilyrb;}G5)&L@ zadBn6-T7Tqt*UsHGnYv||482V$RAj%msIT61QOA@l_0e2H^W{H4q9A$Ej*ifZl6a2 zjnxQ|2MdL@W&xn}1=L#+U-V#O6aCHR@tgi1@mEa$Z~1lAt%(0xDTx#xo0k8ow7eqz z&x6KSE|`|pg}X1b@;MT??>%L<-zop@JN|q5GY%S`QT{j*ELMCLTCmR=xw~pxR-me3 ze;_(?H)PyKc-tti*r&V*f$B%v5LnOpkpXbaSYgev`<)B!){n@Qm_Y2NA@(WesAiIE z<;48LB#m(lSxlBtF+DNa3C%QQF_y@trY9u1nx2p-EzMj&r8LZ4n5SNjr?e~F(h8g< zh{wXF@v3~Hr~7RZNB*f1#!AhBfB)(V8T6#-4>o)j(@QjVFfH#QQuLGL#+urSaMs#^ zwQHv?*0;D!5_($fwj$h;Sj}QI_$&BK&A0Uavg-T%$^`*-j|@QNf}lsO>Hj?4ow)50 z*(p)onhHAnNl<*&g|22Bt!|x2Tt~WnEGm7@Bh@1^Je&Em&K*FDrs}t*euqEBDfJUTIRsGg1b(sbq=Yh~>>b z0W80X%1V@b{&#S2BMK}!Q}g6KGIy$Gn1&!evpEYx$!_%>B zi77aQ2}65}(gg*}Xk8xv93C_jJO0NVS)N4KVDx>F=B#|A5e{&VxgW!(oFr%fl=zm^ zm)ut7kxiPMQw+ma>J>x{YX{=-i_jtq+1WI_@$EXSYN&;ZBe#kIK|2zFYFxo@u>vAC zZ=;mCsI<>0F3p$r87&R$BuR22IYBGbXHqa4qNB+yjB^YgxPinN6hpeVoOZZ&-IeJA@iSHqFY)bp|V@JavRPAm# zi^penXU)1^UUxx~bcuImNh_=YUf`|O-?_DDetYjhoAfn7`Ki7Wyq{KhJu|v$0g1!F zg{I}rTp@$NZtLU+rE>eq@y`D9X1?T|G;kPYJd9@2<$2Y$k@GQV+GhX_))wbWCX{&O zAlLo@B2J^{Oyj}3+sc3i&pN`NW2^*q&v`98#=;xaBy^oiqz0{!Tu#gp`XDQHr^ z4B3^vfxGf6vSeJUsC+AMTWMd0%olw4KwBb!5!h)<#4>B2K$ei2#B(Wq3L!i@lYf#% z(>zoUqHED1@{OaX(Gj^4)Sh{sQuW1XdRtlkvtG;T%WTvo;mJM{w#~ z!kI5j2IXl=R3)YArU5M?BSUa!q6GL7rvO+46A~a}#-quMY|?%osVB42hhHuOH0o#g zc-g~0lOEB;BZ8Ey-37WPrz?rSQP3#G%6v{#HrGFb3)ZXAIX@2u3}(N1^S`qWw%>f& zC`J{b_X2a&l^<9m*>8Swr3-<^KRc|^+Emc~Wpw_634rwvPYzXVlXYhDR=L!|6A+w_ z>Aqutgg#ko_8O65`yw&}kH~6XXCB(Ue-+EMB);MVQ>*X|#>C);2W6iO$txev82nG5 zz7}L=9-NcU+hPS=FX;b4z!&_P87ypy@64@~%I&+YY@iv2QQS|Blm&|3jzA;k>wxq< z4dPONMruTQlTSv(j{wyf5xEm~p?-$P!^?z=xokd8#O6iF@t{bHyxIh;KgLe35!4K} zoS7TQ+9U=c%|Jyzv%B|H&MCg72_HmB*;2a_VtKWSEb*1X8>RH4@V5dQ>J-9ao6;-DxD z7qv5XA2Lx=R!)u|!9ouXt&SLl$Qv(OpRCC4=%(w!ib4(W|& zF{D+_kd|BXbx1LRJpbBY-M1~uTXHwQs7{A<%w{vJo6BPz9xAi?JXBKO>LGzVMr-De z#+f+^ln@SgV-pT{(G!T(qJ19H+`&z}(3awEMR{{h_r_$Rt+KQSzE_qu{^d!46M%2+Rt<_2U5_} zy5Z5mY`4l*DLUc+rl{nX@q8^r%mLeAuL5m(ETF|RMR9ed(F zxa*_INzFxL2h-Q^-$ zJPBXwzEh??YrSi7q|j!F8A@Z~0+S=6()tBD>3^8?qF&qWQWrRb?{zSvZ7OIubI*PR zK)IM&?_rmxbG0$&iz$*F6e}!$OlnmVP#epcsTh&O#zxJDa|*zUZq)RgCLKc3 z(VCQ2{Z$e^PNMMPG*0e2{r;G2Z6#3&i4r%<10e0;%GnFVu&CP#w;*6~f#sZhZdBX% z4ma?*5QwH%>lA!+{^+bcK_2yi_i?WVg3CGm`(@b2O=wG^vc1v`jU3m{7yx zS@4bKHwyE+?C!gN0-lj>l{YcNdXxO4)P2_LZn1(dZ*pZ zt4sXs&p`EbviO@N->2ol&FIMusVXd~qMcTuV#$fAn8o0|-AErCNovg#oKU&;YnqkU zE0t@gl=o^nSDRE!v6Qzg9aH#U%KN}vMrG_0ca!U?bgq|EF^xhA$EIWc^>{}6gx?=O zR$G}8ya@H0oyvX}1uONsEEV(@De*ukjiWC0YRXw%!0A8+XZ4}OS#b$N#?j@h?$yum z8NyjTo55K<+Jv*RuSYe40-$%{D9oh_qK>qq1wRm4D^##&T-bVt<#JL)wuWNf*zs*p z1O&xL=c|wfhNBJJ*O>&fr@aR@5##_3{WH{vj&4EvD!Fj^_IPK(_4N8L_m_YfXo!r# zTdvn#W&T`#7jW4zTHul>ah@YfO@LN%S#W-C%LRZpr&nK{2eR2VN}=Y;@F6rt7v8K< zkaktO%-j$R+@e}+Oa^YYT==~qU@$dYb@-MI3Hpi;H6Y1 z@t5|(<8(ug9yOT}P|1!b3E`LL=cQ5Uz1#F_WbbvfZmZ*Jn;1cJ8!Tj1D2UvG2?z<0 z%s&45oW_A^dj6aG{|h~T9+gO;=QBKL>(m;w#;H-> zzxZEJ|Hw;Cg#u@j8;tQ)KSpn%)oHoFs8}c6=gGC3r{V3@!Y47R&VXG=(gP zKm&8yG%4|FN=!Uu-^JEA-V*rQ4MAP=G43FJ=bg+7X@DT#cmNcikAOlttJ8z~N1cCQ zs?EuXha@$&-J)TlV%={%2Ha1!jNeD{G!1XM|HmLf5ISis(0$xESZ;GcXC`KXVEHhB z&F=3*`o(>(hg6&jVmXHC?S&7@U6gfl0+?~*-QiO>Bj+ak4K%vOiAke(6S)t{ab$S9i1Djr6+TW3V? zVAY$h;3O>FnYVF3844b?0L0~_e_D#f=bRy@>4 zDT=RJt_KHOUX%}Cl^-m+s6bxzy{JG2Bb?1vJU&z6(-%c0XbM60Gi*4`RZ=;-)tm8Y z)Kq?7SE+UZ-|7Xyc=15xG@g?!#H}^J)me_5g&gT1O&TgN6Re2Mp%Zvf3x}qrb-hB+N&BKQ`qX3W-mw+?RaIdQ!=AwQ%Ta!Py8>fc);qMG^L z4~DwkOFCIGW8M+UbqyfdXJ%*jpmPU_`=~RBGjGoHs+Zks>9xV)f|padI7xlbm`R-fhvq%{Ml2% zcMR~ss8+-;X|EsI0$t+nCXW69m+E@ozrpA^p=C)mU$bB2 zV8wprPnl;bA3&gF)Fd*N_uwtkh}bklAW&i$ny1jgkY(;kp<~w55`o|vx|%PC5$~~| zW?|x?({wcIrSzVAON;3x%0vUm5=@qHO0jA&Ui4ptDTzLK1s_uvQ;IBP)*xXc6z*;4BuU61;pu4$5&!p|o$8on%o3MfEM2uh(ib;w!c8?{lnXt&cal!e3 z<-hG-a4c3RBER^f1o>XBxrdVbdKx_*zo*jUiA*;=grWI~_tDLSS%)l#%oE5gR~mn} z!B>Hcv3tuR1$4Bl<!iR;Q|HOI*`75(Pr0jFffoAZDThmiM36o3Ym$IM=n|K|$n~3)cyLWQd0WL`MvB zOHaqmV7^F~^b)yTcdo}y{dcSl$}rl~ub1m9jI}&ODGbyC0u1Qa5h5#fY~C_e#(cH2 zCfQ>jXOeXG)jUkd!ge)Mst#}kXARLi*A)0_L~0SRf`Pc$V^9$Lue?VAe>__#5juRwEO_ZO!!tHs zD@SSHgxl#NQ~hU3QB+6859-EwsGJz3&qws20or-WQM$U=@3SC)TN-a)Zo(K{Rt#qx%bE74s{r$u8P zsklEP=bCJMGcZe(H`o-)To>eJ9EaVd$db=}F+r9%$Pyi9kY(-FiY&gG_XWrw;n?qO zcF4w6GUu5wrW`0B`>u}HI1{Xd$oiTKsDM%Rm>G3~4)DBXz(Z=bKcsLbUn}3u@*?ohmW4WMbF<(_xzo7&);==PDgVoaj16Jck8|6yRGbRi)wBqkOH2J z)=V-e;mUV~y`w0t@hp0%x?QpZZ>i)&$hEGFlTd$zI2L z(Y#e9b>C)}w5_M6)zO+E#PC*Tz25_wdPN-Hh&tcP8w1fLlTD^KqBX;euQpm!Y7$dMWd)>C|mReb9)^0Sq$qe~v8I$s`hiPg0_0`_R zd~+wJ9z}C}MRhYdlGK5>AEsO-h8Q3BlqBm*hpv(&)4$|+4m8=v@#9W~V0Pr#K+M}& zu*BkDF=lO&RkOz;(!PgR0P=c+H^l!uBug!SrCR@@v>1-qFC2pDo=%D0O7*n6m9tre zd5J(PwoCuzti%@yL5um1qF@#(ol^iq8V72gCgur*JQfKkmdJ3{ZO?AGWD=f`wIrXP z5&}wFE|KvKSq~Oy$k&8CD1#fa6jwqmW7&LhfRRmAYY;%f?^`h$;8IJ6cVKPuMH%=K z-u^uX?}`4mz657RDt@fqdorUo5Otzv1n_lKNaHJT+>t$&Gyk=r)K|y(o|UrH(l;b^>0wojmL59wNn`f2U}htno$lf&hb=X#pQ5- zb}zSxtQTdD8}fhYoqL6x{2o*OLM*1P`C3hO)QqA7@rMwqyVb_>K1S{rUm&oHdCxD> z2C|U9wUx&jo+?5PdaT@dJ&MTIjw)=du$C-{ewf^zS6btM3}2l>Qut`6Tyn}O#vQYGotJ19LTcRO-2ub&WICiP${z^4b4CiRUF*lZasw+K^H)*kYI!!n9%7_nozZmImbn06i3D2|M#P2I zmL6*T!W#EI|JU&UbN;*M-|4e9_rbXOGMj1{m%@MF>9l?ut%o%g!TSqn`3f4`B}p*z zO%H78!R>9_9vrDnuatPV>9l$`Wl>~Bmo}b6Prg_2y?TxGVmfjsWO}6p{*yo>FZ`iG z<%Nk8xD9PP$;sY>?B=-R9g{!=n;A*~rq3MZVP<^lV(BvmI+D-ue;xnRTi#~!MkXw) zD96TXFNu~*Q_pmJ?~L24Q%uhnNi;ev=1n4$vg~c!l*X{pBN%|d@QGc=Z|%d|k(9AU zUWq};c^mEZ^(tXv$Afu>_zsb;%9|&FA0cxhY20pi>MK&E@Q~&mJDABr0Ig!oOwGKi zdFwo=rD+>0Hl}aC4Wo^0IeAFv>Rfg(t7Y936Ke4ivtM}X46|Rr5O}gygiUf%|DFB& zB7%(uTy|WpQm9}lEW)Bt9|RWu_FPm@Vj9#dlD{MSbYxRlxpOaP>ctItpqC7Xk^xB& zsMPiX##nGES7NAy3p(8HV7>|IYv1PwEPB+7lq;hoc~GEc8?2vzlM@-h%;iq|#|^UM zKInzzHIf)x;kO$a!(>rA5)CxPihuVskult8H}%- z!8kDh)Frc&Bxmf_$bx8{v07cVCoAGxUJ#L|$av-brB(%r^W?$%6P6cWA~GJk zZ*_5k7cQCxzSOE$;%HJI(KLcrgSEt$TTM^J5FMR?OHJ2(DXkQdkjXL8ghK!e%JhR6lFd0SJC)83a@++@5m&l4G|8)UrYAkj9o%;o@+jvNL`2o2*3 z!UmhOLTR9xSOg0TJ- zc8od*QhFlHNgnHENBHI4EsJ57?ZrpLm451CU~snCc^YqGI>Ik3ukdFdFR1uBbXSSh z0fMB`3(^?Z;WLAAUlS#3hGW?{1Ml3GV|uZJcm12J9IxG+!n?!bvi&cSXN^2@WgO&m zVwNl)pWP}v@@KE8_zHOf2FOx2l);y%h}Idf_4eFDSuEwbfLs*3)8?_PvX5BRP6BFY z3MmbWU@_*ONvRo&(qu{vMq6{ejXAWWt~7ROusO9cHhweD17+_GMcR@0ETs>V*55S1 zR1QE^Q+w+s11(v1WqyhbD+5&S6dif`L8s{Ag(*;F$2U`iPSFKAMZe+mKTOeQiK_IU zRM4KcaL+^6xj#OXcd7}dh?sxQEjnurAALbz-Qk2$u1rzwz{fHTgPHAsa8u6vF zEZ8Eqr-{TEl;{lyk{gV5yCvA4$IO``tY6zzcg!v~Ng~~ZK5wL)#LzT%DEbyWcHPQq ziNqkB$MMw9iK8>4OOZpg6qHSDvd1IU5dBJLQ400{HBh&&g(||a;EA49M|3NIy3{mP zS{&V!*w}P_!hg<|>xj`$^%anL4Fg{=O>U>5oToDp$KN1(&JrG>pe4a>kQ5&#LQ zc*uejUUi7GUqg7@st*=zvAejGTci!#FIF6@gwHYL*jK#+Jq`%5ueuSB+_SCpZ|n|+ zVLDv{A}hFM^#&ngyfF=v#o$}pYQZhOa0ov#!f6+4&|4Q)Me7Q_S4-)qD*_NpqRpfLO|@ z0#tb=_DP6}Z^CiTkD4Jlw;a%Z5fq=<$yakabTEE6{Y!U<=j^L%XLpjxo%ON9xSd0B zgh%V^eri$mZ5x=d*62|LM1f<*0J&w0ka0OO#?qhBh2Zw&TXyH2481J@SX+JH&>?uCZl|t98 z2Iv~T#0g(TIOi9$DJ4)}q6+Z*=8}rrCME1X<(D>kJR@Qq`c!>&S~Mn?R7;~@)y2J4 zU!5L}@qi36knh`$^n^2E$b8k^l^;(HY&g3#YFBM* z5k+NNK?(Uq+ZOtwV15XXV6r|=b6>r{q^wrpbM2?PL<$P|YI5nQil?{WkyxL^#%8y$ zk2;bp9HzzkzR<1>INzVul0|4>t?#Awm3wlqQhT_APbG^&7lTeJqwBPPdnD@vCn_pKs(lVb2eO| z$o=mIw~RSeUyZyT7k^!lE$01Zo+;^2^8U3F28B_8q-~zNSB#k5Pj(@sbQ36GzDIK2 zY;vw1;|iVLAfJ88(F!w7rlw!S@@|@7Y4|wFK0?B))^-S1t>YD_FNHiD(bd@<-%6Z} zxK%7q2ksw_MV46KJR0GvZX;2`6txD424vlo(WHJP zaj%>4PYKH@GL~4FsUPXuzn3K3g;Yacz) zIVuG7N{6h-Qe_3X-foW??})~all)>kgGu3ewFeHD((EoogU>yDHMbJ7aNdfsqg%G} z)!Z*N=+tNSFW}IEgNq3qTx`z{w3RcAcYH5JII-Bl=X-%z=p+_b4Aw;73k+NzDEh^B z$6q9WEH9sKCMGeCkImL`{Bo{#n?d~bNP1>@Umuq~7Oj?bGtNzNC5|VJ(_Kj+$aQNw zMJ_?l+Xt}^LE$!UIVDkU$ducUdXQsK?w=`FErfrlN>@XGb;$+sq-D#(zV)qI z@-SH0GTqaZE#uR~`l>m?fbG6|Rt^-a<_?;--g_Y*SrCh1z`{O~R{&x6)_VhzM3*IF zEUmDyCrTa=_uSu%;7<-l*J$J1nFx$8pQFUbSMvff@eeiH|Km&@wdZcqQIi`{wf3pK z3?Rc}g=54TSM&$wnU zc9)akiNrn?6l|fYUtakc^d|OqTa@rAz6n*KHeU^P>tTu99X}}BHlu6RqEu>MK1N2` zUmHui?l3*i4 z0uxFZk=i8L16qn`b)Af1hU~no=9>k9glM*}?B%W@$4Ut|6tH5etbko|YNJE>yI|h! zdV#r+Md2+g#pu@cc!=#Hc_WXwd8G|+NE>2>i+amEFeX1*eIWzRGigoQA_#I9T)yDJ zZRxYE_)QcI%frZ6jSaW;WQata;8*2ucXEc(hk>0=n7fzxs1g$UtLxNTN3nGuoR&i*);>r->&$mqc%EI5QZb)D%z*>!8{=g2k$^t+tl9LCdajiMNBg_*) zh~*#Pl+q4CLrL;e5a9~QVml434VRX@F8exRy*;C>VFe6Mq#)7H-49#ducm=^RqKYZ zS8?LQ>5_T`s`mAqiK?If$UoH5B17Kc?mu)sy7JXs9D#0>KGm1WJ$#_){R+l_6U~1i zIe_EirW(%&bE1G)QXW~K&l#Z5kR+*LjW*gjhp5PW(f0&I*V;YSD>EFPECfWJl7g79 z%@X9Uq8AX(x$?tgYx0Iww0j|7x5_?`dM}mET4%6b^j?g&(mx#66Xt1_?i=<)?oimi zSu6Lx+RdeYFVbdv#u0EKml3tz>my4R;*SEKETfTa?n!Bt|FY|ed95Q|T`5l0Cd^QL zZ}}(ETUeyY`V-k^zY)@2)wH3wdT$ZIc$yW}Rf?+G;)zyJz-gv{k!}I=odVXAt=?O3 z&;mAJchI&RVT$VG7BxtViY%!2W*xMcyQCPm9j#4fpPPB-Xr(*D>%HH1J6I zkaU3Jcl`krFK7vRlP-9K0^E)x18`4yj4-|4`=V2PT=bUHQv!P^G4FlTy^Q0HQdOj* z;GbP@j{YYTQ2}-|e_z=5lE0kP74eH&#WM;^%`fLHU$9q?!0XF?lkuS{VeG)(iL^$s z*9Lpps5#hMJ5tXLt^;#zdptx5k@Q7i?GA5QR1r$Z$>t495ORUQoPp(( zca^>uA+XbHK&R=a@XAHPhwaMOqwzdFjsHO^%4~$Re$M(i&&u+nO)g_{LUA_4eMjh9t=LiKiaiGKnsh=p`si5EhdUe)C>C z0LSj@xA_;W6v*?2YXh%J@A#_>4BRLo8)ydCr_X4RW_{CDn$-{g1#d}Yos(!2iPi*s zBQ^zAM;Dntl|SqVMmGlQY;Q2S0aFL90P>@ z5Vxpy?FiI;=M7xFhQL~tKFy-veaSG~O=Afvk0Mhz1_M~5(jH0EBdq_M61G$)Ov(ZW4fiB3)5z5G~;2vP4&{2Z06galH|n1Q=EHQ{Jf1Jzcx|UA;O3RP6gNS= ziAca4liuO+M(;T0J?0dh{^0y!bJ(QHMfi!%-P%~;5fX%a)!XNAH&xHs%#1JclvY^Y zR_P+K?92(+!gYe`8QU8XD0sgZk*;}jf;Zvwj-=$KAh&l<0^*K{a+uFRyXGzkk9{4R zR^h2F?>!j>Ew*=-&_no-D`AYfo~vBbpYaQ{dCu5t;g`Qm#!vQD7agL!*aL1f@9K4S zyBDB)YQZ8+?OgeWJ&~8ofJOdJ0VsDP(ng^1p_sXYv>du_nAzlvmlgJx>W1xn!lJxd`8~cUZ=3w~ zEz0vyUbuVmt*X5}W{TKgkzSDys`lm?bWW%Yq2u!0F26s^Io!PbP}bUSiMEel?GS-F zz69BMH`3mXw3`XANCbXRfPmG##}xwXEs+!6@SuNWU)}+@M!ne@%1miZi&smGh{ih= z%UE?!TuzoL^WF(v{q2z9Rl|CFeATy7UckagyTetCi5=H_lr^_^_NZuS@9aNJoin20 z-nlR#!-?(00i^tLxo2dqBp*;xU#6=%h(GN&8K;(*CBgn)C%3m3MZn+gho#rLAsNV8 zHSZ&V%~m+K0A^QTf!29e=HmED>zoJKvA@bb;Mb|bzO=4t$dYgD)FZ)KW?#t8h)$r{ z;oSnX*wWi~_eKtLkNp(;U@$mwI~`qytY!JAXsCBTX>ozmbze;ulRYkPg*yByyeq$;#t-t_ zH#VFz>mD=ZPFdKfepB#2N`XfXBhRJ7du1fh3qQ;S)(Zej6(d5qbmK@tHK46LNTc>7ZPC zo_s?lNrLTD_tUQeb_`rQwpfFBp;o4T#^Jg<9~C&UNTVM1**%H{_L0uax<+XSgW|-j z7!H(L^_9RVqL3-`8tr+%B$T)}x!>gSAMhQffWlp22k5^6^di3j`Yl8%M^S1IF50P$ zi$%7XM%;ILsu9~v8E(w6G~x{?G_#~ckn2mkh|CELo4YA0{$t*s$YJsxD|utx@BLXZ z+WM1nfGz@YihH}%lP)-}1yTjpfL6#1` zCCm*h(RoJcO4bcgdI{Fc(Woar5Jmi*f7_JdY4eDuX?k5#|kHt zh%(hg?b&ZZ4#4GUdYW6DZ7g-U*Oo7nsT>sNNp;L--%a_8on0-;)iN2FcGD`;k)%Hxhmr%PTNrxm4j_fE$n4Y%KYg&Uw-!am9{o5Blj z-J48sKM(_RTJC!LyXw8kdT+60l^o|YD@&sVr7Xrx;1OR6k#g==vRFebWG!Qc?|-8u z`RL5KBv=fWT0&6)tFRqEgzg))j|q|$9%=a-FVu*R5-Ye9gHzrKT)lY+SkRq3)pCMjiEYm^E8IP|%$nQ1Q?%_$_q`(z34l*>YXmkp$T)tgz-&G}WwJQuZacK=QUeU65;L^&a7KclFhcT%& zg}*FC-9}N-d|h*p!&VqI{U-CLDSxpV1OPo+8-V_i%NRwWCN9OF#Qa}e!=zm?(5zo8 zbKxZI*3=v5&lM|g!(d?%A#G*51F@RMpXg1pMWAT+^t?b(?e=CO1f(0 z+^ad-28NdJj3YPz~3*3F= zN-jWE`X81gkzVoyxO<_(@~_@>rx3=USY! zKXn(@KYMy!mEw`Z#0u96NOMSvsfpd>nm%uDG9CMj#Qrptf~>(rmZ3ACrX9?o{wG8P zll8$VW!b^1^&Nsm^>d$~$N+UXsqE)T!Z7yB*c7)dKo=@C`*>z zjpoTcaIC*=PV1y{6?<*Qd5PiYE$=CSg}LvmPB3fGp+Fru=3UdqrSz{zA8u;xn759j zlP|>Zw)3F^NqhXhACmS7fHdk|-m$$oVSSCt!FC@hJSg+ja(^li^=9!2nebIVAO%?6 z`^$MqW_FQgN`LQ@td_UG`yDmk9nE)m9-}yEF-PHx-Vwz>Z`29Ditu^(?E&xp1cjQ9 zSBM&Tez~NG`osLNhTzJd{kM%jB&{5c8(0@u`19;@PWA+@tQ#@h=LvZC&6O)9-a^eX z0#}L}Ses~PKf=~?rLGaGEzM0C`v0ca9sGY?1;Zh4Xr;L?7yo2F3l4gpr993ZdCW!H z@sDE89#?CL()(f=ZJ4N-zv4>p=+UL@cyKh!a!f1 zzSGu(gr?HxWP>Sx7SyS1+if1~(6+N5CQsFnBO`LFw}(_wa2!oeUD%VJ*T@T}cAzC& zm0g?4y6luY>AK46-7P)Bf%c?A;yq}9-9?he{4J%(caLpKft#I=4v6lv_aYomnT%d^ z7{Ej|rP6=GB+$uM(~|FK_s?L9l5Yp5FnXETHxi9eg&L7MMUW&L#izxIsmAxT6nSH;c z5TB&*lVZL1BobsL+S_*`Tri+9fFJNjezwY=C5e4C=K?5UZtJ~2oRfnNfN-Un{5kfiRC&GP?65-c?S`%Qx9O@jTP5D97|!DLNP zxJMFL{zv#p=DjW-_1>@e(RwZaIK1|o1)6P)_+K&pBgOx;@gIU;b2e@VO?>XD# zxBNG?hxtE)p4EG=!K>uL^2bbu3S)^R%Nz%D__?^!zl5l)$a$%aglzoe;1g8#J-bH~ z7-;N+ly9U3HvtA&WJUkjK7lqf9WDPn;_b>2`_N?l)}Bqa=%&=zis8{@rhS=AekBly zPFO0JD3Pp1Bg>-mxH;$ll+wVu+LHQ_!VbVoJ)>gEXvOQkYB7`$vaZ1NBizNmi7jD@ zgVqho4+WNnVkZ}~D*Tx;Mn_9u#{SYzSZ1=POiHkce?^M(1?n(E|8gfJ@C8h;@J;Ca zO%~5|CITAMf$W_N|4zEx@Wpb;dCvKCaNT$SAdQi2_N>GCB|R7BiV@qDH6)IO4so$f z#`XS;lmj=&OO`81&QTSc=duRW!bitKFL&S}25ql2K3Q859hp7UyRI$5yQ9mkYqf7R z0|6T{O><+8e7tlZiN_AWpTOeTyjrW`^)hQ#HcVG|a!K+%-=aMz3W6_ZXXgg`=j|ISO{xIlE`y3+nw=krUO+_4?%Oq@`xbsgXL4xw&G=?c z;=pMmp2V4MCK~cA0hRvQl+0a7fdw0Y2D2^5;gc&0e5UsU8)ZPF>)EHaLxYqyCK)+H z=>r*Tb|%B)QQ}bP&y_mN!20vwSs`GG1=;FQOdNd_T>v^dF^7?~&2;GSjSd({1IOFuRk^xsp(&DGRdgVfV^WkZOwfs=t;T*0l|0 zb2qi*4G^N4K9^aFTT3osZ5ELLhHkV~>fbHxXghT4(DnK$t8^|IJDnslMxq3}ijp=6BeKYVRBVedILs`U3I3Iq{` zSWw;aZ)l0wGgf%$S!mBc?N=t_gmM>QI+%dI1lR?#?9_X^Z zIe+NKtEoKswhhj!?LyfOaNr^XDl1T>zk~+R#~w2flEo=Hi7fwUlF`+ZNx=bUo5WB%?uFk+KrfStmx!EG zrVPX&l9nZTi|7RV^>kucpEW`ZY!p69UG!wXkZFSLUlqt0kf2nr{V)9jW+H*eBr1Xu z3SY6Q8HinI@2XrbgI!E9zEY&1727KP+vzIcy_s-2p2e2|&X@GQ(%&GlTx?}i?Ka-> ze=|zy9tt%~Z&`(vz`SQdh3q(!UIjZN*=Z<&d4hQRZy2Npq-fX5P5ET_5Ww}KXaJeE zgC9SA;!>HWopJGHtT`la1RVtJs?T>$+Zthx-sZrRQ4UagV}O?s1OC6Uah%R|Xz$9l z6sy|O=WC8vC59}^f8CW#9Bwbf?gVUA2hPc^(+0F`Dv(k7TvmmK#H*Z7n=k(ngnZ2f{-LQS`!r3N&?G&B|pi$ zD*34QF6T%7WSU;_v6-gnCCZUkPw`)wY==J9^&cmi(<8+p;3@nM@NGJOqv_7wl3?th-_rN9-AQ{i&u8p z1A6wA7KbaOVmbImUY;ttrxxA4m;i)V5>E7yQgUCXp!MZw9up}1o7I;F3Psckew|5xvQjpZh3 zrGFA7WJOw+T2u2AE#=Cjm{_&Kt*N85HEdVe#&YZWY&|8gbMBPoa;=`K2%Wk?&Y0{S z^n^LUG~wATy7s9PaJpIi=E1=IXrm#bsg5DApV)bj{q?mA$jUO7t9lwEEU`iZI}Ht;)Cn`Ucsm5}cZjsb_!Z*aPb+x8%{?CnpHH(c%(fR? z4Jr)WqyinOp7qzX=MZpm=&0OCdut3$7&FxIRM&w4i*&aXwd(g=uP5)*NY!^iwNRBT+PR?j*RZv*G`tLd6a;$ zIJYTAKOnWg20uRvMt|2{Od*4P9m%C7-AylY!7Hj(_@uZQ>CRvh)13tYy3y6W$aYT*{AGWp*b;Wqh6nuM^S zq0)aREo7y*kE{f2bPYAJ4T}*3) zQ(u{}`#MQm3Ln0n{2<3L2Xy>7rf$JZBkVAPa+KB`sZPXX z*qhE5wW+Z`V4Yr)JR8$e0uB*wn3?=yvD@*xX``%AWx=8^oud|{36=h_(K#<&c@Rz`qvW##zI5VlgHslGwI{IY7BxCQuvUaph!r&T^sI2 z*D;cFn%rej0{vZ6Y9v%LmkdzJb5T{bf770X3&~=Vmn6^072Or)#^A(sQ&Kjh5p%;o zHZMvu{fHE97rC-cE|hL8|55bBa9yn^Uvf)dcZkKX=dp~dfNUYX_0n4a$;*dSzk^Z$ z<2RQ7y5ALbCX!hUeEbJ`s^{NPaEPw96n0wfwM2R)MMg*H zGS{DOFsdpEAr;LU(U0E-eg}l2Q-lbqkN&aVJZ(ic0wL!93M&Tl{Gx4`+$cYdW=l24)MXnTgDH}&KBy#WkP&6nCV zIr8mlT3L)dimgEhzFhERX9xu|>36_t1JW@b6G6OC$J~JLS%lTG(z-x}zQOCzGo|hT z;FIJ;Z2zwdT5T{(1RvWF>a{Ikb*qDVMe-9TrguYvZvpEFp=w=1MN_gPzc9?kcuYxh z;sA*CSI!RdKk!rFC*YT{ep_r9Mkjy?ruOya)^UAABMb%QP#>B-H#=9T*$^Ge2Y{6z z9t1R)e7C&U@1f{4P-QJQ5izACRG3pogvIuLgc5i*3TNFh*zy7=W`CVsaj}Uo|Z>BvS%0n8t@%c3!^h<9Jj9nAH++ed#ko*afMwX-ul%y zX~VC+3+o1M;bO@8cq`AW5pj9<@-?`HWc(C-@)F4h@#va#rZr@e5@$d2YtVPh`>E`= zlHGTU9A~DUZ>)Vsu7X_PZO~tNzHt)&FZ6D_wuM|7$yu!7{Wfy<;{&<-u_o|}U=e>@ z6{(YuT5f^VaSNobWR)No*Bf%DcTr11E`9`~?*?KW+6If>oc>!m?^jeWBpsHDevo1U zEYu2hfrif9iPmeS`@tW)KEamFx$CRtMhW*$@VhXZOkFzLPZ&ThG~{ zUO$0CdjruffoKPQer7}>Ujye*(eB9G?9rr}V$6ei%Xy9@SCy9YGtjvSzmiGc9Q-M7 zfHj9NPvK9%YRTh1274Pr*04IRmDAS9;fax%2n-IKE?qdOyl58qtK0(1!QSL}LEr7{ zOhmb=4Yb#oZM2_6bWpO2Q9=+e7AG%IXXB`@GqIi#pM<+ z{ct3RY^aYjAHJD07;6bSAGW7aTjxUpLD_%6`EO>wB{=_%;QX(?^JwC6QEvy(-Yu*bUh^7of`gsodEgH1gI1gZ;Jo_@>M_2>8gwWSfedh z!N9zRjnQ$28tVHSDuM&%#Z)~eApIw z4KgZAU~+76ybsM`9mtIzf#(nWmQZ#OhmEkDFhfJdxCjI@ca+sFE_4|?VOZ7L%AUl#rTdb7+H~MFI zN!f;!BqtY_N3k-d+@)?zGRk-P9T|_k&hVeAV<9_q!LLya{xIlkGTfE=8L~k1pUH8I zhdgno;}Ni01e5E7MeC=35U_5{b>lM>b&{7CXWSpiq_=Pe2Yk6B^Es=irR-mQ*N^Ns z)wiH*Maa4yzU`u7hkg7Qy!2HMV@!qphNitH@RFgPp6_svmD*lbZTQDf(Z1=w1*6^i z$UE1{1MxgkS?#YSz6J0Afx54GwGm?UvAYntI`8lRTkT)isY~(|COItcH82WHAW2;u zv|4Lho~Jr3bZXFdYUlbaohoBeGv!#beg$IVbIYwW@`G7WTdX4Nu}A6qmk~rfI&-#C zo-=W36PJ(%{xrdct5qMFiNhF*^k^wP(Aj7Pq_eDtJ$0!Q4uyHxXy%~~2Ie7ord(qw zR)5)an0-bj=W7gsIIiG>=(hRa?w8GZ)$$)jZn)@KnM*PM`*u6$0ieju@Q*SgV&7gk zrC8yH5onMqSHPa)#dad(Eqq17NI{Y>?T1a+3JGJ2qG2%;_JoABa>C}Aum>cpzzMs| zg#C|%6+2;PnXua>tkMbdo3JVgllwtZZ+{auN5Vw?Pr~v{*!6_*iM+p+3AjcQxeab? ztDTr4VQzyzH(}>zrfV=^<(cVTFkwLn6a90kbeRb&lQ6flx0|rR62@ttrkicTj+QXF zsU&$XHDTQ)jBEEAHkL5^h|hP)NQ65!6DFsb_{=Sxp}#79DKPihdQl>$ee1BoK^7w> zL55Vmjf0%`IZTy7UM&^Mqp{d|MrB3Xa~y{R)H;TsA7N1?sEY|2PEb*)32JSE2D8nu zep1a+B3BJZQLoPynk~n1oZC%y4|FH0jkiRHS6eUy39lI~In}~2v3<$YV(|@$t!4`M z6iMMxyfp|6?_i%SfvPUOdKXGn#bbWIAEs#U&(>r^$7|htL%UD3{w8A_SqW$@1@K`v-1GPhgp^ z+MR9ojKAs(3UkVx9d1j?Io~8YO1yiNEkPgHohT{PzY*s980FQuqJcjCZ{M-6a_-`p zPPzP@((`llZcxm-U={~XQEvm&mOj>fi~Quc$A3)fc0#80LK#=|_vM+esCVFZn(UZ3 z$-E?kKbu0fuJZl+WBM)cgxx5`{L6fg-~#bpDLv`^RVyj%RU)R0cG>H^`n1=PBnXm$ z1jFSgR@l}_@F)qQYwPy)6iqbrHZs-+S&R13uG*QcJ;}wQFH2K$>qiWrxts;*LRPWX z)!pUfDucmr=ob^4Mg?k4C|)liSG`e#NH^gp6I>*9_a z=cb&TS_g)DuWKcm+V9H;hFRs3wkd<#tf_SuDMZ+_CMI79L`u;tuw>Cz z>i?f^*;IjTLC#+7+wZbv`G~Z!ANhz=dtWot-l#4{knEk@=c;xW+0!9?3cTa-=#4EF z&cC09HIA7ticK;FBgzxY5jEO5teDRJ0;oM(g`WQawj45^d^gIsykF&f_pIhSH~l?G zzCG#h8|1qYZG1^@pK`k_%>H{Na7z;veIxJu&lZG?{4?hLx9zS*Pk1@A>k*!uhuU`W9OD*MMoszSk6Z zaj#Q%n!3}~4XZm--P!8isP0^K=c`+(?#=2}t9y&Oi`2bM-P_f@L*2#d-lgt6>fWpF zQg!cF_W^bPqV6(vA5r%)b)Qgoxw=oP`;@xRsJlYl=hS^c-Ivr|sqU-lzOL?Sb!*jK zqwYF&*Q?v0?px}i(kcZ|d$;celEG)!nb|0d+mSWb9g~+e+Qm>Sn9kPTdab9-?lpx`(RUN!`xs z=BwLP-EQjkP`5zcBh~Gr?osOYQ}-Bkk5l&qbqA<>lDa3WJ6PQz>Yl3ZFm+E;w^-fb z>Xxc|hPnZDN2wc9cZ|AY)g7nq+3KF7?j&{3Q}+UOFI0E3x|gVXsk&3uy+Ylq)V)UC z>(rg5?sRp->dsVmwz@Z}J6GNL>Q<_Iv%1yl-lFazb#GJmc6IMicd@#6se6yQ_o};8 z-TT#jK;6HnyG-3j)O}3dC)8c8?vv_1rS3E8u2AMLHtGim=T6Nc` zyH4Hp>NcqRmb&k#`<}WR)%{T2kJSA{-A(F#rtatJZdG@iy4%(LM%^9i+UkC%?)U2c zsBWXWzo`40x;xd~t?piR_p5tAUC)t<|LV3b6t2gSv;Po2%}j>UL7Mv%2}} zc2&2Vx;@k_Q1?i6`>1=Ay8YBWM&0AoJwe?8>Yk+T$?6VPcZj;Dsyj^G)6^|iceuKx z>Ykx)K;2R5hSVLS?pSrlse87%=cqeL-SgDFK-~+~oviL9>RzhuRCTXV_bPR-QTIA^ zr>Q$#-LSed)t#;Gjq1)-cfPun>fWqwwYs;cyGY&J)V*EZJJemQ?p^BMqwc-xE>-t_ zbsxYD#kxPvPs#XX-)r}^@+`iBmC6&}fh6||t~Gk%pNsEg@qH-15#nnQ-#GED7T=}f zdqI4&#rLH6V&YpSzDNH**4_rj(k#8}J0Zw|jvsE^t0-KqP$?|Z(_bDr~jo#zPp5kWF= zy!=5yIvDrzHwpSb1-%gT3xedYaq!Dw4PPqs`@y#h`d&fT1SurffsXpUd?4suLAM0$ z3A!n0BxpepOiy_E?Sg)npkFQM_X)Zr=qCi}K+u6S5HJ5V+|L1#g2T&yCg^Vq`bUEP zZ$W=Y&@Tx3>w^A6xUH9eLD07e`cr~FF6bu(-4OH#1rc{By!=r??+a2;rvoBRgqOcf z(Dw`aje@u?I=mbS`fmj(X!pTS3Hl9!{=A^K1^tX5UHpFVvx4pk`hNtyCg>LhEeZNo zI7ZVwAN&`Bey!du2oleC@M%HcBIto2U0r&xCFoxYY76=&f{q3K13^C^NLOYa{BA*i zRnQ+0^k)VAF+qPq&|eqy6M`hSzx?k6=?3eUzemt7MF@ELLxO&lpdS$QF+pDybY0Mq zpnHP$1Z@a2D%SAwR|>i%=$8um9zp+(AoK@s3;Gv=+Jb&g z&{qZheL=rl(9a0^NkM-_kbLxC{ux1kL(m@=^s|Egh@gKi==TfyML|Cz=vUzR_3{S= z{dz&aNzhe6F9fX$>I>Qw)E2ZW=z9eX1w9t@{em6{`W=F93Hnh%HwFD+K?{O@TF|!( z`ip{owV=N%=#rqH6BGpff}nrR?UDz-0#*FWeh&v5fJ?Jc6{wIRIL(sPfx-ID6 z<4Jt*uAqM@s1)>11pO{S|3J_m74$a+{dqxuRnR{a^k)VA8$o|UkQA^le?ri&5=0d0 zuOGZ3==TV^F6f5@-4XNyf;gN2{S&k+=t$5=(4HW!YJ>g>`rU$_2>R~@y(Q?+3sMZm zgP#%fX+i&&AR?N6{or2;Dg=EihR&Bn82I|ZuN6eF9oB-NUn1yDLH`yj$-$nWpBE(4 z=*xdB=tl(oJwgA2p#M$KpA__$1pQ?}e_GJr6729|4Ptj1pQM%tAc)3&{IKwOVF;Mzb0rT z=+6oI&4PYf(0?W9j|%#6L4QEdPYL?Hg8rPK-zn&S7xY^N{j8u51^o*_LqP%8jF$(3 zzD>}V1bv5~r-H5t`W``d1ic~Xu^_@|F=~RY3K|G{MbOs-{Te|(B zKNNIR&_5TnAm|qbeY>Fl7`Km?zgp0D2)ZQbnxG))wxECgufG2E!&a|1*bRf@Q8Cyn z4m*c~;R!VAL2K0N6^~Cw2ZMgm84d@-<>I*C+Ua$Q(V%E|b_Z>sgHEwKI6Q3i+eNS2 z?-Z@!{_$a_KPo;x*S!?xO8xI@F}HN{y8V228NR30FN*IjZeG86J>0y$eB(3ApL#X) z2dY>F?;Lk~?c%64EIY%ZwY%Htb%w3cU|3$NC2F;2BzgDUcZ=5HPIv#fJ39GT(Bo(@ zC=R;&2StC-A9aR@-9FvwA0O^?hE)POa8i_`)~Hi{EUZ7BYlpd|Pu(mR?C<5!?SIhf zb?IVjr_&4N_R(>9u$&r6w%upN;DgR^uQzypiNr??rHzK_?hX3;VYk(v9~HySB11#J zhMiVh3Bs*A;dys-P~2+`hbKj=EbiTZ@bGGJTy~22TX*J*ZoeFnRueP-vD@=ub^ZRM zyH7s1`XsF1eY6_Zw;tUC-hBFGZT-!#zWUC?we{7owtjzg{b{(rYCjJj-+dCE=+DE= z&)*AA^k-$`;l?_DA3eGoHdi05g~t!KHp8Q}b^dNXCF$nFyPI!?x9gTuaJ`DFao(4XxsIG_ip4?qo4Nv@M_4A%$edDPE%I#1r!XKWlJ-ojf zR@R=ZY(0ALaP?hkdGK`et+fYF!;`f)--_V-F-la0}nyHB2Myc1R*K3sdexwaWLxODxU zyK5xa{KEQ5xV6gXCr>v%x4M2O+*;o@X!B0!^jTfq{(f;Z9I)UHmy5Y_>dV5hXX8=u z4B>dRxA@v(=$3=U*Is+|yBBX5*lUftecd)f!o1gjAwPJ5Dgtm-Y-Cjw{yXD5lMi>pAZSSzgj*pg$oz8x@ z-&c!R5l0*aXzh08^GFgS)-4LhUbVZXR@ zySN_8&R34v459Plh`KxNqE$Q}cCF50=LABy*y}!H9Ia`g zHTh1>9n#${GwcIJe>76_VP^nMYj;Xe$Hv-cVQ@TTVA3d0)KP|d4hk3bEVVmnUl?|F zJKYaDMVoD@*c%QGi_*#qk5BFy8f-u4_Ihjmy}@$vLAUe#_U-kphYzd$i1G$I<$z9i z!bW4bQ?Hl8J?0n$JZymt;ei3*PG`5f*M(@OhPPN1LohHQhvqUoJvm}ISoaIfkjQ_p4Tn z(Ik2{8Xos|LD38~2V+gdYY3Oq91+TdW@QF#5}l{5ad4#-xuv|uop{YHy?VV|0;78a zt(RsK>}9T>gqLBcE|mTonisGB8=jfRC+o&1Za*E|Yn2`CGE9dNUj{Qos;!+y>nfx3 z0VvBh$mYV5&2M9B=LEqH_A8+b1hUhfood)Q>P$^Bxecgokfn*T7>471+3W6hX6`4V zR*mf>?+)Y5PqZziwsOzfed@(~hFpF|$B9v-*;*FtZbNJL?%9osYMN33m zbfLu&d}3yNOndT@rCN9a4N8*;W8(XDc-A>7!(d52wn{q9+O^5*yZuf}fPiq^Q3?m9 zC7F9tEfU+D#JoxDDmx=%vLHDoXdyS9J7ulR7MaT9-pHA?RG3O{6nILq@!5`Zu*)87 zb5J}#5Zk9`v0$wv9!4fX#Mvq4?m=hw85D|HDkk48 zdC?faxGbG1=^w*MWPF3Z3WJ7{28T?7q_HEm^-*B4IA;aTt#6zQlC!`IXOpW3@*4 z@{q~z9`%r96BoL30vh}FIKIHntntc~f?+%wJdd09WM|JTVl4Aj(MT(%fi9j(sCzEi@9&qa$6Nt zFqWiVLEQgqHP{=L|IT303opWl8_NbAww`rHa9*%5Q7=+@O$RMl*|K%m(Jp}q5~!_& z4Hs)*%mBm=9YhJb3=vAmom*&pvu37MbM@B%>FqTLB_wppihHAsO6nJ=3 zCuz?zk->^g>9sR@S^8>hJ7bnAPN|r7Q=HIi(=}-nS>#8)A_M9Yd?xPG;``RZpbH|u31jk6dzRdykUhMh=zENU)I zptGTBQ`{U8lv$W@qGH#tDp#UriJ>$(wOKt&q;q&Q(j2;+=j8~sZHnis)Jn4-q#W2@{r11aVahT)(-7xne%pEm4Q0B(Rg5v_AWTcv-Bk`9~wH!iOq1Z7IOjEd0 zJa6@Bfp*a6-8S;ST8}1{UA42DA0{$4_K;ZK?m=tVLMJg~zu28G7OuaTdx7KvGidxb z=pGD9YWsO9ej4FQWT$;B@!X~t0%`*!Di)p&Q7h@o`x+b<;8u9mh5bjsqO!u^P)wAyXaD)Ea$~) z7(^TS9yh{9ry1tB9^=?*`!?Y(RU4P3)9^A9tXGK3_N@>+wd%|(ynxGsusQ`_ke zj#1fHyC&0^uq{p;+qnh`x{{$LC+Gvzl!52wb`s4ON?Ve;p35jQG&>4wqXQwGkX@R! z5>__WnPp+)X2RTDUW!uHYVD?-rLi4Un@>nmb#PfV^>lhZN+*F)ue7WeY-8d>wL-I& zMDyx9h!Q!k0K>EoH>CF4u4LQMmj|R&qr@~z*_d&XH-`laZ8?$_P;csR%`Lr_kyNFD zM^Ol=)301CE1RvF9ZH-@T&K=%NEPWbmJ}1Y6KNMtvanAZBO>k~8d#?A11gP?XkTQ% z9@{5H&Rn1gGqyXCT)N|1-Kl9r7`L^-_B+p+Od&3G28C-++}AGn)fuA2N62;J(m~A?9Nbw|u| zS0WDYHD#gqWfb4R6ZX`VqmUWbz#dN)&Cby3hP0w*2t&&=tbHwyP@o04Rps{w`zz}} z37MrF?@dhcymhn-KOVe6#wBBg=mc-rSFtbjg4l%6|8RFX4o}*cgYU}WL$+Xq{oWrsHsDudE~*oUX^%^?0xL&)Z* z`eIPcK73SF8$oJe++X<6eYim_73k2j4%#4)LY=IQttnH`Y9n=2!k67s zcSfsMoZaeE+9q;6 z{UqV|dKok1u*@(?9Pf5)Z$Kab`9^wJU)Z?Z5281K@SSh2BtqZn$s~*V7rx^e`nV0V z5R}(2Kld_Aq=#@zf5jZkVU05Mz;aiA=M*t+AeQb9tGn0RW?z(bsthYC0gSNRRaH_d z=eiC%sD`xCJ00YJ_7*cY*Sr=qJy$AR)LGVbtAc`U@jM6@w(h?Yg`WN$EH@MWm<#4<=)Nv>xpUYXl^ z1Q9>5Zx0o*DHhd1FfD9}7s@V!% zn0UdWjgYO{438OETSfd5XFMzfObg~_^5r>3(flkhmgQvb=~0@Q1ugeTx&&A*tprSZ zBxJdyB0VihO}@c;J7^#G2I2bBb*%w7wnTQwn$n=+vVB`jBC-RD66R;rHM3`6Pa5>3 z+H&dBwjrj2S+#aDIucoOSyUn}Vdh6;731f6M`rf`%OR>ViRdTAS35)DP5;ZssE0aX zq20b5pn5%{5d!4UVm?6CAp3||3Zw^2?=l~v(CTlV z52ZV4B#M$c&Lb~Qf|t4&lOc^ur#(6e=%j7On4f!lUW;IUuH@JEy*sd=scn2n30!xZ zXl>sNF;Z|v-R4B5N;Hw===$SGsO2gWP5P27(r4{j8#3OK%*F&_aI0#|9qf&wF_;?} zSS5PvYo6jrHj0UFC+b$qqji$$^(pHhQ@{gMVlHV=CZl>kS9VY8t3oqJ zxw6r-rf;5+KN%16sO6Rk8-?oL@iVc}=c9p9SmC4FMJ_#$l;d2uRhb$poUSANwC`h; zM6?sPXae*3vm`f@a0{6X8=WuP86B>#;Dxy-mjmlQ++X7F!n60Tw!e6}SiDo*fA85B zMMs~BA-aFH==AV=YGXJ@1=iVXVGJ_GsaUQhGDp)U8GDFI`Mo^ zm_dnLO=-d-F-+hf8db80SAf%Jw-E|y{ewx?DX|vFvKP`3Y#Z5`W+hhxz5SX zpfzl-Nq;gtJ{pC!Lm8{QTyN0&VDvyjlE2&7^xxI~2i@VoeCGVc+D81a@xXy6C}X;Z zo%qn%JvQGRf22$*a>ZaLmb}j1;$OG=CLcYNkl=6bCcN;+%@Y{o7Y?tXQHf58{^DtC z$AO1~0bY+)s+fU3`@6U0bl~8YZ-dPT3DnK+_sws+k?JX`!cwXie|r~mq0Lx)#3%3o zR-wD=&kw}qfB=ut9K}K20I6Vpo_m7th0VMl*-n2GXUit~Ne7QjIY{~^cinUNk$Ijw z{0<@#m4q$YlHmK%%L?R3uO6cfA=#8KKE5ekoXGU}z z4xV-TkGn^4^j7f3Xg?kfusW7rR#o=h9Tq`C%<47ck9Tau*ZOM+k{5v+B`ca8A{MFV z<^ozP@7~AhbC=Z^@sRK1ukw0Kl|7d4JzlDVzSk4mT}Sb!EH;d6{vA<%VXj1-zA1iC zikXg_faRx)dtKkv2~J(x;|Y=@ujz9vnBv3xV ziiK-%u2&jN>5~)NS(sFZ!qm9ZDvJJRm9m>Sa6 zzUhq>HNDd@@ANUL72{R7%pR368jyBpC^rE!k2eW} z=7o%iq|Ts{*6C6dpQU?ueMHA>R4x?TTT{Bg0h+dgfvKh^dL0G-QYc}9k6PFjKKxEN zj>+xP7ME$-e1EU4leKFbjEXjkcC?Hyh4)ymxI4~mev$uJuTR7yvVJDsH{VFhiz4gs z#^&0))vU7|7#G+KzQPw&eVOtq>&Oyt6JCuaLDSMwM#qr!XvwBrZi^E~6C2bSbMP|$ zN;LTQcY`*MUAxS&P};zt9&VBKCLQEgov;B^}(USwJn9YP4=d(q%ZEFNb@)TD-~^lv&H2a z`W}}1wWp}Wt@vyXUbCKh_bm?&q6^m7^!+N6w zBnWD%B|pSKCL@`S8@6;>*bLv6B1;cfFV!-b4rkCOwTLG5LJ!){q3_o=HVYgRMo2WA z2;^f-xfI^%w4Q1I69echlH2qacm*R~1sjM?waJD`h_>+VtRV-L{7~w# zPG^WU*Lhws-Jl#}?P{HxVk+vA0~`aWDLxNP>#Nr{=kb0;Gav=5)(~=NyOJXj?d{$6 zHmdA=SVczGbns+q0*S;)pw)7W#u7J3MEz~_t&IEuD30jZ7CD-?8s`i6b2=%lOV#EI zLKK2ELb-i6+asc~JTurD%-lS=U{=j$YSq)>>{67R%$8^yoy#*&zAaZ>rfJmmBbO8+ z#V?+5QS2Un-iCa#laHl}mA1ECIv@Xvcsm?CujZg8ULkXsJ8&NUDc`KPM6c*XC7k8l zuKOEyqyb5vQ%3&ejY0gH_|C(%*i&Alq6{ZOig)8ad$QAwRV|D#Q6p)_o3Dd_sebEN= z%21F~7Bjy022!x8Db?`LNPDa5b6g|{ebK1o*k*rO<81OZLsHg{VK_}%%tS|$BNXd2 zDj&1L&5j6RGIQUH35lK ziBe=n-K`8{#*snBRY2tX8%F#y(&FxwsPx2y?G9t#0aD)qC;Fa?n9=v@JGpK7H~XC^ zg4i`C$ohKA@U0?vv2SS45;{eS=UCO+btK)7EpF}S76VSScnq0mw0k@iC3))=bc6jO zyCq8J;G@ThmWA%+*u5nwtE7ggZ)u`%K3!pT;{nVUni{3k{I$#tFG%+m%X2o@4#KLE zU`HDS*)H?=2G2X^ME~;FF`@k$& znXH-Y^8x{m7KWPFSF8Zl55rK7SYqgPjoHVhKWayKVXu9Au8r4ywmR$h%AK&q`IBP| z2)?G&0vQu*Zrfosy1u3*rO#ME4fFSXA!{XCE|@nnE~|mN3@@tj`9^CzY>)yM;4dz7 z9b+{)DB_Q7VafSps*9B64QY{yA!?+v1N|X-sG3B!VO`d%7e_WfCWJL~Q&uJm8@GL$ zWXJn(On>IMU^CBgrg$b|Mk*AGcBbd_R9FN&mG7m;eXC||b#=A)u2(LM zzOn+O#WjnEaBWS?Nl_#WMP>LHaBMyu^}BBJC8|(-t))Z7Y;{)Nt2$?G_F4p1+=52~ zaf1asbARd5JE9deUox!?Ke>9fFg>>gqfv0M5ewZ*T6n=$X6GDAw05nM)8|G3wvE*Z z-TWdot+4>LFjR|spdxXz0sQMJ%`vhwSGP zDCMsrrGlY!97g5XhVrLe+pF(BuIB`y3r_qUbCAIF8$%d_7gw$UsWPP~WRepU0@ zdagERJgX<-M`DR=L%GCycPO;hof+lk?$iqmP(16+{k1pM8z+E_7ctDzr$=|!pKizR zrZ^({L`q1!wJuslD`J(PbVLGFG55QQrG~~orqD6A7 ze-QmOr=yBdRRNh(<$OdsW|2jT7%(A{993zDYaS?LWL*-?MrR9KgbE((m}v_NZ{MB; zq6>S@cJrhS30lG%H#rL8AkV0)Uq2!O0G}+z)xAN2KUU4k8&K31eEIk=`VndD=cV+U zchS){%jlxdF~Z!aSYoCID1szE!3IQ`Gh0zBic!^q6R!$r)R7w5VBVCfn6tAL9sB`1 z?2T}6v=PrZSr^$TIErJ_WcjPKu4|r=lxAbst+&S|L{I=PKgz9-i%6Rb%k$89+QWuN zxx)^=tau@0Il7*Q^@hXw(-Eh*203BA%~=NbRh}mN`_RNHwmFA&T4EdToVGSt(@L%< zPD_`WqkN664OWn?P;R-)X-ESpicb{_(p6l} zlbZ5v=IAEpLL$X}h$+L%&eUHn?YRo`Z=ZA!fF>cv&<}KhA}g_~F%qYv(4?zcWlzz! zy4HAO?xzJRQTmF^dUYmcNChVTmZ@keD6CX{fmnoC6MPwmd@;`i6TqcqPNXE~7s-&X zLq<>QAhM|I=;HZ$E9AW|hWD11mcCdu45mKCpM#JxFbk4aUU6rJS5RUy0qTi;V=ymr zjNY0Yd!9O{0%0Ry$l*aPLQTL|UT0wSB__^CioxP@hPE+jfl3aIawQ*ldr%33J-}V< z=Rv0qg6tjrHnNetoP#$g5I=@-SG2}pqt)L?0cJStt&d{?W^7>eZU&N}9aCY=P;-_E z@BL3$_!=Fe$5jr#SHq4-YoAm9#g*HO)Spm^sm?2V+|^=1JB3+>eBwOtdevcCv3M3Zp8ef0fnME!G!{jwwO_3wsjTSB(_qnxZc;Yf->9Mw^clVzzL;E{S`> z^@f;T5fTjWnUGWl{fZz7Ta!WvaK#VMpDQH|59dk3IH@nqGhb7 zbC;ZR)WVX_E|b*N-8w;m8uH32ap|Xsp3vb$C=Nqx|xMXpXab z=xo|Vb5$jYQ`dq&TkxS;A$sj1do5TTF`I9ilymEL@u|;{grQZOcOzOoQ$%|M4mXNhAYB~vJpb*A1sC9jEM-DYc(V;F4okW_*EHl$C?z%j9AxWx-oLd2*mPi znxVJEBgCoN>X&klx?Qy=`m~MPhxA1l$wh;`EB34rPzrkw`&3JmW?iW@7Awwrn9~XL zD{I}DZO;`M_WMY}V+_0Gue{GjT98PgzTvT=^Ml7n1e}yMBZk!{YQ3@UAD1{ul`@dW z2)^gdrQNBLkcf>}XQ&`WM1#|xZSd8$0mc2X7q;y-Uy1L`Z{~D9Hp^og0_6WRw=Rk4 zw6tbV=QOR4+up%kBlxDeRc-{WR);|fsYG&wyO{U;VC=sZzVB<$nuu7?4}|n6fr@!m zc|=yySQ-tZZ)JL~NP?;~jyP-81Jl&rogTJ}>M@PjF=Zr=s6|X2D^Cs)8;P+89*uuf zl&Vr8s7Cdp2To#aa+3#^bX`6Uj3*&VVdZ;0AHZ^HLzJV_zE2kdqK}UrtD0%^N9%0< zqA<>uDh{j|^=(L&qyn9-72U8LdZ>+}9wiD$yB9t@5^SSd8>T#TKGI-=d)#4YlB-;C zqex!Ekeh@Un3Hk+;T#r+e04sbq^4DaOkYo(Htt3S%<&XAvIz?I#}Z_|D~?yrS}bId z|0W?f=|R2c`CHZ2)IgLq5;Cyx)JA$76@3xN&8(j2bi9GB$Lp@`ZhtVw?q~Nlmp52w zOm{mKcFG>Hc!zXO6~)WLc*t`gROfft>UU7tVMfH7i%X)sZWR_uKCHSBA}J-RH-yIV zO{^XPuucrpn)S2PC_F&4-idbQ=&Hzst1RjJSkIPNOlY=mMJxO>&+@8&)k< zB!!HEcbky&E4hqi(W~NPx9wt!#XCF@)g$$*2G)7dHpgs`4s>waHdVD#%268dnNQd9 z)bt@#V@P8R@z6nYm`E$vEZ{h($_2Mxgea=$F-T;GPGg^?P4adUkIUvmlbLqum^!kU zx5j2HdBP|z1QVDZ6N7GYcVv&Qqi8)WJYBF5*m~ieXPpr`V^Q-D3&Oh6Fl67xPP^6% z-ELI{{&tQUlN!`o`lzTRvQyphJXNeh3!|Ei<>+=GW1Q;BB~ELZ_GgeOV$rN-r9OL9 zUr19py-RU3^>#BY)o2+0WNqwX+Dl!R7_*u7=!6B-YCESE2R43=;SADfXDo~{hb!fp z4|g;S5F-VY(Jr6`07-%YJuGe)HyR_CI%?_+t&%tiwrSRfI3;ux9Zwls3Q`{Al^M}v z79CL9I1|lwdJD>8{+$4NiFdEwxO-(Y>Tj8$r! zvjB$<+|9caBF#WNb6I3GFrAs&69_dzJR3IcMtKpV($?mrk-a1ZjA|rSIgZ9nq^Qr7 zEvea~VhCsKxTI^7;;muHT!71&x3tz0^+DgGxpJaOIq8l2I%&IpUy1n(eB*v2HKik; zn!zZor6gcsQRcnHh_|?~)tRz5M9kA(_XVpp$&3RF0|G&vf1`>2alIK9B-8QeIcuC9 z&h$EQ5jC0?8SqH@2rTGV7nmGk%r7!YBSRAt!W+9`H@vYEcETI?!W#$SAiVKbcq_co z4c+j@T38Ej^g=JZ@i06LZ+s`LZnF;q4*-p1wC`Jjhk55(}#1NRnH`H#dFzH7#xj8(zBl<6|M( z_RSt9;bw_wNmz}NyM`fH)W#NlCXw@5elo zi0-Xp73q+R?lkg<>lRIG?S4T#drQttX>@%6G{}A?&>Af+4v{V??P|^f>gYty=y0j% zPLZ*#a#ZD4G|ZzP`K0=7h>`1u2lsF0(opMd(vTu^yQc|_x88boLJZnG#c^mAJ}*yo zOG@(f4^_?!cY8+GbN0JJ9><8rj4&O(D#~l#cOMoEz%rhjjlKdfzqO5QS=%#jKd*Wu&r)w*;THEk&aDsn7cTRdC z2t-_G5(~70+G-ATQUt(n!_nK6V){p1C%Pz>A)zrS+a*J%XtC!TU$Ri)>&%HMgv2x; zwJ3^}79&V`>MbLk)+yQ~vE=2_rj@qNBzZJ(&7?zfo44_WmJ*0)J#=G=oxLduS;;iF7W65$Z3BlR})>bKAtNezymS)iY)wqAnzA zYB!+OklM8LFZ*H@~mjiSsPjLyV#vGHlig{B~#Unig%zH|VpTADtV7A@6-*sj9` zX)}=ebgc@BVy{-rt1j=eaMs>#O_vTgl2T_R z%EH@>QcN2-<6Dk9I^%otR+{m7bJTv!KE{+yE=BVfo!(?~y`E8I6wB(WPFP~- zX5_UMcN$g8=VNCSz=pr5NrexL@xEsyOrdF~4@2z3>4|XW?Bd`*iv%FLE6VbjEyiUS4b{dt#<@lIK{1m}CS^r@fC8xy<0AK#^qVh$ z6vL`r6y_xUc?#KzCQ-3h$+rn64y}x0ZFrVCD>KH~j6KdO5Pz#DaM9uDgmXQVObt87 z`@tV@IM+k^79Z!hI|WR-Vj_eo&WaAYk}&t_*UBPnDr-EM!l~>|c`!iIxQ*?{Tw&&p z-CH#t#b3IF$EonL@YjWWPLPQPJ-xE?5vB^3Q*Y7wfUrmL<)uaaBTen6{>otgmO+3^ zVeZxAV(v5icjHD+e_yq~pXwb;YE~4QtZVWyhyoTLF^csOJ>vu*2aUK@q*r|)^iHou z0qyG5L3jV)Ii3V)bXvn_)%&W9X!Z$QHJB=3U=`bvXu8*|O0xMVBV|+>eQX-vG(0AC z#BYrCao;>nd_b#$b2i-f%^;x!#R2M1XK*=)31H`lGuKA8xEjy5D3$*&Prr*`l$R=*L9+9=C%ga_#)QS&cJUD-(xQdLMy<|DNTUdU3U&ssrG%KkMkp$o*mLA>anxbHO4%JAE zKmKV}eC+W@)14lighAYl_GwS^6ycN!OVxlN#Kc+Tjf|+_!N!w&YxnQ3uHXB@Q_fm~ zKS{O+^+m!cvS=i-OB@NEc6r&$S36>n%Q322D6Vkj@W$54TR~s%5%Wn4BzBE04Z5iS z-{2@YB|W1}8$zZ8nleCy%sW=~Mn&;2Ivwu}_Ky{z9?EG~PbWEiVqDo%h%#Ju_U&v6 zy;33528GC7JqFpwMTzuJ?c@C?1eOzXY;*8YiXdyX2%BYa-qmK%iKjNsMjKDap zRmnCff`H~wFQUftmAUej+Kk84dYhafY{sf2;T10LiacjzMEuexEr_|JJHfb3|64n` zgB!Vhs9xD4u4-3_-N20r613w}?M+gZG+aMwHGokF1?;KGnwrde(ko861=_N*x@$o% zq~x<>)FPfO4$ab#s+C-j%&{|$JvB~<)LOt55B3D}1{=kZwCv*p`(}>Z>s)Zx9UBnY zDBVUPuakI2s%tKSn)C$T+STHHZ^hQC^~D%sO}JBO!@PDb6a1#9P~G^ ziL$|S8}LxS$$2r@<{sTQ1Hp21bGvTZG>wkHX)cebPcbj4`BanJ46IW`a(j>p*!(VK zpyC#z__Eo8Q1bb$XFS=nCCd#wmVwiB24(z)HK*1cX z>*%VqaHS*hU~rQ1p~|wKOwH9(woy;XY%ZUT)aS~3j_S<(JV!IYXl-jxj|u9sVd~wy z3QUcY*MTc_D(@^&u*$2=7OTgT_P^B<^Tl!XasZD!(gcH^&kcI9lLrUweHEbkBDB)7 z;;K&bn#bq7Ol(sQAkz{UOF|Y6+CybGS~f4U}klQNsjboFtki!ciOHPoYt-)xVfYv3%AliE1dN(BXtb&om5s4 zzop4fb`Tu6-SEB*_C@nTHKP=mC)9z3%SeouE{U%+Y_pRCR`FBO=`5?`2cVf7kZ zBCYwFT$!k=y~&R;=FRl#tws{G)lXrVWqCQzwh!i4)?$ zS{Nc>amA)IuX{q{bIC&_pwR?hbvbRH-bbGgsbkDWG;Xot1J+!MBG3W!y_#J^u;d?d z&5onmeT{}3=J>clOF_aU21$F$!D|Ali9#h4l;~`jl~O|n1{j~M1K#K(b52v-#1{tB zI(>A7j&6F0uv;a`?ZCo!`Z20&J_&wI$jq4w`anFU?QPi$tsDoYXVJGRiN=ge$(avNc; z)kgiCovW%$ieAg;K*~BX4fo6HRh`h(Dv`P(53u`%TL%)DMyo12 zHvT^DKf2FnM!9OFyPc#GuFY8fYuN+IhyaJxH#kXn&uX;aQ}ZduVpU_xI6OP2WkNFW8eu@JM*BUp#w%5gDdX_$oR;ZIu5sXl0|$AI zQJt&R7&8vf&S{wlf#`kY9JXa)fD?FXPd!oGtE?#7tcEEwXy|R(q4G`~F-%9>)t|WenhT(}DwQ_8XmPb>RmCAFTifh6wJp*^LmE1d(_Cyn zzhh|(l}Uq1&(hfMSQ_3r$s?V7Wh|isV=2{RohQ3aN<b!@A6E6nY+TuPMn22(VX6&PT131WFA|Z6ZyB4-X~t4UD77u7wYNESH|-M+q_kG` z`1)5%K3QY<62b4DP4Ja_DuE#6& zYHJI!o8U9sed|`O_Oy&xQe6G4kRj*j`JFqp64KfrO6yr`LtXzwEo(yZ?%7DLtY4~S zjrhu~EazzNhgC)pZJ<3W;bMF^bI`6`tJX@R48^cKPa&55+BNkjH5ySj&Y6;$i)Pio+a7}*obZQyOeeGH`p50uv3ds*=mr*N1s=`P`3`&_NkzX1g zZFcAbkzK@L`>`xj0;_3KMU}_h7~2*$Rt9JpXp~e6Q!*&#gxq5^4IDH`t3H9Lb{nl} z)aH$95>g(`L4r@sZ&}~SQ;_m#>=Jxxe&u|l8afW)*}&Ov%Gew>J~>@gcM(yM3JA28 z(qf;O*2VXD|3zg$#`FwzxRJRzOcFQMMk`=kzRV>dNzHCX6fScqHcjUv$UZTB+IkM= zTNPAnJBXz#yqq_y9vWS34lF|iHo4qNji+r@mBv7o)_1E@cA93UO!bqWhMYUlqj_+t z7~tWnipJ@>I;p@92H4Ep+7kueYQ;oVCJI_yN9<0sIfeYfg(}(B4O_qzXS(&*f;>ls zxO!|SOE9=J>+tk48KX;eFZZZhHPvdR(>9$h46&qP1^BcEhtt!7HW2*trFD@vrA-|5 zSZl>y6W87XCqY%_q+a#aG~O@b_*@SQ#Q0d~6UZ|4EnAx1r%qv0<6UqR9UU7Ql%L**|k>JnFbhl^BM| z6-hd|IF>S{DqDLwYH+VyZqC^G&dZ93YN zP|y+*>o+2(sV|7otdl~D1H-Vk^s9BaBsP$d6t{m!%qI%&_N_ z{qU0MVZilh5s*!4 z*_ce>==R7Jw?BKJP2Wh}K^|S4BXT^m6W-hSVrXN@#PGy7vj_PoawX`r_wpeZ!pC{A zwS(s~5k~Pdaq?AR$0fs#V&Tz~4Oh~cVJLhSS1PSpp1Qm0sWTGsptL>MF=B(_=@mEQ z*&7vNfDohh9@MqhO$S`ZN4o$%YavO7Rmd%?Zk|m+!Hk+}If7f;+sPT1@KH8udRsYt zM5=+CDfW-F?i>#A>8f+t*TI`iJYS5B* zPlr?TnKMRJSY_UmsauOTF7ev9w2EA}l$VE)8J22f-iQzmTc_yuyC)nfg?_=;X%@6P zb(W2TUD?M1y5#;I93GZyhS}k!<%qit21VHuC-Z2k=tSP?+z$cYXLkRwdP=lt8DhK^tXYO?r_N>9!QRdN~$q`vZQNeINE*hV2*m#JjC}=!Psg(a8jH#k*2$`vRGIQJ97KaFnrSZy9w4K}1&zG5-u^dpUV zio@y<-481c_abc5j1$%+ryHz&m39L+2LeGxt2y3xn$h%LLzOdda#nWu)Pd;W2UFf5 zFh_@bIT$M0csdp!s5t8GK4a1;A@2JJ+!(IW^sw@&7)BHk3I0zhC$==b5zfa!qiMdo znRmar6q9XyBTY5fsfw{JGu<)G)5d)lX+o)Bteok&G#YTS`-Hu{8P@>v!5&&3d4WJ(`EGl?5#-DP_0bE}x*038(FTZDQ;aF5HN&zP!)8Noq$XnU=^ljO6C_zlZG+Db zF~SM-Kfe+k^`_)gHX`urW|$B!-%m(}Fk2ea&^bMrj#{I5A z+d==tTlmddwqx5Q&_-V$biJY-aM?y6n`}c4M^d?;fK!&RMnzf9Djudxt~6`@@Xmn6WBrHkMV7X+qfxBM z3&ysaMNhTBB9$ZI{N?df;;B-QjjW)GY)36u5(U3gd-%ES*)-uJShR03Q3`uqcb2+Z zR8bG^;72tziHAo(he;v&J|n2LXRSM)*+kQ;R*3c%E;{@#};dUvzhl zqjIRfuLSx0mRIjx|00}#`1p2}TE~W}r6}&D`j%L~I3~v1R9~xHNRL8a_71Hw(+cEz zt5kMwQ|av9kPx*x%z}rIQuw&1U3ItOwYD?Ye+!8D<}4R=1jLSCHam+pS4T&@y|&#-BpL zsmx}gEO0`dk)G<=qh2_+OF8SG&(Yfl$Qhf)Mc(bVH{nJY(<3^TqTvVQP|`-4ZZ69M z&x&d1hv#B5%|+1f*WegM8hTapz&N3|p@gmsGzsbM=E~aIBG-R0%od`w+AUl==yb}G z*%_;Rut^Twgk8mfyCHmr-2;VJ0aXp37+9O2h3hYFzzSZ!emN3bL|3WgGb@-_FffME zG_FcftO;M%?$9`+40`Wq3Tk>}rs}I_RGd-TG$p_*=RB5P!{yd7w^ili>tK zf|oGVGR(81B0NS&ZF;QS#`JjBMnkB-H8wqYs#8t5n*60!%e+-H{}Jk`mTn%YbIsYR zt>i{85+0;E%MCqW7nq2T(gB>k4{A&=r7%B4H`7UAllBMY(qqy*>^_5I5q*w4Fb0eP z8XCo$J9hG)NP{uyTnj7IaK?)5*V$?U6mdQ^Y9^z4VhK_N8%XF`Vk6b}3Uf!7n4dpG zrOb$pStbURM;G7$r#J~~#7B|w*?7j&9b+zt*SWrwE+2=- z@i0`)eE$VkPZFR*QDbXwkGYX@+WRfN*T0k}R~~USBNcOF%!|fh>3G+oXl<`>20XmK z9y5>aWn2npatIfP>XPW3JD#3IINf51N-6SFSn zqJtbFR7C?-ZrprL;l6gUboVkA$LAvTHBM_O3yz#uYq2gwEfVA32BQXSgJQVn>Nd@|B~b=DP)q7-&o z*mNb0f;(f!gOZjoevyvdFDum5$A(Z-0)8c0!7#g8VKTQJRy2!Vc7ZmQY)ZO{1w&i%tB4o5N$$$B-Gjoi>&&T1(Lg&$*uz-tu85)!(V zn1t691d(tMB)*1;(|}7F!|GIDl!Wj$>+b1}SZ_rVPBH1r#u>E1a_n=zwM!ajkNqKW z$^NvpvUxKl1O9Zl74syiP{PTbV9ES@`e4xo2>{>;DnhpP$vIqYoGPZRqIhrXlad== zFSb5;i(&az? zJm2LS%0v8c5w4g~+w&!c^r7R1dv-oh0$N3uL%GrKZv-`7@qRv<7&;u$NH~BTwUO5 z)aMEiXLpMQ8Y&$*hbT>_8ghW#N;{a?wj{h7>&Ln0((iwU-a4n>tR-@4e&IsJ7D!VN zUL5u`LD)Pn)mv0g8(RkYoYeReAD?T#ZsT5tjsEMIDm0s54X$NuHA+Q~Xol1X;fWjYZP$_EV}VMnZx#y5j6_ipb&huBUY?^>R*9Nb*LX{q zKIZ_?e<3Dva-X2C7B1@aDQn3|19?Pm@zI`AcKEN?I|)^%8mWPjp& zyW1g!`OLHS`7*zv8$5nqmuH^h=LKNZ_EZISA=u&pL?DX-&We~YhA7Z zE-UVWha<%WH0!PJ`@w(EQ_(z={}J5$=J(SW`VBVrj+=E70~K35mEh zs%?$_*Alx$P-vXmL1Hx{S|25gj%TlGMH)MAojK`8sqsLFC#}j+1Po&;SsW&xYbqe~oYSOce8A1-p^0#Q z*czCk!w=b3qjF(>8Kz(l^qrpWxDU^aj~IagW5vd!7AmP$2p!#FX~On5S`!|`)ZVr@ z`y~nh->cz1ts{5?!1|k-JqciT-JdB&nnM=V@S0?WWS2J$`EV+VLlV2F*njv5NYQo- z1H}_$*T>9AC_^PHq?SRwsF{gX((HQJ^Wkylm;5@P_vT3|mka3{iuo`4g!xE#8>)F& z#nDZdQ87S-DUc;;3`HIh2S)SSEXF50Y{e@JrcH4%w|n~c_g~Dt2wON6_yA)N+xT#6 zYx%JCjO+E-4}-6Z{G3Isyf8DLj~5AhKeG=}=Ot_&IGGq-v&DH?y2WL(yclc2{BIF9 znM(H)2o#GSl-=9mrd$!ERIJZPY%2m&tyQw$hqxYaj4~`rTReiPvCN6MKuw}o!i{iN zS})QJ$B{28iBoeKlE{X_M@EcQDWwR$2c|9vKDIpNHwq*m?2GM-jweV?gg>p4Z(C9B z@lxW#NPqO#1p7P!I!KVPTAG+#**20r*O3SNnU<%%EURTqlcMK#8KNhS{aUPAgXE8+ z;qy0f0Y!gF<$%G6ZbO>8Go^#hDD6f8)SB3zE^yh)5V;#1lJvgsbrhcIGj}@!2y_3b< zODL~d6cOfi~k1)0C~c!jQ5Q!YbgQE=vrX2 zUUw(x%;kt|a4hpF0i-3nl?lxgpAw914Xqv>#5F-azFXWfvOC!C!;rHWtwM(83D%x| z5vwhiVl$U7;XoBqYx3(_WpWRhlE9p7Byn|1g(7JcuP(aW7Ave;>-e6e$>^$Mn+ptR zV^DJA8t-dunOan1oO2QNx3vTeNrQwJ*lleh%JJ3e)fI5f|# zlPDdHu7EDMLsbJjmTFlM9IJ7(YV8jmSbn{3VCfs`Y{$!4@dNQ1u{Bv${tB94OxpoisH2OIGCWH!3dA9d^gB>ny4jUU=UG5gis0FKJ9ZU5f-lcS(%Z0o!D4ZP> zNFvdUWTLbab>1yc`n%^Waz@&z<*vx@sA{5}?U_=!T!3RQV1R`Rk_>3ddx` zYdb5+jLOCenpI!F->A>H9%qjx>K#iuqr?Z?gzFQfU2UTE)#n-ceb`SgWGoHFy~&Y$ zN4#zt>}d(s5<*SQ&Zyuh5c5wTVj=MCX}ZT@i;biB-IU_v1A4F9&k3f?bNw@sa}OrF zSWhvffGs)q)@p$3fb$w}MKjgZ#r3dtxYKUMu1sCajTBSIb8U~|I<1I$0%V0AE@cGxp(CqM)$i$L z-PM`0I5N{yd_kO}oM}$OCbb#UN=%~QR1@R3!tNBmqg)#6_xf=vev-OwCiXRkTp7>H zqL%ff(|)_vJ5EiQEaslf@Tc~49iqLWIE#2ho|^DniS8!JDHbJ3YNFrciFQY34QL?N zc$(?cw21=6u3U)Kd0fo#u^LY`t-kRzGwOqa;`1GAn_5mI1wo0&8>8_)CI1cc-=~9+rt|rtbE{cWxy- zMw+!VRvk8jiMpiV5)&NmZa&2!YURQ9#`?oAZ0iZmDm-$zZcPe8@k<|cg7y>-v=lZu z8s34OI~+w7dZ?I#yLm5u((0C-5O*u(4v$+HE$(6PdlpzFa=YkAiW`QwBl)h8$bO{U zPFh9Q0wgkIN}A|pCU_09=A_HWQ>chkqC`e+L{>yT#z@5XV9)Nf^}&fkW8vq;U9G!n zMQlc#HrzA}bUafR?GjNA|AkH6s)LzR=%rJSgQI|_Be%teyKOXZ$2;K>#;EY9HL~CP z-48Sw;ql;kc(|#+65)ye-0P0W#NT(}Ncd4H4-`Z}S>Wo2CltMAHs!ERtjH~uzoiOx z5!H^u>R0rdzYiJI(Q0^e#Q#^rTFL*Feyy+X{B5GI8@8g&Er7CqbXpK%oUkvW7X2oy zIZ_;gXdf?$D5RU$pu`2X4g^h+K2suiIQd$9y(7TFT#MGl3!GiDHK`a1B$F;dS6&I56kVS>3g*b>PSzyVP zpd$7t7>`4##-a;iVVbYt6`_ElCOn_SS)Y5b+bj7pAeQ$VWA0jh{& z0jsEUgvO{0UHM)j0|axM=B$%O^x1RipMgriB!vss$0%o(p;d|)sJ6V|X_1|w>TOe! zMwvhjTHG58moaMURH02nK_0|Xj}`An=!hqdTwGIiQkBi|9KD8Wz&T%+_@3n{8y6j( za>aZSvmCj{UPinedus?e_O8BY;wL9cg|qOlXs%wV35~)F7Zh8`b#7V)Y!RnK!LIgJ zQ@W-~qB7Iewv(js0xhZ$)Ml=4xLLK5Ssmv4(r#A4g`lRAwO*`_QS-5+Sy?k>RE_#K z(|^OQ_Z=k@jB$LOq#bAdL4|t%Y;zhBo3W~QU`A5!!g$)ONFFB@gQIgN zo!W?*1y65B7J0|pQAr`=?U|XyrIm9hpV}a4vd5bu&BR!#O2&T)P0q3WCsJPwJEpAs zu{OAnMmtZ#)LJW2`ir$A68&q#YRS< zn*Tg1r;UBeo%)e7U94FtS7QQF(UY@)$UcU;ZbGrYsU_z?-zn)Y*6u08Ii)4Jcc%?x zqb(`N#afecHAd0fGl9sHLx_=SZSMkuH=g)nZJjc5jRxetoHk}v6H@YvH6rC|3>eLL z2en2T2`NR-+Q6rzzgR<3CH0+8g*IAp9)zwn+>>9d9aCn-nqf` zCYS6qtKP743{uXWrudsQQn}plRFR4r3Zv7ocp~-1258EhQDVIfNvC(mE&S< zsq!_J)L47+vODLfr1TeSOUiXxOR|#p{6kaAa<*Rv zD9u{bqMk-6l0AaZ6;5+K&&7slincbFJK3tr408tI$YrFq)pK5~h4q{b0+Q>P*3N7r zx_CotSufhsTGsP6H5soi+RiH9#Tr@Vo6*8?n#?fMwmJ#q&BW@NYJ8ZMaHj2HTHw2WfhVg;X4|n!n%P!g=%UEC{Pbp8FX!Or zPRVyMl$gRvHOihb)Qw)8I^I(>)@~vnAF-)eBn#-obj(Dfsi`OQV9C+KJOI;}8@8Rr zR(Q_wEEgN_Tv2^h#U@P*35NGE^l|r)@r09oH0Q*}vr@Cp zHOBR>M-P|ra;MNI{~T84`?C08@i7@Uw&ALSOpT%6XDiPRTsMy#RU2zf+}&o#-$a6-OFa(&9q zQ>o3B2g?~PPbEytc(G12s;qYe8$#%?6 zJGC9ycy&}^ycJW*osqKJ9&4=T?;Pb>GI2c#na{yNPA0z?4o_hrRpdEZYst)?{Q}LM zlKvZRulv-WJzd%N-hI#;E~OHd8XjUdj>cCp#+GQ=g4g?8HP&BZPh=W%}qFNp5t~oxnM?)yFBD;&g(`<2SCvfRCD0 z&bbaPG64Q)3Sf&XH{l}eFi1#t1Dy=fEqr?n_u~_$ZCl2ib>7N=(y86GqZ&AWhn7-T zTlGY@>b}6q{g3lB@#L`I6yP3JRN7w@$t9469TJhhkC|`qxdv#cJrs^AY})n4mE*UEiE+()kkEU6tBZEzJ^h9*$epw4qeG*OB#T_mKst++f01pQJRG>w$vyHKpH#4^iqQo}QDv`+G!pCwu`xMMieVma(t zsFG0%szzb8)D|f*DkjUI6B8D#%~z~=(7K>qgnHR^yBrC`!s~scuPL9n zcD;7Gn%+8NTSKR68p1@(}CrZ zyP*zC)`nBqd<4np6XWJIgJvfpVMmhaCTGyvoC#}_!&haSC459!TwW6y6rv#1zWM5_ zHMCYwBkJe3P$@-6Qrvlq{gFS|3ax?%#n?bGmeLNQdU1uisngjEBYF(9AM>L5C6}+! z$~V-Y^#`9@A#sj(yafFq*e?N5Qecl5^L@ZtMrX>)?JKpNR zS<8-j&)Y)`wP~;BnE-^~9gg0yfLV^6;Rh_CBpYfWMOy!O6U2jPjEkOe>YqhgN4^?%{cG!IpnGSFbeC+#5(KWq8 zMJe&&x~9W;`SK2?gQe~<1yUHo;Q1&O%0`GT5i7-?^J^z!aaBydaw(6Phepj|OpEsk zr*(Y&`m4L){jIs{uW_U~F6w1Eozbxw{j5sj2{bOmgsWwB#>oQ3MLLgSK-b~b(rA4- z1=q&NF-H+!-Sj}H(vzIdmSH6H3 z-h)_GJwz*kg25xjEzDn4xHx0{=HIKAQQ>1c&shzAElBo!sS<{IrG0XZxH zv<=#=Jtwqxf+32B`k#%FO=Rp1_I2Zfg~A0zEZ8omjag%GR3%qK6;hj3zU6;)fEK-5!+UfHfw$u1?9kY>ZCES!kB>A-GSC06he(Vl~Ha=Tv%Lj|t4 zEg~)f)oN|1V{67N&?Ii{#u7q67i3ChMY5IH-p{tpy3cCcT8WwGr(*cYgN{PN!o}{{ z)RY7G)WqWCAiXpxy~{g6B!|_9OiV76t(y8=LoVn%b@@D}<&y|TMfTH}D@Ejq`nA!> zpL6Xg@M(?Ou~djZCJ&(H;^`M2uij?B*H_-+=TZ)CUrm{D^sVE4O$`HEYl_jdNJE^l zD;BgKgjTv0nJByrzM>qmkGI3Dyy^v&FC`;IUF=#OstqJ!9Z1-oWp+ z2D|r=g%-Q!1js}@>kpn2AH{tFGncb0sfeJZ&M#Tr>^^pFX|1U-mm~?>EqNY_4%GNa z5nv0+3@;$>!}&_wiW_Wh? z#=71C*k7j(#=R3muh(JAE))hbEf2O_a+8|B`DO8O9i2BZBE})Ni1-$?DsY1y0TOy} zp(kMnj!1;q0{wD9l+iy0g=%*Q=M0z4Rhs#e%I$ zS2+NdFJ$jBRKwc$8WGD1MhxJ8eTw4vdq$mN~JI63s z=@LUCJxkV0JA906K9NXhK5^OlL@L=?GRY>lA`kb^69gv;u{d=4wND3N0JE zhT8@@v%*Z90){tu;al8A*a9oc@(vXlz}<{$u(m6Bcy3DoRju?VP^btk74HDY4DniA zEtZz~{IWhAD)JzYAQ-cbozza%Vwdw{_RQCKg6iJ1VYxH421E{+;nxk3w)7d*)Y7D>lqMiu_Zlxii5;j?#GWTbW?C8+x_d@fm~RQ0 zr+0;byUS2>7-twrqangS(GrgaY)d#bBd*{`yv|N&giXnM188n}QZAJvwo4~?=%P1abJ6wA-O4P?Ai$3 z!(LOCnQCT)s35&?IBH7GE-g4uLLEn=i|GGxj z3t}e}O&`m{y|d|3FHbyCh+R8jS=kA7T_^vREebvR!%-feb*W;-NU@hn=bmuMqWw#J zOw)a8Lf3x<*q?o_4^tG-W#5WSmlUt`NvboWo*l@rCDEO_9c~gLRMLl#$#_vMTNgv* zEG=+sTv@yaA5hHCFMU~;6LGJRqQ}}*gkRKd*T~`o%rfkpKZjqScUms(s8p2j!3W3~ zihS{SUNI;JRv}v3cXust%frF$v*mOP4XP8q`M5?4P71aazY-{l~-sYMJ?mX80?ldV9$@)v(fBWR_+UDx^+jpPbee&jJ0q=tI zx~uraGuQ6Nl8(tqkkK@%6#>f2Ed}keO`}=BZihV-!A^1jLx>3|79^gAbsGzU>-KB5 z7%!DVTzLiL5<{*#x$Ih{oVb9`8V&Gre!VInU22$EJ<0s&Ee{Yg2FLKHkzP7UGR>v& z)y>An+rZS=nBK)D4KqCQH>JN`Q0^}g%h;c!k6_jAbZma5YSoza?Aj|xEHs;FY)8D? z0WF?o&R4>@EI`R36y~FpG|z5xM0w1yr|^i}4bC0pX*}1E=T!9L&`$N;7$F1_E?E(e z%qMZ?8R_GOo%3%6Bj>sj=l7Q^{14_j9oM7_L^k{e*gF zer{{N)>~i1@yfROC}dxmN4zr@V%`-DS`nz$;SCc?q^5(+%uau?`jV|3A_0VD2R98; zEJg$KJ1JK5O4l#?5dz7+=r51N-3h*wl?MLK&Fpa!3tspGX2?N4&BpAW%H(ZZKY{Y0f zf&Gmq%1pXQY=ukY+^UC2LfScB#@#z^HL22v8!Mli+9oUXox8EcjS?Gq zPiyez+MDZlA1+L5RVrg^-C8iC6d$*kX4=SED<3eh)`zLB%wNYxy~=x911??ufbPI(E=&ylnuA*j(&nh#ebYby}u$Qp9K99h*_&nl~(-EkCmMQ~_JRUf^I zubQz28=MB*baV^=_INo_*me_@UsDDyt!ie=3~4pxSp`}d&N-v8VoC>Fnl zKz(ZNTK2^7G%`2zP8Gj)nvlX)s~f)%CNu}-E_MMf1MU9*+`S2W<>yu3{nyx8Mi81( zmXrd$b|On-TX#0wu@%pFv|P<7mUI;@o^c%KqHShwMq6~HnUUjwL!k|Y7D{PZxG+Z|bFe=baYGRk@XJl8lH@qzGb}KfvI=LAIJ%1HTt3o!(BR zu<*ReT&=hQeS4#qcF=n{ob@6!m$MvJikQ&WE&@&1nIG(U2Ln?u4nbPi@s4Ng5^~Hn z1xU4BylFS$eC5v~LDLpfD*O3Oy_mYYz6p7we0it~i0k{zF+sLCdnbQf7RHXUy~>+^ zdK5|=X)C<$v}N}nOcn(g0niUD#bnDbYAPogsA-zXK2wV%!8UYwqIX4f<*Tk;t$>`A zEHb{chjcAqQWb+zN=3(upT9KL!SI>)v~3qZo|khKwTCoY;{%3hRM(+hFBvAgFS zG%oPtr|HvvP0veVTHbuyMMk_t%Mb*~c`9;%!T3P8s3gq$JY5P`b2>eBjVGu%sVRyY zIopLx`yqXqV zPV;B~(t&xEi9M`So7t%wsTLAuX ze&W)Brsfz#)`VSG9|KxZ?ydA%>X6e%?A>C$XU0^L;jqpNnmPW(gIy3^gW zeO)6Fos<{D2zBvu){O`o%_zH%>NBm{NPf@O9N$~ZwRg?FuU@ae|8SceGQvx-*ETj~ zOvU(EWmr(@H&nAJ0-EA|6`e<`JKOf@ERdUd8ZEaQn6yL8qolIvW_tntpv);h1X zz`nG*lHKbXFW!$%{O*F7%;vli=|aD9RahEraeYuP)64ng4dSNW1163;F~5>s&?Bd% zh;n*8{KYZbCC@awk$D3`w>w>4Yy(BVq(H0w!H!IIe36F0R-3!0ZxLL zI+DW+l&}*J3KJ2ar`qe9BTK3B1D`iU4*Id#86&QE*fJY2u_iAgBnBpXtz%K?OD{MM_NY&;SiEMl1nQ1UcXVO)X7hWdN_z zci_!-ahD}{Hn29#3V`_|cxw_hjJoqQDNcYn*k?rJ)MB6!S?j0`cE(|F8uMV^jtEVtL~Kx2 zQHfPiUuFzEslXOfqA1jl1X>!#lVN8TaWoGBLc~t!93^QMiG1CaLttC?swHm5QkBdW z<11^glXEB$u0(vGmj~|*CPPl7nNCa#F$cU3XyKcIug?j9`SKa4vzW^3O5f9|G{f3x*FcBk ze8I8@WO=1pb)4?BZlR{7;7n`#@h1@R+uYeZ$f2?kh}N}|40iy;Czz5T`app<8DQaR zDget=@TOE?NNwolT0ROec60B1N{{6k5wI)eTcDH?v|fApm?Vb^^AD&tJm~*#$;Fl{ zfU(#9!ko)LWJYaBTd(b*-~@mx!BNPl24hmwV}d~lR$MlkHX-MFU4ba63;iLTrP-K4 zfK%n3em-5CrE%dJ0b0WlsTi$O1~&ahMMP$kG%zX3JbCI48er|}-E1fyNVRFd^mdO} zdlGta7^@KLg_fxS79Xora9%SdQ6-7;t#D~8NqE^?#|()}E~LJ)RgM5gO64yaACc^s zm32%nFTLts<^y~5a{mjL$H!}r)z8(>BD{;J)SijckM4;1bb9)^ncCU2^)vM|wIPuD ztsBE<;j_Yj{(SxHxl=E)n4dhOnIH=}NLj)74Ht#P2n^|VC%fN9go+g6oT#}=^lJ;` z*2n0PhK-84rtX%V&-ji#WVpt_Kp%&)y?1>_@!U@2LAO1~1@ujfCM!gYzz9&VVDGqr zeLD@%UT;)sLW+0w%KL7X%jVED7fzxLosQ?s<#WJ(xkK^5MC@>%lj+=T%sLUQdti6^ z{b0pyU?{>xaW^FgyL-aDEoyCBZw}|)NExwoVkJ8FTUNhV@!DVvvMU$&@l^=rxLf2~ zaqXrUXvpqtUw7LMH11@gy94I@3-0sLr~Z-(w#jCNw5|9?VWXZYYTQft~QKv z%>ag-f+^dc)YOs99H3P0P!o~!Ws^@sb(h3GW+XO8M=zR27~9)TcLL~n@!14>;R1je z0Az4`Gm_ydrh)2ku`3eg_W?HFa-Wm1X^3j{sR)*C4iUl;l3d@@)fiGZk`&P-WrkY3 zeFDAX0y<(~Ww+(4+Sh%{2Xt`(xw_#Zliom|LzIv;X66>3*M*NwNS}eeTkGLlXEZ2H z9u`!H18_$3aVJPa&ikM|IBGu(jg4%kwlJPHfH8J3f0L7EQ}r3%B+m1qU~r)42n#v0 zAZH{gvUGWg4gwbpw17G{`4R@nr!%Z)tIJ5vdYHITCAb|lAOUsp z?n}_caz1Ka%Wg?c%C<*oiR+5X6v@FtzvgVxl{b4cAHuY99t|Y0yg|@uw{P`JBFp_G z3!0M)%;gcKGz{%gsp@(9_1*rWN=^iMMATUM>LN1dADgoJTl4EvbkDT7JUvQZ2d!VU zN0oD-YEW z=nnYJkSdIi+IrGMly7T)=Y?}G63LyShHPL-X;aMk7a^2NsOrdY%I}>a%^w;wKYA4& z&dXEdt=XlSvBo?f2ztDA+6M`8f;*_A_GZ|B*KfB$Ww|#M3n`sFG%$aPQkVrTmmjig z%Dj^rNUV%QZuFkI3JjTJiVBi~nb2jzc6TY2-v{*Q@ZHw_PLRAr(Bl4!nj*H%A*Iz{|hzM<=GL(}%M!Nl1!Xahus#EKVo-jB|L zN&nk?BTrnRL%jU=ugp>`_j&96ahItrcai`@x4J;W=Mq|wo zIkeT`Sl_<8juHb+?3=t7o-MnCjLmq>U`eRBM*za>Z^glwOVbEQ&39m%rn>D`kt8E= ztN=MZUl!@t4p^=2Ra(a4t9Vit11ziCM!mL`EiiEt`kJP^D8(@z2H=-Q4!3od+wXl{ zJy$?Z4vCgV@ABXW}~NdYAYwJ9QoDSeic zn>{g11$)<@%p%sWbCtwsi!2YxVC-$11L8~GEmn$Vo9=%hr$Q_-nhh!5i`)Yp3}-EY zDMQw1PU3-*giHuT2=x#nZ(OF`aq$&-bX<|p9~;OWyR3l(uZ*r+Y50)0Aqp^xqKIe= z>8_q^Kh+~gQ0QJ&+PEnYp|V=63&E|thtH|8aa7s_mK`iYqN7!!&@>{^t53c>!vzi( zC(-d=M`@DSI9ynwD(08iy?QV4dDvB{=4P)%8=`#nXxHI7_u;b(byE_iCYz>LuQE;i zvoZ?mcxCC88l-Cdt}|?D;u-_0v^4mNSlegIFhoW!Z57LFNR~EVZjV@$rfqh;E~~r* zG=+V>84J1#s7a1S31bRsn*wau9-0FjiOBS4_nI?a0-~zk3Ql7Wk9f-xNNJ6(tu<}Z z(X1_G5g~Uub`Oqry}ira(i!rY4Dn3PF8XN}Wr@fwZ80u+RUtqB@b(-l;>?uL$0g3dju z;U)gdoHtK$(}KJMzabnUtGHs`g$Y2ZRG4O&XSj!DQpK7|XACgmSJ3e_$m>|U(fIBc(RU~#26(?A;{G%6Y> za))z6iRTkyMjT7>QTwI?Q zXY%g$^c1E!w#_s#r~ow`>S$T4Ei{EWHBM8Z6xy@24!Qw6Ka{d^`yfLY{f~{lyRBY4 zM^kn=OB1sRvgkH@PVjmM*$wU|ZlEMZYRi)mWBS{^R9ZnP5ek2d56CtdiSiez!IZ@~ z!1b)S&8Ya*7MRjg+L&jZvhIN{*`xHMlk{$`R<%h8clGX4g}7=nc$>w9FkIp<*0#0K zSWFZz0Vps7kqZvEI@*(_&%CF6JXMNf;>-JU3VEl_A*BT)UzFXci$<~4I-9k(v*ynF z)>W5Q%wW*liXC;T*_fpXQ?r+|aX8nF#3UAWW1~V%q7-5A<}IXxsbPa$_G|Cp5~ehUs+P6#jcsIP3$GPN#Gd+L71J1|*upsYhy&YeHvw z_F=LCAB9sMlQ>it)Rxyc#XXQGoEHf>sIUf@Sw_b;qnsgciR1e5mGz#5kJL(CnbsMc z2tZ(gWAV6|^1h>T$2WUTaS~k7RT_MLa|eqC#JyX`MOYuH#kPco5Q}5~>e?9uZOi%6 z90-jfbg5@4Hl4$%$9+RGl69m@T1TpdUtagCfIN}!I<1zZAtZ{-#PH_lDGAo5%hK$g zz~kB$yxX*WE6L*Y0#HCVOBSg;BVAGK?`;z+0`8{kT04})d&u=KTV=Y`@IdZq_qK^2l7#zTal|K zMw@7nRLeb>4f{Dci=IKeL)rdpr*jr_F2fH2QD2f3)ZUz)n{{UCh15*$H-W;!hgu>l zxXTZy9+)t?tY}5HNJ{&d5wKu7p0a~;S^B;j$&=HZY-(AdkJd6gEZ+XCR#Vs19voPD z@KLA*&?qG%G*UZ~6}iS=R?FTE^Rl0DFLKebk7`BVZZe%XHUp$Pz%kD>xW-G|c%OK=|9u)XEGS@N1DO{2Iuzj6m;-1uj}K41kI ze((OaYKkL!(ze@ZP6vN;p1vzZ>3l3wpBK&vT=ZEg*Et&aN@Go|2#OrCz97b25p*D} zuN$MQx7=_e#+K6zV3-ZSNH!ce`EXBBFy0!&4W%I33D2{(R`rJ;;qBU?Aa|PAq*_af zDAMmW#FN5E7*k=ngL4kLV7#(f5!@eMO`am};yi@rlwPmSa@{ZnNsYJIXI}J{_ySz{ zD;Icln@&+VWT)a0fnN9RVHB_%rxGoYjihC2LA1uL3O^4je3tSiXnme^hpIF;$> zNBLmZWn!i+3?yv!L~E%jO$)}GJZVloV^l;OLE6vMRgTx#Jr+GRSTc7l921mnXk6Mq zTJw$3X(${GQQcN=wsJ0YOL8huwkx9xR~8zL3GlA1HFz}Q92BAX1;c|L{h-iE zL^|83ytNn3ysh@wxu+g`>WR0Wd+PBQvjQ;c=;E297uXGSznc>f{GbJ^GHNx<9{gT63?ICQpq7Iut&CogwXcdYec(_qW)!wa!?S zk&2d`viV-W1>B^LcOP)jmbOM}yFI`QM*nW;oP%R=Q&ys_CBY1y; z2x`c%>&0MBrSpKpRZuO6rgk|glrYb4O?AdjXq`I6_?;~zEbeh^Q8Djs-9m@I#&u;^ zTA%?6$LrXug?20-3!AQ49HiN-?E29vcFGbg5Yacsrb%tC_8_cl@Urf<`6%X?ms9SQ zYHEnk&Wlgl;PJgzmTCp55ua2QJu|H#1%ti-aRMc%P0koDbY} zZC?k|Eu7q400nf2@VmmAv8k*&Dx8HqeEtb=@iGxi2l@8aMWLVK$I#qD67NyYjocx* z2HiG1a!|@zCB24LbAdME4RQ7C=K9^_9O}IEl7t7XKG=r1dNmEo#y#H>Y1=T=<(+mb zWkKD^fieANY3l@mSzq0Eg(hG!FduBBq0~+ZY2PfYqRm0-=!FW|(Dko8T^@ z5|KOTK1uk_!3PN29+D?&BzjyS0c|1?)^_e2okFF%8B{E5-A%6egv6D@af@Do0_M_B zzSJB{JNJ&{_Tbn-wA(9PFIjaGra3x~pBwZn-Su1@WUgVP1a21!Fgyz@j-bzA@My^!u5Cy0u zr`qP)ahx{qBS8jKorMy@R_F;+?jE5^YfRqgs%SZXrxJDr*|9N^F%#Lde3k@31+(R5 z*MxLXSJe4_d|0_UVcfnB^)r<}@|0oUwwqtkGYD0m=HBgDK~02ln%v$K(-_YHKX8tFQJ2il_Haa&_GiI^mI0^USuHXj(NtQ&b86AUhwqy<+Z zg?2e_OyL0q0Mw|>rfHEW53VITKskFU8JGMjr)M%vr();0(_RB0+pjQveT7aII*!}L zx-P1uKTY~FKt30Zqz#EB9j>KgEH7K_QKa99g83RNkS_JLz1@vZ z;z^AgaJcQ=+;r3~IwudceJVOfEoF8mK|n2VR{?Oly?#gfP}rxf?;Jib=>T1b#{~P! zb?=_MXdpi#9+p9_qf&uKAmHwTEr~J{k1+VjEhS*UE8F?z@_S(DpV2Sam2o zP1QWiVj3RfRMTQIfUao27?$9AI2Up)C|kGND1kQF_~C}I!4zk)8}qS z5Ec`?wKimu@4#D;@dSkI*7_7Q;dkB5-nGyBaFEW*G8eW0HA-xBf>J^tBo^JBCP?x( zMH=xm(8~L>7r1)syqN8+IEp8S^kd5wCAe)4c8;y>3~7~G?S;8u{RcinyaiL0UxHN~ynzMo)<* zMn9DFbUBkqbwRadlQV2S7lco+xul&jWjU1gxKd4HU@o7r10ubrSUoQGU3UlW62HK~-tb5!x>SQ|e53mgHDz>z>5YiF z-H&b7hTiP7zgLlS@B$6qpeli&S6f}0644GLUF)N45(Mj^wlVGRNz-{gk1Cn$TaV4g zn(~3@Zk)icguoAV#-Wb0PCqI+yT)L4kN&%N0rzG11KqcVmpiNNcI^hI6Y0Y@F463r z>$`d&bFF+fD2+_Q1`d5kb!fB$rIW?0$t|k0v4MbA*QUo?<9hB6ToJgrj+`MEZ+Z&K zl{01ag3hry>^oq+vz^sByPr3QJf{bSk!*k5wa&vN?+s$k0@ZnMcl#hu<~e(ZLgW;&|An(Jb|vo)wYmg;*Vt0KYpjHL zbuNi?M7igS+N@lW;J`1^cU4L#(t;wQ3+NH$uq`us!3ZoyK@7yt!$BM?BoKX21wT|k zcOolBNMT@MIil^m0USlro_CmetGEemNk(O3+vrp~hn;mU%Qmx?H!<6}139jPYDrGs z&}|`-+(AMaiUc)?;s<@7Fen}_f=w#8kxlNelj+pp37CZ*{637*0*k-j!x*DK3{*L{&>dM z6CoNNexOl80^;h;keXbSRKS*nV`$ClNYbtwuLaR-eRl3)Mx}zIFwq$j+ zG#fn4P6Ea4V!yK*^vKsUSBV~HS-ER~oTgKw-ABBo;L#IimnwN-gu7xSe4 zI`QB@=fMa10g~PAq4^?T)`nMe!m(YMNt+Yp+GU51d@PUQt3{F^$BG%z$JZM$HM=m^ z7+;J=F3pZDO-?rExzqFL+2+zhV}1e7<_NetIzJ1K*1|Cj^PG9YM<4u?uw;hJzQqRZ2NXde>HQ zEQLEr;aq?n)V|19SZ(;GBLjyT39CX(&eO$$yjH)KxbcF9#a73e9LdcW&b+8yPxq|O zq-X1tCANDY)U<063jt+6MXR?-#BzaL3Q*U8K64(~3DzK6j8U!y2k{T8J>EpwM(2T8 zEKBQmc~vZ0HOo@(k+i(lf%gES{PxN~G*dpP=>3opx!@>3O5#+CD-`G0JEkI^oC}Mi z^NUM!*>0&M8{tZ{@y>7|Q98JaCJL~R>tUU#wA6H>>yeDz90<^LeoCi56y_!Rr-8|f z*$woyBI0UPB~u8QnfyVE#x5>|d%QV4&2qI>9sxcNLonj(aj)z|#}E&M9KoV|s1U6pm#2(^7Wc zyw2$xt45w$*U`gfDK}IdwUL9m2Y>~ndW?E)YT$#8&5Pd_tBsb+kBv18FMRRM78>7d zZtbD$t*F}N(5zQN*u$V*qHt<=o!3!wAM1x?B8vKlqHjs}Y;7Lqw7{aK(BZCgeq!M% z1--AcrGM||q*rY1;imS=;AHQE1IH4>&#FO5d6;lTkw73j-6}yEO?H8G=rg5MBWPJd z8D5lN-Kq>+lX2S+4i^BF#3gx^Bn6an5mtZfIwIv8C?;Qr+bSk)-Z;Ly#9EY-gwus^ zkL0Ro!L2Cvh8kj={#xKKj5>Jk)2 z&+`7}CcMLj)eTz+?NLx*W|6Eb1+4rI9ugP5MmaGs0^yTJhN#m@WO^7j&R|X@HWjD& zrAuBG8ymG9g!gw`wl(vD>(;XRz)s#Q0&Zp2F)%{8xFRc+UV?MarmLgfR2D+g5$@vA zc1Z?!%3f|aM^Xac&C(GYwS6Fv;wNHTgr=(_S;}Sn4*-&zZ&d#lZ5xi_B&105hHh<~8aY%&KItN{r@ghI;XSyq3rIXd&f3Pff=w>U>GRBfijV_?D8Fao=6}dSnT?S zUqoo1&u>k%1=)H&#};0WNE#WPwghGSJn}cy1f?k)(?VYb?@rFayR_xJGbQnB;h6pz zP*+IKu^r`Npmg1@SNa#dyfs3y^fkK2%bR}27{ZEs1e;=+CDHKVZKH!d7gZL3H(cJz zbJ}}#8SNv=9lQy!lmr1Isj#zWOO*ob=&=67h)8!(743~T?pdr-^ei?adKL>qF{eXQ zBa#yZfgS0tg7vuFsn3yMy3qVr`ItPHQx?ELQh`tv*l~kDgEH08Cb?P7@3i!cYUon! zdmU)_$$R^{lr&gKIacmclmNlqy3uJ<>WatXp&-MT7^PJ_*P}eGAC;SJtfG2-3w2Ms z5{yH;mo5obZ-N|1yUOkLTo-O9n`rMgjBVX2u@ZoT!Zb5PMN}mj^{o2pO}~z~?&VO0 zit~yHQ++LD;j z9e%juoN)_iX|3AbR2J)1=h3h(gUEr>7|I7jly(urgsB3HzuR*?cr_A=t;Svp(bxuhHvl zCsvqZR@2wJLE)yFw-c+;%du3fR5*8z|7Jm|4cW9hJYp6#^3Q#Nm1Z^I+B$$@_j zMmn(0b@c6|YaecN{Qd{^5wKt1X6V%qIGCxLHrMrd2y=v=tK&^h>Ps_o+105@p08V+ znqA`Lj%Q)9IX4$hd-2cRjcXj_Ng!LNilv3@>SAMlhDY(TtI8t>2QXU8{5;^9pe@w= z2}qeMcPy`x6hQ()9{EAPwheoO7VR!OR zR|_~8?6$5W;SUPEeMj^ztql|aJj6rZ5AA5XL76G~LP02t-C!WsWojD%9|&d?u$Ifu z0@CVU$qD5E%~>JHN2e8Bjnwx@b+{nqEmdnR7N@IZthn^$vQF%}T$e({V#^(X3&A#- zo_mQ$9p2VNRgSGaZe6_da*Zs;kgp@G_3Yu~c1aU?j7YFXL#<40yO34ccgZ(y^rkALEKj!)YjoJVd)LpZp-6XIJcngNq2~*z7~e>$I$&EO*$P# z*7UHA?kVnU3sB_m+U7Y`WXjefy&(y(^uYIK+dV@wQrhzAWnuK^4i~X&^cF`9s;R8; zNY0pCua%X@yABfgPV8GcDBwe-A7J8$osip}A56(xrwGfdO|HfW150 z(2@^C0_u%k^^O4Ffl!2i&n!P3TgC<*AExg8EhBg&RDoB*Z#D!&w37B-|XX2By7eEu1Wk_B=HnHg$ zJU5+WkxY1&Ln~D^+crKQ@h`VW93^8fMUw|4;EpJroCr)pl9aOobB?fuBQHznT7Wv0 z%8rraYy=l*n|2C=qoU-J%+NUHEa7t~=jp=eq^@U&ZRK26Mo!vowje|Fc+3#6ZP*?z z_8UX_7#&0RpsYCdXTSMM>d~WCj^l`JR0BDFNOp7F4!rT$0uCOgC4pFq!&dA!qEbS; z_Z~}&4>7gC>)uucE&h4j17)4O^CBbr$C-XJXo*ehX*9&trh>#xWl!TBdhgQVp5Ho zDRFFD7;iCdS4QVsnp~NCTVqqR6UjZ%c+Q=Z&H2Sv)i=L1>v7y!k4`rx8k6o_xLPD! znrnC>i{sC#4qc$Nt~RDF zUs+s8(KK=NdEGP2r;x_Ax%t*?VI0;Pj)vc@OrWXileJ34Kd=NqkwrMdJy^NU0!kFG;0al+CqH0aJN5KfY>HA_(5 zBHXR#MyHqZ&R<{&kvsaeIretC)w51re#cUylyH$|<&!bZViWNsS6_l6+MgdOXG{p`4*&{`B9CqwI<@9ZP1}Hh!J!|AC_WUQ?pkZ zbaSZzHW^|PRf26Ew7gSF5euV}jn*W0(cKNQuWQXr+5Ct)-74CtRpuX2UT=#GdwCTs zzO(Er!JO{hO3kW<0W0&s0#cWP3Ser1Hjl^WpP#cXxn|zR?3LEk*(dEgJY>3Yd35~w zB14*$heKjm?HfJs!W9F_?pd0hGEnKh@|Ri7*T$DxDbUcJoDMe!c-2JHYQa5zrFnH0 z(S4@K)VK(Jgc;Ca5{^OflbYjZb6w@RRIH6wtV4jszsMHDvC& zJU{2ICD_JP(sWbIT)0NZ$7iG%6NM4a+DvfQ#OUIvVxtKYQ;avz&09Rl#@xJ`HLO?o zUD7TluX2ei9p`M*XRSG{R&!lxE-Wf~X?FCv(Wz;hhIkj6lZ$YsSs`fi^dg!IS|v)& zYFPA-$Ad;Pk6+|jk4Xwq3cs0#1%p;R{qW`MB+d?G^eZ8f%Pq!o}90ta7O1^sPvdS-B3u@*A&^V&galF`Vmr zqx2IiDu_gdYEu(Bt3k|#)J(Vt1V)SKj<9>gy=`e{l+&f=^r9IRJGoy(Je4I;6?BR@ zb-Gs^U(voU$$e+?>5&`CJ?g8~9umckU3bw$ZXS-TluZ))sXKpH;Vq~uJ(>==ku%{I z!cmL~g!fe4q2%Qndt|Z(9LnTv=#hM7w3Idm1$B+)+p8w?W*ILn=ggalL)xrco+%&5#Q1ox`u;7ku-X zBCS}Ap$HgdY^@f%QV6&~G36x`&oYtj*q=@=;-rmHWPIp%lJc!B?xL!Op;0^FRDrD( z>QPC{!`rxn64|r{XS*j*0d_BXd#Itj5z_KPU^tiDE^>+}GGeAZ zT7&tCsg6n{=*uy@(6}B{{SW4p->h7~b=^5y`&7c)N{W$G2J=>Nb@84N=`C$fwU(JBD0^S-e- zpW&lzLx5x+?$BCO@$Y@FJH3OBaa6dJMKJG5^Rb0$4|0cY?P!^_Ux_d;3fnrjIJ>uM zdTO(zY-2cp&MEOv2)sByu!;-@w8If0X~FHkm5zk!?i!M-EFy7%vAM9B#SJ#M1cESj zRX`(5!%>o;=)Q_&NpdlM{B>+j^zXP5mx57B#6n$DS9pZ3aCB}>g1d==u$Z}b{0eAV z?gpzXyGyA!jpQ-7^Oy-8Yl3zGMoWe-Z!qq>iPNgdOPaQFqokQugH-5^oKV*_=E}jdO)DJT_!)}x7oN`=SDQ=I6MpPyOf4|TWLdbf zwCI_~MkgkzVhK%iS5!R*NN=7*@9Z<@5SW?u69f$H>T(L5ZA5;XmSme=XuQKdRdcH0 zIQc{q#9S55Hzw(e36d>%w7$ReE%QzFis&!&m7NtxIw7>4=6Uz~>0rV88^o8%Wv$?( z-QZI-3nySlwx-Tvfx_$XG4YP2rUh~y&l;1Xd?%K5?t~_fjpU+tis(9O!@PgVG}Jw7 z{pc7SuGaI>`LrOZjw^fw02@ck;E(=FI5q^K>iSHsf8hcx`b^!_7%-zImB$(agK1 z;p9Ly&Z&V9V7fHs_1)H1PI;QKek}9G(3T}6)YR>xHurGY+0h1q^+0h1&1+6DPwi|r z88ZbXgr0e}DVmz9m}8uv&S*l7PfyW9a>QxSJeOyt7G_2lHOtlNB8nsQB=eGriWD4u zr^ZBt0cW%u%pFu8Ib-0?9pgQL5#tV9hcUk0fhpG=L`k73mfbqLqBU`IDAS=BxLp^} zTx0QhSvZtX+fq@6Smq^92)K;~G%YCi?YJS|K%gBTWv=4mOsn~h%RmM5+dLC2R}RwzLqD@OH*hjU z_DTm%6GTz;=)(BaRCWd_arq=Z43@;xxG;jvBhRp)$F{qI(NhFAWXw@qelD9wPIYK}q$z^izX`Ru7|5p2<3 zc1iCY7n%TVDu7}a>@}f~Xpq@JGmt^s3JpX(o^?)X?9t(~Wu=$F@xjCZd-r5Q2=ysK zfc$;<>J#9VEXHD7&Ech>tGjr-JZD>u8bCWNVZgNge?ah5*RH3m8jK1=; zln(KFYR;vpbzXvHbRW%#HL8Qnz!cN2Z^2!$j^-X4m12Y=AO;#W6dM_@3BkC&zrxgD zw(hUo%|o{G{4p2E%@}u3<_C7EU+`?bs>M3dDQF9k3S+j(JI1C%9o1G_TO;{IGGCfa z(W@rr=@?%c1rq|vB$)~c5mk9;yizJe(jrd^2~4q?uguIr>(}pQqa`^OkX=}IC0!(D z4_o;hTF|NJUOO_QFc3T1&daWmDb;@6__v1)d*gRY_~6edq-}B+ro%0RemN z&PsC{4c&!0APcb9R~Ra&qxA2Hg>`b5#ez`_@m=S`BOyFdmf=u$S;dKMsAtDiQkZfQ z>khfRflMD{vD2q6s1TMpkXhK8Q3G&G&%|zKJ?Xic?dAhput)`vVfGxFgr@w#C?kia zut_}BfQwwuLkoj`oY%2|+#zf#u71GTk>S8%zU-_s2`srixsamVQ;KBLH`rUE>`~=2N?d9XER!Bg#LIO&~dHQNVwL(&q zDukJm&TLhCE~H6QXeuqzCSZ~`vpYP}^V|eau=XmyM@;0=sho!}Qqjp9v8E0q#knV9 zME+rYrnuzoij`8nHD=xNnv18W)aN8l}P<9hMg6dt{C%{+6R1X%}OC!1=`mph%2 z7$v1=vhq~El)Qz9)>B7pf0ZSb)=ey`4ll2k zmz9)!%uBAA?^ri+)w$j6y9eeP4-vj1!cd!}S5svSiA_bs7mXdvNTVW{cQ`cfH29d$nA6qGaAeSq$W=Ss>{HdZhjXR&NdII1AMJiQ_)|~t{F^52t1L_U(6Q`BZIq zxHezC!&o+!RW39htxYb&>szyS-9ZUKUALR!5U^`ba||sbL1d*Y=ycA@ae9Ibq<@Gd zC53h(^m6ZElwoe+PSHl;na%6TE=q`Yh*0fw&QfY_dzq>p*BR}W;mI%RmduG=)3u9!!N;c1PoP!CZD-yikMoh2xcPoB-wL%adu|ShAz$S0wWp<|&V!W}Z0BFE2RxdbRcR zY0r`7o0T7)p6N-RwYjB_HXkwlywDhUEAzO~_tY`|mio9!;Hh;qx1>0FHS{4*ropyk zM~%2AOR0KKiaA40aIh zDMGkp_h`ZkD=z}eB3am$jF$~68^bawnZc`d7#j3S(`K>{7fOPfk_&3wIUK!Qd)Odg zn^^DZBa>M#BGSLntM{H}WuaaNQs|*wZ29R6MDpD3`g?msUQi_X#a6GJ4=C~m!oj_& zyr?+I$@eJrqB3#_-2^oQm2Jb9N5di6p&>yU&bdV;Ha1|~f(ck!^H^HbvV6_rN=s0o zX{jjz>j*2>39eWJxD1YAYXV~#P}*r3?7`cPiXcN;P3Wn%4Ms@Wv)kZb$BqVNY*eK>DjuYWTg7$$Df}A2tleE{=0=qF5oz76lMD8eDZ*-ez3Mh;) zT2qi_?~H`XSATS5kXKL<5k`}2l3k%m$i=OJzo5hqJ{*x^s}sTbSL!8vPY00_{s;2m zxAEJ%^%5#rIE9^nBDN9dbY*XO^@;Lb6i`7R2bOdIisObqcCC(r-3vAv@jJ!KH?%FV zW;-l#a^koYr;Y+M&t{ty{Is@Z&%*aSjywuU7v(92&HA-W$$hx_Ym)5($k>}2MnG-q zfsysK2|aYp+#$N9hgru9&El`asCo2OeIM3 zrfUhK2RDaKalPFf8alNlN6!ZN>3fKCfJN8Cf0z3`)Z4Sd^7@$b(HQSmo%iet#3mU_ zYB@SFPJ80N+TXHQO-f_+?~_U`iDrMILw84`^N-J6d4uHp_SC>3-7bwS?*MFw$WC(TIiSW`O9=cE;? z`9M2cRR$)B*#e%?O>4W`JN6!=%4nY2$npRZ=k8Jl(NH`??jmLGE~RXDq>@vO+&Tqd zrxVTL!Q_ef1s-$D`_!gZN|E=bC>)w8QgrD|x+AqSwWlwzj`)GgtImwqTB)Ng4DiQU zSUi3IC*>^c@w`mWLMo48RFsE+hvxmtK!}8|0g=t;rjQ~HTM0trdSuXHuoNHySTqi9 zpUUr%3u#Yf7egmlujN-q=Cx{@*99mKHK5O~0|7`2mWk>JfkhRmVIU;ubx}T8r@5OF zOTJ3!(pP4i#E=30aLzNWM6R%nVE|uqXv@Ko1%tN+r2@<%E=$)+#lF-Anc)dh;easf zsPYYy;Ll1ikgIO!2)YH}<0g>r0`hkg0?QeSDfMP)6*Gk6FqNz54EXtMLtz8a!e_+~ z&GKd^bkqmzVWLWWBej6(C`u6bg83Lge}&@4ryyzrU{79u@Stc_+*HDnmxJc+B>4qP zsdP^RbxzMG(Ba}|2q$QVc4M|>I*Uz1PcTaS*Qv3FSw-%mv38TW0=Za|4x^dJ^Bm1| zElX69xMis!tkEguU^Jyuz|bj&MXW%cZ>h*tqb7(O&b)`@ZE1$4mJKoNs+eM@4gpy! z9r(|i=YcfZBXs`enCqgIx(rbUxy0odxUu01RTI&k-smFyo-Kx9=uFL6G)@)Dnt`B{ z=c;S-lF^MTAw%S!&6dp3tQ06I(0ShELZz|^WylR5*39U_v-u{=F4N_*qz-CQY zME#V7FE*ECKL>k`*8_VMBBN86uZ_=H%(cmdcgoKT6O674*}~g5o!rk&p`5qyT6WhN zU!M|LbGKo)m}U2nHgc53nPT~6_&zrMRIb#1d^cAl;5Zd7iE!Ov``YKkh|ED71`+0@ zR5OCCLzT~!)SE7jq_LiKn^Mk(EwmC;Q%-5GKv2wUZ?C;z3S>tnz^5Jsh3Ng zAkCo_NYY5JlGW%ebcL?*x)sl`BZi<#xo|QK8*-?L{*^T!bCg$U5x1r$#TqIb>2tHi zXDk1FgUOF=f>YSjuzt#Kyq0oIG@G8oIAaxZ^$N?OHD$tIvL*K=`?*DgJX?*~Nv+rx za&E9fVqZn@mbKfOGG0eTT)oCB!DcyHg0QcJO}w>fUb1#7AZ(cH%uhV)mi$P5S$x>n zWG_u3mu4#Ca81q3ghF;aAry$KIX8-6vnO@NWx2e#DKyJ<$Sn*4G4$Jy)(d9w$ zBJw;#e~~*mkU3TeT^yr`gq!u;LX09DHP&N@`APnbgfWarv`dU$Ib#?X(l9Q>FnSvq zRz?jhgo{=tv3{zPu=;8?f_xOr_rclPggLR>kGTHT2oqN-z1jja>NAj1kBE?!E`=j0 zF46DS;*4a!XL43lle9pR2eq{JE9H+xm%B8ud zwcpKKX2ITZJvsDj7aAyEqELE)6YDli0lHt7xLnI3!HTYPFa!B>(95n&)9fPCZd4;N z$hea0I(RKVofM)Dpz0j34d(+~ZRu!C#GepJN@)s=pq;sNsvojM+nKD?A5 z|MZ#@lyX>AIS&id@t(m|bj~6V_S%_)4v`WgYkq!=EwEVhve};5^{Eer|0f|AB2!Ja;|^ zeDn*nsM3xllI8P)r$}~vV&pEL3YCG0m*o#nc)eFlk4hud5J1m#MKq=-IYBZ%P}v1f z5(&!FD7}_p<#WyW9BQTq_xIOkb<>Q#VyLsaZU$Sh=he|G zXRRl9s2jK4FRrP%5$9?fdJX)r`lx=}8^@7--MX>QIPfJjO%k^{@A`bN?QPP)N&M?~ zmn8z_1WE5Bnnn5jUN4cy+B1 z#c@@W1dh`aS{V-8pcQ~TzgYZnvNtw(gyVU0OSnurUt?O`TF1f4Ct~NPu?$VM#z4fiRtas5;TI%0Qk4C2(5Ce?tWfP;%x6az{Ir}|t zzmM7Ph$Xi5m2K&VJ9^?_>7+xcxq1zn=0* zb3bLjXV19hxzDOfFU;-aR}&PjCdgJ3WUC3X)pXfUhW%976z>sd&nCyYY<_fN>Y8SD zws-|iSB<%Be13NPd5MWlv=&=JHPQCOue(tyq^LQ!Ot1#AGmC4D&ded&G(RfS@=WgX zta3*o(;(O!xzPgiJYs9;vf}Q^tiZ0W^AvM>dysX^aY+|9w!Vj*XhfhM5Y&3GhXixf zClTNL&Er&v2!Nc`gtGzB4YstUJ#ZR~=S>RAP#-s>B z)DF7{Re)VduCL8=2QAB!WzGw(^{N@rRNUa^)6szjl}i#zKO zGq?bi$O63E?U!D939MKF^loTqNLLp+)F4eZ&#?+)^Y@E!f=HDPw)!AAzO!6h`>Dj&N}A)usdKpxSM27go)+!fUpyu%-Qw$$J+ z@N00i5<$s!S9l%_@fi1;+6j*3t72bPQWc0FG;a+g*P45+KO#xbq1V?g4ES=mV1jtDuuunFO{dcYOaV3#52w7l@%MHPBJ#^f}L8mhJ_DEg=bvwav(u}Ro;d6YMe{o*~=x% zwRkqq!-Dsk8CbKou{8Ke|NZov7?DMl7o;nR~NbhG0hRR z7|@x}8T*VJhlj;r=GV2d4Nw3a>?v!3f}M?h>Fg=PD(4_b?+c5+JPnnz@EWkP@3Dhl z+OBG8Bhz)8^)ukop=Qyw13qce4q>Y$JiaSraNWm?KWnv!iMb3MT%W!^P&( zId<6Vt_RpBZ83d0{(5eml2TNfl8=^rL2lv7$clF~ zbsJLZc04nk_q!;p=-L<>XhUHJ(Pf|K)XKr=tU%SdQ>Ajn6XRz@m8%=yQ<)DKyuxWy zYqfG9S}O1Su*m~BS`mZn#|wx<=-1%T>8M1y1!987*E<-AJo$%sI|AV;U$Y@($yv8r zXz^XJTEH{o%~%%6()a+g zc*v|G`jhrGEtM5A05Q}U_KZW|5&0wU*YXu+S|mjiKgr!iYfUq$41AAh`FshbEk6?G z;CWP1B$|HRIPIe~CSa$%0uR(0iju&r*Os9pr%N7GKWVTyE+uqXSN0ls!?HwnOIIk? zVV0WD&7pq+hC$NQ)%H+%r?qZfk<1X?d&U5&-3s%%V8&*jM&M9+`LfZ%)lj7g@~Nnt z6SIL$Zr_mq7k(fNNgE!bFbEw9Y}l?F7s6>jxB1vjz4exYS^|8A9iKitq=s4-)1)$! zbt$hV=%+iUqYhDO7uh&f%o;Dy4fex;t^pa6T(Zr!bXq&|WMxt(Jg?WX z)241WsYkhw%we%!bP_^x2|y5S-_K%xBz92xPH&-gp{E*Y&zHX>kr!i}gwp2uZ05UE zI#T494v86SXsG$@sZ-e-vN!PJtT=Vzyx45BbsYT(hO1V;Apzgakx_~2E#>DQaMX+7 zd~6jPb~PGP=rH8HH%w)w^~Tq=fR)`&0nO&y()$|KUg;S+VzlCrebV+`-hgf6>|JH) zi(s`q{*Y1DG0`=YOYtOwzCeq@zQB%-kWstm#4*i@qlUJXa%cBGzQw6Ix7)Uv8{M@E$$cdo0?s z(OOmuTxR~D3G2}h1F5#GeUJ?e9kiMAB4!9oq$n^gd-d0DTHxxEG7YU~ZuPQ*H)jWM zEn08rDFfsJbq@zXyMZ>&?m9F8EuZ27rzl5WLi4dHv+^}vfs_ev)cHEU$urofH#@iY zZ`=exiHy=7sjj#*l@l$%V7+PQDfaW?eV4=`n@AEM6s(L+U8fE%y1)q`?{Z3jiy=?a z?rcB#0g@R4k#<^OM8n6TWV}XiU?2H>Yt;wes1* zGG;l7R?Zkl%>&WZIBjz^;6rq;a^P?D2iEKFZ0}6j6YhTJ(dBK45i-}s4n)Bk)_jtyvD}(W1`?TY)xX1Z)R;{_alJGt@KW%}uZM2>^3SfMGX)Kj6;UcrEm8 zwU;*9D~9ak+97kmNKSomj6k(0^odf2Oeh(+l=W8{pG<&5TjLkX=6~OuDtnUKR zITn-xvPdgcP=F|iL-q=rP>$t%&@`P_V>FHU_s;TYs?%5PT)n|w8LHTdX?HlvuW)Sk z9gfuLLg1{F$S1DP*%ZFI^Vs>fX1bRF{4MX$^3Fb!Yv+I)!>xh#K)cRIGN>+{CtM~( z$WrgQY?+R-Ix>VJ5mVD_U&}(Cy)rd*OY5mJFHK)wZD8N^(AYYl@yj9uCgLk~mbYY`*Z2FIhq~_Y0Ko3rCIQj1OZu6=Bx6)YzD}U2V-ji|vJ*h`cmzk2SAbdOx@1)N-{g)i!z&TE%RG zP7itoPHC~p3ku?daX$46mzU1l&Bde-A2Xf4+cZA&&iakpxnn3aJ)=l-qv-jr3j7n; zCfL?DTuo4GHP%_yD^RVrnK^gRnp7r31UV4FWrO?-7Xah5OW(yU9;Gj@pc5iF?30TY zNL(O3%#vK^A!;SX?n;RyL7uSGs!F?u;L8)cUhf8`NGgDod#izTk#TGq?Dli;%3 z!qP1lU`&4SPjJ+2b#!_wv`1oYw5pXK2CsfQ0rvnKy-O@Wn9^&bQfZ^3D}qJYBsi!k z4R>AT>xr8^8`UG*(6JWQZx}a$-4fb{hR~(nv4}f9D|)1s_4ixHRAGuSHv)n)hk@A| zPb=!h%kmBr5IjLtKd12N#kEh0N{5%q8`Nh?{lK7sTHldk$hB>l?_G*vF<|x3z{dW_ zz?pODw?1&@iH-eJ5AUB_gMg=XV9U7}PyY^$XncZX8CY=PJ0MqiZ4?=M&)(V)(-#Idae@xK zwC~p^39Q&em!Q@@Fsi&7I;XO^=iv~VH69qA{F#_;%x5!>AlsEdjw8b+x>p;rJ5sTS zr7IUBrm+V_IfxLA^ZFTY>hPG8m0SuLp?`duCux)GoQt^2>7Wt^Tmv#_=fk zUYMPnADw9&lNXLrExQM^2jQ31RZHfmO%w-yq~b)OG2K`miO`lXc&jMfepv7zLyMp< z!N8tUDF_W$=!7l8yo#2eD2iYXsMdv&#IteEG|t^0ofByp`NU}XHYOV9$96V5Yk5i? zA$qG0IXN+v*Qf1lnZ?9R6F>*UTbZ+3WJkd2nbBP1(qrg`dLRZ?&Vn zTQ3x%`CboLhRcN5;D&S}>AY*ua_&gGUg{uW4|_3}5kR=*-S&DX*!*=n#tjEo6yhK7 z1L7_URGJTU^ai+>mmC0Ks7tl;`A`h%1!#YYd!4E3E?#{=UBqCv0>KO--2#tw!4Sza z;&8&sp;lyf@1nj#N+{}i5L1WI-(&l$4POjMovx#YEap@uzH@WBRFpgY*QrnJB3xE+ zs<11-HQnmzgk+$4XMY!}Cd;Q!=@BY`k_I0m6+5c&u{)W%^O>g|opZQxp>$5-SbKmq^ zKkv7F{ug}VZ?8S@;G5qv@X+AUsfQnVbhv){%-M72AA9_Xw?6sQ$lIR2aPgT-qhsSt zv&&be-u~?L3|iISG0*!1&t1Lt{5xNG*Ng9NebMsDDn!j2H{0*IwXwOiz4KmV`}c3( zxqI-^`(A$k7k|ksANbPW@nv8BJAc;)zv6d)_M`vqCx7avf9Bu+?8koY=l{bm{NjK7rH}vefBMh=Rc1Y9U;wtA!er?GRK&B+`iuATGlf6i(3sSK_L4gptevJ zm}eALHr7LFoDW0#ReP2B54y0VH{!_ljM*aLAWkw>Y;rMnS8&uS>d!kex}sfQuh)u}=h0HRg1Cm%$y|rm zpO>-VVN(@F39L`5DMq1`*VWKii#QK->a_p_MwaL=DSAw+HOs~zAEV>jzt;4zb08hd zL5L`sJ0?Fe<}9)7ZM8$%lO&#iat%6y^G)8ex@sA#mqs@)>;I(uyw{@q(rEQ6zcfm; z(bVMY3!(RD2>eqJOz23l6yDXc>&fR{gLw&ANyBJ9n0M6!5BR&pY^-f$lF4 zbfnX?)T4DZ^)q@C?QaY)wV4x3(+mGXb(a#N>k!c9LI}vq_Fn^ zMC=Pjm2;0j!HxL7UuXA=@}naWTa|F$xW)GO7nXN-Sz4*=T+tNQi0pbsSyS?UveHhi zaJ?4bQ#zHUol))%r-tH2SCwto`xlD}t&xl#<=93B)j!lYBx;We@Gppd^4`*X(LKx% z*xUd+c zgg6!>F2N&|BlGRRf3^Mpj~^`JRHycwl=>QBE5!CSe~QszWOS^z(a}^GtM7hN6W}Hi zpZ|ByfHd>n=KDXn3GshZ2N=2XlbaCiAEsvL)dGa#n6FDJQ5ShZ&>lT8J;|n?9nM?H zPgWtsR=-2bSpLu-E6ZOeRWM;xWn^7qfSwyu$(iSe=r+H##ste{#K{ ztd6i$`@&25|GY1}8Lz%CG)w3Yd-DdIpfjW&@TLn-+TPa-yUW93-xGRDuJXY}CtWX- zS+Xx`ik|U7okP8!d$OoPJEY*S=|uw5vqJpx_sTXd)=0q z3~7Bs_?mCmdGqr9Z;WmK`d&?WeBQEHau&=2t+C?jwKmvRaNbHl4^~8V~vt@|eTCm?Z!rOK9rFgvXJCF4=8c%& zjQLE=Z^3*P=Cd)MgZW&{n=ro>^Ld!xh7p}k^tvy^{B}$YBO2a=m^WkIf*HU(gc-yP zVNPKl#yo;~6f=y`=bXlz!JNgM!<@%FhIt(G1m>-nCoxZ9Mlf%~JdL@4xrk9GT*8cE z#xUcU2}}bsiMfoqf|b{v77dWBvl>FJk@@=0ljjjQJ~=zl!;5n7@ws8<@X| z`F6~AVEz{7J28J7^LH?R7xP`14`aR?^Y<{{gZcZIe}MUin16)%Ud%tn{1eRgVg4!R zpJDzv=KC=p!TbQ`2Qfc{`4^ZU#{3B8M=?K!`EkroVE!fMUt#_==HFocE#{+`e~0-= z%uiu{8uK%le~O%nE!_P z1m;&U{~hx`F#i+tzcBwB^J|#+d!=fB;!E8Bi7)vz|I2L;|M)YJzRPlWLaV;3n(pIy zc@ZAP{!)a$F_m-49UqPIzb5=&H0t3W3VSE)xk&fQMUUSJ`%Ks$)sXUc=8{?bP_e!x zH>?0_LmzP`F!y2Z$GisfTFmP(ug9FkknhO9e&Rn3^XZs3U_Jx$n=nUa_!LJRQ~xtm zm7BRg*#G_S{=Ua9(KP-(Jnr^KqCa1G+WpxpVVk9<{%?%>NPqIHugu?f;>3OY-5-Ci z>H1Sz{iVEHa1E|+taYp)ex$bpBQX=-*V#SiMbOWJn=;*uASI9aplCfop|NM(1}mIgWD?o`e z+1-#7Gq zOWz06hsXCAKoC#}L(kAVufd$eyum(4pOj3>PNe-k6Xhg3#V6Y)YpM(To4fu#x9cyJ ztMS#}8NRgo&-d6flqFL;^w0P3n#J*x{`&NnJZ|?0swVgp_%s*oPt($7W(tU4YlIrs zr=?#0vj%rHxe|Y$r6>ng+{E5jD)Vq+LMj=4<2)bzE|q=h&Lg8%$FKg%C9}WoyWOsR zmD{g8=XUm)VSg;9)r0PT&yeT;;D2`irSFP#UlI1=r6v3OnaEeO@DIOh!1I0XFMGOc z-|6;8zufIt-r;uk3z6^BFa5bctG}NN|L0r$E6oSJoatZm^gDmk?GJyc+u3Z`Z!-Ip zFZ)7I|DKO|_y_;0+n2s1(oKc^)6aN)KOgnoANBu4_&>|jy>cbehyBXs@Q3}%Wcb5= z_vd;2uQVb&>{lk-|DHE_{0D!^{g?hyq&okE6vaJc1-_kkKg&zZhv?;(qFuE-u}Kd>i@B4-2YQye@}#e zBJA%C`y*k$KFYZe_S0d%E$or7p9=fQu-_W?6K=n|-`klz?*8|@-u)l^A@^VU=1AWT z`?2W1ACLa~2hpDM5q~c12f{uZ_7{d-5Bt%uKQHWu!yXFzb7J2AVwC@o!vFZ!ect96 zcCGa-CuC<|_M>0#?S0QDF3F#L@O#|8^wn->Z@KjO|LDE^|JzZ{hoAY{w@mT>?>*!5 z;2($mjbZ$LVNPRzP_se z#EGi^zWb{F`|q#%U-O!(|Fy5J`d|0Ds{i$`uli4(bbl>x(FX=|r#oKzQT9AJ-9FhB z-|e^KZc)UE`-ScmfA`)0=_d>=dSjp4CvOyy=K7q9zppDl=p#7iiTkozA2=sPoV;-m z8Qk{v^yP(oU{HIuyl$Tyq(OcCI#3 zdt;w$#ea_y@aMMI|AQXHulMIa@ACh%E`PJj|4+L7-`C~;{*r$=+-`gQKU9jB^9M@) zZwD+b0L##5jF6<0U(d*EdI+)c@bx<^SR?|055p2K{+^U+jt>D#bq& zZnwSt7rN3nys*5y%O(GBkNj?*9Q^$7yM1!-3&ZdB$-#P*?e@vRbK!UUk?URE72x^hrCkMYH{BEBd90On{Fl1?&y@TRa76!t>`b3*t%sk8?{WL&;J*yN z+l(*i-a>lWNT~<#AP4Zi5#nVlo^S8FfM2%!uZs%YJ~{YRk>71^ z@86Fwt@knVT_V41&TTJGbPWIdz~C=OyxSg6U*z#0iFmh9 z4o(8M#(`f~O7JVCrb%pfS@uOt9{=ltr+xQV@QLh1m;b&l|NUM5*L3+`+vR^@Wy=qq(RT;GZ24ctehI&9`M(7F{rF|e|E1Wk;Fm4`mt+49{Icc$AolOXFI)bv z#QqBWvgQB1*k6TTw*0>j`>XNGmjCOpzZSo2`M)0f58#(A|2O?V>|FNK;x0350TqA+%GxT<+~9ce#?h-Ai)E1pbVNh} zLF|eRaQ~=?4XoG^+yD3bW@ca6x7RNrn0Ghtn{WDj^UcgR-^`l@ydF3q@f!g@0-TWe zO@JQ-PDmVbf&Fpdgv4(H`~+}9;&%ex4xEtq-GFxiCnSCk;HQ8S62BktUf_hp9|C*; zI3e*z03QZUNc?kvp9M}x{0o4O0VgE>B;ez~35h=q_(kA^#J>#qCE$d_zXtdf;Dp4# z3HWv3gv6f({1$LR;@<=O4sb%^&jEfPI3e*L0zMC%kob#$IpBoEe**X;;Dp3q27C!P zA@N@T{tP%F@mBzU37nAlZvbBfPDuRsfWHM!Nc@k0e*jKM{4aoi0!~Q$?|^>=PDuO> zz}JBj68|^gKY3E+gp%K^)P6B4fitN>0(d>6n`zzK>p8zzK;T26zZ?LgMcLJRCS7@uL9W37nAlv4BSd zCnP=(a1L-n;tK%h11BVY0^ma6gv3t*Tm+nucrD<`zzI1&y$f(La6;nC0G9$MBz^|q zX}}4I*8!dhoRIk0fbRxQNL)`W2JB)i8cte{aPLKULWXYyYyeJ3ya~_&PDs2Na3yd; z;;n!!zzKOtPsh9` zkAmgXH)&kK^68k@;wCjuW2 ze6rx>E2jdV0(?)6PXoRe@O?Et1NeTx572lG@V5b<_`88G*SG_`0eF+fTY#?w z-m396z}tYk8ea!I1AK$vjo$|R7T|XXK6mBa!0!b9X^r0x{2t&BYWxx44*`Ev<6i*& zIp9xd{Au7%0)Iy1UjzPS;NQ^rv%tRz{JR=|4*2(gzW~Vo_9MU?@Sli(`O2RGe+l?6 zwEwRGe+8V7;a`hc@!w(}?9YJ2*}We2tsnk@aDPMif9m}H1Ng7l7@Lscq0EZ?7yb!A z;^ly)@swQ|SN^*IuL3?+`%eTM51f$Ur^c=L79#o zyOI9+zVtWw(r11b`0$GmZwumIqUl9{?+NK66Cu1LgqMc!vJjpO;pHJ*ZLeFmysUH< zoKIMmxjzZwkB0E6`2wFm{pY%F3aa^OOx}OfL9c0l1(OHSYd6n--(PBf1(W;ItNgiO z{<~qZtD>m#P4W5v;0MZ2!Sd-ZXk0;6o}X(sQ@^+`KGXea$p7UK{-h7T>1QfG1y%a0 zYwj#KcmCBGEdL92LHw~0eqRWGD1<*A!havap9|r?3E?-PC#dKA>C6A6%Az3j z8Q{xH<6~?>^7oa1mjfpxel_4#zzK3;vWJ05O6}`9|gPtI3e+m z1AYuRA@NTD-VB_O`0aqV0w*MX7vLSh35kCS@RPs^iQfzOY2bv!9{{`$I3e+e0UrcT zNc^*ap8-xt{4u~sffEvc9PsnN35kCZ@Co3A#J>di6mUY~UjcjuI3e+`1AY}aA@Oek zegilm@$UeB8#p2H?*o1pI3e-p0e=9Tka!O81>l6le+2k{zzK=J1o&g%gv5Ua_*3A7 z#D59+bKr!;Uj_UXa6;n01^hK|LgIe_{2g#Y;(r2s4LBk3zXJXlI3e-Z0sjV^koZ3V z{{ftk_t_Ds>d<|eb za6;l4z_q{$iLV390w*Ni1-KqKA@Pj~E7qMz+2;Wg-vW3(@C!A58Q{ghFW2}75?1`m z#4P(-K!(2&@I%0F()eu%cMHPbp~HU)@Gju@X#7FI`+z^J@y`K10{rtD|03Yyz@OIm zR{@^^{&kH%3;0do-_^Jo*%d^u3Ox2iqBHVt=TCn@&%X+)`D~ic|Hs;2!SH;yXa%0aww{8y1?E|p`(ZGTSr~h*M_@2#SwDbz z2Ie-H=U|?Ixe4Yqm`7ng4D&~rCt)yWSs3@MhhRPkb5RM-4#Qjkb12MG4T-P$B+?nL z%v#t#4m*tt`^|tf8Q5BX z>~{guoCEtO0cm<*zZ;NdBkZ37q&XM%PXp4N2m3vMG@D?*7m((B*zW_Rxd8V20ckeF z{s17&7T6yIqZi;G#A1C89|A|TBNV1Ejb<{H?a2Bi5Q z>|X+;xfb?k0BNp+{mXzf*Teo5K$;K1{#8Jl55xX7K$?%h{&hf_8({wiAkB@ie-n`A zqp*Jqkmh5se;bhICfJ_^r1?1P-vOk#8TRi2(%b_3_W)@=0sHp>X>Nu62Y@uU!TuZ| z&F!#14@h$d>@NV)+zI;+0cq}nJqJkhN!b4nkmhdKUj(H26zo3&r1>=LKL(_^2lk%; z(%cLCOMo=@!TwV~n)_jY8Ia}y*nb8{^C0X$2c&rj_Fn+fJPi9U0ck!1`>z0L9)bN8 zK$_3O{wg5Nqp<%Pkmhr+{|1oeG1z|#Nb`Bve+NkO1=xQNNb@-Ce*mO;9p*J{{sH($ zZQcOVV?`Q zH_R5;=K(@)vEJviUkLk&a616zBG?-NSHN5h`$^c8IT7aCJ=J#*2V;yo0pl^@b#TkV z&T)2`hS$SwJ?s^5J43?{!L3W%&(iS2aBF}ax)p1#h999D%yJn2Jn~WCOZHM@`go+v z@tkm}&y6#$ai@Km&yVwi@uU58pWi&6AMKmq$B$w-&m;jk*IW#EK8&s1%eDI@fEU2T zw0nhizZ7sYOkBHHYWK?kx4{?w9J9MDpPRKaV=r}A7;}Cw?=VsC}w#fC-vDGi2uYVe1AY~des{vq?_Y5H3k-Bn;tt)OxDztY-*g=2!#IS0 z_qmz0=+5*^nBMZ+x&GO?{@JTrD{CKqqLnzHcpCOI|KjKau5B(NtNIa(fTD2R_ z@ktosabKDyu0KB0rhCE{&ZNU|CM|}edkMm20J$zX6^82)LgJ;p_>G5O7CM@BFvr0x z)R6cD?MJ;1{ixR=B)+TmTdm!W)R6c@_?-*LG-_d(CL!@jI$j&>OzUV3i9`F{*ZrC5 z0?ldDrWL(Ia}ICOoP+1M1$@t$WA4+Oqc7B)Gv~C^kpP}Ez^P-6aaucVn*U}{ z<2=mp-1CO~=o?F?6Zrysz)~#Fh-KASUdG}V{Ub=PbeQ>;g>(&Pz z1jM83_t3-BKBF8$Z&UwALhfOd;XWI790bmEc(baC`h~}d58!!1!ag~OjEhA1ViEVJ zo-X1Ma-PGxVYhyDtGOMPz3aQ*^8$U}vx;rn51z}rJpaPht#Xa*);T|BygB+d*?a(4 zaIt*prT7(! zQfvGm{!E#JHS%NqwZ{TAR&|~rZoA^GYB~|Wj8TeT#wfurW0c}+bo%cuelSo1^O*b`RsEiTRr= zrI=^UxA4Q>VqbtWddEkW?F5|eI}yLcax!9{g1-s)dUFDPiDijS?G*eP%LM!y%LJUf zTZZ>(_$8KQ_!{U;@jo5!v+!Fi%=z8&Hf5NAUuL2GY~OnVex>DXtKM3UzXo6E6|f)f z!&MrM`0W-iwPLn3e%&Sb*Mzf+-XHx+^`GY&v>E>>=%pR>Z9?rnDplOTR9@- zFnmZ_(9UNSdM^J;&)Q_2kNPsi1@fL?&5^&&R_}k| zdJPnhs_#JDwphLYMb&wrZk(6RAN$Kd;}0eL`+Cjo!d`uclJB;Pi?0WV@sEAA34HAR z;fu*({JR9{Gi^R95B{3jNd1xT6z_R&$=dfa^1;BMmw<{#Ni_P|6~EqQ{yeIBw&=Q- z$Zx(e)WFJB7`iDkh3H(PT%*<(ru58hN@V(l<#@BZkkY~WbA91=q0B(sb7h^P=%ebY zTF=lb3gU}{Ayd#_!v5RIt8exeDJ)-f{SJ@rc-pmi`xK_%f0x3NkULBp^ZOO^^gm6H z{}i7E^Du4((wC3PGa3%2l~ukfZOLN0zWPtU!nzKm;6Z8!v0Ve>K+vy$*tl)l+onKo z!*O|>{Dn)XTp5BkkLy&pD0TkwghKhse$OnSjMO1=x%U&Sza8EA6u9fm_I-0#W~ z6t+Lh$I`Maq>L(WxQ>kLe^?entEl?3?SoG^#cjd=rsWM?P5qfSOK)lrRTavV*7$g?Y)#XybY%$jm^jAO#PvfRRJXFJvubtI`qAz0)!(Gy zhf(eC^?3gb?8Q>8&vgAIq}{j}81^rQ_Z?p4Zbo)B3a|u*5BwaV!t$+nMCIza5;xov zRevv}viW&ock~U$RxJ>&kEw@&VgF)yba=ljOQQO}p}s1CDG4!CC$Ib}jE6Htm8uCF zU4NFdx5wlfu8%3Pfnool;4Dvg{x9Tz&RphExs40-<=v46|9Y!`u)T=|*Q`uGy8WZ- zr%Ds$)0B$|ByBIw}xl;r(x()*kZ~@#q!$J3s+cwHI{i{O$uC> z843~dDb}W5c_i4NUrIXk&keoXSuTHwsPYx|IrciGnNU!rK>juLFwmo$aTzQ$B=J); zY&U&N)rxN~w{Td62U{pQO#fU9*TzB07W#X1H+362^y)jDHgDA8?Bb_~!i;~ke#)z7 zaD4D$sj{kc%{)RkhVcIUq5LfyuBn;T6JC50`a# z@V-~Y!;{a>R0d7~Zv-SW1mhF;+zS1Jp$CTzcly1hH_-ZcX$`J!gNfzkIWqJfT$#)~ zYP4>uT!*)-@rS+04$YjaRo~r6^24D0_X-y4JeRy59Pb^<6SvOf9w{Es>u|8qlYTahtZrx$sY29Ug(z@IFl=W%r9_wD~KI?w#0qa5Q zA?so5Gu9*4XRSxA&smRIpSQkXJ#IZ=J!yT>ddhm*`jYjG^=0cT)>o~sSzoulVSUs3 zmi2AxS^Ng@cdhSP-?x5XJ!d^{ym}=_*2~t0O{xBg(gCU|g$DMp2z?mHd@$hm!&I@XUcg{d%Y^%VNO8C+Da z{iDUdaCvmW`z*gVHYhnO7|&qg)T3|}-=mp{OBfYC?8f-To^V(XH)*Spa^Ug3l!n8m zq)SB!^Y%-dw0m->3E@H2qTU`JwH|z;QZ;c2qiFJe9U$Cm2ZIl+e5QR>`!TL7IExGu`JCh|5x6#X#rce_%l(s62 ztJ=xS&5RS?_z;X^svkxFAkCvNlaB`rL#Z4XVrX?I|EWL2X~u;$iYkAwro)FB8Y|8> zn4+|yr-6nZ!rTDY;7wfOq->kn|uUr4H z-r%*v+w}1$p={yI75%(3eTJSMG~8xfOpAINPepsWtMSO6N3rh~hU)Hpm#{r-#Y>;I z{-wX#_;)|P-YAyN@YTt*+O~jRyL-89t8?IQg?#>F{TKIT+jh*3)p z!M{>F_~-W}|M-20`~7M6`_n!U|EToKkU|os9Hs(>CGeZR(yz2D?JE5@${uBp#@{aZ z!!LFs9elZCkF&?y6YO2>iS{IWvOUG#&EDOfYVTq1Y42sH?7i)2_CEH$_I~#M_H=uO zU2Pv=zs;U$A86Ou2jO?^54LC9Z?_Mz548`o54Vr7-(kPgKGHtQKH5IUKGvRt5|`L> z?RoZm~~37m)fUF{AKns z;3_WtPqR+NCTFIwTQnXWE|&jxfw~GWU(eQPr%3|KvD0>wz0zJ~ zH``tgX{*uR&EogD(f+u1zv!PN+t1Q_IRd&}!AU(g{D$2gb?)`7A-TR-?k#ZDQwm-@VA)}S(Z4cg*awptLfgP0s!_D8lk2O)g z(Ugk{8SPd$dPj{CyW`e{@F+jDaM9)N-PN@R{+F=_{?}+n)h&twjlQ|C_p-kge4{AP zU$?hH{r{Kiz|mu<^&gHjSO)bJD@|cJb%X%{lX_o~hV$#}!nB6>>+HfWz45!lkleC% zr@hWzZ*Q>utMM+o+djwc(Q9P0-3B+RbI+&r2cIMy?WBd{g~b!PevOjv6P{i?w*Om9anN;rVw}e!~YN(GDu@ z{*>p<8b*zDW;Geb|AQ;JNA;*Q2jk|Y7_{|OzQN?>#jzswlb-*;ZHCqc_N4(Gcn-lB zCLccxh8Qa5Pr1-O)YOL--{0#u*?sZKTi5@8x$eW?synGU95j9FQ873(DQsxt*U)1t zDjQl88vAgx;Yg-2vgHh?J~EWqWQX$^7{v->7rG2AMKAR5rR1f#?QQ+7MSsJMWDSO= z3{1tCku2?SrLD>u?g_&~i{UEcNT$P@higBQ`Mnj={@>w_p|@6;R$+YTIqYaD?4*Ed zvED`c37 zy!C57d^Pl^~*YzE8q|)s>=j|V2N3VO7{&=Wv{cn}N?osc5N;^i#?V+D9Y|Y`O zl{)vJ-rPMXmcF^kpqRgLFZO+QVNIf4%t^(OfV?9|eH#`1{WMR33^reW7sit?h7NBA z=$%0FY%HUHmnhr{<}0%PK|l8>JLC06L!P+p&3~l*()q8-%-LU);SsJxj!OFsBi`yZ3}^!CSo8h%*jsPWYwj`8~X^OsW5 zL7m%UI#KES!w2wuvw2>PrXaM38Cz6*<5ze--SZi|&D4@m)zpKgACRX5oRs%P<%F|4Q>;<@;TOB~#e@?aS>e>?`f7?5+0I_6O{1><`-4 z+Sl3F+aIz&Y=6YQ!M@S{sQoefCi~;|&Gs$!C+u78+w9xzJM25{yX;TeciW$`KW*P* z-)rAz-)}!)KWIN>KWu--e#HK){iyvp`!W0T_808O?I-Lf?JwF-*-zVFvY)ZPY=6c6 zs{J+l>-IP7Z`$9ozimHjf5-l={XP5p_7Cjm?C0$l>>t`W`~QaN%%L};sJ>Q`Z|!3J z$IvR+euKwMdSN)Q6iw`b#Tra#lT&|x=l!i3ZZNca^T!EmdOX~-ZM#|wElrfbJ||6?Bm-j?~%;cj9tS4U$lQ@|JeSC{gVAt`(@wPo58eyX8+v&h5bwWSH2L% zR*AjIxEkr}iH^DLTv@(t zm)pQsLW7|nxyI05t<8$R)rwKwZl>(PHY*-e`KUN%C1z6S4`dvr9pF8|`~~;EV|nXh zLzh<|Jt$*oXmAC$W!t{F@*;(JYn-2|K^hZ_T0aFtjkN~;r}8XC`<7bc2l3}GvuBT@ zZ&3dc6=LviuiCE;as8^e)L#O+^bc2Y4J8!}wq~%Ws_^EPK!)ez&&zKw?&A*?w)Z!d z3fEWY-pa?EhvNy?;C}=6C};Rax%hW0hS#prSGoD$-cH>}+f04@xkuX>Qu&1YlNa7l zFuIQ!-=RY<$KkdW?zarRv^!o3gYWOEu7i)?-o5#uSc@Bk}y&9^Sv-*u(o5 zrpKEJXM04+$NqL2F6x>zhl{!ORPExK+7hFk_49sP$tzExZQvtMFpa)wqDnUK zT%u!`dXlF+yRt>=3QUU!OYLFN`3%%mQ9NqLgk>Aa_E#kha)Cz~x|_NfN|4b z{nY7w(?|O1f$FqxR9`bxjN%{TN2vIpXYIo!q%YkJ4Eq5G5E;RlM3Z2g06&axHO+-vLp*i3oJGsE$i^hOE>DPXvtu0}>s zwJvOVRlC00zc|hMN1c(Wx2l_}rKz)W3zw>|`h~*}H$Is9t1_5TOZ8u3p3URUsQOVN zG3_?o_1V_x4gBm^Fveg`fBEASqpy+r6f8!SV!f_d_~CaS4F3%+POuJzX@%vN!Vvv; z@%IS!5G8M!5rMv(^~_(eWD4tF`vzOv-{wra|K%+V$x@i|_6I7BfZ4oNEeo9Mdv?jw1qx1A!4fh%@Ered!?PF^iVz%3& zWw%cr{UglwDciQrwKy$UlK<15T*GIyA{UrTsBw(|MTCu)?fR;bJ-BM@ofT%+@HLL zo=<;rnEPQ|jHde<=q;^`2t1 zZ!m@aVbLk|?%KbUgQ0p)vAAzkuL-6cg_ZPcTnpwJj1!e=?{2~P!L*BE!8pCAALSd2 zUo4lPdoWH^s=d1f;|J3&h6UsFo_>^XFn+OIg6_dMocZ`f={|?s&B&_T1{!Hj3nzu(zI{|ob>sX^3uXZ-r^rzT`^Xxchj(`9^%Lluv2K72=o z^;}ID39etB23Ey4VVIJNsa%YE7@AlrtQX5GNtBOC#S3L@UTEV|2)*(vKYtv*y)dQ; z@1-!3w!U~IIO-1{X6iJ2DQ@4COnt(z_fj!*Um=F(-+Sz!Z@BEl8|_9r`uj2!I+(&h zG0XbBJ@7w&E(4GK`~2OOtifR8`^zvmyQ1H=d=IXij8*&@e44$-G&vTAGCm6SUbYsp}7~Uu}QU<|46x; zd<~4s$M_LO`47d-pY~AG52v*w;=R+dkpAI1s=2jTDuwY)NRy7iqoD~kco>~-&~@;s z_Z_o0*`x2+Lk}@Bzb#U1)i-kPZ~b30DNeiXTlejodvU4^#HX+hg)YJL`tlEk-id8X z3iPjS`WLFO+=Go*n9`2m^1oHvzFTA`JxHUSROp*iws(lPVjB%z-VLX)?OG|Ev%7~-!9V6i`Hl*M`|dljw;Bcd;_SET?;7`~ zUZjnUUo?&JS53_?n;N@@|NXCJ`Hc$b1^O>M{U(8={KgBZV#eU_H`5zC+Oy5=o$2YR z_Ks|7joYy%?Y4HMn%h&Y9UW_|kbkCg&6*B3n|2T&)9j>E)0>*x8(Letrl%TP8#*&- z>+mDqF?Nq5=bv=);@VTDPMSPn%1LG$nb`v2y4tm$%_SFXyYW;9l(X3v^+@PV^u9ehM;Nmq7NM|(Wk5MMXhMvr_ZYi`S&vYZ^P+ z`WNZocf8|JWIyZR)cg(?bd>y3O&xBkR;&%k7a2CVjjK|N+MBb@a9x+q^gHo`4`dFh zQ?t#DtI((`Q>Qd!SEbvKN(L#;Pq$~?&bFDUxow$j+I1R=l-f$ncuCr-;+XQX`x9eg z))QCF*lV7(CED3aZPE?KcGRI^BNp|fq8u%2PNZ{@z}6;VmVzjo3S8(=yxi;wtYyC3 zb1YVe&Z+`lb&6NWvR?Zy**W4-2^Dx0Bh8+^kaIkHkyO}yBA#N2`-0B#>|;Eu-n`Z2V7zNIjayE%2j75r+ z+N2qWz+-zPqO#P!912w09IXpGi8uycjGoH7Ov~E>&Rzho+^Jwm{1Me~F+(T8UqhJ; zGZBW;G*7ROhv99lW3^#R7(;RzGa7ck83nwUse)gWfpgIZb2FdwPScM<|9kA)^>dec z4!C;XMe?ux_gXvk%kuvr^-THBf=Op*@zTlcdf)gXq~U|F7J9SF{;S?M)7iUHm#1RQ(G}0%g4YX|+{pj( z{T{sT+4s&nr(74aJo)vbFTeN2?y(?ob}}C7t5A-t4{QK|YN#>^Z|}ij~3ikuc=wJ)EXk{yW|O zhbdsk;)#;dvSfKhW!0$ByNnq-Zv2E@Cr+9?Ww+g@?y=`yslBJ|v+sWUPoGhJz}sdX zSaZ;4*!-mzw_o5^;rTfd>J``zz3 z`@Qwci~FC`v+>;XHl2UL<}L5L@S=+^x%9I4Uw*}vS8cue1J``;+Uu_W(1$;A!;K&P z*i9e5`Ib-IdfV-H+7$Y&q@++&~r!sAao`NgN6{?apF z{>oRs_VsUk^IPA3_B-GG-uHj--19H|F!z5i{^-X)dFiJw|Lo_#_~ox&dG*)7`R(t1 z|A*K9_@_Vr<*$GH`|JOB+E}cqmXiTr+iY>Li zA(O&FC*?G|>BelTkqgmON0YcUb+op2tmk4VAO4*c6)G{NcU-4S&s7cWPAe@sS}2Q| zsRk^MSEXGql~hM#W2ft;oqTfXZ+>%b3=?1}Oa;tn7?sgW^DqD1LpS~XnR}11tXcD6 z7UT;c7P|3K?gzrwD7aa#vi=Fw_9t^cc<4>n03LhjFYYVSY#B?H7Ib*ayC{{IVIBK6C6pyFRvL{Bhqq_Nd1*=ly8$uAM5}geMeyO~>DN zj>6AUaL$zqUi_4TEw2mQw54XQh3DCEjRLnkf1NZObLU$(z3{#>4p}$f`bzD}wkJP1-#U8h z@}Hmi)A@7W|Img#?%DOYC4YGNxu5TL(s5V+;FQvDzqaW(q^lkse^PtNLk~UjfrWql z$FZ-*7awuT>^)}vv{oyWBea z#_Qhy?c}5H-fw=#-Oh~CRb#0);rDVIbv6o|HAgp~=lUY7K4bVw0&oQ|2PX5ZZCQ?0 zXE}C*?Zlk;7OO7iB%Bh!c(YZPfGIiNa!Q@DEtXT3F5MijD+8W%%7K?}j@2cBRXCNv zDuI;)t8zvG8wISw8SU(Xlq#Ju&RD=IXPh%0aFjE_+4Tn7ndnT~5~~~SOm?Qgbr)wh zXLrCc&Qxa)z_HGr&R&4ykY>u+8)@#1G{*y*=IjG(A7B$48-M%W5Oel(_D5Q~I%hl6 zof%u~x`|G;a{%&qn==#clbi#c8l*MZImnp>IK?^GnGLv`^LFPDz}=lgox=d9I)^() z0PcZY-r>9xxx5p(>7; z%UOz2&vZ_8mcjo(*0RZRPH9Rwr#Yu1T#a*vb0&Naa?Wz<0B1SxcHRScuw$QURWENi z70n7wQ##e$wx%`R2K|rHIAM%~3-owUYb{&VoJqBHIGwEsmPyqvUY2T0H?(I{*^bnT zv>sBa5R?dMXYbUaEJn)=Jk#wdC!J|t*$#DJrn7NXMRrv~Hr31lxSerVbaZ4hS+`-$ z8qpUbL9KPu!*$V8rRHWTm>|<~(`!31tg8XOxxEDgJcoQ#A+sjk*xc0Is7s&05bdNI zvRSuzMQ0Wfpu+5M9Sqsoj*9gi?&_M<;`VeZv#O)B)k$%NP*rMeUXjuTTGP3rwYl-Y zriMn&1nbgnMrW1vhy;?=HpZm;SQdso(OAxBCprqR4Ktk5yPY zvmG6+nVQZuP*SGr*9%eInp{PFy=uGq`dqTUzP+I>4O>-x{o2lkR*jX_*E=1J_4T#Y z3C;qR3$CzSR>5WYt4nfaXipL@SC&bGMQB;6ElAX9ZphoN1Os+%<&gFVW)?Kj*yTYDmyIfQ^vQ&Hs zSva97eX>^8-V7RUCR5wB)v;V6+qEX0i)Xqr)pjnyYD)I%Rf#CM%6gPhlV%?{WTeGx zmnwipnEb=s=D=i_Q`)Mt9S(iWDV7^ue_Xo3Y3*oSy})%l+}i56A{|0%`mxfXtX;06 zX2D37Nn7whmMqE~1~>vQFUz{P9(fabLB1pYq1eif9$?BNY7(9_WuophGMlB27bsYv0Ok*--;1G&kC zYwF-s*6m_XKcN*bZ@&*sY3H#9>To*`Fd(ydJrCe)8=KxWa+lb1v#5Tq@%*=8eh;6nv#(Uz9wL0nUPyXwP z)3*ns#_E_m#)+M3tsQd)CTUbVUb}Evb%{%LL#`YhwH_NWQ0-45URA$>RYt4TceLl? z@I|lR4L)_THguV6v*S`l7Or6xMu2+53iA*kLxqGDOQMD`)HG=)U`yKFll^t|N6Oci zb!9h`X1xOzuf7}ukFvTi-LQqD-<8X4j)DmXHO$O{twid2f;4$a54MNk7dsrp0|UfC z5v!$iv*o@gTjnHspzPahUqBirTgsi1&9=KvVpQlD6`)n=yR43*A)}1Tz~t+cLLPW@$H_ z?Q}8idWpDHc)rTfY+3iDe3?vvQY*Sr`?(8itE+@-+^GoX?!lKZ1C^)3K5mLOj$kg8 zskt(pyGv1%qkU_-A(O6-2}ikmF`PF9a^Q8R;Z+NhN#SLcCc!f?{3Y!P;GfapqNH7g zzsVT-$HltG`?*Qy6<{Q$E{xO-i^oVUu`5?db7Fj09e1Z?!9yP9Gj>2itM?!6$@aEnwEA=TM_V7_hG zX3_%g-Y92vg^$WYVAVC3V!&x`OUq>9lIFS5b2Hdqq(Gw_NoJwEyARXph0gR}36o(v zS)giCdg*A;SdB}g?I3k^vGdd=t8i!%>aw#tb_+X*jV^(%wHX5r#@Fsiz80Es&ff0E zYKT~=b2e7TbEVk0#NMJBRb$OgwXN79$PpYoAtku=^<2{Hc{n^|ssOds<>3i7jyNs_ z2F01=E+LIOgElWGu?YjRDu=+xFr7>!V##E(Dmf)N%B4>uO#b0WH3ufc$!A~_F^E%{ z8&iK=XIopBZx%j%ZYrZBI3L+klwj92v|_*zX-*5lD>|E7olI(dGd7|-voadAb+%@k z4^%T5=Uu(qUK2fKa*&m=5>1DR5t55EneZW4hm)OfnPDSw@JJ@qB58YIGGqk{U9@{j zxKf2P8d--8lV=_2L@0%f)fVR}%u&)6mVqhA>CwC)qs1n8>+Hd^lMAvB4-0|Z_eEqd zE%HXk9+$=9RSg5^_?GU}YR*j53SIi{#nOReQfQZ{7b*EZ@Y=$X%Ql$wy@;|8veQis z6Cv31-2IWUYTxO_OUNE_2}?*ex1t-?^t)v7e%FsKSB>;HFefrsGKMafz+Z_=_vj8s z!g?LfiDAtecj8V05LySP6tKi80~;lC<9t2ol!o?(m1(!n?f{n1-9eTMC9*EU>Vv~{ zU%lZ}5M%*u>!z~$({p*_8Ua`AP*44*}lOogkhE)8><4DL0E?{XCO z<=_qJ2f*WU=D@y|6z+2A7N{D97HNPBU{R8SZFRSFjplqd#oBCbw9l~GCnv0Ie07C8 zOP$Yh?2YzWR(lLWB6KSdz1L8Z06aMhc>yB1-JZ;rDqD}$q;z987WZW>Nwu73>PJzO zw2`L>nM@0uo9Mpm_;eN;h*TpMQ&`A{BuSYH8d58Mk*0K_m=9@Uabb2xlOFfyd6Ma4cqjc6id4^ligUf86* zvz>#Y=B6(qj#_g|3sl*oPGhawM-drOHqzAS%x^mS&XWKvS@0 ztLRIpF%-QWgnQMcPov5aBy7j&J7`ysS_95pLWFKru|RB5ra>mef)HWb8(TXa(Z663 znlHMvM!xu27djvm5X+JE(AuIk+B>k6L}V&$5D)s-#`KB?tSOal2Whus6AQW`o)DD8 zG%GcBIO%F}kUjtj-)?db0yXOrtJgaPga4Fz*0rAX*3^WYPbxd#LmV|5B;6xnSBoM$ zR}PKpijGWkwo6*h2y&ckk7pFsS6b{ADm_Zv*_fc>PU&Vlv!{dA+9d3CWU=svnjm%s z$D~pxaXF68YSrn{OR$dztu@!{=}ZQ40-GU|g#y@3H8-UWTzAltvzDE(xc2k~OXn>< zbpe;yY7w2nna?-uecmWjBu;h5_DNOSb&00t)-<$@?$N9QHtwJxa5-=0N}5_5R%UW# zsygXhMJC(eW;3Kju4E01Are}yROJprmgyq7)Da6!Lt_m@0-ajD4*Fw+)LPOi5ii{Z zaLKbg2N}cm8P3!faeBf8wI#U`Q&Eq7v9%e*k*O%&eeiMVMjkiCI02#{r{<^{crPOy&XB|=y)|+1nyo}l%C8xF+MOg&kp2!zR9k`2w z$VOueqW=;>)N&zKRZ?NQCjlR1dmhx^_EhTlURslF$vHpMXKU^rY)!4`S7V3QmYk1s z<;@uk3ET*9*|DWJ=!SDofP*2FjQ&Ec$sV;-L__O8BY3dMW`~1DwOBBbP=lSqG8Ht~ zm~gs(WY!cpE!AGNu;sf2y9E2+e3%Re2ifmIpM%cU&SD5#UFyyz?6Id<8{^qHG`Vs1 zNaJ=Y2Q#czPlf1+X)4ye>EsT~3LL-m#+I*RaxlkkM~$Mk+UZg{K+GswVpJP>X=oF0 zIG?)6HP{e<;ORhT$*HFm$*0{K4*j~1nW;!8K(THN^Jd$%VJ2pH)j7*_##lo!zAU90 z9IaWFCWZDKF>|FVV0d&JE2){Tomth~_HWXSy~rx1CSCqw?rFgDU4mQO`@jf^Ux0;j z6oxo!a~wk)xE723n0r`P1*9fO;UpzwDoXc<SzHnvCq<$ztK~+XA~<&1DismIk89jF>|?t}9i<#n?19I0Pw=BDr5ZS< zds4uaEvSM+MkWutWLWnMymI9W%)uEh;H1Ipp@}pbr!v;&CYr_)6@f4WL(1xn(KtCm zu_r@viMx#HmTHbUl{s-}#~_VRQQLD>{?tc75Xf)^h<;{QB)Hu$T5mf5Qq|EN4v$~MaI zT-ckn5N3B>8@CRD&^JgZGu)9fq23_+%(t`BY!gv4>{d{UXe~n=;iWiSkx=W`0!0Vj zG1)`ndcNc+#Zs}_Wms#IJh@S_c_lJEBtCZq+@x2#OK6ihI8t-#vP}-pmotIsa`&im zMkyM`BC5!A%&mJV3yM{<5>P|-fY(;)7;>z;@Kj>%A8ToXt7ry)Gp2#u~()m5o)Z#LVQUbyV?t3 zk~lfosn;QrJEq@-9j>gaaCV~sXH7C4jrg())4Qx0WyK;Px!yKQK9#r>DK8UDSIbZ} z%<8f&=kU7R6sciFrlXaoM(ApeGOF647|T`6d}xJA$sk|wM2svBb>-Dk%2Z+b8hjTwH%iB$f#aiByVISFx2`;zH%+VEv34igjm7rZSKlbwbN!Gu3Tt zZs#gp9p&`W#Yc<$`VfaNQ`n2uS!*I=v4Kn%8>JexB`gW{UDHji(2gMv6c)^Rc|CH& z>a~8kcWlU%qyrxfHn-=i%OPFP8d3QqoFm#4osc4=s**Zqfg?xM;?cuLM>H^N!b4I% zhC$I9)-^P@@?Zu^eg+rlX5vJ-B_W*4nF(DY%cS%a*m!GPWeUrEcvCPGxg95Vz+bF6 zvT6{f1@BH%@uwL=AX^krRYz%TBx^%1?lsROjnq`{qfwBtNLm!nl%=tuaaG#M6V7B{ z;wW#l02GzbH%LW=EEoz=`9(^3iNz|8e68td#|9Z#Q#Y218`)eqFr~PoUVT29Cr2h< z5~IsuN!aYrgW;$csifLUe|ITeK#kc{z2pMT*L3d%#jBRhp%y0_@Yn$gzKRgL3yIK&gqS+%2Z1KJyH*WS^7U~LDE zv|(?N#{$|@%kyyx$)FAwsER3;>Vh7sO>vXyPx-)6cj`v7aC_XCbMc2Lwam{}J zW~`%R=O3$|l`%P%6qgmzA&_)&@J9TwlHoB$$XuWVR!d97FCl(7e4~yq3Rc=uhV>10 zNAwwjvfA!)4)I4*0P3z(t)vmvbPCy{IPH!;XJdEiIU8r-)IoP_W(v|1mmMLJ`((d(vA$fc*PvKYYMEE@A*)+J3dLJFIn`xGVE5e!sYS`U5*eB55}CG4YlsxNQtaxj zt*^g`)Zi`(S12(#wL?WDPw!x#er$l(7(Oq6li>M&_D&$AhpdVZAw@KAfgbK5S#lZ< zyk!#?*jU2wj1Kq){Y~Piy{1yP4QaU2%UWT>CPDs4DYOx4TP!!ewj;a9oOnz-vWTs# zl+7dE(W2KlYmwpySX0qO;8fBWw0I(1LzP6n#aX+24arDqBrz*OTS{!WjX8u!?9%N9 z=E_v8STyOliWSmvLvlBgrUha%x@&w2w&93t-BF@DwM+|AW}3y=i38o3^p)UMQ=7AE z)WMLrbP(Z~T!jm7oHK^l3Kf}*L&0v5D^>AtVp%zUT5(V)7HEAHB2Wc#fb<4NVHH$M z+AiBKIwzNlggZQvbWidzm|wn$ZUl~o)W8YzfW=gXIMWGMX;s;(!&JEvnJvQ&!rbrn za>qG2)`70RlhW!S5=RP`i_2V6-IkH@&u@#>^^j<98yf>_ZdZoSb_6{ z*!yaS(Bd|CbY?_E#u@!KQCwzf>Z-WkYsBALFbkK#Acw4mWw0Yn7WxT<*_dlhH_KNi zUb#ukOQ|tMdd-i4jH`6gYzIufp=n(FH^Qq9t;u^hd~GPrw-|o+vH7OKVqv_Hld(`z zaa_a+S=gwi;x2JjJP~slUL+6(Pr@7uBMo>2QV~5O)WcdgX=9w<)95~^DFit=+s^D! z$6sS;R;6F8lbFzh`eL4$kLhVWOSBe~Dfj56vo@CKGY`~!Cf!HC1cVPFP0Tsel&*aQ z&CNLX=HtZB+>fxidk{i$FWrdG8016+L+0`!OSO)4bXLw&V&}UI;dWCgUS+$9e8@5t zGFuL21oJrd<?y;$inORskTcjra1wfy=-p&`Q@!?d zxVvZLRaaKOc_S?Vy=;!paU3=z_eWq7Pkib~Tb-{qB>b;&$4 z$;d7&S-~9TMJCCORa#ZinyQib>tvY|;Ah3OeiMw6fcVBk1rRo1Q|@Fa?PgbDY%s25 zsWH%dj+TS8rM7!M(prekuOxO{T^EaC877d8T&crtSK+en!=)#dnV^OW2fA}<>%(vs z0TW1%U2pW_1$uMDI#FVQOLVN;5GRp8rhXwXB@JE(4IMeCJzIw12htz-l=|<49BSu| zE!q$~1F5IJQgbZx`-I{I!;P6oB|nr<=l7zN5~n8WNBLrDPSacl?LPcR`~2Ssrh1jF zYmcu8RJ!1;<4oCUms}uk)$f8-CW22atpo+3_ie(VIZv-GsIm z_IJ;Pt$J6b|CfP|?4de}H=KH-=9v0g2d|!s3%73 zdS8OXqN&{iA5aq%2lYl{@Q3t)Z3FIaD2mR54U+_XXJc6^N7Wz!CupM&x6|79g)QNp zj!ie^Du)rUAmwp?X)D=ulMd9qzm`x)bFS&AYN8gD8eqDqYSq-bXQE_7+lA{M7ucTT zQuY{p!Xuqh1U(`C{>VqVlA*Tv2dV9{KP(`DWu+RQfawE&u`!rJM#scAFCtSa;<`qd z`F>bP1n$Fdr}N5duo;cr7xnQGPTZ8che0QR(={Bm!LrzMQKvc(tIUam>@Bb*#dan} zd}$sP0y8*;Oq|@kJgyF%1YNS+gDrE)Hpeno)7DbSTx_eIvrt(JMtEY_*NLldF4V3N zmpKq57cP*~N@-~mvX|DwLm!Jiq8f?XFMM>0Jq>&}3ALSaML?<^WJIg!-ctvaofsZT zK^)(vIs^)myS96DTXQDEL{!(}5q255E`~3J4QZ1DVE66Z>`7EwkDFdTS(RN!gwvd8 zKFmg;B$e>>C?=YVw`Ib6Q0}|naXMR@Sy11@6)IQZZ1vF)2e?+PN{o)-GfIXHbS)~2 zr0u^23n-0_gtt&$Zy3gKIKjqQS9CBlBe^Hb9K>0b@*U49mSL_w(LV!83{NijaMuh- zj?nqkm!qX+ILutYoLVY5BswKim|D3nwd)H~%g>1J*C<^ge3dW!SN!4SP!r}qnT z?bP!GB{l}2!f$75%|IF!T7^@Op15ek9x6Y0<@Pq+sbzvF_kM&8v>Sy;X*X7h?MCSU zCvw?(7#`7!csf^3Jm6pnAleWTH2U;mqN7vVmSqU7B>Uy)tq9Lv%u`y@>(G<)y-t7W zlr3+Oek%PAA54%-!@WWGlIluDT_G6DFXOuG0V@51^aCL~Q}Mcr8QDZ22###{-j+R1 zpZ-icmywVY5F5)Z5K=9z$o6C66HDC7;hrZN<(hIBAsTy%nwLS43J!9LRQhu+j{ULj z$MdUGd?;)Nk&YGoynLqW`1x%jJ>;m-Kx>|NcNjB6vc)ShOI`+njn|TNsWVbL#;R*;`-caTww-8GL zD|ad+TsiEOPLULkn{R9vfn>T6;L8j`^xk9r!Fc$}LwN^p4Thch52}Ogbg?TKW8wI>PKq(&B zat-S`n$>n)ds^C3ZC1#p1MlKgGms>pTOq)JAhKdWPPv|TUDz$7*-gZZkbI%I1iOWz z#Z%?srdr?x7a301xeXf!kn-HFl+z)beCbq6#|rWtzF*b_V`|-#gEEJq6C{tAnylDu zz%~(mQBDdyO15FGtg`OiLv5jtqRAPh+D73mgd^m!E$N3dVbO=Hs;H4OM-AP5`DuY1 z<%&`FL_g8k;mBw*Ur4pQhraq?BvZ%z9Pw&y7nKS=qKP-QX7tfBazw5ahj7td!pn+s zh`c!31F_*LR)@WVpEW0B`s|((u2w#DUTMQR#bKmQ99uXDQ(b|xe*9vag41sJTH9!2 zW8L>GM3y40nA+&E!q+$$6sEJ-)7jEETMvFj5tT>-K9zI#*ld)mU=hM>(19%*Qcc(_ z#tD93YJHvk%hw9a0e$}57n_HiuSUgWNXMbRD``K0udDcq7*%qWlA;;`zd^bR2Vit5 zWE5Y>ykJVEVho{a4J;5J!ue-h$JjloZ3L_8|@KhufWnP zK#n|%QLN{c7u+x6lF?BU)8+rv$8y2xE0?4?m~noQ zFKwcGa+s_pP@hFTVjxA;2Yi@&KT2A`LZ~Re@s)MAsIsbHeU|nRU0QXRAd0d)N6;?A zM}B91VP7}9G`$g(^^|SHfld4SEc4qHD#&8rIj*0Y8M$)J^)6M?jiD| zoO*Y!q1y-fYT=8=e%(v?@>*YPqH@0i9`~`h9DI{yiC9%RMCv3=CH6~7pc%~@mth-W z@(?Qt^wI*ViDOU;g@ZUWK&lOxuwb+MbmOk6%M2M<(eu;PZPA9vx~?# zlX9aM${G2*cyq-mQQ{4>$h=WUjkP<48%j2Kx+eyO8%3qCXp^(sd@Lp0bO!h!j=|Ol zHoFBIp&xQh3Mu4e8GJNZM3$*5)ny7uGVaNUtwk8$s3#NcR(g3oK#I#QRK?se-bb)EKjrH^fV2 zL-ph+F}{~(DJDfk%|{3Da|h@;8*rThWT-ZL7uVc~ukj%C>ouE9!`Sr>4eP}w_Ngow z3TSmt4Us-LpR+K0NdCNdGY1Go#ul#9^%u68efga+bZuDnKwl!?PGxZ!jS_I6p-W;b zmERL{{-+iUqH%w|zo}3vd0BVoX&(}8a$`ABsWz`y6LBuV>E10vNzqUuFEEK*f>U3Z zBPlwhNDwY_C`xll&i&8sa91iOLy$c4VMG|`N?l8Jc6a^BJTN(Uj`ZaiDd}Rd!?~sx zfkURDYE}<34i`S*N{Na>u~A_DW^iAnxVOfyKdSBS1NAHpu^w_f&O9oj3qR5=*!@s8 zX}J&gQBF>wv-9OlbWaL#X1_(E!$Klapg2LSHEz%K@$i0rXC{gHA zderh2l83ypQEW01T#s;XfHpxXsFadWRidh#GLeykT!w9g$v>p&9GFZBFTWI2c;y^e zwhWhUD52zJe1<(AKM;dsR^9t*OA6yDPI|j}{?%#;Y>Th12`EJJV>3qz&Omb4gqnLM z>rdNdne0!2i&5zSvk?jXRaRUcL4+1uF`krfBVH0vP+S~->+}u8Sjm`TAA(%;hjCDhZD_3LU4?b!w8_aMXuarY zzRC`duCow*v9D^oM^{ZgH;K4S12HZ6Zm0Nd8aE=y@yvk|g}SZ9rCVNjpaLg2dvOuY z^BJ+p{J=2|Jv7dP_QY0OROMjvlNYgJ^Amds*b{P(lFc{RxK!_lMEk~1C-mnFIMrO^iavjD6sCJNc7xMxYj|`&A6xUxigXuFi6j1+ z16#2UYK3-CK15Kr{gj-uu?AahiCn3hS<~8_&BdXg&sChx1JiOuQ1oDWBQ95_G;WRJKr?WzGwahY-lRRq0#&E9_f9@^7@+2iW5k^fA(_jhdka&1v zvgpV#ZSXr$P8?(@Sv)O91lEBv5YBqY>@G5tY;Xko2F{-3#liYkFm7Yl*({w=OHlLW z-iieCWn=vOM$w;uu%~LxmYgWlcPhm*`*YLCiDz*>jN1$dSGu}%V`9T&J#pN5dhf=P zY}sb($`foJYbwDZ5N;nGfbFAlY#*&t8#ve=!XZygjq#0TJ!P_&>#jcxM>%-dNuMF3 zA1_qVxA!p=wkCTLRhIj*$<=+Cx$|O|jY;H|Y^mI6wwIWjJ}%LND}<14x#aUAv7U0= zqj(r?YY$@{S{6=p@2X{C#gux7v8J~BP|?w2T_y)0IKfcMG1J^+3%s>?HSf*Htm@3l z)}w>_CA%jUL?i!p;auTpP&ikP1+q#}gfkph#wJob_8c?01Z}xdYCt*m{X$ zBOf2Fd&ez=&9Up41k39WGZXw+6Nj2`FN%8?V&++lte+oI+JR8$!=X_^`jc&?R4gwRfaew}WH!mXR60y2maczxc<^ z!)ADuQW!>n^#I<6sM6kUq8qz4&Lu8by0re3Q;(OaDW|{b!0C4Rg*w&L>|C+|>T<5e zVMQjN)AyIuE3G|GY1NHV8*CIc&h4lL{~h z|I`-t7@SGuz%W6&zuf5j07B}+saa2SmPuvRmPipgA)gzRx=MMj2a##t$c5Z^`$Mg zPkCschkg75d2^E_C*=nJV6Ed|V;Fr}ms(l?t;+#X1U+dNoWfk$=;)048hYJ_5%)Q^ zwMb^zIim_iTydzkJb#zBv@=&N3^o=k>BliH;%4!ll8@j<3Un~cpe^x_SU1W{x^_$tj`3sO?CyzU7X7)T zjni7NQ7Gfs8soRwm*edA+A+dm=&+eFP6bYpAQz;DkriL_mqTw=O7Re9$j4xmuD~e$ zvTbcF!(Dv)_wd{ob9pvf)iSDObWdq^m(4M!65`#n>&IMxIA`JaBb>^OW#^WiiTE_U zC?8$As{8i~n^*GMGJagWo<}9TCN&=nD(=m5mf0|`=iCa;#R&qXARxmw@D_Catu8JH z=lMzRt7$C`=nq2`=hX0b55PG3ZXqr?z>v5^92ciaWW$c?Ghlps)(KuUx1`})NB#A- zN{uY)znvWk^QRQN^BwLcG;wzl%UBe)zP@|Z^5xKBv_aa;WT#K>PA=lNn>fJMJx-nP z^b0I+*az_Bu0-VNwa+jqwG^tY9;3dM_$1uiyZIt>xu4>T!UHa%lApp!%V|#L=6;rb z-p;5DZ!)e?lvScBM@08Qy!63&-28#UN^BYYSc06rp{@j9*Sc5@(^pnbb#bhQLnEU5 zC_?{&T|*|F3N_V0{={+ksTc$)Z}M+6rXL)NPf%8g*^_OFmsda_zI-qv{pD&PW(Jo7 zrPx%)6av*fPBWIfOTpcQwHzbyyn*Bh>0 zVK({$Ba{*`R(683p`KAEkH7=!gfBj@!9f@KoeT1X5=pskQNvn?H_(D}k*ge8l3)Hc z-xBjaIgv}vh_@LOl+{LUcVMX8`)Hs%x`2^Y2^*;y-H8;O->|D+Wh3A!HC~X`xLT%w z?z3=>_H^E&t@HtAA`#{`DY5vz+Rns@hgSJ>= z;Y~_I?(KZt!PlL9Q4ZtXZ0at}j4M*INJpU=dMt0cLj{fcu)e+$B8@tcSw>Dwf&(W) zB;xJnrC9&aB?;bipFkFkl+pO`fEw+>kzAr-%vIMGgEzsAB{;my&$w{Xug7kWHCr3` z(;*^{%7|NrQ5K_kPdsz2j>$CYICTV7>=GCZf&-^6mGZjOB7RfqjP( z+@6O^V+bMtCMR3(gJe#5yS)lu?I4dVzE8m7Sj4G@=Y3Lw7XE#s>~u}Q={RPkR#zM+ z<$eT=k+|sqhs!uAQG7=%0-NdvPvMbAY55y6#flqo~JY zJyqyh@#jxu*gIzV@@iZdpvp|W)O1NHPoR*bV|s!4w1|_7PEtAsPdDdDA}ML#Kv`;P z)~q%Y4$HrMd1}230&?)80o0R{P>DGkKgJ>Hh$y2LF&MiklnB%2%F&tCm!a;*=;)30 zGGB0rhF~nyz~iv<@+Y>8`#A=drRFl&>XMo_>ZNzpmEqRO`i`ci(1_35uT+KV>-T5Z zqSDu@#Nrdm1Yfk@c7{- zBs_Pjte~NQ!)mz22y6TvNxhRhWg! zHXP=ZAnlrs$(|%#F;88U9o3UW?&a+jbm>VVTzPghzP(HKlygn7cEcG~S5EJs>R6-somZ>kRu#n! z92x;_*D%IPm3j5CC;`cUi zzl2JjJn0LGJ}Ik7Qxxexs{d!WD(b+lb9TMaj^IbN_}vZWU)&&tUzKXkLP@v=Vj(Jn zYjJe%lPPHe+P>C30&fUwbb*j|Fo5cGqS9FcG*^OOs%gu(BDyW4zp&`Zv~kBrJ_(es znUqXNW)lU0(gjuFp3<(2UKC-ig34*6&RjUhtqR5A?7ZrPH+j9Tl1EET=qe!qZt5hD z*NrxqqD0*&bp@~qJX&A7tnqNiFXgQmookk`r_4r9RyjI3Iy)5#{2dDz^}%FZ$$V5i zjEQ5@3+Ev46$C=MUqP&VpW;A}9}MOJk(pD@(Se&Gp+V6AHG#H6Z^-j?POP<*%7+H5 za$49A@D&4RQ}}WIi+9gnr0$6G@hIjD&JrM^UyR4dsyJ7DY+s9G@+_WeNKW}~J73an zY_i;LW@l1G1NY~zG?34kp$-y-Uu&xpv^n@U#`e!5K61Hlx}$<$?lX|X5UJW|7Y*b zk(`a7DjyeMJTaa6QOOS zTZKt(KFf_v5$Pd9rV5U6o>FI3j`@B@n~2DZ)LyysB&i6Z61q;pZQj{8%)02|iH$*He8$?lFa*EQ~~=GL^dp3CnKHm|oMXkyp^hQ)3Q=x_D}S z=CG*E%7_eNHX~z$pOG={XJl+-Mn>dbXhQzP#knQOFgT~Txp&SX>y*Fr&^+d5gv7oK z-)iZde`rB(3(t{n@f>7YT#o#T=k{x4S4?8Nw0EhC%!yLia!EgOF5;?WbIe`mU%eDp zB%@>QdX%#cXS;G8c&h_vm*K24m&REdXX|ms9FHou8)uj2dL+}M&Rik+9aZK9etyR* z{rrwsoi7%&U40?^EchI`>TD1xM z1SPiPkd%wP7qWU}%atizm^}>jTGh=;jLfQwH7z7`$#uw@0^e2fzt^@MR@Vhm=*Pd6 zqXJvS+e8JN9hv*t2u*&KtL9)7Nj_yQ6dW zu07@RpXX+F&)(hH7jM5Ad>ub1)xk0GxU9;Dwyh34)K=KoUf^*MQN*~W*^N1(n+rvr zVEk?6!{i>xm0eIQER(Laj^Bn1=?+$s{fsv6xpe#fS z>>g?xbWqH*FMalK^%k_9EsO3T&_uwagK`mc|Gas&8dY&`)0KVG*Ve#m5O6TsjX-{d$5I3md zB9vbv2iq8BZ1tLo7Ze8DFTWtVb!UBiAA-$+#}m!NLCnpNj#5f5&;_$*{usmiRYJc<%y!AJZ6 zX}TPjEBr{Y?kf<|03q9bpf?e#FDona?L3& zpMvGL4%laiYpjKrbDBJlzizL!hyq7$zout1*yw`GGH~Xg<#{*W48&|h}!K0@m)yo+JnW4 zmVR-VS>bUPt!&*;@5&H?!Hrph8G#m)n^*;E-6YaA4%q1)go)wIf^UAngyVm0)Mpyt41B+R zueF`A8jElTT4F$+4w=>-9OB{SXPQX^#oRyvHA)F2*`{&?F2+5_a?;{6RL`FX@^TN} zDRO!!*l{4Yv;Uv@D8_wg%I3|`#Q6@K*hRE7UIX>g@sRHG+``Ct$lF4bOJoa;+$IHe zHC#m2Nn$P-J5QU}CZH;3=zU;V2`%A)2MC0Q>2}q6*Q}!JR ze!#m3mBD{jt#!A*msLDo=^a}zAX|I;Fk(Oqs^;La0`xUWiTR8f>91P`E{+I-{R0HK{R#}0HLd$gauvuuzNnBAFihY>zA6Y0!uziI3BnP_Kr>+bEF z_hw?9*?qe^JFdSOY~sLhIl_wV>@0iIx-bE_xJYCoNZd3qbUTbLc1E%7g|#f)5}J|2 z`Hbnyl_j-K{rsAPlpg?C)oFJ|YGta^fi5ieK^P z*g%6!@5A++EHIcr@#;HOG!#}t(aF3X7%Ol-!+6fQ2v>&SXkuW&h{ea& zqYCMZoQlE>gRtg@;-?yX@5I7LV=gKVYc9f}L<)DEj0_p5T%#u&`tgNRag1_CzJc2k zP3O57%;*p1kk$fDOL7I@oy(vqRAl8`m@ub-IuoZ=@yjFgat()Ccu&fY<2XJtpAI6Y z;v)+{Y!~8uQ4We;XvnFOZS4LnF!qZeA6Qd}AXpi~fSw<*xyn-{xJ@e}!7EQx*@uFc z>~eK_M)}L@ZM1`{F@!N%{bt{UzL0f$%7a4jockMK;F`qGiIz!szY_=vwx&b7hP3|7d14*EQ1q3fx-ODJ`6?bMS z4ZyT1rUUZLw&!{e97RfSFg1)7SJierT^(ou?WlVc4}|TI^1E#sYVl?d=`K{k?25pf zrVbXi6O-Zt>%&2cf&&I{6|kK|%MMGdN|=i`&s^rJOIP{h4ArI*zg8XFW)Z+hH;iJ| zZnQDDpVh&FoL1;aQUTl55;m%?&D7f>&_`)qT^X=9R1cKU zOn_#xi#c8jNuVA{uZ^&+r3-$amOXFLTE9Vm7W zVqn*}=hG&DT$7#Yy*8a>EStW0>*lT3ZZFT?!m*u;0;MeY2m1+Q}b*SMdq~2 zm*CuFQ)#Le*#Gg5x^|i^8K;Q`O#WLUS0tT{oHIhG_+p04A_3~*C&cG}0*CpM*85uG0+bIz1LW?@NDksP(Srq%x?stmhpW5^au63A9ONtbTt$)VG?t5k zLGlU1(2clG@2scrB;q!~tJ>sfB_taKd*5lsE{x?sws zc&Y*AN?dS|Mvx(i0!43_=m=sYo{WyP&^HF;hCKb8?jZp14CJP#?ROHKS?G)pWdEMUUupF7hJOb$}6cn zKqiN^RVdsB9sPMOLvMgV@ZTt1Rf7W=--nVb2w^boDxC+344k!i z%kyKU^);_r$I=?S2fA5JB!#RLHlcQ#z}EQIs=ci2Z=Zek*){V8lNGk{)^=`oa6_b5 z;7qg_Zx@d!*GjJ0vIplXunZUQ0>wJJs(S^GuEVCae>utBBPLV8V3=nR;Yet_HW5A4Y&bIDl3dB#_KdbQ7l_#PEW*DYIK( z>;_TZimgGIw*mSb^PbGj^ogC;yLda6QE!EIV3&kn--n1(6qiUvin1PA_|&b*&FP(i z0|19*hn+thl0x(|CV%3Y-(YM$gWt0@Zhusgs0!u9^0Z;FxY9Fru*$$>-$F|@CtyrP zGa$jf#CelT5J#x@A08?<`lCZAy35bXhLTTtuEfl@4{$)<$Z@j(cT^O9I2ajcVM}dC z3;q?dxE_uUJXuliT#FNo2AJ9*HGy0d+D^o5Z%ax87rlH@AXOjPhQQK`{HKL%6jJQn zFfx?JQpa)(s%k&UDqIEzdnGKVUCtm=wgX>;WLHT#SJ$%YYybmnRRS+45h$%z4#5ag^Rhlh!>1S9~7WX(}^!VP%isTzJw} zC7g|xem#4FQeTOQ${{;}pGKMv)nL9L;7Cp*-xV8NFhM2Li(WV2iQzbk$ltjH?-pz@F6fb#;8;ie;3W4@Z8|U;f{n6g zeP$7#t4gTb2buoQu?$KQS|b$1avvhZO&20KSoaWVw68n5kR}?JI0wU|58tdwqKkE; zE@5QvxPU@26JZF;e!dogaD)7zRp?;8T^c4p405u*G8|VR5hNupP(f*R)sq!-L)FFL z^$7WQK z#iARb9a@O;j`;3`0gjro*&|0GTG%r<#^;9N%nJ{{L449C7a8KwFg8G-QDmE-J17*y zSfnWjP;|-x%0z0d5tJD@nul@=y5o$4_>mcBcra%(_toJXPZ|yNVZ{-U>!Xm7PfW5> z#VTMiPcaw%I%rCmNZ zS+HfAnSPiq(P3ARu(On{_=!c^4n>hEXs5AK$d%{}0K9Nz4k|5C#$rVtR(@lB-f2XU zwaPJcgdUT}w?y6 z4LBA9ZNxl+dCe0Ji%TZ4Xx10yKnQYCIfgs3DFO8QXEQS?EG8<97UlIh3PKV zhlNM4fp|J}BOFwr<;;0_;~^{$;w;wCc2++hp@S)&c*w zh_sr5Daz%VZwBm-Nx**8h5ta3*2#iTy0$mm?%=KUxjD0zURCoG36$Cl?sRTSouXT7 zrQA$d?s-x!>U=UT<(|ZH55MF90)Qe`tP^sW2#M|zx&!*T0b&ao`&2)GnE5I{>ktZ; zj0*4S(;uH{m3(H%t>!OD>!(t7jpzlfrc~w&s8qo9;Ts^bB$W^$NxHzo!F%>Za2(Ep z%~-T2NuWYX2#W#MR|S6iy+fcUJ@8(ov5ZPf4%#p!=B(t8Ryp5!zPlgVNhos=vX-hf z_|7n+U(X07L1KWgx<2*ogNzesI3e#b5#sjF9d+cjQoa~f$g@{o6HZ~I0Q(Cd9cX@=U6Xt6X0JM z$5-GFQz|M=XJPwVsr}3k7Y9m`nbUIE!5d}oFw7CXrL%&H5^4en;SDL?f^Os0DnE@i z@p99y%`e)yHQRB+t}WYl3l@^4FK{b?qW1tClC!8;kpT&AaqkI% zbAhf9(4o-}8Ik=Yxv3p}0z|7@L+*i|Y!2iQj8MiCkY(l+x{qa9dx1eF##2^R+&#mR zqL_9<(4@HDANW%vLy!C zl9?Zv%8k!d&Y7yGa39JGaVQBOe}Y3PmXq@<;U3#p9n6R>A^6f}XIBY_JU{q#3WM>%#>JE57vN0Ra{Qo(g{j%01sQnQR*A5i0^#VCAaHVjawU+ z&!^om1Zq`)Rv!kxV=xRu_Bxs;9U*cPIs<%3YQS~0Hs5j*f710xUmm5?8LVJLC6v80 z(JidY&Q72hU|trOnG0M5vVvGowuH>mokNJpN7t6_!4CUX+mJ#zBA@96iyvS&X`93; z%PjN}o?L=wqAi~~2fyICej9-O*ziLA0H0&8`w?LOE9@{YFa#9dgf?JOp2Y6?GKC6H zPQ^n5ej!`ef&zsJiXpxde4!v9iJxC#2NJazA5}pmab$-trz5?XWrmLIfN~`+`5w@> zcoS>>C{m#`Ag5E1<4?L-uJ5Lu;jPE77>S+cdZX2_CV0^4%W4R+bm033{op+kssV2` zrqz)_8%76i8BKWqTT(Bq053c(^_n9nl=;7yM}qo;sjyy8!@DP1cp5HoZnk-d`9`ou zjF0Ai40`yLenHbv`Rk_#vlZD=hKh~^dY7@vi= za3d7K;n7xZNJ6S}uV?CV-=1w%j20L4=7h3H$PplmLKjQu=0+w;LpI%+z5&j*+wC%t zH}lSFY=V5RScOO>M^#!jzE|LL;Fth`Ff*`3CN9SW?#FwJQeGyC-lArpemb8igJ2V8 zW|06;O)(dtP<+iA5>my$Y5+UaLxn4sB3K>5G*wpfhBK`8KoAey0V`r`2rd>A{E-Hv z@GFw}s14DF^&Aceh?|KZ<2^()Nv;sXF%vKVV?(tY#fpx2uJInsluR6Fb7iFm&l+5%go62FaF7n|6Vjv#N3{FbltF=K(zf05mGad_?V+0dimqX)9g5 zXSiZ9IU(n>6H6>q&016q_Zr%Idu2QS~cjUEj< zLJbBnCIw-RKv_ygRqY|*NgGF9l+MgKx7Okx{~lCGv_bkAb)k8I{wE7pe>4y-P;iI> zcbu7bEnK*>TW{FCdwa*;>?R1xBUINnN`XSYv zrH2)0i-p~-97&Wx0_|++f?2z$t@gFB!Bq5+eUb)qE>dL!q$vtppi?xQzCiGpgJw}U zS6EXhmoAc+Ij5WxD=pbStzX*$bxst^N1+pdpB<7$=KPc}KH_FfwL=zg)X4*JV~P11 zucPE$m}|Q*Ckwzp+U`UxuvW0r>*B}&=Cg6z_ANKOD7)o`o!4(Gx9r~jqMdMzznPx# zS-Degs=j6g8G@$VXEf?B!c=a8^@FZwrIlysDnI*tP)sE=23td^Q+n$- z4%k~HY-GShC%lM|g+&aS6q2_pl6gfnOo$Lb zkOOLAI4iKKlWg2gaB&dP496%Fr4`Qu9NVT~rDu~>a*Miqh*hAb+XjDmACKOPO}Qp; zzf3e498%>+_*A7Q<%sA<0u82FGa3jHOVq(Xg8==}rn%@&{N#xq+zkKlv`XPuY{#aS z&cWt{nM%(S>_O*pQS2j(JA{2S7e}WxBJ$?-qDO(okz}wuLB`sKdceCT$7_H2#6t#Kns!HLnVjcL9&i!^YQa3$863z=h15-~(AYC1e_?9um_=)u55_!Vs4CV+7cd z?6e5CR9aHgrEQgVhaG`eAkFw4!Qto6;6EtRJKw`3Jc!+_)2%km=G$0JJgQ1(*H*7K z(Sf z)Yp{|_YI33pniv0QXMjt*sP3lRrn+~e^vW20hLUEkKo2w038HXHL+OCiN$1vdJpb} ze}qE{zv6Y+RL~@sqG6dg7m^ZHiZB3FDS`k{rDS0Ps%*(My%m9`a?SS`EcTX+Yw#tS z2Lv>~+*FMSYhWMFFw&V31-+%ElMi>oSAKX1dK_yWw(@c?%zU{SsjI99X_Bho;(tlYm_rQZZ)Z3GKf{H@3AapV;C25H%W>nb2SBE$832O53 z1^VQ1h=d>Db&8Eve~7|4PHfpyVpS)@m}ChdAtQ?c{BZ`%1c_DNSPvfzs!M_2yt@d87~NbzIgcxjw%yvQ@5d4U)p94|y|LLOj_6%SZl zdb)n7Sbr5+5d%brbu`J<0?9R2*TiPqNwd0}4)uX)oN)ME;0&zrp?{^rMEO3z+ zCjX1DK!a3iVGSe#K!+%c%xtJH*o_m*p^!g;s+Mf6mgnXpnb!o&Gg*4<(uuOd%QSb8c^tBhhK_2n#A2V0>wzQ3NacA}5xk z9IWoc7b5aKex0EsQ4(rNuNIhL@a9cn9WjHM7Xhi(|LPB#z3kR1GQJyxnG_tfK0wqU z)<=$FwE#0BL%V8?K&x}6MN3vl}XWI$+%-P z4fbK^2<|M+!77HpxfDyFoH~njX@2#@lYonG_=q1X3_}K^h_z;c6@mA##2wsxhMP%l zh*Aqra&r+k_i-aK)*taGw5D65_7`}Kc%eLBrkY*x8Z_3X0b0Rlp1@{J+>%Ig@x){t;1g-_$?0|Ays^sHEHPArb7S@GtW-0Q*p@K2Bp&StTw%&uwbjf(Fx^-Y*e z$le2;6KpDCVeunp#a|B8o@vBnX)eciges#_zo?;vEAu&3tCF&8TsYQic-cJ0*Kp5p zAXV{Rx3x6-v&Pyjt)&l^K)CU=)i5*wgvE^fOJu%pFWBTCBbu9gzsQ@%&!0o zF|Dn7DMa*aNZ6PqY>X(!55W#R%w+*!J`k0ePBgI47|`3SKo`E5qMfihow6rp)2eY3 zK}qEZ5-0Q*R@Q*-D;U~+` zDmpFbv$))(PW2D{6%nz4R?8~>6P9JH^i*ln^KdKG{3URw)hr-J4&`RwccP|qS+}jM z+ahc*)iKYcTfwk%3GQ2od|-2_>e5hw6Ufu-St=s$MhS(}*q{r!ZU;gyBF#|Il3~ml zDn@EL_ltbKu5&+wYuBPq7J-8P1{`yx`Bp7et7h=<8h_FfB2vF4OkabRh}SnPf@}*l zWS)ewL6v*)s1V^mw=e95xb$7gTWh(gtKt*5wyUO!zKNx(ign_+ENQ~{`8r+=MJ2j9 zg;8IAg%ew68#SXJ%ZiV$KIy{uQtYBgPH`pf!$K_k!c_^@ z(Jm}CCeIxOH|@d|fKE@oUG>N|pQpdWa=^#7-K^vqyvPghfXo|%%-b@8=p2xG;UP{g zno}BXSFyWdNJ@d#YDcyq2=X$7RTiiUpUvm#iD>z3%FrzD=YDw${PGZNollDl4Qqfc zkutO(4YzdmK8YG5TwPV{7>?Vv(%CkqKc!@Ag%Ix4Iw^OQn(VclWm%i7>82e3wUO=5 z=h1R*&}p!*9ljl|FXg%Ht*SsXmW!>htsC$xTx>*Fb0J@r@xTr&M;NsRD^m~f@;Tfr z<>o1F>c+}vacwup3VCD&CexKfdClUQD-0)0>d`L;l{)*;O0m}R7*1sNAqk_8ltNVv9FsBNs8OIFABH}> zS#V}#f;+Vwo6o&*N<(}PvAmU6=x`g%{0dJeJ^jCMtG+iM!?mLU02M?5=He)wGh6$G zno=SOkuAX*l6-cGuZat&CF5VvX$?Fm>;lkMBSyOgmsK14sxjY=C$+6~vh*+Ih&x$5 zehMKd&pl(sY`ILMIU9{+Gi{LN$_FZ==$p8EgkRw|WfVmUyjC-YaNmxhTXFFGW2oNP zO~C`Uo2J|x>>J?TH5dE1AF#I(`Q}@4^F=h7lUsoCx3CPWp})Sjf`Ci={ozL%6|VpF zrGX%q{9eccJy?Z`#S>iBPna_oP5%)5As`+c8!p^#SKqT-x=dhIm6f@FPie$wm}e0n z`T!QI-mHLF`jGs|s|a0QSClW8&C!p;2D}H?@<9W`4W55rpChs2kZ;Nlg;s z{v~*&9I>9fRKSynRymvy3cqUD*xx&ZKqQ4tlE6^Drc0O329=7(No6f=_;%m~L++>S zK)GIS*?!Yr1_JKvsKg$sr$?B@-^L48ZS^)By{o!=FjAL4e?@AB>1_1!8Xx)ry_{tz z1`EUO_)m5V0rgD-Z6PcL*~~^qN&nu*S_{TOmhIVU94PvJXMHcPt8e{CDZ+@4q|pB@ zYX70CTFwer*3uID+3U#xLkc{$G0w{XMBR<&WH3;%@8J**B@U9kupQd|n~(5y!A56ALE4{nBk91bb` zie1?JpJZzMECfw{7J@msMd**k%(O|rBp{LAG(_xf1lz!h4}U!p-P;Hyxeb-3tWZGu zW)a3=3m@SU3afUl(t(P06TA&IMmGDIh%!E7WV2R^O3mj&M?lerZ^xpgJo!=-PQk}d z=*P5ROg{!c(0z9OD{x*9IQ{-!NedGwUr{NW=hsH7#cEiX2GcZ`g3uHSP!Owyo^83$Ury7Be9z;wS*ILw5{IF1DU{ z3PZ^mfsTOS#g0`IzhJB`<$SU=kjqFqPS=r|OMYZp+m^s$*oRLGzgKRoYH9tL3I)V|WhENB`@LJ!Q-+%TS<-L_XdsSW9;lB}=S;#~@KN9B)f2>%lYoiy`#|d@FkH zWjG zP*sszz=7&^_N7| z1q8PGrtBi3ZlUmF)^Jv_LVSJkNH+T&)`g|1S*MyjQzP$j0ByxjRKK)4Q9-d0%$xnT zu7(RzS3zt%KAWhA%n{51g?b*&W}mLA#98$qs66%uK)^=ocpd;C9t`MgHv2DCpI-Ew zPs<}`{;UmDO`aKzM`F1JwFRse83>4A9pGi*a>m}^O51Gq2UWFsF5$yK=Q2nRbO3PN9x7(DKd$=vb4Fs-bF==EwTMvdVTT$6;Nvf3yxdp4|xb$o(7ooiqZ!@P|};D|KDSewF` z9U4ABehvYys!A&@^>cVxNqlw4FRs}X%*n&3HjW>{&Ze-eg+w{XkjHBOX9$sKY1wli z;!{69STj9{tfhZgvXyB&_6op*$uOG?Mqb|Fji3jrW}_Vgf52*qjzSWp{mxHPed;~$ zC(j^FMew4ukO*J|ZKPR`t9j_=gz#MQ`BH2n6pb*)ZSuX&w4|^Diuyd>dOlE49F0}g z>$!uG_4>VZ&HpEtjYxLwM%D}ULnxW&42UyppK6DMouoD0^9ht#KPRc`X|4jpb4TEr zbUYZgwtu+lj(R}xS+_1`!X=SMBK;~I;Mhu53s$qtPzV}ln4-VWa=6mUa25v6DTB0> zis>I39&3d#IjS-9A@e4TI7y}lT*+mFJ0nvi46NM(Ip54<_ z^EF|0DhHoaI<*yU|ANd1hQfeAJ@jN^3{`)~VT~W3l3_v{B-0YmFkvGu(}S=GQwBy8 z+|+{x_$h|L?Ap?jtL@s8&^xO)x2CN;?>S$kx3LI3^F^4k#3v}F96=osztToS_)oOh zCnJcME;Xv3zkKBUaCo{*W?x!X>4diDd_JTi7*3VoyEo#*&SB;Y=MhZfNOa8AhsbdX zBQ$a<;VJ-r0UW&HR!Zxktb+GomWFFL{~cQi)Avf4vscRWH;)a6Y~#1Cy)|havO<7cmbJ1t$sW z8bm5tZDGV=NjG8}L4|8R;YPa}=6%Ak%RU2kS0b=e!nDtAq-!x9Ywe)^@{1VVAF87& z=vhq?@SHz@8PX|)W9=xbVrG!(pzcKgn;rpvhz1$kYprIB4}x7T4Cf02wC324hpv5$ z-6M~KWs-2GP`>*0Lz$r;K74RFmn1VmRYioH(}uxuS-1q7vbfcC43F$!STML2xB|eGzV}SWH|5n&B>BeN~YX7>a}E^nLC7 zq3p^}u*xzBcH;odGK>tsMrT180M&u`mcXDs#K1Z-ZB9AxLt&sxDi1c=4z^2oaE!I~ zIr!!wOg@rrXWd*xi9HLq{#ryBzrVcs@ z$gBO`Jtu4s6|AP~AY{n(D;JQ!(gj9G5or(@M*?9q% z9GoHVHzN$)hWDd~c-(+^LeR6|EXMrfa`*0$28Itu)&TcV+{XDif?$kvhqojH<-n;Y zi^Mo^$f30Dmaf?Wj3kpnI0(d6EL2p&GL(ElgB**ftS$-27fDF*^dJ-(>{Ub$&zG>-*X3t5Fb`b?S~V7Z^tYN3!OYXRc_IVjizxEG(!V z3&O*r!QmL-wBW~N4CHXYNrC>7C@R2f5=X_#loGOn_g1q9&{JHD5G&k@BS~~rxDhK{ z+^ol}6pR=J!q3=FaL2NJHWVI#+`qauQmk|W3C*e?Ow208E(-A?`_`vA6}SJrKyx73h+fGt@UJ7&5Oxb@FNv40w5sjqxAMmKu&J57VdvV3>+qf0 z4wRvGid}aWURDt*`SIFWZiE7oxa=U8F<$)^dqvJ+lQUveW= zdxUo@T`NbNL52Uo=3Lf64qO|hmqO^YNR#<}opTa1_(e5MD#@Q+=Y!mpUYrkee) zcZ}_gKwD(vVjvTX#KmX;Q%}7S7<^&%u{r_HL83VVn?DEQKnrw9hz^Be0CvCP!&7=c zkNsTH1W)MJvlB^H3*C}SvS`IIG7_{$asoklh$Uxm86ry#cLvNzc!*<%MaDg_ksRoS zbT31p(A$TlKYS=$w_S;iW{VV75|dUOOp_KkTiaD~woWU8|UtU>3A0 z*1#Ltr&oNx0%3-QLwK?(f)>sz+6?;{4-uY%7>e>|u;uu<3_lrk@S_aTj_P|* z)T$Pi;K{?!zEPp&Eg_q4PfWu9e=$~v_KLFfE$~VtW-T|{(!%(&(V+APaaU$z&?1?N zAH~)8voRtoAXrkmQBVh%x48JTuIr?i%|fj2^`7!JmOhmye1a35?-23FM7 zw$QanhB|B=?rRMmsa~c2Kcx{)g+^F5+IJZfF6$k$0GkZ?B!Mk70*l`y#FVU1@rQxX z2wV3a_7DGvW_T)cHskh-hZH2T1`2!arUH?wJTUn2s zaf^qGgTe?_%|X=8_ZY&mYxTFRtkgp|yV8QH(GjwN9U)J^6&Q2zlbRmD`#DLNdWi!buVPkFxhO7@NE#BRkNfkELQh%4FX zNW*EEf^jVlA;3M<2+=t@M8Tkm=VbOzMv%g}jMc7W92r$EcKli#Hv>&y0V8w6sW<|U zHY`@B8u3i*WFwwvLa5IsL@|3Ko=cpJ1JX?=WBo8>oCZ2R@=>b@A}{PZsi*}uDRtGzDx3em9e*t@ckgVeaoQ* z5Iqp-{uJto+RVu=JUIu9Yz#f#SQ@UKP9gg`+hnTZae}GB$7E$HNdjM%2`4^X$WuhI zURF3&0$l8{xb|v}6e3*liz_uia$pHq+zPdyjs1-TMIEK3L8_z51Qv>Y=PA1|b5Y?u z7P5vL;a(jcQJ61$jT@pD!C*kuU;qX!R<_CP;}~OwTlqi(kI04=B0Os25l3*Lokt=F z-OD3NLw0U7+esmlmC{hA2|josj>$Ai1S!j|$$FZMCp03{Bs*Vmn`t1gFVsTlS%Gsb zGe;H|qO#&Wm1&?HVV{`|E0CM}5+~XY98i>^AhiTrKP{Go{)=M^8z4k#CdMM>SmMU8 zf`R|YYjRPn#P!56_|EEyDmaB58xm{^+jH=fdHNX~U?f8EbYhW&YSww~#T!QyP0KMe z5#Mhl(#PPH8|?f9%i|~BVbsP$4RmoS?j1pnSn=U$9O@W}V@5j1Q^FQqNr4Tkz;PFe z*Adhg^D|QTW26V1gV`KC)C^33`3bSigCOo4n(GVRT|T?iXumR&z});RtAl2_@~wGv zr2(t74amuAZKa3kL6gVw=^?rf`?LfqB``WZ*|0f}B-l$xKHCa_hLQp9XDkkZW^jW; za}R#vs&)`y+uuY!hh8hMGe>}c0~UZ|5}25L4$=(|)lpqIhJy8=^VO#1U?hdriKx<= zYV2AW>Q&rM@K(o~mdaeoL`me(1UqS-#W%}y(_v~SQG%6QpcC7?Ey$Wzr5NK_unFX_ z=E$E%`*>{~H*5zyPII|JqdbR4s+ZzqVq_-);$mi@WCY7vhgdPt^RhLs_wn5ya6_Ii z6GI&9S$%PuP`oBUh!GSjmp3Z>SWWI(iVPtb0UvPUHWIjW4cHD$z2X9!FshO!s!zW{|G9Y$d3~qU zN?lKqiVs2eRuwupaG));nYUGq_tJ6+4;@Uz0Z1Q|@cc+2FpGpMY6YS9qdJvK58|_T2itCCvida7YrD0U0vAVIviN=aQB@gdkb(g z76ox@MmTE|Yl?aC_Sm^iE%HQ-a*#MkfblvUkYej2SA*@)VoNo}5aip@*Y}hxYY%@XZRaW$ZQMo5!<9 z^FGINCHww7JjVz_RM7f~Ohjo<&Vw=u`HW^$Sd1>};iLR>{GW8dN}Mnx01c{r25IJ@ zzrY@m{lO;C%Ta`selGLXrEI`zA`6!vpq^mx^*+8b&_{$mcH0ik4opJO^Uw_ByTpb< zT@XLr4?qX`=ATd>S-(cA0DTgmJE^+GK-w)Kz`NnndI(^G6r_(|nL7(o zNV^#8a22VLH^BVok$XDjV2tA0NkjuenhYwi#f=Keqa;kEh_~2J8V1KL9Kj$0aJ$Fv zpo(dKA7l~mRwKSU*U5-gI~89u5`#G-l50eX%%#OIMhYL4uXwl?LlT8NvRbhQG^*en zX&mwx=Zw1j4|bd%%fnEchoLqPDX1X_DG8~dQM(*u5?OuB<7TXOcCd1Z$4~&mfWov5 zxFVs@z1%#M&Wu@S*|H(&toP-;mQxLOCds>qC?w^eM!ETTCoWg#pN#V=A|*v7J;QO< zIJW@z8|D5&$Z)~e7mYw7l(VKob6}JvhpDUHeT*@Ua*KH_w*-kJBB;w_xuqlXvMsq5 z4BN9yU)%%wA9<+uCaN1CyTR9z&{zKnhjq+-!h4A*~0F4h)VkyOtg2mIECaI)os* zz77s!dU|Lf>F2ouPy4KI;Uze(pGng!Eg(Qp@GYfN?a_RN;)ctfBnwMvc?HIm zP)@9|7}-Xw?e}bcXfZcQY% z$ti8QZL%zqe7-=@tMFZJ{*;>~{FY#+2YC8!ZfF5r(}YD0VQ&TkXCplegOjG90zwU% zgEKqSGVx(VW%3hc#e;jpMGGfF49T2}K~Zxo#DddiA8f(-91A`Fw60GP;YRu}!*1P; zg5f0x4n5+K!ayZ4B*^rOJ{|z?UI%!kp z!tB<~d$wnHcI@Hu!M!_g+@4J%waJdo-MjW=x7@sU`yQr5u+pB4)A{@u^Rij(%4!~o zuBMeoqGu6~d;?C)E~EX?p42c=LL0 zWG;|MXBPWO8&I#Uo!ctO%QI(pruXjLwKKDQn^d~yrp?EEGfT>H)5A?KH^;dV#`QiP z{Rua(=jKh=AkoYLV&%d(ue^&JnTm{;ERnrz1R~)jgiVtfER4tZ_{cB0VUG*nD!h{& zE;4Y~gH^Lex?b3`nC}?8i5R9hh>e>dQ)ZaTWnK(%A>jDk1lR8d97W@c;&(#f0}+@e zT0})NiPqS8vH5tSDYh&&FaCmfQ#>APjyMpKw>GDm&q)k5uW4y*Nw`kS<;@$LFKT|N z^6*;}UmRz$#BH}Ab!L69mbFE@Q>{n z!0!NlEITN71joViESp1zKbBv@kMHnV{?(UJea^v`!;f`kIlRX@bmPbC{7d3T?ZzDZ z;`s3|i65`=?}c_(bDw39+_64Eo%t9CC-1TBqxkWAY%8B-`}X+fY#;9jZMYuC0UU4` za?^ikTY|a}o-ChbvJBRTKc2HcSZ~&WBb|Hx@jBlN{&>6vKlUg4pYLzSkNv`OcH(y( ze(X=)@5GN}Z8v^wFWVZlljGz@{Py9;XZhWm{Nrn|=O6ouf86t%{Npjp=U*_6>>1j} zFmoG{7b4H~EjFg}{$yKQTk@9Ho@CGAT=HbH^)PuG98iql`TpcB2tg{3#r=@imeC3V zlOla7HGdK%xCkyvqD1x%-7!!Y9%81p&~#c{vmxGkAj!WCkUfe=dy_~lGz3-+1s)hi z9zOVv+c?M;UBlqKhVE(hq9ov}+z6E`qTe9{2MaBfGDed|C_0h`-`?6!3-xT6>GqPzQW zmPFQ8c5<@VQy9pPTuqf#4|Pz4)ZzR{vKL8jE4>NB2sN%lcGU-MBwP~IEy2MNShPFo zgK)40A|Sfy?OXQ}COd;F6^94u7HKnARXBNQ84FlaTMeVt;DZOL7Xv^!mRmV8>_phW z>Z6km6uRMt>BZbYv8TI`!|fhB zGOItj?st4N-g?AunVmFtt$S)pVvn9kuCfA-6epf$v>r*g6XYTv9tucT zfF4!rQNIuwqayenz;s2=@4TcF0rXG62c5;9ou(r-^Sj) z!>_e94I(`Q#n&M26k+X;tTi>jyK(#OEuDLayX19ldZ1HB1;|fhJ|Gdv(ZP`cgzuNE z4{%yxRzU76+Pz@3`*vdzH;%_eURMyL0Ei}BF;F4VPXkfCh*1MX@fr?H*mpOKT;-a zuv2;iVLoIt(@SfrV7+hi?v9-uFWU1$loW40?l-o0`#>H!wF|?L z>H0a8d3^{ee332nI5FR089(Q*0JV*`-b5mRIzz&%L`;_Uwfbg^9-mD3BUOkp$!9=h zD2ZFtX0fY~t$3@{arVb#Fs{z^_I0CgudYVe#BKm`A93u+i8XNo4$Q#@LQq1GGwy=W zG>n6w0vOr!7{nuY+;ZuL{qeX}s8nOuz;z1AD=g*Nvv>3Ey*H#cSRNw`okLptTojR9 z4Zn52x@-IbNV?F(4arp(4)&~SE%t);qd#*(ObPL7TL)Gb(&b8`U17Xb#+n6^Uvz-l zeZMb?tO)tA7vl>~Zh#brP~aNb7UB)to@+aIkq`q=gCI_%?#YeztDC}_oInzdLUVI>5wWh;K-4_Y>mYvcYml`}rm71}JFk5{vn`!vjGHJ2u~N{oZRgcWk?U`)<%2 z3XDCV&lOqrZC={T}V)5zz-sCOqYuB&4YW-DLykOl`m+$A3 zFgwU6ZKZri%WhT*UCyL1;!Mce1wh=j`FbRqw8(%Z`_Ma#d`+M~#3{g8U|Lz}OE8vv zjRxihIY#kS+FQdLSrLi0-kUc~}pFheJlmRKnP%aFv<1qZw z;gNsvqmPXL`%~jv?*Gcl?>Dy1+mzh1dwX(S8~!D?hCIURo;Ar!ue$05t?Sy`!F!xY z?&$@M8A)E>eV~}!yd_yxCS|bdUvTeS|Cww2{U(3!)a^b0JlNBE&A(tzMFIbUy|Jg_ zEyzRHKM(d)Gw?6i2Ln3TH`&`_yWnB7e;(`;{&}#sr!&%w(RW>&>aX2al>9g#opv+e)O@bq}c>y$95;?t z`Za*Y4C>CqPDg<5I=%>H-lEj#e&tMLm7YGJobep)^(rUXr@YaF%9%N&-2Cl$=62ZtO@?ow)ERC%ep@!Z{L7X0RBPNQ!3qAvF;C-rjWO}$b% zQ&5CW--o)s2FLd+Z~P7T4zyv(wvjd^2 zT>ByF^&{mbevEeg1hD%F-v1fu{%?TWFO@U-?@CSoJIeS^rBeTiGM`0V=wE_S(yq0h zKze~`N1Jw6JBg?^T~Y0&8?;HrwVsA0G&NVNuDRMw&(&@^f#ZbMDH!?3=V@;e`rerq z?M}_dvkSE|zDVo*679^KrFB;l*OR!9eSU>@^5Q7=HbSD}onQHPycjb5j<>P9=d zwH`l!vU;?h8Nz;8>&c_|_EBx}cc313Xs`VQ?!8Q_0IV+5rSz&b7 z8snueGMLxK%U^$Fo=9`jvS1N~0&P!v2ML_Zs6)UW4bZF-~f;@sit6 z#Yf+ zRN@o(&L?o~lPK#`fa_lYUY|z$K5d-wNxhFyj{d;3l|A6m(1?~EZ(bHcw-qhEOo+=x6{2M6en<)REjFbPC zaYw&xoXKgldD`gqf5yB2jPm{kbw@WK`nE#*F?L z=h&xzVpRSo#-08N>hZ5A<6n)VX7K(D+BIWL;%6xHXMn-K88!BAsPoSOgI^ex`h{`F zera_6S9s@F#!O>BgMIqHj2izh)bZDN{@2D${Klx{Z;UhgTjRBB$H5RXDB78D9W{lF zyyFoZM{yi=bUx;IlTCQ0+41so9Wyo80d95NiG<@!&2v;cY=OxIjv8CwxQWG%Gr9!t zEpgoTrH)E1b#&?+$L(6~sLAEHf39P?&UMu2xsEfw!qJJ9j+tDAXV*B+^riR~QY=hg z<+$k$DEDf|Y<6_lb&i|ra7>~T_d4;-wBvQX#Brxzf^YA3yqUd@9=p-; zruP9<`y4%)aa8&iT-)!ciT!xL%P|vOj!JZ++-_XMej5A40Y~TiQAWSx&h(?q0hE8p zF;j=YUEJ=N@!QcJ?DK<;8Xv^6zuYcdpWtt3i|3D7XD0<)klGy1fy($jPML}8@cxac2Mi2j*u(q9o7{(M8RaEzRZeoh^2Yar-rt6@vdSIL zqJ3FqX1bJ{I)J)^cT#=04!$W3zG-|wnP~_H1UKy zKUQi2yv)=R?RA}{o%Us*m&>#}wM;ux=YUsOuAK?kl&6+!z#Q~933|K&^z%H>&z0JA zt`mnb&UOh<5S??WT*`Ock}09MNV1e972x?M|N1CRsu`C9S4P+RL9r*{8JXI)!%J zr8W2!XZp1Ez^~}3KgKui)85Q|sK;yY{A`#o3xjBt9I1eQ2%l5wLgG*yhH2pcWO29PMkjoI6a8x9|SDkrFHTlZ6+VW zGw;Fi`|-^CQSJv&<_9(CjaD-s(r(v;HscdoPk$KiJgU{$qu_Bq4!C?=d#O(VW|O%7 zIAHNO+VmN~@iS=iXHgz_AM!ehvi3&5p-tkOTBW|Jz2vvB{}$@;Ej;r*ZSvm(T)^*) zKch|8547s~vG&s7dq)2Q&;AB=_$|Jzj0ZHNlTqO6sPRUz-ZRkvdeC6B0>9HW-{{GO zMy0{$bS(vr25+OzHqH!qoAG79>q+A&@Gt4}j5~QA=+XJOe!ej?*rzWrX6gc?5*HeG z`a;l(m3Vg*%3W>T@zutg1h3P+7W8K=_UnvEt;cigL31ug8J8P9b`{Fq0J^ckc*(0l z8?H8P*G2>Ui)UYGbRuO`SIT(PDdXffiztO148*#o5ZP|yiZpQv* zqq{5*Wm2~qrS=;qc^lx>XH2r+c;Jmp{-9CG0b|Ana2@;UA)FVCmjVxzKWfzUQPAmQ z#u+^hntH;x6X1OkcY-dSG|t2+qekyCy8Wfb8yz)z;vT^A9(?CsqbFZ!yu^LR?RpjJ z^(v#2uQ%TK>+#;}QSSXljlIF>={FgZcr)txW@FmlVs!fL#u_g9zSEfTcN#tR zpivVK8dtr`sP=amZ|vP@+XSAOFzy(5pNS9SyAPwBM{xfUwC_>03;a&%BY+wBoy14+ zZSXo>kD;EQK)Ihnx!`Hq{|fg%jXFIJn0^NE{4Bollu@atjFib2M^LHrcOU9f0vT+mtX!O|Ejgu}Lo%n(A)DQ8TYA}9{p7|N>{oJ_u zpQDVQ8*k=6@Z4{3?^&ZppG6r8v{yL}!~ivJc?dld0X+rp(B2Fh+YACX*KxY$f+i;% zFV*6xt`^5l&If&-54w-NTHxsPB3xhOIFs0uj~HLbPTHbxh)G_~zH} zov)!SUk5++b$qw%c&Tq-|4m%~CgAyP$E2sxCJ5{K@8bMvwD%dnr*M-BH zlWxFygX>MkT{qF_s`f_Lox)xTb&a^r%yGP1!u68t=I?ZM`lRcQ-Gy>r z>YCIj?!OGr-s?h^a@EwmsMmdH$9=9df&Jutt~d57*O`75zVRn`=TBTc{d!la`?3Et z+B%8*kE0%syE^}*>yAI^nyDx8ttV0E&*S~i~+DcE)T;iG0cF&z^_e}ayPp3LPXAFMWlh`NHo}Sw8IqBOx zoqx0EPQTgHqYrpy;z3VOf5dY~Kk7O8k9%I?6FC0_zVj*1>H0LvpY-(D=RGs|c~2+4 z;yLYK!*{=iXMW>Be(^xlBF@y>h@QMY;-+^+ys?gmp6HBt6MG^iaYIC>M49(aCp3 zoXL0L+Pfm|%)29A;vro7SVW~i7BOQVi|Ev+B2MDd2*dGY#GU$UeCu-&XZ&v>X8iLJ zJ^Iy%+x4}G%6|>t`+CGA%P9975jXLzh?)FW1hOK&@$HB^F&!~8(-D>UPQ>Z@F6#Kh zh?n|t#8E$s0QW{z^5+pJ{fh`>J6!wsh}-@jXrqEaV4^xTH|n-SAvV4w3Y`ef&yT9~ z`B6Q(KI)~eh^qV*QD^e1sP4KtYR0aPI$ayF-x$^Ho1$uZQ`Agf6LnLms5iDb>L#~D zF{fhgOd_VnTVf_PKjyYCh@szcZ9z;W7RJoP!k9O+C}z@&V~{7XKP#rX&WY*i6*1Fw z9 z%*xHC2x=EsoU}FU`&r5 z#{O{3Ne;z4HH>-;V-MlA{RqBMh&hQOt`%d@iNsuWH0I=w;@vx9-o$a#^90&>0_Bxr zdZvVL-WhXKe~fSa5N-NVOilbKrYC+9bKCzlrW30hoWvS1Z5K6o>f#1xw6#HxeW(HY z3oL5=WP_9Z6!xFN{)q-X`uBL|D-FPLIR8b1H{->fR5b36#^QQvUEGUD85@u%4TY21w6ANShdi2HAhyIpUJo2fU&y~#Jn^~BrbCN&=S#vh35 z$p_;~y*sYc523vG#Ep7i+?{$~T+O^MZra};cgNo!SCj9L>#+~Sz3C64tcf_rVWXGc z*r-#fMm3#k)LrRDXZj_La8zqFsXdLV3;RjzXL!E1QBCb_)YG>#I#ahcn#BG_oj%m4 zl0%K&=uo4cDK>gzM{(_&jgI)Y(arxeuK&2voBj#jYie@T+$Npg(d4yX+oaWX zP2SjbO~4gRZfY0KU()1^?rt)ZyPMqcJxwOL7w0!Nc{4ZSotv7x$(yjh1@GS41X-#H zdj2Mpzpcrg=xWjvy-nWKp(dSz;60Vc`LQNv{LUt`6m|?p(Jt{D5I7uQ+13=$_Nb@a z1myUxh*J3ox9Ne3O=jSSwOel983h?AY<>nXSnT1NL#gI7{ zC2($5Rr_z&sR3~iWEWpHXIiF1 z3I$4`5V}caF+$-3N^LSTnaa7huk-;K=gLYSG^s6u?Asd?IB-6*!NnV!hM!k ztwEIj3K@U5eEEM^-r}nWe;16=cJ+A6yLvp~4v!V>@C4d1mM%>9_}Vd+E_8eR(OI5A zb$^eqa)2jLm<=Ax&F2<*yqK5ww;zqM+u0s}_#985at_?*LRJprx(|3fk@GQ5J>TQk zV_A%2D@RqHkuT!gmptC~FT?$1PaynN$oMM8nKyg9m76{O z+$|n2#;!h$Tdisl?yuoH#;=&;x5}93uiT3G(OA}Ne*=1b19AR_#~-=f2C1f4Sny0PT%&Z@vX1;ZG8VObhr<3`ku#Ey&tk3fNae3S0DBSs*iYl_M=GG z$2fJCDEgJGg=NGvIp${-5<&k!L-D z^79_c{(}c?8p8jJ$7j8Q@2`L#82%gL@u~;&l!zO~$+_1&zF5GEc`uAPf*8x-scBSC z9(ymZFSnQ1ug1Fe-d>M&fHzP$z^mrz1MPD$PMPPmqK9K#bA%Uli`Pm;yx!=M7^7gW zzC7Qn#;KlC6l0k8VtjSH*OS9|Glg+x730j(srZI*X5}=mCmO@JDdzQBanO4({_6Gm zi@jd2-RISF^aWt0&+E-4yjC%R@GusQ^+PT&w-VnlCM{u1S{d+qtAk#DI~?Cv1tDNUQaBC@MsKbVUFDs`7m_)u-BKm$m=Oz>hlo0F!FU2seO8V|7#U#3 z=P7>J=Sy9PKK_O9_Yt4Bd=aY0iy`w0pTCGPQt>M2a1C_4#^)_ugK)3)c~jRypX+?y z*ma--txx%^@TWk#9y(tS{0wNHfs7jw#*NVBbI{>)KEHhvWMIq`#&`*1CST-BK7ZuP z(CaHcU-YZszuBk8Pu>{DPz8mUfK3&Bm=pAQt6xVLxBC1sjG5ZM;q#R+ZVKNHUA~F9 z-H9>Joj!lzTL|x4zCh$2gi-Q&Qa|!}qd$h9vd>ff34Z_7=g<8NejoM)qL2DK7&rOD zzwmjA7#~?r;5Wuc<%%zmdJ6je9%=C`bbKDNpNF1*@Oevr@cAo$^!Z{h`TWI~ecte& zeZJf)@b_2f@mIv}RiDT5pg-?LKOJv*l>F$=hcNco%5UYj_Itx`MxXu7_`VIs9PNIq z((d<1xAl8d+hdHe1I8pf`mM;0{y=3%zbCc}{9&wA1-9?z_k?%%`->PWh2Mek!#n(e z@}7QAVIRLY@=m{})Zq`5I{ltpm)~3I^7~5|M}_yp_pskvoaOhl&&K%ZK)*MC5XM(? z;D0Xs9_shU=0TUk{od#i7<(K6J&wd!V?M%}?+@e`K-UEbdy(H4S?u@b7DFeDyTb4B zdy2<{c0A&+)E`Kl!IuQ zi0`Kn#uuRLO-Q@D{8s)hjFGapAH047{i5cKpbyCcsGE4 zBffnW-#!>mUI_7CyxL3}F*{L!BTeAZ6`9_tqYf9Y|= z<#D9XuORCQ@ckBX`7LyP68Ln$7kLJJ&mj%|5b#9)9Pp)H30V18Am^V*hkph9xql<< z|3Kzz0jvC4z#q1PR?fm$%?kReo}f33OD-b5V4&*5n9Lsxgaa5;1~6_5Vr;SpD z2C;S!^pxHX{5c)+;;}8!aIXryCY~tI)VYaGw8|B2>N3C!vDVTkFj!oX3#3m40_wU!M|V79}B}B z4*E;8;BS9?+aJ0d5DZweq2KJFH#a-zE6)yk$_EC0xq~48An1HB!aq2OHX|6w%?(=R zxj}FA(4en)D8f4;7>GoIRxT3sRwF^Il?Oe=V-crg!E+qa0ORxA3Bf>YY0zVxgfLDD zdSk%KNx?wje}Y!~$w6=VWW@87pr?Hq(sLQ&a$3-DFGpH05Bf^WgMs4vkX9>#R&+(s zTL6}TRt)mu2qPZ!7vlH^%=I9?y+LoOHyDWa1^tl(^zMhBmBBz|0QwIGJ>j9CuP}`G zjes`^-OxF&rjQ0}5cZm&r?M7tSqD55>2ntJd_VAP(9VIJb0IH>cz!Twh0jO0=fnR6 zL4WF_h{xqYfBPp9_bWiZ0&&26L;0#;poF;w%rjWlwQysuA&fbO!u3JF_35Cu`01ck z0$PQjKl0h2N6kBwK979&#h@?uCE%BXzR1^tfz;RW`&OjSZHUKh2=5y~tN0DX=XTiO z_MkV1d5H?$Izt=8Rej_iUCRc zPY{PkgI3|ups(~;(1SS(EA>n0^f>6h3R;n02R*T;L4P_Ju$}?`GeLj&xnQ932Za3s z!uTWfcoE^g81&?-!9e6Cg!59+TY4G1e-3)ee}>$@1pW3aNQYMt_TLc3KZ1ewSA&-Q zYS3SO74dov`n-nlUIX32yo3jH89vNY1lqj0KpXmnaJOM@qYd*N(=gvLtt}9HQ=2y$ zYV+l{YV%rKxB07Ew*{)(w0TQ!!92%X+PpE$k>s{*!&)f#w}Y(h;eUI~hrA7QA-jNg zmp055wqcE>&2R0|X2tes^Og5%v#R^x+kTKc3w{rPzXRJml{sy`>LKuRXq(lJxfINy zSY^ziMCN1uWPY2c{irryY6)~Wwk=SIBK#=ASkZ>OiZEi(DTePoZN5@3z9k^5zYSw~ zgmp%nKbnS48N@l;W<^KaJoZ^_R_-i>k!$m(KG5dLUkutu+kC}K+N@F@a&Kt!wcprg zpKG%spGRE3fVrSAz|U9O{E@G=dCE7p`OCLJ?$@F7t>C#0zi)5z=k9<$-)ytO zcfx%a`0qhHN^Snqy=~sew;|)(h|7RsTk(B6eA{lCCxtny2>-*Ki0umA-KJU9-KKf0cTBVFcT5Z9-+_6meWv*$9he8|oaQaf znC36<3!Z%;e0>>|`to;?H(B_Lu0d#(y!s#^||^_{3kd zO8FzjSYRwM3Sa&u;wv(i7%MN+chN^s^b|C|i(63m1m(MgKlh!OgoEQ)#v>U&{66~r zF~&<7uV%b~@jS*>`RA^nbh_*klKAH`G=D`c7*eLYCgHk3kZt~33H41 z`;mkeW9c|@S55gGZ&R<=+g&_`^gV1DVf)7kO}$c4`W}5R<1q%`d&q5_L>NAq`4$t} z?;@-+mX0EKehFdjXhQ3w{GHKa{qjBZy?h#BJEQ1nA5Y(_jHMG;&QikIiG=UJj&RMT zgw;-zUudfH3wv4nd*QaMXj;k2srg$xogAilf>6 z9>x<4`c+>e{?ZF1?=$Lh68xR`D1A@84~v&@|LRKp*-G(u`$IIIxR^d$XByu}UwaKF zgs@f5_%8hHZ9UlfNeXw{{#|sqCPOqt-&ZiMVqC-cA;wD?Kh1bE5sN5-{cc{zvXa6ANek5>MP#`h5iqg^KV9pml>{vXYx0bXVNA9@?B8$5%;1$ zQo1f-JeKifMpHl2zqlnnB3Dr8l71%N0~}77QTz#-^rsBIX8Ma9!HM#V{-)k;@~(c- znZJck@Oh?-yP5o!>A$CN?LRrgH|S~kw9lq?i@u_t zxIh0fr(I3DxYuq=?Z{Po5T48K3mAn@a8vUy*pBp&aPB(IX@_QX@n^JYuPQc^q*n( zo0$Fuc4KFw{`)Gsw_^9L?3Q~N?qoN%?&-gK*o`B2`tSSf#+E+)_hWX;{S1$?dt0Xe zhTS-_r~iJ>?(Nw9Cw6bo?!U1cTLksrzuCP5yL}5N{@6CC|K7xIxFc9+<##yslpes+7wX+6YlAG;rBcYxiGvsoEhuOU|yVWsJ^|v>>)m^f@4XZ$oUV?mp|}c=l98?|7wup+v76-e%}cc z?yWBCOqX!`;+8(4{~`a!GK$`U`&tx!(qHT?-`~JDQeaC=f!PO9c{`l(D8}O% zPh;$7OfjCxcs}DLj8`$DkV>3*+95-HdY> z=QAF|coJib@pQ&4<2j5MGJb;bI>yg478&ni{4V1|jE^xs$@l`}Um2}A6ps+&_KdqT zb~5hIco^ei#wg>djD3tFjB6RsWBe%N6^sSOFEQT6_nZ!Z({s9U$5>|k zCF9eKFEaj}(R(PxV{6787;VNGjI$XJXFQ7Wc*fHh`x#S=XEL78cnRZGj5jcTh4FUA z65|7m4>LZ&_$=egjQ?T`9!BwLXWWHxZ^mxMIgIlek6}ECF~)d0W0vt8#tRug!FV0x z=NXHPcQJmK@gc^?7@uT(f$^`5);x+wh;e(y-5EO>_h&qeaWP|*@l?h>#u3J~jOQ_a zl<^A20^^q$Z)5yF#`_t6%J?hBXBexDuQK`%r}%8cxD(@^j9rWeF-92Q&A62DeT)N) zX~y?6Uci`VyoT|!j5jlWlkwY(4>JCovBLN~<6jv6!#M2-iqBgacVm1fW0-L+<3h&c z7*A&GVH{#y&6s1ni1Bj9>ltri{5s>e7{A9@X8a}N(~K`N{+-bqp?GY~xC5ijID>IE z0Wit$Xw^BFH;yo&J##;-8m&RAl6fbn6*Cm5e)e3|iIj6vRq*3P&K ztem2pSL-5B>^>|mV9xIg2;jPn@hGakiw zEaM4`Co{$v`x#GXOf#-y%rRcbcq!wxj5jgf%y=i`cNiaH`~~Avj4v?$mC>`1(qkLO zof-FHJb-aNkH5#yzd*D!vH@kYikGTzQ8cD{wj$>J8A`8bUS#VuG} zLGci`;M}9e|Ng|g$NxV2xbeTA;PO4|@_p@l#+OrY`Tp2@$LHVSc;|PSw~_t4;xT^o7of(mRB!$+Z$BY0RyH#A^+sJ@hH5u9Oyj+&7N6Ta)K5$4Qa>=FYFpT{(_l zbIyrzoNJVC+~KCnO$pZnsPdCycXU^Bi}a%5#(i&^-+DV?g;C_;zBi)pLztSue2gNu z_RLHt-m6HfE4^1F`|(CiHbZ4XUZDw%G17Y*U3h;44|(B{fMxipAER0B>P6pGz5*}p z(wh*PZ+Mh$5LZuas7uWap1J^`O-(XNLOLDS9x{Vx;!(swyuG5X+*U^+Kcxw@PGuVS&Kj4vaa7Om>aU~ znfgw3PCR?vU}8wWAEX`vz%A<;bSmvq-OCjBHI2!8BDYJaMnPh?&{H_YWS z#_iL-l%IrNX8Oag5FPgl>ij3|RQm||4_?RgE~oz((|2RKy6;%|m36Zc({DPB{6}Xx z{TI_b&&~7#(;4!_Lw94Bm% z{ePe7(fyqM%V(1RGShQR_p$%VSwx?~`r&>?XZoB$`ajP8s|PyeSF+^4!gTu}qRYBm zDoy^MWqOh6V&6!H=r1t6!gNXB@+isQ>pHSe`@zoe%k2MU_HWH0y2uZYkpEYi9yaKO zVWNANll+)LFR}j+)AI&Bk|h6cWqQe=x3m0Rm|ivLu@w2=lj-&$PW{U)e+JW|Oqcwd z&rIRCV-Ci*c< zZ$FagqMyBn=(E^_Xk^j#!y*NbvC4Ivg z^8Zz)<33iMcZA+9^(WJ#OqcklK1lNK7XRy<{)?PHza##cF8Q-?4u#Lj=?cPc_E#_d zB#i@QU0VcH-%NUl+YKYz5MOMF;!#{dh|9!kWvJe-jl2AnE^-c0Xgdi%u5VC(VQ~us zV~YLD=h${mJtIBihb#QeFuXmf49$sJ^Ad?EZE6y*;$$&?_>NW}w zwfB+qsC`WB6)W)A(r9l2;`UaLdw1FU;bq5}HIe#hJd82M-j%~IJ2lw53U9it?6zwD z6Klsr;OVn$a$b0%vXoXUR;XbYhKS?qgSin5H}uGirzzGOH(@+PFG6*xp^+ZaV4gz$ z)Ki%weG*rUNr!7%9;rzf`(zL^yy&Nh>Y*wXBK)W^q#o_*sdx^6axmpa=Xm&mC+0iuK;=+S|G}4`4vj- zbg6QMj3#x$h@+M`@`1+7YX%1K)GAV!6m$lp29c!Im~S-$fcL^i`c%Hd)1m`-3RL;W zOJ+K7rD=@}Q)#)1l>{k~WF&br4wGIIWn`GRetJxR%V0HjjMN~4~lGZD9e2`x8tQMr6Vbk$WjH6tpE+N7jOp>YdiN= zkGt!qj$zZ9nhWr{Bi<6kbcGa3nW9ksR8dBrMjn7<2#F&h2Z!;v9@UX}T`zP(3Kqev zXd=5Np{8Onamqx@)j)7>Zz7dNDGn`K8^?R8cp17DQn#qqG5-)dJZsV7j@l%WoDmI#vbi-_rM53XxR4J?<)A3a6Toy*aU3M5DtA7*y z%cqZp+tG7KcowwLc>`0)cym|khe5owyB76keYLnma~RbkS{)ji22Gl2 zVN^*fv19gDE;aSd+_gsuArdtwX{6HJ){2bzN!*W@T4kkMk87G7`8ld7^2zsTDDpR8P?E;)jtz>UWVif*G- z(X)b@0aeCGHjXD(p`UYk0qQKFR;;$*fEXl)2eZiJsx*^m9cE4DktZxzvIO=*uE?n3 z;!tonzAAy|D@QV&{b@9%*j@9!bQ!E$z1)mDtI^` zR!Pryss@@IH=rd9B}P`_HB?o@Vv0DcrHRS#^lB|hqC%|2nj*`k zDV@+$%vtq3r>eD-hE$aJ{Z_O#DnB7gI^z5itE6I$33YNxEMH5}ZksJX#x|G<^(RM1 z`nu5OsAN^EKnKjkqtmF1ISYvzDq8g=ye0%D$BVHwCrT{!B6Vs(f9)}@UpdDM>B#is zWqDN-kE0!)1;z{SEovy8AEizbPix~*YMPMe`FxtW)@q@WADfh~C!@JcC2NIE*I)By zq6RhkX~+naU`C~=+no7`3o5R0YCKKmYA*>1y3?m@tg2h;pWr$3PW46lD7tE#uDd6h zdLLNI!+X2hn@YG5wcMvF)%sGcb50lK6vRsBrZIoi8?Y==Lo%xl&y259h@Npy_V$jZ z)4H`s_K#CnXZ@U}5DtjAX-0>XnRJ({4;71&s!gK>Yt4?0uN@p79jV;`-wfB~6qd9dSzD~$k zzQ!}wsA7;MYbMfqsOpIgMJud)#`X)jGqd)yAqZU8|{TRK1#w zc4=a@T4<~ju~D_!`t_7Zrp5?KP*>}r`F5%GYMDjZH-mTUYyG|bkf@0icPNJAYc&yt zPI3{KxFL-4BnM>@`k8p0hm;X&4NMoeS`et}d8)>S2GO@jsAkJnA=N5`z64WL7aKWL zS+zDK)LLi(HQ`hQRqv!h1xfzUkefXgyLSMF?1ds3twE>m$H2((9%=h@t)rf)@6vD3 z_a_plh){^KgXrlgM*RS}B#}$?p%p;XF{(vBLJc?@R_Lg)=D;dx0BL=tO+&kF{YlSlT2#= zH?rfD$d2{xfwqq-7nwREtx6=+ELvus-h0%bvd|va>mcB5c?@}VrbSJzc(5%A{m^)N zFrm7F$LKGLMeW8&=x*TPNbk^S-`I$TMpP=_>&j_#WGI2%O`=$>Syd$@q_$H@mTRpz z$Z$$`7dJ)G7&n0Nib-u8B+0J_KIo!#p_4d-y(sf~I(W*iHsI2Yg6<&c(NL}OlYtQL zW}%^l1W+5D>AG5nLbbIT+|`fX(52LKcQO#7DG7AGsE3V?Aq|IY>_>sDBhg2zX#g(W zg;aLqq3QY^BZ`-{Jare*$}dGr0|y4R%4?lGl|N*BH;_(_uEeAwc-`Vw%i4#Z>)iMG z9Iq=DXKma%$zNpsl0*8=`)D1hyn%8bV*k|*^#5D--@gBb#p|!^-`+s~a({t&{!53NwV9kjSd0QjhmB5C*%-$ZAMD zIx@COA)$@!XE4`))2EP~_Fz_77mR$n@j9DGjxt~LLQ3b) z{dy_0DsBmgv0})J-RIP^bn*E14)4MD(;D)cIqmO}{K;PbbqhC-H`v7nZan`#d{=ML zt8^&;kdfW?PaCIC%!MxUat6Kqk@4l}{-FEb&5YjdnCYZ3_t@&vID0mQRZBGXY7P#| zHb@!J7+f3-Cdz7)?DZ|q#%$Hh&}{tJjF1R+?9&{`D*GR0|6=9ml%HyJWB;P{DA99Vh}$ot`bzdM zrkF1N&Hamcru*2x>|d1qiQ!*5!#DRQMwu@A6Wc#Y;miKSGSek}%1oF2iB&_s>`#>a zhwYD3_~L)P{f7qK+zltDN5ALb3Zx&N?e(9QjaWrJ?+KP=rw@ss^F(JLtZ zWdC86{fqs~{f8yIJFRGvKIZ;I>(@^EMXx0Jwf%=o--GR6WqNJ@A>OlA@*bU@g z_6Op(F)90$#Z(v1WxTAzvJ{bwba{8#-`uLdO#D~UsJ#2x5@U_U~c7&eKl&c z(j@Mykxd{i>`#$?rR?O8b*jnTo04(cm$Ke&6g`Tbl>I0Yv--U#9eVGJ+WMk)zPRi@ zu_kB#2KR>5+@YE%qB-nMyJKT4%5__VI=VZ$^@fyXJst5LY_03*NS&b}o$27yYan!| z&gjMmo&Hl`f5&>uC3Vv))*JgfutQ|S_jjmeGAsvW2R7B-j?B3GI(XLvmWwxPU&q)A zXsF=|D9YVNEp(#HIuoQ`EsDR;87@s0fh8@YdAg6sX8K0}Yc&X3(ov}0>* zO&;5_THG5nIqUozo6DW~c)g{3X9*a0Gax#jn`HeS8zpJS*<`QX>mH}AcNM;|ZqNM^ zwWjF4X8-@=di@*O51T(WVB3fqi%#}pORp!*6+x*tXuFvzPl<}A7$627C=z9L8 zeEzqxJI%*ZY&QH~xB1uq;c#TVs20N8TMIYVB414||7dmowZQUAjMWK-mv3=?+SG4T zyJ=rYXaDGk-gc_abRsX|yxH`+gHw9ODi+sZ0DoXY?@;!3rw>nF}ciYL_vN{Hjac>a%#O`Lk7hB)=6maejNkrGCx7 zvo(8ETjZ;BIOSEv?ULVOU*`PM>GW4H+-~VvVE%3KOB zXXq==e3AT>8Rh$iV)?Mf@!L?jYB8}BXO8r7qAq*Y8gVVbpH2>-!#3VUB5(z>EF_WRTc8?^x*!vKU z^Tm6xGprwz;qaNk&t9B?S3j38uW!#)&@ut0W{=b@?B=|&2b6$I)g9b!grIwca#g?Z3bV|g|B4r#a#FvH24Nw_#S3H zNr$~%_?|N4rCj*5o;?WKHa8xqP(TB|22%vZT>{Q9l>Zl|0Y|6@kKOTy>- zsI1$^mlr+SDNno!me^n9j`95qUo({ZsKUolc$2*!IdweA4KHQ+ClW?ZCX6xW7$Ym_ zd!Dh%XvOJ!v-p_wu;DLixJ~{Ib*ETveuDCQlj<6bwVgPfGlcpZ`}0@Q!Zs85Fm2u7 z%t?^V56V9u4p-gU5xaH{M2W=V?escLR!2W@Bo6=Ko)H`sKr4g8pGjLQVDGCHm@(`0 z>3sZOd6v`DdPX%|-#JEN?V8|zOM>hp?M0dMrR7y%gj)HbW^XJ+%Q0h#L7_!Ey z&Sj{HYdO-~ZFe3pbN1=e9m3|#vk%yJ_UU2<32(&;I;|nsSfQt(_gkwYmo&8D?J;BL zLt%CHlSw6dS)in+q?g32hCHr_e$Z*}8okMndsk9^k#^Ozmw1?fEj1}`t(MVFMU&7f~l>A_SsIeZc)(_IYN1DiMRd2U?ANUGl@D{9WER3SU6!BIA|q zSCKz?&nRlpXE9ygK}s3)Xsk8e-s~yuY`Uzc6;sIP>5b4ThK{+IHs%P^|tb3BMNIf)fJP|=i)*beLtCUb+4fN zWfcpwBo?(kH8h$4C$re|>h2{}tkAb6O+}|()LL*$GIy$A)m>@oU*)OG-g8L@ZU@J- zSjXCq8ejLGSjJM9L+fkf)Xk%-^kt58ZH>D6k|pAzBX!;CFdn$-U#G4+Nvy@?Ch7<7 z{=!^mJhRR%6(XWkElnf}yv}ArH#b@Z(`?=9%V*1dGbB_Aot%G3qK;a&}(=u$&KZl@vN|0)~DpXl<-yC z)y~k@WK6;jxBVB=|1g7)e!Tfz`tRm<>9?ETrN3@|mwvkW{mU->bT|DMCNjOa&{|!( ziBV7gz6D(hSY#q190W1%B*#MuD(nUQa?!fm-78JF6U-^rCiJR1g;ua zm*ppFcj#c%47(`OSz0zzw`1xnMpg5vFY)CHmljv($;8?+jJgy{1deTx&@$8o`n4xt^uPCK_{LV!TSTt!po<3*`2tkSvh8D$NuElUpczFW%UVG z;qgcK<5YfSylOq_Qr^XojBfSecR4?p>m9jCs)r3VYR+c$VfZH;uZx`ZRZRf@koy^8 z%vbtpYw2OiG2K!hmM*67C%Zo6`;Yt3C!}{MboZFQsw=Xobm4uKH1++^@1h&<#lu+P zLWh#BO%`v6jNAv3GV)7Q@(bsul0ldJB=><>d5XXEZ}Q^bOfbXkmfwEJ@8sDAzxA=k zb~f23>TZ_b@()wKi8Rrpmfx7K%Kj#*kI66jt;%vIJHJizJj26WFFbV?_sa~0H}-tR z2@|~k@E_MY^^p8!sAa7hCccP4DBaas{%Zf<*7!txl=*A<%iNE<(63e5ElqmmME|#CM*e+k6qIUV+7H*fTe%076_px1$ zGBQ%Q}?TaYdYI(^`FdUITQ4BxP*e*YtqUGg8 zw#!7@eYfkOzR@;}<_cl$uO}+C^H?~V?gxc55WfxPw_1tWiLq#Rr=BWBp4FgOh9*$)9fZ&*rYj>=zr` z<<%)_m(^RiUB3CJ#&+5EjH%h~U$lkWCHhihyL3)byIjA8+vVAp8{1{x6tzonlI=3p z`pLP!G`7pJQ`9c^ZQ*v=>939LvSNzb<&iDiF2%n!w#yk))Gq(p!tHX@KN{QR{3&Xe zJ=Sd5^DvcH8{6fRQ`9bVws5waa(5aJx(kHnz*!DQcHLPqJO6TKiIHYiyVE zrl?)EUQ6T3$!hl{9i~b>Hs?)^?Q;1Pwaa0XY?rB4Udo}ycDa%5k}@(<{wJGee@>;D zT<#~om+caJg!D-Ld}8|83n<V15_3^v5=rU94>y+od!`?Q+#5+eOkr>|o;Nw#!v-X>6AtOwsn`Znn#0wfn8s zW1DOI65h74T^^aDc6oe~?IP)5mJ@MHdD&ccx&N(=?NZsyc8UJFNxRDJ%ipJnUBqsa zjj`<;+vT~&%NLuw9?S38*e;$V z#=>_&*PWPY?sQDPW?8OT}rz&woAumwoBz{XS~gPYq4E!eVy!5 z{GC(3O=XvpcWZ2yd2E-6kwCBadgWKo-m=^M>f0OJ<(MgImwUEwyIlB=#&$VvirVG3 zlWZ4B2cuf3Ii=m-T;oc6kH&UMPEosf&zanMY^vGin|n64%h^-ZF7MpJ?GoL)v0Xks zMeWiv$#$7)6Bkr>I@tdhX=bV^hs8xsJwmx!uJs#b=!T_*w(GsekbJB{Eg) z^7~Db4m(Y6Y?m*&*yZ&ezr1Iv*ku#lZ&{qt*e>6mqIOxnh1=z*uEutGV2au$H_3L9 zba1PNH~09ZGPAK=em+I*QryDrvUb15c6n}!+U2P&+%E028r#Lk_gzGc0{(ip`}^l6 zx1T)K>am;lZ)}%sr>I?GTew{!vm4vRo}zZSY74i^V+S_2OZODD%ZppMT~Y@(w##8t z)Gpx)DDmyd7Zb}7tlY?qU#s9m-?Z_6$(a}FcB$a`32en+MD9v1hH z<^7`eyJ?$fo1HiJo}xs?KZ=Uc#EGU*p76c>J>I7=6VG^}b%VM?ch7{~V|h;2gfM zTHdLQ81%!LZhUriX73{VxXHU_g7PH)mcCEvZRTHBMVN5oC5`p@59{;!k2(2{G6c8t zJ;fjYwUaMu@a@KY#^XtiPN6zQXi-4L&oy9$@-q zM*5rS^=sy<8uHBh!(U~3EuJm@*q-k-D*Twzqs-W%_x0GC<)@GEIWaTdX8K6HuWOP% zSF*e>7<^{>+{Ap}Huz#j4DMvUn+?7JgYSOkGd?$U{$e?`t8V${9)2fnZ@#}@_{{YA zDf7v@YTI$hX8w7O`ToHud}jLmo9X)+;l_*@ZN>ZkjL)vl8%C)0&>#JlSoOKctpwwLFPDGe6jzAEcdor zy4AlH*T4I-Uil_^)aqa6s~+82{nAXoO-&cQ&2Zf8bh?Y3s!h_zI&S0AqnVx7vR<*j zH?9{XzPToRW_nB&x9A_{@^>%S%lTX|Qy<30u3Fd3oK0as2vpL~K?}^&Mt$lon!x4FI?cx zvG{U07F|aA><+j(?7;uhmx5@ zXI%*Ik~l0{JD5c%nZdrqSV*E~Em>rKQ$93IpWb9TIhq|DNjTGIP$xob2{e)PnS|h4 zOrKgv>!nXzC&=o$?6O*A7S|MwPb7l1{5BSBd}9sDhP>rAn%5S)3eJ3d{O_NQ|fNeF?W2R(7WPw;7*FcWoan>4}*>T60&IJL}=%`<(8kQg)&E*rlLe zHwd%4`fpnIZtA~92C3(wEMH>1@JO=9tp6puy3xhHF&F>8;Cz&Fp-a9gF_kDv;}XkKjxBu{A~H2@#RGgd8S?|!(X*`d^x5+H+QtdslOZFM88K4Ai3q) zgt3DNs|Pb4!gwfQZUMU)V++Y$W}ImFRl{GE_64V9!uu zthuswO;9?N22^^ksbxf$_!mwmx`g9~GmP{XzWw;SxIg*YbU-TUyWp^heF3EvZLt{9W@hpo@z>H@eyOV8%|YjrV4U*4c?OM&mHbyDu@490m`%_uZl6br1eMCGqgGLRfWp#6g*U{7SUh`4={>hjmf z$HkA!bcaHRAAY#qIV;>9o<2^*LZEcnv!)Z5D^nfM%5deo^z2V3 zhX)dCJE;JV6?PQvbRwQj)Rp3y^@ZP79zlfPcweG-a2P2_GPX$m(~Ym)3`N*LNnMq zkU;)MGKM-vM^=p_*Nk*@*&Rz3En3uN_YAI_iNWt+e1xRY*P+2|b|_IJ^eAQe5}Drg zAbuiFi4diUGK~)3Y+N!b@_lv>;)g=Hz*aG^N8-c$jnc8M^^p9rVg>dyVFBHJ4V?07_DP zG@FEv!CqJvB6W?Z0!ADb%p5|F88S_)jMyF0*(~1QpXfy<9!RbsF4U9hgxyO$3Rqcn zATXz*tC=2Dw&`_Tzhv0zQod@&<{z0Q9D3M=E_r5r@PXh{cc=rzonZt7M4xV1`2{l=h`_aJMSHh+`H- zH)Er{uys0x#`lLhtamV@Wg#V0GnPif1as6^ZryftD1o^JXfxWkF0?K=nzo^8HZhD! zU~d25P-1S3l4>BP;%W~kk;xBIS*-S9`1`Iw~pE3C|24C1k-r3A2{@1$j@#m)SA(mI-^m6lX z3G-E%&mMC23&r1+%$GZZ=mkchPZTAd=6L!x&L25uka_%q(O;ctc+L20^GD`61Y^IR zwSwax8$X@QaEe2ef7^$-A3wrqGENcqzBi0N|F^ii7Zp{ybNXCc|3F2APC+`+pGYT0 zdeJKwz}&br`2A@#_09+_?nc`_cxEEmkB$^o@NlWtX0ht{3@1>rty6;l$Ux`El0H*s zZ?Z4ZWv?7U7i%c9tV{PI0GO=rOZ2M`YNB*Bomh_f_4;lv_qpt3&*^BYq{FME$tTr7 z#qGX9-8VxErP?+S^(hTh)T+C}jh3C{mXn$xP0>x8YDnuu8WLDXJ3E>hf+)0XgZ*kq zp?pF4_~;PY@AS&iVRUtAQ30b0hYlP!kuaJ{4T%7>s;bdK?-H#-e>#zXg!CY~p$Xl@ zZhNJ(zLR>V&1n|v0Av679HvYCE9`GKRN>${1X#9Fa_N~O2o^s(c^>A~$ z)weHSO7Tk>9;0i<*UMnDDr;Ngv(~l9$MtQA+x7gJPtgg^HV#WR`V1crNkol@87YLULx&&~;%#)_!2v|m)2$}_t4M>;;BPVP-$ zo`b3xVvT3)!C_P#y%;d`52jIZOSRJ#I$aGahXz++M4;w9GTAt)a~AHDB}CLwNz`8u zjjpIuo361z?_l3xa(HeC2ir)81#|ToH`|VAH%HUff2a)Y{?6VZO!7c6Om^Vk{k!b$ z?(XU0OYy-S3aKtQG{rEuH$F6kp+*ApJ8F14qU%)(tTWNQvfEzJ-QPKVx*8>`4*gi{ zLQL+Qt{L>$S#_#8?ijHTt{g!>8?yB>t*&ARG2GF@yF*LVgaidd(NNP-tc|LT(WoTS zFhL(Nb#aAX_bJ4!68xo*55Nf%sb)c&2~MY#5bXsjzpzsmEHaM_UbF^fmjLPhUa$*oL6+InH{)Aa6P+-}hG-rFyFTe{e`lq@s z)P;Zi3ec#`9CF63%}@_f(XUl#_!6m)4%c(|O!Zo$Ds2kYYM~PxwT9}7({vpZvF^{ZTPD+$>#?9gq^kd64R$KUlRFn4R zwx{F=v3E25-0b;z7klO}Y@CkG!fQrv)t>DiX{<-hp3E2fz<-B5qv)Nh1ygR8X!%U7 zF`#RW=dW2Zlz=kx@@NMenh7*1u^Vbq?FYRZ9>3cCf`WVrre$6p`2Gb)~JN=iKK8xw)UpW2Smr(cz zGTnaM>A%SI7fz$}D>7Zew?9t)?_zrCS5E&0rr*uwIPz~+Pf(8wO`npJti$88z@NfL*zFUKgn-qen=T~Ge6`jlbauobIA{d zCU)4sWT<&-H9u6E=pp&R`Z}eHebIkMez=p=WQ z4!74XTeqATjsZQb_8DO^lUDduGwvQ?*lCfbw6zJ~$II4zxaa zjGAOvZ+-9>S&vlbchtThT%v{mhp|#;V_ulrH){2cQ2~HInOa9HkGgRLJ0?m8z>9qx zil%yZnw9lYJ8N)8h-PYa!z#fLMV1jUBLY6{sqUX+x-p-O-L=@;*q2z_#mo>h6VXuw z@!pfbl(FhEg3aL{CyrG3(q=m}Ae!y~s5MtoNcC0|LkYE-h*d$=-s>4NaUY z1r>QsSF`hKGLZM(P$yj32MSYgUG_5c#nYIg0wz;@Qj2$t z#mmO8_uCgZGW5;%IO}@Por+=VKZPVVw9z$Dg{pM}n(!T9mx7+@0JM6gA&b#co+uL`4hrP$1dl5r3`UJzD zZ1&2LY)8i8N#rh_Oqe=_u>DlRJo>51?)i5UM)oJHt|YVu2y^rJJG%=*7x!dgf#pU=C|pynsfW-}J9e&}7uF2}*Ob_IiEr4$jQx}IW;sc9hg+l;#l}iH z=7I)WF9z##1!$RZj+Z(rVYR1r1XSLWlL@JnkCj--9l;tg7E#x#rX6gUbP)u8`h4rK6;N#nb8dI@R5vHT~MoQ=Zo1WJFu7x(Mhp z=@s;l4nv2?3*$oPWp}l&HKC3{qvO%BFKrv2*?}a*7qk*+oz==vq7TZb-RFpC3U}SI zEFBTJH6UQ4ga77{{Jlcu-oWp#yEs)$(e6 z9X2r5(#H%e(WA2hD$8_)duD~h*aNRTBTI#FJfU`eN%Ei6`#an~eKfM{Ys+O#^=`%{Zyu>t|GeJZyEU%(dB%U8GeHOeU#CpU%}u1*Ml1 zztsL&3fGjk3x5}X#|obz?-YYi_?zK&pQCWY1+r_2QBR82c}7O;?itLkz;R2R z@GTTNPM^+Gy*!Z7aYbRvWYqq7Ueq^7 zP@#jMhYCNNT%jwBPErB|0+j}~)+f?k_6#i7Vi!!JudYL=na9rTU{8&%V3ewA&*qqV z&I$%q+fuc)g${D5YOEFy)FPu9#Z4NJ98?HLj@at30_xE0+c@}A0>l1s;0QR!cu@+2C_a?DbLl0w-N^~^JOnJ#nlt3H| zl2i{~bmM^rG_g`gOL#+|bNh+b!OUKCmq%Z1g+`SR)vj;}QBg(%UW@to1q7aI#Y3g5 zWYYTl&S#=1XF3Z|UB*=HAa4vFYvr{PGxc6Q-akeg+4OhSQ&2y&NDRxh0c!e=iF+fD zOPSsbc^p#(DD$dr-0&<;jm8kSqj%g#fT zEul7qVvk`~AC$t<(R#{Yt-c##j93L$nTE zV9amjT$fhIIH(sjwmv#`v?HX+!1iXtjQjI~xZ! z+J@vyc`q{E{{=4RZ*kJAOqccDfFwK7_;PUD5>dWKT69(G`J6-2vjrHNw zpBw8T>wzWai+-NdYlAi0JRaTbar_oykMJvGxBqr~B(@NHMF0BVWe+KZpXT%zw_t2X zswc%g>G%&yuM&r2@3e`-o1_TjHc-z(6Mr{x`&izY(n0ozl{d2exs~lJ>w%ICF;0JR zyJ3m>)_$4l{j0vxTK(T@`xAZD+5V&qcl*Db^lFRYyTxa7ec#Z0Qrva?aY5G4Hs7wY|CWBROC%iVf+o!n#5r_)F+`|>)tn(@ZXOt`u&mDG1r z$o4EOj;Q3s{JUDJ(FX^+5D&P?Csu(FQ=Xeos+E8>>R#=m6YFI0hiB(SIiS{0ZA_y{ zpH4M(f;h?!z%i{dNnGQx-n5NcxQK`LpQ*3rIMl{OBn43ysLBgaQSV^uMtF!qh62NS zdm`(YhsOcI)XI5rBKT=w1`I zkcpeZCjX3(R(OjMHFp0GY*-veDSWnsz-osU8ucrbi;o_e>!+%aVqLo;2%=Glv(4H8JjTw8c=b(DXEjcOyl!oG6rxMv>?4nBTHtLgw=6+Tb_2b9g&bpAx``CWg z_4l!k6=#{Z8p{dvYjf|oitfw4Gi`UTHl?nmJWy})$e^?c9FUQT-Cd*uIJza;+=gI;F(jVwQB$d7V+ zfBd85zx;Nm{3`qZu#5if->2|p{xQ$;Yx`H2F7vlm*eU%Om{MGTlzh3bXds;_Mu06N^FSlpauxIh!@$D9!V)IsF&+sJM)BZ2Fr)~7JbKe=? zp5d>J|NZqUpAxS01H~l1 zZvnPH;wI0Gy3kIYRL~P5_IvbXgx-ug6IbK&TL!hOrm)c-`(D+~$vUr?4Ouy=E^U&n zEEo@y1T}_X8QnD*W6I&zlG=tCs6f6jh#uQ914Wl&*rm2!#&HS)b7!;@G^1`!jnf7b zTy9lUq2?3!m%{JSv?X+G(+O>}g%CZxkjCYC*utm;s6XhV(@PES^x;x{_*A(%lYO)i zMbp(j%Q3ogIq8_TVfzer*>Z*z<{4Z*Z=ECdmi3;6di$rI5;y_3%&w+sx#QH_jvDqk z62lz*pD>oFnCDQFUbRUx+7qm20M?(#tBWy@cgMdXL@o%a(;4v}cLEUK^~9oc1`u&x zZwfHkS0_%Tw>luYaT9JiSq?P2P5^;bmxo3ZKu%*KUEs+$psmZ09NDgw6G_5j z^+9S(s;Sp1)WjyAELL@rnr~4%%RAMUY1{m4qjF}12i@FwrtZGAed zv7+-o1BsC_t6~0Hy*NNOmD>F(b=479JrC2b&qFLj)>=MKP3=?GO{`Pfps5DYb%?}G z;lo2TUY?UBtf#5pG9EU+yVd`4e*S)!_w$<3m%FswfUq*{~o>@Ae9N*7SLGG8728QG)C^ol_*GF{$VvoCb|w;m?{e`o(igC1l0YfMjl zg#62VW|8SntfBex!Y2&*oUo5Dy~1=UKkKEt%Lm`B6#v*KNxra!A93c#Hs&iDd@+M> z8|JGTd?kZ#N9GG(;SAUMxij3mx25=}48DlLXN!IYU%}w>7b(6~gU@=@8SXwTuW+SP zznH-{llh`oIr+*4-yG(%u6FXZKjsW~5%Wb1zNo=>JoDuYzP!OF_G}f?=>K40vDTlI zP9(kFql!`8qf0%b>S}KEo$%-!`i6YuYrW!FD{N3Ao7AVc)|0PKm@DyEyp5|~ruxnD z^+pBdjZe1M%TuqR@iqs?qNVolCX3HcEJQE=sS&bXge4EEqm4U#@J^L!S1B)&&rSML zrv-U+osWo(1z3}-_~XMk>8@|H(MQ~sb+i#_#ZVcF&iAcJjt;4Vt{5bbgrKk5i88oy zG&x##5>~%DRg-R6N7_Bfq*}YgzymaNz-uSSAeR(U!;AF}PI1JPetO4AO(~V=aXb(v z9eMY-DG^7?Z3(<>Mroj8#OaJ{jT8eO(8BrFzER9QWU}jU{3WE<*d5_;o>k_mkDt1Z zU!R_>kE41|Y&brGm-Gg4jgjiy>-%nCa%^}RoLT#d2Oc?Xl}?-*wNsYr0hA;8%@o8E zNrnB+W~Md;DJ{>fwVa<8)aB0l7`K`q z7vq*7-0ifUlve$Zm5ut)Eo<*#YM&@ItlAznb3JPDZNwKAM#e(H*}fR$nlts8#(Y(# zN3L`7nf>9KK;yhf>;|X5BD*_l9-Kc?zod4s$Y?$8Y!{u}ucJ%W7jLBaNq@0bjm&q0 zZ1y-&ITD_{Yn1w|Grff_DDUy)oAAkdJjEt_Kl&%-zue~Jd{vsW;5;r`}2SGQU$V zsZ$-q#cD!dve)ri9rvMl46d(k(2vZG-Tgpa^FwtXtoB45#Gskydm_~JOtkF{{U`la zYrPJm_ffgFzD0JDdiD3;>>Gf94{?>a!W_Ibbr+4eZs-J#!vU3 zd}jRbZsAHiP37f%h_CUyu}MdNS-staF27uCFjHMG)u*2kq#Lk8p%XOAamWMuOK0sI zH>7d8`ZMx1PVpxPEb|k5a#- zbSmCMd}T(f#Qscy>@KpuDx(YAdY>i#=UBefN9}CC$-YlvqVxBn@bCCu5OE8t@*lwe zUi>d}YhrW7Bky&o-}Qf&e%x7}#Lrc~Yb~GF%WCvH@?2xPHS#-^X_8)Mxq9wfSHW#(J^^kmsVT8OEUn$;H5VS}~h`Zvn?ZlbYwv+K()c8xsInq8wU^0glCiN?$+ zIsE&{%3mZmHRs!JF*z!$rc)mA&d8_r4NKEZt+2=1GqE)hAim||0VjLDm z#{5gfUt}yXR$iv>$qDicdo#Jh*GymGYgwM3-UrMx#-68qA(&#fV2<5_d3FmH*ezIO zw_u6gf@O9KR@g0AWw)U92hO*Q?FQQH77VjnFv4!ZD7yt?>=sP1TQJ9N!92SK3+xsw zvRkmkZox9U1uN_ptg>6sdV%B5*lwWBZox3S1taVhjIvuW#%{qBy9IOX7R<9-u)uD? zBD)1k>=rDuTd=}z!7952tv_=78QTrC*)14mw_t?bf>Cx0#@H>GVz*$9-GX^`3l`Wd zSY)?giQR%_b_-V6Em&o@p!FihpRwIQo85w8b_+(>Ef{6DpgM*tb%;W#Yt4Sn4}L`T zt~o!O+nMTnVCkF*|^}pH~j( zNeX^DR3E-m*EJ{7A$1*@dj6poi&lC`3ku*ZkTqB>z$4V^y$T$?#Fj1Am3G+aMGmz_ zg3YbNqa%7X3|nJ+64^Bg><`l~Vd!08G>3xMj)MaYszdlr+ip!CxC0c2sP$!t>yd0V1EW^?uqG9f=nre@!--zJ(L9(z6qDG( zHnK{gdbEVM_jZRiRn`jc-CDWYRN-$bxe=FmMP0s&9t9V=$V+vMpI-XCl1}wHh(0*2 zom`l3Gcn#W0ZqRkqF6A)m&qnlv}M@A8sc$0atbdo>%4^A+Bb@|L1e?)jhk3mtgZCv zZKyf`8!NB9L%1|~H5OZuiBxcQC*CRNZ)&rF3L9mW)WS~Z({WXy1OVsYzPQ70a9?_0 z9n_h#x}Xg4lq-f00UE~1yO;BAbllbdwYH{N5|1A2d6XJ>78pVB`euOO0-JHy3x8&J!5UQ;%I- zRCru><8%A(pGWlH3kmz>+6j`Lvp^h(MfhpVaFINYAntvt+V zenyptIfw3+huO3DZFxBO@7wG5GpCC`dm7KA_in^S*Yl+3^WE0WQu=Eqwh--=XpsYGL}c(wj=3s)y-wO1JZXrY{z{rEltpaQoVEW0-F3tKH|l zpmaZc%5UcxE!-65pHuqH8orrQIDDxi#eX~3YWn&xeNySSDZh8K&@F%Flo?}~dta~Lu<-m(?H??Bf2b!cTsL6FzqRUe zZ?NxZ?Yi#}Zry!n!?oJ?5{$-jf9;;N^hw+2DXpK@{#g4Q*Z#(}ug`S*Y3t3R+Q+Bc z{>8O#apf$k{rcfPYQLrqkaojuzp@vE+ZPLG*Q-0s$u?>T)zS(9bSi;G4-o)(Db~^c!4kpD-u0`y_!xkkR zO+bT51B0F~)5a;9CMx12lx9!Lj)TB?k+wC>?obDuBuo75UpoIcaH6msCPLS(dgH+Q z<8k+jc?qWPA10;r7z8w8qY?=UFRb1aOxoLoQzsFvEsNqnM`##;mK4*O8Y7sCBX2o3 zTK7e|Uf~8#94EmOAvRN|1whl+KabSHl=R@yD~dcZXq)0-qSN!u!V4&F$-&nl1O ze1a)U1;EljaJ&iK*NHnt>vWkYrN0)u9x=WwKA(dy2!I}dYz5zsKOY87ld6l#?^-Io zt)=UUi!dMQg2ITyf!GKXta95T&(q#U#Zq?fVOmSKUWN;=5ukTeLfLhrtVEVN6 z=jI&Me}6&8J%+Pq?N#mjU8CD`G9k|J@lVs-;*tNW5jNlX7D?wljdfIhJ{ggpNz-b2 zFY_}}AJh53r2f0Oj-&UDK4x-f_cDIQAN92S$Z2@(+a2$3dabP2&p3kS-k7kyy=nKj zJs$6?J$UljlFrkv{5S93ztnStuV0@|wD$P3e=5emJ(eg8jdH0#YeKMIByI1D*N0%O z6Rm}!Wl9Xv@hdO1Lf4D`{pC-*+-MLRiU>$6uH^3D{59D%E3<1>T^C;dkh=6A#6Fq& zGl`$sw^GMy`PTMeR_WFrbR3tg{M-74xcx@9e!*~Y>lX~?X}Vjv-qUQ@hTCj$bV9K~ zmz(pFo!|l;TAx$L^02OSdPAczhAY46=7!+X8@-Smk8Z5%Di?5$BC?4)ds^qiDk0@A zuDoS$WVMXYNwVE&t{Orp_n?v&8wFf{%V&e6xAl0JV^tiG1DKc_q!Z>@B&*zoa;a7W z4vGzQ{d}c@m3dGQ8(2I;D`4z~&oq{o4Ps##Um^~Z_GrE=CCUx}Q2k-|=LrTBu3N4A zXu{9DM%JOY`7rCaTYkCiknvgmTX~#$d$Ri1`+t(*%%AwDmH2pMJA`*avU<{vx1HPU z9s4?dVPEE*d@}pb{GHf&}Zt}cOw&&;5QDlZrY`N@^7U$5^oSdVw=mKWL;1(Ucjy8M?h`-?(y<=WZ zd67d^>wGJVtSF$alN)0?j#igFSd{pA$F))pYxha`-SThi`}#jEbZggUPL=$&^@07L z5xTW!Sua_6u=N4+%5VNp8Nc?=9ruUBH>Y%4&s9^p`JXy1ng13ax1C<6_0tQbRw^|= zBjIqI_t|G;{dCq3^lJHy^4Qi7^jkUK$MrMH->2)oo%9u)*~RN&y1i?3H8Gym+I6y! zSXTpkD^_5U51$J*gkxx7qaj98AA)OX8hf&s27%w+voBT!wNkEk6B+ALR3xTf1j11~>J}qe60Kj}W zcRZa}e#hDWoXUjThpDdcw-1bXsU0cdv-ySv{a)C|>pi2|r%&oS=l=a9fEf+v+>esA zPq~F;xXGV}aq~Zu@5v{^?x{`tPf`$S%Oo9hzZ81z$uO>F5h8HlZ(jN4&k%mEGg*Ed ztny|Zf98HA{+j;K8&m!QK}qy#=QO!s+Pb4Bk@i*VeRO(Bw?`*nV8;wbGfiw(Xd!q! zM%}aY%;@5YD2T{7+vm<UR!rO!F^e^9#ZBkm}N!*|$EM6S)R)*Si^mF}jm`<-17ITmhD z0d6t7z`okGv*)0JoSr*^X7I$qgc-s?2J(?-9kJ(>C@=;v~$V4$@cykZcm?I{e`4Y@9Rab*Jq_|JI(IqI9dz(+>SgrN^bm zBQFwvymyHFtUlNOO5Ef4qv)2eF8wun-=DcR#%j1NgBxDGqQes>Ok?A!f<|9ox3^C8 zNgH5Y0LvwFQM1dOV->bg38$^KX<@p_iGhn@YoW8ge5{1&b_~rhU)ju8U>^k@V>c2X z@Jd`(B@xsZ8{p7qNCq~biKy)p(C}aYdu#ft)w7Q&-OeX8oY`Rv_s@!3@|4yK z^~KYt;X0JA&an^UbH|(C`I`7+{gN-}IZ{vj?}(S_ggBSIPvS^&F?MJUUIL}QR+P7Ohd&##(`7Uw%vCk;~ zF4{{zyASnh^Q;_4#?F zTRk!VmOdise5*PvDBi-ER=VNsY56y$4%5rTzf`9@S4Hqy{w?BDIZ^pw`FFeG`qiH~ zeKsQev;1@UrZW=G*$BShsry6f-(;8I`|S1%Z$|mvAHny{h;Vw{;@@{7_&W5SVAsDXR)!1_|to~JZF{9t+zko_9y^eJz4-O8LGW!FS}hC7d&sE^EU69jkN;pFJ;*;4}Yn5qz&w_xsep z*|lN+ULV2t=?Fga?+X!pKUeoz^>1>0*uURI@SXXuk}fWv`L|l>mLB#js{2FgU+)XT z{?#J*J{ZAg{@oYB_X~BOv;5m2{&^ea`P&G-3+E+%F5i^$y-?{EFMGa4-5)XkHi5-vgeuV{-p6; z6pr7y5qwvgyBdfll`pIHuixnAkv?xTcZbjNecI>_-`CXrVCCz*M8awQ%}4MZ^Ib_7 zm(Tq3lDUc%mDUBVgIg+;Co{PpZWLp2)-|=`*G^u>y6;6M(~+`yCV4BtL_=gzstoxt4AM+;QNZYpRauV4&OH-_Yh`+S%>e&2)+-i`_;-f@9=#pg75q4-miSA zoTR74?`IKwXZ)MQdqnv>hi|3Q-SRT5?ltA>b@&<)eD72DapmiG_&yfF_n5j*D&M5T z_oE2DQ~zD!cdPPEJA9o=cjI@px=$(Jtny{GJu61=y)%N(>cjgY_~zC9cJ*)Sig5k= zVFaJ|9}+*8&-`1VbT@tj>OQUh^=}WCms$khJ?egs@=ZE?pNQc5Pj#PBzG>yN`u>Xu zzTw9ue)lQgtnyht)RpeW@9qdbOP7yE@co;*&#He@FAk^6Pb2uA_k9WHL&`U!eA%mn zzenkAIDhm`;hQr)#aq37aRlG%)cq0Vn^V5ttHr;!M)3VZ1mCRk{YwO&#c$rinJ|8) z&p)nwe*AUZAEnQmp1k1ju&Zh*WK(*uDjW=UlL*&keYYmZ!avmdzbW*>0fZT#=LTf61DTf5}C+xXmdxAC{@ZsTj$-Nw(ZyN!>N zy4$$e#oM^ob+>V?>u%##*WJdYuDkUwuDgv#U3Y)H=@9(!q~mVmMaMa1<3ZQm#(S>2 zjptl<8?U+UHXd``ZM@~W+jz=#xABteZsQ@>-P(KC-NrMnyS4MKyNyR&cN=fG?lzuq z-EF+!y4!fbbvJ$AbvJ$9bvJ$8bvJ$7bvJ$6bvJ$5bvJ$4bvJ$3bvJ$2bvJ$1bvJ$0 zbvJ#~b&qP#O}}&TrZ2kgrcb!;w*JL+w{E-EEzU>u&32T=#GNti4`0_UiDx zGR9}?I_%q?7M{7+ie5DRI(dFd*MS&r{O97|!mUC#_kVYA=AQJqujM9U zi}Gb09gMRHE~_@T&|O+|#&2;Do8h+bc?be-q{C!c`>$J`^5x-b9b24n->Yn$1M}rr zXjtD>YQTq5Gi_0n?E#C}GIZuKuS^_k;=pk}da!_7bBlurcQ6UJ)82epyg`1^8WSV~ zw)4|IEm=zfXNx>yK?hUN#;>6~uCn#`A~1>{-}{Th8;}Ebe1nJd8O=}Nh;s|=AfzHU zWD{9SC=N_+1*yM%y?P*GebSdA+`ks#Zu=!#9?IJ}Pqz2B65)Phg!{J3+ROQA1m4zD zx#9WIjqTf!Rlja8-`0`3a$G&$^x2saX-90h^s5NDt~@ojr`+`~bB9QHa}LA8?+!^B zk3$N5E~L_oo4G>Po6K#Kr?*|#uXG6Am=^TgUtewnd+xtKFCFStesi{GZhbghy+=9n zuWY~WC7WU;VbTGjsL(HohyX94sf(kbr5@x>9t<3)*HHE3FyEEcRpeWyRK=E^1$_U zEEAu2M4c_4^slZx)Z3dxXai{xNu8`+12D*aKDtDI2Z5Y6Lsxmw!je| ziiRQT=t~u74Qc2zbTPdqCbS6Oui$M9jfqCjaIvXQ1|elhqaOr!!Xs>{=nU>(nmkI{ zt(i@dpVmLkY5m`Rwe)}9W}#c(GF6cF;nmj(eOl?p-#;kyrqXj4h2>8bg}z+rsf&ev zuokr0A)()Mt;nw_-CDKWu+U$p;a_m*^Gg4a%J1DG@{K<`BK#j$`IAbw_{}NZ_G|Y3 zQ8@m!lJL(d|H6yH@$0=_=-*PhcU72wLFrp9{#Og#;y=Gb_-#LFhte&4vt^;5rTiT) z3Co`w75X_!pH;fWf3hO{xgD}BzP*Q&yQt0i?Fkt>Ah)8oRQR{rV1aQJ2>gnqh(ZzxRf zy+Pw;m}_p{8L)L=F4Gv|BXUlYW$TjeOBr3Q2yR(nBMzJ;s3S9 zzg7#=rL0*O6d=p|4O&=(fcalxBVj>yTbD4m42c6Kd1E5wEgRSweZ{ilH6oCev`Kd-Nsk7 zSB2@;U&lQyzV7%UbDZ=G=eq*#7k^ymef1qVzSzU_nQT9IR>NES_Oe9dqJ0&Qy_FM{ zA8Rx}vaa9<{+H#4hIi_JNq*RQ3%SpQ>sRhIQvYoK*`!0CQo5bDF!_Il-`a;+<9GAZ z`Hm_N#~dp4({u2X$Nz!KgLB@(d`vj3ex^>4@OJcRdOGp>pZ00_5f`qlT3@&8)9?!k z^WE?#s$HR`b_CN;Jaso*)N@-84+@GI8yl?e9BU4(IKR`zTYRz(WoN3`vIR1gSd4LbP4Yg!Xuw)Ie!2X^gwnryd>Msc}+AZFC16&RW2rOOKhw z!J;$>Y@JBefcbP3XUdvrlBgpXSWs~-A`iuI#H{&g{_uIA>AZI(Zhb_kB{G{yI8MyM z;H{3kDslTH?s$-+FK`|V4yo-d4a2NkM8e>r%32xMId;-%UFpv8(K2pftk;V}E%%1E zt4O;8>HJjKuURPVKo2Gmow1eXWNY+Ty7kE*kq4J#IhWC5n~>W1Tid|Ofyq?M7{6jL zjL|Y5xgm#p@L2f@Io5;rD%SXR&24hP7j0my77AksJ9bUtGCrLBIYtJ2BwZTvXoN`- z9VGKRM2pFshsU)h4hzLzNbDFK<2&=%PmHG1dc9t?0>eE)W%H+ygPu{En*7#?b6ZcN zRxUNMJF>R^G8~24jZ!hrPU}~!R8?5-;)6)n^4o4zW2Ad;jJBMJ>BmTwB=QgjvP=uFHP1J&d(x8VrvWOlp zmmegnC9*k9ZA74tY&8$$i{}T^%cvQSiUx`-H4}R1Ir4*VRYSXsz;SYrIkYm^I=sm* zyOh6`F*?_ss$!*DSwXXs<$SG1!3nm#Ao~qHy&*zmgC*EDIU;Hed4ZyQx!cggTjDL&quFJs0xR|q+E6ip)6m_R9mzA;`yw~3O|$k0D1_v_F14Z*F(JkV94M@9ig zf&t%3G--uJ8nQ%8ubgz4zl5zqqL_(J29#1R|k||*jooP zNt2&SntyZ_N(nkz4!x7ww3#1Aa(3f%0yHw*+jA~Z^}*aNS$Mh7lZ5v9k+zPvO@1IZ zQKEO3AAXTpv63d&hw`QJSiLCq6}1;N6YUK3!JILf5!`8j!dI-pKn^HQH{FJbd4!y5 zK9#ywV~01Y9cZ7(gv>PZ9HiTsrF(4L_T_5Of4n#Wp%(D7`%YJii?lsc;noNSyd+j`2^!nTI0szR==e*hvf1BxnhbnB`0l0RvmH4pfXRbmaeEX_{ix>ihx<2maoUYI5F_U$D=~fr33Qf4{qw9Af!h%I3xK`WQ#A-gbxS{>t`{HKJH#N*w z^nwHRechH*CLp}K@-^y%cGrceeTK(xgbj8R?R&H|MPerorsq*&-cKitzi_2;gHD+z zb-OGFZXwNl6)>WMLk7tZxQJznE&urjtbrmH4vu16Q5-}8uUE&0Nr|=f7Um%hRoTlP z9uV`ZEU55TDW=QS>W;D6S={7PDcD)cdwqRau|Q`t)7fF9VcM}?Yz!>0;R#m_fk0)Z zJ52#0UQ4RbJX1V8n}WWqrtP}1}mFNB&6gbi;i2aXMcvKq8C zU;~`AAzbI$tU`sSb(kCdL8&GU`A)}k^ePIY?xnC$)7L|W! z)(z4}GEn)4O5<(Ei38PY+0SyjU22<*#(RMfUPy*PirMgss}J zkbOt$kj}9U`u%XJ!UJ(O3*jGFQh6}p@}bqCyr|a9V1NvS`cB5A5SIi4<9e)rEjOyP z*hUZMW^1KnCZ%+g4FSA+tsd@Doz_6Us^ncD@93_1*QR6f{fA}vtc_;dMawQe-L z=aSLV(zy4beCCDi!IWslZ#RX)0)r=o2NOvpTr{$q5Q$e*Iyv6T(DF-)Z+Cie>{)(k z7&8nqpVh8ejEe6d@u8%Vy0Eu#CI4ZgD`KJDZbIP1PZ^TNFJG>WMKdFf%03d)9g-5d_(L<`G$8o zOv0ygeLtPIeVi_vGAR5tXfUiz?M0eGm7w@zf;R1op_+-AI7$tKiX+ZLiNzfr)z2Hq zb}jazmf03IZ?uqBPPKVdE%t_Dy-E#~q!zR$s0&rLvx5ber1D@IW+O_D$TC zOgU(TD@7P{(A87RDB2Y4vvey_GqW59QD}9`m+#m`Z>^yD(}MyeQ&4ak!=D}`8(FD2 zM(QQZvwUeP!E3_=Ueb8Dn zs=4lqu&Su19Y(qjQxXbGj`fAIC2<&O0w8z|6_s@4Pag?^f<_ZoJV3~dcY6~$#e0K3 z&+1CASmA4_=y7%E;*TU?<@aZtP%Z*v8?0#7t8AqY;(kGtZ<(N`U0Q+5L+R{zh^0GA zo$&)!R_pj7qc>xqFri)qI$IQ9cd+3PEc|grYd}B^0qK=cv!K4Bpu^A?G)tO?GHt;< z3zaJx()(6^9)KXMu)dNIsT4e8kK>Oq4=+NF+PO7gUY7}Hu@k-IUhq}B9+1zo+mgx2y>{=`#ZA3koa?ge(SULKKY*0XZHQ_J*Ce%eP%zPeEQ6OP`~w={g8g^)1uJvVR5hN zbHTnpBJK{BhQsy7jBq!OzGe$K#~(VK_tgKW zb1M zV+g3HW3%r~SS@23&;-Yn_Xr}VjRhUxuEA2s@;Lf_N& zaSK)uk%?NP$I}e3>p^9g<-;@zp`ky`1!HW9vlj|Qwxz3ryS2J&MH!>qGUA9`utT(9 z6fyTxaR@_S9=KqUEE&9S((t}kpKsRZnm%dgEr0Fl;@|ov$*(*0d9L1r_D?G3(HMFA zogB{Zq~-bkOqkEYm-K1=xO!fCxyU`v5j4Bwuta*E!sj`H_(`TFq z**^={_nPw^#m|Q=fS5D?X6632XZqfcyWD)$^FwkKiT9q?Cp*6;xAXwczYaHjqY@y- z-Q>EkJKgXrVAZwl%jPry|_#o=rEtk4NB}5$E@8jKE(K z;eJ_!`|1e!FOI-p6XD($;r{7&w6BlXN8l?F?l(lZ-yGq7B_+uq-IN8sNV;r^ircRR1ZEkCx;-gUn#Le4+EtbI5?)faX@;4_kcrf*#JwJ=@O z*NmxUX8k2=GcJXb^)|R?RA73fN6W%p5m*x%;RH>DkQ$6@j?V?3eyflgqI585NzS5cOw<41lSg?J$-Fhn9uiEj8!@0k;{(Ab|VLil6 zXZyBva`m!jmn7Xh1L`yTxcK8Z@3T)|FLNc@eQb9~yryEpVf#_%6*sSZuGl^OHv60R z14)N{ZGVGJoeL*s#;hdK+!%@^D1Ldol(rFJG{O)njj{m|TY1JXTgk?Mzhucq3$yXd zR9Tv56?7KQ_XpcYwqb=2raoxOgJ%#%Fu>#G$yz(8oEFDN@|f1p#Zjs+WcP9TJ1L_4 z&1t&tX}%@J$CbaCcS`xo{^#!Nft9~W#r5BrtUktt)5_n>51*OxcLSEzQ-N6NUDHj^ zRo*o{Jw3d631tvezYO~Gv@J)SD#Dax1!olU8Ay6GqHHYTRXJlg(UD3R_91a2w*t%4 zu-HyFrH-Qb`kN<9M6=@QPgCiJy?`%i^#!wZ*yA_`5m@I}Dn}JzDce>fuo>p%W3-=^ z8fL$2^E@)bM|I5B7gFWeLKT4q^ftkz<$qxxmw!*of5s^g(?8mMxpUxq{25pNvwyDT z_{X~shn4@F;`;w$-v4+C8N#UIqJIVHSIb01Z%jlrgA{MqZM<&+D z0$0*NpkMS?O65+i&uhKS<#MUk0Ew2CV5Li?+3@;N_d99knD+VS2|sLVu%{>v^Ty`5BWR5c*q`zTnX3l>RoQ&pjpbjlchc!hdE; z{Ga)4n7*L&JCuLcq4$1R_}^vWbLg{5e~;2r{~eY;`4QoNztVe^KB)z1LFpe;ddHF@ zSYNa9=6ziFKcn=TL!VLl=afF{(7jIz{})aE(y;tVrGHuJx&6cR)P2Hl=OfJ=7^Y8s zTIip;SI0*Oh3U1=2t9kd&}Wox`e^Nbp?^jFpL6(o9}xQ2l|FT_$hZ7mQ2OI~e$fqo#C= z|J0X+ez4MW&kCo1??XaA%=jJpjM6)lK6^|!{vCfK{O9L1{LdD;g?~Zm$0+~Yv0?uw z|5o^qSNgotjo*7%=%*?@b-d&M-wEB$|E($A_-B;fsr>yXg!$+GUii;cdhXOPef}## zkLx%3a9n1oJZP7#tFBK+jX>kaOiK}MIJB8OuOZZBR~-d>Z@1fDo(Jr57NVE%f|Xl zS2q?cVUlBgme-ZZ3=e|AqP)CL`Sf@fV!burwodyq{6OKI&UcYTltk75<|Z(9t^{_Y z*SY(meMi*$4HqlWwfOpWUJM2?SnP_3(*z5|q$MWh(m;>KNx~(oHZgrQT+feUDO-sS z<({CUwh`}EVC5igjlQp3(g26oqH#*Xqd{x~sgKguC{9yom{4uklIn^R&asY)LJNO+ z6NYN0l87OZV-=F8bW7K?o_@}IBy2MmrrjYi`@y)w?VK^o;N zY1u`_>b)*@^8Otjls5kk!KSOjk}~19xEu7RBO38Yl~hDwdE1ic05(o(th2 z{O!UKCuE?&{Gf1n8)Ud>k>U~JXstQX?G21!0~xdkEWy+{!3!Ci4q_?&I0}|{JelSz z=g5x5If2mw(x1vf8WWDBGvToLMzxH=FHhDLk#HrPBOyu9SmR|WR0g3HZ6%CB^13z- zKrDpCDGY3xLB)|T+OLA0fT%e*(x{GeYH^~x|}X`D1W^33G;YchS8KyFIDv!FnraFWZ@3=fWi*{gu?UV%VJq~*;w3Z+sjL{Ng= z#DUpl!?ulEwyfZ4?kl@IsH4;eT~ueJ#s<-bsr}RF+pb&QlyDGb?i`+W111q!b{_9MosO=`RY%36Lvea)65E4miD!0ap zbC`RIJy`Hd_c&npD<6DhofEA?zRYj(xXYweL&I+D7*mOZZEIvRuOWFSUOwH|NAQ5f z!xFGCQf~#l@M@=wS4 zpmA&Yc@{-{tX@FV4x=`XL?TTC4HA8q^TUnx*>1`M{=@M%&Aw6vO>3#Sp6eGn8LV~~ zr9)qEoENY5-Y7n(RLWf}dq#D@`Er`}VvIyRLdRAdFBZ@&vrY?g}+X_lfu|Z3Wg>m!eE|v(qZ9coFW&bro|Cuj8rlla)f@Ti`KZn)Q_%% zJLyh}ZkUZ0k~pEK%i z_Zu{E8Z1h5gLxeGjwU5!kEfUif?~8#AOYBiB2IiSpl9diasry(;sAMqu`Y(o2h|Z0 zp=rC8B8l#gx>#h(5HwG281Zi)ZiCfU^rWBV0?5(prnU2Qd=pvZC|~Gcv7us~fOaf>R8to;!0fNm>5kR?x z1H!1M%WxZ79m2jS$oG?>VH<*isi3wfAUdrFlw$W0#GZBIR^!O~8|w^jUUmyg>^QC>IMY@ZoF z>nxDR&zR_fy1u2d6Gum2V7CSu^3LTG-kFq~-um?@*H)ytrS~hB^+dZFbZVvBOgbtJ zf5>wwR>ItBPl$??mVfRDZXU>;OiMC542$L~5gG>kNGFMnl0DK~YH1Do|wQcuyRFrczr1 zxU#U;YBW;yP|zwEp7X#Rqg58i14z`aREqoDy-9!Rx1aIkCvAtiWIAR{JNs7K|Np0q z&jOy@rAy=Jq|+Dkalz8Q`)#D!BWw(|7DE{k7}=Ae4^`_1>Ybii zY~3NX{aQiLap1$R#TYW^G@v!|eEC|XvzacA!{)Wt?_F{D9rdvOBnyk7<-mF<4#rZn zk6)8PYi28h7Z3OYjRPrmdJ<-^>T@5BhF*kWxQbtu#88f-SwVYkTgTC)M)D2LPrtyTgOXfz3u&7{ z7?@c(@srp;w?tZW%6o3Aku&(8Pv3-XP}M{~>wPb~IG8A|g%N5nH<(;G3!2Lxyc}sI zK65V40RpMH1qC_K#!2r>LBd{6`5?WIvKUGbjS6M=CU25NlU|kcN-6IehzlLIqk?6y z4+4hml%z1S$hnr4BDNbhkfWp>EMCzwQXFpuKYF|kSl&)i@W)HO#*gB=3vwDPJj8#~Mfiu56TSF~i>VCevGtYN)$)kl%W|3-PR{1Tu@DzxqCK{% zP>6WdBY2Evtqbj!pfu+=`{JRUBY1vOl20%4Lr>U*V$6%lBs{h?n)KGXhm)uq-sa0M z@-oXSrSUc1#%8^|VpF$w6-*h`U9fJl!%NS+f(^4|s^ZNG;E;NezP#cQr-#d>Xq6hN z{rN$QA*;qT4%>;?Q!5j0&q?p6=oA7b1uhq?jMDXAtQkf%27dXVg2Ba7gz?BxXDCnu z(aAtN(;GsmKGuuXA*A^R(L2!qbL-XL9|#UQgv^F+??N$4clGzv(c^SmrX4{hg$KJ$ z(1oBRVt+Jl9`*9WXmA@iqm&J02$ef73wyDF_mYR*F67(1U<~i?_liy0CExnP=`40X zs^4T5%1HBM>D37=Cft!$=*#L*?er+|Jj~=|@z&u7A6D+SI_%g!wfw+5bEy^d!cr^f zw!73q{e{&ee7ZLqqhW041G+QR7f`8$VFDv(Ov99U2FeGC773*Xi2qxs(#r7wQ0^ z0#LV0x&o^e<3H79Dcs)LV?XFaBgFB(g5)kN)u z3Wf%qO&~Cu!(vS~;?@=BG*pG1TP|2{-B^l)JOjRQM}*k27MfA30#p?0H*4!VJ=hd* zTH^Z7Yb$u8nUeK%)o7zR2o;rPg2oynGUJ0#=SY(k?TH29m8N*03m5a~J!!;*y}dp= zHNRRQaZ9QlG^y=ZD>>Gr$y?Y==@6-MaYea=HSF4iWkhz@S`)-xQf`|ytmRz~9jyy7 zn!{9><-l;ew?o40+Z-t5bU_2%xH=f%qqB1=bhND;TTh;q>3l>@JF8+iB};|_J!wv* zHME2QU`_<|{sr7SggFOFK(2uj6TjS1m1q^Xhz=fx!7A=HLJgwv25RHtibTPa#Db!C z5jEb_<5>?NB}@+MC4RmHhZY(^V?tqLBP@pm3|(Dhp~VY_5r@Izx&*1%XpSm!W}b9^ z;);feFi1w#L%1+VvjaP70qqCOM9@iWJSrkucVuK?4yA+m*jkDf%akD=4q$LZmKar- zxSoYifnvRv?E93uX&z-$g`yDwrHO>8#{zCcfJ$)~TEk9fFoQ+_cT`2%Gc@N_W!hHM zI^bHU5L@zDQowRRY`4}u!8F|fSaJnrFMX8SQ7j@voicvk? zrOai?368bjxbLG?omz>5QDwb}sq8lEYrrAnOI$VvP^TJx>AZHZ2x01otS?#K1O)bHSw)O08|#0ugkZAyoa5+JaE`ro#nPO@dMqSoh^3 z#S0jrNq%3S-@s|cykm!~E46&G=ei%udQba)kM6&=b;7pZ^)BUi_uc-Zy60A({It#k zI5XlLjf+3iKHTTs-`?FlFT>)sG6Mhg*N5Y8cspOrzU}FrduIDlA9|>Lc8S}WDm-sd`tABOf9+X*V>rBUM z`q|%W8ezJ*e?7weFLi%{;p}Pq7VO)eQSxVZwfFbS5$<1$aQ}9MyX}*(aM&~IoR)KM zZXX^ueQ6tt$)e{YFKVAJV-fr0ADL|L&&NjF%W>U*>+C1~o7aWqb?g1})z^#r{7;VL zdTs0AU#afbD(;{3+gk|ZzN7ATpZz(1BJ#2hZj-vtA1?Iw=y$J!`@iabsO}%W>$Bg%{aoGuQT?@N&B0k-**;}^=6)HDui@;uEF%A++9%tuWc>ED^JMJX zo>AuLy~(!a23TJqPUv_IBJ>~6!#j% zr4{$a0FLA>{8HrIsklQGcUu5Q@}`~?oXI;(ank`DrQg(V!txGR+{>QVDhGs{SKPth-gi{qQHpygfI9%Vj{g?i zlZrc9asL>=Q8}1boXLBZ;{Gjwqww|rPUIc=Z7HY6DDEc#9Lbwe-18LoY{fkpz>&Oc z%H#U8UUAP++|qZ3(|J;H+ZA`L;tq3gbBf!cxZ@Oetb_BGh`+B^-0_M#BY>lL)D(Az z;!aT9$^eeyv7opa#hs|QbpagZNAFVc_e+X9NpTkka3rr|Kf!%laVINoTL4Gl>sQ<_ z6nBc^`T{trm-C7{>|Z6{PF38F0FKJ3cYye7^~h7)4GwPB!JVeK*9UMMz5~PZPFLI= z0UX75-oZUraqn|**@MFJmMQKN0UY@|skrBAe9uta=N(+?V3D^*anDoSR{}W7w@Jml zNO7Ht`&Ix)@yHz_@=A-{P;o01cYFZH<+(#}-%?zU;+`A8QMu|k zN^sV{ou#-H0UXJjQQXf|URH5y9o*#6BJYrSDbFhv7d-!o+R5Cr!v3yO+=hTW%D3KQ z!nm^)cWD4e;hR#Nr~a;1+?5Wl|JfqXaOWs)Fn}X}v(FLSc`EN*#g!f0q=P$8abp1- zm8&@icfR7@KiDbo`6fzV(W`!@>1CxC<2bmkw^m!M#9nA98T16T<%XD(*f9mve9% z6!+Nxj_bLDyHIft25^+l-ihMxTQ&VQD(=ex9Lbw?aGMnO)d21g%8!#o-uqSFX2pFY zfaCghvf!-WzesWa5x|k&IeCiUKCkjFR@_elIF9eBf_p@9mniPH0UY@YdwGgThTEdJ zgWlCDrzCGdai+igk>ZYYaJAD!-cQuu7b@;J2e+U&YlpTf?z8~z2>4q&UF0439cf=K zRa`cJqxN}vncz-V++~V;egH@Dm_H*d?{dYx|Lv{#QaR{Q?)m_Z;@ht{(}%89 z+?a!#SKNSx53Kxmv*DD_+$pTVKhw9(&H82gUgGeZ9&dE_Y2!0l3lzD@76Z__XB+s0$|eUuX(8;2R)>YIIAe{A2&>_wkv zIN#56zE?Tloz8d0`R;PQmpk8QI^W&S_X_9RwcBSMx+TYd-Y@n(YyS;q^w(>7wsE1+ zZTx57HqNte8>iW~jqmK+GC_J{LpUgsAS z!`ryQzK^jNeLmayKGFF;#rZzj`93M;+rsy!nx8hFFt(%ZMV~f~FlWzR^l9SL&4VTb<7w%0^>We61EkQa`8${pHxh$0;pRWK__#qc2tUpL@r1Y=V{leZ zCS!2s@2xR73#{Sa5Q8_|R1D6-d0RrA>xjWwxjiN!4tv&j+m4#N?iifKVCrt&72#zt~Tjs2$8D#9bSMv-}u|!C8FEF*u6{HZ$xt9_H_449?`; z5`!~&Q!zNVe%=;?H@UaR;4FRajKP__yAtB=iNTq_A54h5HwI_ndmsj9_WRiwoXML{ zh%`P`(X^u z!uLc%+>lMIP2%KF*x(L zHwI_^Zi>N~yj()u_Jp{r6XLFo!CATKkHJ|yMiS!6330U;oP`eun7%fGu~a3=4b7@WzQNr<~Q250`>7lU)tXEp|J;e0R# zXZ}AFgLD0#i@}@!UyZ?;|BuArOx}D#++#5~i;vB}EyUo>|6|TdRv(Xx!C5#d}>0&cb&|LfqDbxLiWq_Jp{r6XLE-i0hBRS$!Fd z!CCs16XI$Kam|Fd@r1Y=6XGTl;%-TZyEP&14KX;&kEs}(<;U#_ad#%fO((?Nl@NDN zLfi*qaF#AJF*r+?`x4?FNQj$Fh22X$7lSwdHzmYfk`T8w24~^R#o*ldTpfcqx&1LXi}y%ETsa}GmJrvB z!C5@UV{jIa$%MFDVsPf~tuZ+BcPb(7wuHFbV{ld;%>O%M@D`ux7@WzwCn4^G32`$q zI5$4`#^5bJ_r>5WKC>}6llNdk+`}agW5{-1K=g25<41kHMu?@InmE;&a@} z-S-QIJ1GWd;qzi}CNGl^*PRfTjlsF;y*dVO@i{*RXYuKc!I`{GF*uXAH3nz$axplQ zcXbTT#>Lmh;7r~~49?`0V{j&KJO*d$>?dPzrY}#&;LP8dgt&WSaBlg!F9vV<_dpEJ z!ueoA+(R)q^Y`Hxoca6J7@Wy_BnD^cW9`#?4BpDm!K-%PKAHc=B*dK*gR^)qi@}+{ znHZeO%O=FFPKY}{250GQ;anGkxAfi=gR}VLVsIvJdkoIP*B^tk_?X<07`(}C#^5YI zHzveQCdA#65O-@r+#6zWmOd7rsTjPa&us~DcgEn%f0KJx4Bl`bjKNuc-y4H7d9yJ% zOP_~ga26lKKOBQM|L08;250eD7lX6( zHo3hqc$0fcLfqCE+)~U=?1$g}DGI?7{7b)7ipKp1;ho$LQTKzGvNUxlz7NCu;ow{f z&LdI>q>f~c{rO35X<+C_{2llm4dk=%I|jcLe$R#*ebf7M@O~_w$3fol;5`xYPJq0V z5CVFqkQ@%o$-o>54E<;a?WZ#{k&;P(RjdhsI}8}Pf3W@eV@Sl4Un@7KPp3Ie7{0z{J=jq!tIs#-GtxG_)X&X zD*RrJ-w=Ki;QM0@vwTw+_d^+90(m0$7QDYk<-Qj0uhaKi@&0;!{}a6bDc;|p-*3eC zoACZ-{hq=%{hfy2q4>Q8zdyt8t@u&A?C(u@e=~l!;rBN9Kc!)KJHAin_a$(Xw($SJ z?RL1)?+(Qs4!3vW{awINzD?uzZj_B}c>X1Re}&&&_^m?Dy#v1^@%|2!t2^=hbCjRI zz>~@b@lgLpbfS^FwS#v9Y=f zR_Xtw^m&J#d%p0`oBR)l<@c@;`j3=eQ@X!jRO!D{dhbVs-{{_2;XmqbEtfN4`lQl5 zrO$sfOrKMFx6*q*7N&Qs6Zz*Uz2oCy`lQk~D1AohRu1Qto-_VWg!!}UMgDch@6ace ze!bFjpA>$RKdW@juE+;2CM;Iy#;?A{81AYYFE(1&F@^3LmFv06xJsRFU!oh|a08xj zNGZbIPjZv=5ZwZ;QgL(H;27O>ZUMjrMLYU%0e#>~tdKX}cHE(ji!b^9C@r?cLw7Fe z-Ep{Qi3H$6qcW~qx(L^H)5To46uDN;H|hS?hJQgb-Km!!#4SmBp{9T>EcDD5aDP(0 z*hhXWiund1O4RAbr#dc3!@sz?Iv6y%^@(nbvb*iXSA>agjpEQZMyg|FTx^QVv+1IF zzs7kZxXYa{$3rfR;SNFJUD3!76>-xk-=!vA;TpKKC8oFg$nq8P{$*8zRopI0*9}8L zPpV!l7je6N`}kfVL`nOo=*Fh??z~Uo?&dyR>3c)5(kC}iwGy4~W%Dom+K7y6(lv^F zEu`McMhT7E2AN$;mS3r~Oe2KMsrowts z1rArA-o@7nJY55}DDag<6~PT|s#Gaig0zH%Lb?TrQofAq*wA7xiag@GC@dlNxQG_2 zbzIX{!`;VR4D%j~TY)>B|>g%5{0#YFIgm zO6uZxvCy|j8lvWBRx5q!x-_@ta-yGNd5cm!O5Wnc>_Z#dSE%BFo1#(BS}~-8-tE=$ zO&pqhNRVdH6T_zc*r5^L);dvV&+rM10>fu&Z z$n61%pp3YP8g%+1*=VEOc-y^9!M2m$t-o>I-S0==Fa2=G3#4B&`s~K=x4B0>fA`+7 zp2uj#^)ybG-|l>O^+@pq<(;Pn_YEW`{(5*nj^UPQLYxnWqxUt`%)zj z&4@aXJa%1fM}sc!)E3w+f0R1H+l{=Xs}22YtkGViRl&lgdr-8R#RBeMrlzEU8xfHq zm*IMCy0uX~*G7#m|Ks~(=?+G|E^;m8dc#F%YI&TKQmvrJ6L2HFYov-!kHbyj3i^+l zG>R6YhHDE;g)!Xt4C>BmL2lbdW2WB9b&Y9C2XxY$CY(6vlep#9YOe`Uh7w6PkhTfs z8bqjqB1;|PaIubFcBov1Z$Qg6zIx*#uB_!-Pyra2XwucW^vKui`H4n%x;chh!Qn=l z1s=FX694*l9^z(fxpgwo4ZsEcA|-4y9q3n)6Lnl~S*05)k?A419Lu0kPH#$BzA2s) zoz&rS6@kZ-dUGusTBy)z!?9jO#?V#2cpq&P%R7sWmVmXImQVv4xT;iQwAg12GTpTf zbwINroqCz_(TnNNn_YFIKKB6&;|t=8quZtGK5Ux77+WE;Uu$O0O}3*vf5}^$OBJ zbCP3as8uY6d_d_7)glrYQ7EYK@%#XtZ64vG_fbSkt46&zge0#NAUSgxu0TcNo2O^@ ztfn-%$Z9&$WN>V>mg%A-kvcAw1Qk{;C{Ckr4ho&iyO6cgP`k+j8iE+bHJl?z5don@ zAZAo{HDoMHp^JqvGI$?ypfP()+rhar$a>joKl?XHJNSL2_dieQHlFFYNa#N{{?0J} z^utSj)B2xIczI?|(#Hd~risG+3qOX;IA0TNH^m)*_k)M55MSdl4H zP(yeK;q=WcmV(0<&eI+670Vnh+M(>x1`53rE_g;Cht#c9DJx5Q!7)+<_tQd3rr0yw zgNRF8L_#=FlmmIR&O=-;o7Sahd^#Jr)*Lk$Y6LFPM)qnYlBjfH6h?{dZNB^>&WLU= zkSWNQ?YIV-32jRV1*=T~L7$2{$PtlNSqR>dytpuUyATHrSs6J`SM_Ssflf%82+qyM z*g&IMYL1}^rhbmwGD?WCigC+*?+A53S)#0J$bIeMsw0Xqm!4ot0tb}bT{b$@?ts(` zX|<^6xOI{*-nLwB)uC{q@A0nS)XoP}IZ*V6(oe5ap>pnRQHDCzwk%VFL^;sNa0;PB zZ>&~Ow&XJDMXjnN633!_QAU>GqVw)_(qiY4?aUf_^fi>*rAiHI9y-BvX}D6Y7Y74* zP2qi8#67cPTWChB_2=IE+5dgAmbd<*?lX?MC)n<3 zZb^{0sQZ#Xa<3D9W&B2j`+S7^k0adwJHkEviLk#E=b-)h1)mAiEj}9~+$SR3|2V?^ zO%d+zig0)H$-<)jEGw#@8u3I z8-cq)apupa2;3(%zJ}|Kz}bDjhT9r}Q|H)+$(cP}&(T+o|D2Wd8gV3eOT+D%L-s!x z65@OYeVKpcfJJF7B%7gdIri+k63eK0ig7PS z5j$zrOJnDJWe|1;Xsb4~Xuv7~`Zd|>bjhl5=4YIFj_A)Fkdr4^B){| z7{)-RBps>l!qBNPR>l-1nOiVcq2xp2kW~d{2C{slMU`F54%6l!#vb{~1T=LFUxr7T zfe|03L5eh41EJd{8qMP9=5bh&Ja0RUq8P7MM`337YIS%>W~@lxJ>)WiTB1L>W~Lk7`}E>1Hl=M6F?!lK%M^$_Vq14tw>G;S_rY&be}I;kI5fIl zRTL`(xn86SiDV&5ZhmLJROX>$bn(g$A%?J8pgj3L(b#*S2ty0!8wMij^tL8O+67Bt zGzB^_(I>U6kLq`W!%Ie1s)bs&g}`X4Tx8T>W3r#F=|Z(OQ7=*DL3CRmFmaSnOkv-k z296EGZJ2qI1XHD$>mYW0gXMxNIP98iOts|*D}3X+TBxxMp$=0#s(7(5*5ssul>9)W zTBgxBw^N7<6@>sq4M$2)QQUIKq-~n5(|xe3Rw+<0OEv3b)Zi9hK1Mc1X>f^5698mf z%@0s@B5#VZ&{XjP|5QisNQqLU`;o7%#*Y^Ff#nA!AMhVMNd=pHbyRd_CQL2vS#~aiN!)r=<%wwRfK{oj&JxrVpqiaNJnr*(0*%h#j zRZ2Wfpqzfa4vM)_F%0BsinJ{oARqmAUCK~GlEfEer`*aM{@$gC@GeRe%SMZu8W6d# zhik6pD$lssG=U!!6BEci!Bc~PN=eN`x(}rpy-#1CWdTaoFeb;!D8_JK>kU>bov0Vp zvBJn{f<}364+o(g9vw-0JP3>M0ZpL|Q-HdNv!x@nVQdi{zVM_%OHGlP0d9Q*)<$kT zQNuBDU98AlRfD=X>dGoI{|hytr!SzeID%S=0%>owFss$*LwaMP(Sw9X%8&@oN)b@! zB@Cz}WE$laBf(l3XuWJ*itiBwm7p+C{?Z%Qvp`EpS}WPisPzhHNm#luSSC~dP&q&B zPkxXw88fcrME$j`a3OU;(C`OyOXWry{Lr9DgAuRs%{~v8s{<%pLL)y-Ga?RjA_Z9S zG_-z{i)cx8ZV0Ua=xm;C*?=>(@)#y-pa`#7(Is+tS`IyMY1HB#kcQR+5*6ZMP8SUf zMS+@*K+2FLYMiP=P8Og5P@9GN*a`z>Kg}5t6X$5#Xb%<##xT8#Zax%s%!3w2iiI8Q zIa)H|r3SBFEo0TtF8D>$w@v^twGSrb2f~h(f0ZWYC);Ej+?X>-wgDT;Hsg)XHX!`8 z3?#QPCQWPL1IcFG>TN`_rEdOf9Um?`g6#ul4VWy*c=7d0uf0U<6GpEM3H_Z)pK|E4 zO8-pxKkLvtN<#m%$$wc`e(rjq zKdkhuL!VXpx0K%R&~rP4|Hn$7bm((R-~USz|5=BgD+~WAN>BAk_$+{G%$z2%+ z0NnpwAQ}@j`_xX;BA9eqC;IX&n)PSg4?>B;@BuT61*~I%?PcSJty}wYS6qJ4maUt4 zZgLRACYX+}(g)4EYL+x-$)mL%&$}E=etj1vQvFq}G(CyY;8nzcMP(Q{V|5#k=zO20 zt81WV!?=yk!3s-NnaeNf)2hg66Li*+M9~jjd|p}w{qnQ)+lwk z4s})Nk?L5}L#h#d3Ymt++=jFK+Luy0LDB~LGa|yyx6V>TF`rc@fRypVQ=o&Ft;MD2)J>CY`qr?&; ztSgb6myL}Mz@C5{MB#%4qlOhlG=`@k9MpcOdxY(?6wh?EN`GGg>xJuVS?Mca`vB{1 z7x0XDdLxlq8VHRL*z$rEOFPDDkO{amU7G4sWfZG)$v8o3%>@BVVW9d1%!i}-T8*@$ zA|yJitiA1>w3LY#EnpP`3I`n0rtwO2*(+2Kw&hwRZ4Nr9u(Bb7m)Z_`wXr(vP$;To zv}wg6Fx<$9Ws74#RWO~-k>N0)0k*VvG9*wz;q@f##|M(;K^6Z3FGJ~x6*#nb1y$N? zLA=&OR&lh3;ei@ETE&1FDi~^8!1k%eP~=;z8||k>m+D7r6x3r!m~n#f zNah-9Q^y*#LW%6Tts*IwAM#=GcqSuESWJP{Bh(nlHyI#d2FBV*tfi@Qu-Pt&W;xF$ zX=LgR#d_7tlzNIiSg<(8lL76-AeP!KumoOJV#N&&I{V2+XygV$E&g+G@P%OH(Pojk z8iN3YWk{R3kSw(Ya@lIh?hy4o=A}^psYU`17C5Sjl)S(Ks=G0%XXRSe| zw12vA2xCz)4Iw=-{$aHCsn+dOu>y$qrEqxA^wBEW;@|*n)zBtMGcFXaR!2Bm9L21M zCk&P_WZN}S)Hh=_8Ol1k1&Kkao~AKkt102~i}a@vF^V@PBP=N+v%mlneUwB*6E>Zu zpWY-(jJsIVOv})qYanYxJkK65wH1iP{ukNGugTD+7%-XAPcz}^g#!NjL;OH{+AjIs z5x-v}pcHMV^2v4pQA1F9QGs*`HCFjj;U9rH8?}iie5i{n^Gk6R{fts7On zN})VP^L$k9GRPOK%7#6<3rpk7=78!O(juzxs}&KdSo+7#s5vxerDNexnX*b1D(n8} z8FP7Pib$EG)pX;f(Xml6PNcO~m~l2RzldUA*uhDH6kvWbz_Tp?F_T5bh>3=YHk6E_ z_KdN$2XU&RJi#VS_67EKBef&Y8L0Ov)M0C;@+96;ED=97h)C{X?Y1dm&`S6g}IL9u!}JHsYiQZX#P@V`KujCm60$b5zw?(d95dO6D?C} z-GPQWjQK>E>{M~(MkXkcC#*1|D%ufEzEH9d43m78Jd)bdg`jCdk`ES(sCU32F$vrX zPiVm-ki0Gp+B274O|~?*X>5N2f;t)tAf zp|7O2p7X+*g#P|5ETglNL&AxveS(!f=pPsoF<)^W_=9RIKy2aT zjSd@^*YDFNRS_X7OQ8qCFaD|yesVC>238vIy83jOeRH_7}>R1EKwBwl-A)9ee zH>g~3jSQ4bsnE3liEQDe8;~AQ@6}h^MrQS~!Cg8at^k;^!gjq1l$Py96j{nnV-Hkk zYF^2vCkD>OM5Qo-1pawNeriPCg{hTFjjxu@`X!;|!{JV@w%}@HVwSVwQyl4Whmq zZWvVvD+4G(phu(&FFwVRfHCk7)ny8g*BP{=h*<2NLPdnyh02R+i4ivvITyHN``YpBXwS|FX#*$+0-8)%Tl+cl)mKtQrR+3Y!9 z<{WfsW$dF7pmajiKC3Kv2@cUMEJH&{FZCjru`X**3i%nF1gLQF5Z&G~RW!ArHpq#n zy11*eu?CF^Oser>&kkh{uLnkDa`zK^-Ue(Gu|)^Sk;*XaDV#H`@QNJ-Mu>9$23m=a zx#OLboM>tq6QcvwvigTS#O@!W<0oseIHhQkuzI9XI#al1GaKl!TyNyGKS$$FCD7mO$P@-x8F}#%$&C8pS zX$`YzC?8tM9r-GHZl&>&&6{x2;mkQp`pP-ozi5& z_>70y;_hCYB5Y3M!IpQmmE|!;p(y-g9m)#YNv2bdZGzHe9Jev^|g7B3cu)3u8*Zcc(50-4n8p z4PUMLNV+hZK0jWp8)K0g=@Go<0WBpht>U7F^Fd&M;aNyo&4_ABd#na|sM^PrQN*ZP zpx|L#Xm+l~7}gtN6ikZ=SUclM>VO$aqJwR*wFwabQ=RB2Fh0y0= zhsAnEpIVl&w@chvr}EL7f334BNG95!HuAzv(Qc)2;e%B~+oZ+9T5TQqN8!(tmWQ!x zA0G~pSx!6gu(cJNLF?5U^ zoMofO@x1Uu4&R`%zF5~U_v^DIQQrJ@T4^X^Qkap$x`GTH4i*TLGT|$Edc+QO$6AKW1p|jK7E$-`5Jw`L7#4VP_fokMZ7cx+mv-}((cw6wTj^9RPKZN z{DwaNRi97j^Vj-3QrCx{q|eRz+^WxZ;bVmqdxd$8isTWsm>5T4bueX1n`P59YAjZE zmN3?$6@M5FVv!kyAN|)-e%_@1y+xmQ=<`nJ`yT!Ns6G$+qU78C`u#b5{;fX$UZ4N0 z&u{4Shx+`9K7XmtU+eQ=T^E0-K9ADpG5YM(=W>0Xtxq?-!fnCs3wbDqdAg9eb$E(Z zFLZuEt5wjxE~dO&{oAbJvwAoj5#F&cN`BN{6`s#^;}!M&#yQCk+ZWWKK%2KVzFQnz z)V`p%DbD!42zh_*;Fd+;%>THj`RDG>d05je;|Q3&Uee2P-e;eY`*V72#$LSY-yz|c z(Pvx$I$kC7^f`UT;s4O|sC|@C`z4pZR?4#*Zg)Qm*bkoVGOh%>#IL?R}{_B?kZV>*w^G zwY>`C!CA056>lh>MO{lzZQ`2;uagO-3n)(-5H3lGTm zd&VTc=Le2q`nwe0@fP`hw|>vwCg1PT@5y00@ivwEuzpWX%J--2`;X=O3;LaXw|qaW z-}7IR?{66XKstRpmHM83PZ#C;x2xr}&6!d8{(<5DSiTqZdu~d;f1%$CcPqbs_uebt z|Mlk*|EbT)36)3oiTtVW$oF53$an8kdV=L6f}cJ^(&-9X~MyS^>>+-oF%awo}m?^lF>>v1aYYs1I+FhX*n1QB%Cn+gJnV2$2@IR87Y68LraP1FnE~u^#`JXe z3@t-<=*}$A3|ViwLnpa+a+B%KAQD_a-xCNbJ_VPcGJ-5dS$u$gi2f1vi5Qhl1z!{p zWHT-xi0J!%tG@Ny?!C#)rKdsv41D^RbL*^C=hUfFr>YJSp+XT@F}c~Gl@t!T;bwzV z>>f!}?6OtRN84UMpnHE$Kmq25e)3}zd%ZpT(eqs2ED!4;qlWJtA~PC+SQn|A89|Z* z#N^PEw3lcy{B0`Gfizbf8e5$0sY|04MLA4$at1=X%nQ`1>KuGe>ZXnXFk4NA;$^>? z@|x@-3ECTE_c7Qsox_nOTiOO5-AKAX(*w&+We0Cc?KqvO2Iqt}t4T_Gg}mI73gbQE zKTALD{3oQPwU_#O{UgCw3h=I%IsDHBUn{@|1pk=e8-fQPSrPnGf|q|L-~P(7*Z+@# z4;0{=f`3);n&46Yz$?7`{r<1>&$UANb-^Dd_@>|?hYb9!!Mh!DCm-DK}&QGcR-S*bO%vJ~(vXS{U#~N#!%&#b6+IU6U5O z@o2Mx3$xGw;ckStjSMgdEwb-OTUB-9z)go?MvT@^(Df)91e-cF-WT}BSv)a+q4Y}Z z;um-f#z1a3eBkM*!;oKwZ71x`pvju6p2CGCB5&D6v)!~=&kR+#)XdKS?hDCobB*so zr4lzCQXu-0qOpPYP3lXwSQtdw-~G5#n3-+igdlC8Add{K9Pr%QG))Oa#UpxWf` zeQtn~+;C!vwA>VV%QbIziAnK(?iFS(sD+EmJEx}!IIdq#a&r%&(P!+$=vDG}u2b8N zHz`&x;8U&loJ@rYAK@$v$Qf|}0l~sJ8W*Z_3$T^OT}Dm>k|rlHtcm>a!GukmS$D=7 zbl2WRP9)rcz5;gJerL17V_H@w#lXzUnM}G&*j^(2 zT~lt=+784(XHYS!j5vfI+k6_sfi(t{a(GT-A5%sq3i+zAPAO-duoFDg)i91tT+aO> z*hg8O#N`eA5VF|y`JKvGm!L(zE2DIkz0PeaZMo||uBS3$ml=7m8rLBZp9VGIYlrny z;ht}U7j2lA5Hr=pi?rXzs6rlybbRmoH!jzd;|F~=e%a-O!p|2V>5}84)UQ?zh90vO z{G0vvR`j?`;~ppsp!>CVEj>n5|7NkBLr#xt)UTC0)sJ7v_ot|*Ep-3Y#K$G855_WDtNV|)49A4i<5wl2|Xef0l)d-DF)wcqv7R`huB-#WkQFLYt# z*V@DLYMc2A)wfRGvpsqg=TB6)^o!?*9_6)rn_h48e2-5Z4SGbsTYW=sy!tvHSLp2q zUca+(9)MLNj7QU*eiW7nZbLeC2TnIQeL>3&BXd|-P_Bbah64z!P$2oB;BMHOLH46K zIZDx{?*_h;K|3{fX|qdf#-Q?-GF*vbEmFR)8p8ZY?h=%bAi7V%9@`_cLtw0qdAKad zOZGa2SFnhbG z`N&Wn${o*+ele1_yWR*4!M3FCFm5iSRRM6D3HJb(`K#WFBhG8Y5E-^-beiZ(`s3Df z)+NV8p*3#_0xp|6gp$n4ptX2d1)+`2E@wgfbWr^BzAYwFyuULd{u%m|!C&xs^kvo4 z3LfwCtgC#i((c!I`A`3v>)~6$yToV8Z*snpl-GLwwAyb4|Le2Pr&{&zgMvr6Nyj%CJN*=jF1h&Mwa2Xm$h0 zmCQ(xkmo9M0GvCuKw|=)>M$4OJ>(Y2$qdz8(Nwonx4Fo1hMQfw&pbp^K0At4i`7Ki zlEMsv2&<)3ij@)8Wac(#=IT`jJqoam#uqV8NOls0>LgBf>ak5+8mD;Q<8&6e{2&4J zndv8M*2%yPl_93{e!vWG0n9I2;TCNVpO^R~{GC`2?AuIY(hDJmNElovU#$)4Ksr_JqWI zc@}OB451uLe8~mcS>gzf9 z$#|Nw7F9 za_mW%S#W8}R$BKLux!Z{rY|pZTwlc+xrX6I=AP)blC?VRQ7kxW!WDc9-GjGtlSYhV zP@~$cjbt%2w!wiJhbjzAixtti=SL9>5SdsxGV!UFgh%z2dN61NcxUOrRog#g{{w7#qH}@*-~GYvg_lZlH>N9j$|P z)TuV1jV#0}@_t5300n2OV^s(Qg<29k8Ycx_Fce^gA)zwHuc|vWR3Ho5+rST@T`^(G zaOV@?8^-52ieQA!pF-2L1&6!J;}|g11wtW?9H*=_<1YkYF@=f{>c2x4-GO@<*>x%| zS~!hZu)T1qp$41&MyQ4ug^W7~k3PRsOkxH&q3LxOvMAXz){!kpc|1Urf;iI2>u%#S!lpW$=UW1H#r{ogL}x8rJxr1T#Bv z^J=dcLvo$<4(cMyLp?U^VVaLG0h4Ni*_VRBNyjFlO3I1-uR|@cv zRWJWu!Pf*2{A~QX!~Znue|x_Fn{RV?hV)JUgzkH8et5QW)~pBcAWyi4KnjB&1>Vd! z10RP|jOD{yg}GL!Aw}ms1gi-=Pcuy+C+?X(!FJB5}_O=mnoa=fjZt+ zQWq6?%OUDO=mho>cq$}$X8zy?-(t^tyyu;|o z+o~(Z&M;CP_UMKSem^qePmHAF-?fWElpN*KM|31iV4t^%ilS^6LIR>T%tK6Qg;)>W zLME1+frc4noX$AM^~}rDD~n@QxCb4f=)qGGcQ}%W8MQR}pbEjeHfo-3gxp>1G@8r| zbSi12p}hISSZq|^8<>+}W8*3Z>##bz$1XetLKSvynSzf51)*4sE|}(}tI{ZaI%)lb ze)D`tEHNW$0HOeZIECF|bQXtmIC67K05Np!Xdb8Ry*IH)KO$`-STyzO!W^Qu_mvJ~ zb3m15`%g*IJV_&dL{F;!eaGwBVw#0$^fO9vj~U)Pb7FzSzvO%fTV{LAK=5e z9G$jHTlCPvUQc0Hm$(n1wgl-Od+ijL6JFo+<2lKti%jK2E;w03Ne7oHppVKVbm$bW z;KmViXA1Xip^JiZl{&o`7@4aWPB8t!r?NP8XEI9NoPSw~B(-O=xGXv1W_kyuT&iZn zC9#EqmgA#P2%ppBLevD?>^!vdv2!vYKtra3%$&2OMCS-~o~`}~t{J1*NU|*?>vhE3 zhv`HQ{ET?}6qJUHm?Mr`;(QTy2#kPHKh1k!pFPRM=S->~WQ-kGYza`7Cxg$#M<~RF z;%UR8En$L8^K=KPEZ2n!#zqweWT}y$K4@xmp~pTZcp{r{!!))#%s3f6C;6{m&hxKi zjgbsKMlorNs$n&n3$-DP6ENKp-DR+Xh%oFRMrB1}zlzr_G1pnQbAHRw1J2=ZF-iPo zD|Sxh>saRYM7AXo#o}>%hrHik?m?+!iNUc3CJ=~2atbqg0_GnURtX`oF-NuS%GZxJ zJgzySF(A~lc({1JeEGiJPkHiF%RQIxJL55z>@iagw>e%w)y#Wv=o+RTm-u0ZxK~hK z>6emt95|pEBJ7D(u24e;YLdwTYq=?TP_9`ej)DRqOWC}y3 zh4p6lum=GT*K%59in!EZbio4Sfq<`shKDswzo2%S)58401(a|JrXD#2;(Fu?~Y`PKrbSgt2m^ncfr6C9@~fFR^Zfdw1T zhS>w&Fjr;hI&H{^WDnm}TzfDcKiY638L;$BKf+sbm4*_>p#crVV;vqC3r3oUP z5y|Pd3%0rNrEh306;~l98IaBeK=*O;Hcq@r@$8>JJb-<{<|?+oiByWsOe2qF!3Dwn z2u%BSR&`+TNP-V??B9__v6Uhcr$^xeAR#-_cN20!HQGWDy!%Nlokr7wK0)sv3bR`ct7MUR0(*ZOa5j~;7n z<||acMRI5KC|1;cv(Lv(eT(pKmh=y5ovqyB{at;Qf8(8~UlP3g+5UU?$viy9(NzDG zzTeasB2R&3VOcoOP=;WrjK`o?c(BPNJ_rZPC*o}$%81;z2alaNatq}rf3l|sF)R_7 z2I1#m{CR2tlI;Wo^_}zc71dI_NI%Y?aulyvLp}@&g--}ebJ%`yL@?7rEAK&4a2bqE z8T(YTeT*?PsoTiP_Qc6o18?th{mqgPweddj$4@!mE&p*I-o5Vd`v|`Jeuu}s^U?<# z{s6(d|0G|&>w^w|h~NY3d3gCl4*!t)xAdoZ_{xVJ{^+Rx19|w!Upf2S3Z%4 zuYbnjb5Z{%^YGQrI{cjAU7vDz%%A?xJNyNL*94FLtqA_3QU25U`ZooCrQl0~-$V0z z@C#o5&kMftnSA;6e{lHFEpE>+^0_>Gt7YTU+^Wt zqyFxDd-?Ace6;`{6#S6jgZIn#Z&UCa1m7&cyYB1t4+&l_<;xEW{+y`40ACS&T<|5q z1HT)B*8+b3eElo;^Y-r$y!+ep@UD`>UnF>c0X`u3j|x6mfG-LD3c+gy_~8A${+||n zr2thD1dsaH1pjuyYY)k{Kk`5? zf05vW56$<#`#}zWq~PU;IXvjIA^773UlKg}H*k@c?-hJi@WAhq;Clt{et5qAb-}L^ zye4>*A9%3WAMqg81&{Hs3LfzvHXo56|G-1N{Nbqok@@j22|g(Jrr=Tkrr;xj_dhD% z|FwsC{S$&O3m)aWAMWre!ABmQZ+}Gas^DFZ$-|ev)62)Z=xYV|;3FKq5bZxUUw&2a z=L=qbTpm97C@&vzpGF>^hmSnk;V+8*U7Uxn3jQO4FFhd-UwVv}e|f;4=xqEkNMg4IEVkd%C86>^K(t`UyAxK$=BcicrX8}f^S}$hp$}h z@QAmxv?t&G%99)(@t4*L@UC4BUse6xeO^B1_lV&CTku)|zApIh3f_NNzJCKfUjH8n zzTTg&f1ualeUcUl)8*@cwJOe9(7upO>E&e4qed zyWHVt1z#6D#=mxj!(S+P?R)b5>%Y?BuMm82Am4uXQyl(k!IuP&`pZvs_!|V@5In}e zB>1}o?>~@le^c;3i24igrSJ0kKPdRR;KBd;_dEP!f_EMC`UAg9f_H86ACxEaJx}mp zI=jo4?Y7rmcb5?Z5srGplM@jD(OkKQ5qlS}U7x9&)pl=b&mP34^k;3#X2F2V4ZkWd zGY_alsAKVX5PU@z*C1tU0H1Ps5Wnb}t8#7>cNUe2tDr-%;L*JPm_3D80{EbxcWTe{ z6bu*TSb^IMR>9X1_wWq{gnjmRwsFM(y*YiXz5kZY3;^fLG|+;bAv)_pRxEqh!U#$py8Pfi-vAG;IqsK~g}AboaQ6(p^9Md&qZEi2fXz$5lM0jX#tD(((FJoy2q~ z_R+3qGJevALqv<_%ThL>ic=zYU+k*PCM$*ybTqD;ip7G*1R0*1s9)_AHOyl27CM$$ zQ#YEC2(OfIb-XY&aoH(R7~xICTa?dd^Znb!>;dpaAozL=2+@78?ApqMRu2O zwtu;bZoyv{Xobe&+h$>++oODz-nfRvRD!Kbxtyb(fx$`KVMQu!yZqyP@n`#YS1f;6n`Ec9v#G+2{>HF_^rGDiMRempGm)){Ww!LVuI3FfEwn%} zg*A>%33P^WIL(;rT$FXL%52QiSQRpfhVcR{hH#6Ga@?-ynZ_BQ>u1!J-iz>eTgb)j zdVYS9f$39*Gl@9Wm-*IvJbi(Kd4hYx91WW(IL8DY;J~#vtUqQkr_mldxNCA^mvM_p zvSn~#Hz+IeJam>1hxK)hp9UvQTbF>~?H@!Ym;$ixVOPdy7&zo)e=}B*8?^Y9v0XFu znm#+aNRzEBVtCE%TWVkFSkY+AfX&hb8)g_G`Lz>%XtD!AP_V7X zHkH(X}}NyF*E!vJ}o6D1TS&4TTX6dc=0ixoA>=4i2)d@2?B^g?xA|z z_|^&LzeqZ3Lmoh7CMA*3MQNbeVN$eF0%)=So81E(JsUQE0Ib8>`kQY2zEZ|dV+U)3 z{pQ3v=% zIC|BtRDi55XxT_Ge@XiDE@ppyn|Oid(bJBWRYtnDiRZJ_Xz%avwXvFPEm<#`ttUvc zX5@1hinBWx;2W1O`fsds2l9LKMLgNKfVsnQ0ybq|!YK4`+U{($=zXbZHr9O+`GIKrx(jyR{|*pWTac+nPTeVpy*=Wu4EaFLw*sUb8G0%q`V!OEE= zLR1((+p_vmoP($M6qOF&&{pZSL~8)Ew&g)z)6nZ5%aAA6|4~;wc3gcI`A?>D_&>~z zYRR48tEy*aQCoT)k#06DZAENZB2~PJ z!2H1FK%%ATaKm9oLUP3uk5l8?Aa*%!IXSrbB?PK!sdPw@Z=@H6ccO!g z6AfAkU&QlwC6RKgF3i{ZJkXq*vZRd7&%)BMn4DbEa3GEK=C4xfx`zm%QWhzkk{<(wW_|zOc ze;`@n7Jxd_t?HqoZXU5sGp8O`7C=Mlx=};Tu0E(J&zD-{s^?@nm0fz~FK6ya9#I>ePZt9YPYS^?hU-bwGJSh z7Gp6@SR|45WCkn8`O$jw#Ykt)G+S+ce82k2y>JlDpI?2XiN||(QDF`s$*a!oczSkP zwYWb%k7omQs$EU1&t_;;F^UdVtse22I+-Nq0&7zw1oG0G5p1b?7Lo?Uhs({Sv%>j=8LTtyTsMoJ2i4B|WfHb>`g zQ9Enr6GC+=QlBqsr%LL%87#FNwVN_hGfg`Ve|4Ola-!Wgt;X-d@9MUKC{+zlPFL}- z#a8P%iJcbrBpwF?0S)mtBEBKuDvb&dnn(eFp}{#hJ$WmOr+X7*c!YYRgf~;e1qQC! zS+Q*PblqX03@AOg9nItdf)7HiK-WobXC~$KqDqTNXyp-y339FrFtVV^l~P_BsM*mX zX#p=MAY3rCa~U}z^cUFYxuBD{NwGoWWNO=U)+93BApEX{G2{}4FQcxl#mfA7*S2Qk zCKxY{(A-N9nWK(N97M9>ZBDKQBFjTHAXh4DMdUp%!Aw9OqUDq!Ux8W{e*#x2w4_Kn zi?d%34px%ZpfB;!M)f?u308h`Uq3gkQ+9lx^RsoBLo~a}OM?gYQ7h4692t?3fs3NC zID>1BXf0q!TdGq2yNlhNlWvTcV|aQ%*(H&~=NJ!3MmTy|Std$jh`KX9ofVc*-@?pj zJ)=NlDv`}8$x@JvHIiJ(F;`I_$Nai|it)It#-tUTFtXN4c}pc4SlT0QNzAC&Q=>^) zYuQyPV~$`&@c67!7S;&|WwQjWMBF&TS+MfPhq<`aTd*1s2r~}v@k(#70{bFDSW)BH#)e~>s~(HBi3Nzm4)&p*UPkfw)}b;CcOA{b zO_ts67{8*?xA3cow-#ziD-yBNa_cb+{B5(Bk{pN7*?K6wZGrVeiTNlfRah@1TSvxbz&ZDxK%Z&iJ1{llmaeL@ zZXD<1;vUsfzHDV~D>07rE8--hE=Y_&@4Dk-W=FUAnh~c$pJT_3QP@h`bHogUmbr)t zog@lVV9A6H%gZNz&cKRpLr{UwKt@2Z6#{vj-NPe`N{%ZHC!-n|g`LoPO9ycG;ziAO z#?DCWmK`e;+cCNG9cIAE%y`+x==?%Gq(>a9q=c2*hY3>2+EwmUyFbg&uG1byRcJxm ziTKx5fjoM9+Me&_IMdvoNSPtAaxt6mYA+;ot<{J~J7U{UPBYjFWR3$8*RR8mI5t8Yp0;@4W<-$ar0tE(9L)Is;E_Yr z-#Y-!AetGO1-l;Ri_a%e{^mNAv$rqn3{z}W*xg2P9+BiZ*+X~ zdZ;$P*iiNu-3}4juU=W0sO||<4$Sl8t_cYl0~qeXaSR!7F@?oEjj-|ft2fK8>_iW)2&K0{CeAFIcSL4x?)l?4%92bzW-Cm<(h$@mkSdaD zaj}P5(S4AMC#Z;vJz{KEcb>)eWtEqY z9CBIHCQGBKl(m5RF}GS(-h}))>e&3Lotmrdqyq1ph|Ko4>4493OuGkLMfmIY?PL!p!$olfMFry~bB zvF@Q=CQ+t7D_=X6sljaGx30noTBs=Y!va3cOjFx%9Ip$)4=9~t1bXZ|KVd2vOY0g^ z7M0e;E}=d|G0)EUIjgYEYN0I#@*wax)GtX3_2>ANp>Nyqrb~k3%~inEj>enTm5eu6 z;ha_2X0=Vm8}<8uIbQPD41e-;L!bTUU~vVS8*>DU&dg+=KwM{PfP{42CPt8Xk>()o zR*V-&!p{`xWxY&K!NBPb*CJbO;hJjP(`PO%z9ucwa@y03@j;ySQ+|$fFG5jQX2!Uw z)Ta4#12{u+v?zH)+06_?BEQR#g90IjV;6eGkyw<8C;@qa6EDM#pk6^F>paRpkEZwmuXt}ed6m2wA7?3?3JE=JtP=odYKi?sp5u`+nJf4?tF6KU-swnOowotZ87O}0K5P_%k~Sh*Fqh!zEd4L z`*%gIe>RNvI;pvYw;8hNXfA5DiN~#b>-auFg7@K*hwgKQ zn~+{NCQjvT?X|Fa>J7uuv~9KASOCNBZF9Zl>ffqrtWD+(QNiZ0t=EPQatSBMZraT# zXXIga)jB_J{30un@f@XYWu*GtD#wAQULEIaeF*Q)_lmd%JKKwC1 z-oSC#9(i2S>Iofk&qtFy$fT1qiRUA)1)A`+wu00d)J~2(RO69Ou)fMhqjS3mn>KGlDLr zQuJJ_B(Y6&EyI|pm#{9PtZ#9#N+7isrVaS?5V9A3P2MfUQ_r}N#e#!~0+oS+TG(9( zSD%7g=uRfhkR0!MA<@@0v5+}?HLi5nM)2&*7qh&(h29jX0sJh~_7%uU#OwnuXW}6fS>L8CMvYg$!kp{V(6hQ}7X4*9(6=}$KA-N3&M*mKHjp4PL${f_`$tKsb1M1z2*XnkNyx z3awbBGS`PQ3pVc~pPe53m3Hf9A25Y(x!)apA7<+e!9OuNKkBVj_*jeA3KMm`RgaZD zxd0Ueg?iwU?>@np50bNxJzF`4Kx5W1(uU~v7m^V223h#jtDRPG3V;ck(}PW75Z)U< zDfp>mzB-SCYjM^x-)=nSH-+x;#tQx`dWaABVS`?5d=$_B$b3D{T7j{wEWp2U=i6!m zR3|4PE9A)p_38o-P#l0$+#We>m>Rit1?5Hhl#thIGBL>RlPz0Sfh}PM@c<$tk!W;oW_n7aI{0= z`Q#IX6(&yuXJ%5cI6S~K!Jm6@66T(pVqv@r*5NOMGianYFk9ND03JX+jTH(0cq{${ zZ$jPp8+$s#H(lLNTgLQ1xMvuCqw<5*8eU^#!IecR(gY*6@~ehazTSs>YxcsTxIG{bA#UBq-B8hcW=;2-p{ruM9 zs^M@2%+H*GNoOl`U;fl9;MrqQ@UHIP2Jy5E4LQP=lxs^dJCfPbB1^f4`J*A%20)mw zO0e)U6fD6Qp4J3ldz=o5;s9>AX6^)uA{%uKOanSyEC&;SO7n{~6UeO_fI%98A02fP zknt)!ec|MQQyAt;4_r*`9rt6$dtG5c>nx~mPYfTq?)c&BcbECc!KWSfKd!w2@;#g3 zuSc%qVIS8=%0fAxe8k4mChF?zdCRmb9#W{SGNNe}cKV~{NI z{4O8)E5Vgu2HIEDMH5*BM8ndav)-p?JlTzd8tB-!%)=9Rwyv4c=T$TQFpjZ=MIS!L z2c;p!;GFBhAT56gm69drM$ZP=x9QkyxxS`g@sqBv?dxa$ozySNCp(~Z5H zbJ0nu>tQJ=q`*6vwawl>HCLTA7vbAsPs3xVDu!JtZU7r=)XshgR{cCLw5$X6P^Rlj z$G?Nc~qVAy8s+AH%E z^C`^DWg_-wwtiyhz|f5+wwoS}h;&|HbHS%mU)Rk;hmSu47;L99#{+r_F))LpY&!-6 z^=`-0@+S4g%r}mS(cH}0&_R15x}hm%$F_|DUv@sdeKKRdkU0S+N7UJJjwo6~QNrQ$K6m8v{$=Uyf{Z7OMz%GE=%m(8dX#NNuH!*u` zmf-nxJ;I@9-_2DWZ;0nMQq_;FY$Bb$P3wm?*l+lD+`=U3kZ*w#s97sq2h7Qr>b=X; zu(zMLyk_Lf42As?+m@dR0K-;bw?Q!RMzQ1`XwTj(6KL#CB9F08x&5L24na&v_Gdrg z*+FH?PJMFO_%zLX^C9+jahv82I#=1n6C}>J zI@C=<#b)=BL@&dvQ9q9m@UY=Vv~5UwCF=MIt1`~QDca_8K2Qp{_bL6fec$H|`*O z?co4XzHOlbnMUw=J!&txAQI7)e(2tNCC@96lW|PT>!9#%JZ3z7=;0WBd=w8F z*UQIF*zI!28rIJk0%ewk+3FYrh)HI~QbJ^&nRI>EVdqtpy$b4eEW!vu=B1_F#H$B> z%|m_S_}pS`zItkIw1(>u>M4AcNwgx8*is0)p_+p-f`NiK&>r~OEX>eX4VLniI@Mc4 zDCL$vv?824wO}UzNTxl|FpR>Mi)`QDdWQNJM+@xrI+)dUO;h9#sf!z^f!CW;cG18} zbd`+Jr&`8Tdr4Xa@=M4%k3f%Sq17+Ud-Kw&;tgu5XIw9Wc?4T8u+VtA#+e&lm`Gip zh*1kTrYT-3)lb6-Xu1#9D#L-iVZ*4kjn#ph|2=M<5kbln3rIsQxvP%%1oQ#d#qpqJ zeXuA{b@_f~nI~4&cx_?W6yE8K%I`(_&?Ktl%+E2-OM` zO)9zA)=iq=PsvrXP7jEOSK_?%Td8!(!U7Eq(Io@?33LIWe91uKqH#}YWCTa^9v~}m zCP6H2T1hVU^!N6Tj3mqje-NLUoBtFm88PYl@T;eN#vX({fRmBkFU0DINsMzwUK`#= zd)(IbXBtkHblihyVC}ZWadA9jv?Tz)rCi2{RAbdDVt~Xb0_rME9cByt-d{40$6!*& zhL0XQdaW4^@LEM`#ND|=Qvk+cY&jRF6Uc-4{y@{I&h?f`G1T}e*Q3@rP0BTN3wNxl zJ$2eFS%+*xD&|l2w9Fc*V@B}+PC4Uh1ne^e+Ew~IcfrZ>p{cpUi022F6N`l49ti0Z zY1z5OzbEUgDV~M4(LMmfT)z$S?y?3{K&7-^Gt-T`7+DX6RlX^E- znWL_i&-w4G9oGLYmEY*F{CiY>v%~U#rt;n2(;0p~q4EPAmj8mvk91i6Zl8DjFLhY{ zB9&k5uzXqN*E=lVr}CQ}mcL5ny9YX>-?++`J1qaRDnHm^`PZrZNQdR$rt(W2mj8gt zuXI@cb1J{qVfmMT%;)bX;$2Shmv8%m|Gv>-y@yo3`#@*&;%1c}=&<~oRDPtx^8cjr z%N>@#=RY|9Ryr*IAeCS1u>8d;ztLg&5379lwVly#c+aSUzNe71a~zcPYKpVZHyZ@+%#dFa5LQWxd1lWtHFPu>8|hezU{! zpH}%F8S!!a%FF!w&gVSb7l3ext+kcdGnmhvna@ z@?D2Io4@Z?`R)$Oe^BMi9hSf9OFsYN{Buz02Wx>oSLuf+eTUKyRr)8Cewfm~uJpr| z{$r)TQ|Zqr{RpM+`LEvoBbB~b=|?GjwbGAP`WB@hqjXK_$143&rOQgcUg^gv{a&Rb zqU?s!7YkncviB#(|D8%dNbn~reUZ}rN(X+fQ9AH*gVKSYlS&7EPAMJusVV(H)&Bye zFH!pCN?)q3b->Pw8)0`Z}feD1D34-=XxB(oa%)PU-8EezDTmEBz{^pQ`k0mA<#qZ&msM zO0Ow>MCm_M`ZA^eR_T~upI18O*MBHoR{o3r&G8ZQ>q$z7O6W?ZpRW9el)k6ZCzSp! zrB5lnU+L#7eJ`b7qI9f>pD3hPl>R~Gf1}cWp!7SHj`{ySrDOhoTf`NK`aw$HN9o5Z{Y0hrD7{zdYn0xn^f9G(DScY$%auN-bnuH8E8Qdb&nP{j^e-!Y zTScPV{^;D4ZWMd^CZHKl(+>D!ckqtbPy->LMx(to7%qS9YbI{4wgDIN3e zJO0DR7yS7#N(cYDMCss9PfDUimsC4l2|Dkm7 z*Pl{4==Up1$NGAQ(y{;iiPEvZd_w8iU%sMr>@WBKPsc~>FON{VzeD*T^cf;Y*XvZ@ zV2Ab5zGK*x!297*%m58;Ttxu9F8l*Uv^`W4w?R@d%LmKDjpDXO&n)C_P2sQ6W5&t2 zSgM*)HmnU4N0C0)=6LOwpwNsb;X2`V$y9F%O@}!VJRjz!@JtQ#(RfD8E5#pHFW(ib zAgCR_svUn>q!ikp*73qD?*<3qU3l&?zw@l`r^0-(x`1e9urTD!GTxD|)o`PK`%rx!qi@Wk%M0ma zh4gJozf|9!()U;OeT%+-tnY{P{fxd}()T;>>HT=3zDM$A?^SDy1=Teq=qMSngh_^RNs4+i{_7rS0&vqkyH z*Xn!f-ag+qZuRzKADz|juhVz%xq0}ie*dJtYl27rH}(5h|IWwPHJmTscOP#z_|k~r zQU0{xaj#b^z<*NkR^y7_?|iAZANz591CL)&J+UtaJoekjciDZtzfo_y-_I8A4WeA| z=}5$hxL8Wr<|TISNhfZzFyyV>-#7AeoEhe&^PcLUwhx6Dfb4x{qciN z@eNG6StK32{IAxJ6tv>YZB;_HtZ08JcCGWLzo8+eUxte;4?`rf(V?QEQUobkc`)PEa;PqcKaa>d`xk`SWZ0xW{) zg$6n5b{Hs{g%I{?H#URE$Sj^}amzk`%Y`qM48iEgADe-7g*k~kjK(97(P;b#Nw=OAdX|GvY#GzChepR0!AU` zX9H}2X;_Vkg`0`9^56lhArf80)o=S42$v&}$;qyx82JLiH<*14M2^Hvcb98u+MRDd z_hFyMwddyNTY1FO#d%dsfBpf!ZkEP8|H!z1;~X3Lv-44Y0GN{FjKCb|y>WKx9E^%W%SS$&5D}P^oqtre8w_|2@y z0Y0B$xpZK*lz6OhwVJt+*=cfo#0L&ob@-$jKZHpaU9PYwCgJLz4`ERgU6)_s@=E9p zRx~db1t0kFJbYl(>Hh;W@2VvXeSk-G6| zc%%jA;D(J5xm@(5A>IecsY=*kTmL}kw12Sc?Ywi=DNdWOvs(!| zt$&y%Y5(%(tfNW5c+RDCakU(`P4VIzzmCHMg*(6?R}QA_!Z-q^bKy>e)!<@oIZDuqP;3BM+ zru4=k;9h`;4aQcS|Nf`u|9!fhKR!_3N9y|oeJ|Dba((yfdr;pS^u0;nTlJmRcR}BT z@cN?_|G!iDN0cwt<-kw*Ixf~zOs{Q|Z{XGK)sxn%9!xdgZ&p>`Kw2R8SHH@wKF`Y! zo@riBuFy9i(TX195BB*HdiUV7%SRv5p1gOgdA={#JH><3qkF!y@->xPUGVZtw|7?0 zT}`4^^f>wur^jZY0~^n3j^{$QyC4}Ww6m%QzR&T$qHkxl-1Vhe(WBV%Yb3A6?{Plr zf5Fb?86z)1O-O=x|Ngngg&NSBkBe%AThlAtT%H%A`m^JefD z^6>s?@7D>z%fFb1uL}P9vX@`}+oj<-1;+hY!v=d|2>W0p4A8_z&Fb=gQ?b z<;$-MeoE!n-kOJ(YhJzCGe&s37o3O)*-=Eqd-($pg<9@5C=W5c0Eq{8V>RT%C?SB2fW#J}3c;}77J)&Nj zo`h7%8xuZmqsQ#vQOLMI2oS};a27?NnRBiZ$D4O>lYmxs*7CYX;4@emj>~sc=5T={ z{WRi|F@_2bP`F|-AtoE|%zp4jO`u`O!p{4Y2{zWcccZ5mQV+*(9&S8ff_H%Esl$7w zLxe=*jV+&`n-m@1==|Yr*;5@`1UF4FJH-ekz)E|~3q*C^O6mQ%?Sk?I? zyuqMn0j&^_9%qa2s5Fv#6Un(Erb2yTEJJ-h7!`AXfm9KgjUn9j>`B_ms5KI&F9az_ zUz%cu>B{81sbyy2tVOp?yuW3yCsoJY$qdJFqF$I{M}-ws#R|MSdydimc3IcxvoMDE z%*k|ZufzUcP7mUh4tqPepRurz!_~=QV4#jSlqM>@emrH&g|BZoNrdYr!+;;$gdLZX zA$X74S#dGJa6P(!*dv*Rr%8}MY!#7jGpGgP69m^0%@_X5&3nhyPq>1CHFV^lh9<#ZT5+G;grs9A%8#0R7^a#n>sCXLllt+)jdKrc={l@M(?e=Gaw;a3 zyG9I5%vX|@VlogdDEhC>b}}55ABJ~mZ4tg-K>{CaEZ44KT$@*Fg**uNgeP)yIbWuI zY@|awgC|@hIibVySE~G4hvlE9@|zu&f40hZAMVVqbVB9(J1k#U`H>FGzd_}fIxPPV zm0#(w{AX2ut;6y$VV4K<=b0hn?q;@v4PdSUiGl)1yoJ!G{TFvY&mcgn46AM$Ar9(@ zcL4PV-0k5}TfxdtZVwp!$d=;kBnOQ=)7uUCtbEqx!;e2-_a4Xd@KwRTBKY!&JiPmy zmw&VB9~jERYl4To*L|bImxPE7!QZ0t>jn7oqSyc1g0J43FF$gJ!$bZp-{SC)e>VjW z`FB9@XutdUUOwp3>U*vr|F)7>pQ-r~a&nI<417oZKm9o8BO(8`lBZv&b|YUac{=KC z_j{$z*~`L5t8(9?e5>2!I}+#iZSu8hr}(=)g41)-J_u>i*VlKexjaKEpakujKHK=U z$3tB4GWFh&UTq0cY~fyNqLoL@gf5ezce$(eW2rH8tY3yfZH;JXzK<0)FvyjRU*h|} zHN?$6uhV73fpgKg6-W}0rLxkd1+cPOq8Xeec2c`y({dxGoVIn{#4X&t6Zx>%eImlR z$}u~5muHd~H>`i3-`2qTjTT=(f)&S=%S<0T?Wx?`Ds0bwMs%k{U{a)wX2O|^p_$7d zo1_O8)L66u2W`4J#a(16MfmHnUS-~U%Np5fSko?962 z_xt{SM)0m-hsQYj1>bH22!Tv}W#&3BQS^WxF{V590*v_SoJU{V5_TJR;+A7c%TOF3 z?%T|y0_J;}Hqu;xBWMN>P;OL0!zt;HlJ>P5*-&1n@pgAO&jLT&;pNU2`rz&twkKCb z{qG%hd1&R7(27k!w`H04|R)8=4u)~)g=<}oNbbfwxz1ZPv@*7<$z}H^l@c$e0 zV=6yCmVVUXpBH@aOdh@__*VtrEWo?|hnK(aLw$TB)A{oKfY#ZmjquCe045genap#3*KMP!^jn6R z;Qt`_@;5Q0h zTg<~(1fLOn@QyruL-3afzE*&jm%aVh2tM-seEAW>g@TC{z%MS|vX~Da{KM!9P{9grM6Fm6OhT!*lxYMueh57Q`Kkn^6Oz@Qg zd{FQwMfoK!AN4Q)gqOcu@PPt+9fjyfDBZkfZ1=Y+a|JI;97 zGvZOCS-7g0d&vn?_9wr%krO0J1e%8AN^3m6YD!@*g6Ua6CR~W1Mv9IUfU((?D9GEk zg@9-M!@aS8CcBn zk(DHAVW;PM%RN@pL5}YTf-Op2k~yXLi{R;Q8eLD&bOW9Y$9bZbpvk+XbHgCwQbQ1S z1Ul|%+Lc^WP#s!qJ&t-tLLX4tKCYO|x+?l{^{$2a$vscqWtN-Ox%$<+D5sCl?{bmg zFfmP?_1N?LwF8sMv)w`1Qa=erjW}Ek;Siz&Q%Wn?^r)@Avfk^%NyXv}diXFJc_Px> zXlY`K4-MgvEb~f)SD%0f6yj&%b_=FccyveM6j`VGizC43EHl|rEILy%i_A10*G;3- z3zft6{D2;6NWylyGRx=SE`P59SlOjJgk5IRy(>AZ#LqmAoUPEb3MFR|6%A(=KmFsx z?+XC=qyi@uGdIO6zG5i+o#&=3P zF2D*dBx)6Zk1`{1`x{|CId%1vm8w(jtMbKZ&~|yO?%}64G>&f9UA9olqGnHhuYkK+4*|;zORq|DF1cQ zALYL;`lEcu$R_>0{~cG+Kz|?4d9ClRqyOv_S;ue-KD+HAUdWekW6&}49BonF;);VK zHq1nqwkUDbn=$%^^2Hu(Qy$L=4M!cF;GjwQVh@@y;}i#cKz4R`Z^N*+MZ9KRl;2UK znHf7;AD^1qLF=Bs)7B6_8rm>8{>oW)Mi1;;od^1q-_Y}>7!1iu-C#tDhUmr2_#U4S^t9D z#=!$T7jQU4;LD6)pr@ZG>^03f_+ovY+?x3n{gQM^PtQADfT$*1ZBA_ zjtjez6gG0EV0k=-c}*HSIs@m~$k2-;tHKkPc=%kX9VT~z-^V0wuY!Pli>8ji4(1C7 zEaL>g!nw00=fp7Dgw7bZEzPsKEtfOGrGS6K&#o73@>LI|@Kg9Qb_ZeXsNu zgB|LbZ&LYMhvj4bx2vyyv-H*PeWdGi!hU(}mF?+SqPenL`05Yj^-aryM?YG9LHo0n(KB zSdul-WI*tVJh!Nt@nA2zN}U3Y4)*9dOtfOTRH0ZLP&K`Xm%kHaC73FgcSSW&SYU*v zPQhP%9w5UI)54}&10}qfvy7DgAL+GM z=f`KZCZp3m)M4X=VCc!A_P*p2a6Nig!$xV3i6WumHcg}(sPKuJ8VrVA-mw!l_!=3s zt7AjuPQB&?nXFaV7l9R{LnCg_H}F5bUttdy;QI@{EO^{U1bn;i9ld_v8g_0)`+#Nf zogbR>enh^a-Q2sC@6$c``pW7+(CstIw_U#ie$5NLzQMaY|LHFBp~%?gH+ihtWFN>$ z;NT|kx}b~aibxOFG6zv1Dbuewxq{j6ni7&SvcUP9@}E~)D#?um8T%8h3WZ0=f6PKL zH~HPJOgzOb3kVm6=gA;uTV?i2QYQ0kQjVEvDM|@anM?LM23&ygpFgm|zr3Ewp3B_` z6@T>g<4?T1gD@iV+|7|?db*xz#U9&a+17>ej3-W}*z&z>$y!0|v&rf(pXjhYP@n-42T0ga)XkI?-QI`dec^uO%>`_-*z$0I)@A;nJzp3#q{GP9y-&6XJ^o@SR zIMyEj*xY{kZI5wzwkT&Tzbelcqn^9`JCNsi-Qv$91wMV3_u~RJFa*nQ8nHse^>^)f zKbx?bh?2r^lbEAA&jmEGx zmg&)%v5C?0x!vW({pE9);&5{kmdX2emoML4z5=iAVLaez+WeE=>IOQRGUQScz)o{J zxE}92lS^JZLSVlsrKRg-7=q3(78M2utFv$t!Yyxke5Q7FN(LOrh#iO->5nY?GR=>m zd(59AUwDo3l_R6RE1Fk@pF2)&7V1mR9}P9;`NGIA`21egw|k{Mel>Dud+VT~`3v;J zJ>Jq>?uzC=TA*M2-s&6m1w7~-=~mz0l{~%ihP*u8|EBiv*Q%XQ^!R>LE;PLImiFkk z(PqApx900>Ij^+eti9dGHSo54xk5J^l54-&9zGfhw)kOWhwZnhrs3yS^eFW z!p3!Iyb>ZzWa%57nCPJd)62JJ8=pVTMB#vhgIb2NhgF`-AYPbwf+t6Lx^){fyV$^a z(A_=iS3!)zqu|u#^5n)l9JnQ#WgsP$d0cbQZmhIxczBmphiHWG&yVNnc|yg7(CwAk zDN2kcs+1oqefevA-h{s5N&5X(eY=0r;ju0z_4{k|trg&}*Y6+IcfA1rgnoal;)C@6 zQojC+_4`1?4=KQ}*YBT`{rRTg(f>1oU%&4Ab=NQF>wl@>5uaqR0DqIi2)wcc}os z+r>Wai}hVEz;I^J{||jf z3h;YB!TY~k-_-*A3jO|UeY@U}uYXv-zewM~0{q4L{dM}T6yR^v?|-cCW&!>I{a$*a z_jBNl`Su^A-;e6MT!7!C-xu`VD8OH!-+xKp!8hgWe}jJSex9$-)dKwef`2yhy*Xcg zQ@>yIB=3K%0Dq`{zf9k?0(_r-zd_&fujT7Mrr)RZT`It*_4|wU-6+6+RKNeCz5}cI z`d_Qx->vUT0lxkgmn;56@P3^OVtp>Xtv$Je{$bb{5yS9Qr9R&?ifH&|9N=$U%SUXV8f{06pWSKTmw34h8zvG0=D$BD_&)g z4-27k&w&#Mj~sypX?oEEZ_|X@o^akXJw?-hv+{sMbF?}Sl`Zrd(FTPBRGpfNHJ-!>7sdb3_oL!3tE? za9~W3mfn=R0t!MJ>ge+TnV>7kiFi#$2`YJ}?jV_D;=*`Orj{|wAOcKZg*W9<*Bq}D zfL0)sBA%le?zei)gU`qN+t<)ZS*!?I*dXdGLP_LmoA!2_WlJ2JxzHTovLB0_HIz$98MPnNIFG}E(BIN^;# zd9nxYA8z~u_X32TjzXsjg`ly6>MmRKRJLdj%R={e@=E*n@>}C2B^>~y|L@khHPI^R zyt&;mK^y@d_2!I@MT-eW_i8TR+SK?N3dosC82eQC=ARjSr;v{E%_{6cn(dIDw$-zX zhXF=jCfS-`zR%2(L@?sMp)8y@VA__iqd)?y1Vrd#M#MgG@}F)}Ti@i=Tz#I7A=WN# zjo>Pi>D=iIZA(3K-a9M9>XS05hmhzysPpnp>FXyU;sq;&)n_P{g|$gDR+L>KUIkVB zEtW^NjrM58_Z%F*q*jyiK`;0lSF2a=&0;r8wvwZ>$B7%6i~8ocKO1?k@7FuUZ!C?U zm!2ci@s0gE(yhMllYX-McYU9a`~Fp>Ta}C7TeUNCiOWlakx}2}Klbq!er`y1zu)uy z$p7d4dfj{Sa>)Ao3wAZCp{4#sb{<{7=k=_q{-rR>RbMh*H>P1pq8(8(DQ`WGOO_m%eGh=MD084;Bs)5Gx@Cq%psHVu<|%8ve?#}v*GE;?I) zTFCAYpmCD38tjlmlUvkdmbZxQGoISmq*upwR4PMpjR2C1rLIBkXI+2jd@APAW}EvY z4AF7E7{-e(GdRoEd*npHbBdpO?AS%0$5QDavz8+(4j(3CMn=5eQiC|ilM_WxRa8Xi zpFdCf)B@lof8YG~Lbe?zmp;1%R{U zEFu_~Xq+s8f&lucpY?gL_DSzw=%f4p!1?&Y6;FF@GY=mT{DCUp|4$AN`E^V^6 zn>>6?@Q0~eLUa4fj{*A?^gf&|2Yp|7Ci1FHooZaSkD`R zU#$9Z?rG`#Q0YPe@e9fDK8)Jb-_daU;auS-t|Xb|COqL;NKh`&IuL`7he++AIV`rHr2wv|w^nNBJ7;z-qMh2Y3mDAPFpJbZ4R zF%Y*vf*XxC4klPm%leulX=l}8ycX-L$GQ$nF$wh)fT~Ac#Y8;2Z;9BJu{;Usj-Wrl<6Ph5)HSr(JE}g~ag+E&=G5>GRo?<7RPKnA$d)VLTUwP?VLK;b9YM zp|b*!5~&t!$nIgxwgFcLXafw19%hLNd7U>NtN}9h0kAtvBfNV+aWd^1Z!s8O$if|A z8dw=xzT3iEgooK&rNsBF{D#J;%toN&cah!vHfP7D7tH8EP8w+g4c;1EU%oTsQa@+J ze%JLUz8{9Xu-fJD*iY944|$^%Joej-LiyNli}RtF9@Y6U{5XpKS+@yZEY~VMJWMNn zU>(yJ=;Xn6w>K;0_?uY9ENWvJieVPO@X*qXz zn%FO&+NW0*&7HP~t?lmZMM)MriPWu7cly-3x@lEC%q%8o`RGW%{j9b~W^fH=SaB0P zl;K>CffGlAzMkG3_Vl36t3l6^IJZjwJW_zSORvGXsoQzAAVslv-zItfI*V6I^qs^l zPH(FG?rN!nxoD5;(RvDmE#K#^Js-E!+eoiDxasR;Wt)D4-lprm-rseVD-5UO1i zedN~t2zm@E-_jS)FFm>*bz$kTzpwfJG4hzL@leF?PSe}bqw7nK*R^f>5%lPOtoL_K z<#yViR{1wn?}g%5XIjvs`*Gh`dX)dw=~3IJA3={bZqkp&Ry+H9y?%Usd zeJu5TgX!@#$Lq#6{Rn#WU*`QS|Ht{IM_2!arN@(7&|^dWD6p~fmfTLhS`uCd_HI2d zf*#AtH}Ie5mmbUeE-XDJMUSGsWaRR#@eqVrYcpTukMFkh5MBqb*t#DUw-j z-B7f>lW+Hx7nUBsEqWB?tL3L`jfb6#saf9b=&>QZc0YCNegr*g%C~X%^GlDV{TG%V z2lx8^F;GC-z|~vhp^$yY$?fPda1Y1p>NfoddURdm{q4Tz`K8C^feTBI9}_(q^d;Z> zjitw`@Y?G2uSqg#;Z&l@@ov-)1qIxgX`Qy9xIln6IAL~P%;kn)MZ%2>X{hS`lH*VdJphx#j zo^POZe%HtP&0gwW}1mXvSpJkz6g^1{;N z1)@h$-tB(Q)_B-40opAP^tivz^AYu9snDOY>I-_T3Er=A?KZbvzO`E~EIr;VdTfS) zTa0t$uBFFz>tjQBT~a@~N89U9_qUy2e$_R0Vd+tvAAb??Mm4VRKPo?PXXAwFx5r1T z&>z$MNMW}_2V)u3rWq2e+OWZ@%uT_*jJA78B?u?BfXHfmM$2Pbj^SAuyl|CxEW3|r zJvAAKc!>9Ne1<(kzwUt}-sp(#rNh2uMDQYBis|UJDSWbgXGwA*7uT+?Fvuqz@8Xl7qeFbwl78j@W@tD^+kfZm01#L%uIZe4k9kGmZg z@=vBFmjzpQxB_RZ?wK2%Jyq$s0gWjz8W8ZH30|5LH0}*`& zy0@lJ{{tOfq)*txuIU~-=)2kGeZAAKZedBA8K`Ax!7c|qF8i3rEr?;nH;a~G+IGRZ z&m!p2y4tcRfv?R+ZH=#$M>k&&F%P%<2Hz{@o0zNC&YtFr!iW$614VGEoG%PbEh9^U zqC@z_O&8t2hjxbvcC0oAi}2cr>zQ7n3O+=LDPXR>XGalx8eGebZ)woF7?V@j%~hGh zb72JHCoAQx@wYB`alRF5Ye@2i$!+kHWJ&N7n?$<0zzl42Q;dZaTQKIFuF~eyy{bzI z-pUo)_<BC1UNJNO80+ODFr@{<_nP?O=^ewS(HCmqX z%?$9840krado*)%bq=qATI>^8dm3qa>3#1HPm~yC#21x?aS4QGH#N^nEpkL% zjw+K`G2aVO`9dM58f>!GzYi z5R2xdLCzo5CUe3fL*rmXlW&A?L@b(E>poj@O(mt$CwdWxnQWA?8X*ggpRSVOau(!z zlUW~Yy0_iw`gmmA1M8cgOe$TWEv_vDcfF{j}Fv`afkdevv zm*7Ase8*I6m;x4qp>c`qEuY-Y@4oU$IujwL(n(CKY1?h= zDLx4)nR1OJXasK0&Eq|BxD~-?$0pVuL_pKR=Sdu5L9$Ox5oSx8PV}*-K>!%S8qJWq zq&(nxid1NkNd3DA@fvgM}Ra_J5UPY zNrywoF(34_j!0gW^i1S&j}rWvJhm`~AZGIm^l0+_ARL+#t)0fXHq;h&ac7mZoWQ~bCK>>ce)=TRKm;x^gB6y4CLK8&7&;5IFT~)U80f6 z=igEzlg%oP4D~HKno|)YH4Hy{clZ0plr;N1wGUZ}3r6d4>AJ1)wRye6i}(utOilN+ zv7X!2&un*oM_fX9>dj{)E;4JLxr1#gM}q8wIEEnh9VSi!;qwPIh|00R>X>^urU+pP zY|0$^_u#F;8q^~Brx>Ce2X>dQO~bs|lAv4PXdPiKdJy0k4rSE!o#R|TV1F+1&ubCm ziYqzsOSPWZcFYB&g$g%C%&ux3q3NoaAm|4+2zR&!hy$>U1tc|jLu@Bo9E2?J~ z^4jnC+VA-8>rLuPSDO~y-l(vDH~xnT_+>#VNT(nv9l&B#|`?1zI}ufOs$w_bm1 zx|iSS`g3&Z0YdDR2yIcRlb7L8V~(htPcd7u>ru3d6DLtGafOrKD3QGAnmW~6l~{3f zGOj{99$83BIzl@QRS}%)v8~h-nLGRyM|95}!~wwRn*?0HHPJPgMOr3&tm!LZ4lftQRhSAxSR&-fE%t1&A&aHD4U zPQx&XfUG$YH-~lXs@(rw-e&HQNPHD@&rZUtTT@^WS+`-$*X3Kbp08cH2QTgyMf?}j zu^+rcaWsnXp!cTkmt#J(OYb8l)?l`tMUYx5U%)Yq2#|j0SxZc2+YJBa?&s#myBhbi z!pBGf9{mYzm^1U3M$@EP!T4sv07 zehSYDmFFw5YVCC<^?zkNKfdUH78lL_z798iV&(Jp6cjmuaSl6ZW4cub9DaJ5o{Q{99+j}MU&_-&{JrlIPl1>Eme^Bsu3p2*s)jd`0HCZ{hgvf8 z6W%?g{LsUR4~{o0$&Ja~wi@DJ7EkyQrO|~NF$r{%Nn#wDOJHE8=Yv#;krLflRxT=I zFL%)+Wbgf@^s=*uic+3MLw01h`!8kB?Q>~uU&*x?81ikIK%SYw#Q1JQ+1oT^FH}&P zoJ{J-ww6ayzLG699X%5#`)@TTczh{oPMqAU^j@Y(ljI`7?ixU~%56>`{Bd#?M=|?e zx|e^ExWt}CVW3hR2k$Ao@mJ)Zz!=zD25E>RwkK9Y-I*f_&WqtP#R1d$ zmcTzylb85|l&F~=VURtSFux%BAh6`BWFnCk4j=PHfQ6F@8re4Q{=hPpW^Su^v7l2(f=T~=jc|3 zb)_T!;AtP{roJmvo({NOD^svWQ1_V`>?oKycDsoX53!@*X?Pr2v=M+A+C$Nmb5uj& z1-lv;;w-~VPe(N=yR6Rgq=D!5Y71jnRB0uY4NoCF1RA8wvoIUU-8l3!JPvjc-obXg zchv17N1o^XzK1%#e36g)Yoh1!8Hb0wu>N3&zk1Be4^BHg_UH0L9DdKsWhXw9FTW=E zMS|A~@UDk?`M_hVZ;Y$q!CqXMo}yOy8bb>8fq{<%O9f10d)gA!uJ|LJ@Ca~_OLZt% z4sNnZOk-AT9~qOATBwnXz>Gn|qO8VppRxXC^Mmd3h2TU<(^$?5T7MvPy3FeW8KU^$ zp&qlMS*VYm;`tg!-H8g6YER7c$TE*6Z0y}7YE{2j&e(SZi{|4uSmV3-5CFDmoI(o z3SUoaS|4F|w)Cj>*2~ao%oROl1+D}`7wAA|DpY1n)v33y^7sOM$SGeD@E_MLaauK@uYB^x*{O3D01CUd zsWre8v*l63n?^LN`Z%K71AAi?nC9RG<6@N|6Hryo|0buaG$ny>X-tpQU;=T7@Sp-N zohT!5V$bHfVR5OL&AWl5y+F)ULLvfrHM!1PFTDsK0%K!{xeBF>X{|=}B7zU5gi8Id zv<()}P+OO)5vN|}>?k$~T|y=W=MXIj^viZkT421)JU=Y*c?ANHLPw4c1!+qqb%JN* zc|QHMzl0pahpxMUM75(V=EPiO()TXw_98Zx8Ezt@*us*USnSC4N3+F%q<9onm^g}D z%#kh=?L`_>ovovPyV=j7!^fY2!^He}AB(7?UJ}O#=)_3eOvjH59eKv#d+8D$YLlJC&*b*ly)4(03HrlZnOYUEsQFvBu%C-0<)qT^E<3l$#RL?NI zE_xF`SXZD+rZE~E&W|IPS zCt|jbJbH~)5EpVX?zlCQzG5v0p_F0FFH?`^F~d6yRO+Fe2G4L4Y|M$Am z_lFh1Lmpcd{QiP(6v}r$*2_Oc@a5;{<+;JK!yha7$oJ*jUlIIC(f$ka<;#!v^8JE$ ze}BGw?P7;tBlt!EKKKNOKRw!ip_dPNwERSeKQr1FJn%Cj_;Up>FXh``6?|6kRl$?` zpXBu~3ce|Lf?vT!rk0;(>=|eMUWoCS00ow6TZ!{S%ni(l2(%Y_@sZ@p@#&Stu_~+t zkHi#`K;|3t6MV<#;h6Icri7REmiFwy^WAf%&yR+T1%cg<+QyaD{K}Lf)pxZO7LAQ0`QwM=h$Sx0hPqccs!t5r3jkC@{wt@Rn#+Cdnc%r0=dS z-z0mI$~+Ci?T&pqO9E%Iso0W|+RO2D2?R?((Pc6wB*g>Up}FDP6JeP*qI`1dX2Ve$ zQhn3}ei!EzsNGLMqneeFr~<83VS3NIe9xEIVtli+>2w^;NRXqcAwS5PkpWu}A&Usz z>(hdS)R5HWQBGsG0*=QjraCqujFNyTM?pe)gW(jKm#Bp*u+3H`Ct>=8;$~EU9o&m! zc`VGHnXR6kjhV%5ESn$pnvey|ViYF>l;X&^Ve*nd=Lt;{7c_0nXqOcS#hM#Fi%Xt` z+VJE=&*X%k=qE}gV<4<>((WLzQqRs!;axLR)~ENj8i{kRUYD2Rj6ppYr01zw%t1z~ zADg4A3}-nc3v?F4!4mh@vG{2KMlE&?4>uI1HTnR+p1s6CGO>N_0OarY;b>T$-7_{_ z9j6UltXT9f+4Y;Q+R5qBQ^}G&2;|^6FWHT#M00+wq2R_-`W!C^V4{U$?2V~h!Hiwn zV+r0OqZ|;XqLkx!C`$Ta+%C=q=pgm^JQFsnBU8wRu1s`VNuMt3+iVQ zvxLK`09}f;n+{v2Q38^_AfvW%{H!UIF)Al}V1A8{qxJq^1rBj7OSM3cwn_~WLYle6 z1Cy_{?`PuuupXD|LXWbs$J4FK6@Nc5eB`=k3=Qvxl^;(ri?vF5 z4EF^k{(k7l@%;#54a0dT-4^YqgHOXxm|JsTxH!B_K(U4}+RS|I4Nu=+Htvx9_4wiI z5ed0+YJtWnY{K#$x$YPnoUE4ZiMk0qJXovr8t8_jsHVO+GghTO7?bpj{e0rsLH-Wj z1C%HA96EN4J*?tNn_b}9XFqLOAZGB9bNlh;r{On$!%;u0KAQHfC9@ zG5a}bEcyKw`#sZG0zqS#C`n`Ht^wyz+B0AwTDIPX#*Ym>Ep6P3SnL0fy*B}j>#FX? z@5oN#D4R%GoDg7004a{GjKk6p8ftk_tl&jRavZiwvNW>QNSf)46x)3N@9WS)aexF- zHnSuVOTj=XVh=5(q6K0IDS{MmS{6ZA3}q3}#Uw5Kf4{T5dGBe)lCx0yeaSLU_ny0+ zd+)jDoO|xM5+BuG1zatFSoH>K+|k~jRwSbMt4q?VWAU-hrZ`<;KmgQ0#}r zrtWUn4(InW^&S|M;K`2SQw_j0X@!C@RT_U}jPZgjb8 z!{&~wSZ>r3_O~>!2jY^XSOV%;&Qef^blbL{K+loBds|y)_vY=sve9Gg9b^4PbjfH- zV|P#Q*6kZN@!PR&J3kvYUB!=}n16tD@B?DOPj|<2C2<=Sc#PQUe{7IH8rwUzZ0c?6 z>FMfNzoTbU@2bnPJ7LaI*b6%z(%tAG)T%ZxtuLbH2_h!+bPz`P;s&){R>*}_``3Fe zRsBisx}^SM>SEm&8lGt2z}KV$IA4L+5EhfB2lc7uoOlleOhzRlpp6nxU)R~dXR z1)nqc3k=?QL$dtblePZz{+kYSf5N`o0)Hr^uHba#fcTj z90^_|DwXX6PjX_#CHR-9s0e>#W=^m`VSHE;+e5bJ#PX9x(snRE`J@xdF9yQKR3*D3 z?E#B*Ld8Yw7|K%7LHJ~{Y~0d}Stns^ma{&JF%Tg9E&v!e@+#%lfjw9Ucs@A3hEAY7 zKcG`~T<9?Q-$Zd?LtzZ3ERbGgEky01kcJmmC`@>BVd9W&UQ^n;PycJyRxOpEpErI! zJVoh*^YfFxyEMA-l*^T_Z?bRSR?T;6969*A=K1Nh{Ux4{N8$@GLaWHJ;Uf5U8i4a) zL-m5HQKOO)|BvIq01U|3AQZP?E^TAd%MpSX#-zZ|AoSJeViUkPselXX9 z9z-qTF@z`y&ALl;$Yzo+wX%7t9#~_?dC%bXN*A4$SN4xhP|>oMc7lh-l;9uGCP*9TJo#x)W2%kaJ=vCx{rgAoFzI-<8#j*aPM3YRb~zA(bs+P)ygmUdCmOO zb^ZR*_=)KheDX4*69x~j(fm$tI-jBNGcHrQP)Wh34gP3@H@!BQKm4BNZ!!3!!Tr3b zXz*4q|8=SSmuvo~8a(^@B)s@ch5x?6XHxLW?<@QYum4~&|GISw-|F?hLE+xMT${ps z3_fpg$4}pSg}=byeQ!#ZpKDk6kilmR?&CAlq3{ud=iaRO9p1D>;ny0xn1Xj2{7(&D zNx`QLKI!!v+}l5I@DzDp5VW~TGcsD2r0JyV?qr&}E?;Ik1Z-d4DH4sl$Z>LtjZhDP zjXt}0f`!Go?^;(XP-t187CV59%0@fDcp7*trGXndcjz+2;*ZQBpn>xpL^a8_A-fd= z(n^Zhc{V9Aw>Ya@ly@K%d#Jw$$1wplDta+6O!Wz4s{MfNIE>H+tM-~w1mA`eL=TKy z(>rWB{zcI(Xtu@*Z#*;%k|71+mjwYsT0WFjvGPHvNDk!;LE5&Yl5}cB?S&B8azf2T zhQbIg76T=;7gp@R8HEjVWG9vEKzSseFSgiBLX$W0Br&F$Rn@H$X=M&rqNO*js#_i! z2Y^@mYR+X*NWmQ3reoB`1Vd+=@AIq%+7-i_)%a+yZbSG38zK;lFZL+;gS(){438}^ zgK>ipWI&OUY_DhB?|%%J2g~E=yfc$ld2Hq?7oxgd&5?mwPmRJp$lMilJA^Mqm3>8FB3b$WpDtIh$L z6Pm&}x8`mLLs!DuGxxOY+NWK1$)p8(~`5NxUQhb<;x$ zNl;KqVZMHM2gG9a~)0zAWi|(6eM`fxPP32 zna>`UL@v93WL*ACEbu6m+2Tf%1hZjCrU=PN|2QsW+=q$I<1_5Cq`R=m+0o^z->>;1ms&u^ARTi4Sgjzys1a7i zPkc@``y5JRVrFM@m|EDtAaa;jBXsX;ZG7TrmU0tBGBP93!^Oeb=jCvT_>vbO*&rk( zY@{|`sQNfLp1hVhHfOV&v6E$6E_uotl33+5V3u679(Z$nGIMQ3b42W`o9?MkXS!~h z!BDQQo9=1SiWlObl*CPE*U%7;;Y5px4GzWhXR})<*;4bl->aC@z!10=%?B{8!xq)`T#_ z8zP$#U$v12C=yZu!Bu^1SW4z`Us2YzQ+~K+=q0$Zv9ljfTvzG3tXo2im3i=1bhgD_ zNyargqdj<0_MsK|(29hp@_*fm9DgAwCSHcdC2H7t_K)BxcClY9!Bnmq!9BdnRtc?@ z9p1FKP}<^J10C`-LXDmuyLPx#7<*oG&vTn!&?@wreU-^M}N7c(CY-TQLjg~^P@2$ z*eKS7m69$1%yt^`RF^@!MBM9EJs(K)Ueu{VFI&~xxPhnt!n+)&UUC9_mfn@ZGOpQG z(4nj{^8q2zsX-Lx0;**70)@6wRRR1)jPdF$T|$cKUu00%m^`a5;o=C!0c(RCJ@&l9 zcwuaKAf|(9Y~1Rx$|OK$fSVZzm%DMb6Ue1ISL66h%OaaVqKHnrL?U|tW&(9TIAZ}` zU@tQ<>YR&ReV~Ae&Xv~49f+(edRhbQScZDVIe=bpGBpwQ8vwW!k>4}8Fnqhf0qz;? zFPV`dG&8s&2ptnH6b%)`+=%u%CE38>u@)vlS73nS&bp1Ks?Ko9A91)U2mSHysa{n> zA^3UC_nxWoKe6x0zpvpl?7Paom)LikeXp|bHTEsp_d5Gd+V_xsr|tVy`+n2D_u6;) zI<5Ej?R$lN^Y$&+*W2%3*Drdw-uK_^ylQfr>N&mt(-y9mFCE{l3I`dw&h6bDSL<8` zqpm5xXYE|~&ZK^}xLxa=H~754UH>{`@Ouqjd~Y&;Q>W%%)@I}QS4nuE!A~=I?tMx4 ztijX$Nr!R%GM>l5&1&VJs-9mo+?s8JXnQRf%ksrA^%0-JvY4Y=SXeOesi$j<6Sp|wXopFim!iCVL%33@I!8OQ3UsfWi}`p*7SqeaD}r$ z!)2JW#jz2>*hue)kXtNn&%4#6E#4Y=`%v>S?YS2`jGnn znR>R)EBBLH+^J!o7fm13c~rFTtbHBcgFRyyhp+H=h5Z&ZGt!s4!8s=s9BAT(9=9dn zIp0637VN|_w{N%whMx;4AFzGmI;Y#DVlT79O>|xN2(1P~)225->BPdwU&qDUvwMc& z$N+X*a)w9D^~0GTb^mg_g}s5dz&p0D$5|IP+HrdD6K}^%iUTmrx~Q=#$ZKm`VTn(- z<1k_7Jr-`fP<$X023q!GT&?AF6OVCeqqxx*$vBv;@VbbN z8CB54PCXkUGn%`pRKi5iTujGy?2fwxvjA6XK|-4h zFeFZ*71nz+UZ5fN`U%{10B2`S(?&^ab_s+?+x0-rxEQB7d7I$-}>Z3H~tS*bf| zCyL?na2JMzVQ$`0+|JH^czD$6D3PIO)FxwqxsHhta+2`Qjl%RVW|zyLAUL2_bX^Ml zanzSCzzd_^dnzlmaN#9wDd-4GI$B=!Wfx!YUI*Fx9$9C$u zWcGNcEwd0twvHF-c8jJUOC^b{B0E)p4NQ_TQZ<~8zG%KU;r*zl%-)myV87zHvj=AF zN~NPydyv_rj|jAY9*Lnd+qkK{ZO4|L-t{}$+i@paEG%IjkZqIM&$A7>xDqOWdi@@d zq6XvqLaPMKGTWtu4oW4*9g8A~vz6BBjYZ2iU17?v=103mu93o8us0QUiB~N(p)R*V z>KTVypdl9J*S#XWiPQ7<*}hQuxYGTK0j5*?f~QY^1&7t^DA2#4T`)R;X7Tdo62v6! z5b$t0jS+k%3ZG$zRk)H1_c|H_N0)oSgXb*-&bFK%8oZo#g%Be#Uip%;C~~`UyX+sR zP?oqUovZW;AE&6|euQ3|CQ6Wk=xa&HxoNPV7{?5w7K@aR)0SfgV(UZ52?whm z5CfvW*gw99wi!MYSQcZ=V)o4#Kf=J|A)jA0fQ-%~rFNKBW3oxN#QfPPC)hDTBW4X< zG!!8W``or{n4_TA;vlXy+X4|%&A;Lqu#{w{aQh%ZrQJkA6LC;X--aMkoMq;{8F@4r zT`JMdp$2iq3J{Ys<-!y1({hM~7;qowRtPPzVNJ-X%O^TrHT9U$6UQ1Cymp^d-B*ch zJD5C{Sp8@+nebh{XOTxB@nOj{;zF5pRv`Z5)D}!ucJtn5$>!Tz3!eRej}hIUZ5?ru zz{sY5gk|&e7oL5}@CVhrPxB`H#d$%pHDbEjjK{=igtJbmOKs;l@GVL|v8R=B7fvr- zn3Rr1Vh%#N_fSX7?F$E$VtCITgIEGpN{l@$gdp6?*ciFn(G{_hj>WsQ2fYJ z#3X>K)^`CQox-vYkWT0bDzpztTty4638<%6zsrniZ-vl`gJ10A*vdU$i%bl0Lq?r} zay3ZEUNm|eO?2=)n7i$m+diUPTaMi-3xf9G<_cfg(kaJOaG?YL;a&_TYt)z43q?Ux zJ^JPJkbMF)`*Qy$>wnzGFLfw(#b_%A5hD$HWdGnI=KcDokuzWaSup2u(OGw^KQD5qw2ijpyxK$B%|=cXu^r1ot1*dyr5&Cdw^8VggeO_L z!^pbe&2idcK)xNk@By4231BS^5S{iKZM zy%zz4EP!khmaUF+j3FS^$SJERtQ+pLHJ7THoa_o`NbR1_6e!zd*>HYnb0H`2@jFg4 zRMlAGPAbe8b8W?n5}bXI`HtD3jZiYl zbjkX4)X79j?MCWl+EZ|hHg9l!y64(F(Khm?GJ3a*kM^jC6lozUQ)j3BjZWNQPHe=z zN=><}#HNSMiU?~Jjx{Zu1xA7^$Z<*T!pcmWTwRx--v_C|8H zvD}&y9^`m*fs7ITLpH8~7(4h(Er)OCkywfDUHE>?4Dx>a@`Gz6Jg^5&1FR0Hj+9}|qjn`#Y|A2O3D z^Vmezwez!^I0Ap4RnX*q@Sn`qL;V zT)Ot@mzbV}Z(Crtt;(L?LG>4{`L9JgWJHz9;T;naJK0&qOZjja7AyN9f9hg}4LO7y zT9}jJNzRmry^WQ}R79%{lZp!T=GMQfaBUvNuqGpWQZ=Iq@OMP|i}1g*XCHI#YO|LlBXT0_d%U zMl~S>QryCZ#s&kjD7>np5fB$3h&aqPtN%EuS^qS&fH9{E6j>pg2!tysSs{IM!8i^Q z6B|yg2*iVO8KR*Ni=V2hqLjm;0~L9gWJAEiWSjToM~W>5+`z%Su(^@x^%*&*8rbbe z>4F5F6B1qbEfAyXdxLEZ`mkM%-9f1u+!Kp2sQN*}>O@Dl#6-{#MWgf)vzy3-Jji3; z=gZ;m^Qqe)k#2r|2{D+A*twimqU}{$3ECnqwnYZ>_F)9I$Qo_44HZim7o)K?47O&s zh}xQ~3-ekXb`$v&4iOn|5|E}XlGdRNa133epLBGY5O~h6Z z4-nh3a{QYwfv@pfC`7@6Hb*>wHCUH3X_$0^sz==>QWaS7C=gnEYn#_4#_k{p1?sQZ zZB=`YK>oE$Od!*W3Ra}$tDeuCoh#{JR@vuJjIM4SH^vK<1rj;AF(ON89ces96r3NP z9;rQ~Bx8cx=-Mi{MacGGy=?MYbf7JQJl*zT2xGa>NEBnVzZPm2=|xlzZp@=Ys;m$^8A7UL#e%yA?4pP|jS=H7Nl}ohsB9M^$1mCpu00hJOcy4b8EU=wj?T&u)KU%!v;ih$ypL}!v)H^N)xY=tqx3R zB$%XoE`e z7*1Qf^_WIXKyEH70EZfIGAfRx{3H%mJLCJ|Tqb(5$Mch9(R7W4#26Ptxb;h)fD=zG zy1zpXQ^G~Urew*zM5uO*OEEIhQ55;<7T63kA*mtX%i~^13GBjugjvp7+c5CX$Y_^^ zS>>pkqF1PF3*_6?RJeey?;YnaWOQh$;Sm+vBz6bIEQm|;T*T^%*T7pJ7$vPCCT{AC zk4TH2Nzz~mmbXmIe#P}$scP5TsYw@-OkumJoR=LAwj859l>+M`^DaFKw%TMpm zZa2G&XFX=gzN6D;BMd*@%Si$6vU8VIbofb~_*H+V@A#zC_h9YRI`t+hAg{#FkbonI zB_Lv0j=;7Yd}4PMm4Q$&n74Z{QAh_9T3pVjvo)c;j{O#o>GEXq$D5 zIOS$wB(zW?)0r|akf8_=Z4L}16?nqLIf8nBlap1I7F}*gm5uqsD@Ra@_{=gQF6Lh# z*qmQ_c+2e;4WU|`p7l;_qtI$ltnjVzB{&=F#uQ|`v; zvAEZw4#Uj*u$<|AGKB^%vH@t(s6J9z01olS%IGfT6TT1X_<=D&bb3j>gqTmj^ad+! zL9vaz#;9V#jll-fCr4vGn++dE@H8LV!ZoI^pK|T9NadG7 z|NG4hq1qfF?pD3bo$O_H27Xx|%?bLrQR5OnCN(%pt|t(MJRI-AxMg+YP?3zD;lRDY zVsTG!hcRALj1r~C~-V8&_(bn;Ox+yoyHISjAKIuACY?V!`rMVl4 zL<-CA-d%otGyDua^N-cesk7mvpJm%X_fGVw_HKKnSQGXM;c)fb=T`OiG{Jdq8V=aZ8vQ`x}Ht&6L1CPy+%hbEu_o zh-{*(*95j$RqUd7r0hxAS@m&c(Mf3>X}_q#b9B55dZs(LH7%}-yAZBg^d6Zh1i_`y zt+i<3V%3~{4V zXamSP^3puj$Z9y?{I8Gic%FV@_5IYOcjY>5O%(uHo7NU;uS8_aDTVT!c$vTl;S|hqB@_=J8 zx5PF^RU={LD3S=)`jveoo5;39AkzKat2S;Wby$`#NQw+vbVrtMlN~1alh#ts3ucZ)ik-hhBL zYdz=lSRPoz#DEV=isrbvqGjqR5tU1BFCRD}_YfNf@H~n3vb@?2(-}|3;=b0$yy^Os zQK^XusgNS=SfS=9vgRZC=x z!cL`<6EZbBgy};?U_F~fT+!pMW}Dn-jb#v(9~%N?1lUs8$AR`mhk0^EhvPwh)G@&I zDVBl}v4P~lSyhsSj42|z(dc1%rFlBULR!$S=*$}80*webrASAF>gb#_NfG&au(+g1 z@Y(R_Agng~HnO)L58Cb$MQ%(SBGz!A$rw2)kg)1_OuLG_Zlj7>&FPp>Wsn4_t8*@E z*4$XFxdqHWJ-F;1LwghWDLaDT@O?aqAlmT>UeHhM0xS~ejCj*g2uFk?@Rvu{3hkE=Zx=*__-G{vrLcoMJ?a+H@!&f|D?g^zNB#X z&lOT~j@MW3>+>)Tf2rXw9skizYgY=e{5{&ARCHMN=GywdTc4dQNA@?P-f3FOG6}~* z^u-mYvikVhrtR%G;giFT=mAYB^g>aC_&W9Wd3*azj&}U6GkN1ypTA#Dj&GmAfBjDF z@7!0CEYSkY~Pe6h}3}23t2shGI5%KGi#c+fSNnkHmC<~F*eGwq6KYo1t@0x7v-+<94ON4 zs2i0zSriQinEC|@0i4?XV{o}ov7yF^#PN><#R5eePSv1jBf)z5nVQO- z$6?-td$7@Ltg125Pz-wYI8YWGtC7Jl?<_5=c(55i3~cmz^?=hEB@{*8LuO2s&4X_= zJIbta7zpip?Zdzb$3UUy*TcZ{dWz`5x0361@&={1z7A);oumhouT;3xgIR++JuXfv z-08vm-J0Lw(*}>|@OP8-&%8?WJ3mk{xbp+kuU5G81M{i;O|Mb7@AsAOC)*!ht8m}% zr;aA!QwERr`yV9Xa|ZYQemVuuzD~>c{dPVD?=!gXx7i;i%bzy*yKLX77~JvalBRI&!sY^nm#I4P%RI4%yWf0kWqBeW}&uauk>!EsoozQrGrC zRtEEzV({4iI{YG{wT?*E{_ zw{x!RqgrCAy;FV|;%B6RQOo2=-0Y^^B$^dnKZflh*#%@!zwRQhIyb#5%C}Qbjn#s9 z7rBr)Zrlktq;=CtAUV#f!AmYOO{i@o-t90gK4I7rDT91sRgTvRprKJsu%!|`kXYGZ{tsp@d6 zY93aV00K2_u2wO1I;Xba4;l=}F6hQ~zlRuUU`$yb(;zo?Z`$;%-tJ93WQB9E-jDfs zi`4i!SPRtl&%7L-!l7SB>q_QtUTl!0$PGKXSmfF)-Wos;;|C0`u=bv=Hg!9aA%`pH zajZ;5mlTFKc?i0sMq#Gx*CyKQzfl>`c#Wuy1MCEFrtPNIRA>q33w13y%3b;W^o2(> zTY1WZ)4HpAI_|SgMnd^iYPUeWOpDwaYMc*jF#nzD@!LQ;CO2|jSxG(^v@9x4hP zCTLLcEI;9?vbM7AJUAzJ)}*ob(O!Hhsexrg#GJ_Wif;we0@Hi=z%wQ15uA9)`S zQy^dvgfdHmQpW~s?ASo^%YL%({2`G)rp6Zmk9kCbLt99HYUt;Wn_p=b_sQ142G-HH z3xs=nz_Q(x|_iDo2+zc4n2GZj7SfH`5$b1>QXI$aXME?@YBm@s~{ z^FG?4tyeQRC}nXr(Ld5F+rj0#nqe!!_le!cPi9JVjHL$qc2|s@c7F`Indly=?RI%) z-OrQq!u*ZO@3}lwOu^UPq;Qvarc&@pgF8NEQ}8*1yM8wJi)8&xH*5JW5A~(s>kRJl z;A9FuZE%-2XAJK0(!9YV{o%i9{SNP(()! zmwkukcX@j5zmoO$y;I>XZ-($F;p@GApZ}-zsoYjExZ~I1C%ay>p>}>xSMM9ii_0~? zr~AXLNjcEt7yEku)9HE)kLyx^>6BcV0zY^`vjggUy^cfWr#e1U_VtQg9_{>!%89cE zpSFCSuJ}eR$HVo$Ee4pJ*ZMqNq6uNbRcEug*6c z9@iyTLe}VCy?p;u$2(|dTjbI|c5{Y1!;@Cnh`;?7#kdJfIgzr7pQY*}0&Xo_6CYCkan6%> zVvO7(78NzSrV#RS$f&k^+p_B8yR$oH~u-@Su8!UikXSoQ;A{)02UXY zu7MF8_BhJTS(S-G+vvH1Nvbv&6gos`T!3z%30}ge3t#`ybh(u!TtkY{B*Y>VTNq z00*3$!)fy!Vg|Er19e(nwA?H!=Ai%_qz1666iVI(*2M?asf>}x-c>(T@#!nJd*A$fCP{83u@!^zMbnWg9y3lJ9u&l) zAl%+qTAAFVy{y{$MKcsmnb2aAbt9`R_Ns+2^>FB9)fCt@bhXTY_3{C9hPb149CKeR zVwPGp_NCVF8Mq{if7WKRt{sbNS|iDAW%|Om^p|9_n>ah&wl}MZ(^@}Y!AcsaSgmW< zJMPAr@iUG4qE912xyl|yjal3fSV>g1gCskgX0I_ht#V)WBgy*#x)z|MiI`3Lis%u7 z3oJR4r zUga>?pG+Iv<;TfSDctotb1C@zXB6)Gou(!&-}M*Mw<-Mhy#5q?*5Iyx3J*)kuZK0i zk@318Z*Mxmm+zx~BVEn|754ir#Y0Q$SGwNfyKCqBZM)y%3fC?y6TBFJmBATGs?sZ* zR1FVBs;S+8g#~t{pS)t#-4a(D*x#zZE_K1cXb~y7@*+}3dg=2$_n72-cYL}&b*2v7 z^|9H<*3R$x-pOojxa*7O>%iT~4H^){Wd zv~;QB>jvFEXznkK?yk`CJMHTkC;bom&KSJ!y_#?CefsU2wsKPG)4>B4F@0*XKM(jl zQme=5wdjdXgkHB9krqva-dfKKNiNfr2NDki%`Q6Wuj*cURIq~NB0d+?5ExdjRaYF^ z3cY=T#7gXip>t~QH@f{@q1fI+9+e!Li^2(i%eDNObH7-O-Y>SFEVdu``Cs^b9nUm9 z`tRNkod4>x_W6D?Z}f06dg=S=?8e&tyTA1MA$pvo5WgvU{GY$2^my_ECq|DQdy^m3 ze8mszciz4ZulIF&Jk|J{rN>?Jjz^2~zv}RXPkqG5-Q_h{=}0;5)ESb#vCx#jg_1_M zU&jkjUO~tdfm92wCReql2-FcMnH~P&AfIay_=9)Haf23G=ZO4Av|m*RJV#(-s#1FO zh#>Mm+9)Qfi?iB?;(-H1a3Q_5<+1Tll2LBZK` zY(t5^cv5FevC{zFC5h>R>g^}aU+3C&zNGmb=dY*hz@5L&T~Rx~^VidL;Lcy?HrLMY z^nSVy-069)L-VKiE0=Gk>%e`#%UxMJzwfuxb>J@l^lhn~e=+%{-a7Vp=a2igYWW_2 zU%%<`^>WTKy@%Tuc>MHf4@|vY-crBL&t`8?`d2w!+c9NdFQ=XyGWRi~yOyx>H_5Q) zPk*x(kv${X?+2ToRi|zzpnr%_Oeho8MV06uK{zAV0FiqG)tTaypawI$kT}r}l$23j z6Idau;dCC#5#@312u7WmyLGSlv;>8YQ++bIRf@zHzxu_!AvC2m_Jh_3oxgQ@P*30C z^x(IZ|8;uzVDYbu@z1_rOxMxJ_`wzT-zz)DqaP6=e22f^m1dbF0 zTsdkz+M&Ti?USgOWx%jJ4L5{si6={P-el*$wC9j_Ftp-4oI_T33~m~wSb?7_DtQu)S#Yx*o8T}EK?F72fN|qWt^lCH@>We2w-l<4U%#Aiyi?GHSMS(Mj@c+)0b{$Og?QZg1-X_lb-EFk zUwRB4<5Rr)-QU0E^w~#@Hw(k)3qH5;<2LS&z)kA$8IU(XQaTo z3W-_Qb!^C(Hf^y(2^RJ#ynRMLotU=f&xeU|0c1C@N|P~6+USC2mp*Y+=P=ybfs%$M zIG1$|#(jQs?i$gt8#(IlRBzXaL0P>?fSx-alg5YhKk0ZspGe0O-%efSK#{L58kuF< zV$6O<;MI$HQWWz?W5ooC+z-rK8``7g(9`>*E zvmW-Z%LyL#uggCk_HQKjc!Ygj|B;FguJ`cxzc#$g-cP)w{DaB^JFvk9eG%(ib=MyG zyM}|`=;1$-0M1-_Yg(Svs0zhO2k3}ce1Sm02Eu_W*-j1J|DCy&w)buD{A;y%6akYQ zJO|0lqoWgY>n&MYEjQhcAOHIK%*?3rcdoCR`lj-UPG9B??)sW_a|-wK=Iof}cleya zeLi%i;JI&Ues4#;?_Dpj`#qN5(@m%Hzr*fPO{UV#r_z1f%9~21D}H-v?eY5k>;3hx zfA6sQ=i&eEZ)897`TN$-&O4I%<}Li&Wfz!EHY;0D|>Z;yiAhr=Y;l97YeTj0ah_CWoe zY5|S?_&kuX3(tp#Q<|_pAJ_a*jCk6nufGy_ak3@!z7E}0^hyiv1>ltNdxe2F=M=+Z!gCjg^K@~WEZ+NKdnL=> z$G6WZiw(1vWOYcNz|}*^CNcULk8nml0=zdMmhJQ!sF#XWg*QBQZ9y)glP|~P;w8Ku zY~_?<(pLyG&sX{|ZR@#W3vI^M^NmIqnhHt!HgE8MGI+MAa6i9ox?AV_XAC}PaHo$s zgDO?esDVc9N z6|R#litc-UvfmGuzMKyVbZp-#Z*7-aoI&&V$832RnNc%poAC-#vu}I#HY@x>uNH#E z<11Hqz+QV3M&gEWmI!en zA#DNc-?;FhI63`9Hx_+tPMi}b4g}8EYR^ZroKW&!10EFBcjJV+gL@36bKt|^A%QRb zNzd)pmyS7JMQhX-xbXNIy#2A^wH}6p<<3J7!^tYZ!iZy5wPC7<;-sX0gLbVCJq#x= zl42FeIhG0>|2I4g$F)_Zgyc(j)fX#AhMqcBx%o-}^?SpZ8p5naaJ5p9OGCIp2R_7E zjj9Y4w|AcU-@0G;{@(N*-G5wu$^9RNJAaTfxXVXC{?5H3nLlfAm%}Gh@O1`vxqChZ z?=!gD8+2ZuEZ;Y3w{NQ$-0@ej{BDoj^txpJX@mRu;QUPr_x!U4_j>AmUA}aCW9Of| z9M5-y`I+@}Sp%fgHSSbC>`a4ST_;`Ie!0)m-QSPv{bp}geAFw??KtN49zUJ)ueqt? zr*pY_W|4H~7=FTAw7gFH)@$ct@oD^f`U{O8p799(zTo)%@MM)Grt|cRecgU!@*j2G z_4R5yDt*cJOs5L!+hutAC(YOSHT`D4uHRJh1;JY^W_lo5&x6Gecjs|~ix*M2OUF(~ zOg|pE0#v?Pv}p2Y1XzlV!>i9)~wGamA=oEzcv4_*x@=(KAs)EvErC}M3kxLC6*AorgyN*ju$yh)zgs}I_!uf+mb#afqf!O z(_yg4tkts;hO`=77_UylP5u(INfV+#^+q&yPwevN{_N@=Wfs2p=Vff62Gu#iNT&g( zZ1O|^21*Yf`{<5#7JDWGZf+gL*{UlLnXfm!Dv+iE`ivY3?D-ruaUW6 z^l|=v>c?Gw;tjgP%5B1SmN+n{$1kmn*Qfv3ET+I+Y>vwlT>Uk4R!0miI3yKYx;*t)$e5w6riI6 zPfo@=;leYPzJ~vo7<8fk#>LLxdah3TY4*ZgPv>F(I)CnA|2p68VgJ@U-;4NgPiSA~ zzf;k{`R;VQ^V{io=d;uC&R?hFoi9$uJ3pO{cRi`cKhOBE-2Ggqw>m%P1>4u}@ui{{ zoMU&(7KRrV+yS9@gSec}$h)G9iW8-J+~$|+iBRs$f+UlGC(5q6ts(6cJ|*(Csk$*J z)0xZa#|fLhLCTHXFRjbtO4!nr@i6rt&*!QZt*WN>c{BMQ<-a2N?nlbMx&OS$zf8jW zeynhxzkTmjxbwTy26y=~`@ST+_!G_V^JIEDS^m7iU49DhPv+14RP+0M%6>2jZ<<%Q z%g5_Jq;Qvy*ZoZ4(K`5Wvi@0v`+De1!LvWt{Jt)xQt+a|UA~-8!F}Gjf57ZVlkIc( zVqce&rarFu>!o)&X?BrxE+4M@#PQ3kS5G?L=R-RF>$WcUr2%hyVCqd5yJ*<_3C@0B z$2I$QZO1zMdj6vSVc(*`r;lnr2N!>s410X~yT>A$-jVG0)Vq@5biVr2!i2UZw+R215Raji)_j#w~$Qe_v!wEvH(6R;f8t9jkGOXKo*SQ|df}$6_fIaax8MKD z%6I*>Bc*cd68E{kU1B;f*uM4NhY7ad_x+ph)14<+{<{Cre0|53w$G=U6^d40^gfKe zBmO|Y4|8#EFQtp#-qzy&0W@M6{*TA8T@Co(zzoVi97n`iXz@?IaZl&`_nY*cnx=4p z_{;va{gX~tFZ{ycBF@wJPI9TGzcjE156%_)$M;;AUGvOr4CZb!8xwAa;t6o(h8NUm zIn*30r&-@1!{Y77Lt(J8h90q>1*;28s5(J>u-C(uXn1INK+~WoXzUPe=~}bxv^Ch* zPuG>up!u_M7%=7(woD$~OLpAf-;?L8wVPT6ihztMsJ4yQGd6=G z0oSvO4{$@+M1Op24F4i<(nIJ1vyDb1CQh?z1Rasd-Op7zH2Yay@6o*arLMEG!6!eL zg!kQ}@IQ9=?MZm{KNbFRgU{TNgopo9_-hPa{6Z2wY4Bx_(fK=*f@goF`ERuRl`kgq zhhHoF-3Fge!TSteZ{B-+`2~s}Kj&*QK!hg?Z~C;h)6=c2lkR_|%FEVCXVHs(peG*e zg|XoTRD8T?z{mdZTnv_y7!=7m&0bJ57Hjl(v{EtS z8yUMlOU*x)C33Y47O=Gq!ik|YCCg@r*-I&Qt`M8AxJaSo0IOA+hZV<_WZ8LXW{8ef zWx2B5T#{JW0N`0@eK{ra-rCIWVr|6qGQ+#a@Br~3AG;qOhaLuHL)XuH!*psI_GV0}GKkP>Fb4~y5eDxJBv3}hE0lH6M z>>BG0o?do3-r!;NaOl$OLl%Y3G%SZLNFh_;H@OsSx((77CYG*DbJ-}$S&;w44icO9 zx+W4VDdh8B-W9?#o#T5rNV?+nAW&wvP<f~rv9~-wZvZf>v)0m_f zuzVgFv=`%rau}A_o^oNLG>~eM##NOFG0Yf9nnsH8z_rO$7($6%jIpg=?k6_Vo{$c{ zS*K48Z1*@>mir*qG`0#yy2a=1oBg@MolhUL__x}3&ft!p zTP*&VeW!nsEI%`-^*+JAGb#9Li{EPB+`lI4f3C$}Z{KNyd;K?Be0n~l!>vUf|GVm> zf7vS)p3YbATsnR3?WQ`f$!mYp<#^cJebXZ8{QU0&i==b8>Gnm^`8&~fE|SjMxfs44 zHl+PL$G)EaL!YUQ$2(K$d>sDC;=Nw~`g-*+)i3@xzdk?Xakc(_+a7Ia?vx~bDW<}; z^2Xyf=66l(b}|ZT2jeKP>!bNmC_eOA6YM6qb1)!GAqcAOlMxM?wsuq+)$YRQ!So7k z*WVa?Dh1D;s_?@G?>jA-zi9A(H2BQv3itU_Y}EXB|1XW7JVU>Zzv5{M|Dok?Ix|^* z)9DKTsl(4o!Yc+}Hf(rK!8^~;{O1~cDg~c2cpTTY{suoqlw%uhxp2)h$wk2=A*R%p z@fej6@KM6{XjvkrMTg7A3F23Ib)($s)2C)d%(BV{M)Lh7sWM+~xeza>Fs!34cW0J9 z@>*ao8BS>=ilY*61h2O=HeP{a5{(r}5C>9=7wpnV^_i9yo;h6x_5sX>l(q|ExGqsnI!u@d_3F|t3H>ji- zgeDWLmZDPHSDj0&nx$w{qlItt30j-dc+1#O3G#-Z_VTspdAB@p!g}MZ^@3U2n(gK@ zF(WY6WDWKvk=vU#qGBl*eqW%61q*0`P!*p@0R#!j0`1aPBwL7_Mb7hXd?n>^8zdL6 zWQl00Wwv4QnHyW!(Q@EC=#>YTbX{N)S7$`3r;B!!&9IJwMP9$(@AL4!i*}z0VA>o} z>Ug7Jj0D|`;1C=w5naF>hjtsTWE8_#Q;3$OEw&Ud%eGj_MwwWwQWc<$`?>EyoEGuFW7A~8pP3^` z{(|N3pKzA$GYc}*iMZwub-$`KC-=i~i?5R{ie74aPqX$;r`k8yr0vZ792m!{307AYX>^D_;1gY#gUs zlH(f<;39wUtdalpU8wmrRQ;_t{*Ssw=hdavr2oBtEq6}yzBQxo;W|HO?0cf6WLMS3 z--(v9So(V7@fsVCwEx@1%6rh@_j5d&9+9LM)2Z-c?VkS)jfeY-=(GBKd{)_b_|d3jg-B^_|t$_we<7*EO_tw{`iy8@tx`ox8rfZAV*iMR!||WZr=UNP3=TFHa=TWmr7O~owGfO_#4dR@G{kHSkcTICp+md#riui_@8|4s9XOo9*6I zoXa4^%B~G)q61c9=CJ=OyVs+qlNk(6O9aevwg8yL_-Bh(14SG1Ue zwO7u}atIN_)GJU4VOMl_JQs~Bc6Q~CX3%aaO`A|WoI&C3D7dq01OD|Ep;E-PpgoRX z1U+hBEFt>DWL>#*WDey@WUWG{GZ>fHkoYW+u5PR>TY<^giDqq$T-q1BV;g!JaECE1HT^8LXp&%aBK>8Ngi|x;J;{4iOLdHyyvPixVnK1hQKw zYZDPCNZ!|dg;c$i5OZaVeKqsdhjn6tY?KbhbL!s$>)DuU&BAor%HQVr`-0DZjD&9A2%ze$0u?qowxye|VW#u}YLSW6j~;p0=Lcq>w?ZpcbW< zq?lNjB!)siNg9edj1-o%|BDn+2>E1*SC(OGLxJ2MF2(X`!qDdM|H>V?0~utjlW3(- z#TM+48QuL7q#`%P*0HdaD3o>PrZYW@7v=R?Va$w{kRC~4+~{Uea)LO;6HPS~XO~r$ zbDO*ry&$b`@y$}`8TKWhNdLFqR(Ar))#-b|L8F1u=57R;dz+Mz!|r-U@o1*+kpiil z1Vn;-uJ7KgjYVfRcIOUeiZjcIy~o)CUHLojIKqbzvTXN6|?c?*ezBCUR$scOr?9*hETB zD-AUjukPmD zD5y@bekm3ZSj8RjsRHVPX81@g<$G)y7XK+INQW`bp^(*!^DxBJisCV!wBV7j-?#T% z$##S9L&aD|l~bC!hzk5^MIv3#2BhPx$VuAG#Us`s>DtwT8B(?b8L&=QBR2vfEP(Lw z-@ZS|_&n<@&YnanL)z8Um7C!l(*@2&tX1y7YC-~z%Vx~&TL-BBYhH!ahD!F0SD z)2jt!Iwu{hH60elMKh57@MV1^=k9bv?P*pc$2v@?+=0`j8$=DVa{egY1d`Z006Cpe z2~b8ZdR9mP$(cw-92d@bMJuq;j!h@FT#<{VZ0_n1Q3IO*H!|>*HRXf(hKP!A4S{5F z3`oMSv_gg1SFRICt{6RX1XWG}1+G$A(&8?YlspMW{R)(NbQyXh8>AJSLm1m8C@v?P z^f>lqQx^O$ITys%N?9xJ{^hP!;%{*rgc%YZ`9F;@jlZ&Tb(69nm@+wx(cH4inOI;5 zwdfFG%cHoalak_V6DJF3pNX-$P?t<&eL^hx%e8^+p|~!_jo|Ovdm_X}G#vj|u($JH zw%f%jtQR9AoOD?Jxtr$>KD2?Bt|#|o^bBQ#c^{u%$RtYj`Jj=2Oh`Ed4% z6Es?SeaBl1#lxqQ=R@vWPW5!f*+$OvuJxG8l~XZwE01jArqzj}xsm38V{)inn~*VU z>x`?QsW|g!FXa9#zv9tLDkp*BQjODh_La}w(swQdNi4T^kx--=U@p5hlJmxrqYk!v z>s3$^W%{0s33inbGb~QhHdip!ZcuUdEc6KUsW?x1bv26GCQJo83Vwn8M7;dHj;b&a z%jGWrRf{ano}BD>aqhHagr_YY;#}n55Od%hQTkLy1TgOBtf&jp7+|@nI$V+$_5aSd zIQw;q4NYL&7W=pDI4Q7WRiQhNm$JR`e~=W(v0wiIW>j%S-#Oq~E2pj~UQM!(e<5I0 z2LR)S-G>`vajN0Dxygp-UV#yw1uu4 z6epwJv-sjcNV_s)_DPLowK`_q+`g;qxci;`BF@zDJS@Zmv$dBG#|W#UrSxcx)|L>1Cjpjo460dx(3^`^^v!CRIst%fqU< ztuEW#C7ypP`Dy{jU{c0 zXuAQL?OkXA^#Q>}m_%msk&uRDaJ?Y((fW6wAtGqrFYA$~6|GM7Y>#+C+q*aP@XTU% zVRp8UMR+HvR`*PL5Qd3Xtt}VvHTWX4VT;DkQ<8`mHtkRQ8txKtQp{1AK~gvz1coowqJLW$$o4wXY?_ORYy z`E>@-BLld>A!+p%P^e5Yb(HvMHSxN^{Ud{bOzi621!qS2QkXf<-MCY?Xm9eqH{E7;3kcB4Fg4cwoUaA$<^O%lKBh51r}!Ict3#|kX7oR#2cfB72R*~l}d zMPu@#1I7I;jd3}T8^zND9(k!mmhpIFp^T=&sS%T|)7Y^h9u*iL^0b>ZHW}Hek$iuc zIj`1WG#Equ!y}CEv-nc1L3=!IEEZXm$nnBRVXq*pyw4&gibaj6WF+R=a;kX;BtE}y zSQ;|P5U#qEBy>V)!94V4N7Y2Ca8d4Cl{%GAd+qA(x> zS7~6is1$QMk0Fxc4=+$J_G6lG|CqF>auU%%zrif}fQHP;FJmSpW@0Rkx`P_Wl`$qA znUV-`7Rx+`7{owG1=AkbE4{qMg8ALU5}xreUrL0BOJqMBMalG@_27i&IAUQdV9tZ3 z0xp8%x;BeA8jmb5m~Zn2hHu|drH98Xh7Q5{uiecuDkp0%Mhd%i|2SX~MXPx-3UhA^ z<%1s9c20S)sNq8%E)5q-@Gi$J(;nw5`<5sIE}NKQCW^4`AGU~++|Ol_S&y0EZCl11 zu^70ZWN^-c>}_FauwSY^YLQm#yaY#?M9I}LM(o*NRO(te1tGdF-Ayzr@sy~-fG+Pz z34yL?#||=h4g8L?{wWU>1+j-11Pc&R`Du%=#dympn6b_x00ROYgo`DXbyz~fW3m!v zJ)rdGhy;bF!E%(zGZ#fwdv?^~u8{>huOVsKG5OoqS%r+m2$_=jIy=DFQMf+B##k!`(l9P%?;Q~2PD=z>k3G6~cyLsZ zFyld6Fcu_F!gkDB7`qpPN2)=1>w+W3(%9Ok5ilo!YitKQ8if>_^BNu+)*c+w;Fxa3 zl~aj@YrN+NBnS^sf(8i`1_iwbB``5&uqg)d=Cic(kOW40N8obX5jD*?-xF`~fVODH zgQ-p8u*Vx!o@F>rl#gfxyg*5}B{W==z)=Yl_7X5Je>*)srXezK1XdbZC>?ykWgs1` z@@_F`mMo?N3xHfJf{XZUQ=g^sdx&^>cM!mhZX?6+UW(5GMrxa z%W}MB0gS^qxVK+hJhK4oki!WG5HT)IoQ+583rlSIk$ALolymV&?$zeHml=-6Vb|or zb4OLor$K}H5xn`!T*ne1qd1k*VuLk`HM%d3wgU^HjUJ&qo1Rtpf)*XMY3f@1Q zACVG|N*t!&!1#hL%`0qd(3#9*8ZqwNPUQ?X2Q$}p-2)bOj>3b{CVS9gs+`J{#bDx5 zc1I@;S&Z`~(@|LYl3P3+V?1U&&KZxx7E$u1&PEZ=cX>p_c+6Rhu^C4#=p2Owuf=1I zZ00cu5AW_Dpi5ZBRL&$e5HrG8>2#GHusFI~m3A^B=Xa*EVlq z6A+JCaJ-<4>n!4892|i%;!$uy!jlr-Kk94oU@WZ5WlCd|t3RXx>@zBrOj{UE4cYWt z7#tq}{Vnd+IWnU$n3^7QSYnK`ne~8Bnj;d52?=u&F}~l|@=*!D(D;veh9;bZ9g~o! ztWYU4ffqMaSU8|T@8x7QsGU5h5nMq^0jDH_``4Jsw1*huvtrrRq9I@lh>3+zmN)WbUV^A;R(2I-hZ*xac+jEx*9^DPx-KM;jA z|D=U|?i{qRO_r%BIJ!$lS|9*})VN>>1I^RnK~{TtxKchf$2#_7hA%lBRZPV*bH z8M+f$7A7Aa!XtXar!rTBKR;z#xM4+Sc*CjN!*z{4;T@-M4X-?_JKXT__2Jcz>Ig4- z+=lS}){WuEPu&@A`rS?8i@&=A%puASH$1&99B69~uUx++d~wU>{_-AH(vG)ZpuY@1 z_-v*t-1?;qym9vSz+FuE%JmK5Y_{Ta4Lic24ISaefsNsp16}!IDctslZQ*0@$!zTp z|NNdzcX-iXX4Z!rZp&O1K7L!KJ>2@a%(n2}+cTTO?YCz(s3(?gagZFo{^blR4%c1Z zuqVH7aCkS|wuWzC->@B?S4Y8~wL?o4-u|kFXHN{HWenW;=MCYM_3$q`*g?Mkjmx^A zn=F+c>#rw-kPBjv$K>R8r~Pa@S{vyY4-sBzczg9 zN10^-PqBrE_lC*k+rmGt*d9L8)Ez$lxVG@3C$0~NFWMSjlG_kIe2Js&*T1(Z{MF@G zgui=cdwBDvE#WI$H-`6J)f2w^hdaZ6zCP0tK5;Aiw5PWn98b6#XoT0A!f0>!<<~Nu z{iSlg)EjQTClglf4&OStKfGn-hH%^C+rwW!K^!>shBrQGAbjP?>%%|fyTTpA8^bF` zFvtaXQ->lKD1nv=qel|`s~2ashL5}nHGcC=!0kKU49r(<%(R8i+?d%JUUYM&Cw%l~ zVE)%P0~ueM%IpZYz9q9I%)KS^9NB5V_14Ul1-zs=h_MK7ds_zl;9hv<3IFu=%--<5 zw`Z>E7d&6pKQfW;?MBr-;aj&!*TOqLo58EXDtz@8O1)$KW8u!bGv)BjyEB8~$agYB z;m^L85gFsw?`KNkrAISxpu9&Oy6g>K|JTfL`0~GJM#9UFWkg@v+dEho=27`|PnyKK$ZX=7rz@Mm+Lkzs!UN4F6A0hIhPh_xBLOyS1Da z;lL?)t72@NZt_dv`ctrYR$>KB;eCMR@S!#e=X~LBPRWPQ|9;07U1?$di0(-;Miiy!(oDeViov?gcesB2n3RJaW52knc+=_N;`MV3;O@lddvAE@Kv;%iIab?;!fQ?)%j?p8>&qL);gNVG z4;l_v;~IJBP8g>esF4A_{pgkc3IN=CdHZW49jhrWvDO+KA1dj<*}9PBAvgKhl9jom%%rNU^q@ylFk04?iA#~a0c za&LIknH%AzI2?U`fXBGO;X;=(zo1U1MSs5fv~qaK;Y_4S4|g5TU^@d_6As*w8QstA z{zI5}g$cZ~+B;t0CeH=(@$Z26-2Br_$5{Bg`Ai#BaHaMFw2UwQ8Co*chL%om%8=fX zTk6D8K!WgRATSL^oj!3|J5`zgc^Z;$ZXo?BhdWQ(E=>>raaw2~SoYbwPYXXrs@ct; zGvVj>YyL_UKlLp9%xuBW+*OwS&ri4PZ#fiz< zZ*MrbPekHyAm6a&p@-nzn@M@eGmRF zg_oUyY3a{ChhHNOqw%^kFt)-zd;9Qy6_Ty*vg-90R>Xm1P*PgjN z%-x8E6)JCoqn)#4gZcTH-Qn1oTk>POame(prVZhX4+E7wdt>;oM__k(WPAAdIUV7y z3p%Oz4Q~W>d`Eu$emEHm9~j~u^2MQTP^A6M@K!zexMvK7-;TnU0XN~gv-07ikH9>c z$}bNy5)IOe$m=c^7hvIrzR*w%??0-@aZgmK@#C19FDHThaWGLv>g8C@iJcFZB2=M zf16z%W#R%LA|B`bR;> zyb-S*gzL}YQPEB~>+8zneDVWt$b@C>;dN)*0{G%i-f^hrhT0Lv|-BY{-XyID12H`0Wv&ZtK;el|=^TRTrIQ;BvYr=Ia z+d^e`Xc!Imo?Qy}K6ZJSzYE#VYzue&jt<_J&e>iHN6xt#=aSzzXG{3uIbET0F5U`P z#JuU;jlH~iq? zKmka=ubvf7<*&5zs=zWJCf;n-uaA3>oMrXPzgeB`k`LSp{yv79d9 zBaaIWoTlOZkLYHL!rj1H<(owMc=*gCMuu2=`0^f0bthKjXLh42b22RB;d_tZD*HLQ zET#O1mGT3WGIzJ684hhl9A?!Zq6tD^3@fg5vs>Z(d+&l#!iaOUl z8lan*ZAyQqA>rykA6C!x~+FoEwu^zzOTY_Z`V9=$bL@7?Et zpTzd^7z|9f?J=Pd1mvdkNI>3xUR!wgd0Vv4A3v`v{M~sGCHeY!ARdL1wd4oq(b2R8 zetO>4aPN7YVm|OL)IK#WO?y9^24eD&^FU1g?L5SPP~tztc&+2B=S3KN8#8`H5`2`u zQy-JR|62b3xcvPIW_0Ym{xQj3-N+0YL>mIsH^k3;NTj2#Pad@LSm4X@0G z28!tKeylv37G9f0ihq*aUt>BQkH3FxcoPz0zB27sA8VxS>!@nx8%#X)EosSjB;$Aa zTlqeJr;qY?>PIMQISJ%8Fiqjzj~fd|bMiO^DCXa0wsV5$YJd4F8-S7@OV*$8cjl+e zitY1pm0JIzyuaKVKKl)9Lw{uS_j`|n+;OZVl&sW^eQ#h-xGpRF38(;QRla!*5s6YHH>K<^Q#{Lbs|y^NXrPol$U=AGGa7t+rE7a^5j zOAh>oWn1%jRb?=|;_(`MrU^)34(1)NA-V{|5ff+`KH~xVQs3C*L8lha|01Ny?|}~`#~@w z_N-cX@e@D=-fwS$tW*HA?Sy%;)MPZidjA|Fab{EiQLL}milR@ z)Ej=jt_(AUE5PRcGx#k`>c7VBAeg`NiI8q5Mkhvi26fjHsm&C%riyk0+yLliSZH94MOQZ(~H^I+5=JnfKN@2PMGrUZ1zG1$F1M$-*apw&0 zZV4xgOdM`%1}FRWW>GDLTbs3(PgyOWvsz}G(Uotqk;Ogz;RDTM6Qki4#?7($bKjER zZ_Dr9^7|e6{Vsni-{f9H-dz4Y>vaI`I34iZlPQh@j++YEJJi@a4;4&Nd09s=iIv>d;) zf6CwKKZD2K2Awl6zOWqLwTgVq>o4T^E3rEQHPk8XVfI29@b6qm#X)%0s zCYzGq$=Au>@;jryZ(#P`@S#;5;XB&6U#!}gr@C?zw8qdv&aRQ7zOp82L9!mJmo1;%-rfWIoJE%YGq|bxc$*;TX{cUy%EwJ&ZNSz)uipP z!V8~5-(`T_(+boclqSpX%p3Uk{2S%>M*dFSgtjkl5ARx&z~|@IPzM-}c|mUgDg-;5 z_Jv#50DqgYoPMx)sx zt*mKQek*^=zo$RP-^%T%ds#mGRZcVxy;5fQ*IoT%Fex(WS=;dQmw~C5Mt(d8z45Ih zXr(+GqpA&RDWN6LISrSteu`b4VHL}98V8Y3v4y3y7LOr^nLp29)fZtmn=hG`^M*Sz zIQ^$auzv)-#DNgxC9X6h4u?5$+5Io9b!3Mxua(Mf5WJ!?;PvzD75MKTuf?&=kDgL0 z^oFmkBU*pCcAz(WdK%ja3wg^WP;8bi*@9Za|IgNYz*%uz>7&(s@63P_BgtVM)_c9{ z|9|)W-oEu%mTj%W`XYja0=gE+lI1XWUeQ)I>C~y})j!PI_to(&hENMVn)eL! z;ZxRCd$swQZ1#m}WufHt`7`h@c9XPdb}7`2xqk6`EOoJNY3k%@)J>tf`%FvKZ2{~K z4b-R~LOoF)QV@z zN?NP6&t}x-XW#7vE7qZB;rXOKeHK~uVOGAt0FZrJvD)`6+-U+tTNR9U1$zDX9tih5|jC@7549z?C;9+nts5W7>BQ{8+_bEm6~d+@MxVUj1WK z37hM-A4j^Z{2xb}U-@Gi#?^)&L(ZR(tb3NwJ4fiBCk!r7{;3Y_yL2s76+gl5!5bLb z)Um!M?QXg$&FW`rtDFA0lr4)~jrxg{Z#C7ZVbXNWyqix&LOgX+cBw2kxGlKr2V4)iJ z99juw%Pwo;bCkjI=P-+K=@gNI}%<*cdJv+!3M!q zP51vs_$1;>_}y%H1;RaqqnZTTlYx^X2H_Gh-509e{~ZkqwB#46aX$qoW#ydtMF=;3 zTByG0`e5epF-j97^VR=N=C}N;K?m_wy6|%qZ&arG{xlj{&;1m=4c5&|eg@Sm$8OBl zpJP6+_pe6%v{+5~Id~&KLTvF*N$gCP*cDCeK$h6&5wVq7V!Iv?I}Kv9K+KuKf?87v z13*o9(9cM?_s=6PZ-H>cp!+k;;JTkR!klvc&m%VXldowc;!G!WXApWbNl+&^Aqkdd z6C6eYf7XL&>*u7mDjR(Q(Lt@~@e;j08+``RA)>+gY(jeup);4zok!>i^aTbw#1)+R zgw_H=U!b#)@1a0g}QNOAIW7OUoK%zpGiU zRxdSl=lvkfhNZ^yMcCR!w+U;oSg}8^1W(=t@>EiWX7fKa`*ef2Pp7V6gAR7(^TKv&JRWzCE*QqQKHuau9WWY`FzWV;ewHvl#EsAq?gMD^{lVH)z_V0S-uT4zD&1 zG0ID1*m|J4;)-yM%)xlrp}b}S)wngbB~|x^EyS?Qopo$!3i5s~!>#$k%R=Om!_IS6 z!^Wz*Va*6UqR~ULSF;<75bVCl=T)_>p;%^5Hbnp4MIC5}S^E)`F$SD*)|7d_Vz zU8)u|R%SHV_iGfD*=_{vl}zKT61a}s=z2KWh+h@M{`m`$g`u!!FKOmH1Ct3<0}l9< z!xFyYictjfPV}MFLUsHKW*O2uOl|xRbJfbmDGq9@8*8hLI@b7qowOY}jg}tzYyuECa9D4EL`Uzf?`Wexe zRlDqQWFi8%|H3~A;QWgy26kqFw}E)zpi@SD@M5ZcMomDRzm;*$HpXE)rg?jvuUds| zz*6-ongzQI-I4BmQSC#L0LVzPi_jAo?vwZZgw_F)(mUH|Urjo8>QGY1c7rCbE-s52 z`^+ZP!fj2!j#}`N6lN@y?Vo0-!8PawI1_JGBtu6P-eKsw0gGeY~UP(3Fh0<8-Y0?1xv;>)!<@2R@;?yMHPEOMC0 zN_DI!pn0$q?0dO`T2<4p=&q`%H?6%;?b#GdEgGV`zlNGY8r1h_q?CR6 zNllTX*OV^Q6^M2|AW3lDPAzY$Hv_LXMe}$NygLfM%iysj7JkSyux28QuxYur1P^0g zjzmu+3?>u03kdC165k%EDF((BEz4XdnXFEnVVZZ~gO zs;oDpaZh;z9jyBJHElr}+8o;4PMvy)9Pa!TDoaL$@oz}Y?4UlPg{#Xcb{ezZP&uL-BY*WqnVS5oXdKw`t6#S-Ely!v zo7$|IT8%vIt@R8+T+j?gER?#WSbnbfm39+6*c|n;J;JF(0&fS{)3m?%RWr5u^*73D zB@159W-z;1l;>4Q3Fe;Hph&G?fK~SEYQ*cPxLqu)wd;n!%q3 z#j}nv#y?5uR?GWmgx*;~=R8uxqHGV+{D|z2N5knyNbX$_v`dmCtVh#UO<4yZ-oIQA zu90A@H-3ayh-Tj;3~twpOoM7|bJ;73%om%Rf61P4fJ37_J)emLdNbtRBXri~bDx4H z*J|dlj)CC@fjb5I`6x488k%BfN{xO4ewKO~yob%%K1ZZr=#zl{`-Il;CzX1vfg12@ z=^`$@iD~V%H>q%Jn#bO1rk4B$);sw%^zBzmaI9M0e*29~G4~4W-*Ww}R{vJAC|4VP zOT2Qm?YE+*Rn${@hN#iMZm%Z(mOBHHVQt2*)wZ`$1uLEcyEGf@_%(YIv5M01j+U!( zb+tV^yXs&6y0oNop&I%-S?y!}3NI6N@^|XdhS7mV}?)Z@sF9zJ-F! ze=A#%TW`IB!-#q$Q|@n?snfsVhf3y<&ef6Mam2Z(DOrK;%suuhX)whQfgS}7Hnk2mcn@B&eg4M#8%W$3;5^19b z{-#N>8vPsaxSxrf1I*{a++yZ$)J0_PeJm8K7>WLQ{cl+QN>GvtKY*%l#mS%YfomUn zD(lE${f_8@bCXHngLvTK><7G!>~AAgc#=7|pVXusfV8#vT=aGmwH%_fPLYRJYQx*b zsyE8&ea>{@HA4Ru<7y?Uep_8c8t1Oy*l?*-;ShX3O}3t}t@w=U_gggrxjUm7XHO6~ zm(T^oAktMW_-$0jCn*Ps3l|E;BEn#az-5HiDnfs&glr@9woAwkLMM=Lf$j;3JxOSv zA`Aibus-#7vf3?Y>z$1fx*_AO%aY;_u{bDi`W@$J<1rPGEzJYJqf3^0AC5GB&#w@_ zFJU+ge&O*#HRSiG1hu|jEkjuFup#U`3}IrIUHp3xmMUBE`)rF|`+I4qtNL*Yv_;5o zB@A|ed<@?y*Dde(?_tOiE8R$VG{x9vl=TO2%XShu#mxJIkh+QNur0dl0tS&HT}_DAbJv6 zvkp4)kCym~bW|&0A=;+iXugh=?h0mMdy>&6dEZRv19F}O8{-G*LbU+NWoj{7m#1fc zl*iu=oH{Iak0NcUc}9I$1QWWNRD=p^*uG`dzE2iW?jXk97dY-cqpFMO>W&a~v4|48 zS|noXM^B+h;6sYk$RbE;2ib9U34=Z|jAt$F*kLbwzvfw3Wde7U`q=WsTx7nrwoeNJJLd(M3|2-aB+sv`i#&Q=$!qUAuXm`OH}1q zCZteDwiKDz6m`%Y-v3zidpH(+ZL855p7te;^i?a|9Ff)gQaA<2Wq`TT5)MP!wlsB{ z!LyYbWA#vz1}3-?zo$DgWD&A6=xf|kO)th^A^{T_ zz;SFquN2sv@=_dp4}_WU~B@;j(q#VBSk((bG-7I*0g&(~W1-ReXeWZg@n-Uez2 zRFLTXbwewQ-bNf&0`2U>7^^~v_t(rWD=BT+h8qFgVXSP0Zn1;f5^X*9ZV$;00v>!4 zir!H@TETPfwTxOY0UifaER|zl zqSB+R2KRhxbs1Cw-~vt}bf+?1iR#w|*2)p^0EA2Bs5aVn^-LQTi@a->wxObOX1=Qp z4_?!l{AZiVJ%^tEihQhcWW7;1IXeWE-fm>x^Vt@7!!($yRt#S!RC+R8!1B? z7822!87;?ht{F#UrkJP$@=gVRO}w|(;T z5cchduzR)3>>QNU-;l%CtH(hw?jEFw zH&a*IrnOdK7@bEb}QYNQSs-fwfGP1^h5zgZ9d}{X~ z<+*myk)tfCe}d3HOX!4z?lr;y5F>48HM%V7P)?R%V^C+YI-A#qGVH=guG@63KKQk- zlYl4Cx*;S5`U0(+5-TtiXy0N;DA2#nck7Pe2n+#P3-fV-6UrNxFlq=NEa)TTQ0>1FT1jwlZ4lRiVO*>{`0L;>SVSye-@rf?tr^cF zAm~kew}LS2OX&2M5J37cbm@pr15?jY<PnFh>k1s} zTg2>6=xW>S&!uXt`S2wOL#Ep?pfjo`M3XEd}(IE?4`yssNEeZ;AYn(A!7o3v~8> z%fM3q2Gbu#%6gRPl|M1_sef*umjC5-)%~xH)y}_azXP@JZ%x#izt>mex*6IrL4DrK zkO?z=r`7eohMYx}IOzVXxCUq4034S&G(gU?%7 z(_SJB)3A*AQjfWPA^rk=fwA3mc-^fG>;?)C+?tUz1g;)f6auKa$??lyqR#(anx-!7a)`hz)5jKiSVlV-J>X%d z77YQVUs-$=nR4ukcsg34S>=$ zX!fjH-rb0m0bT?9q(?aV?BtpjlvL1%BUW? z?@;4<7#urb_}s$+=t*T&4`W(vJL%QFGTu?1ROya2y{m!@?KFFd)MN$ zq7RgEOuv6*cT}Vx*cZ*JhT1uRN>_?CkGe4s`Vr~M$=+E5QFZSc7RHc2YqVrOfm~{~ zyZ144K_*iM!9>PeGZ>H4&Jn$7eX=TdOlpPEabB{3m0%y^UHIuVZ?7fq4K{wIP7O9> zKeME`0loRR!vB*si;7&GmM(%Z({!bN#Wu?VW^??U2v4u zkNFjbS}F~*`*(q2_apTBeYeKJdM6`81as)fu2?QsL@l&~y2^OFKa&LmfE9aAjqVFh zqVjI&Z~WlL(fa}Pku@35M9=7o2!=|Q!@ir<q{IDy;lVPN0@7R1FRFy7^X?51#($!=^)sGRv-?wwtI4+V zMQ3q#7o4I(vLGC^=dBD98J_jAzw+166`aHqZ{@DDahGYJH zm4-GSxPW^IoxPHeK>H-$1A(DH>z-f&sz@&CYJVC_#dl4O6O9v`VA{VTtv8*}pG#=Z zBMjHb`$h>D=>2oUQcSa60T4BZ!HK(jTe~wmVMjf%5jvsRevL-Mei znS%_>J|=Q>3%5(cJCd+iZ5U)=J`{33WDWYB?wa@Tmp}D;l*DX8dl8|vn9x~A=x^aY z8#1REFxcqSqFj&9GdX6rg^PE&`e3l3masebd`W!ndl>OLwy8Z7Eax1`zD!C{li4$v zGutYLyVoSy4ax1cyx$|HUaH<5Z1AvRcV^(<7o2|ohdd7cKiSg{qhvlcjG=)*cO>84 zS%m&P!M-E!i~cV{!u5py$ArPCe`ih|RJHw}Y!^u{9R2TzcgGU??YVsS1$y)T107>q92Gk`#K5tvAx2qCRWa0%8s)<7l-0w73`Uu8zmu-Z^OlO$2MDi3E3iOvU#I6)B1lr4x?hzcH zc^~tiZX1o(E!COxMnsIofvbZ`)QHcGKb2-mwGn0S6+<>G zBX2cz@QTr;OL?@e+KRK+b<5Rf?;D(?51C?MA$rkh*^+|!By|jXhoMeSfR_+ zfRH!ah*?Mt4Gr4OFhGv|+$e3Yc3n1b&Q$dqX25p-$t8W3AA5R6*LLE@sn#PmQzpe@ zhEYZ~Zv?QHqkOqp^U>j9Msr?*qs|RC8mieNj5p*;@j)ZeQ}NL9)RCAow=Kp(z7v{- zKN1AI9{(={^k$n&(gR@n5Jyw4N5S0dRV_L7pT*cg8z?7%#uS7>>(T zz~Kgl2MC8ERWKF<0sMWO5g0wNQCNnfkyA&IbYG&_{fMH6{f4{{N^KkgG2(faNZ~(3 zpNgVGM*ICq!x=zm4I~T%dV?fh%jUddjjJ_f&N4(PjskY^e7|R^U^2B+z+5HSR22o6|Dg-Rm8O) zqYPYrGRnY4keED<4#56DPC3YrPq^53CXp!D5!@`g45Dq@GW!Q;pNUOC(75OxG}=He z(adf3Xy_mlI-^nfAgrd22G`bdDb;Ez;d+4^kj-Ons*z*B3tW!IU^-l}*l4UyE(V9z z65}C9q<()Mp%C5q+yOp-3EmUtg#JZA*W$Nk&xc6$*cyxO7XFH9Jkr?Iz zdQTAAA}72DPR1ywHxL_j!5Qt+_t0^{^Ao(dt4OAc+Bz1)otzv|nqm z6~lhq*|A1PZQ$xN*`UZ@#8`^!sZ`};h!nTa(*$yRtf6)|pd6BNPA4_>Ljz`*X%o@K z^_gVIJs;h0*%wc~6l3>p1h zhsGIYWzl;u4x}LN!=R6$wgv7`RYxa*9o~c92U|XB!#MoH6)@vum{qeNq3i)V?pM#o zQF7eZB6}VlbM)5|2I~mj^~l|1p8Lk3*M|qzcyMNIU|cBB*~E8m^Y?LQ7_MN}yN~Ka z79iNd#JE;|0}4v9I~?or()8Fc%fM`C5lb&T3ux0qw_ z1ovFlgbXZdlVfBv8!MgxAO^yF$Xby)d+NBatJ%UwKq!Mr!!-C zK)7kwqPR$11_H*>#S!48{1XCC3jBnObWkHv1JY}KCNxhm z&OI&gQ$p(u@gP4fkhQ3(OT-Kj4!YIf&#pfwNMHOJL+!JK-Z{eXyub?rFA@fq2>p=I z`CLK(aYGSKWVXS*nry8LCL8Gdvxf!G++=Yt6V2_Tv~AR13z5pD2Cj(dKDJbJ^=Hrxi$dve+b@fi)TSKy-|{F~g|e^4(6Q z7%h6t#IUA5oQY9w=q#hrd$2QvvkmcPq}rh{9kew(oQtUtrU}>Q;*bO1xRgapn}(rq z&KxmKqY=SEJXbF!aUy@Nk#&$iI~PR?wmgR!UNd!gI>%wPc!t=evOIk;LvnA-(-&Er z&a^p_CpUDtIyy23yy9XETOcl1fGr~XGYbef|COn&YL{1=GI4b zW-}VRoVC9oer!xbw@K~B=grgJW1HBg1=C5}nkR7S&kT4RHHCkGIw~DrC4)nO-s%S# zt6nZ8-rqIU8W%*|t-|1LLVpi4D|{`(DIRLPv;fa!o9@y4g>oU zbXXtHH^ia0Mk_8X$ZndATo@Sv)%1nfky^HpbkyC2=$3f1pFTiTwa9qu)mLct!5RQ} zXK-gnVlZ1@go!%b8nDgT=HZy@iwtVO!-01fK`~lmxJNBsp0D?aB1&f$QDUQhY3Mxn z5EJ*_E6eg}Gx?X0t=_8Zp!zS2B-B9-SxCkZ3;9nW4(^6qXsAV!bgB+mh=An` zu%=NMCRhmj3n zk>0L=m4ul(Go=8t1kM&3^9Zd)^1hfbSVHJ86<8@D%LpADeuZFGO1LL*8)3MQ(7PqP zbW{@-8(p#H?}E-0=5b6u#w^2)1kosaWHD45dOc-HRtsmz!cGpGR4$d707?O~%hjb& zvZXwqYuzDby{CC?G5S&%Ax|wqgxw>FYoNcVL}|HPRil>}oG)ZOzm|j)RL>-s^Lr6G zy$M}`At0vw@0C0_G@M;l9$SJu(6b9q3zjmYK9aB>VW{EzOx|7%SZb7Xu34C>9w@4b zttZ|!`5<)mQuG7jpL~(joMEJ6k0uN>9K&~OJZa*lB$Y6u{*_ew{6gR%%F5!0Pa zO!hl9j<5Y7h53|3BvsMvB`j!}eD)LStA z=_`eoFUN#aZC-&r9oVqm(FeH}tzz1pNkjh}vI0GYM!!IG{n~paG*&HNC6g+3aurBM zmznin5ha|uf@3OXAKiuEQDNqIl7`rt-hTE|tv)rOLq!ae8R}2137yVRXF5Z}84@?MKKQ7S&;i`5 zPRB@e8JI{Ok&@08ym^GKOKd%JR`*vKnXVm5TerbQP^&@K>h(NOY(N;1i#l>wLCs%{ zwaJVfa2jsYzU;;JoNMfWRkV#-&$*K$DO{$AX`4#88cqV!KZj8yJ9fahMO%K<(c=>| z981;aD^vkBWQ`$SirUt8d5v6VFFV9H*Py?Xx6^B~>j9Zr4qeMN!Kk%RCADTP#?7MQ zhWzLP4tk0uhz(kNaHefE5W#r1Z`e;&^&m{WtlrNX{BfN>g5E5$Q-K2HHBsw5nfo7K zE4OBs!Dn;uI-|ZCxtGLj327}Mq>cO3M^!B%l7 z?z_$?YF*k=4JW=mm{dJLOe^(0JJZ)0&2hW`Tt++NMQRSCvCz@W85}n<3DTh-WQkoV%Pb6li<3@Gb%G8u5IDg5EwtXFoAuVHv&= z{NW2I+{YNlu{S&*SRWI*2MO&1pL zZ?Dd>tp06gBysmPW~UF`WoF&80mwFM1Jfw&V}des6Lu-wO%V+-o1NUmBAx**?qzCS zgLz;RcW1OHY66cC*RF2BVt&RH(VFV|CbV8~cbD=0dBz792>m$?3EhUktvR2d+|6=m zA+jZN#jif#;SFaGvAuo7E)w@M*h8>cadw*2u{Lk_2^qg#z;CFpuPs$nd(4}6sR4xuYB5Eu%yx;KX4 z*b=gqm|@$D_S}sw7QuZ&yQBjoBo^rOU;;FZ1=|c&NsG8Yp0NQS>{{ycZANhun0CNY zWK-|{5eAE*wt8~3>$)KwrVw{|kVda6)$r{`+mdGZN?v5k73EK@d zjcaPlVRqJZvQg4mGSWAusg2vQ&pk^FsS;bJ4sJJSbPZW=+UFoby|o>Chc#z+ZgY#( zn+=LFxE){)CClhZwMV=vJ>snrYr$OREr@F64x@x$E7^J;SxB-yJ7l+t{fOF6bRX!D zkHApB&tpg^&~f?h3AEQp$~K0 zTG9wt3ylq=0Yl(U67Rkn5zdxcWIx(z6gJ={6OLlh8d0t)c4O>@2bWguF}rlv&Br_vTTm_EDJiDOZH{k5WYp(Fct}Q@MQ+NyEIY_axD(mN;4hXP5cck3tBHE{ zd%MsT@|z#g@187zzl)qcK)Sh0OH|{OtA0dseNqp0OCEa#?j!ULG_GN30uj9`2D=9d zgF}LNsIfLcoRS)V*K3uJ9;3#tb(YEO!;(y(cZBcGQ9}P1VIVLRXdP#W4H!AfRqbY- z)Y5dROPuE~YK5uTZatqqwHqZbMLSk!cN-#6e1nFYbj7L%XF1LZp?Z?g5$FTTwr2A- zrRCbfCWO`0J@DQ@m8jW!uppQFKNjra#7C@um3vT{;1klZP7wwItxs7mop|@t9z)+o z5q-ksz#XGVdDtt7*DvcTU4E~>#J!@(vlSK^eiFEZjh zOwARn$`_=_5;9%%U>P~^mJ_-wgd2gOhASmx6;cVk6HMZ+W}vf%(DJfTcNyh)4D8Fa*GE#Dqi!|)lA7_P9Gd{EA>s+k9Qdm;KAWF6{^wo0bEkX;M|K0b+x zI}Z-R09b}ukN$b{pz$ia)Nuk(en(2t^AOqJ^+I-Hdyh0d&|z08#n}g%@rY(L)9?<} zrW{e)bO`j-jzjQZK{2nBu8p)1?|#l zSG`~s(p`h67bhK-3?PjejI$35t49g#fXVf|p+Q?NkE#wExaX#Q$M*10)*&Gig~1DA zR1sU$S%!EgNWlA~R(SU#2)9l#+&WF@d@Ao}kV)5&-K@ikbk?3{s6??fo6MPu9W5GnHOleYaz^DVTR5nmVt9H)&HpO z&4(OCxQlSaUSllo|2vAIllOIsgUM{(ghU3=0j@iW37@=eVKNU10Bhf{ptt_RGc?QT6igcY!M|wRbz?loo-zJ{mH|X9|(@y{|1O^oI2BCGEQh1QJ+8ku5 zstA;913*kpk>mirJp}?sh~ds*oHHMBu@_4^l&CLGXpb^A z{iHrywwT%4RZPsgO$#aEu_vRYNula{6;$j)q+%Z-bk716cYkTm@8Be6q+MVq*FQf! zsSgsU^PrA(fW9vE@=4I}LZ_GCl{#nsDVxY#E@_8mNeJ% zlYz4C>+urO27r_vKkvBt6Ikx?{77h2Fxu%Wupgl{0I0E!>i#DfqY72;Gjyq;3tVYoZ-6!(DO;M)EFd-6_gqAR;he^@vK8lWxa0V= z(F*OexMO=TbJ~#SHeQ!p%&+(@IBmc@P^?yS;S!FQTpdDJpl83#0uLedJ{Q>M6}&s+ z2)&5{cM@8=2z`NW72m_7uYlWftQOSN=;MG_&VaAtteAFDOf_9|B?PtlQ&!qBrnUjG zL{>*X1%q;Vem2>Kn`Bj@OUv5e1TKs>m>gJV4Cx8Edp?rp9{)Hg)JB<93*|$i*ug7C zVG%dN3uOvid4{A)-p&@uqPu65qic z+b7P!5l&9f^VgYk=!H2zHGid;cS!VVjf3WezITnf- zG0kNm4wYeNqW3v|$+8gRK5RAP&(o_Z`quj_(hR!4ih|lbNLinGFVS2s1ef9$qJOR- zc^7DqO>ZI>avD{vcAdj=fpK;pi5o;143>AB(6?VTqTFu~FF>d=AFwpKHcRu#QYh){ zAx!NEbOm|>gP{x$-q+nx|aQj<@gH*ZwF8tF6c?X zi3_MoIogh4uRwi4+j5gujiOauzuFhMK369%0^J1)D9$8{k%em2MR9k*zSR1Q zup4w%TQ72W=7GN>OcDSYN#+u|bDPR7CdS>Slpg^UvW1fZR!l`wH;Wa|?Y)L> z`{Fg$m+Eod$iT8Oo;NenH?R!tirK?+WvYK8}>-_JdnSmkgGgm>|`BPI-dlcTLjYAhd5u`rCxz z9YW^|2_O7N#*QJhs{RP-(vpH(FpYmIL^icYp#H+r?OR%!SkACGJKH0X?-P0l+Z*`i zIl3-xA&+Ksxbj^jl+Ojz&RwpS-!@)=try>BR@L-p3+8uX`lW=SKzk+Mz1wRDyW4k= zq{(ZV$VCg6$>IafsnU%04pSStnR2bUj=$E&ysta<%s=d5 zMgqNzds<8#Gsdc^peb@8{tjj)!ylXq8{-gAu}0ivVce`Cc!`Wv?jmk89bawnGv~Zi zSO5N)82%m>wR*qMEGyG<5H+$J&p+U5{PrzzJVc|f?gsY({aV@0tlt8Avn5f^+q#)B zMfu%8&pJqYqmB@|#|gKbB<)uC`bdO*z8e?Sn$l&a2~HF5W;O6)wA4=Rj*bB}RMuKH z6*cDWK4vFgkdoD*@%&-}&N7sDjQHEqo!7e6lE=>OplzQg?dg{Yy~|R{j_P7}-teyJ z_U{EcU#^XjJxn+!WIutf5qtFlxvFa<5lyAC1zOsJmx4`XHHSADk5AzBK!c#{YPZIL zJ&{$1cBOLQMicD=Rp<2Qe`$9ES=kkL$+&Z$u(Ep>K)+WP4<0qLF=R`{T*@^ofMt6vC?MgyAg0 zig`#MZ={B^zazUk<+48fc22D?*{C%S`o>u-uC(|$ecz{ZJ%rQu6M9vIRfh?~V}una37yk~mDPm)Il}6Tgw|!k zQP&9Fn}l2L5QYQ00tUkf!%>8z#u8eSxI zT*9D|&|gjH93`}?2`erOyhG^UCv-V$TBi#~QV zpZC3DxYJyWj_#h-zsC2I8=CZwDZISZ{fJ~dd?g-P?G?g@-jgkB$kqX_*E2!r{AP9>qcg3#L_AzKKm1&-Rz_i!hnwTI9aXdV4C zn@ekS0{zX-_}TA?`sI1fqw(Eh7sB${|0tB{P!4W>Xv}B zcbrIt^BKdP(tq@aApYusW*fa1QTiuoirnK;N4Q6R6G@T50zzkzz-0p05V}+T4j4`+ zbdLR9<=_L}7F+>vpLjPus`MiqF28P$#UpZRm^R3iyRXFkYmk|vraOY;>c^;_-GLe_ zfw_6_Ae5^4`IiksTV0@7eIcg0Aj?HuCpzfeg8$8@CSbZJTeVib|tj z!)#M_c68haOk$msT9LY7^@$SeoWU7S3fHC!_$u~`r+$Gm41Z!aaBKV>c?IEuoen~J@unP zKL+TBtsleqz|bX@@hf6sP`AnCC>`%e{G(zMPzT?qfrca6`Sg(dI~!YvVYE~WhQkVdVz^2Bf$A{=xl9Lnqgb7OAMdWt zu~I)g$=KwEb9*&#nAx@yt|A&X40u~Kg0CM{`VnY!?b2GVRv>{|N9<}HAL{s`VpT;} zI;vU25qT4#@gJyL!^|RF+>bT_Ke7*p%M}-DG7+prT0EGC4MuodHG-iP422r$$0+@9 z^kX_7nDo4(HlVaxB!`&DMT8;izP~g+DtwuI%WY98m{RXe$2`VAIaqBgRYryjg(^)6oBu7Aji%t zu<;{g0RP!_Ei(mPjUXPd+}{o)HpsK#ky|G&UQedVWc3DH};r0eDC`G266_>|Z*OpUBS- z!JY$tz*vYV&&U)|WMMps3QZJ%Y60ttB1k5Xg8xC

OV5dK8ucm`VbLfr)}dL7M+` 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�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

7&_#Ntd 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ⅆ*``Kl;Wu*gw%44Ly!#fk?ted&uPL0E^1avy^;3 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

dia5&_dYG9p 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ˆU;RjeF>V$pHnGT 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

Uu)7f0@`2&hb1b9ec!x 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%0A~5yV^G&8cuOXQFK-}mF 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

Ce#LgLbmiz6tPQ3mtwc)@UP{ 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

EUqdK&5>!U%EBt^+5MQ}V_Iw8Q@h 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

OV5dK8ucm`VbLfr)}dL7M+` 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�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

7&_#Ntd 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ⅆ*``Kl;Wu*gw%44Ly!#fk?ted&uPL0E^1avy^;3 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

dia5&_dYG9p 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ˆU;RjeF>V$pHnGT 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

Uu)7f0@`2&hb1b9ec!x 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%0A~5yV^G&8cuOXQFK-}mF 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

Ce#LgLbmiz6tPQ3mtwc)@UP{ zBHGB8$^*Hq4qZvEz=QB5Z-s}#oNvbuVC@kdXR)MUG<-SWHwQn)aPe9UN&bQbaNdi& zVzFmSPQe1j*Gc+(Bn#RN8UYT|yT#*{@OY>ACWc^&0z|S8n$9W(imyKUy8a9HOity5 z;a*!b)ePBjZ=B8-#5}H}VDR4+ssk3bL7JVG0&e}Zz<&&*mZBe_!;0{Cs11efnfwR* zrzV1BdO6n+t!@dU$Vj?7WWaa`4ETf24)Z_4v)t_b?Ms`p!z)P0D)AhT_&V?gIsK3j zBa073JrgK{w3|Q~t5yPi&JJ{bMW7-&0wNc&rcpH-oQ?OCabLVKVN*CqeX$tl#86W{Bum%B)4SQz47mCoPSA(cADv z?ySPj#Pe{5|3WP$%|?>xZZK;Y8(IXw@E*V}kdDYA(ZnT@MBip6_94)9 zlA>y;nSioE@zOs>&$1+rk0$yaWnx1nme3Vv=Cxt;?go(QX=A16W$w0a-Ve%JCuEuX z{+Ok(@E1ZDMPWu1kcD$);U9Nd3%9fu_MOMVPYD_XusVF76M6TYz;2N~3GZyj^QTC6 z20pJ8&$w>^X%)CHnp$vR=1J%()$fEd)NY(*al1GdAGS;u&=fqn4PfIez@Yp3pGVlx zu>t1-M-G^HCu?&6jAIRoW%)Edw>JRXZ2@2im!&qrXl=I5tWcY7(c1hd9udIC0t~fT zjf=mmweju6ewIEQwK2E!w`V393o((c`Yk9JFbcZsqN(mYy6cGLep`8tK`mLfYGgbdHI1rbIfSzeISq4WYwC`16HH(h0>z zucp?^Id%))<9-Q@Cq}YcfQjkG33`?Bhpu_*?7W z!vlpvFn^N8N5a%CqWKjc!*ifolmB47WbeEgpY&lEaUg&LZAH;$Um*6B+1LnLj$CXw z>Fppy@f+;@=r^*f0dpf;ajW1dz8RG=g4q~ z_yBGav?ruPL@%bkVSJLt$<_D-S7dhs{Zc$d&8}vA3p&&EyTm9H^+SMtn-?g|lmS7G z(G{U|f3;XX6w0jE=^JbAkB(kmbUh;2FQ|M>9Opz9S3G~UN$c>lVbAB$6!X`B(S&&d zP7N_S1$&PZCMk}Az-!yRz~O;9feB} zvjW)etU;4r#swK{9MsRR+yeH4`r5|_jLLrryN5a)C%Fi*(4QfA57v<3MogAJ9Rd3p z{gW4nT}&|zi9`hnHhl)1z%~kQpyfci2meJS?oDj=75Y~NItSXqG|=8cR?%4^a~W>{ zIaE(lvVJ*6!)QU5EXbKafZoz#GWeyoBC`SjcW>Q+tkHtGmVy@hoEHKBhJU3t2_PV4 zKMEE^>ybn#L3D{g9l5lGOV)K-jZx71AT)uLTm;~|5a0E!rWlGT%_=4egqXBB{i`F> z0!GHQ&J-+jInEHgR}hv@zeKkHwf9NMeSe|5yR?$yiqFh#z^utgshNNpk%h-v!#1Ie1sbZ`+ zPE8aQ0zz*|1ynRF9_6z_H;7sdv!@bK1PsyGfI3XV<{$MMrsd9<@x+uNNLS z=EQadXPZJq{z;c2=vqoJ=AoPn=>;}PeUN$2L}GZon!}TfslSj{9)U~N--iT2@}#%S z4s`i$_l80=a|0oE|M8da>28az2do=i$d72q3CB;tM9CV3hw1|ioXoy+B zSqz~zh6HO4eZQYR+M0?n_9r_|I_EdK{Lj z86D;Y2!18c4iO!uJ|rOOLh}sTj5UKkr{cl2dN`EM!>EiAGmgE-UyWWg%c+KDU<%W1j}14v7#7%B)OTudGZ9N|!NHJ|)d zIn;=8c-~ae+A=~_Rin{JV>BwPJQ}INf004uT;+iCQJ6KSuAx`OHL!J=A8S0l|-y8JYOjE0((ln}e2Tc@<;*6zV z&{`M(unG4hEHdraFd5{IRk zjf_szABdw-Y@SX~#DysA9Wsi|CxBY1J*$Xfa}_%bOI79Mqs$5bjG?hu_o5M1Yb+6D zf1#&W?`y90pcXn+we@I-P~m!B)?uv5Gq9=Kvm69HwMpZnpMrCw4I`=XR%Gtv+P!^ zebk0%U?qq{sNoP4azq#4ixGdOL-e)E_%n#nuC;&^h_LI@fW#^e7L6Y*!H^Pa8ZD0X ze_Ypx0P1^ON5w&_F^E4?1j%Il8C>we_%robSH)XSwQKt4gzzH$bFv+y+W)gK@$2vp z0P+Dlm3xK04}awO{YcyyT%^RfGd1XwAl9$TkyqrWbHf~4*qM6z1k7Shc=EJ1WHQ@~ zIx`>Oqp7`-7f_MnW?8I@Dqyp ze#CMBc#8cS_@SWbQs-f~qZY8Qbu@;5j(!ZAb^w}=`{1CB(;2oX8O9OjZ56Zsgq-?% z{KqEm^%wD4u4rUg$77t6I!&c3@?hQtX&CU< zQ*pt-siL{8hC{Dq-dl+Sq)TVuZ!y=c7*Iu-RSu+QI$*EgV-TJU!cR4LFd&wNcE!t; zSYybWil8!J5hmE3t$}4`iFz4V1PQyF^9Kyk(I79ZXC%l=y~yku6F1U`39=F7g%=XD6D7y= zfFb1;Yf$n1%rGy9@n2-Wo~o2l+GM;SdjDQ3quaR#ipX|T1Xk?y=Ik54Es&6lt9v(u zZi^1-BAy)rl42P;qUzU*mwNWNb~W^OWF7%(HY0}_3t4-#qhj#^j+N2nr<*a%8u5&( zwpu4lFm>k*F|E~#i>({9jXRCD`H*y(^DC~lM&?#%lRe<9Me-?eQDd(v`Gc7y`!i(((~eb`+rV?{C?`g@23-fX89-a z{4o4}`0hM}m^Uc58Tt8F!{1KuC3*!iQ)&ep~VT1RY>IevMFXKDWc) zNAc^3XP)TYkKb?jU4zD$j&F1E*LJ_$wF9#Dc*6CSSr4Lz=lPGoeJ5B~oUSqBmgIR( zBK81x^YWCXYmj>LiW&)lCNoMy)jZ!O>enMd*hw;9uV}uGk$j=C^+1L}f>DAL7>3VM~2;MJC5PMS$5LZS(tgdAN!O};7ROiJKC@?f{_%QvZ;YY$O zJOqFBtw@y|`6r(8aqm>HZsN%5@N;OAsME@oi7!MFzr&55ycSEupd^@wZ#@!@RMju? z9o0?_6Fa&^%6qf~FvrK>Hygj#@%tRVY9|rz3BNA*Iq@sTZxep>yW>_|GWue3{BFQ+9)3^Z zNBzzF$E@+6TITt`$fJmX>BsW6eJ^fhEGqGDDb=dOLvHPi;|U3g3FBMmqfeD;SZpa+ zjK>!HPyo-%%L?cuf&Gdr8GBXiJx4zcW)BFYW@7f~IhJu>dp%ox$j?m1P*feRbjc|w z9L=H3ItLk|W0@Flf;V6tc~t7W!o**2>s4+(E(c7(MkPgRH%fE)Itt;wEjsIyH$&di zRu7tTZN9IKNAa=SAaAB6??QbMKIZ4-!pf-(X{OFt8%Ui{ryyraW{TpuU1my+f>34- z16y@EzgRPN<2%9>LT!hOw}3r4NfYYi<-(sxnR!taKzMJh-UJCA_jY(We`!S^ZdE`F zh&0UC3;o}Q>M$~q5x+K2M{-x0wMVqWs3^1YFeH&(yWo#bcD>FvV_c+9ZTuQB7Q>-;eqie%2PN<&SJ>|Yyq)opF*#iaJ zL$w3W?O7$bybBRwJgco&nexs;gikx=?+E%yQ}l)R@b^@C9mo?a{d1(VuW?ZEF;c~egX2W8KzB0US=Z2h?(=ca+n62zB!UAzcM7PkDHa<|jSs$;M>q2A|YpKHgWmzYH_GtG};TX|erCM%|gl7PW+ z$@$WBwB92rt2h2zgTCw}*Um`&HgSD!1KH9l6k1(83GH5jHhv9%Pxp7QLf(r}zJCQ6 zMR*V5_rGO4D2Gk>f8#;3=@9sY(-;rd{q}$3K}>zmao~UNc%X_12pAOxC7fzV=!PMI zs~J@d3EB7_Rq@3#AetBu5R8!O{Gi?lSxhZ#9}&hBN5+HkuN&jRxyY?}8{_}Tc%a}# zj0bBW(G|vnWfjMRSC9urgTTGtG9WP4+N_ELLh+a!4hTl}Uqg3Nt&cX;I`tt!1zE-e z+`udWYvzCesQ2|d#eiTd@2VFqZw?4sPsAJ(_QAeG{V*Uz>bH?2!X{%xzzx6&6QSQ% zKt>ng@9F;Z3VAb8o^y3;`AK-6gP+Zw!2QAhf1Dp^Sc~|-@!+(_gZHp}Lw5b&`~dP_ z)jZ&T@pvGec`zV6dddNzD+Yv_P|8&e2#jkO9T3FHl6K7MS(VJ;;AgSuV-5!uClnYb zjQK(LwZ?cr<*#__;s3~Zkc<~G9(+-0JP4S>L3d+%uuKjI0{1uit9TP7=`BT*9upn|M}(HUbJ)~azy`}q$4aO_!}4^hKj!4}L#znCs% z&G&3gw7i_Mt<|@I78?m4Q)UDSD=L%F#vs9ng7q-+8dRJWUWZ6|l?d5JhEzca!*2>g zc!?Yc8Q+^kM9iF_h+|hJ5m&rm5P`!q5d)|!giC%Rt#Dr>fGYHB71mB9P5rTzTA^85 z8#Kw|q*GQJ1T_Fb@VBo-(Ni%fYGhKBDk)MtZb%iX66vguVFkZRqB^ZMh)R}3iQchR z&qjIjE-x^lp&tQnH7N-6O!u6Gu!N)t2yx&FC{C_y$q#ff*1MEhhiC~^ z!)hRC$2!**_$rigl@oQ#&(3vUL`gBeC&61qO3YeF%u7>^dfma2Qermh&jVZ))$)UE zTeWy3i!DJZy%S|D)e=_f^+vVYR<70l4s4;(-Ul9RAG?|914rP-Ck$&KJDJXSPFRWN3x;3T)GI@yK^MfnrqIsb9b+ zo_>ZF`BjA zUg%$`9{r5RqSeG-)uX%dtz;2YaM2dUHwpCgk`l6*QZXkXJ4p==O?0K@tpEgeR?K#u z21Eh67!Sf}4tEXUo)GsIWoexbsWZ8#ghO;&-2DJ!Ik*bR>OmPtCPJm=suKh2L+OL?FW(yu2XAasZ!zk(cLNDc$WH5Ccc>FfL*m*3Z_aFFdG!((;5$UE-$MyCKqh(W3c%egU#qD5jICV4cT1&w87@*AP8hgMLw^=in+<> z1);Nyex-Qc!gn%yu7%M($>=AL5M}h)QJF4gf2hds!5>HYJsc$^zpufQsU%c9LlUDV3imxFFl>JypZ~*oWc$;kH z?LmDvFC`*xH{rp?+dv(1wwJ+Kr@>it{|IOCY!Tq8A4vu|NOnc8-UH|+S6>!frFK_5 zgYlhQeaOPqzT|2*B%tH#9q?CbXvO;+yROu~|JIw!1nNk|`w&wM4R}zmVU%IYOqn9a zlArYh)r9n)!U(&PIGspO2KtAdjC_P5x(Zpp9#*pl@ z4X9U|Osyq6Moh3f3HC$%SrikrB;hJRy8z}brCv4U-Uq6g>c!He6{VDk96e15g7ZwIZ z3U2<=RG1$SFjreo(L(qoIu|KEd4i|xqZ?Szzg}C0I{}deyS1ukg@EX85NfJj_91-Q z_n4ntscKLpYBjP#VecMSs;mvMhdN~K`4}S`j6gUY9nUJ!-n{{Fu7aJy8s{S%f0a5;f4S>1;L^zhC>ijoN!1yL>o%Yc^qUMTs8_c1su=aJq&!j~0 zz5`U;e?`m^C<%A5T2`=#)lfY}ixZUDyg~qWUt#dgeE^J%v(;eN!T38JyM_LO5**+( z@4qZ7NFh!H-bvtJFmxpT2v~s?dTwH2!AruNv?z7MOgb#2^Tr zYr6KqVOC(3)&Q(z)qOK)B{81U6oh8dlu6wzy{szzW~q9AeLH`mk0r!JQuJWVUA*F`iD~ z`(%7~T@2kOs^{w&vwFYK)}S>4Hbc?jcpl=-;0Iqq(I`&;Z))x{%TZliE6t`JUx6_Okc-uvf)Zu!lX%k~K}iQlz@>jZvAu@{NSvWwkw#Gy z-HK1z+n0jez={&KJntE^(QK8*HSgM_5rRn}7J^vjqa2IJz=}g;@{=+%pZQsT3}XxH58wSEA{JE%DW(%kJSRq%HU3q_Lk zS)Ld@wVLY=hjHp5Y*8nQuLOpRUPdzpBIdp-B4SN-#t1+|p(FpGwW$-8uj}M@(SWPb z^YbA373J%QGP^CaRpRBSHdbE3^AKl0?p%Hfo{oDb4xSds%qCCKvN%Ulta#@}`KNdv z!;8T~2cxN|xz#s*2j1bJ+my^SEb>%G_scq>jlJ>!22DnrbWMW)B2(aXVzz_geG@N* z{vV+gwYs+ozB$6FneI9QC=wt`aE3;y=ZTOG?37boxO_yU&1hA{cN@e5g|d#o68xyv zZw6-fOaa0-5mkcYBt-Pz`fYf|;8$DqoT#nLqGOU8tbR8?j!Jz(O)L%X*Z%wjT8(`y ztSCM%J?UIUH7Z-O5n|w9#mXwaAwa9s4Z?sfyRrLXy(Te+lQSjdz8cH|YS>dmHINbe z4NlH?zZO;K6#A4y%Ga>3N-)mM!HIle(Mx6ha^HjggL7c;$`s7xFi8kjFJ5MTIvbxf z$I?ihqZ*}>{9M@DDnF-?n+|WsAvbkpW{ccdH3EiODEb+zX#`j-qiE>RF4kWSOv@OiztH+1?kD8?fPN}eIzCb< zR)?s$GH`KnI^Qm)ioC!a76Ox7iuX|C=oe;l??Qf&6d6Hq38QCq%Fto@iMI|}Y%+n5 z{$Ublu+hLrYr#%Ff?nF6@&&$KMdO7dTmX3j_uzb9@4>Kht^{wL{&EQ9ldt^>KCP*s z?F-@4M~spK5r1d1y#`>fX)If8_H)GJKg<@(nV>53c-+U~-{HWTg__%G;r^QF=t8q3 zA`aJ-z5QVBaF-7w=1w&@=sVbc+Y5sQ)3yG$a}+6YO?3oZd;8%qAFc!b6t#BlRC6|| zO5a}`fq~61uF0r_yPqS_2imG`vwhH3-5ojCrnx&g!nhi*XnKOX zPw0H~sWz+4K6UeI2-WZJ9>)~rNGJ)}B&A~wO8NDmns`X8H^A!K@&D2GCh$>JXXAeY z83+=*0YMNDqM|0QiI_^nXkrqWff*J7r7cn1aBV@DfhZv$lPJ^iBDHFH+iFp((!~~c z+!H_&H&z!Eg{Y`^7-dxmAk6>!oOACifuMbV@86GP?sD!~p7U(yInVPP>-KzMcPmwG z{&jA1)*S1F)1t9xBRF84|%15cUj z0fZvOtnWprn>`-5uM^yuey)ssDIXCU_qNZ@KPzLA@rf?_DAz2vCM_UH`CCX#k;x=Q5Y=8XQWwumMVWhYnjEbeX`X?#4zKc+9GJOu;~J zePkp60NL+PpgjUX0|(BJWPfA0_oCiVBSdZ)j?tEazxq`#NzGKu~^ z@aWO{YxB`i7_M+w(WhX02k8!DxR^C~FR9~)NA!cUd60uRFkLg>aEA5l8w{%)TUIhg zX}JW(ZB1ZYbW_rKvB*>Az$3?VyDqs`cu)oW)|GKumOZEq@DfHv(8?iaMV z4x{e|@MD169b0YrhUtzEhaN-=bhoQ6Q_j$iLme^`)rJ+c^#v9j8B8nvSAmf+EK{KEdK6Q zZK_#{KcP|%H_&pN8Py6IEBQq$*Vj7KRL@7&o_|R0gUaQaUNm#vOR*>D42ac|Ocz`C zseTY%?dl(|WuervMAaf~R^sZD)LwXY36omYp)zvf!_c+qdOZyK#?mU6D}Bukh{7X5 zf!hh~jrn_{l~I0ARafiZHU_jq7+>>ukrb|=^Jx-)gCUt(t>Dh^aNM3MN--19X!)r{ZG0g1){xMEq`t7@ply; z_!Yg9mJBw65iS39GP>ya2d&!%-pG@}072O)O zLKw}R(vV1!p<rP**9-(ZO z<*HF7Ef?Yr*A73A!^iIjHePcE!~7ZWF&Cx6=OdyX6dRUh|sr7_x20I*ZTsTjI zGZ*LJ$aId zuq|+!1zyt!DcVwaseo}z>1Cy3An+@!DL*iR;EH@fsxinWIQar-E>!V8rlEzB2m}&b zEcRh#yu-XKnU}rhsf``7z%f^|`swny{22dv$8A<;c60~7X|Z|=R70#^kOrSvMb~pD zZG21X*mbZ^HxXD_BAwwk-~QEe+*p#M?nC28p@`Syqmv{Ptk`0D4GUki!#c&>7Ap&t zKR2Fml$^k|o){-fZmMp!UU^*O=xyG?#doil#i6O%smq5*q-u{j7Tv=P%wc7C54!^L zTy&=MKuKYAgRq^cvi^x~Q(al7pTKhLG64IFl@6PqhOyT&Xv-R=8}#3Mm=Q{*Ak>Wg zLMAPV8I?Ac4{$4zl_R!d9ettd0r`Ztl!nR&khfy&0B8}I#{gFOfE=zdC#maP_nqwa z#b(b?_JmQS)2tpcEi?(t>t<4(jz9Fc)A6rgpyQYS zZ9hgOF+&OKh)8FW)|cpmX=#;_-`8!6#qAA9ufkXPl+~O$j%YmJ_sB_OtrA^Vhbwl3 zec$hC$O!b_(~uK5i@cyS&M{sJXK<9+?wc>YA2N-qv59iHAri-^>?5l=vpKj69kO;%(L#IbYwqZ z@tBoAih2KW-btDE{00Y8Y}^{7b_)d}JNe@a9h48=<1&nup@jtJpK$FpZy_2h<1TOd zj##sJq0K!}Ztr4&DqWhZN~}CI(md-$Rqbu+!K}3O(l?k_2tso3MP$cIy)NN`tnhdw z7;_&+2a25Qyg7}FBlO4MvE8t2Ygqroy)?X+k4w!Vhk_Rc(~P=^+{IQAEdOkzo@>?C z`&=BM#@Bf4Hp?;zVmE?vAUHQ!>P9jkV_OtI$87z6}XJud$ zs6CDLAi0NHgjE&&(@z;jJ z+>a43_UvUadol>?5?xW9I+$0sO4K0!!v*pADO1s8%w5RiIFf|*jYg6heItnrjG!E0 z4#osqIvRIh&vj^J@ay)$L-;1jN#k;t(Xg%ENh?cg_ZW2&jo>qHHK}-J_r>Y{NnW9` zb9m}DhvT>Sxe+{xoAB`NjJ+=#4(_~7?uJ7^Zj~`t4E5wW4Yzu{LpbkS{+r5hN7uy6K#5$c7>*;86&AC8;1A1Vt7jtDhR#{ zA)Cpff-e_!)H`JW8vCTL53U$p<71K~-T6S$XuXC{5)Jag)}o_C$>dgWL2Cy@t1 z5B>C-E-ya?^$DPcdj^;74esx0+&4hNj^CZh*0Y8*Chq_p-(S0y`~cm%mKLp>USqs4*61Wxez`hE zu5OmA&T=(Tl3m=nPhy3qzU98NQAO!Ce9>O=z2xna`n{Z8ap5pC>yHU=EYRaJ=57Jz zd zwAX)tw^l~}QIfntq28mFKX;u{MKWa7jlT0#wNl0_m&66=PU+kC47N8)YR+)gajI?N&n*VenR(G^QAMBxG1LNJNAZyhA3d|D^Pxex>-D>Fp zCg*sHR#x``UeT8wjr3URu~z)g{#ZnU;gJ!~Q;sU}Z@IFkZ0}YytL1~HzWN;5`keon z6nP7Re&^<6=tZG~%L{!#9MwjSdDY%I2l~x8*?3{2``W$_yVG~azMRyUHo;F?+je+0 zc#2j9K2Wh?C39jE0zFoyO(>aHm7etW#b^z$a;i)CJKKL@$-F`0^rpZ3bMzXi?6*n9 z=S4@#qp68UM%`_ob#zdP@%l&ds>&1Y75b=Qdq(gZgDe(<=Z$aY2@eW>!At`Io2(wa5#Tfy3FM=g$+)84$g61P-x~hO z^%DLqg2+UM%B*&0C~C#A2>jZ?h#p#@a2a1779rtTix~G3Fy*ZZ-aS$dvH%=bPve#V zhxh-b%y+z*@w$QoJ8X;7NFZy@T4aswESp3^?&F2rQ|t*zxbAf1Vd_#HvFwg?*BvQ< zs4Y6NLln{}i}g-22DdTUbYM)p1AAW66QMW5l&BQ$i9A>Q33%KXherx5fQR^USptv7 zitlZ(oaFRo0lmSit3noIbC)a7lrVaFG;0C9T0|P0S>Ge$*+>wkWK_Ikz2eoK6e#hu z_}~9@pfp-{5-2UyP+DM}bBqI}8-Y^X9;LVeI=Jvd)itJS5%nktNmCa6*|kjdXCUmZ zS!}HAB*{i2UKaDV+gfnWw`6!-ru+9(@Ct8E zg;&i#9C)2%cQy%Lhcb@@uOxhGHIesHSpsPGM84FZ0Czs91>gc!c-;4bUCW+J#jYRz z?sR0~D@VkxIf5+?e)ZC`<=}Ik)3Afj<+{;dB;oVRkZ#Nx-m2M}c(W%Rso6H#Tg6u? z^z(kb8e~d)u<$f%!z9!`<^Qn%X-De+ve%E&e?g7I`oAWYN}69j;q?EmrHA$Z zTGvtGUlr%SaXBQsmw$5{rO!r#1REX&ywo(z5$+0TccA(SE8hE>8VdgLugjn~u1KnKRp=c{$+Etg6{&#!|*-lhg5vu{g~6$2cLIPBrdwAwR2EJMECz2zj+^+9L8_D9j*UI zh0q?y&wpoBn^-|1*!&|I1!J3jB}AZx-!N?fi~&9ku`e z8-6nrcpZ`7+|3cw5Yx}+Hy`fOBT3>ne~u5v^QO%^EE0hYO;_q}oCBYY zuOFV`0ddRFJ{#GAayGJ%D{8~m zYCg1;;(_&!_HXsiR4XE*cD}Ha@Hn7Q{5snS8qilitpPo~bWTl9S{1R_d#(2d?xKpS z`BJUiKNM7mg3pU65Xdl4@&-iMry{)sTm|0{ZVmAO*gaOmZ1-HlXwsj_L;p_g0YeK}V5 zC7E8L2Y!-XlGaBK|G3QQh@&t3?KuUHl=b$g6`G4VJmky2I54^E-$#H+%KGu=@sCZ+ zZwfq4)ZIvh$HMu#9}YZz9q-4Xr&K?Z;jwZ5{{|j6IURA}asRW2!(+{|RCuiavjdOm zx*w@L^?w16-OO|fJi6#^q{3s+yi|A$kN0ESzYc@PJNteT9-5!#XnxuZt>ZQjw>wOA zx}=x_TD907rsIAM-hW1QFu}ubInVB; z&A$(^-Ku-}$Uhxm#+AOB76+Kg_8Q0jJ;mvTw7we`RzRff-$Mq|NSpR=8Sl@dmwrwQ z4*&QL$6i`F1D?BxNmydtldg?)4y~LUAI`deIKzn>>Hf3V8IBm~fKOc3#*IQL{M0Ob z4pdWscIf0*-GTmeK-uZ61HV>1%D@}>7`J(1?RBzIz@~_p0(+$_rV{jF?;qUcR4(v) z7Khn5{7##YWI8`=|GF?3N*nha3U~j}Ou4gCizE*W8L8?;Sg7|-qeqk0r z)7{<@u@;^#?luyi=)aaNx`^u-0*E>wF+Wlmtu`07z!CMsm5GO|g-x10dUe8t9&5)3 zOZ7YJ1^wdQW1JU%w_iM@80!Y5hs5Ed;|k`i5yGsiufei-Q3vbV>^*d{gcxwgbr9d$GZA-u+6Uvd);Nik@KIHiuTt6YsmG)r^A)yHfN^JKjY+ z?ZZoDRCub@6cK}hK%a)iK(C@f@}!YNmP950r;?20!QIjzj5zeg*3! z4t!+v*EpoaJ=Y><@d*xNLp*t_3f8fI<_-@e+Je!Z|B;(H3tyS9VrW7WKE&aYO@Zb4 z9MI9uQ}kir14)!~EXO_S0$CrrV{BN&BWRNRca9)WheKxCl^+wu4y9eb#AZEPq1Mgo z6nwHBP+EC?W#;V7uvC(;?F-O@#2*n7Q=Ij0!b-D2ooO6MX&oxwDMWD+iWt6xgVKzL z8wm1CqYN2)Gn>RENbj$yfT6*zl~3{YI*L3m7jH3ZeShhw!7nakTj;6T`(w)G$Nnz9 zA7&P>bG8Jng#&B{vwsK%(sQ#oz)^L$M~}Ez7GbW{s|>+RKL^ei&xCBO4{GbPnHJKQ1BkJLVcA&&?^g3@Q5gn=o6m_`M!{y-PtqxfCWgh}@X6C2idW-To?L=k;2gLMue2{~Prg>(!TrSD+KCT~f(1IFSicQ?p(e`lQ;jVufyffQ z1%DMkO7<5fe#g4|Y89N{7u|f`g?s_vPT?$8Yh;Cr1dHV9XIoxrmu3y-8FORQN>VQ- zkLa0R-tdjtNKYX>Xz#n4tATXWgJAGm(WG1&ivOtMA@ZS&ZNh_?fCEv+PxnhZD_X%@ zxzs-_C=$jeQbL>AvMh>Jze+fz)0)@(O+CJpO>urem{|_1h&A5OR&Qvh^;Cc1FaB9n z(IoUo$R&dtNZ)kJPfc@L_V<9GC}ZH#BjK7`0?$PUOj=;WQ=&cf>%iwW$n8?|Sv!b> zQF~w*ZLe-*{gCWiA>o3a@D8xKh9A2aTARqHA!_|-&1(Itr))AZxa7x7jf zsnEI~p=O{yIU8s*xZq5Qxs@$e@pUUA7!6#NIl4s6Q3dC4Ru9Or)?B7S9|AYQAB|ec z^^Y^7yaGw_mlE3}-z&)Nv)UI6DK1w(bQsfcX5 zp&N8V{y*w=7mrl!`X|DM#fkVfCZ3=Ky=MM3FPR~HwTUEX?Qtz(4VTzq4bg!(HrUO; z&vexXN9!Ry7|B%&-Xqk3xESms>6tUmx?Yq-(F8@5Yx6%YR0C}llp^C+LFro4Anwr# z$y$!9Oro-P@Og+notQ9(z9cs8LvpQY&a1e8k1meSb$1M&r}{+K1#;qp*}Ba$B%?+9?t#Q;u(~gscQ`jjfY% zvCc+aFR2UD0c=*Vu#?=HuKO-?BvJ1_Ac;=79R~$*ASR-L6~mAm{1Tdc;pup^69xAh zW`D0W@-j8Xy1s%trfXEZhW1j!=T+438Z~%A69)7WCoa0d*+9|>vE324!@+yRMr^jG z+ZaAfZeH?kS3MWU2mkeS-#<|~SMSjXe>1Pafy*UOh#9XB42=#;jK;1u@OSyRyC-;Y zdZ34=v4hBdU&udzSTL(o_wBJLBuM|AmZTAvFZ4~c`w^U)nYWf!97&+BfUC$RfxW`- zW@HkK!l9YM)<+_=R1^b&=B6w2mz|XS0L|D;7B8COA4!fu#2CEnF+9L%h0vEob+)__ z{RaGYtY8_0BB~&+r<#%6+Bzhg;<6jlEQ>~E&3_heVn#IxzOcc1Vw4h4#2v}1V5n_0 z%8*bQ-wpzOM?8)?a+aLrwC7F<3(X1ir@wPXIT$gKZdzSuNRSVG%tb>-hiUj5AN92M zpDy%|Ul3D~m3SW`)S9iJ!LD6W3^=$YqWB;OI}!weF1dafoF_yHKIjE*Pu|cTe=e@m>-&!Y)j&9D$GC zF5XN;f+PiCDK;Vm((cX%esv?2U?8jQ) zImJ2T=?wYuRD0B(@auD^T|Vv?MQc@{uuBFAF?ZhTI{NZv;$f}B*#jp;J&BK{NZ>OO zOy|paoL3RQWcYh}P@;%t-X86r7(Do#kbZUnk~^yiUm$1mWvz83>Gw1>sxn4)Xxo28 z)+V8 zpn8A;MdI5NJmFUd*w9S+91#-_!=yhc^X;Xho}!rlqN7dqnH}BIBMB=CJdJnFkr(_Y zy>l=~P~x=c7;_`2P2hxxT|%7uGUY!Ni+>yl1T7wYasqHsHoo1M66vUu*edY6jex!3iNoy zQdtR?_4<;4+FM2?A^^*76dWLiCsbBNAqm)_{KUv)GyxrGbFEw@vVcS+i3uI^B8jcL zv(!L!E}BRYZ{q6@hhAj%!dFf7hG$HHYHsv~Z=f@?$6MZ^d}HiS4QJ?s+mI{v(cViv6nwsha)Z zbm{R%|9Rdp4#Ma!#3S!U#W;+=B{UJcz$&KF7_EeZc5#iH^5XoA@qD+fJ+8jn2PeDw zCf=ie#5yMY(InnA`96;C=*&#=4=hQ;S5$%35(GUnL->8Y|0*#QAb0!FhB8uJ!fJxm z9#c=c#AVj{z*eK}GfDb<%lrg1f& zxtJ6|=Bj9voEpsmmUyWR(vusbPbj7A-Xv_2 zw&zFZ8k)a~y;1BlZmXZ&P=-5JcB7Igsp^!De~rUS^nIj=&bH!!Y>(xJ7!|QfUKPo_ z3fQ(3*hh=+E1U(@TE>z0B8`ZfA;W!kG zo!W&#^5f-FH1EeSnM85NAWy+WE=U`1qcM(;9@!8kQD4YQH->=AjW zxEZbANb6JRSxJkebqjueh}eQ3jk<}_`_RWY8C$_-tcgwgX}Sdpb?wCR8>Ta3(2s%8 zWsGgi4tI!Q@_`%kgFWMF97B66tew)v7^JZE*rnTJ1#fu<4;^GY)KD6_SJ+Fmu=TXE zYBuU}SOeQyP^2r@jNg9^DDJ;Wiu)m!9Cu8-Uau;;PpA7z;? z6#Cczj|o{gUC~39@t!H+HR#iNymEwZn`8cz!A*=;(P}jJbXKD&8E#G>Z;&|) zMe8?7;YJJ87$k#|C`pp-8zD?7wyv6kEn0+IsA3T_%Kd|0N zwMVJS6H5WHG^rL6k5Vm72@P22!I4+0mM-yde=(gp6`jV@d^Hky;gPJ>s>`3)LbsK_ z8wUFKUXUGt7&{e>uGhG>tMZcwL&&}|HZdQSD|J1EG|bU^&UVBLD{p0`D9oB`@1_v) z;%j ze0#!#)VH*&Ch2gKC)81Y(UUJ61zODJLPi7a%u*wSr12t^zSBVryEmesM!Rcx zk#Kec=bG|VPL&HD=-|I5c%Y+EC+h?;@zzQVBm1@+(u~^wsAtC-wQtHZ{B@!;*^fKp z5>es@TXSz!1{#BF6u?*JpwR#4dZa)08kxECL<*vS4b6;REUPG^RcaWgoI>$V!r!y8 z)MC)lYdQ?SJ8YQ(r{)dhCtJSk?jM$fPj|O&Gy_5u{!S9essxHY=~Ey2q@>hfUMFgd zoW*SteM+{Mv6M%FxSjk6YHQ$9BJ8h7PWi;S<965 zBXu)41wWGMC)=U!UPq;Fd7Dh#ovuR5PWErm{uXE>l0WC^*=i7f>)1Mt4y!|}<~}u! za~Q{CF2+%FirR_u_hB5sh7JK{(XcQqsY|uC(2&>R9gaLq|2Avf@&7`UbIScOA{Up`G+p~mviE-Uj4NmRK)6q^eY z$_qW7y+HSPaK#4y*-^;O^_yFqPMrR3J9L39Omb+VP@(IxMBxD1X>$tkSbv+}E=`;i zYv&AEs}WpS45fr07IWipt2>!`T9h=W~khuj4RLo3gL2B!T<^Y~8eL6gDB-^W;uA zbUe+){nQ975}lBZc87n+I!q*wS=f&bC+*uO*Z++6agvl-i2lG1OX^oE*)Fm`Yd==! z(TI;y?d0qENz}iuy3P78YhC}-BE9qgsQnm-mK8-(k8{7D! z?*Gv0{#u;1liz>Y>izn}eG9+jdEe(BOIM=*>EHZx{~v0*zWZ9&SMc>u*EhE9`Yvr<-)&ody1veB z*SG6mN_R?(_qIJhUEgw4gErvzXzTh;+Wph@&1}2A%UajB_Gk2OVB7VzYhB-H<*a&i z{3Z@VlYy`nnxf-_ICt|F-K}MmETl@iw%@ zf0FpcCvD5esjcfP*zwcjeW307PHtV_)jxxO``WH=9r-C!#yk3F$SYUd_04TvU+K?~ z&#$sw&<4Go*Sfy0Dq`*E_&mMs`o17dV#;_MR0QAA>nmuxzWZ9&cT)XP<`;`K`ljsj ziyubemOJcm6V~dpUKZnqW8t_^*E;|`r&;{!#dY0sE#IniTk&8nxIlJy+9y<7@sCK> zuaofeZl|5Y^{I8_R|Fn8aeXTN%|sjT{i0PHT7B008Al3#{wVu%4Mep`$UFG5XbxH7ERn=yH+qJG=lxOSK|E_+2+x0(6 z9!Bsb(SJc&E9<|jzjxd9U)s8UHWJgUfA#*a;8Wi=zI;JW#+3fMq<-(us{hV!mr_`f zaN)J82`uBycFf~THBzxrE4xfgE<`)hc5BKOXhHMgQJH(@il0-qQKxe0hwoe@_0b&; zIT(Z)Ll?tr9bTZ{tn**u4qlk%FTw<|0Mxr~r6NwF_8=byXFb=>xaU!+!gTGw!!apb zN6)N{qw#`UtzPvw_e^<(6TfT`x^XEi{9!uyQ*RwVib8V0%ADB*-*vNoabTyg7yGz3 zx;&?f=Uru;+sAoTD|Jf1{iQjJOGGUQ>K-<`mBDtIxQ!fx|5`81lLo*Y`SRg9%r z7VlgkGa`;*VKTU=RH~|=JN&>X%Cl)>dBrLwu|K31dqBebt+bkx3)Xo^0BBTjMCDF? z8jTmSvd_!vnfZ>Ks5p3>RlQ9$^Z*UnON4vPqJMy{p z?{u3Z^4;M}fe8_rp>YdnS^BiVU9?iSydbS6S6Z&8NzQg$$slt)Y7sw=z0$KXN>Q^C&7$=)Da3@xQ9#<o1(Tp zv#AaNY_>k!bTAghWrfT{W^t)}P_91+tafnB@vusk&i4M0@@Wmu1_{Df^n%#1XHFHi zRTuK~a}QX{X!9rV^9?$2g!UYJGdOy7zQWOy@e!Gwgr##&&{(Rs zG9ss!fvJL}fvYHl-|a*kC(G4=TYc{kKdrg&COKmY-?^k(f;-x=mGlMR{Q6S+$evcm zYRSe+m2A9Bi~a%+j3~LbH(Q-LX;CpjwxonUH087>x`T~PYFp^kW&{Rf($3W0{&E;d zakq~M3mJ4A-DR@+NChfwwDrI>I_j}McI(J5VKB5NZGCsHO-}Zv4UeTeTO?Wf90nEl zFLd$&AL6YPHCQ^icJ4qREkfJHPfz_`I$so z@HHbt)j!|}u+lp?P|r6@t6z&=t%wwK5>_&)U}K_#;@{}sgcsd6)<9Lyn}_+6OT@{E za28+aTVXD%qsIy7N#@^i=928w$Nsp=FZy%&i-QktoSVSAvdJ0;X4x~F#d(_E@U^g- zAJb=_0XAe^?;OsO#9#pl=v?$?jSU-7&}3wxuS5mJ-$#_JHg4b^smJksEm*x=nupTEh1Ff_40TE3Pk0Dm4ZT?0&iW znQ(dLBx5?cz4tHUcN4$wsOMuZ&$i$9YW<$zNTP*SwhO!{+hhIh;!ZVht9xpX*LtX7 zk};)e#3bWT6Bi9%anV4bnm0N38}-Mi?aIg!0GqU+;H^odK^}6BaeqT;`g`i&<7I)Z zk*xsbrvWe+aJB&eXFV)EEa-l``k8QiMxv*Q@fVCeKGS}m)%yJr#!qpl8Z~~Y{l6H0 z3c|?vOXpnFA$9ms<#6`X!ygMQ+ZcX){&$xele<4Cej<2i z{2KjYQdzLNrrkL{b9Q=Qcl5*sWpk=8PS>~JM~|JffY+~Q*!RLCB#BApA0>JpCuLzk zB2ri)G+B>kiMm>W*GT!NqPlU43ho}IvG0?q&N6E|_^_UqEHCm)Bdl<$MZ zH%h|!d&IH1a26v zT;f#zHJPWQa5aZ5Fp*?GC2ezLG=Ew>?~gNGq=-MQp0~$EFw#f-1kGYs1YNG`Bdz?M zfr||gSR;pE`9hP}wBBodO0MzffWxHF;WEcQT+N-N&>|jZ^>vnz$D)f`$CfDv6(z3T zjXL|c$@=_31XQ*)X|s(d9|I%hXN**5w&uU90LwmpkK=wN2P+~k0&5Z|A@bA5c^4Bt z$6I?$CV|zl_QOLHzGik-c#2k3e;&O&QCQ63gKzCsA!h7gepLP;WPJHeCqfk90 z60Yc%TDKD2Skwz~8pkg(x!#Z{dILqXIwwhCJNa;zn^uC_23qnepjH3k{wmfwnK9A& z@UzXNyKg+%9umTDBcu?!_@%hB=hd%kE^(5{(^gItOoah))thLH}po^&C^gl^ciTvpTW`J-R z)zk^rpLH$7_9$_a*|+nxTIjXoc!2PkT& z8|aFnZ(WcK;1XO$r~_qVM=$I58TMD7$yb`LcZ%xfD>_vDk&2w$B5xWi>iOYI=_3v$ ztkRcYI$CPgf3Z#Uky^22aJbB6lhB#WN@EbHIDP?|i)A}}yC z#HLwQ$qnl!@Xe$Jad^B+H4u0u`b*KHx&l>zu}AdRLKmm($G=6*6Ek; z79wfAsud!brRF!eE3?oH39_I!^@Y?14M8RZL^ zlQyMD(n*doobKW|by(zz8dP9237j2$LGa&M532L`_KKSp#)9J*<2Aq1TJ4kCE$b@u z*pWP9%^=w(lUFq|S+^}vYvzmKeH$a+uVOe5< zr{ZKKI9;7@Lu63giB9>KNdHp(xs(YY;k+gOT#6hLkB;WgrR#G`Aac!_qQ8rcLb8J6 zN9!a)yAXIcAMe0>;B|I{(0lPmUth}diQw|AhHj96~1<7&oS}i${b4ZRd-3q1y zvTs|Lxs*I@Mw$>NAM>|Yj@mV7=wq_AmII}J2BoSq7hw+!Zm)IgD&)<*GU0b8ISW>S znOfgCY(6D=Pr+umHRU)ROHoSqdQ0~=lOk2bhK{v|tDA*?`MxtOqS5kqk%r}vU8DAO z&>z=vqi%%|gM>3HuHX)j&vu(L)2$5~Y{sxn=p^ig%1C7(5fGfXbWP}E(cd|KHPA_? zFu54l_`G){TM7D!I#3k@(TAuM9o!-RnwqB*mJd-4v1% zg2kR({N2?;tcSq%F;vTzlyK*GTjbTT<%wB5ZFgteU(M63z;4(H48&jUbzWMJ;5ZNP z=dA^52<(6G49~L1 zkX;Yjakxj0Q8yGK5ycj`TtiLPsmItPvQDB&;SFa9IS&+=Jj$u&jL!9oUATIJBp*Fsw+NbxYp~2}<;vN@W3cB=>jLf3_wpj9fz2JNx@u z|NMpCJUI=YcQP6%Z+Kn@K96om$a1SrmkNBs{{3w|)!w?+Mv}u%1QHqt+>9!+m!+65 z^rL?A3wiPtPe2>}WPm(DM;9d?$oN8sBF`n?C2HF*3%I{0zjFXow^?4z=T(aSqxWlW zYeZPfxuZHk(q-@eKtL_gsKJ@N()@+OjD^!EZ9nYVQj0ruu*I0orb?G@iZHu>p!@jVVE0t2&k9-6n`|+5;b$e&()N^c0qV(LwS-#}jq{#~67W z%;NU(LZc}pOo0Mli)A?#U35|oR$l5nki+#wJKhYHhBF64-;?Zzr3O(!96RhCJUPej zlZgw)E}4C1@`3{Ua`nMXK`hda1)54@?-QIfULD99E2;j%7k(-ej-t=_f~iu~jX8m( z(e})?x(!zmYr%S>#)uBk`h!}2%;dDOEoHr>Fw%fY$an_W7{<8XOH3t$hN6p;hH-pJ-7>)@F-Uq4<@L)b?* zF2wSy0-3|ZbK~Ixk_dyO7Z^xgPZoAe+ilDytTR?NXlaRHMqU%Ajd_fbD?H|eRmiKe zmV5G6L^Ih|RTSneiu$`tBn#nOV$0snxwC5gLe&#};nxLh7@JE~Z63o*Jy&IN6j@^? z^)RsWWgrf|UcikvbiR$RCvd0pwX9||3exd*?vBia?D+osJMHg#1CG7iB) z^+{u^vt<{lp+c*ulv6Fs3&gTP=!U>ZOkcpE%e~Kmux9aMDsbpgH2K}eZ>B1+)+H}lz#RE#n7Qq3A`o(;C zv2&Yx!O+UGJ>e1ArNM*k{ki;Y7dRh%g!8}!jfd(yl~#MNIti!#0k2D zQI{bX5We}PE%iF92jnW)Yu&D&xkZ@@Ricyp0U*F?)Oh5hUO1|Xgp{d#ly~w`2G7(3 zwFZz)w{OUkqZB#Iycfm7%r5_2mS0!JK$XDxxn7#oC=7$w*;S^t;r! zf2Dn(dW`jGMZMYpH)=%zk-Tn1uM#1n52v#h>&lEe0ZjB_8BeKNv86~>C8pM>zxC>T zGpa=i(%rVM({%*KFn_KYzVZ-`3|(eRYu9Gn=}vEoH4DF!&1N;ez#x^?TB)Ij%0pYN z?_0LV#8l8qoC{RPIxwmIR!m|V7^y}n#Cca)k+Gz4U3j-dE~G_|<$8pDt=Bb4Rwvf) zj+)~1=!u9)^;#Hfz$A~@3ZA1NZq)sjS&AGlQx%7!I0&J4#V*UYA$qw}xKs*9sJC3$ zu|2htz#<|++^i4=Ute$B??A<<>nE>ViC6f&IA67wS6dPF0J13#NTV)F>Bu^sm&?lE zZsJ3E_!s&5nRV&+h%F2fJ^`~)SWmAW#$=V85ip2j=77U!X zt8&*GwVPEVB^pOC&dNd1yxB+y+-zI>A)*26*8o zV?{Q|@w&bym0FaJzs#p%w(F=p(CS2OjGk)sI%~hp43N%+pmG1Wq3j82v6i0cybrrR z{bjr{e{bvJ@$J%VHsV^AcoXAm ztw6jg_hy$j<;PJVj*tFQYY%VO;f)pYMFq-YwhU10J^agILTk?M$O&{^K_)#j2*uyl zPco*pWU@Ood&nR@amy#fxJQq-))c8w(qvPh@;*_+Nb+ZZPL>Xxd?P#?l&U9Ag;yBl>mHr7|cKn$QavcrwnxkT#qFsR!w#m^VhUO0omoGyBNz-sLT@PI7 zm;{fb`_`3tlCn*l@~%Mp9hw_2&VyX9nRT8w#L1hH4i%xM(qQu??zJtnRfBfbi1Dhy z9cp5`yQ5J%hbfffUC|fZVHOlGi#F$ut)y^(BVu=Y?%Y?8XqYxN`miT`ou^?dUX+bF zrRJsSsErVF-YQ*>&=~vSadQju)E&M=Jnf3s1b*E*rRDXWX&jMA_9zd|6CGbYXf}?8rM`zP@vvb$;&>k-n)#5pc4evI?p0q61@vg_upBF~X0?=5%mYi4BtAjiib37Tqt`nY3_oQ@v&K{U#|CU;(o z%J9?Z3GM@)S$q_!5;<e9SBo+X+OVq7IpH+3En%_;)5q51;D}=wQ@;@KnmS}v_9aQ*+nUn3R zm6^jrV^?Of?w8flI9oA{V&ZhI`-L+rgM7@&pHCGNek|G#c5CD!Kf9LYM!Q-o`pI_C zwPYD7%T;g?@1;G~+3>ki5)`3kWtE4TJ^LM8Hl>`c6oyP+fT(OHS0~mHX*-SxnSfZRduJY;*&$Dm5Cdm zn7Bd1Ox&aR{}l%3C2;sFf5)GHRt zB?679@_}iXe#G&2clDRiCGCqfwIs3Rh@P(m2ngU!ua~i8OQC2#DRz8P zv16?F^7qGl>9-EZhCp;qfn?u-B>Z)9#ISGV%Kro%r>K#A%JA?KF)ZAKdeX}y8!(^H zrl?C!?###pvAvna2S4tt99Z_mdYrtGuLY|_qG%+M?4(6u6Su}xTVo-(QKu1i5BabUV=-j8o^bRP#3?Ji}3KA1bbrnn1f8RnbR^MPYPf>x{bZiY5d;7?@VaD zdQG;c==*6`Y3-p*v8H0M#ENmm5 zoOu@_E;=;*+Qhv3ljfb$&b(hGULGU8;WzAg?4B!%&EcE)!egHYqUgz**1O?-Skxr?4n4_`RT(WCm7 zp-0W`que``Zn*ozxNf+(dupfkiEQz$lB5O0;rTF8?XE&NeaD6*A#JNWin4wK%HRxH zZZe*$F#CM$Uc1i|ddsu-V}iD-U7n(yH77}^%m29d9uV72(c3jHciyHb*}%O;tK5bc zLC=~O-4b&umMEM?jrmL9;yzJYuebMK5ih8oqK$U;gf>Pbd5+>=n1t%Uqlz`6CcCn3 z1~34Qpk0N#Ki*~KM~74DMmkz;7ih0xXvB?f_2}=FkS3B^-6z1GkueBW~u#y;BwaQ z%K}kP-e>N-&7QnvUhzE*wsbV+W+5>me;3Z4H2q5dVQv2Pk8X1adG#8w1+;_SL+=E? zRj!2Ya5wBl3trw(RC%#+@aA{p=)QJ~bq>tkM6^j{}H}r{n?>d(8ZbJ?kS;r2~ zI**yr(`VMMoJU!2`X@f~x%cOAsbr+=Cz;o^Cqrhd{)p>K(*pi_n-*bNDqqEQSMMsW zdA>wF#~99Yu6fQi&)2Bu&FVSVJm;F{JNTQ`q#kqGHH)D(5c04hBd{=OG=36St3i0o z?wvh**L#aNsMxo`SG3+|ct4@%9&_ybIiB>@zVyw^&Y@g)!GY}H z4%%pkWgy30w48k7MLPxlM(qMd4SxIpqF%I@+4SV?N}kZVbCEKRyme-5>Xo9PmLT-Y zKVyC~Hp>NTfbz}w36_6`nYMg0`nE)=afPy7{#lM(p=pdqA!W~Lqk!6HZ6f5hYP+2A2dp+*S z(bF_lI3#iXQeIW{jtqp7_ks|pvv{#evV8bR|sZksrMC|lb*ZH2%U5acQmy4dE_CRoc<}70ZTI(Ka?_`IVTE}OQ0l5osQA-NzM6KWFSN{O4uf1}RRy`; z0hItoc$yF`j#@&m-4pcMkW8=e8IEQVOU>MW@Li;=6~$6hgD3d;j~>$ly*6PRf?n%O zL(58oUqG?@IJdL1e%kT0$2N4`Iw~{jLO>w$hRi8_tm4&h^Zre9xPOJpfz5KCIiWXu z7Y;suya4L^co7Kw$pUEUlSSb8$4lf{y*yhY&+6sb8hO?%&(_GZW_c#G@Uc7+TKEKX z1F*|80*iHL{DWZ%eT22;xZ79OONV-S8oqFevz^vAsiUjZ(Um%~r4GVfmgRVg)&;)u zF%jWPW?$%Oq!JetMFPVK$IKo@?8eWO?ccI z(8S&XKb|K{9LHi1E5?QOW)`O<>#Pym>xRbC**QQe(y{7y^^qMETX}u;#^!DC8Y`vWUuEJv%bxf@=WSFU% zO?>|&9$#zgzgOgnE{PSFm1OMg=#BJh#np6#PCA_EIk`8xye2;mCpt-;UZdI2bB=@D zN}(CyL669VN})YZX{aHTTUPg_-8L|45d`dg*YPL=i0nHsi-CemF&n~Ugsy7WB`+b?+)Jp-NBD_zQ= zODWz2XMsH>IZ7!$)0)BH1gt6U1W69t%#e3iYu#AOKhb}!p`Xb@%$2LlB&S@DuScAC zM93@9gi47^@fQE|!)%T-a+AX;(f_pH46ZoZ0Qt}-Vt}l=MZD}igGUYu40kWY!=Dof zOYlEQXR-Wl;N56W0;S{j$UXMke{196W{4ok?-w$^B7S=Th}bV%Ae374 z=<)0^>;*=xxSspu$O2aPZ!fb~_qWO#UQY1BX0VlV3bTxUwR1*PE&UCxo4I7(-8 z7d=(FmBY6Ro#|)3?4}Kh_Q%m{jrEj_4c6%iU7@krDL~bZBYy%pfTwMjQTyX$@s;)d z4Kiy3oLPH;rT{&zn_`pcLIF{YWB`AaH}P5{B9)RY1%{HRN3##49h<2RPq~PaPD_XrnsaLac1A((%b?A{v+#ysL->+wy z@q>^Z09Jyz*bWeMKHOM+h@&i4U4?-s+6j8C|Efj#rkLZ{0vBzIlLy4bcQBj0!XD28 z+ilgaY6RLQl8~xV7}=Hm-d(h6_DymGL{anXDe&f+87lq9h@C1I2Wh=yt0b%zjpk7M zX}3Uu5+^5~I}zE^Car#Z*4l=fbsQ}x>c0JNc<^J3Hr%^lGa!L9RP#p}kcU7%)n1J( zXjssFL9??%C}epnjJnNI^|?Y0d7Q-J(tzn4%abSa9PgJvvzz;(6Q{M-|PiK!e=E+8@C@pGR=a)`17_#3Dyc6x2(C@Ve zqy*}`8+ZneIi|nnnCfK6!uA85P4lu&Y?_}T`ieL28|(T*-wEABN#gHH&vJO|yz}6( zFCUW>qmt~>qv*%MS3AcFxT@2In1z3Mj1VbFv9bZ=YzF^8zSnWnk;2l`ea34w65iA;nGjFvRbQdQ2R91 zVqiW-z~-%V7$e|g%%>W^^8bbORPj+W-epSgAajPP(Fs$8eE7=2h zra+tocX~qX5QvLKq~u%`t8sfb1rIA7;YKBATJB7CNzB5VXjV?(pw8oUoq>O~Vkve; z7b+jADu>L}xjR(;+S19q|}^JVoLOlWgFD0OeX9ryIm3CQdb*>)qe#|_Ver)QfH*fo6cf9Nvd;0@DwnMr&vQ9$84pFABg}6_2GuhH~WQbh=%=Z5%`#PJ)!Eg$_F60uf%^GJgQ0(`3F9Zo^0>e z`?Qw^YxUUMw{P)mdd%bn{XWO(x2jL?UoZP30JYDB=q_6#bej1~%F|@J zY93>}m{`Q(tj=VJ>&tro&vZ?oL~PV}p?0@Wyj(lIP2c2T6*m(h<}ug5-&pXZt{E_^+3D^TaTvf-LAxdY7`9~EMr zBS9trM|UJqBG#M`cy_+OQF@80YHbVD$4RAeP%o;d^5p(0eQ1>U3$R;)BoLhepJ#Ew zjGwz1xSkVXS+)}yRkuimA2Ka?6Ht|ptS%XHwy7_4>j37!^|wcy;4Ly1#1_bIoZ8Au zc77A#D1ewOSb?9o@}!Smjc0x~4dGmXJ6re`R`1)buRh&QXz$ri6yWjLABiGP6`y~q zR7MCPdKSE9YI_83f4b)cXEJ?O@iR_{mQgnzzM-566#+17aiuT;&^Z37^A&*tyGOGX zT+heh@^oqbOuSKu4qInEy}m_Bv>TOOgL$I(GAlY+0<@|wk<(O1P*i!}@D5B`^r%{R z_%9H-iCpd>(~Nq#$?9;B6FE?3$-Aet^ysmNc@9$*2KP8ickDUB|M0>RXLWaYs?1z~ z1P_G|eVK`xC|RkZH*QVxkxCw)8XVbS5c?-{q~Nf826uw$E`9y}5odw}-6KI}m`Pvo zu=C9Cr;V3Zv9XS!Z5_qGdR+@)WF7v7jn)T}-3{^_B(PEO{#}ltOK;%+2W9Q@gqqZe zb(Tppinwq&KL?iYFB0166)lx(cPnyJ8-8&JV1!Bz?rKaWKaPfUc8jC9uQ>agQsdI- zzY-HJ@YDRN+aDCa$`OprO5sxu)kKU356jmD;MEsxM;!TqLQ!F?RG!#kr(2RrdToZl-OucHkV(z-`*3tlEIcS>3GEABFAsO2%;-~ z&!>{_(3mf-{mCW{rb)pEZ8g`Z6C0(H)zZ!qbu$9teK~Maa&?&}#I>A^gFMIG6*%or zz{wM$aN`gSr!aZiMq`rdDf2nn9WrD^!OEMHdn>K#dC_s&eq(bT`?+z?tuTpb5w$qb z9h2rj_mk6rZdPm`&N-@eLY-6PN_@eog=<`Y7Zy?(xn>tKRMDS4Bl!x(JuKUOChXQM z9&@AQJE)92G~hrIwK9L29ls@qmn9+6U?r+G{_FyOa6c0KAqYa4_ggjHA?n+4+&qQ{ z3U$O-D5wKcD2|c9o@p_Mi|#*_@tt*OpTeGG{u0+elJV!&(-r>Q|3Yj0x$um`@Tb4v z&pJVZRQ$EL)GpK50#H4JJcCE%24+eOP7?0C-3oVr(K>-q zCkJg5j8f3%S2o)8cF^Yc(JK?I!?tfIsns_A9Cyfp@1MwzWxf03&&D4)UL}QJo34I+ z2^b2w{__o-*DTH_yg?tia@Qj|a{vN-B{56iT+&gJK!|)F9`1V)Oxk+CQG%1I&PCVh z_4+x$%E~wgI|icTttb$a!L819kcC)M3TN?ePJ>wc3uY; z{8BPElWh@d!&ZwV$g5V|R!cxzCDc)v@hw~3zRnM!k3Y7J^HNPB zxdhBd=LJnXA_QD_F7YTe1x1qoy;DElj^f6^1TSa?9-x^&Ai|2=86q?MS@yqP!0L*Qo1Drh1`54E*xLHl~*O!#w zOK5;e7T7p`DEojIvP{<_8%5KrfN{HS0_9k_y=ZlY>B8SP5UtUy+9Seb8O;8>LbYV5 zL>1d$T*;Dge%v>Xd){F)s1;~$()(RXRP7b2kKeXbmfmDn-*sAd6Y$q8K|nU zzSs6nu_DYwlTyu!Ce>w(G;9{$-(NN+1Z1{7TfB#g51cIUEo@v(j3D-ZDH>X)Let_s zi}p`WYlJ-w149dlg>F4XQH!FT&I~c~F`ql)T`R+wF13J4JtqI)wfd zKDI%BtP3@-(!~<==dz~ngnt}Pc*q}-77jfm)-S5j1SJV^sg@IuQi&_UG@be!`)jY@ z?EEyN?s=A)YViRQXwxgBkuwZ8`YXX@Hi!ULa4;@8vYQK@TkY=`&C$-n_!~YK3$?gq zi+?awW6bY>o>CfWA+Uq=CNUhG|G}pPZ-GHZouo*Le8nGMXuIe#p##=4e^A=FQJW*n zUUWWonnU7xOp=saLWhE1t6Bm*3f>}`NA&E9C`WHqu2IKLy7Ts`=LtP>&0+Gd{dl3baw=C5`q$CY5(08aCB=R>w z9{zW7>>In>5NrAI}!ga{otcy94TvT1J@N&mCrtJvZH5^b!6s z7*fyq<$$uR=%T`ujn2BKpZB1bf@q0rZ?eo(}h9S%aN{mYjL<(CO+GV?@@9-4u zpLK!Yz1y77(reO!;o*$!tc-A-ilq$;Ulbh{%7}_^?#O|tfiJ{-t9XFiy{|q4+b(44 zQ}jKF-*NH>Xp>VDLxt11uI#4-${wQ5lt96YNj63hV75T{3(m%(j*0RvK(IFcO$im! z?(#$#ThyZ8n72quzzQ3zivp8<;mO(VhHu(i-fy)gQz;9_;H))iHNBHJBo=r=87l-X zgDcil??!J)InDhy2r2gXvt`fU-B^-C3v>e5;8P2E7Fot$8*suT6tAM)Vcw-law={Z zV8qip!j;u=kW)_-{eL(58|uyfN8NkCM_Fy{;t6CR)E5ynC?!%Phbnfp9@@3+hZ z&N=sf-@V`ee||^u&R)Bhwbov3ZwMoV=q{0g?(*mI@P{^jHt{9yJP2p+?Vd#(=grOy zOoOBl>dRop;r15ol0-4IsvUzMNjP}cq0EyxidO=g>W5yCd1j`F#7C4I0fGm-V2;e- z_|Mb!D^!cR1O02nAHPB}2Tafxr*tcJ1K1YiOj}p1 za4;Vx{pNU;{Kz3J($9a=uLd$D1ociY>WUlQ(_9jSv4c1oZUUabBp6#dZamn(MJJNP z6*cHQ7!C%BX)0=dhjau&pJ_va*%@)UJ+r%FAS+-~NT=TEpfq$(Ny1J)!ax;p;7G|$ zixhnzYJ+N?2GIKgvjk@qKE&w%T?V{55%0T12D~!Lq?4VB)8r~~nd?3FY^-;Cv~5n0 zy)AmIXINYMPp~fmO&d_~4s>S>JteC-CW=@Ei}#Q{kYynZHRha- z-!v7*Q@L{*^P6}mkO@=bIM}Hr7$p>=^!YZ_Npe10!s95#J2kzBcHt|F-tz~x5ZMUO zdo)japG|s?NytV%(EHPDdXG_Yl%V3d!R)#^r}$+qJeoQ|a8P)MC(ySBK5Thud%a_hY?N4R^aQ}pAmD2aQdH%jzWi-Q>Wgx2^+n0N`XXIaUp3a3u)gZ7uSD(u_yp7b)F`_d$Cb?A1u&RC zo&uGt&7y$e7(}iEBSh}VYTw>)BGz;x)|7s2zCS$i(E7s#4^Ci}Fvh6IPe;@1zs^wf z`lnOT>)mjA<@Ws?U6u5@=R!@dUqgzMUduOZHN7sf==HNZ6urLHqSqax>2+1YN>qex zp=kELSekv$zo6MXNb_LNUSZ6yNM2)nSb^9KAl~Ii6%BT{hMa-3dp5>|O_a&&!qzW?hldE+-`aKKbu%q()d>ZqBe!Cz159s$rTmJ+4 z{b8H>^!r{m^WQzf4KnE2m?zZwwv5g@#HK#Y06?Z?iwSfnreJf|F5i6L2cpjQ~4qz3tF_ zRDeh=^(i+@EBra6B+(Ks2#QCPP=g^Uf zt=>JrMqXIOwe*d1XmIky#$AdB9D=M;`anIW6goKtYtkMykcA8tFl7nkVpWF2ai{MF zU{6r*wB@j5hmvIo=vgCMxJgC0xgX5&L;pveyE5ItHK6aukQO17B;V*sXbq%_H+p)f zE8Mw=TN!Uzokn#$rEKzItDoor_b3kclTx-~AlMr5$x~|dcL2FUsn%?=I_JHCKx1(u zg>JF;nX1ebG#3}{P0ZCpYqrABOvkv&#RMKQ5u_ap)#eu|->0Gz+JES#Ak3lgZAel! z6gwF0!B(&_f$772Ng}d9bsfkans_NA^PZ29zlsP6&?OCM-VhgCKF@RLLzVHudd5Dg zYE(N9)j|`PCEa1PfzGn#CqZ4xP$6o4v_7jUrr z+oXwzD;r7Z>aP=^ABFLh)Ozif7g)GWhznqNjjb~Pd`~TzDVoesH4%G+`&5(^?~Vgi z%JRdArs|4h*^gj{b61lek2bMz9BF2JwCeP4T+7_eBt~ zA;y$52X;u8GOnbzB|fLW7Dgk;2R7X7C0s>3HeKp zpT_=9Rlj+@wY*$L(}vv*v{*dd45~e}r8?bLBT^`bf&J}9k}W@%CR;M(5ryOxqMeeV z55?)O6bawQQG=jm54^eUrNqaS~vckeO2!fi-rt ztufMk?aXZ!He#T1^-gA~z^ZnH-?Jz96#MZ5dq0Mnsr|UTueBe4LDH%BqhFbUsr~4A z{C{LWHe?U6ANMr+SNrjs*JJkM&WithKi+t^y&s!LGXYZ2t@d&xMuUj0AlZjg*=v~V zA?-J(!Ak?N(%!`Z1%U+SOO`xIU{Nho5Pr&?J}{}Mz>`*2)CjRuBfdLv`+s)D!n(|%Pzax?u?cXafCg=llc%|jvYWX+l`t5z2^O@H~ z?Zu1b7Bfl@0LglS`PH5v-lzzs&Hxzr7c9^c$c2@O^~VXUjt^;NU7a;t>}Fg=m>=@a z`4KP0&`nRePl{oHed-z*Wgjztdd8>C;Llxp1V2Q-m0*!%fV*^*zzIbg2)Yw79!|n< zUJ}a#nGx5LI~37DrZ?#XHIdDK#|a$aixPdr_P>SDp}~w41CPa*jLT z4;`ibG)h?#^bC$I6lYLq*%4 zaPzEM1$Lj(BJX8l zt3*555~SsI5m+d4UV@D21*Y|*{U#@rmIx;9axrI%t3r?om+_MHxv{RansDgDtLEGAfU=nHWSyko?WZzTU~lrmHm zY_+MO4POn$_`pqyF`iB#1W@w*bEGLB=%jZfj-_{;vMbBj-$*i&eb&Z?g1NiFF_?9` z9{Y@UE$j}(dU|9i6`U@A0=zjgK1ONK@Eqg?4F+FB24+}qG~j#Qd3%Q~)hu+-v_~gV z0YQDP5`9#1YVYZ=exl`LXS4?jFWFYnfs=>@->xmk9rX0Y+im>iqSWmF;{ENv&i_#! zauPZ^O0qPWd=By5#@LOx$s_*tL#8Ez_dF=>XbI6*5!?LM#0vx@g&lH;~LNP7dD1%H(VSTjaBGq-^*>YXBG$fgO7QAU}MSou$NuyAGvh)cE};R;R^Gd2Ou zsusO1z?~%_D-NUKrRM`?3)1`Bh(!Ba_kAs&w!j{OJILLNZQBNQ)Dtp9p#?d=GTtTe zThO&-iMvU+pg$8y-~gP~>q+!igj3rVL}fOxbCPJ~Yw*YW23% z-)53!-KrBz{=w>x#7|f1*1BP`V{aoks(2sfB+cPudK>F%?bXl;tlyLrv{xH@C>D4v zOo(v{X`r~i!^c77q0L0n%HwLY?_d(1H`Y16$4|>X(zGu$jZ+;K=VxF_kGySCu_X7+R;kSB92gaL&~;qLXU{z*HHQ-}r}qC88+B==7Yz1eZGI)dYl zMA4hhH~qicUoo5MzaW1CUcqZIpb?(H5_w)>fn~4W#JS))ygjgO8}KiD{$Gj zMH@h^9g*oJ^r2Y;{VkpYO!cKLUPpqSvZ=E7cuvF*uhuR#pMPm5a@}|=}&}* zP`^kckVI7msd&1rpWPe69bO8&sQ9U=C({rkp0yOAPFa=Hz9L#)^~75?m3iVX#wXk) zUR06Q$nQLgq*L=dw;)OewxZ&9&M#5phv4J?7Qb^-U$y^!J`}b8UL1E4en)CcPRZ{O z`XBH+kXHc-+2JwaRP7rkuOIN$0Pb-cT+>3qSldck$}FBZzimP6{+%dIcad zZfr8J{w=YjrJW`%vTcTDQI>GYSb9CZQDQR(BciSS#TfQL1()K4HWeMwkq~2Bs>xEW zxEAp-@s&k?tN^u)4uDoiq7QiDJeYA6UOb_AaQy+v6(%3y;VK9%!%rvrjMA4(DUkR= zo)dXL!i3xh-Ee(>gWg=fsP|u)P1-vX6s?Wb9PY`bh5sA=2C^si`6Y>yjoC@jM>_U= zsd%d@9<`2-!r;v_lj4lhRoJ0@iA%fYX1{H3MfK6b{?CY&OzzBe0k=N=KlSnEs{QXGYl-_(fAT2p}8EdIncz z*U8(6RI+$%-bz~O;Q`?jFiSCfm)mPL*W8YHd^)|jTKQ9jX#Ha8Z&dwJHF(#;a8Kp$ zkIfY#exV?t(?o4twUS*XI)gFQr}%c-8(_Si!0k00ulFjBwOz5vZu$Diae60<`D^7E zeG~Iwln2!*+%izkU6oy9jn8{N_b+Uiq_rfx#Hx#43}0pDk4k?C9%7cl$qCW^V`noy zwXQhI7s4sgulJ@Onn;|OvqpO}CNo z-t`2kjGziL-DHn{5_sQ9yo{zWsF8Y^w6_d>O`P6MDp`iH?mT3Q!-tbS62u$Ky`lsZ+Dg~S7lO%}{lhQxs zLY-{OdzHR$`N)&pFC>;cC4VQ;G~`(@HQ4b5ElTf87C*|5dKw+`zISr|suj_^jd_WT zWAJk{GPcizS)ZvN0S4|Dhd{^(xQNA*H(MDO$d9)}1N02X^&O`E(?I#OIq8IZF)x zM%G?QK#!_e|C1PZmG!viNBg&|$A~Te7BEedQBQ6l0ZuX5D?lyKSoZp)(Dky}I!}*^ z=ms#!mVe8a;1(?ZmM?X+Yb^g3W$%jWkPout*0!k1o?mNB<FmF?7cvGFeK1?JM3eJ_?vGZ5@@r_C_A4OrL8oA+c8VP zSc~zDOnjbyC&S(v_eseike@Cp|kAK^*z8v8oSFgdpp4Bz@cf@Lee@CsZ%Ppx$ z{(298PS$Xlb15r^`BL4MMB@HxAOQ^y>o~l-PX}@#paf&>FoCV(G zy!f5Kf0jHH<2^jY?>P*g9}s{)efx&^N9?P^8-1Fit}&5WuDofeyin6J7E^Rb}?W zl7YVji{~aHEU=!;)cmF8zW|*=iW1`%$Y>cjjix>{=o+$5UUF_*E*+kseNafbnmujO zt?*vZt!FEw$*NKI8^#c#_k6B@y*T&PJ=n;wJ zvh|FU+TRCRYJc(w$gocASPJ|K^K}0TX!G*Y4o>UGh#v?jN~gFuu?k>nFX4aJiHsEj zQ^-4yG3TEgTuG$iw7dIMgcxc=9N|qF857B}o&PbzsO<6njf_Jl{GjlvPq>>n9RtB! zuotdQ8_h9x{0(DVx=fDI8S33)l$EEdrsq~C=^|!@9^|yLrma&lzWC`ElpAp|7=HFd14X$2y)e!iDOh@?8nWMhzEuqH7 zjS^^V{7J$xC2W|6ZPKu95;j)CCc|F@HE*oM!AtO!Q{Ik@{aR^` zUp3K~Tn%%4H~7&n_55e~tLb5Bt-yMT?WCJek4?a_y*b}U%=vx`5y#P`4j-t$-9A@; zdzIm@)CU0gJ7;Y_K90g;?g;+EJ@D9STG`y%G}{DE3!Tm+Tr-r-Civanpfl+cs*UGqIoL0hgcl8? z*DH$ufX?nOFd!)iI+ImW+%L|HE0_;HWcg(7-rH$Oq%5QsD&7wMPUV4Bavt;5b>m%I zX;Dq&7s{9Ua=_0}^t?-aaINM?zrpDTrovX3aS;xo(^o|MJLP~Z!@unDe?VM;37i2g zls-=~I@!-Kr|vB#smi=#C1ZKv7LA(fb8C<=JNSDM_yl;^w!b&Z__k0~#y24`C+9!ou6i3F6FmlLMQ@VC zi;HA$3R@r;uX-9e+ge`oJM6cr%aN_~6(nTUgfNNTYXCWIDj`Lqlz7@7czY|n-*FJmwu zSd%q`N6}S3@+)m&xnvc+kY8nbjmI|z-zYtPEh=xe& z{Wa2G50B>-YkxiR-?FRfNygccj*9b0rjIvHYKJ`Q2Z%lta@W9N6 zAu<|!J>i3F3E?bCRy43T2lo@o{lrdh6%2or>mPxS^kJ=hw?QPel@@9kL8h!Y(0?14 z>uqGN5hZjWq$evt)>lmbJlx5ya<0i=J2E^=8~~DrK~v;-5(k?=_8JTe-LRUl<5ba(^lVeHc(KjO(qJOLlhKxA3}1f26BymY~`K+ z^KFz3VGF_jKXD1fL>OXYU`yrYKnB{v*6d@Bg8>vU4j3XXCUcHBc&Qe?hum}@{HrGD zi$yN7LSDBU=qP9D;Hm_+XWY3PmlfBCM&rM z>X!}X#iKmmvmfck(=MnMAt4di60fu*=T`1)nCtXboH%!IU__rf8E4|EI`BDl9NyqS zn?5q>G^-$)F`j06`R?D%0WsGkpvV4W6Mnd`LTXRK4!d#HgIo2B9& zn0v#Bo1eGgljqI*8u*4l3y(boS3Pef{&&4i~*mDe<8^Ib+^*v}4SvM1$G>0|*m> zxcKqDY|?>mjk1T49AYQ26&9{Cx5B+YVk=yXF4SWav#N3=jtf16GPylA@evK+G#|)+ zF}mno&vk%Y%S$bY3drJwCWB4-1|~2zSfcpcwDrDEh{!sEk4IJX92`MWSKsycIDo3m zxG|@2A4Kn$Jt`%!p&>Esgx-I|+2A8^o~Fy78Y%|BFE5$#=ahW5^W`@G5TywGml`py zztpZ%nOAZY)+yX)Tb2Iq`B$V~{5}11E`R<9_V(zn6mhqn(OAkL8NmYa%_DIPVhG6j{LfW}7%t z2GxOo1>Z&B>HEQhy%b+VWdfb(rS5lnqN#J0h8odPN6xVI7DQn+L}3zr*8*QSjCADr zm98kXe0GKUU_s<`23=>Ao7?fRpRgTYeVf~nI(T{B=;veURPp>Jr@V8L(x5*4z0{y) zY*Z^yjGy)9ORe{Xnf7{H`cuq%ef=qzDe6xh@uHYb>Q4#sTBRkg8yjtkSBL)|?W@Tj zQ$F`E?NA%aQ_*u)_tNn!*&? zYhA>^ADk!^1;+~V{qsHh@J18Zj(L^wYhkRPWn`~sTz{e~87oAL8LP>(1(hvPAC<5c1=#^@ZP8p>II2^bv8)YN# z5#o#DdOr@LB1dLn9H20)9-tnDQd17W>!yNtpymSELNYdA<9P_F)`0s70=-LQc-WF7 z4XBunW7tJxl9S=6#|JJVqxx|aTQ@)!^IiqQMxxJ11~h&{X4+q!pYfL@P$|p6%qiuS zm^1_@QbiAjWv&(075*?$&p((33{Dd&wSL-PR2t}(JPh3Fhv8??b?XljQM~r9DbYm; zRBcD9CA#Z(N?dUxui(+fx`LfFn;ZV?#?~kI+!S?Z)JOkn~;77wDHQ3F(08y1T?gQojM)hz74q ziyKP*l{xO2Y?S7>HDJ9lm7D}^lDi3Z+2}iBJOiEbVlV?&WyFZZ7L6f2rr$00FoUet zhr=|F<&y!I$SAseu)|9aNpo9eRGX}vhb;o)j9=L~UE@Q`^#UIqvCL9bRuJlZ8R7DD zNc4hp0M(@Y9fr_V$2*Yo_3!W#(Tv2jwo3Bf>K`Tl2vsAP=KBym>T-z-V9J%EUJRHw zg|2fmZXr&C*;j8Xz&fUEBz~mGjfg%EHv61~tgXaxZ3Kq-Wia(5=pnA!1U&@g^@wSW zJ@aWxg<T zb#k+Kr)5RpB|m;02+w+E%R;M>6PLJ-Amn)f;Scfbxj<9TdJ(UfD5cNcGG={AB{0dmg@T#-ba zUo|jU9z8IYV=rdT8i|9<^_NInBV*$0V8$7mbz8m;$T*5#Iq)wW(_Oz8oA~$EZ(v}W zqpJ&tVRMEF&=wm-F{qSo!~KavP>%j{rrrbZ`XV;LU|pI$l&8ei+qW!)nn^4(kqP z+{|^nT&GG|9BjpB`~C$9*L|(32Fha*nvUJa$A4P-=7-CyV~@rD1Jy}@ zQC7%pN>Q(&_;M=YE@`5Db|Gv=* znoKg1TO=AbfY9aZ625a~W-1BB<08GT2=+pnxw9(-IkHf@-5uS3aNpc(x)=1TGJT@F z*K*sVA7e~=CDgrDw%?KhN0SOce`YoRQ}{x=g}Hi9u^KzeCzQoVN~@}$`GTbQW}FRR zTsMU3FJNU+US{>A?f3OST(x*#7a9MpYLGgGkoe$#k+y$FUQRlsdS8c|K?3OZ8@`5M zd^zru#eb3Z_KF@Yt(I)!yXUBoA@p|6A*WaaT=Eypj(yV7a+eo)@#ojHOr%qt zC+%)TK06y<(!_5_a_C}wE3@Pp*f6eR&az`PCh5RT=`B8%DIumbLkdW?#>a|2j-Qz% z)~6^LSV#Bx;b5@7opF~|N0%Ip_qFbG2n@5&6TaS}j|`|AWdMos7yW^bW5|#@`uoE; z#`6cJARbnF`0Y6i>zdUFvvMYMP#7RcgR( z80Cz2CmN<}A>kMJMP{y~xCT?L_5r+*hF>MIuTe_%hm?w^R=mkWP$g>aBJb$KwQHB~ z9HqKi2DQ7zggS7+m7HTdUOwTbABfg+ zX|@v_h)uZS1Wajba1M$#%Gb}jylZagnO|c=f40z}ud{_EM6kkv*|*4G_+~tO+)siT ztcvwg+00sZ&z1@*qJDND(!UO-2;k^U9ImguvWxsx~S}-_5T|F0&8XXI_WH7NU_Yk zg!+C_=MC6QK0x$~X#E_-w6p>Wx~lHu8shz=XC?Maa<D68 zjc|QtLZBH)YhrLpyniaL?dNY$Il=>g1;*WNV)C6;xQ}#I1Gh|!et884Bj`%Ea_xNw z`2MRWPZ5=o_JaH7LJjw`bH*%v6ZU7H-2b8dc`dqiiv5WJUWkM2#vRaF_J4W)4~tvf z>hK$LRDexHvw@kFc|YX&*Yv=9A83IkJ$`AdT;lQ>STXN76HVYq)*t~G5SRjIGFjpW zd~`Rl!Ua5&J~KSijjlR;P}GCf>4HkPsAkk@-Od`C6N;! zqX!XV=r;k^8;hI8`CI%Q|62MH`#gz--yO$Ea^3T5%Q$h`%J?|HYbriLhl)@@aSPX9 zst?l6MA3Y~t@8$0C@A_+d%eXMOX4i3k z;5`*rLtkRtV1IVcBxrhj;?9SIv!Yd2q{=<}*naRxzPFLtVC(6w3Y5VuBH*gR2Xh88 z{^Xb6wO1xM7@T10Ky*~<48+HH#t3;{lnbBw>k7wYeNmw%3&9sS=xV~u$$C-4VC6^H zr-Yf4^?-)0Rj^kHLltr&Z`H836znm=Fy9h(rG`DKU^577q+u6om`}lOal+2fu-n_`3km*Fm56C^I{E~u3+yFW@y-18djiS3kf5i z&T=QdP-D+hFh60PH0&1*gSjim;3KS!hOO4HCJHu=uroF6bq(7?4n3GUgfQ-8wl_z^ zq(x9L^YuFSG`#_cJLfB~ zI@U?1w@~RLfHE#PQ2d6{7y6HhIk>iEbsbBY}*DFE)##p8ve^f_?6wZ=W2hC|&{jghwmdh>K9Qdpw7;7N1;m@H@KMpovQRJDQ|LGqO6U={4pzuA7Xj!ee=K9F|=>20Ow@epSA zI^;w$LRB#I%bfri1ap^BCtz z&v+M^yj}8O4bTyxA`{pqH!4)ztcG zWqqAteYLl~I$K{U*4G8rS6}_by)JJ1=6FP$(eGG9jC%(tto<4+hTrw)W}HSE`}vBIs9^P*LZL@?YxrHhiiL z4h}+6`uJN?7S%dXd{AV3h=!{~#jWJa9lAXepGy2bS<7CzD^S_PW@Wn}dW9=T4#lr` zexSs!KOs+cz__!!5Y3L`J=BH(R5W#1@|ngMy+_)?9ygy zWUX-1D_G20w+0%;iJNteoAE={xI`8~ZLY787FDCNn-2OGL#SL193h?o*2A%Z-D^hq z4_KtLpRzRylcoGqVXK$ADwE3Xm_c*~gF7#8f$aEsIg1V$qg~g_=C7?3M_$}5(PAIk zyqH-newkeIKRWEgSV`NKf@Y0+z@7tBVdP0my#rNw zyW?XNKQ7?S@BT3qFnI5TUia`J+~4m%9KmnAY<9N9q+*Kt{cgBfpC82p_2cij{_*Y7 zE6xUKWBl1Gaw~U%HF9-BwFo8B7!TDn%JX|0L)!GCQAR3{>f>&vB%onvqWtM8nOfum8SG%Vd-m=H#1azgw0E|e z2g6}Z+Gx?0j9t3xuZ>(HY)GrDnNzw2&QKPrFwLv*((x*P5u z@EsH{Qn>@0Xxv>1$+)eMCx*A^x9IjJm@ULE_#6*+Q7N8}-=fu@ z+;QF}rpk;`qm4JQVkKQO?OPnW*%RoI+yb!YlSBCIA94r-A*dJZ<3==qI@_bI%71_= za6pr8QCllnb})RVc=DiZI05U^6oVNn+ia*dK~j`Wh_WxS&+Z(veaw9xjgB z3)gCThVHa-2aAu3cJIrRo!>w_Vx*J9rl^* zZbdj-6uo{}UL%6Vm|=|NGjv+U5*0530z0B4am(9!UR&ul*F1(D(!@Q!c(=$Hj}2^J zXB7Rn<#n)csG>Y1PQ2V#t1D;W7nOIQ-@{Us`fD@>3r85af4Er|+|1x+D`V~-jC}3Q zqqj2r1xo5VPP;1G|MQ8p@<#DpZ5Hk#S#XKWY6A89Veu!M18V>T_m(J}jX648lhaNb zlnf4EmbHvWF`Owz1EPK~=Q)_yo93JN}G%;sfNg1exro~?iAy%J2Fj=DaH%jCI$e)~-&4Veotu+{_# zOQt{p@pmQ6SBUg{nLbvfzpT>7B0Wc@&r<0Rt8_QgQ)N2tWvs`m(s6%J?IzO~sq|4Q z9cU)CtxT^_>De;f+f+`eWV4Xt_`Aejs1BFvE~?XKZ&bV^&NbJ zWArUSdbLc42$22SqS6;2y+WoZsPvU8eHPM}$aF|pnEy?gZj{|b+7nED)>&q*hPf52 zT*81s% zux`%w#OrFk7b)0j&i202uu=v43p%Jz`suzb(XdGh79uQJ!{%w2N5Q@)Oi2X~i$V?S ztzeaeDG4m(=Ni^V!QLWFNp25|Obx4p*FWa^DZ;Qka_n6-Y>R@G5vGJ-hee`>RVdiq zgkj2Lx!td+vA?Wf1x{GChLtPW5NDn5YZ!vivoHM#GyAeY!-gr?d4!qcE7C9+II&z3 zVdlJy)i6di04$L(b3U^*>^QR>6dXLAJv^(Okp80kd3dsx9fQm|GMwp7C=E7+?FmMme@IvXjlgYyNfV$`EoTZUcs&>3^I7xTrUm#^_U#qAi~ULI8DRWD%gdDDa8Wl*Q;vi zZz)&@!jxj+u-L3&k1ALb!ptrBxrX@^?9e{|Gne)S4ZBXkwiBk52Zu!&U=+9H8rfSz zmm-5nPl%tvIEYfxC6b<2?u9b9`)jFONOt_|hEhxvciuvAwN@Xs_KV+Z$`PcTc_c`kuPIwWyTr2%}TXx2_Ve zy^Z$nWP7hE_(|q-mf2pTdhM+obIS2u=V-5+)m|FgJ24IIrJb@pAO+%wis^SNq?p z-_QE5Wc~iw`s?6!7F+-O1*e>^Tu1$Ft@?Yg{=Gib-@{pd)OoHo=j#EqXy4~~p0myN z+H3sLk@&-VLAMC>f?(bbmA^GFIgmK9!jsPNrFqx4mjMplpwql_jj z<@vwA+v`wevQb9k)AIZS{M8E8Oe@d-gJlyd_cmlfW=28KH=~R}nalGJGHZfS_JREM zCx77usE_2YLtW#IQYsix1f?1MXz57sqL~#tU754i5BDFix?GxvbdFbb+9(@@-=Sp<6&W<@o2Fsi7cP!*`~I9^jwJp_%+MK2*p* zH-+xzpBqEB;*ZFBK0a>lP58PI|FzYBt5FAk|5N|v_f~xWs(Qp31&Vm>3nJVorrjbiw+HHmwgg?Se1Ve-nBox;LN~NMQzSjG8k!;&LhIVAeoG z1lAg_Y8`|${DhuTL>3;6taeqefFkhZ2E4Ys)wJJ*CbM`6PNMgD^CVV7w1E5P%`ZU` z_3<~ohOOHELGx_);gH*3jmRAX+?7YqbjL4u-||E4gFnZ6f`2c>%*yt6ihW}t_6$I_ zUUmpw{~bpU{1MEzi&sm=NvwJ?9yi>cIg32w>sIG{6X%}2V*iT$s`op^J9cSZ>@!tt z4vJ;>ykk-B_@7qitl}(9M%7tq+lsG%ICu%zTLhO82QYYmMgxQtkN>EsRVgEoVlk#) z$+V1NNQ3<5Gl-s6hX?6eSmsStCP~%8dY?v0pKsBcF@HJgZ=@iiL{-#SRfK@K`JdtP zzGuGd#BZ<3PEhZD+p|asxY|6Y<~Kd3TE@+oME4RMc~RU9+@s|i+@HgTQG{2#ANtFT zf@9nX@VkecYt}W;Dn0WMBCgkDlX@(E1t_!cT@bicnDSoB7qJ#FDPN>`bnG)qwy5+CwW2GU1>Z{F zthV_|wDC1WK@jsLYsCVTCe$ok=lW~1)+~JGcMK<5wrI;oZGFdNt9>nB-14;S!w77< zTFjY%_~=`4=5RS{11R*wDp!juZa4-VLB!k1RE^Ah#_H;=BUD#AtFBVudDl>f)SH?T zdyeJ$*z(Tb|L&NNVX7|!&G~3)H{#Nbd_Lpk^ReeHJs+Qy|NHrn@Oa62>^q&EQldbL`Fg~doqLzQ7uQ>FGS~b55j+ zk&nLYXKy=lF2rH<0eh>39RIE0Gtj#ZIMx%Tur`C8kyBPB_FON!o(HW{H7tTg-wCW2 z>^mDj*Wl+}@@JdbfxMO3ft-r$K>pI~K;CDc-j3^d!-B6M1AYG`^s8cc*41MCI50Ah zlv}ut6RzkNwnNN(FF-MD2hR7pC)6k&;y~4$8>MCZk)APa0p`6(&wJ~^YTj?M=DoM- z{5|Mx4SM^+9aiT#mUrb(cK$1LehoU00pzXBlD*GvSg;Y@|C7^Nk;VSMG*aU$?A7G9bM^1#PZMj4%f0(ncop+}(2j1)DMnheC*C~Al(-DqQt7{EP)*})sf zQen~^2pH&YSsa)y(O{h9^1ONU0I1xR_$j&Bxv=ks!WPUE`aM_dN4p3cHMJk_R2R|q z`*xJ_1iPMXg(~|LcIQ&pu$_4-L^Ir8(dqEn{0Gljp}N)Ln%v)sXIVi{R)7m#7x|a^ z54VH#oAUfzKiH&&ZxXdz$Y9 zh8vnO2}axYJ&K<|-Cg>l?#p!DDX3d4(yYl#VL=uxVZfT zkXj4!f!&?@!=+q_ZQ_R~B?|%jfYj<|RZ^8qGD=CMkbM3^mAphJmqsT)r7E}^Ih*U8 z59pkOReu`aYo6j8o`)sCIWkqVG+h*rlZ}lp#6*xdF?$wfmZLerGY1d3(s^i5oEHxZ zb{?ST@GJBSVM=*fEjo?h>P!dY%Dwzmi0`V1s~=O?#3)@P^S0O_M+fU1lb1~KC|


;B-rPKW~zRbO~T0yNmE{BCesH`OJ+_z&Jm;Zgp##J^c$*mr*a)+@fV)4 zir;D$f0mWUI1`L7-Xe}%sno2+s^z^{8+pZ8F8-#9dMCsbljcSuUX4>b)u&e4bypq%O*%2RN0Uc{Da=Id;qMW`u*uF9LtU9$ISobh|d zlf_iZ`rcZzhB<}ujb_0{*)PyWgtt2REA7vYcn%-HO6ceTeH-4VCO>!lj5hAsRU|xO zMmD5GuxdgY;*nK}JJs)G{BADBsUIo$ktjx}AHDG-K@3tq`sI$lOr)#tOnS1HR5Wsr zuXBIgE%&jm{67Pl+ZW9ZM|sZ-CeYwI&fR0VJN}>IuYs}yZdBWz9oVCO55wQuNg{hd4g9o z_XMv@^aQU-@B~LEd4dz$dxCc+1C=FWbURT}k=%{k=5f5xXALLku{Maom8|SdRPZVw zOXt-^A`Npk`Ukd&3~3b@n8b(9#;r{E9LHvebo3B}6 zj}5`>#CR-rWJr7Tx#T@qFr{6Q=uOlQgAK)$js;WI`4KQxjm7DUf2Y?lP{6?6fJ|cF z(lcBHwiSo2kjs`LI$)^8HLb%R%d9D)nM(1#R^K?l#Qz9>$IIK<2xUKoftU7s&FKp- z09vF>tZI;)_rRd$pq$8iAhsWDLqkrPIPV>q+Mtw%|``d z-59cF1uLos(UC$~Z-Xd0_aE)8)&M4-V(^J&6f2339wzxQN;eP?{GcCjD;TGdb5!ba znF^NZl}Al%el7Y0$zaKA;3v>mUk})~qn?|Yp$rc@RFbiB8$;K){Vhi8Oh##ElmdFo zUjyUK4u8AC6=$^h4xion;uG=&1nw{TmYn2T;=pR74SGImB}oC${|5Y53H!n2ynvQY zX8S=`AqMUCH$dZtxWq;!Eqp0&VGtlp3_;x9fhF1vsZHW zkckVr=8ZPbPUSr8zPti?F|cx2_BgPK3ubh(oCH%FXrgdB7KLOwn0h;ijnwIqN%uV@ z+??Z7 zLJww|sWa{Nvm+TDkw)Q#*bO-r?632eK#U61;6}%bc1m?Qg>&o6k48Sl^@Cv?9$N$p zWyJ6Grq>M~-zJ?cKF`YFjt7T$U%)lVVILQogtxKQLQ~iil zQ6syeCt@qQ{-hPTQBk^C(G^xj>ww?%ROiK3blOQOGQOBGOiaC0Z;cbYmB^7jYS-h6 zt!FKB#jHK*xk~gj>-o^C=Q_Kd&##D?q1h*|=W4M%P50+ctDX*aJ-*m_(oSB_aPf>; z&$(7T+n=!Jr&nw}ze{Qrz3>><2r=BOXDf5a`FY*0=hvK=alLl(dh$gxvz{lcdM4ZT zER3y3Ua#uU^EF~cKRrKJTJ>CF*OMPxPrH-%XQa5#tVch$24r>&WKQp&7P0k6_9VJL zxPC&sMsa<9wb=a#Ew_zw@~{Yf0zm3gRh_8J<{Tj}LR!fHRm``9`B0x7$^}7}f~k+` zGC@@acXdaZ$Lp2Bedu(#u`3Y$Nv_Qpdknd<4hwHVc!Bm1#lyr|;d5d)G6DxU0^fr3 zRc`>8{sqzfg%LFJuM4}Fj0e$Wlo>wTQWgHx*3UU?y1xdYmb3zsBWfQ5upf$apyL(D>e?dR4$)fo?2(5IsoGslmI`cq_;c z`KrGXH;)Xsk5<+qz;~4xpC>sCZ!WqmHv)xSheSCGVuet4>LqfMZ54H?s2qguR*0bQ z0Z&t_?5wd3J{{Ho@h?Y^zJ*7K$?_%~9s&vULSS+3QE|I&rn@wlrm7dMP|eo~4Z)z8 z(z^w!e!O52ZY+ArN?3FpigKc^V-?bo&W_I%&94tr)70Z}lgMM5w$D@SdJlSnF+>R=D5Wq~us%ZEVbggd>cUJzE-H?LrAvZD^OK!{bptH?2zUbdc z4D2iM4+6LHB?oLvJO!~_?D=Uowz97~s!QlpieRQ$kyZU?`qqYf_2C`X;RG2v@Z)aS zqvIih*btpg-pkUdIzo4mRr@jgjS8b7_5Ui~m>7F|im+nhxaz5vW5ZmsD^}lZldjuiqHc|5#MvUS4&Je+?$R1bX-0RZ7 zN#`RVm~?RpcSgCud1~Jf{V~W}Ff|WdmM%4uhaQROaGp{7ADi&c=U~P#_fI9sHaHC> z>INbGgoCaYO5catx^p+K#@KlY*7(MZuLw6JIE>4nzv&%5nSoKYat9h>jv3YpXry6y z41zC`e}^E?;4m``R`=1jic24$mJ}x;^|ymqRD@K*X6wl*L{J$EpTj{;B4HG-eiX$E zRdFAuF>s&kv>khjv5w)==nPs#DT&-{Yvig`$(-kaeHX{@=ljAD=bNZhrm)^qrTB-4HFRl@bN$ z7Y<()mz4J;&s^N?;*ts9CR!CqBj57pnLp@yr!RLVWMQstH#SBPG^Ay;xD)z_U}_H( zgVN+Y{K3geNus*s3akPeLso1SW@^q%h=B<-wEA9EbB?NcUn*;cgcIKKsf%$I*!qh) z&pF70>*6z&3~dShLp$2)80Afo%$V)L)U{yIQGnJYcj_{{2Ed`c(+ZZ^Cr0Wr2sDi{ z2zUoa1GCU?B25>1Ko;uu<)19HOLW$SVA+L22?$-AI>jvXi%8IgAOJyi8Q&*0j}!Zo zRM%izz#dm3P4#fFS?;L#YPuSEKb2?Cre=tJ^$*&;ad2a!qL1pL)wmn- z{=9=lUp0$P)kP2R<|yZ7*BonJuF*y31Bl)p{uS8ba$TTORrh$`<^Z{xv(x?u&00I? zOwU@iK4sS$r)wRcYREbo)uCU`RI@S8DtfbBbXB36h6GjgiAYq@S9Q^It)l66(T8-= zwO}#0FA|zNr{Q*8Gz_Sk2E#5oR2QA2iq1Q{WOa7@YbE#FP$ZqvHUFIh+&lu~2FF+<- zG9V6bwgfYde;p4w*qA?X)Edi^R;M!E>df@%Q7~wAqwP%JsZ4p!Om3**#CMKNZ>vnb zotd^@i<;hcWb&&_r#myX-GG|>j!ZYHOotXZIzG4oaQ;n>OaoM=&CX1ZK8#EQ9GT8i znLcx7T6_$BI?IviPuw9fPtQ9u4P#Az7T8lztuj62%;f(aHB~z@y`eJQ;ml;PrZ*g! z9#ENvIWz4KAkzbmOyg9hi=3G@GSfImrv56^8O}`m_n=Sx9huHlnT|Z~n9L)|sOd~c zCO$NcDcIu7bO)O|Fv^|+Y#nA==FD^@GkxvIv{+?&(V6K2W?JmX1U8s8l{quDW~LHH zrqL?XBxj~W4roXF9jm=DLX`&?-|HTM~>d=*_96v48)tn}CoUw`&kU6{) z(33~Z@&;4}uOnu#hUI2e@m3!PwhF{PJr`^ds6hB{jA8?}PNZRW%yM&^CatACB^s{02FX#*CI)Oj@6%4ISV*E6b^O=pWrW}M%o=*$UmN7 z{sK>MA+vgdpR+J*Td5WB1n-!K68F8QUqvbFEfe8WkFtE~8o{0`r3wzpH<A1cVv@jGT2U;G}t^81n_dH0+b;*PhMXYN4b zLr=Fj#H;hyShW$* z`XWIcs&Z&}5EpKP{>YDJ=q*3UANyD2#UJEEG=<`eLK>G!%6QbC#{n`JynCh#wyRglg7s&R+;oz`2Ydk>UVEdR1E5B%|zQ*pYLe zbWpdSU}}d4vE2gslz0?geuQg*t!>Ns4TDzcWuuZ9A(_*n#8ZL%S|$&n_TVe$}kU2nB= z#sgZ}ilOPOzVE|V@+n`{uUBLbTq#xwffC_ysAN8@kaMVCz+Eo20aB&rNbEdvFp}fn zkDh*k0YdLtm{wA}2+maVt8jq0%VF#SNJ;U_*s#8GyfmfOZ`C#C^n6uD{BAEs^g}yZ zhA>-c%52kYfALq2qm+Xe;1Qo}9m9q*f=uct^bkV1FZ{53!`{da$W!YHNTnSX|LtbV zlq5ib0yhCLr7gKEo+UDxP(lNXBkscqpr_gXVu(j3EJ5Yt{z1kciY`?2L2GT&!bpFV zkl{xCLU-x*PweZEKGN;qD5a{~0meUrlE2J0 zKKupkZGKy}CwjEjy1wr*qq?nBwuOce6n7|T0+M0912HG1Bv)ZQZUAZNlT*6Kdk1Fd z%sB9pf#M~hMeGLFBXkaoPDFB+yp|hfMW{GbfG*7{{wmIUwVoNHY&sS#)CEBCXQs}2 z6@Fn~{58T{$GxRk$0q;|T?`NmFq>>{hWJEi4bmF$8Gkg33!je?>#P#rvBXU*k$@5< z#f#&N(yizia(CQIH&Y06fWhg-u_k(^|H&-MFvnqqBYTWHyiC@JjE7h*$ROU>hTWa=7^?{D1YBu zay591?1u%x6z5?9jIw;T#O4*j4CTn*l6bNscwz;Mvo)NIDOfYyoV0x<5_u6HeVPH} z#qz<=lh84!)05?&`6>7#GPp#+)H77$a_e2%3f-j?Lgf#r`~jUmm+SN+UOkK+K#Y1+ zK6|tP{=RYu5c!+W9))J%JA5P(!D9gbpa1XR|7JfMVN3{-_g@;l{eF6Tn z;z4M66ii56#~+8{7ZDm)HdW&EEG<~^CL(4t@CNKWI}yS6K;Feynfv2oBF8N3j6M|* z`dN}OWc2+L8OL-?M8v&R_id2CHKg#wmR`AW{qwdUmnKg8Yp)dIg|5X%lsuX8Ja%rE z>KuJEuoF)+Mb`PYr__V1>2YyOTrZuf5wzRmvq%K+VXdO{$RG}Dw?a#Uv^`4{-k;l#QI=@b^elh{?0?*lq=2imv%pv zs4`7H{ejmItwrDg+@znDv(KE(ep~W#)HX%63{FO#uJ<(S(On~eKc10ljv4>r!9{8K zXjdLRKH7sw%S4h6Uk#MEwZg!rLd)fk$T3qlme)uP`(EAZUk$Bcx8ShP%wiz0QQ%XNV>i-tqlsb=-)t`s@MP?H@1q|Ev*AR27wB%`iLYD<( zMUu3@mnMVRaZ27U;|-ygjakc4V18gzJd*2rQsvb~!LI#5xo$YAa!O~T^JGP!lv*lB zR}JG$9^<95ABAV|9fZ!L?C(1al@~MhbfkLQ>bIk!|JYg0r=?CZURN2LVlaGp#)2+i z%sk<6+&DU(fu-N&nFbDIPjUMO|3}{Me)5XJwl8gG1Y%rn zU=LaaYTe~VrN3s-Nbrwqkh9`LbzxY5L+{VoNM|reqkc=5C(|fppmTW2M4tz6f`u*k zEVw7_gb~~$8S;%_$myy;wQw-?R@932XKjyH(gC#nkxN%e+m)!BI-DGk51|!3U4hou z&KQYz8qq=zi@xK5x8gx?=_$TEYgSSFWO#Sp5bygf+}Gq!2=DFy?F+Yab~sKcLfgqd zQts6fH-Eg7W|midUXQo6(dR3#r*wTYdh9ZLOc_dSkE@x6N9WPwLq_Rl`KzFnJ05OG z`@}j-A1-O-DI8WwaVylDG18BqlnHpjBE{q1i3hln-SOMxBPQbP@vz6EQv60p=fEtr zI3HQLyOBFDrO&ssisB&3D%U?D~J~F3?oEe#@#3{Zg(V)v}3E$h@-{Ws0NNqlghntZz$h6 z15IVD?Y6M|=;Z7v>kr!%0gNSL6lB=ASk?j)=T5@CiLnCscRc>Cz<(ybuYX<;x7s={ z+tClK{nXm%^YX`NbzWv*!XZOj!_y%y_*A>-OycVLS5llahg=VpZSU-m6xt}|4Hy?} zDU+B`ZLb#l!;J1lC1V`wD}>EW?|meKhTjZS^J}W zi1mVwILwy)1=Ttp01geGz{9dLw&GgM)eoF2+{avBpD z`LbiCk*h$G?n0y7A1J#}l%vO%p)N=JH=3rk)BO+QZ7=YA4#|~izF-|6W_N5e%wMlo zk}C;sQuI8vcnLU>$)I^K7Agom*^UHh7UsaR58xdFgopCFEk^Wa+AJmel)1zEi_yilj(Sz@K34~op{Go z{Jy*ouO8GkUi>fG-UB?UD*YeN1O`G0H$Z@ZC=o#kO^Q(>L^G1WjASSR0&0M@AS=2S zW*`V8(M&YM>>&2lwP0u6B5Oeu#ZUu+3aEgf6h%3gL7H@s{6C-f+&d+}es}-R^V?@7 zbMHOveb0N|^S1MzZTpxQ;eS_v?VGMkJ{JYJldS-E!t6j!jyEDp6jOo%Ohu7{DPv)d zU&kwzm!>5ZkC!t<+0Q`6Qm)gQx8c$~#At3;>zhzffZT>^_&b{$1yFNqS3MCFe02br zZ;Bi}15y1ci<@r~qk@Nf^wCb-Y<(X$W*L&uy7`xjVdM@wn@YS+AN3q|5D?;>Y6ohE zCa2BnpFYpwA3qOQItI|?yksLVkAIOjJ2f9s;UMIe_d}Q%tP6VQrTG0U#A`pLP&-}d zAo`75i}fKRqJ`J|3jg4R$tdJ`2mwd{`%nG$Rr~D(lzc(Idk%k4 z#wb`HfxRj95&gD2_V#Kt_xaZ3q9m<_6;e5c&|L0p#D$$hVUPp zL)(l#^cLB)4seK*_tgd8VDbUBvrj`hRSOovxrF=~j8JlZ@d+7`cP{P^n2#%hzhPi3 zeWptRonxZr=P#o+oCI^-Aspim7R<{J-SG`1riIuFs_==Ir>9kHEq1$(4ouI(ee7x6 zAAC7*c&;i4?)C-`dxQJbuAxj>vI3ZTd!(ERt7M`n3e*jU9joyMk9dQ>&`Su-1!qoD z5GDD zxo#@y%Pb7uv#J2%QE246S#1J1#Af29JAAzZTX?v|y@(%zPYi*wQT@bNd@4NdUl zrnd9k*6;a3$EKRy*w-rlje4%KA?b}>4}FmWNFtNUYq}T}@8Wdbc5x<(2LHEI(zZt8z#> zK*r2vBxS<4lQTrJ%eZJ}3xB}bRL|USx<+JKbqhW+T}>mvYs zDZ`nmr3GdJvo&Z&bOV@Ag&7ic1%ix{Op=xQ;RZ)i2v^`Vx#S}da-F=e9Yy1VYz#z z@;CJR9J`wz?uN5<6yBDt&J#>S#t-1!7=qB&8Vi=W8m!=?A_b{h4_{g}evwH)fA5<+ zaX41MD6D|*3&sDHA2czrllw$aFal$Nd&(_Qw>Z+c4MD>cjp~6XLDs=YCY_PO!u*?pe(;K{!(jGE?esJH%3s4b_e>TD)6hfAEKMIft0CR9PKC2!WAQB2074-J2 zX3uc%^nGY<1ZGvbd~1N48^g|ph_ytQ>OOnE8=}1V4vK{e%IG|=3nB#4v)>U9DyHm^ zI((F-Xrpo?!0)-0tOTZmAgYkNs5c8Gt2+!~M?VJb;9hZ%7+~k*e~xcF4O+=S1CD!| z(>h5*_c{br-bH*ZT8gP1_Ec76yv<}uP*_jPH{HTWXp!X)$ zbckFW*t27kE&NncBk#FEGNb?jqoxVXt9!4|6k9O`2q)zS-bRB3p*z!rqM)D{m2cpU zO=oKHAb~R<(GTTA$tH{25X9Yh9Ub#Ss9>gH%xW%XJD;-EF|`6E)EqtsG1bnE#d-ky zdSd_<-B!3+aTEMf*xr7AtwB=6(4)uWMm!dKU>y2%$mtpvtaTz`1WoiJ8K9IC*l?4t zneYdqgVd`8S+3A1a_EJ3$&yLB7%0PiIxO&hiWH#S_YvfY1ek-3fe!N@C^%sb?(M2M zfd4A+^#Aw2)90w)2t&u+QZ|>v?5H)+_fLs%=Blm6M>PPL6)p1s#J1R} z7W#>4PWuyUV;P-MU%W(>2gi5N%X%u15FKHUf{%ud>g~f3QNxG;FLqlh8UK>AUa(KB zP!xL4 z_JT5MCC1OLSi;u;NSmwPd(s5PIUhqU!!sqMk@MAq*ek)BRB|C$RQV}-#(=N%=GLhd z_OUp!qP))~{tQ)uZh@DVk(?A>Bt3vvBJ=F7{7*+-h}VYxH~cjCQ!V_=y}mYn>iQ?D zJzrS(Veq1bpL_2R{4B>Gjh~JeCgLZxx6LdsLmBlZ;IId6;pfRG&V!#e7Jh!bo&jQ8 ziv>MLn#Q5$v&c$~o^j|E=qanIA4AWpk-ynJ`JairDEgD+58~Q{rM$XeFX-}ivSAx^J7D`9gFrK49l+8< z?xxt3ME!eO1n#ANFNkeabte zDos;}ub(WOT*_y{Bw_1|(er)>s4-fL6+r(BQa>~*-UnvI?p2GCqXW*_gMSAYl#>so z4xW_aY^;#F{_B-mV^Kg$GD+>!zXwABUt5Ylv}nM;Z~>V6alx$9h>kdmBc9h5pSIu= z_|axu@HhW@$Sn=Qn0&a_uYP2>+MQ3VRLhlrI$-RJK^9tSR70SQbkKs!|SlnM|E!v9?+ZF#oeIH$~WJAu-zzEvYeJwe?<4>cTH)-xY4p<(9m-|^53xIMteBF22<_?14dhW#N^)c4#?bEs8i zkJeV6has|Puft<|X}ekpwCDL7NYHEJUk8iYW;Fs-P&U0q5;FYp z2+TJ1B;+3GtG?49mN)}LKA0T>#o)UwzQk%#754{5gUfi;aV`Ld6mbc0`wCu@x4R*C zOdCbUjubIbLr{M;Y@mn}EII{6m5a|JPCR;_#>C5AAQOMWQFFixMNAE0z&IDIzJ_3l zg{fI$EWf2qufvDxC2|v%=&XV1^D>RV698PTy-r9&Bs*C!?|Gt>aRA>)8OS@dUA=Zn zENZ@?bST4^X`7H;vj(Jh_^NSQX_^=dO4HZxFW>Dj@5UFxh?Y-u zvpa9j&Yx&)nX013Y}%iszQOuS_9wG}F0lp{MjO~L4h;-DM+5NoNPI-G(|qFOUc2Yg zXvODPF~h28+q>Xjm2NwOI@QfC;ZPtObrKWozHKw*#|pd!mW9ncR|hgg*x5PSXg(WV z1}vTBA&&At(!TUD0e#R8;KRvch(pnn@sy5fsV62{KIT8t_ofjLqmn1}VM$S)^Mr>`R%Yg9D;H~H;0{ZfZ=obJd{f=u z-&T^ZLY4AU4sYvUJ;%N+Y;@1uMM;?w8(h)>3#Yi9H|xlZHtvO7Ncdl=CufBxT;y2D zLNH5h=9Y`u*rsZp5@~K7xSJ7ZhVgKLh3`QI=v|(i?`KRh+QFc)16iNzc)~AqpzF}{ z5Hbs4R*iu$hMZ!9Q=QUzp#%94w;How!=i&BXPrA|blS|$P`uesH7v7`{4Oy6g|D&Q zjr8MjEJs%}{~~~*-t}Q$Cb-;|!mJi$LDEPWN{^Gn2qsao3EUN+y~0y?`HvlC&8%)7LTfvG#n_x51uVgY5wgBZp8go^nfBL?>D!$LN)GhS)qQq zA6BTvUyBuL42IWyzpYn4Jps`TuLEK(4=b%Nt{gm+D|Dl89L$G``yI?UA`0wQEw9m> z4Z%NHbGnYXy@cbPymPN0ZzL=SAK_e|07a--?!Q4r>VJpS*`OxMY93B6E9< znGoJ$!Kb-RJ#d>M^OJ-kdi|0gJN)fox9u}8**BOrTj!*?w3O!N-i%da%$fa@F=qo6ND_;@v`EO7&-2wi!elD5mx49t;DpyOrs;=B^` zsunkk+vMYYHig0I(EsX1eva+;6oud{li(jf%V0|=m=BGn?aMhOA;-M=R6LsR} zC^-Qu{gEmvqn7mGuCBwrBFI^QxPNNNnv5F9%UEa>%0>T7u$z3*_yD)_gt%|XOMuM^W+Yz&*=;9flCRnJBzZL&uj2h%vR+jC z*T8KpDnI9G@^jJY9MGq%i}U&$xY_v{0lN<)L>2p~9pTlbqdoKe#$e``r|C@-E72-{ zLt^<;9qjUrS^lZB%C}D}zb0D#`_U+WyH#FfDOv3ds~a0Nquw$eGk&ez=y`%b8>7nb zgBS-R)$COrcIMfyz%OIt@2ub2@b-<4r;y|M#;6VN!^o8yho45#@@-lE^@Q>bfc6YC zv(B%!g!aQFHg@)nLg^`1X-j_M{v+q-%J+`e1H6!{N6-NOm2*^->5Uxc(AVbvIojZh zY_Ov=h&4Pq&iMg9Po=E4m2zhma**(BTJa`qy?-HBDaCTDEDTM`@H&owco5I+PV?k^ zF~!fYm&&DB7d$+-eotY}o~ij0JjS0^Ofc?E{rpH>*lKQFf-HkAzLej$EM-DL=F9sI zAMoETTkv8l65U-G#xY9V^Ss$8pN-}`VZXy&-Y0oxCzGokB0;5^^srf@k38Xn@#kmw zJ~TPglXJvl3_Jo?`pFQM5E%qLhGNpHc9&O!iBHCWhiB5frQXj4GL$6po5-1BNmX77gKNr911(5=H?-^qY~AshVBQ-sLObIKY$7(58J6MkNe3XHw?m zy7-kT5Knu^r2b@74ubWW!uRo{Uu(=fTBwPToABA>Reg!_DeaGxO9Lf>25^;Qs$G@k z3Mi9zlF4U{euwx8+=ET|5GA*%r(ydg?h>OWAfow(pJlcaeSodNw*c|uQ)r65Yg8Se zjgJ|T0l;Z0vMgw?!bKy2(>EI@NI%pq55(z~yJEl9A{1piP;;Gc{VHoU5|@vL>%YjH zfIC!T@;u{1wLK8Z~ZD-@7 z$q3-%nMT0JR&CE)8~HjWF2wA~T<=4*$qK^Li^#EoW0pWl_Nbqd0R{{>>kZ|wBtQ1iDcHyBMB4N`%DF{jnVB93+{_a))Y?b6;l_e_ zY=NeByoJqgJ4L6UO+=<(A*NvR4a63vU}3@(?63ly(jid9rT}J;#3}gqRhR;(2&o5t zjGuy$(kQ0jyZV@db(lu1fECg6s~d-53dUk~fK=RBjPv*VNq7ak8@R^bOqJsk*A3*O z0tp3{sH&Mypb(j38Ob78?G612vo$ueFehTnrf-=D8XUg86ZquJRp176n9f{h%zhse z3B%r;!mNl9c!}&o3i>)_V)@I=a3KusqXo*;MQAFiFzYwBW0`NV$MFMHNHjE&vLo5c zjgMG7y0r{LpQQ}0REwX6IWN@GUGq7@S3SX&0L2LGMpN#J4G958xbUR!%vCcpJdW?N zJ5|Ml@z@y91>@pO`h8`*3@SV4c<18SHPGQp81EftkN3?A8L#gisPJ^62$x)`jI)R9 z>vz^r&mQ5Oq+D#+!V@~h?ZC*$6&FTjsij6mYw~(f4UCj#Dt_1I5ApVF&{3HZ%2c4t zrtetHK_yV;fHA`A5LxM0WZ#z}bRfD4w9z`w-=gD` zaCj{mfK*%<#33&nkm)~UA8nW1L6E@ImRH4Dm2`p4{F)8{5kFTiQAw~wYq?=eT!OLM2+7T+)i)oschxO49tLol1_JC5Q z4J^9b>tfN(MJ;?D8vXo-!5FXUltoAPF~GirQL@=Mi|Zc)63cLZgt_JaO5IsY+&SxK z^gz;cSZ69WVB#P@(%` zG!3Fg()tL+i7@B&H8Pq$Xl#fV7}*450rU1qqE{6$*JF&=b;NeFq8E5w9^k3FEuPo? z5v_oaeFBuK&JmjQC10Drjrs&lla0-_60(^Oql`B+HG_t+Y2Ln5GmS7)71Lhy<`F(G)h{QeI@aAm0_ z1V5aMA;RdX#m<8iJI|aYb{gT11f;wg%4m)1x<(&2xQ9c)%3do*qGjedJjdC0p)RP4 zp~`aMb|SVd!$+pNU=zJ0$d`>Pfhd>7@gsz>_Qcd(ybFNW!0s{}N_Os`LOZ%`Nhg?9 z$O958fhxq@8qZIxd~gFSNu;h1=L~;yBd|2Nv^zRbTZJ|tMQCGe$c>J&)gaOcP`o-x zs9su?9lnIB-)&v&>G%VJf>b`{0ps0-d~%tXyCnS8)`8GuY(mG>`-dza7Na9;EBT@6 znel{+du~!k=rLIllh4{?$;DXAdx3v7Sy>WLE>KtO@q`CM90ZakQCJP>P>*I{g(I@{;0=x4L7Vgu45KXq}yOM z#7Ff6P^k^HGP9zu?AAE-H&yR*(m|6y*oh58gP>gv&jf4D`kbuQowJUbmNDcQin$Fp z{;Y=SuKbLnq)j1oKTpn-G=I7nhy1DT;AAmBJt1GhGn(K8&Osz|XP(p|bK%T$oUejD zMPRjc1ZS!zv+d*=+BQ~lB~{F*t#v9Iz`SKd0nBm(z<&d9x>|$B?Sjh+!%#~5PEAA3 zgz{^XXXMd!TBG`~Iu_=)G47P0y&mmO{gK8et-T_Bfyf4t#-!}d)uMks?G0T+Z|aBof~Z?#6a-C%NeLMEty^3Mjy@Pxv|lZY zV{i+CEmh|VI7Mp)^oj5mi+iH>#-&8@;4{Y&j)e75lOI%x7Rq>k5AAa`?mk7!w0&9p zITEjfvE@2$;1!-tKdTEcRnd0t)y{pxU`&VpIb8b!-@>K@Ql%VC1;-sOT2%@^4 zKU_JmlSA$MOl+-{D*)yHbm%*3i(N$7+dBST_SgUO`1f?&)CHrwT5$xi?A87Iurf$} zqJDdAKbSPD`%lzw7gh2jinnrCm-9FOM+C((vYcgz*K92=BEy!K1ZM0qr;!Fy9b2m- z>0R6zq0>LQozvsH3lly&%ud42w!f3R^%2QdN6~j5Xoo&@I(b}TyJtiuq2$9~OG)(r zb|f@%yZQ*9b-nwzf$kcBeXU9pt2mEy4#5jTi8&#QR6IJnso^M8@1WrWVU_3eFluZtQJhn$x)bTyV!|V4}w2 zkO_VjC;-v+y4ISkwl*~*Ew3#9SXuu!7GA_z8`B5GKb?_OazATer|E=iE!;V)e5Lq( zHxF{-_hewc2Ul&V2W{=lPjUZR%lgH$sbovhK-d)jXjEN4gvD(O$npYv!y0oO^940# zd}LU8X%QZmJR|$vQ^w#5+o+;;4JfQSunT6{R(F$7ZY^Jx$^4 zrNekIA9qh8K!dx@r2pj7z*bXCM+?<@(qBPuDnG?n;oVTejL`#wFTdF+X(38r1_q_* z+(MYazNz~=)=M&;stWe+itgEj=2LO8G0~U@dp$<=mw0%GoCn@V5%nE|_Z@U_4tO^V z)$l&3;WYvb7y3^y>)YZq#QkCB00sd0pk4yG*OEi5TVEz0Px;L#?LQj$$V0O*l@K58 z{(f$JZ13~q9dH0gJq7etST5HAQ==;DgXnT-(DB` zD+=L2OcjU}M-Lz~gtM~;lQ{RQT$m5I7^mai#qzF3t+w9XiOnMSHLm#VU-PL86$bYp zCm0%T^%>*DwAC6R61i`YAtDqQrQqh(Wqw;MWiW+RJl%-<-Z1s)P>XEucXZoa#04$7 zJjCJi+C$I9kE%aCH$U2qu=3dY{87M%5iOA)_44ZV`TU2LX2$D70Yw|@eS5^eVDLuZ zRsBBMdjGclo}$=)TFsu|9D~|aY;8u+Q@UUxW*U% zA4@uJzf^C%s%IGvDanZR!Zp|xp7`xJB0}P$MQwduO|4bF?_Y6_>DKd?A6TpWf^4+k z>%8UvOMgjyj8g1tbG5(ZAq4S)RACSD&xPWF%b9pQj~i>8@8gpRiM|iv@Bf{DW^ry} ze@%6N=~jO_F!YwQyY$rRGJ*fFe|6a_iTI!KA@JGk(E0Fh%S%TC8?gSDN@POzYy4y6 zAApLIhA_2DGGJ7zQa>ye8N+v1E%^eeu;LHd)LWya$8h%IewdnP4?-Zgst_t2^do4h zn@X-iN8dSZ{dmYTJX_C$^z==i=R5E~9qy@jq;Tk&$0 z&*+emWXz@wO&USnjsrzBQ@?(yCGGiIO;j%~;(7eqr?r_jX*Qd|Iof7Cp*&Q4P4zup z@;l`5lET6qn1WY$jUoGB7KHamc`?{N-a0cn8&p?j!%j7r{fEAQc^js~JP6a8H|L1|Vl>9{ zE7R=8_TdAEkO3BIev-A{Bgt9~5(pK=))>b^^;v_23NDi@&DpZ7z|-6a8Mt-5v6JRsmTa z!?VJZwUS_VNb+A}(o71bJNIfpmqh5AbKKP!58wlr4`3jT9gyyzN7%j#Q`!MH9F$eu7{U6ls zJ_C>-V$Q)({^JH^fml4okZnK~%u1U%hkbC1X*(D{ATM}wswW$+vTGZ9!=(=YL31VX z2a57dvM36{e#~yCXNt{Znna0Psn$J6Zx=5%@&pa^E;(XkreZXl;6UYF}oLFB2bYJ8>>9Ki?;Fga@zN^?% zB0=4W{^9R60-xaomW*Nne?aa;M|66kORVQ`dCG@i*Ro1N$$Eh}Y9qe%c{dmmIjtwv6BTBQ$#W#6IhVv*P&s7CaVGRt!7J z4e;4S4>Un*x#d5J+H3Xx1J$p*v_p~+c!N_L8Z@4_ei{Lp=nyoIoK@Ny1(RkTKD*%s zDa<+qJ)~ka?4yUU$UTmuzD#f^_c7envt6$p9)2O^SFXm7!mP<|Xf81nBL75a@@Uvu z$Gfu*!8}z5H>pEr+QiibGQ)Ky<;Tw;TW}rpAC&*xs`D+}A*QWF%2Ms;ucaa(xOV#* z39i+#|8{Vkdc{1Bb11pjZ9qE1P&;)9r%P~WM>yLLJVKc|cBLrf=${#ualg*{daM12 z>oasMiSgxKvOD^m03z~AJi#1|JQ3$VwB`GuuHZMM3Rq2F$HhgS>T0YXEo2HGM8mh8 zR%6zHp<>U=;l@D0Iqdu;Pqr_{H3v;SoaVTMM@P)~I!flE%NdT4BauTOd!0ikHl)bR z*l)?1v_6*8h+#Hk(aUDBG4&vWYVj<_Mc)ciZhiG>Qe_9OeEC!u`hn>*p z)LkFJ)`9qydjY(*ehByJE9_UwtLuAUi?>rEGa7{l{V^HZo}(JIu#eh!f(R2pIAz%R z;kANZgstoRHd`dw%fCM+hO51#%{6NFaCWh>*4Z9%{*ZT7vCEV5WobV= zmE4TU>LDv&M4$PFC$O~Z$R11QH0fZ7{iNS|01w?LSWh$)gGCLtdFqpAmxL^8mmtf@$cU( z35&c*#Qf11=HJ2)Vsy;}Mn5A>PgOcFUkF?rJ1LkaOG&>$FwY$$PPWyUUsv3hn7@*k zA4zi8sP_u$@f7I~+=r?K_ZF)CJuIt*;QUx$8|OFnwsBq#UU4?gN5|nj#($x&kom&o z=)tIi{VeLlJ##wKVylIk6%DT?@6fvh^-*isqBR27ScUyFBAv>oi&%O1gls@O1ex8W zCp>_>l&3v@sE0umnik^yr!tCGVjKxOYXq(yv~HSDerQVYsAZyj!D^QbbU_a^*Bi}I zy~Oh}K3`%z$0j=lFZd%P=#U?ji3@gM%s7Vx=>71CQ+|Cm%a&hj)L)O20E_?wG1Zy& zlwSwl=aS;%=|Ts>`siV*q<1Zn`!mXtg0PtX@eT!khKcxY;Tc1pmFpaN#a8GO7!Thgrm61N?}mDUEso%hL({#4~<*`8z1z)FCMm4v@O=Y zbPB{#B^_N8?a1=W zbo(BDhw6cSND}ZO?SK)<2vmW&!4crZAlFz^GJli|~`7)vXJNraYXVytPb@vMbu_A8Y?>KKDL%`x?ba(A>o~xVCpA-~?H^#fI48NU7L0obPH5$Mn2DBu;X+ zT}pO~uz9s-JL%Zj$bJz|@y;VltYY?l&;C%_iJQR_&)c=@PWgnHNzH8<(+T{jcKl^^ z!F-T7I?k@cis2T^W?T6hVM<^t{SkjmzJyq7=#C}eUYSr3=Hpn)nNnI;rXLoBp@B6( zzu8z96Gk&$e=-8Ek;=o_Q@Wr)1i#TvSL|mcX-432JgTqWlhsziZ5It=DZHzl| z^_?nUF@&L9_y&K~ta1nI7!}m(O|9o;ALtCO2NA@%Hd{zgJ@pT5Sh>{Vv-xk^i4NoU z*8(P&xlZutyz4g`AwQ5_>R?*!n6CH`MH*X<8(~H!K`3t_BXi&y5eB=2FLXx7CpQQk z{fq+__W^Y$Y#p~;BFsu66~-e52Xggus=6&1)qwl3*{lOl$PhIklXHjTNr?5DFjU`x zaRr~cOvv*FfA?nnY&?b-EwP+T#orjBC5Y8V^qul4hUjfKTZkT~10IQJ6G8|lm7`mX z{Yx8Wj;W;wH7h*^ex*9r9$|S2Y*E)C?i7Rjy~YPqLP?${>v!Mfm{X|R`_yE1WsAKB zprkX}*72u2NU0zr*jiefevA&DS{}znIwig|0z5^^D2}>ze9~6Ds3lgQC<)Ap>>diT z+XbWn1+=9Ym8LvQp*h9ej^AkCLfPyu01M-QNpu@-iW}fjS`lD(Llg_N4>u(Ak}DCf z0ScW03jI-)V|{oX#QlCf`b$k{Ww3Y(F+7K68E-Tnt)Mpxl$Iz!P;!7s4lM9(-SdI6 z2^K7bauF1szKVkKl00Zop2BZw83&`vOUC2&ora)6ilxW2Dtj?d27gAJ73gI^k1h7T zPeFx=Rv=x9OBqCaycgF@Z?)r}bn_!N8r5)T3lodMLf;z*qx-nmzcdRRLM^Ya^Hc*E z`~z)-!16m-ab3t9)Q$5Mc6Ru{UQMrMVKsfQm8+>I3_V}a&{2^ERG7T2o>v9!ioNIM zedY!79wxxAZb!yO21O$4BmO7R-5lUg#4M~Gh2f4JFm}Yb)pt7(FFlw_5ji>hN|@pM zCh8=z$5Gr~TD4Rgg6Iid(Lo>_`cFV;lPqodv{UtUHWf%8;xm@Am0=RQzJ4J`CGPY% zpc)T`Tuzh3RLqMx3IAYxhZpfGPYgA99LZZ@#&ms(dPzn_Dh6eyOQ1tGQ^>ZpLWVlO5h!J&v+mFtoMa`im&bobz_^}!0d_Y-4PSjcnc>Ab3%>Jo~`LDUx9xT>5o^p#L?d? z`)kwRE}@0o10SD<{`7!qjM;ApE}tpGA4Ccxi`}seg%_V>Bzaqtxp#?*=RC(sirqnA z>7+XgSN?49JuoQj>nKa?7cMcHVmbg^Lk6kOvZ3$aRLV46AfofAjd4 z#69~B7R1g6XGSr?@{I6Pc!32~1@vWtsFn*g7aI9HIZ*z^>2PwJLdP#;7#V8 zhIk!&aZY0>{&T}$ScP*0tF90C%d~kD4!0V!FO}x^sBQHb7gw;b(9sF!U3Gpt)bCkE z5N-ts5igka8DCQnfv++7Hk(BJ)3y9dtT^$-@3k?qXq&b>HFNQ zfr4b`+TY@A0^m107IG7>BUV;W8kYv9hZ7P=2T5_quBijVk|sZ&QESc8JOptbiMZpl z0~4m+VoB;2)3_rSvwbwqCU74;ok9!i*;qpKQqelhpr!bfOjO(2z_OnLjqWUa17i?i z=wM>`9e@f{ldU>f{<$4m;#!Yrbiz;<(}9_W#MKgiw7}%+s$PAY`>B6S@Eu zuc^wu6H(Qw`rDZ7WScjo8()3dy0rJg+P3b(^)rdvR=J=c_oD^1*an(_(9ss%L8v@~ zvsM5P9m6(%w4@&8j>vU(L$W@w{0PzNUj?F)6o^=GYCuY$>Gops3qO2ksFH^cv0_VL z++C?YzJYSVGPu>YCeX&x4A4d=kbS&{6^joYL5o3}eL5<8H|A2D#p^V2j6nP@iGv#^ z_XE(;X7&o0Kq#f;8y2@u_!FJ6L`M+_MpK(6G^HZ1Wk)U=Lsg3L=|X=?^G{IwR;jM28nHg;CeHvQ!=Jo;Mtj6 zG0=|aT7Fd^I^!@N9VM)2CRq`(wh;yhz_bGJv^c=x2P&!9k1Z=eM|tvsY0Gv$o7Q+N zNf(tDS4$oR8dN#H;jKAWp{ zJ2t5uOBpe+%xnenQsuxtU@9}d>ohh+;vf48NH@;wHIRf!-f~3;%)EMe zhH#3rjPkpR)4jnv;4#^)p{!_wdXYiO(0w9

EUqdK&5>!U%EBt^+5MQ}V_Iw8Q@h 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

OV5dK8ucm`VbLfr)}dL7M+` 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�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

7&_#Ntd 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ⅆ*``Kl;Wu*gw%44Ly!#fk?ted&uPL0E^1avy^;3 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.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.* diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/SOURCES.txt b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/SOURCES.txt deleted file mode 100644 index eb4810d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/SOURCES.txt +++ /dev/null @@ -1,391 +0,0 @@ -AUTHORS.txt -LICENSE.txt -MANIFEST.in -NEWS.rst -README.rst -pyproject.toml -setup.cfg -setup.py -docs/pip_sphinxext.py -docs/html/conf.py -docs/html/cookbook.rst -docs/html/index.rst -docs/html/installing.rst -docs/html/logic.rst -docs/html/news.rst -docs/html/quickstart.rst -docs/html/usage.rst -docs/html/user_guide.rst -docs/html/development/configuration.rst -docs/html/development/contributing.rst -docs/html/development/getting-started.rst -docs/html/development/index.rst -docs/html/development/release-process.rst -docs/html/development/vendoring-policy.rst -docs/html/reference/index.rst -docs/html/reference/pip.rst -docs/html/reference/pip_check.rst -docs/html/reference/pip_config.rst -docs/html/reference/pip_download.rst -docs/html/reference/pip_freeze.rst -docs/html/reference/pip_hash.rst -docs/html/reference/pip_install.rst -docs/html/reference/pip_list.rst -docs/html/reference/pip_search.rst -docs/html/reference/pip_show.rst -docs/html/reference/pip_uninstall.rst -docs/html/reference/pip_wheel.rst -docs/man/index.rst -docs/man/commands/check.rst -docs/man/commands/config.rst -docs/man/commands/download.rst -docs/man/commands/freeze.rst -docs/man/commands/hash.rst -docs/man/commands/help.rst -docs/man/commands/install.rst -docs/man/commands/list.rst -docs/man/commands/search.rst -docs/man/commands/show.rst -docs/man/commands/uninstall.rst -docs/man/commands/wheel.rst -src/pip/__init__.py -src/pip/__main__.py -src/pip.egg-info/PKG-INFO -src/pip.egg-info/SOURCES.txt -src/pip.egg-info/dependency_links.txt -src/pip.egg-info/entry_points.txt -src/pip.egg-info/not-zip-safe -src/pip.egg-info/top_level.txt -src/pip/_internal/__init__.py -src/pip/_internal/build_env.py -src/pip/_internal/cache.py -src/pip/_internal/configuration.py -src/pip/_internal/download.py -src/pip/_internal/exceptions.py -src/pip/_internal/index.py -src/pip/_internal/locations.py -src/pip/_internal/pep425tags.py -src/pip/_internal/pyproject.py -src/pip/_internal/resolve.py -src/pip/_internal/wheel.py -src/pip/_internal/cli/__init__.py -src/pip/_internal/cli/autocompletion.py -src/pip/_internal/cli/base_command.py -src/pip/_internal/cli/cmdoptions.py -src/pip/_internal/cli/main_parser.py -src/pip/_internal/cli/parser.py -src/pip/_internal/cli/status_codes.py -src/pip/_internal/commands/__init__.py -src/pip/_internal/commands/check.py -src/pip/_internal/commands/completion.py -src/pip/_internal/commands/configuration.py -src/pip/_internal/commands/download.py -src/pip/_internal/commands/freeze.py -src/pip/_internal/commands/hash.py -src/pip/_internal/commands/help.py -src/pip/_internal/commands/install.py -src/pip/_internal/commands/list.py -src/pip/_internal/commands/search.py -src/pip/_internal/commands/show.py -src/pip/_internal/commands/uninstall.py -src/pip/_internal/commands/wheel.py -src/pip/_internal/models/__init__.py -src/pip/_internal/models/candidate.py -src/pip/_internal/models/format_control.py -src/pip/_internal/models/index.py -src/pip/_internal/models/link.py -src/pip/_internal/operations/__init__.py -src/pip/_internal/operations/check.py -src/pip/_internal/operations/freeze.py -src/pip/_internal/operations/prepare.py -src/pip/_internal/req/__init__.py -src/pip/_internal/req/constructors.py -src/pip/_internal/req/req_file.py -src/pip/_internal/req/req_install.py -src/pip/_internal/req/req_set.py -src/pip/_internal/req/req_tracker.py -src/pip/_internal/req/req_uninstall.py -src/pip/_internal/utils/__init__.py -src/pip/_internal/utils/appdirs.py -src/pip/_internal/utils/compat.py -src/pip/_internal/utils/deprecation.py -src/pip/_internal/utils/encoding.py -src/pip/_internal/utils/filesystem.py -src/pip/_internal/utils/glibc.py -src/pip/_internal/utils/hashes.py -src/pip/_internal/utils/logging.py -src/pip/_internal/utils/misc.py -src/pip/_internal/utils/models.py -src/pip/_internal/utils/outdated.py -src/pip/_internal/utils/packaging.py -src/pip/_internal/utils/setuptools_build.py -src/pip/_internal/utils/temp_dir.py -src/pip/_internal/utils/typing.py -src/pip/_internal/utils/ui.py -src/pip/_internal/vcs/__init__.py -src/pip/_internal/vcs/bazaar.py -src/pip/_internal/vcs/git.py -src/pip/_internal/vcs/mercurial.py -src/pip/_internal/vcs/subversion.py -src/pip/_vendor/README.rst -src/pip/_vendor/__init__.py -src/pip/_vendor/appdirs.LICENSE.txt -src/pip/_vendor/appdirs.py -src/pip/_vendor/distro.LICENSE -src/pip/_vendor/distro.py -src/pip/_vendor/ipaddress.LICENSE -src/pip/_vendor/ipaddress.py -src/pip/_vendor/pyparsing.LICENSE -src/pip/_vendor/pyparsing.py -src/pip/_vendor/retrying.LICENSE -src/pip/_vendor/retrying.py -src/pip/_vendor/six.LICENSE -src/pip/_vendor/six.py -src/pip/_vendor/vendor.txt -src/pip/_vendor/cachecontrol/LICENSE.txt -src/pip/_vendor/cachecontrol/__init__.py -src/pip/_vendor/cachecontrol/_cmd.py -src/pip/_vendor/cachecontrol/adapter.py -src/pip/_vendor/cachecontrol/cache.py -src/pip/_vendor/cachecontrol/compat.py -src/pip/_vendor/cachecontrol/controller.py -src/pip/_vendor/cachecontrol/filewrapper.py -src/pip/_vendor/cachecontrol/heuristics.py -src/pip/_vendor/cachecontrol/serialize.py -src/pip/_vendor/cachecontrol/wrapper.py -src/pip/_vendor/cachecontrol/caches/__init__.py -src/pip/_vendor/cachecontrol/caches/file_cache.py -src/pip/_vendor/cachecontrol/caches/redis_cache.py -src/pip/_vendor/certifi/LICENSE -src/pip/_vendor/certifi/__init__.py -src/pip/_vendor/certifi/__main__.py -src/pip/_vendor/certifi/cacert.pem -src/pip/_vendor/certifi/core.py -src/pip/_vendor/chardet/LICENSE -src/pip/_vendor/chardet/__init__.py -src/pip/_vendor/chardet/big5freq.py -src/pip/_vendor/chardet/big5prober.py -src/pip/_vendor/chardet/chardistribution.py -src/pip/_vendor/chardet/charsetgroupprober.py -src/pip/_vendor/chardet/charsetprober.py -src/pip/_vendor/chardet/codingstatemachine.py -src/pip/_vendor/chardet/compat.py -src/pip/_vendor/chardet/cp949prober.py -src/pip/_vendor/chardet/enums.py -src/pip/_vendor/chardet/escprober.py -src/pip/_vendor/chardet/escsm.py -src/pip/_vendor/chardet/eucjpprober.py -src/pip/_vendor/chardet/euckrfreq.py -src/pip/_vendor/chardet/euckrprober.py -src/pip/_vendor/chardet/euctwfreq.py -src/pip/_vendor/chardet/euctwprober.py -src/pip/_vendor/chardet/gb2312freq.py -src/pip/_vendor/chardet/gb2312prober.py -src/pip/_vendor/chardet/hebrewprober.py -src/pip/_vendor/chardet/jisfreq.py -src/pip/_vendor/chardet/jpcntx.py -src/pip/_vendor/chardet/langbulgarianmodel.py -src/pip/_vendor/chardet/langcyrillicmodel.py -src/pip/_vendor/chardet/langgreekmodel.py -src/pip/_vendor/chardet/langhebrewmodel.py -src/pip/_vendor/chardet/langhungarianmodel.py -src/pip/_vendor/chardet/langthaimodel.py -src/pip/_vendor/chardet/langturkishmodel.py -src/pip/_vendor/chardet/latin1prober.py -src/pip/_vendor/chardet/mbcharsetprober.py -src/pip/_vendor/chardet/mbcsgroupprober.py -src/pip/_vendor/chardet/mbcssm.py -src/pip/_vendor/chardet/sbcharsetprober.py -src/pip/_vendor/chardet/sbcsgroupprober.py -src/pip/_vendor/chardet/sjisprober.py -src/pip/_vendor/chardet/universaldetector.py -src/pip/_vendor/chardet/utf8prober.py -src/pip/_vendor/chardet/version.py -src/pip/_vendor/chardet/cli/__init__.py -src/pip/_vendor/chardet/cli/chardetect.py -src/pip/_vendor/colorama/LICENSE.txt -src/pip/_vendor/colorama/__init__.py -src/pip/_vendor/colorama/ansi.py -src/pip/_vendor/colorama/ansitowin32.py -src/pip/_vendor/colorama/initialise.py -src/pip/_vendor/colorama/win32.py -src/pip/_vendor/colorama/winterm.py -src/pip/_vendor/distlib/LICENSE.txt -src/pip/_vendor/distlib/__init__.py -src/pip/_vendor/distlib/compat.py -src/pip/_vendor/distlib/database.py -src/pip/_vendor/distlib/index.py -src/pip/_vendor/distlib/locators.py -src/pip/_vendor/distlib/manifest.py -src/pip/_vendor/distlib/markers.py -src/pip/_vendor/distlib/metadata.py -src/pip/_vendor/distlib/resources.py -src/pip/_vendor/distlib/scripts.py -src/pip/_vendor/distlib/t32.exe -src/pip/_vendor/distlib/t64.exe -src/pip/_vendor/distlib/util.py -src/pip/_vendor/distlib/version.py -src/pip/_vendor/distlib/w32.exe -src/pip/_vendor/distlib/w64.exe -src/pip/_vendor/distlib/wheel.py -src/pip/_vendor/distlib/_backport/__init__.py -src/pip/_vendor/distlib/_backport/misc.py -src/pip/_vendor/distlib/_backport/shutil.py -src/pip/_vendor/distlib/_backport/sysconfig.cfg -src/pip/_vendor/distlib/_backport/sysconfig.py -src/pip/_vendor/distlib/_backport/tarfile.py -src/pip/_vendor/html5lib/LICENSE -src/pip/_vendor/html5lib/__init__.py -src/pip/_vendor/html5lib/_ihatexml.py -src/pip/_vendor/html5lib/_inputstream.py -src/pip/_vendor/html5lib/_tokenizer.py -src/pip/_vendor/html5lib/_utils.py -src/pip/_vendor/html5lib/constants.py -src/pip/_vendor/html5lib/html5parser.py -src/pip/_vendor/html5lib/serializer.py -src/pip/_vendor/html5lib/_trie/__init__.py -src/pip/_vendor/html5lib/_trie/_base.py -src/pip/_vendor/html5lib/_trie/datrie.py -src/pip/_vendor/html5lib/_trie/py.py -src/pip/_vendor/html5lib/filters/__init__.py -src/pip/_vendor/html5lib/filters/alphabeticalattributes.py -src/pip/_vendor/html5lib/filters/base.py -src/pip/_vendor/html5lib/filters/inject_meta_charset.py -src/pip/_vendor/html5lib/filters/lint.py -src/pip/_vendor/html5lib/filters/optionaltags.py -src/pip/_vendor/html5lib/filters/sanitizer.py -src/pip/_vendor/html5lib/filters/whitespace.py -src/pip/_vendor/html5lib/treeadapters/__init__.py -src/pip/_vendor/html5lib/treeadapters/genshi.py -src/pip/_vendor/html5lib/treeadapters/sax.py -src/pip/_vendor/html5lib/treebuilders/__init__.py -src/pip/_vendor/html5lib/treebuilders/base.py -src/pip/_vendor/html5lib/treebuilders/dom.py -src/pip/_vendor/html5lib/treebuilders/etree.py -src/pip/_vendor/html5lib/treebuilders/etree_lxml.py -src/pip/_vendor/html5lib/treewalkers/__init__.py -src/pip/_vendor/html5lib/treewalkers/base.py -src/pip/_vendor/html5lib/treewalkers/dom.py -src/pip/_vendor/html5lib/treewalkers/etree.py -src/pip/_vendor/html5lib/treewalkers/etree_lxml.py -src/pip/_vendor/html5lib/treewalkers/genshi.py -src/pip/_vendor/idna/LICENSE.rst -src/pip/_vendor/idna/__init__.py -src/pip/_vendor/idna/codec.py -src/pip/_vendor/idna/compat.py -src/pip/_vendor/idna/core.py -src/pip/_vendor/idna/idnadata.py -src/pip/_vendor/idna/intranges.py -src/pip/_vendor/idna/package_data.py -src/pip/_vendor/idna/uts46data.py -src/pip/_vendor/lockfile/LICENSE -src/pip/_vendor/lockfile/__init__.py -src/pip/_vendor/lockfile/linklockfile.py -src/pip/_vendor/lockfile/mkdirlockfile.py -src/pip/_vendor/lockfile/pidlockfile.py -src/pip/_vendor/lockfile/sqlitelockfile.py -src/pip/_vendor/lockfile/symlinklockfile.py -src/pip/_vendor/msgpack/COPYING -src/pip/_vendor/msgpack/__init__.py -src/pip/_vendor/msgpack/_version.py -src/pip/_vendor/msgpack/exceptions.py -src/pip/_vendor/msgpack/fallback.py -src/pip/_vendor/packaging/LICENSE -src/pip/_vendor/packaging/LICENSE.APACHE -src/pip/_vendor/packaging/LICENSE.BSD -src/pip/_vendor/packaging/__about__.py -src/pip/_vendor/packaging/__init__.py -src/pip/_vendor/packaging/_compat.py -src/pip/_vendor/packaging/_structures.py -src/pip/_vendor/packaging/markers.py -src/pip/_vendor/packaging/requirements.py -src/pip/_vendor/packaging/specifiers.py -src/pip/_vendor/packaging/utils.py -src/pip/_vendor/packaging/version.py -src/pip/_vendor/pep517/LICENSE -src/pip/_vendor/pep517/__init__.py -src/pip/_vendor/pep517/_in_process.py -src/pip/_vendor/pep517/build.py -src/pip/_vendor/pep517/check.py -src/pip/_vendor/pep517/colorlog.py -src/pip/_vendor/pep517/compat.py -src/pip/_vendor/pep517/envbuild.py -src/pip/_vendor/pep517/wrappers.py -src/pip/_vendor/pkg_resources/LICENSE -src/pip/_vendor/pkg_resources/__init__.py -src/pip/_vendor/pkg_resources/py31compat.py -src/pip/_vendor/progress/LICENSE -src/pip/_vendor/progress/__init__.py -src/pip/_vendor/progress/bar.py -src/pip/_vendor/progress/counter.py -src/pip/_vendor/progress/helpers.py -src/pip/_vendor/progress/spinner.py -src/pip/_vendor/pytoml/LICENSE -src/pip/_vendor/pytoml/__init__.py -src/pip/_vendor/pytoml/core.py -src/pip/_vendor/pytoml/parser.py -src/pip/_vendor/pytoml/test.py -src/pip/_vendor/pytoml/utils.py -src/pip/_vendor/pytoml/writer.py -src/pip/_vendor/requests/LICENSE -src/pip/_vendor/requests/__init__.py -src/pip/_vendor/requests/__version__.py -src/pip/_vendor/requests/_internal_utils.py -src/pip/_vendor/requests/adapters.py -src/pip/_vendor/requests/api.py -src/pip/_vendor/requests/auth.py -src/pip/_vendor/requests/certs.py -src/pip/_vendor/requests/compat.py -src/pip/_vendor/requests/cookies.py -src/pip/_vendor/requests/exceptions.py -src/pip/_vendor/requests/help.py -src/pip/_vendor/requests/hooks.py -src/pip/_vendor/requests/models.py -src/pip/_vendor/requests/packages.py -src/pip/_vendor/requests/sessions.py -src/pip/_vendor/requests/status_codes.py -src/pip/_vendor/requests/structures.py -src/pip/_vendor/requests/utils.py -src/pip/_vendor/urllib3/LICENSE.txt -src/pip/_vendor/urllib3/__init__.py -src/pip/_vendor/urllib3/_collections.py -src/pip/_vendor/urllib3/connection.py -src/pip/_vendor/urllib3/connectionpool.py -src/pip/_vendor/urllib3/exceptions.py -src/pip/_vendor/urllib3/fields.py -src/pip/_vendor/urllib3/filepost.py -src/pip/_vendor/urllib3/poolmanager.py -src/pip/_vendor/urllib3/request.py -src/pip/_vendor/urllib3/response.py -src/pip/_vendor/urllib3/contrib/__init__.py -src/pip/_vendor/urllib3/contrib/_appengine_environ.py -src/pip/_vendor/urllib3/contrib/appengine.py -src/pip/_vendor/urllib3/contrib/ntlmpool.py -src/pip/_vendor/urllib3/contrib/pyopenssl.py -src/pip/_vendor/urllib3/contrib/securetransport.py -src/pip/_vendor/urllib3/contrib/socks.py -src/pip/_vendor/urllib3/contrib/_securetransport/__init__.py -src/pip/_vendor/urllib3/contrib/_securetransport/bindings.py -src/pip/_vendor/urllib3/contrib/_securetransport/low_level.py -src/pip/_vendor/urllib3/packages/__init__.py -src/pip/_vendor/urllib3/packages/six.py -src/pip/_vendor/urllib3/packages/backports/__init__.py -src/pip/_vendor/urllib3/packages/backports/makefile.py -src/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py -src/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py -src/pip/_vendor/urllib3/util/__init__.py -src/pip/_vendor/urllib3/util/connection.py -src/pip/_vendor/urllib3/util/queue.py -src/pip/_vendor/urllib3/util/request.py -src/pip/_vendor/urllib3/util/response.py -src/pip/_vendor/urllib3/util/retry.py -src/pip/_vendor/urllib3/util/ssl_.py -src/pip/_vendor/urllib3/util/timeout.py -src/pip/_vendor/urllib3/util/url.py -src/pip/_vendor/urllib3/util/wait.py -src/pip/_vendor/webencodings/LICENSE -src/pip/_vendor/webencodings/__init__.py -src/pip/_vendor/webencodings/labels.py -src/pip/_vendor/webencodings/mklabels.py -src/pip/_vendor/webencodings/tests.py -src/pip/_vendor/webencodings/x_user_defined.py \ No newline at end of file diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/dependency_links.txt b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/entry_points.txt b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/entry_points.txt deleted file mode 100644 index 6b7f48a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/entry_points.txt +++ /dev/null @@ -1,5 +0,0 @@ -[console_scripts] -pip = pip._internal:main -pip3 = pip._internal:main -pip3.6 = pip._internal:main - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/not-zip-safe b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/not-zip-safe deleted file mode 100644 index 8b13789..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/not-zip-safe +++ /dev/null @@ -1 +0,0 @@ - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/top_level.txt b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/top_level.txt deleted file mode 100644 index a1b589e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__init__.py deleted file mode 100644 index f48c1ca..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "19.0.3" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__main__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__main__.py deleted file mode 100644 index 0c223f8..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__main__.py +++ /dev/null @@ -1,19 +0,0 @@ -from __future__ import absolute_import - -import os -import sys - -# If we are running from a wheel, add the wheel to sys.path -# This allows the usage python pip-*.whl/pip install pip-*.whl -if __package__ == '': - # __file__ is pip-*.whl/pip/__main__.py - # first dirname call strips of '/__main__.py', second strips off '/pip' - # Resulting path is the name of the wheel itself - # Add that to sys.path so we can import pip - path = os.path.dirname(os.path.dirname(__file__)) - sys.path.insert(0, path) - -from pip._internal import main as _main # isort:skip # noqa - -if __name__ == '__main__': - sys.exit(_main()) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/__init__.py deleted file mode 100644 index 276124d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/__init__.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python -from __future__ import absolute_import - -import locale -import logging -import os -import warnings - -import sys - -# 2016-06-17 barry@debian.org: urllib3 1.14 added optional support for socks, -# but if invoked (i.e. imported), it will issue a warning to stderr if socks -# isn't available. requests unconditionally imports urllib3's socks contrib -# module, triggering this warning. The warning breaks DEP-8 tests (because of -# the stderr output) and is just plain annoying in normal usage. I don't want -# to add socks as yet another dependency for pip, nor do I want to allow-stder -# in the DEP-8 tests, so just suppress the warning. pdb tells me this has to -# be done before the import of pip.vcs. -from pip._vendor.urllib3.exceptions import DependencyWarning -warnings.filterwarnings("ignore", category=DependencyWarning) # noqa - -# We want to inject the use of SecureTransport as early as possible so that any -# references or sessions or what have you are ensured to have it, however we -# only want to do this in the case that we're running on macOS and the linked -# OpenSSL is too old to handle TLSv1.2 -try: - import ssl -except ImportError: - pass -else: - # Checks for OpenSSL 1.0.1 on MacOS - if sys.platform == "darwin" and ssl.OPENSSL_VERSION_NUMBER < 0x1000100f: - try: - from pip._vendor.urllib3.contrib import securetransport - except (ImportError, OSError): - pass - else: - securetransport.inject_into_urllib3() - -from pip._internal.cli.autocompletion import autocomplete -from pip._internal.cli.main_parser import parse_command -from pip._internal.commands import commands_dict -from pip._internal.exceptions import PipError -from pip._internal.utils import deprecation -from pip._internal.vcs import git, mercurial, subversion, bazaar # noqa -from pip._vendor.urllib3.exceptions import InsecureRequestWarning - -logger = logging.getLogger(__name__) - -# Hide the InsecureRequestWarning from urllib3 -warnings.filterwarnings("ignore", category=InsecureRequestWarning) - - -def main(args=None): - if args is None: - args = sys.argv[1:] - - # Configure our deprecation warnings to be sent through loggers - deprecation.install_warning_logger() - - autocomplete() - - try: - cmd_name, cmd_args = parse_command(args) - except PipError as exc: - sys.stderr.write("ERROR: %s" % exc) - sys.stderr.write(os.linesep) - sys.exit(1) - - # Needed for locale.getpreferredencoding(False) to work - # in pip._internal.utils.encoding.auto_decode - try: - locale.setlocale(locale.LC_ALL, '') - except locale.Error as e: - # setlocale can apparently crash if locale are uninitialized - logger.debug("Ignoring error %s when setting locale", e) - command = commands_dict[cmd_name](isolated=("--isolated" in cmd_args)) - return command.main(cmd_args) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/build_env.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/build_env.py deleted file mode 100644 index d744cc7..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/build_env.py +++ /dev/null @@ -1,215 +0,0 @@ -"""Build Environment used for isolation during sdist building -""" - -import logging -import os -import sys -import textwrap -from collections import OrderedDict -from distutils.sysconfig import get_python_lib -from sysconfig import get_paths - -from pip._vendor.pkg_resources import Requirement, VersionConflict, WorkingSet - -from pip import __file__ as pip_location -from pip._internal.utils.misc import call_subprocess -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.utils.ui import open_spinner - -if MYPY_CHECK_RUNNING: - from typing import Tuple, Set, Iterable, Optional, List # noqa: F401 - from pip._internal.index import PackageFinder # noqa: F401 - -logger = logging.getLogger(__name__) - - -class _Prefix: - - def __init__(self, path): - # type: (str) -> None - self.path = path - self.setup = False - self.bin_dir = get_paths( - 'nt' if os.name == 'nt' else 'posix_prefix', - vars={'base': path, 'platbase': path} - )['scripts'] - # Note: prefer distutils' sysconfig to get the - # library paths so PyPy is correctly supported. - purelib = get_python_lib(plat_specific=False, prefix=path) - platlib = get_python_lib(plat_specific=True, prefix=path) - if purelib == platlib: - self.lib_dirs = [purelib] - else: - self.lib_dirs = [purelib, platlib] - - -class BuildEnvironment(object): - """Creates and manages an isolated environment to install build deps - """ - - def __init__(self): - # type: () -> None - self._temp_dir = TempDirectory(kind="build-env") - self._temp_dir.create() - - self._prefixes = OrderedDict(( - (name, _Prefix(os.path.join(self._temp_dir.path, name))) - for name in ('normal', 'overlay') - )) - - self._bin_dirs = [] # type: List[str] - self._lib_dirs = [] # type: List[str] - for prefix in reversed(list(self._prefixes.values())): - self._bin_dirs.append(prefix.bin_dir) - self._lib_dirs.extend(prefix.lib_dirs) - - # Customize site to: - # - ensure .pth files are honored - # - prevent access to system site packages - system_sites = { - os.path.normcase(site) for site in ( - get_python_lib(plat_specific=False), - get_python_lib(plat_specific=True), - ) - } - self._site_dir = os.path.join(self._temp_dir.path, 'site') - if not os.path.exists(self._site_dir): - os.mkdir(self._site_dir) - with open(os.path.join(self._site_dir, 'sitecustomize.py'), 'w') as fp: - fp.write(textwrap.dedent( - ''' - import os, site, sys - - # First, drop system-sites related paths. - original_sys_path = sys.path[:] - known_paths = set() - for path in {system_sites!r}: - site.addsitedir(path, known_paths=known_paths) - system_paths = set( - os.path.normcase(path) - for path in sys.path[len(original_sys_path):] - ) - original_sys_path = [ - path for path in original_sys_path - if os.path.normcase(path) not in system_paths - ] - sys.path = original_sys_path - - # Second, add lib directories. - # ensuring .pth file are processed. - for path in {lib_dirs!r}: - assert not path in sys.path - site.addsitedir(path) - ''' - ).format(system_sites=system_sites, lib_dirs=self._lib_dirs)) - - def __enter__(self): - self._save_env = { - name: os.environ.get(name, None) - for name in ('PATH', 'PYTHONNOUSERSITE', 'PYTHONPATH') - } - - path = self._bin_dirs[:] - old_path = self._save_env['PATH'] - if old_path: - path.extend(old_path.split(os.pathsep)) - - pythonpath = [self._site_dir] - - os.environ.update({ - 'PATH': os.pathsep.join(path), - 'PYTHONNOUSERSITE': '1', - 'PYTHONPATH': os.pathsep.join(pythonpath), - }) - - def __exit__(self, exc_type, exc_val, exc_tb): - for varname, old_value in self._save_env.items(): - if old_value is None: - os.environ.pop(varname, None) - else: - os.environ[varname] = old_value - - def cleanup(self): - # type: () -> None - self._temp_dir.cleanup() - - def check_requirements(self, reqs): - # type: (Iterable[str]) -> Tuple[Set[Tuple[str, str]], Set[str]] - """Return 2 sets: - - conflicting requirements: set of (installed, wanted) reqs tuples - - missing requirements: set of reqs - """ - missing = set() - conflicting = set() - if reqs: - ws = WorkingSet(self._lib_dirs) - for req in reqs: - try: - if ws.find(Requirement.parse(req)) is None: - missing.add(req) - except VersionConflict as e: - conflicting.add((str(e.args[0].as_requirement()), - str(e.args[1]))) - return conflicting, missing - - def install_requirements( - self, - finder, # type: PackageFinder - requirements, # type: Iterable[str] - prefix_as_string, # type: str - message # type: Optional[str] - ): - # type: (...) -> None - prefix = self._prefixes[prefix_as_string] - assert not prefix.setup - prefix.setup = True - if not requirements: - return - args = [ - sys.executable, os.path.dirname(pip_location), 'install', - '--ignore-installed', '--no-user', '--prefix', prefix.path, - '--no-warn-script-location', - ] # type: List[str] - if logger.getEffectiveLevel() <= logging.DEBUG: - args.append('-v') - for format_control in ('no_binary', 'only_binary'): - formats = getattr(finder.format_control, format_control) - args.extend(('--' + format_control.replace('_', '-'), - ','.join(sorted(formats or {':none:'})))) - if finder.index_urls: - args.extend(['-i', finder.index_urls[0]]) - for extra_index in finder.index_urls[1:]: - args.extend(['--extra-index-url', extra_index]) - else: - args.append('--no-index') - for link in finder.find_links: - args.extend(['--find-links', link]) - for _, host, _ in finder.secure_origins: - args.extend(['--trusted-host', host]) - if finder.allow_all_prereleases: - args.append('--pre') - args.append('--') - args.extend(requirements) - with open_spinner(message) as spinner: - call_subprocess(args, show_stdout=False, spinner=spinner) - - -class NoOpBuildEnvironment(BuildEnvironment): - """A no-op drop-in replacement for BuildEnvironment - """ - - def __init__(self): - pass - - def __enter__(self): - pass - - def __exit__(self, exc_type, exc_val, exc_tb): - pass - - def cleanup(self): - pass - - def install_requirements(self, finder, requirements, prefix, message): - raise NotImplementedError() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cache.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cache.py deleted file mode 100644 index eb295c4..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cache.py +++ /dev/null @@ -1,224 +0,0 @@ -"""Cache Management -""" - -import errno -import hashlib -import logging -import os - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.download import path_to_url -from pip._internal.models.link import Link -from pip._internal.utils.compat import expanduser -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.wheel import InvalidWheelFilename, Wheel - -if MYPY_CHECK_RUNNING: - from typing import Optional, Set, List, Any # noqa: F401 - from pip._internal.index import FormatControl # noqa: F401 - -logger = logging.getLogger(__name__) - - -class Cache(object): - """An abstract class - provides cache directories for data from links - - - :param cache_dir: The root of the cache. - :param format_control: An object of FormatControl class to limit - binaries being read from the cache. - :param allowed_formats: which formats of files the cache should store. - ('binary' and 'source' are the only allowed values) - """ - - def __init__(self, cache_dir, format_control, allowed_formats): - # type: (str, FormatControl, Set[str]) -> None - super(Cache, self).__init__() - self.cache_dir = expanduser(cache_dir) if cache_dir else None - self.format_control = format_control - self.allowed_formats = allowed_formats - - _valid_formats = {"source", "binary"} - assert self.allowed_formats.union(_valid_formats) == _valid_formats - - def _get_cache_path_parts(self, link): - # type: (Link) -> List[str] - """Get parts of part that must be os.path.joined with cache_dir - """ - - # We want to generate an url to use as our cache key, we don't want to - # just re-use the URL because it might have other items in the fragment - # and we don't care about those. - key_parts = [link.url_without_fragment] - if link.hash_name is not None and link.hash is not None: - key_parts.append("=".join([link.hash_name, link.hash])) - key_url = "#".join(key_parts) - - # Encode our key url with sha224, we'll use this because it has similar - # security properties to sha256, but with a shorter total output (and - # thus less secure). However the differences don't make a lot of - # difference for our use case here. - hashed = hashlib.sha224(key_url.encode()).hexdigest() - - # We want to nest the directories some to prevent having a ton of top - # level directories where we might run out of sub directories on some - # FS. - parts = [hashed[:2], hashed[2:4], hashed[4:6], hashed[6:]] - - return parts - - def _get_candidates(self, link, package_name): - # type: (Link, Optional[str]) -> List[Any] - can_not_cache = ( - not self.cache_dir or - not package_name or - not link - ) - if can_not_cache: - return [] - - canonical_name = canonicalize_name(package_name) - formats = self.format_control.get_allowed_formats( - canonical_name - ) - if not self.allowed_formats.intersection(formats): - return [] - - root = self.get_path_for_link(link) - try: - return os.listdir(root) - except OSError as err: - if err.errno in {errno.ENOENT, errno.ENOTDIR}: - return [] - raise - - def get_path_for_link(self, link): - # type: (Link) -> str - """Return a directory to store cached items in for link. - """ - raise NotImplementedError() - - def get(self, link, package_name): - # type: (Link, Optional[str]) -> Link - """Returns a link to a cached item if it exists, otherwise returns the - passed link. - """ - raise NotImplementedError() - - def _link_for_candidate(self, link, candidate): - # type: (Link, str) -> Link - root = self.get_path_for_link(link) - path = os.path.join(root, candidate) - - return Link(path_to_url(path)) - - def cleanup(self): - # type: () -> None - pass - - -class SimpleWheelCache(Cache): - """A cache of wheels for future installs. - """ - - def __init__(self, cache_dir, format_control): - # type: (str, FormatControl) -> None - super(SimpleWheelCache, self).__init__( - cache_dir, format_control, {"binary"} - ) - - def get_path_for_link(self, link): - # type: (Link) -> str - """Return a directory to store cached wheels for link - - Because there are M wheels for any one sdist, we provide a directory - to cache them in, and then consult that directory when looking up - cache hits. - - We only insert things into the cache if they have plausible version - numbers, so that we don't contaminate the cache with things that were - not unique. E.g. ./package might have dozens of installs done for it - and build a version of 0.0...and if we built and cached a wheel, we'd - end up using the same wheel even if the source has been edited. - - :param link: The link of the sdist for which this will cache wheels. - """ - parts = self._get_cache_path_parts(link) - - # Store wheels within the root cache_dir - return os.path.join(self.cache_dir, "wheels", *parts) - - def get(self, link, package_name): - # type: (Link, Optional[str]) -> Link - candidates = [] - - for wheel_name in self._get_candidates(link, package_name): - try: - wheel = Wheel(wheel_name) - except InvalidWheelFilename: - continue - if not wheel.supported(): - # Built for a different python/arch/etc - continue - candidates.append((wheel.support_index_min(), wheel_name)) - - if not candidates: - return link - - return self._link_for_candidate(link, min(candidates)[1]) - - -class EphemWheelCache(SimpleWheelCache): - """A SimpleWheelCache that creates it's own temporary cache directory - """ - - def __init__(self, format_control): - # type: (FormatControl) -> None - self._temp_dir = TempDirectory(kind="ephem-wheel-cache") - self._temp_dir.create() - - super(EphemWheelCache, self).__init__( - self._temp_dir.path, format_control - ) - - def cleanup(self): - # type: () -> None - self._temp_dir.cleanup() - - -class WheelCache(Cache): - """Wraps EphemWheelCache and SimpleWheelCache into a single Cache - - This Cache allows for gracefully degradation, using the ephem wheel cache - when a certain link is not found in the simple wheel cache first. - """ - - def __init__(self, cache_dir, format_control): - # type: (str, FormatControl) -> None - super(WheelCache, self).__init__( - cache_dir, format_control, {'binary'} - ) - self._wheel_cache = SimpleWheelCache(cache_dir, format_control) - self._ephem_cache = EphemWheelCache(format_control) - - def get_path_for_link(self, link): - # type: (Link) -> str - return self._wheel_cache.get_path_for_link(link) - - def get_ephem_path_for_link(self, link): - # type: (Link) -> str - return self._ephem_cache.get_path_for_link(link) - - def get(self, link, package_name): - # type: (Link, Optional[str]) -> Link - retval = self._wheel_cache.get(link, package_name) - if retval is link: - retval = self._ephem_cache.get(link, package_name) - return retval - - def cleanup(self): - # type: () -> None - self._wheel_cache.cleanup() - self._ephem_cache.cleanup() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/__init__.py deleted file mode 100644 index e589bb9..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -"""Subpackage containing all of pip's command line interface related code -""" - -# This file intentionally does not import submodules diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/autocompletion.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/autocompletion.py deleted file mode 100644 index 0a04199..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/autocompletion.py +++ /dev/null @@ -1,152 +0,0 @@ -"""Logic that powers autocompletion installed by ``pip completion``. -""" - -import optparse -import os -import sys - -from pip._internal.cli.main_parser import create_main_parser -from pip._internal.commands import commands_dict, get_summaries -from pip._internal.utils.misc import get_installed_distributions - - -def autocomplete(): - """Entry Point for completion of main and subcommand options. - """ - # Don't complete if user hasn't sourced bash_completion file. - if 'PIP_AUTO_COMPLETE' not in os.environ: - return - cwords = os.environ['COMP_WORDS'].split()[1:] - cword = int(os.environ['COMP_CWORD']) - try: - current = cwords[cword - 1] - except IndexError: - current = '' - - subcommands = [cmd for cmd, summary in get_summaries()] - options = [] - # subcommand - try: - subcommand_name = [w for w in cwords if w in subcommands][0] - except IndexError: - subcommand_name = None - - parser = create_main_parser() - # subcommand options - if subcommand_name: - # special case: 'help' subcommand has no options - if subcommand_name == 'help': - sys.exit(1) - # special case: list locally installed dists for show and uninstall - should_list_installed = ( - subcommand_name in ['show', 'uninstall'] and - not current.startswith('-') - ) - if should_list_installed: - installed = [] - lc = current.lower() - for dist in get_installed_distributions(local_only=True): - if dist.key.startswith(lc) and dist.key not in cwords[1:]: - installed.append(dist.key) - # if there are no dists installed, fall back to option completion - if installed: - for dist in installed: - print(dist) - sys.exit(1) - - subcommand = commands_dict[subcommand_name]() - - for opt in subcommand.parser.option_list_all: - if opt.help != optparse.SUPPRESS_HELP: - for opt_str in opt._long_opts + opt._short_opts: - options.append((opt_str, opt.nargs)) - - # filter out previously specified options from available options - prev_opts = [x.split('=')[0] for x in cwords[1:cword - 1]] - options = [(x, v) for (x, v) in options if x not in prev_opts] - # filter options by current input - options = [(k, v) for k, v in options if k.startswith(current)] - # get completion type given cwords and available subcommand options - completion_type = get_path_completion_type( - cwords, cword, subcommand.parser.option_list_all, - ) - # get completion files and directories if ``completion_type`` is - # ````, ```` or ```` - if completion_type: - options = auto_complete_paths(current, completion_type) - options = ((opt, 0) for opt in options) - for option in options: - opt_label = option[0] - # append '=' to options which require args - if option[1] and option[0][:2] == "--": - opt_label += '=' - print(opt_label) - else: - # show main parser options only when necessary - - opts = [i.option_list for i in parser.option_groups] - opts.append(parser.option_list) - opts = (o for it in opts for o in it) - if current.startswith('-'): - for opt in opts: - if opt.help != optparse.SUPPRESS_HELP: - subcommands += opt._long_opts + opt._short_opts - else: - # get completion type given cwords and all available options - completion_type = get_path_completion_type(cwords, cword, opts) - if completion_type: - subcommands = auto_complete_paths(current, completion_type) - - print(' '.join([x for x in subcommands if x.startswith(current)])) - sys.exit(1) - - -def get_path_completion_type(cwords, cword, opts): - """Get the type of path completion (``file``, ``dir``, ``path`` or None) - - :param cwords: same as the environmental variable ``COMP_WORDS`` - :param cword: same as the environmental variable ``COMP_CWORD`` - :param opts: The available options to check - :return: path completion type (``file``, ``dir``, ``path`` or None) - """ - if cword < 2 or not cwords[cword - 2].startswith('-'): - return - for opt in opts: - if opt.help == optparse.SUPPRESS_HELP: - continue - for o in str(opt).split('/'): - if cwords[cword - 2].split('=')[0] == o: - if not opt.metavar or any( - x in ('path', 'file', 'dir') - for x in opt.metavar.split('/')): - return opt.metavar - - -def auto_complete_paths(current, completion_type): - """If ``completion_type`` is ``file`` or ``path``, list all regular files - and directories starting with ``current``; otherwise only list directories - starting with ``current``. - - :param current: The word to be completed - :param completion_type: path completion type(`file`, `path` or `dir`)i - :return: A generator of regular files and/or directories - """ - directory, filename = os.path.split(current) - current_path = os.path.abspath(directory) - # Don't complete paths if they can't be accessed - if not os.access(current_path, os.R_OK): - return - filename = os.path.normcase(filename) - # list all files that start with ``filename`` - file_list = (x for x in os.listdir(current_path) - if os.path.normcase(x).startswith(filename)) - for f in file_list: - opt = os.path.join(current_path, f) - comp_file = os.path.normcase(os.path.join(directory, f)) - # complete regular files when there is not ```` after option - # complete directories when there is ````, ```` or - # ````after option - if completion_type != 'dir' and os.path.isfile(opt): - yield comp_file - elif os.path.isdir(opt): - yield os.path.join(comp_file, '') diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/base_command.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/base_command.py deleted file mode 100644 index 3ceea49..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/base_command.py +++ /dev/null @@ -1,341 +0,0 @@ -"""Base Command class, and related routines""" -from __future__ import absolute_import, print_function - -import logging -import logging.config -import optparse -import os -import platform -import sys -import traceback - -from pip._internal.cli import cmdoptions -from pip._internal.cli.parser import ( - ConfigOptionParser, UpdatingDefaultsHelpFormatter, -) -from pip._internal.cli.status_codes import ( - ERROR, PREVIOUS_BUILD_DIR_ERROR, SUCCESS, UNKNOWN_ERROR, - VIRTUALENV_NOT_FOUND, -) -from pip._internal.download import PipSession -from pip._internal.exceptions import ( - BadCommand, CommandError, InstallationError, PreviousBuildDirError, - UninstallationError, -) -from pip._internal.index import PackageFinder -from pip._internal.locations import running_under_virtualenv -from pip._internal.req.constructors import ( - install_req_from_editable, install_req_from_line, -) -from pip._internal.req.req_file import parse_requirements -from pip._internal.utils.deprecation import deprecated -from pip._internal.utils.logging import BrokenStdoutLoggingError, setup_logging -from pip._internal.utils.misc import ( - get_prog, normalize_path, redact_password_from_url, -) -from pip._internal.utils.outdated import pip_version_check -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Optional, List, Tuple, Any # noqa: F401 - from optparse import Values # noqa: F401 - from pip._internal.cache import WheelCache # noqa: F401 - from pip._internal.req.req_set import RequirementSet # noqa: F401 - -__all__ = ['Command'] - -logger = logging.getLogger(__name__) - - -class Command(object): - name = None # type: Optional[str] - usage = None # type: Optional[str] - hidden = False # type: bool - ignore_require_venv = False # type: bool - - def __init__(self, isolated=False): - # type: (bool) -> None - parser_kw = { - 'usage': self.usage, - 'prog': '%s %s' % (get_prog(), self.name), - 'formatter': UpdatingDefaultsHelpFormatter(), - 'add_help_option': False, - 'name': self.name, - 'description': self.__doc__, - 'isolated': isolated, - } - - self.parser = ConfigOptionParser(**parser_kw) - - # Commands should add options to this option group - optgroup_name = '%s Options' % self.name.capitalize() - self.cmd_opts = optparse.OptionGroup(self.parser, optgroup_name) - - # Add the general options - gen_opts = cmdoptions.make_option_group( - cmdoptions.general_group, - self.parser, - ) - self.parser.add_option_group(gen_opts) - - def run(self, options, args): - # type: (Values, List[Any]) -> Any - raise NotImplementedError - - def _build_session(self, options, retries=None, timeout=None): - # type: (Values, Optional[int], Optional[int]) -> PipSession - session = PipSession( - cache=( - normalize_path(os.path.join(options.cache_dir, "http")) - if options.cache_dir else None - ), - retries=retries if retries is not None else options.retries, - insecure_hosts=options.trusted_hosts, - ) - - # Handle custom ca-bundles from the user - if options.cert: - session.verify = options.cert - - # Handle SSL client certificate - if options.client_cert: - session.cert = options.client_cert - - # Handle timeouts - if options.timeout or timeout: - session.timeout = ( - timeout if timeout is not None else options.timeout - ) - - # Handle configured proxies - if options.proxy: - session.proxies = { - "http": options.proxy, - "https": options.proxy, - } - - # Determine if we can prompt the user for authentication or not - session.auth.prompting = not options.no_input - - return session - - def parse_args(self, args): - # type: (List[str]) -> Tuple - # factored out for testability - return self.parser.parse_args(args) - - def main(self, args): - # type: (List[str]) -> int - options, args = self.parse_args(args) - - # Set verbosity so that it can be used elsewhere. - self.verbosity = options.verbose - options.quiet - - level_number = setup_logging( - verbosity=self.verbosity, - no_color=options.no_color, - user_log_file=options.log, - ) - - if sys.version_info[:2] == (3, 4): - deprecated( - "Python 3.4 support has been deprecated. pip 19.1 will be the " - "last one supporting it. Please upgrade your Python as Python " - "3.4 won't be maintained after March 2019 (cf PEP 429).", - replacement=None, - gone_in='19.2', - ) - elif sys.version_info[:2] == (2, 7): - message = ( - "A future version of pip will drop support for Python 2.7." - ) - if platform.python_implementation() == "CPython": - message = ( - "Python 2.7 will reach the end of its life on January " - "1st, 2020. Please upgrade your Python as Python 2.7 " - "won't be maintained after that date. " - ) + message - deprecated(message, replacement=None, gone_in=None) - - # TODO: Try to get these passing down from the command? - # without resorting to os.environ to hold these. - # This also affects isolated builds and it should. - - if options.no_input: - os.environ['PIP_NO_INPUT'] = '1' - - if options.exists_action: - os.environ['PIP_EXISTS_ACTION'] = ' '.join(options.exists_action) - - if options.require_venv and not self.ignore_require_venv: - # If a venv is required check if it can really be found - if not running_under_virtualenv(): - logger.critical( - 'Could not find an activated virtualenv (required).' - ) - sys.exit(VIRTUALENV_NOT_FOUND) - - try: - status = self.run(options, args) - # FIXME: all commands should return an exit status - # and when it is done, isinstance is not needed anymore - if isinstance(status, int): - return status - except PreviousBuildDirError as exc: - logger.critical(str(exc)) - logger.debug('Exception information:', exc_info=True) - - return PREVIOUS_BUILD_DIR_ERROR - except (InstallationError, UninstallationError, BadCommand) as exc: - logger.critical(str(exc)) - logger.debug('Exception information:', exc_info=True) - - return ERROR - except CommandError as exc: - logger.critical('ERROR: %s', exc) - logger.debug('Exception information:', exc_info=True) - - return ERROR - except BrokenStdoutLoggingError: - # Bypass our logger and write any remaining messages to stderr - # because stdout no longer works. - print('ERROR: Pipe to stdout was broken', file=sys.stderr) - if level_number <= logging.DEBUG: - traceback.print_exc(file=sys.stderr) - - return ERROR - except KeyboardInterrupt: - logger.critical('Operation cancelled by user') - logger.debug('Exception information:', exc_info=True) - - return ERROR - except BaseException: - logger.critical('Exception:', exc_info=True) - - return UNKNOWN_ERROR - finally: - allow_version_check = ( - # Does this command have the index_group options? - hasattr(options, "no_index") and - # Is this command allowed to perform this check? - not (options.disable_pip_version_check or options.no_index) - ) - # Check if we're using the latest version of pip available - if allow_version_check: - session = self._build_session( - options, - retries=0, - timeout=min(5, options.timeout) - ) - with session: - pip_version_check(session, options) - - # Shutdown the logging module - logging.shutdown() - - return SUCCESS - - -class RequirementCommand(Command): - - @staticmethod - def populate_requirement_set(requirement_set, # type: RequirementSet - args, # type: List[str] - options, # type: Values - finder, # type: PackageFinder - session, # type: PipSession - name, # type: str - wheel_cache # type: Optional[WheelCache] - ): - # type: (...) -> None - """ - Marshal cmd line args into a requirement set. - """ - # NOTE: As a side-effect, options.require_hashes and - # requirement_set.require_hashes may be updated - - for filename in options.constraints: - for req_to_add in parse_requirements( - filename, - constraint=True, finder=finder, options=options, - session=session, wheel_cache=wheel_cache): - req_to_add.is_direct = True - requirement_set.add_requirement(req_to_add) - - for req in args: - req_to_add = install_req_from_line( - req, None, isolated=options.isolated_mode, - use_pep517=options.use_pep517, - wheel_cache=wheel_cache - ) - req_to_add.is_direct = True - requirement_set.add_requirement(req_to_add) - - for req in options.editables: - req_to_add = install_req_from_editable( - req, - isolated=options.isolated_mode, - use_pep517=options.use_pep517, - wheel_cache=wheel_cache - ) - req_to_add.is_direct = True - requirement_set.add_requirement(req_to_add) - - for filename in options.requirements: - for req_to_add in parse_requirements( - filename, - finder=finder, options=options, session=session, - wheel_cache=wheel_cache, - use_pep517=options.use_pep517): - req_to_add.is_direct = True - requirement_set.add_requirement(req_to_add) - # If --require-hashes was a line in a requirements file, tell - # RequirementSet about it: - requirement_set.require_hashes = options.require_hashes - - if not (args or options.editables or options.requirements): - opts = {'name': name} - if options.find_links: - raise CommandError( - 'You must give at least one requirement to %(name)s ' - '(maybe you meant "pip %(name)s %(links)s"?)' % - dict(opts, links=' '.join(options.find_links))) - else: - raise CommandError( - 'You must give at least one requirement to %(name)s ' - '(see "pip help %(name)s")' % opts) - - def _build_package_finder( - self, - options, # type: Values - session, # type: PipSession - platform=None, # type: Optional[str] - python_versions=None, # type: Optional[List[str]] - abi=None, # type: Optional[str] - implementation=None # type: Optional[str] - ): - # type: (...) -> PackageFinder - """ - Create a package finder appropriate to this requirement command. - """ - index_urls = [options.index_url] + options.extra_index_urls - if options.no_index: - logger.debug( - 'Ignoring indexes: %s', - ','.join(redact_password_from_url(url) for url in index_urls), - ) - index_urls = [] - - return PackageFinder( - find_links=options.find_links, - format_control=options.format_control, - index_urls=index_urls, - trusted_hosts=options.trusted_hosts, - allow_all_prereleases=options.pre, - session=session, - platform=platform, - versions=python_versions, - abi=abi, - implementation=implementation, - prefer_binary=options.prefer_binary, - ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/cmdoptions.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/cmdoptions.py deleted file mode 100644 index 5cf5ee9..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/cmdoptions.py +++ /dev/null @@ -1,809 +0,0 @@ -""" -shared options and groups - -The principle here is to define options once, but *not* instantiate them -globally. One reason being that options with action='append' can carry state -between parses. pip parses general options twice internally, and shouldn't -pass on state. To be consistent, all options will follow this design. - -""" -from __future__ import absolute_import - -import textwrap -import warnings -from distutils.util import strtobool -from functools import partial -from optparse import SUPPRESS_HELP, Option, OptionGroup - -from pip._internal.exceptions import CommandError -from pip._internal.locations import USER_CACHE_DIR, src_prefix -from pip._internal.models.format_control import FormatControl -from pip._internal.models.index import PyPI -from pip._internal.utils.hashes import STRONG_HASHES -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.utils.ui import BAR_TYPES - -if MYPY_CHECK_RUNNING: - from typing import Any, Callable, Dict, List, Optional, Union # noqa: F401 - from optparse import OptionParser, Values # noqa: F401 - from pip._internal.cli.parser import ConfigOptionParser # noqa: F401 - - -def raise_option_error(parser, option, msg): - """ - Raise an option parsing error using parser.error(). - - Args: - parser: an OptionParser instance. - option: an Option instance. - msg: the error text. - """ - msg = '{} error: {}'.format(option, msg) - msg = textwrap.fill(' '.join(msg.split())) - parser.error(msg) - - -def make_option_group(group, parser): - # type: (Dict[str, Any], ConfigOptionParser) -> OptionGroup - """ - Return an OptionGroup object - group -- assumed to be dict with 'name' and 'options' keys - parser -- an optparse Parser - """ - option_group = OptionGroup(parser, group['name']) - for option in group['options']: - option_group.add_option(option()) - return option_group - - -def check_install_build_global(options, check_options=None): - # type: (Values, Optional[Values]) -> None - """Disable wheels if per-setup.py call options are set. - - :param options: The OptionParser options to update. - :param check_options: The options to check, if not supplied defaults to - options. - """ - if check_options is None: - check_options = options - - def getname(n): - return getattr(check_options, n, None) - names = ["build_options", "global_options", "install_options"] - if any(map(getname, names)): - control = options.format_control - control.disallow_binaries() - warnings.warn( - 'Disabling all use of wheels due to the use of --build-options ' - '/ --global-options / --install-options.', stacklevel=2, - ) - - -def check_dist_restriction(options, check_target=False): - # type: (Values, bool) -> None - """Function for determining if custom platform options are allowed. - - :param options: The OptionParser options. - :param check_target: Whether or not to check if --target is being used. - """ - dist_restriction_set = any([ - options.python_version, - options.platform, - options.abi, - options.implementation, - ]) - - binary_only = FormatControl(set(), {':all:'}) - sdist_dependencies_allowed = ( - options.format_control != binary_only and - not options.ignore_dependencies - ) - - # Installations or downloads using dist restrictions must not combine - # source distributions and dist-specific wheels, as they are not - # gauranteed to be locally compatible. - if dist_restriction_set and sdist_dependencies_allowed: - raise CommandError( - "When restricting platform and interpreter constraints using " - "--python-version, --platform, --abi, or --implementation, " - "either --no-deps must be set, or --only-binary=:all: must be " - "set and --no-binary must not be set (or must be set to " - ":none:)." - ) - - if check_target: - if dist_restriction_set and not options.target_dir: - raise CommandError( - "Can not use any platform or abi specific options unless " - "installing via '--target'" - ) - - -########### -# options # -########### - -help_ = partial( - Option, - '-h', '--help', - dest='help', - action='help', - help='Show help.', -) # type: Callable[..., Option] - -isolated_mode = partial( - Option, - "--isolated", - dest="isolated_mode", - action="store_true", - default=False, - help=( - "Run pip in an isolated mode, ignoring environment variables and user " - "configuration." - ), -) # type: Callable[..., Option] - -require_virtualenv = partial( - Option, - # Run only if inside a virtualenv, bail if not. - '--require-virtualenv', '--require-venv', - dest='require_venv', - action='store_true', - default=False, - help=SUPPRESS_HELP -) # type: Callable[..., Option] - -verbose = partial( - Option, - '-v', '--verbose', - dest='verbose', - action='count', - default=0, - help='Give more output. Option is additive, and can be used up to 3 times.' -) # type: Callable[..., Option] - -no_color = partial( - Option, - '--no-color', - dest='no_color', - action='store_true', - default=False, - help="Suppress colored output", -) # type: Callable[..., Option] - -version = partial( - Option, - '-V', '--version', - dest='version', - action='store_true', - help='Show version and exit.', -) # type: Callable[..., Option] - -quiet = partial( - Option, - '-q', '--quiet', - dest='quiet', - action='count', - default=0, - help=( - 'Give less output. Option is additive, and can be used up to 3' - ' times (corresponding to WARNING, ERROR, and CRITICAL logging' - ' levels).' - ), -) # type: Callable[..., Option] - -progress_bar = partial( - Option, - '--progress-bar', - dest='progress_bar', - type='choice', - choices=list(BAR_TYPES.keys()), - default='on', - help=( - 'Specify type of progress to be displayed [' + - '|'.join(BAR_TYPES.keys()) + '] (default: %default)' - ), -) # type: Callable[..., Option] - -log = partial( - Option, - "--log", "--log-file", "--local-log", - dest="log", - metavar="path", - help="Path to a verbose appending log." -) # type: Callable[..., Option] - -no_input = partial( - Option, - # Don't ask for input - '--no-input', - dest='no_input', - action='store_true', - default=False, - help=SUPPRESS_HELP -) # type: Callable[..., Option] - -proxy = partial( - Option, - '--proxy', - dest='proxy', - type='str', - default='', - help="Specify a proxy in the form [user:passwd@]proxy.server:port." -) # type: Callable[..., Option] - -retries = partial( - Option, - '--retries', - dest='retries', - type='int', - default=5, - help="Maximum number of retries each connection should attempt " - "(default %default times).", -) # type: Callable[..., Option] - -timeout = partial( - Option, - '--timeout', '--default-timeout', - metavar='sec', - dest='timeout', - type='float', - default=15, - help='Set the socket timeout (default %default seconds).', -) # type: Callable[..., Option] - -skip_requirements_regex = partial( - Option, - # A regex to be used to skip requirements - '--skip-requirements-regex', - dest='skip_requirements_regex', - type='str', - default='', - help=SUPPRESS_HELP, -) # type: Callable[..., Option] - - -def exists_action(): - # type: () -> Option - return Option( - # Option when path already exist - '--exists-action', - dest='exists_action', - type='choice', - choices=['s', 'i', 'w', 'b', 'a'], - default=[], - action='append', - metavar='action', - help="Default action when a path already exists: " - "(s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort).", - ) - - -cert = partial( - Option, - '--cert', - dest='cert', - type='str', - metavar='path', - help="Path to alternate CA bundle.", -) # type: Callable[..., Option] - -client_cert = partial( - Option, - '--client-cert', - dest='client_cert', - type='str', - default=None, - metavar='path', - help="Path to SSL client certificate, a single file containing the " - "private key and the certificate in PEM format.", -) # type: Callable[..., Option] - -index_url = partial( - Option, - '-i', '--index-url', '--pypi-url', - dest='index_url', - metavar='URL', - default=PyPI.simple_url, - help="Base URL of Python Package Index (default %default). " - "This should point to a repository compliant with PEP 503 " - "(the simple repository API) or a local directory laid out " - "in the same format.", -) # type: Callable[..., Option] - - -def extra_index_url(): - return Option( - '--extra-index-url', - dest='extra_index_urls', - metavar='URL', - action='append', - default=[], - help="Extra URLs of package indexes to use in addition to " - "--index-url. Should follow the same rules as " - "--index-url.", - ) - - -no_index = partial( - Option, - '--no-index', - dest='no_index', - action='store_true', - default=False, - help='Ignore package index (only looking at --find-links URLs instead).', -) # type: Callable[..., Option] - - -def find_links(): - # type: () -> Option - return Option( - '-f', '--find-links', - dest='find_links', - action='append', - default=[], - metavar='url', - help="If a url or path to an html file, then parse for links to " - "archives. If a local path or file:// url that's a directory, " - "then look for archives in the directory listing.", - ) - - -def trusted_host(): - # type: () -> Option - return Option( - "--trusted-host", - dest="trusted_hosts", - action="append", - metavar="HOSTNAME", - default=[], - help="Mark this host as trusted, even though it does not have valid " - "or any HTTPS.", - ) - - -def constraints(): - # type: () -> Option - return Option( - '-c', '--constraint', - dest='constraints', - action='append', - default=[], - metavar='file', - help='Constrain versions using the given constraints file. ' - 'This option can be used multiple times.' - ) - - -def requirements(): - # type: () -> Option - return Option( - '-r', '--requirement', - dest='requirements', - action='append', - default=[], - metavar='file', - help='Install from the given requirements file. ' - 'This option can be used multiple times.' - ) - - -def editable(): - # type: () -> Option - return Option( - '-e', '--editable', - dest='editables', - action='append', - default=[], - metavar='path/url', - help=('Install a project in editable mode (i.e. setuptools ' - '"develop mode") from a local project path or a VCS url.'), - ) - - -src = partial( - Option, - '--src', '--source', '--source-dir', '--source-directory', - dest='src_dir', - metavar='dir', - default=src_prefix, - help='Directory to check out editable projects into. ' - 'The default in a virtualenv is "/src". ' - 'The default for global installs is "/src".' -) # type: Callable[..., Option] - - -def _get_format_control(values, option): - # type: (Values, Option) -> Any - """Get a format_control object.""" - return getattr(values, option.dest) - - -def _handle_no_binary(option, opt_str, value, parser): - # type: (Option, str, str, OptionParser) -> None - existing = _get_format_control(parser.values, option) - FormatControl.handle_mutual_excludes( - value, existing.no_binary, existing.only_binary, - ) - - -def _handle_only_binary(option, opt_str, value, parser): - # type: (Option, str, str, OptionParser) -> None - existing = _get_format_control(parser.values, option) - FormatControl.handle_mutual_excludes( - value, existing.only_binary, existing.no_binary, - ) - - -def no_binary(): - # type: () -> Option - format_control = FormatControl(set(), set()) - return Option( - "--no-binary", dest="format_control", action="callback", - callback=_handle_no_binary, type="str", - default=format_control, - help="Do not use binary packages. Can be supplied multiple times, and " - "each time adds to the existing value. Accepts either :all: to " - "disable all binary packages, :none: to empty the set, or one or " - "more package names with commas between them. Note that some " - "packages are tricky to compile and may fail to install when " - "this option is used on them.", - ) - - -def only_binary(): - # type: () -> Option - format_control = FormatControl(set(), set()) - return Option( - "--only-binary", dest="format_control", action="callback", - callback=_handle_only_binary, type="str", - default=format_control, - help="Do not use source packages. Can be supplied multiple times, and " - "each time adds to the existing value. Accepts either :all: to " - "disable all source packages, :none: to empty the set, or one or " - "more package names with commas between them. Packages without " - "binary distributions will fail to install when this option is " - "used on them.", - ) - - -platform = partial( - Option, - '--platform', - dest='platform', - metavar='platform', - default=None, - help=("Only use wheels compatible with . " - "Defaults to the platform of the running system."), -) # type: Callable[..., Option] - - -python_version = partial( - Option, - '--python-version', - dest='python_version', - metavar='python_version', - default=None, - help=("Only use wheels compatible with Python " - "interpreter version . If not specified, then the " - "current system interpreter minor version is used. A major " - "version (e.g. '2') can be specified to match all " - "minor revs of that major version. A minor version " - "(e.g. '34') can also be specified."), -) # type: Callable[..., Option] - - -implementation = partial( - Option, - '--implementation', - dest='implementation', - metavar='implementation', - default=None, - help=("Only use wheels compatible with Python " - "implementation , e.g. 'pp', 'jy', 'cp', " - " or 'ip'. If not specified, then the current " - "interpreter implementation is used. Use 'py' to force " - "implementation-agnostic wheels."), -) # type: Callable[..., Option] - - -abi = partial( - Option, - '--abi', - dest='abi', - metavar='abi', - default=None, - help=("Only use wheels compatible with Python " - "abi , e.g. 'pypy_41'. If not specified, then the " - "current interpreter abi tag is used. Generally " - "you will need to specify --implementation, " - "--platform, and --python-version when using " - "this option."), -) # type: Callable[..., Option] - - -def prefer_binary(): - # type: () -> Option - return Option( - "--prefer-binary", - dest="prefer_binary", - action="store_true", - default=False, - help="Prefer older binary packages over newer source packages." - ) - - -cache_dir = partial( - Option, - "--cache-dir", - dest="cache_dir", - default=USER_CACHE_DIR, - metavar="dir", - help="Store the cache data in ." -) # type: Callable[..., Option] - - -def no_cache_dir_callback(option, opt, value, parser): - """ - Process a value provided for the --no-cache-dir option. - - This is an optparse.Option callback for the --no-cache-dir option. - """ - # The value argument will be None if --no-cache-dir is passed via the - # command-line, since the option doesn't accept arguments. However, - # the value can be non-None if the option is triggered e.g. by an - # environment variable, like PIP_NO_CACHE_DIR=true. - if value is not None: - # Then parse the string value to get argument error-checking. - try: - strtobool(value) - except ValueError as exc: - raise_option_error(parser, option=option, msg=str(exc)) - - # Originally, setting PIP_NO_CACHE_DIR to a value that strtobool() - # converted to 0 (like "false" or "no") caused cache_dir to be disabled - # rather than enabled (logic would say the latter). Thus, we disable - # the cache directory not just on values that parse to True, but (for - # backwards compatibility reasons) also on values that parse to False. - # In other words, always set it to False if the option is provided in - # some (valid) form. - parser.values.cache_dir = False - - -no_cache = partial( - Option, - "--no-cache-dir", - dest="cache_dir", - action="callback", - callback=no_cache_dir_callback, - help="Disable the cache.", -) # type: Callable[..., Option] - -no_deps = partial( - Option, - '--no-deps', '--no-dependencies', - dest='ignore_dependencies', - action='store_true', - default=False, - help="Don't install package dependencies.", -) # type: Callable[..., Option] - -build_dir = partial( - Option, - '-b', '--build', '--build-dir', '--build-directory', - dest='build_dir', - metavar='dir', - help='Directory to unpack packages into and build in. Note that ' - 'an initial build still takes place in a temporary directory. ' - 'The location of temporary directories can be controlled by setting ' - 'the TMPDIR environment variable (TEMP on Windows) appropriately. ' - 'When passed, build directories are not cleaned in case of failures.' -) # type: Callable[..., Option] - -ignore_requires_python = partial( - Option, - '--ignore-requires-python', - dest='ignore_requires_python', - action='store_true', - help='Ignore the Requires-Python information.' -) # type: Callable[..., Option] - -no_build_isolation = partial( - Option, - '--no-build-isolation', - dest='build_isolation', - action='store_false', - default=True, - help='Disable isolation when building a modern source distribution. ' - 'Build dependencies specified by PEP 518 must be already installed ' - 'if this option is used.' -) # type: Callable[..., Option] - - -def no_use_pep517_callback(option, opt, value, parser): - """ - Process a value provided for the --no-use-pep517 option. - - This is an optparse.Option callback for the no_use_pep517 option. - """ - # Since --no-use-pep517 doesn't accept arguments, the value argument - # will be None if --no-use-pep517 is passed via the command-line. - # However, the value can be non-None if the option is triggered e.g. - # by an environment variable, for example "PIP_NO_USE_PEP517=true". - if value is not None: - msg = """A value was passed for --no-use-pep517, - probably using either the PIP_NO_USE_PEP517 environment variable - or the "no-use-pep517" config file option. Use an appropriate value - of the PIP_USE_PEP517 environment variable or the "use-pep517" - config file option instead. - """ - raise_option_error(parser, option=option, msg=msg) - - # Otherwise, --no-use-pep517 was passed via the command-line. - parser.values.use_pep517 = False - - -use_pep517 = partial( - Option, - '--use-pep517', - dest='use_pep517', - action='store_true', - default=None, - help='Use PEP 517 for building source distributions ' - '(use --no-use-pep517 to force legacy behaviour).' -) # type: Any - -no_use_pep517 = partial( - Option, - '--no-use-pep517', - dest='use_pep517', - action='callback', - callback=no_use_pep517_callback, - default=None, - help=SUPPRESS_HELP -) # type: Any - -install_options = partial( - Option, - '--install-option', - dest='install_options', - action='append', - metavar='options', - help="Extra arguments to be supplied to the setup.py install " - "command (use like --install-option=\"--install-scripts=/usr/local/" - "bin\"). Use multiple --install-option options to pass multiple " - "options to setup.py install. If you are using an option with a " - "directory path, be sure to use absolute path.", -) # type: Callable[..., Option] - -global_options = partial( - Option, - '--global-option', - dest='global_options', - action='append', - metavar='options', - help="Extra global options to be supplied to the setup.py " - "call before the install command.", -) # type: Callable[..., Option] - -no_clean = partial( - Option, - '--no-clean', - action='store_true', - default=False, - help="Don't clean up build directories." -) # type: Callable[..., Option] - -pre = partial( - Option, - '--pre', - action='store_true', - default=False, - help="Include pre-release and development versions. By default, " - "pip only finds stable versions.", -) # type: Callable[..., Option] - -disable_pip_version_check = partial( - Option, - "--disable-pip-version-check", - dest="disable_pip_version_check", - action="store_true", - default=False, - help="Don't periodically check PyPI to determine whether a new version " - "of pip is available for download. Implied with --no-index.", -) # type: Callable[..., Option] - - -# Deprecated, Remove later -always_unzip = partial( - Option, - '-Z', '--always-unzip', - dest='always_unzip', - action='store_true', - help=SUPPRESS_HELP, -) # type: Callable[..., Option] - - -def _merge_hash(option, opt_str, value, parser): - # type: (Option, str, str, OptionParser) -> None - """Given a value spelled "algo:digest", append the digest to a list - pointed to in a dict by the algo name.""" - if not parser.values.hashes: - parser.values.hashes = {} # type: ignore - try: - algo, digest = value.split(':', 1) - except ValueError: - parser.error('Arguments to %s must be a hash name ' - 'followed by a value, like --hash=sha256:abcde...' % - opt_str) - if algo not in STRONG_HASHES: - parser.error('Allowed hash algorithms for %s are %s.' % - (opt_str, ', '.join(STRONG_HASHES))) - parser.values.hashes.setdefault(algo, []).append(digest) - - -hash = partial( - Option, - '--hash', - # Hash values eventually end up in InstallRequirement.hashes due to - # __dict__ copying in process_line(). - dest='hashes', - action='callback', - callback=_merge_hash, - type='string', - help="Verify that the package's archive matches this " - 'hash before installing. Example: --hash=sha256:abcdef...', -) # type: Callable[..., Option] - - -require_hashes = partial( - Option, - '--require-hashes', - dest='require_hashes', - action='store_true', - default=False, - help='Require a hash to check each requirement against, for ' - 'repeatable installs. This option is implied when any package in a ' - 'requirements file has a --hash option.', -) # type: Callable[..., Option] - - -########## -# groups # -########## - -general_group = { - 'name': 'General Options', - 'options': [ - help_, - isolated_mode, - require_virtualenv, - verbose, - version, - quiet, - log, - no_input, - proxy, - retries, - timeout, - skip_requirements_regex, - exists_action, - trusted_host, - cert, - client_cert, - cache_dir, - no_cache, - disable_pip_version_check, - no_color, - ] -} # type: Dict[str, Any] - -index_group = { - 'name': 'Package Index Options', - 'options': [ - index_url, - extra_index_url, - no_index, - find_links, - ] -} # type: Dict[str, Any] diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/main_parser.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/main_parser.py deleted file mode 100644 index b17c749..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/main_parser.py +++ /dev/null @@ -1,104 +0,0 @@ -"""A single place for constructing and exposing the main parser -""" - -import os -import sys - -from pip import __version__ -from pip._internal.cli import cmdoptions -from pip._internal.cli.parser import ( - ConfigOptionParser, UpdatingDefaultsHelpFormatter, -) -from pip._internal.commands import ( - commands_dict, get_similar_commands, get_summaries, -) -from pip._internal.exceptions import CommandError -from pip._internal.utils.misc import get_prog -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Tuple, List # noqa: F401 - - -__all__ = ["create_main_parser", "parse_command"] - - -def create_main_parser(): - # type: () -> ConfigOptionParser - """Creates and returns the main parser for pip's CLI - """ - - parser_kw = { - 'usage': '\n%prog [options]', - 'add_help_option': False, - 'formatter': UpdatingDefaultsHelpFormatter(), - 'name': 'global', - 'prog': get_prog(), - } - - parser = ConfigOptionParser(**parser_kw) - parser.disable_interspersed_args() - - pip_pkg_dir = os.path.abspath(os.path.join( - os.path.dirname(__file__), "..", "..", - )) - parser.version = 'pip %s from %s (python %s)' % ( - __version__, pip_pkg_dir, sys.version[:3], - ) - - # add the general options - gen_opts = cmdoptions.make_option_group(cmdoptions.general_group, parser) - parser.add_option_group(gen_opts) - - # so the help formatter knows - parser.main = True # type: ignore - - # create command listing for description - command_summaries = get_summaries() - description = [''] + ['%-27s %s' % (i, j) for i, j in command_summaries] - parser.description = '\n'.join(description) - - return parser - - -def parse_command(args): - # type: (List[str]) -> Tuple[str, List[str]] - parser = create_main_parser() - - # Note: parser calls disable_interspersed_args(), so the result of this - # call is to split the initial args into the general options before the - # subcommand and everything else. - # For example: - # args: ['--timeout=5', 'install', '--user', 'INITools'] - # general_options: ['--timeout==5'] - # args_else: ['install', '--user', 'INITools'] - general_options, args_else = parser.parse_args(args) - - # --version - if general_options.version: - sys.stdout.write(parser.version) # type: ignore - sys.stdout.write(os.linesep) - sys.exit() - - # pip || pip help -> print_help() - if not args_else or (args_else[0] == 'help' and len(args_else) == 1): - parser.print_help() - sys.exit() - - # the subcommand name - cmd_name = args_else[0] - - if cmd_name not in commands_dict: - guess = get_similar_commands(cmd_name) - - msg = ['unknown command "%s"' % cmd_name] - if guess: - msg.append('maybe you meant "%s"' % guess) - - raise CommandError(' - '.join(msg)) - - # all the args without the subcommand - cmd_args = args[:] - cmd_args.remove(cmd_name) - - return cmd_name, cmd_args diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/parser.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/parser.py deleted file mode 100644 index e1eaac4..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/parser.py +++ /dev/null @@ -1,261 +0,0 @@ -"""Base option parser setup""" -from __future__ import absolute_import - -import logging -import optparse -import sys -import textwrap -from distutils.util import strtobool - -from pip._vendor.six import string_types - -from pip._internal.cli.status_codes import UNKNOWN_ERROR -from pip._internal.configuration import Configuration, ConfigurationError -from pip._internal.utils.compat import get_terminal_size - -logger = logging.getLogger(__name__) - - -class PrettyHelpFormatter(optparse.IndentedHelpFormatter): - """A prettier/less verbose help formatter for optparse.""" - - def __init__(self, *args, **kwargs): - # help position must be aligned with __init__.parseopts.description - kwargs['max_help_position'] = 30 - kwargs['indent_increment'] = 1 - kwargs['width'] = get_terminal_size()[0] - 2 - optparse.IndentedHelpFormatter.__init__(self, *args, **kwargs) - - def format_option_strings(self, option): - return self._format_option_strings(option, ' <%s>', ', ') - - def _format_option_strings(self, option, mvarfmt=' <%s>', optsep=', '): - """ - Return a comma-separated list of option strings and metavars. - - :param option: tuple of (short opt, long opt), e.g: ('-f', '--format') - :param mvarfmt: metavar format string - evaluated as mvarfmt % metavar - :param optsep: separator - """ - opts = [] - - if option._short_opts: - opts.append(option._short_opts[0]) - if option._long_opts: - opts.append(option._long_opts[0]) - if len(opts) > 1: - opts.insert(1, optsep) - - if option.takes_value(): - metavar = option.metavar or option.dest.lower() - opts.append(mvarfmt % metavar.lower()) - - return ''.join(opts) - - def format_heading(self, heading): - if heading == 'Options': - return '' - return heading + ':\n' - - def format_usage(self, usage): - """ - Ensure there is only one newline between usage and the first heading - if there is no description. - """ - msg = '\nUsage: %s\n' % self.indent_lines(textwrap.dedent(usage), " ") - return msg - - def format_description(self, description): - # leave full control over description to us - if description: - if hasattr(self.parser, 'main'): - label = 'Commands' - else: - label = 'Description' - # some doc strings have initial newlines, some don't - description = description.lstrip('\n') - # some doc strings have final newlines and spaces, some don't - description = description.rstrip() - # dedent, then reindent - description = self.indent_lines(textwrap.dedent(description), " ") - description = '%s:\n%s\n' % (label, description) - return description - else: - return '' - - def format_epilog(self, epilog): - # leave full control over epilog to us - if epilog: - return epilog - else: - return '' - - def indent_lines(self, text, indent): - new_lines = [indent + line for line in text.split('\n')] - return "\n".join(new_lines) - - -class UpdatingDefaultsHelpFormatter(PrettyHelpFormatter): - """Custom help formatter for use in ConfigOptionParser. - - This is updates the defaults before expanding them, allowing - them to show up correctly in the help listing. - """ - - def expand_default(self, option): - if self.parser is not None: - self.parser._update_defaults(self.parser.defaults) - return optparse.IndentedHelpFormatter.expand_default(self, option) - - -class CustomOptionParser(optparse.OptionParser): - - def insert_option_group(self, idx, *args, **kwargs): - """Insert an OptionGroup at a given position.""" - group = self.add_option_group(*args, **kwargs) - - self.option_groups.pop() - self.option_groups.insert(idx, group) - - return group - - @property - def option_list_all(self): - """Get a list of all options, including those in option groups.""" - res = self.option_list[:] - for i in self.option_groups: - res.extend(i.option_list) - - return res - - -class ConfigOptionParser(CustomOptionParser): - """Custom option parser which updates its defaults by checking the - configuration files and environmental variables""" - - def __init__(self, *args, **kwargs): - self.name = kwargs.pop('name') - - isolated = kwargs.pop("isolated", False) - self.config = Configuration(isolated) - - assert self.name - optparse.OptionParser.__init__(self, *args, **kwargs) - - def check_default(self, option, key, val): - try: - return option.check_value(key, val) - except optparse.OptionValueError as exc: - print("An error occurred during configuration: %s" % exc) - sys.exit(3) - - def _get_ordered_configuration_items(self): - # Configuration gives keys in an unordered manner. Order them. - override_order = ["global", self.name, ":env:"] - - # Pool the options into different groups - section_items = {name: [] for name in override_order} - for section_key, val in self.config.items(): - # ignore empty values - if not val: - logger.debug( - "Ignoring configuration key '%s' as it's value is empty.", - section_key - ) - continue - - section, key = section_key.split(".", 1) - if section in override_order: - section_items[section].append((key, val)) - - # Yield each group in their override order - for section in override_order: - for key, val in section_items[section]: - yield key, val - - def _update_defaults(self, defaults): - """Updates the given defaults with values from the config files and - the environ. Does a little special handling for certain types of - options (lists).""" - - # Accumulate complex default state. - self.values = optparse.Values(self.defaults) - late_eval = set() - # Then set the options with those values - for key, val in self._get_ordered_configuration_items(): - # '--' because configuration supports only long names - option = self.get_option('--' + key) - - # Ignore options not present in this parser. E.g. non-globals put - # in [global] by users that want them to apply to all applicable - # commands. - if option is None: - continue - - if option.action in ('store_true', 'store_false', 'count'): - try: - val = strtobool(val) - except ValueError: - error_msg = invalid_config_error_message( - option.action, key, val - ) - self.error(error_msg) - - elif option.action == 'append': - val = val.split() - val = [self.check_default(option, key, v) for v in val] - elif option.action == 'callback': - late_eval.add(option.dest) - opt_str = option.get_opt_string() - val = option.convert_value(opt_str, val) - # From take_action - args = option.callback_args or () - kwargs = option.callback_kwargs or {} - option.callback(option, opt_str, val, self, *args, **kwargs) - else: - val = self.check_default(option, key, val) - - defaults[option.dest] = val - - for key in late_eval: - defaults[key] = getattr(self.values, key) - self.values = None - return defaults - - def get_default_values(self): - """Overriding to make updating the defaults after instantiation of - the option parser possible, _update_defaults() does the dirty work.""" - if not self.process_default_values: - # Old, pre-Optik 1.5 behaviour. - return optparse.Values(self.defaults) - - # Load the configuration, or error out in case of an error - try: - self.config.load() - except ConfigurationError as err: - self.exit(UNKNOWN_ERROR, str(err)) - - defaults = self._update_defaults(self.defaults.copy()) # ours - for option in self._get_all_options(): - default = defaults.get(option.dest) - if isinstance(default, string_types): - opt_str = option.get_opt_string() - defaults[option.dest] = option.check_value(opt_str, default) - return optparse.Values(defaults) - - def error(self, msg): - self.print_usage(sys.stderr) - self.exit(UNKNOWN_ERROR, "%s\n" % msg) - - -def invalid_config_error_message(action, key, val): - """Returns a better error message when invalid configuration option - is provided.""" - if action in ('store_true', 'store_false'): - return ("{0} is not a valid value for {1} option, " - "please specify a boolean value like yes/no, " - "true/false or 1/0 instead.").format(val, key) - - return ("{0} is not a valid value for {1} option, " - "please specify a numerical value like 1/0 " - "instead.").format(val, key) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/status_codes.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/status_codes.py deleted file mode 100644 index 275360a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/status_codes.py +++ /dev/null @@ -1,8 +0,0 @@ -from __future__ import absolute_import - -SUCCESS = 0 -ERROR = 1 -UNKNOWN_ERROR = 2 -VIRTUALENV_NOT_FOUND = 3 -PREVIOUS_BUILD_DIR_ERROR = 4 -NO_MATCHES_FOUND = 23 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/__init__.py deleted file mode 100644 index c7d1da3..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/__init__.py +++ /dev/null @@ -1,79 +0,0 @@ -""" -Package containing all pip commands -""" -from __future__ import absolute_import - -from pip._internal.commands.completion import CompletionCommand -from pip._internal.commands.configuration import ConfigurationCommand -from pip._internal.commands.download import DownloadCommand -from pip._internal.commands.freeze import FreezeCommand -from pip._internal.commands.hash import HashCommand -from pip._internal.commands.help import HelpCommand -from pip._internal.commands.list import ListCommand -from pip._internal.commands.check import CheckCommand -from pip._internal.commands.search import SearchCommand -from pip._internal.commands.show import ShowCommand -from pip._internal.commands.install import InstallCommand -from pip._internal.commands.uninstall import UninstallCommand -from pip._internal.commands.wheel import WheelCommand - -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import List, Type # noqa: F401 - from pip._internal.cli.base_command import Command # noqa: F401 - -commands_order = [ - InstallCommand, - DownloadCommand, - UninstallCommand, - FreezeCommand, - ListCommand, - ShowCommand, - CheckCommand, - ConfigurationCommand, - SearchCommand, - WheelCommand, - HashCommand, - CompletionCommand, - HelpCommand, -] # type: List[Type[Command]] - -commands_dict = {c.name: c for c in commands_order} - - -def get_summaries(ordered=True): - """Yields sorted (command name, command summary) tuples.""" - - if ordered: - cmditems = _sort_commands(commands_dict, commands_order) - else: - cmditems = commands_dict.items() - - for name, command_class in cmditems: - yield (name, command_class.summary) - - -def get_similar_commands(name): - """Command name auto-correct.""" - from difflib import get_close_matches - - name = name.lower() - - close_commands = get_close_matches(name, commands_dict.keys()) - - if close_commands: - return close_commands[0] - else: - return False - - -def _sort_commands(cmddict, order): - def keyfn(key): - try: - return order.index(key[1]) - except ValueError: - # unordered items should come last - return 0xff - - return sorted(cmddict.items(), key=keyfn) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/check.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/check.py deleted file mode 100644 index 801cecc..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/check.py +++ /dev/null @@ -1,41 +0,0 @@ -import logging - -from pip._internal.cli.base_command import Command -from pip._internal.operations.check import ( - check_package_set, create_package_set_from_installed, -) - -logger = logging.getLogger(__name__) - - -class CheckCommand(Command): - """Verify installed packages have compatible dependencies.""" - name = 'check' - usage = """ - %prog [options]""" - summary = 'Verify installed packages have compatible dependencies.' - - def run(self, options, args): - package_set, parsing_probs = create_package_set_from_installed() - missing, conflicting = check_package_set(package_set) - - for project_name in missing: - version = package_set[project_name].version - for dependency in missing[project_name]: - logger.info( - "%s %s requires %s, which is not installed.", - project_name, version, dependency[0], - ) - - for project_name in conflicting: - version = package_set[project_name].version - for dep_name, dep_version, req in conflicting[project_name]: - logger.info( - "%s %s has requirement %s, but you have %s %s.", - project_name, version, req, dep_name, dep_version, - ) - - if missing or conflicting or parsing_probs: - return 1 - else: - logger.info("No broken requirements found.") diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/completion.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/completion.py deleted file mode 100644 index 2fcdd39..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/completion.py +++ /dev/null @@ -1,94 +0,0 @@ -from __future__ import absolute_import - -import sys -import textwrap - -from pip._internal.cli.base_command import Command -from pip._internal.utils.misc import get_prog - -BASE_COMPLETION = """ -# pip %(shell)s completion start%(script)s# pip %(shell)s completion end -""" - -COMPLETION_SCRIPTS = { - 'bash': """ - _pip_completion() - { - COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]}" \\ - COMP_CWORD=$COMP_CWORD \\ - PIP_AUTO_COMPLETE=1 $1 ) ) - } - complete -o default -F _pip_completion %(prog)s - """, - 'zsh': """ - function _pip_completion { - local words cword - read -Ac words - read -cn cword - reply=( $( COMP_WORDS="$words[*]" \\ - COMP_CWORD=$(( cword-1 )) \\ - PIP_AUTO_COMPLETE=1 $words[1] ) ) - } - compctl -K _pip_completion %(prog)s - """, - 'fish': """ - function __fish_complete_pip - set -lx COMP_WORDS (commandline -o) "" - set -lx COMP_CWORD ( \\ - math (contains -i -- (commandline -t) $COMP_WORDS)-1 \\ - ) - set -lx PIP_AUTO_COMPLETE 1 - string split \\ -- (eval $COMP_WORDS[1]) - end - complete -fa "(__fish_complete_pip)" -c %(prog)s - """, -} - - -class CompletionCommand(Command): - """A helper command to be used for command completion.""" - name = 'completion' - summary = 'A helper command used for command completion.' - ignore_require_venv = True - - def __init__(self, *args, **kw): - super(CompletionCommand, self).__init__(*args, **kw) - - cmd_opts = self.cmd_opts - - cmd_opts.add_option( - '--bash', '-b', - action='store_const', - const='bash', - dest='shell', - help='Emit completion code for bash') - cmd_opts.add_option( - '--zsh', '-z', - action='store_const', - const='zsh', - dest='shell', - help='Emit completion code for zsh') - cmd_opts.add_option( - '--fish', '-f', - action='store_const', - const='fish', - dest='shell', - help='Emit completion code for fish') - - self.parser.insert_option_group(0, cmd_opts) - - def run(self, options, args): - """Prints the completion code of the given shell""" - shells = COMPLETION_SCRIPTS.keys() - shell_options = ['--' + shell for shell in sorted(shells)] - if options.shell in shells: - script = textwrap.dedent( - COMPLETION_SCRIPTS.get(options.shell, '') % { - 'prog': get_prog(), - } - ) - print(BASE_COMPLETION % {'script': script, 'shell': options.shell}) - else: - sys.stderr.write( - 'ERROR: You must pass %s\n' % ' or '.join(shell_options) - ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/configuration.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/configuration.py deleted file mode 100644 index 826c08d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/configuration.py +++ /dev/null @@ -1,227 +0,0 @@ -import logging -import os -import subprocess - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import ERROR, SUCCESS -from pip._internal.configuration import Configuration, kinds -from pip._internal.exceptions import PipError -from pip._internal.locations import venv_config_file -from pip._internal.utils.misc import get_prog - -logger = logging.getLogger(__name__) - - -class ConfigurationCommand(Command): - """Manage local and global configuration. - - Subcommands: - - list: List the active configuration (or from the file specified) - edit: Edit the configuration file in an editor - get: Get the value associated with name - set: Set the name=value - unset: Unset the value associated with name - - If none of --user, --global and --venv are passed, a virtual - environment configuration file is used if one is active and the file - exists. Otherwise, all modifications happen on the to the user file by - default. - """ - - name = 'config' - usage = """ - %prog [] list - %prog [] [--editor ] edit - - %prog [] get name - %prog [] set name value - %prog [] unset name - """ - - summary = "Manage local and global configuration." - - def __init__(self, *args, **kwargs): - super(ConfigurationCommand, self).__init__(*args, **kwargs) - - self.configuration = None - - self.cmd_opts.add_option( - '--editor', - dest='editor', - action='store', - default=None, - help=( - 'Editor to use to edit the file. Uses VISUAL or EDITOR ' - 'environment variables if not provided.' - ) - ) - - self.cmd_opts.add_option( - '--global', - dest='global_file', - action='store_true', - default=False, - help='Use the system-wide configuration file only' - ) - - self.cmd_opts.add_option( - '--user', - dest='user_file', - action='store_true', - default=False, - help='Use the user configuration file only' - ) - - self.cmd_opts.add_option( - '--venv', - dest='venv_file', - action='store_true', - default=False, - help='Use the virtualenv configuration file only' - ) - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options, args): - handlers = { - "list": self.list_values, - "edit": self.open_in_editor, - "get": self.get_name, - "set": self.set_name_value, - "unset": self.unset_name - } - - # Determine action - if not args or args[0] not in handlers: - logger.error("Need an action ({}) to perform.".format( - ", ".join(sorted(handlers))) - ) - return ERROR - - action = args[0] - - # Determine which configuration files are to be loaded - # Depends on whether the command is modifying. - try: - load_only = self._determine_file( - options, need_value=(action in ["get", "set", "unset", "edit"]) - ) - except PipError as e: - logger.error(e.args[0]) - return ERROR - - # Load a new configuration - self.configuration = Configuration( - isolated=options.isolated_mode, load_only=load_only - ) - self.configuration.load() - - # Error handling happens here, not in the action-handlers. - try: - handlers[action](options, args[1:]) - except PipError as e: - logger.error(e.args[0]) - return ERROR - - return SUCCESS - - def _determine_file(self, options, need_value): - file_options = { - kinds.USER: options.user_file, - kinds.GLOBAL: options.global_file, - kinds.VENV: options.venv_file - } - - if sum(file_options.values()) == 0: - if not need_value: - return None - # Default to user, unless there's a virtualenv file. - elif os.path.exists(venv_config_file): - return kinds.VENV - else: - return kinds.USER - elif sum(file_options.values()) == 1: - # There's probably a better expression for this. - return [key for key in file_options if file_options[key]][0] - - raise PipError( - "Need exactly one file to operate upon " - "(--user, --venv, --global) to perform." - ) - - def list_values(self, options, args): - self._get_n_args(args, "list", n=0) - - for key, value in sorted(self.configuration.items()): - logger.info("%s=%r", key, value) - - def get_name(self, options, args): - key = self._get_n_args(args, "get [name]", n=1) - value = self.configuration.get_value(key) - - logger.info("%s", value) - - def set_name_value(self, options, args): - key, value = self._get_n_args(args, "set [name] [value]", n=2) - self.configuration.set_value(key, value) - - self._save_configuration() - - def unset_name(self, options, args): - key = self._get_n_args(args, "unset [name]", n=1) - self.configuration.unset_value(key) - - self._save_configuration() - - def open_in_editor(self, options, args): - editor = self._determine_editor(options) - - fname = self.configuration.get_file_to_edit() - if fname is None: - raise PipError("Could not determine appropriate file.") - - try: - subprocess.check_call([editor, fname]) - except subprocess.CalledProcessError as e: - raise PipError( - "Editor Subprocess exited with exit code {}" - .format(e.returncode) - ) - - def _get_n_args(self, args, example, n): - """Helper to make sure the command got the right number of arguments - """ - if len(args) != n: - msg = ( - 'Got unexpected number of arguments, expected {}. ' - '(example: "{} config {}")' - ).format(n, get_prog(), example) - raise PipError(msg) - - if n == 1: - return args[0] - else: - return args - - def _save_configuration(self): - # We successfully ran a modifying command. Need to save the - # configuration. - try: - self.configuration.save() - except Exception: - logger.error( - "Unable to save configuration. Please report this as a bug.", - exc_info=1 - ) - raise PipError("Internal Error.") - - def _determine_editor(self, options): - if options.editor is not None: - return options.editor - elif "VISUAL" in os.environ: - return os.environ["VISUAL"] - elif "EDITOR" in os.environ: - return os.environ["EDITOR"] - else: - raise PipError("Could not determine editor to use.") diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/download.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/download.py deleted file mode 100644 index a57e4bc..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/download.py +++ /dev/null @@ -1,176 +0,0 @@ -from __future__ import absolute_import - -import logging -import os - -from pip._internal.cli import cmdoptions -from pip._internal.cli.base_command import RequirementCommand -from pip._internal.operations.prepare import RequirementPreparer -from pip._internal.req import RequirementSet -from pip._internal.req.req_tracker import RequirementTracker -from pip._internal.resolve import Resolver -from pip._internal.utils.filesystem import check_path_owner -from pip._internal.utils.misc import ensure_dir, normalize_path -from pip._internal.utils.temp_dir import TempDirectory - -logger = logging.getLogger(__name__) - - -class DownloadCommand(RequirementCommand): - """ - Download packages from: - - - PyPI (and other indexes) using requirement specifiers. - - VCS project urls. - - Local project directories. - - Local or remote source archives. - - pip also supports downloading from "requirements files", which provide - an easy way to specify a whole environment to be downloaded. - """ - name = 'download' - - usage = """ - %prog [options] [package-index-options] ... - %prog [options] -r [package-index-options] ... - %prog [options] ... - %prog [options] ... - %prog [options] ...""" - - summary = 'Download packages.' - - def __init__(self, *args, **kw): - super(DownloadCommand, self).__init__(*args, **kw) - - cmd_opts = self.cmd_opts - - cmd_opts.add_option(cmdoptions.constraints()) - cmd_opts.add_option(cmdoptions.requirements()) - cmd_opts.add_option(cmdoptions.build_dir()) - cmd_opts.add_option(cmdoptions.no_deps()) - cmd_opts.add_option(cmdoptions.global_options()) - cmd_opts.add_option(cmdoptions.no_binary()) - cmd_opts.add_option(cmdoptions.only_binary()) - cmd_opts.add_option(cmdoptions.prefer_binary()) - cmd_opts.add_option(cmdoptions.src()) - cmd_opts.add_option(cmdoptions.pre()) - cmd_opts.add_option(cmdoptions.no_clean()) - cmd_opts.add_option(cmdoptions.require_hashes()) - cmd_opts.add_option(cmdoptions.progress_bar()) - cmd_opts.add_option(cmdoptions.no_build_isolation()) - cmd_opts.add_option(cmdoptions.use_pep517()) - cmd_opts.add_option(cmdoptions.no_use_pep517()) - - cmd_opts.add_option( - '-d', '--dest', '--destination-dir', '--destination-directory', - dest='download_dir', - metavar='dir', - default=os.curdir, - help=("Download packages into ."), - ) - - cmd_opts.add_option(cmdoptions.platform()) - cmd_opts.add_option(cmdoptions.python_version()) - cmd_opts.add_option(cmdoptions.implementation()) - cmd_opts.add_option(cmdoptions.abi()) - - index_opts = cmdoptions.make_option_group( - cmdoptions.index_group, - self.parser, - ) - - self.parser.insert_option_group(0, index_opts) - self.parser.insert_option_group(0, cmd_opts) - - def run(self, options, args): - options.ignore_installed = True - # editable doesn't really make sense for `pip download`, but the bowels - # of the RequirementSet code require that property. - options.editables = [] - - if options.python_version: - python_versions = [options.python_version] - else: - python_versions = None - - cmdoptions.check_dist_restriction(options) - - options.src_dir = os.path.abspath(options.src_dir) - options.download_dir = normalize_path(options.download_dir) - - ensure_dir(options.download_dir) - - with self._build_session(options) as session: - finder = self._build_package_finder( - options=options, - session=session, - platform=options.platform, - python_versions=python_versions, - abi=options.abi, - implementation=options.implementation, - ) - build_delete = (not (options.no_clean or options.build_dir)) - if options.cache_dir and not check_path_owner(options.cache_dir): - logger.warning( - "The directory '%s' or its parent directory is not owned " - "by the current user and caching wheels has been " - "disabled. check the permissions and owner of that " - "directory. If executing pip with sudo, you may want " - "sudo's -H flag.", - options.cache_dir, - ) - options.cache_dir = None - - with RequirementTracker() as req_tracker, TempDirectory( - options.build_dir, delete=build_delete, kind="download" - ) as directory: - - requirement_set = RequirementSet( - require_hashes=options.require_hashes, - ) - self.populate_requirement_set( - requirement_set, - args, - options, - finder, - session, - self.name, - None - ) - - preparer = RequirementPreparer( - build_dir=directory.path, - src_dir=options.src_dir, - download_dir=options.download_dir, - wheel_download_dir=None, - progress_bar=options.progress_bar, - build_isolation=options.build_isolation, - req_tracker=req_tracker, - ) - - resolver = Resolver( - preparer=preparer, - finder=finder, - session=session, - wheel_cache=None, - use_user_site=False, - upgrade_strategy="to-satisfy-only", - force_reinstall=False, - ignore_dependencies=options.ignore_dependencies, - ignore_requires_python=False, - ignore_installed=True, - isolated=options.isolated_mode, - ) - resolver.resolve(requirement_set) - - downloaded = ' '.join([ - req.name for req in requirement_set.successfully_downloaded - ]) - if downloaded: - logger.info('Successfully downloaded %s', downloaded) - - # Clean up - if not options.no_clean: - requirement_set.cleanup_files() - - return requirement_set diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/freeze.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/freeze.py deleted file mode 100644 index dc9c53a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/freeze.py +++ /dev/null @@ -1,96 +0,0 @@ -from __future__ import absolute_import - -import sys - -from pip._internal.cache import WheelCache -from pip._internal.cli.base_command import Command -from pip._internal.models.format_control import FormatControl -from pip._internal.operations.freeze import freeze -from pip._internal.utils.compat import stdlib_pkgs - -DEV_PKGS = {'pip', 'setuptools', 'distribute', 'wheel'} - - -class FreezeCommand(Command): - """ - Output installed packages in requirements format. - - packages are listed in a case-insensitive sorted order. - """ - name = 'freeze' - usage = """ - %prog [options]""" - summary = 'Output installed packages in requirements format.' - log_streams = ("ext://sys.stderr", "ext://sys.stderr") - - def __init__(self, *args, **kw): - super(FreezeCommand, self).__init__(*args, **kw) - - self.cmd_opts.add_option( - '-r', '--requirement', - dest='requirements', - action='append', - default=[], - metavar='file', - help="Use the order in the given requirements file and its " - "comments when generating output. This option can be " - "used multiple times.") - self.cmd_opts.add_option( - '-f', '--find-links', - dest='find_links', - action='append', - default=[], - metavar='URL', - help='URL for finding packages, which will be added to the ' - 'output.') - self.cmd_opts.add_option( - '-l', '--local', - dest='local', - action='store_true', - default=False, - help='If in a virtualenv that has global access, do not output ' - 'globally-installed packages.') - self.cmd_opts.add_option( - '--user', - dest='user', - action='store_true', - default=False, - help='Only output packages installed in user-site.') - self.cmd_opts.add_option( - '--all', - dest='freeze_all', - action='store_true', - help='Do not skip these packages in the output:' - ' %s' % ', '.join(DEV_PKGS)) - self.cmd_opts.add_option( - '--exclude-editable', - dest='exclude_editable', - action='store_true', - help='Exclude editable package from output.') - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options, args): - format_control = FormatControl(set(), set()) - wheel_cache = WheelCache(options.cache_dir, format_control) - skip = set(stdlib_pkgs) - if not options.freeze_all: - skip.update(DEV_PKGS) - - freeze_kwargs = dict( - requirement=options.requirements, - find_links=options.find_links, - local_only=options.local, - user_only=options.user, - skip_regex=options.skip_requirements_regex, - isolated=options.isolated_mode, - wheel_cache=wheel_cache, - skip=skip, - exclude_editable=options.exclude_editable, - ) - - try: - for line in freeze(**freeze_kwargs): - sys.stdout.write(line + '\n') - finally: - wheel_cache.cleanup() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/hash.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/hash.py deleted file mode 100644 index 423440e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/hash.py +++ /dev/null @@ -1,57 +0,0 @@ -from __future__ import absolute_import - -import hashlib -import logging -import sys - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import ERROR -from pip._internal.utils.hashes import FAVORITE_HASH, STRONG_HASHES -from pip._internal.utils.misc import read_chunks - -logger = logging.getLogger(__name__) - - -class HashCommand(Command): - """ - Compute a hash of a local package archive. - - These can be used with --hash in a requirements file to do repeatable - installs. - - """ - name = 'hash' - usage = '%prog [options] ...' - summary = 'Compute hashes of package archives.' - ignore_require_venv = True - - def __init__(self, *args, **kw): - super(HashCommand, self).__init__(*args, **kw) - self.cmd_opts.add_option( - '-a', '--algorithm', - dest='algorithm', - choices=STRONG_HASHES, - action='store', - default=FAVORITE_HASH, - help='The hash algorithm to use: one of %s' % - ', '.join(STRONG_HASHES)) - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options, args): - if not args: - self.parser.print_usage(sys.stderr) - return ERROR - - algorithm = options.algorithm - for path in args: - logger.info('%s:\n--hash=%s:%s', - path, algorithm, _hash_of_file(path, algorithm)) - - -def _hash_of_file(path, algorithm): - """Return the hash digest of a file.""" - with open(path, 'rb') as archive: - hash = hashlib.new(algorithm) - for chunk in read_chunks(archive): - hash.update(chunk) - return hash.hexdigest() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/help.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/help.py deleted file mode 100644 index 49a81cb..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/help.py +++ /dev/null @@ -1,37 +0,0 @@ -from __future__ import absolute_import - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import SUCCESS -from pip._internal.exceptions import CommandError - - -class HelpCommand(Command): - """Show help for commands""" - name = 'help' - usage = """ - %prog """ - summary = 'Show help for commands.' - ignore_require_venv = True - - def run(self, options, args): - from pip._internal.commands import commands_dict, get_similar_commands - - try: - # 'pip help' with no args is handled by pip.__init__.parseopt() - cmd_name = args[0] # the command we need help for - except IndexError: - return SUCCESS - - if cmd_name not in commands_dict: - guess = get_similar_commands(cmd_name) - - msg = ['unknown command "%s"' % cmd_name] - if guess: - msg.append('maybe you meant "%s"' % guess) - - raise CommandError(' - '.join(msg)) - - command = commands_dict[cmd_name]() - command.parser.print_help() - - return SUCCESS diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/install.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/install.py deleted file mode 100644 index 1c244d2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/install.py +++ /dev/null @@ -1,566 +0,0 @@ -from __future__ import absolute_import - -import errno -import logging -import operator -import os -import shutil -from optparse import SUPPRESS_HELP - -from pip._vendor import pkg_resources - -from pip._internal.cache import WheelCache -from pip._internal.cli import cmdoptions -from pip._internal.cli.base_command import RequirementCommand -from pip._internal.cli.status_codes import ERROR -from pip._internal.exceptions import ( - CommandError, InstallationError, PreviousBuildDirError, -) -from pip._internal.locations import distutils_scheme, virtualenv_no_global -from pip._internal.operations.check import check_install_conflicts -from pip._internal.operations.prepare import RequirementPreparer -from pip._internal.req import RequirementSet, install_given_reqs -from pip._internal.req.req_tracker import RequirementTracker -from pip._internal.resolve import Resolver -from pip._internal.utils.filesystem import check_path_owner -from pip._internal.utils.misc import ( - ensure_dir, get_installed_version, - protect_pip_from_modification_on_windows, -) -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.wheel import WheelBuilder - -logger = logging.getLogger(__name__) - - -class InstallCommand(RequirementCommand): - """ - Install packages from: - - - PyPI (and other indexes) using requirement specifiers. - - VCS project urls. - - Local project directories. - - Local or remote source archives. - - pip also supports installing from "requirements files", which provide - an easy way to specify a whole environment to be installed. - """ - name = 'install' - - usage = """ - %prog [options] [package-index-options] ... - %prog [options] -r [package-index-options] ... - %prog [options] [-e] ... - %prog [options] [-e] ... - %prog [options] ...""" - - summary = 'Install packages.' - - def __init__(self, *args, **kw): - super(InstallCommand, self).__init__(*args, **kw) - - cmd_opts = self.cmd_opts - - cmd_opts.add_option(cmdoptions.requirements()) - cmd_opts.add_option(cmdoptions.constraints()) - cmd_opts.add_option(cmdoptions.no_deps()) - cmd_opts.add_option(cmdoptions.pre()) - - cmd_opts.add_option(cmdoptions.editable()) - cmd_opts.add_option( - '-t', '--target', - dest='target_dir', - metavar='dir', - default=None, - help='Install packages into . ' - 'By default this will not replace existing files/folders in ' - '. Use --upgrade to replace existing packages in ' - 'with new versions.' - ) - cmd_opts.add_option(cmdoptions.platform()) - cmd_opts.add_option(cmdoptions.python_version()) - cmd_opts.add_option(cmdoptions.implementation()) - cmd_opts.add_option(cmdoptions.abi()) - - cmd_opts.add_option( - '--user', - dest='use_user_site', - action='store_true', - help="Install to the Python user install directory for your " - "platform. Typically ~/.local/, or %APPDATA%\\Python on " - "Windows. (See the Python documentation for site.USER_BASE " - "for full details.)") - cmd_opts.add_option( - '--no-user', - dest='use_user_site', - action='store_false', - help=SUPPRESS_HELP) - cmd_opts.add_option( - '--root', - dest='root_path', - metavar='dir', - default=None, - help="Install everything relative to this alternate root " - "directory.") - cmd_opts.add_option( - '--prefix', - dest='prefix_path', - metavar='dir', - default=None, - help="Installation prefix where lib, bin and other top-level " - "folders are placed") - - cmd_opts.add_option(cmdoptions.build_dir()) - - cmd_opts.add_option(cmdoptions.src()) - - cmd_opts.add_option( - '-U', '--upgrade', - dest='upgrade', - action='store_true', - help='Upgrade all specified packages to the newest available ' - 'version. The handling of dependencies depends on the ' - 'upgrade-strategy used.' - ) - - cmd_opts.add_option( - '--upgrade-strategy', - dest='upgrade_strategy', - default='only-if-needed', - choices=['only-if-needed', 'eager'], - help='Determines how dependency upgrading should be handled ' - '[default: %default]. ' - '"eager" - dependencies are upgraded regardless of ' - 'whether the currently installed version satisfies the ' - 'requirements of the upgraded package(s). ' - '"only-if-needed" - are upgraded only when they do not ' - 'satisfy the requirements of the upgraded package(s).' - ) - - cmd_opts.add_option( - '--force-reinstall', - dest='force_reinstall', - action='store_true', - help='Reinstall all packages even if they are already ' - 'up-to-date.') - - cmd_opts.add_option( - '-I', '--ignore-installed', - dest='ignore_installed', - action='store_true', - help='Ignore the installed packages (reinstalling instead).') - - cmd_opts.add_option(cmdoptions.ignore_requires_python()) - cmd_opts.add_option(cmdoptions.no_build_isolation()) - cmd_opts.add_option(cmdoptions.use_pep517()) - cmd_opts.add_option(cmdoptions.no_use_pep517()) - - cmd_opts.add_option(cmdoptions.install_options()) - cmd_opts.add_option(cmdoptions.global_options()) - - cmd_opts.add_option( - "--compile", - action="store_true", - dest="compile", - default=True, - help="Compile Python source files to bytecode", - ) - - cmd_opts.add_option( - "--no-compile", - action="store_false", - dest="compile", - help="Do not compile Python source files to bytecode", - ) - - cmd_opts.add_option( - "--no-warn-script-location", - action="store_false", - dest="warn_script_location", - default=True, - help="Do not warn when installing scripts outside PATH", - ) - cmd_opts.add_option( - "--no-warn-conflicts", - action="store_false", - dest="warn_about_conflicts", - default=True, - help="Do not warn about broken dependencies", - ) - - cmd_opts.add_option(cmdoptions.no_binary()) - cmd_opts.add_option(cmdoptions.only_binary()) - cmd_opts.add_option(cmdoptions.prefer_binary()) - cmd_opts.add_option(cmdoptions.no_clean()) - cmd_opts.add_option(cmdoptions.require_hashes()) - cmd_opts.add_option(cmdoptions.progress_bar()) - - index_opts = cmdoptions.make_option_group( - cmdoptions.index_group, - self.parser, - ) - - self.parser.insert_option_group(0, index_opts) - self.parser.insert_option_group(0, cmd_opts) - - def run(self, options, args): - cmdoptions.check_install_build_global(options) - upgrade_strategy = "to-satisfy-only" - if options.upgrade: - upgrade_strategy = options.upgrade_strategy - - if options.build_dir: - options.build_dir = os.path.abspath(options.build_dir) - - cmdoptions.check_dist_restriction(options, check_target=True) - - if options.python_version: - python_versions = [options.python_version] - else: - python_versions = None - - options.src_dir = os.path.abspath(options.src_dir) - install_options = options.install_options or [] - if options.use_user_site: - if options.prefix_path: - raise CommandError( - "Can not combine '--user' and '--prefix' as they imply " - "different installation locations" - ) - if virtualenv_no_global(): - raise InstallationError( - "Can not perform a '--user' install. User site-packages " - "are not visible in this virtualenv." - ) - install_options.append('--user') - install_options.append('--prefix=') - - target_temp_dir = TempDirectory(kind="target") - if options.target_dir: - options.ignore_installed = True - options.target_dir = os.path.abspath(options.target_dir) - if (os.path.exists(options.target_dir) and not - os.path.isdir(options.target_dir)): - raise CommandError( - "Target path exists but is not a directory, will not " - "continue." - ) - - # Create a target directory for using with the target option - target_temp_dir.create() - install_options.append('--home=' + target_temp_dir.path) - - global_options = options.global_options or [] - - with self._build_session(options) as session: - finder = self._build_package_finder( - options=options, - session=session, - platform=options.platform, - python_versions=python_versions, - abi=options.abi, - implementation=options.implementation, - ) - build_delete = (not (options.no_clean or options.build_dir)) - wheel_cache = WheelCache(options.cache_dir, options.format_control) - - if options.cache_dir and not check_path_owner(options.cache_dir): - logger.warning( - "The directory '%s' or its parent directory is not owned " - "by the current user and caching wheels has been " - "disabled. check the permissions and owner of that " - "directory. If executing pip with sudo, you may want " - "sudo's -H flag.", - options.cache_dir, - ) - options.cache_dir = None - - with RequirementTracker() as req_tracker, TempDirectory( - options.build_dir, delete=build_delete, kind="install" - ) as directory: - requirement_set = RequirementSet( - require_hashes=options.require_hashes, - check_supported_wheels=not options.target_dir, - ) - - try: - self.populate_requirement_set( - requirement_set, args, options, finder, session, - self.name, wheel_cache - ) - preparer = RequirementPreparer( - build_dir=directory.path, - src_dir=options.src_dir, - download_dir=None, - wheel_download_dir=None, - progress_bar=options.progress_bar, - build_isolation=options.build_isolation, - req_tracker=req_tracker, - ) - - resolver = Resolver( - preparer=preparer, - finder=finder, - session=session, - wheel_cache=wheel_cache, - use_user_site=options.use_user_site, - upgrade_strategy=upgrade_strategy, - force_reinstall=options.force_reinstall, - ignore_dependencies=options.ignore_dependencies, - ignore_requires_python=options.ignore_requires_python, - ignore_installed=options.ignore_installed, - isolated=options.isolated_mode, - use_pep517=options.use_pep517 - ) - resolver.resolve(requirement_set) - - protect_pip_from_modification_on_windows( - modifying_pip=requirement_set.has_requirement("pip") - ) - - # Consider legacy and PEP517-using requirements separately - legacy_requirements = [] - pep517_requirements = [] - for req in requirement_set.requirements.values(): - if req.use_pep517: - pep517_requirements.append(req) - else: - legacy_requirements.append(req) - - # We don't build wheels for legacy requirements if we - # don't have wheel installed or we don't have a cache dir - try: - import wheel # noqa: F401 - build_legacy = bool(options.cache_dir) - except ImportError: - build_legacy = False - - wb = WheelBuilder( - finder, preparer, wheel_cache, - build_options=[], global_options=[], - ) - - # Always build PEP 517 requirements - build_failures = wb.build( - pep517_requirements, - session=session, autobuilding=True - ) - - if build_legacy: - # We don't care about failures building legacy - # requirements, as we'll fall through to a direct - # install for those. - wb.build( - legacy_requirements, - session=session, autobuilding=True - ) - - # If we're using PEP 517, we cannot do a direct install - # so we fail here. - if build_failures: - raise InstallationError( - "Could not build wheels for {} which use" - " PEP 517 and cannot be installed directly".format( - ", ".join(r.name for r in build_failures))) - - to_install = resolver.get_installation_order( - requirement_set - ) - - # Consistency Checking of the package set we're installing. - should_warn_about_conflicts = ( - not options.ignore_dependencies and - options.warn_about_conflicts - ) - if should_warn_about_conflicts: - self._warn_about_conflicts(to_install) - - # Don't warn about script install locations if - # --target has been specified - warn_script_location = options.warn_script_location - if options.target_dir: - warn_script_location = False - - installed = install_given_reqs( - to_install, - install_options, - global_options, - root=options.root_path, - home=target_temp_dir.path, - prefix=options.prefix_path, - pycompile=options.compile, - warn_script_location=warn_script_location, - use_user_site=options.use_user_site, - ) - - lib_locations = get_lib_location_guesses( - user=options.use_user_site, - home=target_temp_dir.path, - root=options.root_path, - prefix=options.prefix_path, - isolated=options.isolated_mode, - ) - working_set = pkg_resources.WorkingSet(lib_locations) - - reqs = sorted(installed, key=operator.attrgetter('name')) - items = [] - for req in reqs: - item = req.name - try: - installed_version = get_installed_version( - req.name, working_set=working_set - ) - if installed_version: - item += '-' + installed_version - except Exception: - pass - items.append(item) - installed = ' '.join(items) - if installed: - logger.info('Successfully installed %s', installed) - except EnvironmentError as error: - show_traceback = (self.verbosity >= 1) - - message = create_env_error_message( - error, show_traceback, options.use_user_site, - ) - logger.error(message, exc_info=show_traceback) - - return ERROR - except PreviousBuildDirError: - options.no_clean = True - raise - finally: - # Clean up - if not options.no_clean: - requirement_set.cleanup_files() - wheel_cache.cleanup() - - if options.target_dir: - self._handle_target_dir( - options.target_dir, target_temp_dir, options.upgrade - ) - return requirement_set - - def _handle_target_dir(self, target_dir, target_temp_dir, upgrade): - ensure_dir(target_dir) - - # Checking both purelib and platlib directories for installed - # packages to be moved to target directory - lib_dir_list = [] - - with target_temp_dir: - # Checking both purelib and platlib directories for installed - # packages to be moved to target directory - scheme = distutils_scheme('', home=target_temp_dir.path) - purelib_dir = scheme['purelib'] - platlib_dir = scheme['platlib'] - data_dir = scheme['data'] - - if os.path.exists(purelib_dir): - lib_dir_list.append(purelib_dir) - if os.path.exists(platlib_dir) and platlib_dir != purelib_dir: - lib_dir_list.append(platlib_dir) - if os.path.exists(data_dir): - lib_dir_list.append(data_dir) - - for lib_dir in lib_dir_list: - for item in os.listdir(lib_dir): - if lib_dir == data_dir: - ddir = os.path.join(data_dir, item) - if any(s.startswith(ddir) for s in lib_dir_list[:-1]): - continue - target_item_dir = os.path.join(target_dir, item) - if os.path.exists(target_item_dir): - if not upgrade: - logger.warning( - 'Target directory %s already exists. Specify ' - '--upgrade to force replacement.', - target_item_dir - ) - continue - if os.path.islink(target_item_dir): - logger.warning( - 'Target directory %s already exists and is ' - 'a link. Pip will not automatically replace ' - 'links, please remove if replacement is ' - 'desired.', - target_item_dir - ) - continue - if os.path.isdir(target_item_dir): - shutil.rmtree(target_item_dir) - else: - os.remove(target_item_dir) - - shutil.move( - os.path.join(lib_dir, item), - target_item_dir - ) - - def _warn_about_conflicts(self, to_install): - try: - package_set, _dep_info = check_install_conflicts(to_install) - except Exception: - logger.error("Error checking for conflicts.", exc_info=True) - return - missing, conflicting = _dep_info - - # NOTE: There is some duplication here from pip check - for project_name in missing: - version = package_set[project_name][0] - for dependency in missing[project_name]: - logger.critical( - "%s %s requires %s, which is not installed.", - project_name, version, dependency[1], - ) - - for project_name in conflicting: - version = package_set[project_name][0] - for dep_name, dep_version, req in conflicting[project_name]: - logger.critical( - "%s %s has requirement %s, but you'll have %s %s which is " - "incompatible.", - project_name, version, req, dep_name, dep_version, - ) - - -def get_lib_location_guesses(*args, **kwargs): - scheme = distutils_scheme('', *args, **kwargs) - return [scheme['purelib'], scheme['platlib']] - - -def create_env_error_message(error, show_traceback, using_user_site): - """Format an error message for an EnvironmentError - - It may occur anytime during the execution of the install command. - """ - parts = [] - - # Mention the error if we are not going to show a traceback - parts.append("Could not install packages due to an EnvironmentError") - if not show_traceback: - parts.append(": ") - parts.append(str(error)) - else: - parts.append(".") - - # Spilt the error indication from a helper message (if any) - parts[-1] += "\n" - - # Suggest useful actions to the user: - # (1) using user site-packages or (2) verifying the permissions - if error.errno == errno.EACCES: - user_option_part = "Consider using the `--user` option" - permissions_part = "Check the permissions" - - if not using_user_site: - parts.extend([ - user_option_part, " or ", - permissions_part.lower(), - ]) - else: - parts.append(permissions_part) - parts.append(".\n") - - return "".join(parts).strip() + "\n" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/list.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/list.py deleted file mode 100644 index a640274..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/list.py +++ /dev/null @@ -1,301 +0,0 @@ -from __future__ import absolute_import - -import json -import logging - -from pip._vendor import six -from pip._vendor.six.moves import zip_longest - -from pip._internal.cli import cmdoptions -from pip._internal.cli.base_command import Command -from pip._internal.exceptions import CommandError -from pip._internal.index import PackageFinder -from pip._internal.utils.misc import ( - dist_is_editable, get_installed_distributions, -) -from pip._internal.utils.packaging import get_installer - -logger = logging.getLogger(__name__) - - -class ListCommand(Command): - """ - List installed packages, including editables. - - Packages are listed in a case-insensitive sorted order. - """ - name = 'list' - usage = """ - %prog [options]""" - summary = 'List installed packages.' - - def __init__(self, *args, **kw): - super(ListCommand, self).__init__(*args, **kw) - - cmd_opts = self.cmd_opts - - cmd_opts.add_option( - '-o', '--outdated', - action='store_true', - default=False, - help='List outdated packages') - cmd_opts.add_option( - '-u', '--uptodate', - action='store_true', - default=False, - help='List uptodate packages') - cmd_opts.add_option( - '-e', '--editable', - action='store_true', - default=False, - help='List editable projects.') - cmd_opts.add_option( - '-l', '--local', - action='store_true', - default=False, - help=('If in a virtualenv that has global access, do not list ' - 'globally-installed packages.'), - ) - self.cmd_opts.add_option( - '--user', - dest='user', - action='store_true', - default=False, - help='Only output packages installed in user-site.') - - cmd_opts.add_option( - '--pre', - action='store_true', - default=False, - help=("Include pre-release and development versions. By default, " - "pip only finds stable versions."), - ) - - cmd_opts.add_option( - '--format', - action='store', - dest='list_format', - default="columns", - choices=('columns', 'freeze', 'json'), - help="Select the output format among: columns (default), freeze, " - "or json", - ) - - cmd_opts.add_option( - '--not-required', - action='store_true', - dest='not_required', - help="List packages that are not dependencies of " - "installed packages.", - ) - - cmd_opts.add_option( - '--exclude-editable', - action='store_false', - dest='include_editable', - help='Exclude editable package from output.', - ) - cmd_opts.add_option( - '--include-editable', - action='store_true', - dest='include_editable', - help='Include editable package from output.', - default=True, - ) - index_opts = cmdoptions.make_option_group( - cmdoptions.index_group, self.parser - ) - - self.parser.insert_option_group(0, index_opts) - self.parser.insert_option_group(0, cmd_opts) - - def _build_package_finder(self, options, index_urls, session): - """ - Create a package finder appropriate to this list command. - """ - return PackageFinder( - find_links=options.find_links, - index_urls=index_urls, - allow_all_prereleases=options.pre, - trusted_hosts=options.trusted_hosts, - session=session, - ) - - def run(self, options, args): - if options.outdated and options.uptodate: - raise CommandError( - "Options --outdated and --uptodate cannot be combined.") - - packages = get_installed_distributions( - local_only=options.local, - user_only=options.user, - editables_only=options.editable, - include_editables=options.include_editable, - ) - - # get_not_required must be called firstly in order to find and - # filter out all dependencies correctly. Otherwise a package - # can't be identified as requirement because some parent packages - # could be filtered out before. - if options.not_required: - packages = self.get_not_required(packages, options) - - if options.outdated: - packages = self.get_outdated(packages, options) - elif options.uptodate: - packages = self.get_uptodate(packages, options) - - self.output_package_listing(packages, options) - - def get_outdated(self, packages, options): - return [ - dist for dist in self.iter_packages_latest_infos(packages, options) - if dist.latest_version > dist.parsed_version - ] - - def get_uptodate(self, packages, options): - return [ - dist for dist in self.iter_packages_latest_infos(packages, options) - if dist.latest_version == dist.parsed_version - ] - - def get_not_required(self, packages, options): - dep_keys = set() - for dist in packages: - dep_keys.update(requirement.key for requirement in dist.requires()) - return {pkg for pkg in packages if pkg.key not in dep_keys} - - def iter_packages_latest_infos(self, packages, options): - index_urls = [options.index_url] + options.extra_index_urls - if options.no_index: - logger.debug('Ignoring indexes: %s', ','.join(index_urls)) - index_urls = [] - - with self._build_session(options) as session: - finder = self._build_package_finder(options, index_urls, session) - - for dist in packages: - typ = 'unknown' - all_candidates = finder.find_all_candidates(dist.key) - if not options.pre: - # Remove prereleases - all_candidates = [candidate for candidate in all_candidates - if not candidate.version.is_prerelease] - - if not all_candidates: - continue - best_candidate = max(all_candidates, - key=finder._candidate_sort_key) - remote_version = best_candidate.version - if best_candidate.location.is_wheel: - typ = 'wheel' - else: - typ = 'sdist' - # This is dirty but makes the rest of the code much cleaner - dist.latest_version = remote_version - dist.latest_filetype = typ - yield dist - - def output_package_listing(self, packages, options): - packages = sorted( - packages, - key=lambda dist: dist.project_name.lower(), - ) - if options.list_format == 'columns' and packages: - data, header = format_for_columns(packages, options) - self.output_package_listing_columns(data, header) - elif options.list_format == 'freeze': - for dist in packages: - if options.verbose >= 1: - logger.info("%s==%s (%s)", dist.project_name, - dist.version, dist.location) - else: - logger.info("%s==%s", dist.project_name, dist.version) - elif options.list_format == 'json': - logger.info(format_for_json(packages, options)) - - def output_package_listing_columns(self, data, header): - # insert the header first: we need to know the size of column names - if len(data) > 0: - data.insert(0, header) - - pkg_strings, sizes = tabulate(data) - - # Create and add a separator. - if len(data) > 0: - pkg_strings.insert(1, " ".join(map(lambda x: '-' * x, sizes))) - - for val in pkg_strings: - logger.info(val) - - -def tabulate(vals): - # From pfmoore on GitHub: - # https://github.com/pypa/pip/issues/3651#issuecomment-216932564 - assert len(vals) > 0 - - sizes = [0] * max(len(x) for x in vals) - for row in vals: - sizes = [max(s, len(str(c))) for s, c in zip_longest(sizes, row)] - - result = [] - for row in vals: - display = " ".join([str(c).ljust(s) if c is not None else '' - for s, c in zip_longest(sizes, row)]) - result.append(display) - - return result, sizes - - -def format_for_columns(pkgs, options): - """ - Convert the package data into something usable - by output_package_listing_columns. - """ - running_outdated = options.outdated - # Adjust the header for the `pip list --outdated` case. - if running_outdated: - header = ["Package", "Version", "Latest", "Type"] - else: - header = ["Package", "Version"] - - data = [] - if options.verbose >= 1 or any(dist_is_editable(x) for x in pkgs): - header.append("Location") - if options.verbose >= 1: - header.append("Installer") - - for proj in pkgs: - # if we're working on the 'outdated' list, separate out the - # latest_version and type - row = [proj.project_name, proj.version] - - if running_outdated: - row.append(proj.latest_version) - row.append(proj.latest_filetype) - - if options.verbose >= 1 or dist_is_editable(proj): - row.append(proj.location) - if options.verbose >= 1: - row.append(get_installer(proj)) - - data.append(row) - - return data, header - - -def format_for_json(packages, options): - data = [] - for dist in packages: - info = { - 'name': dist.project_name, - 'version': six.text_type(dist.version), - } - if options.verbose >= 1: - info['location'] = dist.location - info['installer'] = get_installer(dist) - if options.outdated: - info['latest_version'] = six.text_type(dist.latest_version) - info['latest_filetype'] = dist.latest_filetype - data.append(info) - return json.dumps(data) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/search.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/search.py deleted file mode 100644 index c157a31..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/search.py +++ /dev/null @@ -1,135 +0,0 @@ -from __future__ import absolute_import - -import logging -import sys -import textwrap -from collections import OrderedDict - -from pip._vendor import pkg_resources -from pip._vendor.packaging.version import parse as parse_version -# NOTE: XMLRPC Client is not annotated in typeshed as on 2017-07-17, which is -# why we ignore the type on this import -from pip._vendor.six.moves import xmlrpc_client # type: ignore - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import NO_MATCHES_FOUND, SUCCESS -from pip._internal.download import PipXmlrpcTransport -from pip._internal.exceptions import CommandError -from pip._internal.models.index import PyPI -from pip._internal.utils.compat import get_terminal_size -from pip._internal.utils.logging import indent_log - -logger = logging.getLogger(__name__) - - -class SearchCommand(Command): - """Search for PyPI packages whose name or summary contains .""" - name = 'search' - usage = """ - %prog [options] """ - summary = 'Search PyPI for packages.' - ignore_require_venv = True - - def __init__(self, *args, **kw): - super(SearchCommand, self).__init__(*args, **kw) - self.cmd_opts.add_option( - '-i', '--index', - dest='index', - metavar='URL', - default=PyPI.pypi_url, - help='Base URL of Python Package Index (default %default)') - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options, args): - if not args: - raise CommandError('Missing required argument (search query).') - query = args - pypi_hits = self.search(query, options) - hits = transform_hits(pypi_hits) - - terminal_width = None - if sys.stdout.isatty(): - terminal_width = get_terminal_size()[0] - - print_results(hits, terminal_width=terminal_width) - if pypi_hits: - return SUCCESS - return NO_MATCHES_FOUND - - def search(self, query, options): - index_url = options.index - with self._build_session(options) as session: - transport = PipXmlrpcTransport(index_url, session) - pypi = xmlrpc_client.ServerProxy(index_url, transport) - hits = pypi.search({'name': query, 'summary': query}, 'or') - return hits - - -def transform_hits(hits): - """ - The list from pypi is really a list of versions. We want a list of - packages with the list of versions stored inline. This converts the - list from pypi into one we can use. - """ - packages = OrderedDict() - for hit in hits: - name = hit['name'] - summary = hit['summary'] - version = hit['version'] - - if name not in packages.keys(): - packages[name] = { - 'name': name, - 'summary': summary, - 'versions': [version], - } - else: - packages[name]['versions'].append(version) - - # if this is the highest version, replace summary and score - if version == highest_version(packages[name]['versions']): - packages[name]['summary'] = summary - - return list(packages.values()) - - -def print_results(hits, name_column_width=None, terminal_width=None): - if not hits: - return - if name_column_width is None: - name_column_width = max([ - len(hit['name']) + len(highest_version(hit.get('versions', ['-']))) - for hit in hits - ]) + 4 - - installed_packages = [p.project_name for p in pkg_resources.working_set] - for hit in hits: - name = hit['name'] - summary = hit['summary'] or '' - latest = highest_version(hit.get('versions', ['-'])) - if terminal_width is not None: - target_width = terminal_width - name_column_width - 5 - if target_width > 10: - # wrap and indent summary to fit terminal - summary = textwrap.wrap(summary, target_width) - summary = ('\n' + ' ' * (name_column_width + 3)).join(summary) - - line = '%-*s - %s' % (name_column_width, - '%s (%s)' % (name, latest), summary) - try: - logger.info(line) - if name in installed_packages: - dist = pkg_resources.get_distribution(name) - with indent_log(): - if dist.version == latest: - logger.info('INSTALLED: %s (latest)', dist.version) - else: - logger.info('INSTALLED: %s', dist.version) - logger.info('LATEST: %s', latest) - except UnicodeEncodeError: - pass - - -def highest_version(versions): - return max(versions, key=parse_version) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/show.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/show.py deleted file mode 100644 index f92c9bc..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/show.py +++ /dev/null @@ -1,168 +0,0 @@ -from __future__ import absolute_import - -import logging -import os -from email.parser import FeedParser # type: ignore - -from pip._vendor import pkg_resources -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.cli.base_command import Command -from pip._internal.cli.status_codes import ERROR, SUCCESS - -logger = logging.getLogger(__name__) - - -class ShowCommand(Command): - """ - Show information about one or more installed packages. - - The output is in RFC-compliant mail header format. - """ - name = 'show' - usage = """ - %prog [options] ...""" - summary = 'Show information about installed packages.' - ignore_require_venv = True - - def __init__(self, *args, **kw): - super(ShowCommand, self).__init__(*args, **kw) - self.cmd_opts.add_option( - '-f', '--files', - dest='files', - action='store_true', - default=False, - help='Show the full list of installed files for each package.') - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options, args): - if not args: - logger.warning('ERROR: Please provide a package name or names.') - return ERROR - query = args - - results = search_packages_info(query) - if not print_results( - results, list_files=options.files, verbose=options.verbose): - return ERROR - return SUCCESS - - -def search_packages_info(query): - """ - Gather details from installed distributions. Print distribution name, - version, location, and installed files. Installed files requires a - pip generated 'installed-files.txt' in the distributions '.egg-info' - directory. - """ - installed = {} - for p in pkg_resources.working_set: - installed[canonicalize_name(p.project_name)] = p - - query_names = [canonicalize_name(name) for name in query] - - for dist in [installed[pkg] for pkg in query_names if pkg in installed]: - package = { - 'name': dist.project_name, - 'version': dist.version, - 'location': dist.location, - 'requires': [dep.project_name for dep in dist.requires()], - } - file_list = None - metadata = None - if isinstance(dist, pkg_resources.DistInfoDistribution): - # RECORDs should be part of .dist-info metadatas - if dist.has_metadata('RECORD'): - lines = dist.get_metadata_lines('RECORD') - paths = [l.split(',')[0] for l in lines] - paths = [os.path.join(dist.location, p) for p in paths] - file_list = [os.path.relpath(p, dist.location) for p in paths] - - if dist.has_metadata('METADATA'): - metadata = dist.get_metadata('METADATA') - else: - # Otherwise use pip's log for .egg-info's - if dist.has_metadata('installed-files.txt'): - paths = dist.get_metadata_lines('installed-files.txt') - paths = [os.path.join(dist.egg_info, p) for p in paths] - file_list = [os.path.relpath(p, dist.location) for p in paths] - - if dist.has_metadata('PKG-INFO'): - metadata = dist.get_metadata('PKG-INFO') - - if dist.has_metadata('entry_points.txt'): - entry_points = dist.get_metadata_lines('entry_points.txt') - package['entry_points'] = entry_points - - if dist.has_metadata('INSTALLER'): - for line in dist.get_metadata_lines('INSTALLER'): - if line.strip(): - package['installer'] = line.strip() - break - - # @todo: Should pkg_resources.Distribution have a - # `get_pkg_info` method? - feed_parser = FeedParser() - feed_parser.feed(metadata) - pkg_info_dict = feed_parser.close() - for key in ('metadata-version', 'summary', - 'home-page', 'author', 'author-email', 'license'): - package[key] = pkg_info_dict.get(key) - - # It looks like FeedParser cannot deal with repeated headers - classifiers = [] - for line in metadata.splitlines(): - if line.startswith('Classifier: '): - classifiers.append(line[len('Classifier: '):]) - package['classifiers'] = classifiers - - if file_list: - package['files'] = sorted(file_list) - yield package - - -def print_results(distributions, list_files=False, verbose=False): - """ - Print the informations from installed distributions found. - """ - results_printed = False - for i, dist in enumerate(distributions): - results_printed = True - if i > 0: - logger.info("---") - - name = dist.get('name', '') - required_by = [ - pkg.project_name for pkg in pkg_resources.working_set - if name in [required.name for required in pkg.requires()] - ] - - logger.info("Name: %s", name) - logger.info("Version: %s", dist.get('version', '')) - logger.info("Summary: %s", dist.get('summary', '')) - logger.info("Home-page: %s", dist.get('home-page', '')) - logger.info("Author: %s", dist.get('author', '')) - logger.info("Author-email: %s", dist.get('author-email', '')) - logger.info("License: %s", dist.get('license', '')) - logger.info("Location: %s", dist.get('location', '')) - logger.info("Requires: %s", ', '.join(dist.get('requires', []))) - logger.info("Required-by: %s", ', '.join(required_by)) - - if verbose: - logger.info("Metadata-Version: %s", - dist.get('metadata-version', '')) - logger.info("Installer: %s", dist.get('installer', '')) - logger.info("Classifiers:") - for classifier in dist.get('classifiers', []): - logger.info(" %s", classifier) - logger.info("Entry-points:") - for entry in dist.get('entry_points', []): - logger.info(" %s", entry.strip()) - if list_files: - logger.info("Files:") - for line in dist.get('files', []): - logger.info(" %s", line.strip()) - if "files" not in dist: - logger.info("Cannot locate installed-files.txt") - return results_printed diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/uninstall.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/uninstall.py deleted file mode 100644 index 0cd6f54..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/uninstall.py +++ /dev/null @@ -1,78 +0,0 @@ -from __future__ import absolute_import - -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.cli.base_command import Command -from pip._internal.exceptions import InstallationError -from pip._internal.req import parse_requirements -from pip._internal.req.constructors import install_req_from_line -from pip._internal.utils.misc import protect_pip_from_modification_on_windows - - -class UninstallCommand(Command): - """ - Uninstall packages. - - pip is able to uninstall most installed packages. Known exceptions are: - - - Pure distutils packages installed with ``python setup.py install``, which - leave behind no metadata to determine what files were installed. - - Script wrappers installed by ``python setup.py develop``. - """ - name = 'uninstall' - usage = """ - %prog [options] ... - %prog [options] -r ...""" - summary = 'Uninstall packages.' - - def __init__(self, *args, **kw): - super(UninstallCommand, self).__init__(*args, **kw) - self.cmd_opts.add_option( - '-r', '--requirement', - dest='requirements', - action='append', - default=[], - metavar='file', - help='Uninstall all the packages listed in the given requirements ' - 'file. This option can be used multiple times.', - ) - self.cmd_opts.add_option( - '-y', '--yes', - dest='yes', - action='store_true', - help="Don't ask for confirmation of uninstall deletions.") - - self.parser.insert_option_group(0, self.cmd_opts) - - def run(self, options, args): - with self._build_session(options) as session: - reqs_to_uninstall = {} - for name in args: - req = install_req_from_line( - name, isolated=options.isolated_mode, - ) - if req.name: - reqs_to_uninstall[canonicalize_name(req.name)] = req - for filename in options.requirements: - for req in parse_requirements( - filename, - options=options, - session=session): - if req.name: - reqs_to_uninstall[canonicalize_name(req.name)] = req - if not reqs_to_uninstall: - raise InstallationError( - 'You must give at least one requirement to %(name)s (see ' - '"pip help %(name)s")' % dict(name=self.name) - ) - - protect_pip_from_modification_on_windows( - modifying_pip="pip" in reqs_to_uninstall - ) - - for req in reqs_to_uninstall.values(): - uninstall_pathset = req.uninstall( - auto_confirm=options.yes, verbose=self.verbosity > 0, - ) - if uninstall_pathset: - uninstall_pathset.commit() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/wheel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/wheel.py deleted file mode 100644 index cd72a3d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/wheel.py +++ /dev/null @@ -1,186 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import absolute_import - -import logging -import os - -from pip._internal.cache import WheelCache -from pip._internal.cli import cmdoptions -from pip._internal.cli.base_command import RequirementCommand -from pip._internal.exceptions import CommandError, PreviousBuildDirError -from pip._internal.operations.prepare import RequirementPreparer -from pip._internal.req import RequirementSet -from pip._internal.req.req_tracker import RequirementTracker -from pip._internal.resolve import Resolver -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.wheel import WheelBuilder - -logger = logging.getLogger(__name__) - - -class WheelCommand(RequirementCommand): - """ - Build Wheel archives for your requirements and dependencies. - - Wheel is a built-package format, and offers the advantage of not - recompiling your software during every install. For more details, see the - wheel docs: https://wheel.readthedocs.io/en/latest/ - - Requirements: setuptools>=0.8, and wheel. - - 'pip wheel' uses the bdist_wheel setuptools extension from the wheel - package to build individual wheels. - - """ - - name = 'wheel' - usage = """ - %prog [options] ... - %prog [options] -r ... - %prog [options] [-e] ... - %prog [options] [-e] ... - %prog [options] ...""" - - summary = 'Build wheels from your requirements.' - - def __init__(self, *args, **kw): - super(WheelCommand, self).__init__(*args, **kw) - - cmd_opts = self.cmd_opts - - cmd_opts.add_option( - '-w', '--wheel-dir', - dest='wheel_dir', - metavar='dir', - default=os.curdir, - help=("Build wheels into , where the default is the " - "current working directory."), - ) - cmd_opts.add_option(cmdoptions.no_binary()) - cmd_opts.add_option(cmdoptions.only_binary()) - cmd_opts.add_option(cmdoptions.prefer_binary()) - cmd_opts.add_option( - '--build-option', - dest='build_options', - metavar='options', - action='append', - help="Extra arguments to be supplied to 'setup.py bdist_wheel'.", - ) - cmd_opts.add_option(cmdoptions.no_build_isolation()) - cmd_opts.add_option(cmdoptions.use_pep517()) - cmd_opts.add_option(cmdoptions.no_use_pep517()) - cmd_opts.add_option(cmdoptions.constraints()) - cmd_opts.add_option(cmdoptions.editable()) - cmd_opts.add_option(cmdoptions.requirements()) - cmd_opts.add_option(cmdoptions.src()) - cmd_opts.add_option(cmdoptions.ignore_requires_python()) - cmd_opts.add_option(cmdoptions.no_deps()) - cmd_opts.add_option(cmdoptions.build_dir()) - cmd_opts.add_option(cmdoptions.progress_bar()) - - cmd_opts.add_option( - '--global-option', - dest='global_options', - action='append', - metavar='options', - help="Extra global options to be supplied to the setup.py " - "call before the 'bdist_wheel' command.") - - cmd_opts.add_option( - '--pre', - action='store_true', - default=False, - help=("Include pre-release and development versions. By default, " - "pip only finds stable versions."), - ) - - cmd_opts.add_option(cmdoptions.no_clean()) - cmd_opts.add_option(cmdoptions.require_hashes()) - - index_opts = cmdoptions.make_option_group( - cmdoptions.index_group, - self.parser, - ) - - self.parser.insert_option_group(0, index_opts) - self.parser.insert_option_group(0, cmd_opts) - - def run(self, options, args): - cmdoptions.check_install_build_global(options) - - index_urls = [options.index_url] + options.extra_index_urls - if options.no_index: - logger.debug('Ignoring indexes: %s', ','.join(index_urls)) - index_urls = [] - - if options.build_dir: - options.build_dir = os.path.abspath(options.build_dir) - - options.src_dir = os.path.abspath(options.src_dir) - - with self._build_session(options) as session: - finder = self._build_package_finder(options, session) - build_delete = (not (options.no_clean or options.build_dir)) - wheel_cache = WheelCache(options.cache_dir, options.format_control) - - with RequirementTracker() as req_tracker, TempDirectory( - options.build_dir, delete=build_delete, kind="wheel" - ) as directory: - - requirement_set = RequirementSet( - require_hashes=options.require_hashes, - ) - - try: - self.populate_requirement_set( - requirement_set, args, options, finder, session, - self.name, wheel_cache - ) - - preparer = RequirementPreparer( - build_dir=directory.path, - src_dir=options.src_dir, - download_dir=None, - wheel_download_dir=options.wheel_dir, - progress_bar=options.progress_bar, - build_isolation=options.build_isolation, - req_tracker=req_tracker, - ) - - resolver = Resolver( - preparer=preparer, - finder=finder, - session=session, - wheel_cache=wheel_cache, - use_user_site=False, - upgrade_strategy="to-satisfy-only", - force_reinstall=False, - ignore_dependencies=options.ignore_dependencies, - ignore_requires_python=options.ignore_requires_python, - ignore_installed=True, - isolated=options.isolated_mode, - use_pep517=options.use_pep517 - ) - resolver.resolve(requirement_set) - - # build wheels - wb = WheelBuilder( - finder, preparer, wheel_cache, - build_options=options.build_options or [], - global_options=options.global_options or [], - no_clean=options.no_clean, - ) - build_failures = wb.build( - requirement_set.requirements.values(), session=session, - ) - if len(build_failures) != 0: - raise CommandError( - "Failed to build one or more wheels" - ) - except PreviousBuildDirError: - options.no_clean = True - raise - finally: - if not options.no_clean: - requirement_set.cleanup_files() - wheel_cache.cleanup() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/configuration.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/configuration.py deleted file mode 100644 index fe6df9b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/configuration.py +++ /dev/null @@ -1,387 +0,0 @@ -"""Configuration management setup - -Some terminology: -- name - As written in config files. -- value - Value associated with a name -- key - Name combined with it's section (section.name) -- variant - A single word describing where the configuration key-value pair came from -""" - -import locale -import logging -import os - -from pip._vendor import six -from pip._vendor.six.moves import configparser - -from pip._internal.exceptions import ( - ConfigurationError, ConfigurationFileCouldNotBeLoaded, -) -from pip._internal.locations import ( - legacy_config_file, new_config_file, running_under_virtualenv, - site_config_files, venv_config_file, -) -from pip._internal.utils.misc import ensure_dir, enum -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Any, Dict, Iterable, List, NewType, Optional, Tuple - ) - - RawConfigParser = configparser.RawConfigParser # Shorthand - Kind = NewType("Kind", str) - -logger = logging.getLogger(__name__) - - -# NOTE: Maybe use the optionx attribute to normalize keynames. -def _normalize_name(name): - # type: (str) -> str - """Make a name consistent regardless of source (environment or file) - """ - name = name.lower().replace('_', '-') - if name.startswith('--'): - name = name[2:] # only prefer long opts - return name - - -def _disassemble_key(name): - # type: (str) -> List[str] - return name.split(".", 1) - - -# The kinds of configurations there are. -kinds = enum( - USER="user", # User Specific - GLOBAL="global", # System Wide - VENV="venv", # Virtual Environment Specific - ENV="env", # from PIP_CONFIG_FILE - ENV_VAR="env-var", # from Environment Variables -) - - -class Configuration(object): - """Handles management of configuration. - - Provides an interface to accessing and managing configuration files. - - This class converts provides an API that takes "section.key-name" style - keys and stores the value associated with it as "key-name" under the - section "section". - - This allows for a clean interface wherein the both the section and the - key-name are preserved in an easy to manage form in the configuration files - and the data stored is also nice. - """ - - def __init__(self, isolated, load_only=None): - # type: (bool, Kind) -> None - super(Configuration, self).__init__() - - _valid_load_only = [kinds.USER, kinds.GLOBAL, kinds.VENV, None] - if load_only not in _valid_load_only: - raise ConfigurationError( - "Got invalid value for load_only - should be one of {}".format( - ", ".join(map(repr, _valid_load_only[:-1])) - ) - ) - self.isolated = isolated # type: bool - self.load_only = load_only # type: Optional[Kind] - - # The order here determines the override order. - self._override_order = [ - kinds.GLOBAL, kinds.USER, kinds.VENV, kinds.ENV, kinds.ENV_VAR - ] - - self._ignore_env_names = ["version", "help"] - - # Because we keep track of where we got the data from - self._parsers = { - variant: [] for variant in self._override_order - } # type: Dict[Kind, List[Tuple[str, RawConfigParser]]] - self._config = { - variant: {} for variant in self._override_order - } # type: Dict[Kind, Dict[str, Any]] - self._modified_parsers = [] # type: List[Tuple[str, RawConfigParser]] - - def load(self): - # type: () -> None - """Loads configuration from configuration files and environment - """ - self._load_config_files() - if not self.isolated: - self._load_environment_vars() - - def get_file_to_edit(self): - # type: () -> Optional[str] - """Returns the file with highest priority in configuration - """ - assert self.load_only is not None, \ - "Need to be specified a file to be editing" - - try: - return self._get_parser_to_modify()[0] - except IndexError: - return None - - def items(self): - # type: () -> Iterable[Tuple[str, Any]] - """Returns key-value pairs like dict.items() representing the loaded - configuration - """ - return self._dictionary.items() - - def get_value(self, key): - # type: (str) -> Any - """Get a value from the configuration. - """ - try: - return self._dictionary[key] - except KeyError: - raise ConfigurationError("No such key - {}".format(key)) - - def set_value(self, key, value): - # type: (str, Any) -> None - """Modify a value in the configuration. - """ - self._ensure_have_load_only() - - fname, parser = self._get_parser_to_modify() - - if parser is not None: - section, name = _disassemble_key(key) - - # Modify the parser and the configuration - if not parser.has_section(section): - parser.add_section(section) - parser.set(section, name, value) - - self._config[self.load_only][key] = value - self._mark_as_modified(fname, parser) - - def unset_value(self, key): - # type: (str) -> None - """Unset a value in the configuration. - """ - self._ensure_have_load_only() - - if key not in self._config[self.load_only]: - raise ConfigurationError("No such key - {}".format(key)) - - fname, parser = self._get_parser_to_modify() - - if parser is not None: - section, name = _disassemble_key(key) - - # Remove the key in the parser - modified_something = False - if parser.has_section(section): - # Returns whether the option was removed or not - modified_something = parser.remove_option(section, name) - - if modified_something: - # name removed from parser, section may now be empty - section_iter = iter(parser.items(section)) - try: - val = six.next(section_iter) - except StopIteration: - val = None - - if val is None: - parser.remove_section(section) - - self._mark_as_modified(fname, parser) - else: - raise ConfigurationError( - "Fatal Internal error [id=1]. Please report as a bug." - ) - - del self._config[self.load_only][key] - - def save(self): - # type: () -> None - """Save the currentin-memory state. - """ - self._ensure_have_load_only() - - for fname, parser in self._modified_parsers: - logger.info("Writing to %s", fname) - - # Ensure directory exists. - ensure_dir(os.path.dirname(fname)) - - with open(fname, "w") as f: - parser.write(f) # type: ignore - - # - # Private routines - # - - def _ensure_have_load_only(self): - # type: () -> None - if self.load_only is None: - raise ConfigurationError("Needed a specific file to be modifying.") - logger.debug("Will be working with %s variant only", self.load_only) - - @property - def _dictionary(self): - # type: () -> Dict[str, Any] - """A dictionary representing the loaded configuration. - """ - # NOTE: Dictionaries are not populated if not loaded. So, conditionals - # are not needed here. - retval = {} - - for variant in self._override_order: - retval.update(self._config[variant]) - - return retval - - def _load_config_files(self): - # type: () -> None - """Loads configuration from configuration files - """ - config_files = dict(self._iter_config_files()) - if config_files[kinds.ENV][0:1] == [os.devnull]: - logger.debug( - "Skipping loading configuration files due to " - "environment's PIP_CONFIG_FILE being os.devnull" - ) - return - - for variant, files in config_files.items(): - for fname in files: - # If there's specific variant set in `load_only`, load only - # that variant, not the others. - if self.load_only is not None and variant != self.load_only: - logger.debug( - "Skipping file '%s' (variant: %s)", fname, variant - ) - continue - - parser = self._load_file(variant, fname) - - # Keeping track of the parsers used - self._parsers[variant].append((fname, parser)) - - def _load_file(self, variant, fname): - # type: (Kind, str) -> RawConfigParser - logger.debug("For variant '%s', will try loading '%s'", variant, fname) - parser = self._construct_parser(fname) - - for section in parser.sections(): - items = parser.items(section) - self._config[variant].update(self._normalized_keys(section, items)) - - return parser - - def _construct_parser(self, fname): - # type: (str) -> RawConfigParser - parser = configparser.RawConfigParser() - # If there is no such file, don't bother reading it but create the - # parser anyway, to hold the data. - # Doing this is useful when modifying and saving files, where we don't - # need to construct a parser. - if os.path.exists(fname): - try: - parser.read(fname) - except UnicodeDecodeError: - # See https://github.com/pypa/pip/issues/4963 - raise ConfigurationFileCouldNotBeLoaded( - reason="contains invalid {} characters".format( - locale.getpreferredencoding(False) - ), - fname=fname, - ) - except configparser.Error as error: - # See https://github.com/pypa/pip/issues/4893 - raise ConfigurationFileCouldNotBeLoaded(error=error) - return parser - - def _load_environment_vars(self): - # type: () -> None - """Loads configuration from environment variables - """ - self._config[kinds.ENV_VAR].update( - self._normalized_keys(":env:", self._get_environ_vars()) - ) - - def _normalized_keys(self, section, items): - # type: (str, Iterable[Tuple[str, Any]]) -> Dict[str, Any] - """Normalizes items to construct a dictionary with normalized keys. - - This routine is where the names become keys and are made the same - regardless of source - configuration files or environment. - """ - normalized = {} - for name, val in items: - key = section + "." + _normalize_name(name) - normalized[key] = val - return normalized - - def _get_environ_vars(self): - # type: () -> Iterable[Tuple[str, str]] - """Returns a generator with all environmental vars with prefix PIP_""" - for key, val in os.environ.items(): - should_be_yielded = ( - key.startswith("PIP_") and - key[4:].lower() not in self._ignore_env_names - ) - if should_be_yielded: - yield key[4:].lower(), val - - # XXX: This is patched in the tests. - def _iter_config_files(self): - # type: () -> Iterable[Tuple[Kind, List[str]]] - """Yields variant and configuration files associated with it. - - This should be treated like items of a dictionary. - """ - # SMELL: Move the conditions out of this function - - # environment variables have the lowest priority - config_file = os.environ.get('PIP_CONFIG_FILE', None) - if config_file is not None: - yield kinds.ENV, [config_file] - else: - yield kinds.ENV, [] - - # at the base we have any global configuration - yield kinds.GLOBAL, list(site_config_files) - - # per-user configuration next - should_load_user_config = not self.isolated and not ( - config_file and os.path.exists(config_file) - ) - if should_load_user_config: - # The legacy config file is overridden by the new config file - yield kinds.USER, [legacy_config_file, new_config_file] - - # finally virtualenv configuration first trumping others - if running_under_virtualenv(): - yield kinds.VENV, [venv_config_file] - - def _get_parser_to_modify(self): - # type: () -> Tuple[str, RawConfigParser] - # Determine which parser to modify - parsers = self._parsers[self.load_only] - if not parsers: - # This should not happen if everything works correctly. - raise ConfigurationError( - "Fatal Internal error [id=2]. Please report as a bug." - ) - - # Use the highest priority parser. - return parsers[-1] - - # XXX: This is patched in the tests. - def _mark_as_modified(self, fname, parser): - # type: (str, RawConfigParser) -> None - file_parser_tuple = (fname, parser) - if file_parser_tuple not in self._modified_parsers: - self._modified_parsers.append(file_parser_tuple) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/download.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/download.py deleted file mode 100644 index 2bbe176..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/download.py +++ /dev/null @@ -1,971 +0,0 @@ -from __future__ import absolute_import - -import cgi -import email.utils -import getpass -import json -import logging -import mimetypes -import os -import platform -import re -import shutil -import sys - -from pip._vendor import requests, six, urllib3 -from pip._vendor.cachecontrol import CacheControlAdapter -from pip._vendor.cachecontrol.caches import FileCache -from pip._vendor.lockfile import LockError -from pip._vendor.requests.adapters import BaseAdapter, HTTPAdapter -from pip._vendor.requests.auth import AuthBase, HTTPBasicAuth -from pip._vendor.requests.models import CONTENT_CHUNK_SIZE, Response -from pip._vendor.requests.structures import CaseInsensitiveDict -from pip._vendor.requests.utils import get_netrc_auth -# NOTE: XMLRPC Client is not annotated in typeshed as on 2017-07-17, which is -# why we ignore the type on this import -from pip._vendor.six.moves import xmlrpc_client # type: ignore -from pip._vendor.six.moves.urllib import parse as urllib_parse -from pip._vendor.six.moves.urllib import request as urllib_request -from pip._vendor.urllib3.util import IS_PYOPENSSL - -import pip -from pip._internal.exceptions import HashMismatch, InstallationError -from pip._internal.locations import write_delete_marker_file -from pip._internal.models.index import PyPI -from pip._internal.utils.encoding import auto_decode -from pip._internal.utils.filesystem import check_path_owner -from pip._internal.utils.glibc import libc_ver -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import ( - ARCHIVE_EXTENSIONS, ask_path_exists, backup_dir, call_subprocess, consume, - display_path, format_size, get_installed_version, rmtree, - split_auth_from_netloc, splitext, unpack_file, -) -from pip._internal.utils.setuptools_build import SETUPTOOLS_SHIM -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.utils.ui import DownloadProgressProvider -from pip._internal.vcs import vcs - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Optional, Tuple, Dict, IO, Text, Union - ) - from pip._internal.models.link import Link # noqa: F401 - from pip._internal.utils.hashes import Hashes # noqa: F401 - from pip._internal.vcs import AuthInfo # noqa: F401 - -try: - import ssl # noqa -except ImportError: - ssl = None - -HAS_TLS = (ssl is not None) or IS_PYOPENSSL - -__all__ = ['get_file_content', - 'is_url', 'url_to_path', 'path_to_url', - 'is_archive_file', 'unpack_vcs_link', - 'unpack_file_url', 'is_vcs_url', 'is_file_url', - 'unpack_http_url', 'unpack_url'] - - -logger = logging.getLogger(__name__) - - -def user_agent(): - """ - Return a string representing the user agent. - """ - data = { - "installer": {"name": "pip", "version": pip.__version__}, - "python": platform.python_version(), - "implementation": { - "name": platform.python_implementation(), - }, - } - - if data["implementation"]["name"] == 'CPython': - data["implementation"]["version"] = platform.python_version() - elif data["implementation"]["name"] == 'PyPy': - if sys.pypy_version_info.releaselevel == 'final': - pypy_version_info = sys.pypy_version_info[:3] - else: - pypy_version_info = sys.pypy_version_info - data["implementation"]["version"] = ".".join( - [str(x) for x in pypy_version_info] - ) - elif data["implementation"]["name"] == 'Jython': - # Complete Guess - data["implementation"]["version"] = platform.python_version() - elif data["implementation"]["name"] == 'IronPython': - # Complete Guess - data["implementation"]["version"] = platform.python_version() - - if sys.platform.startswith("linux"): - from pip._vendor import distro - distro_infos = dict(filter( - lambda x: x[1], - zip(["name", "version", "id"], distro.linux_distribution()), - )) - libc = dict(filter( - lambda x: x[1], - zip(["lib", "version"], libc_ver()), - )) - if libc: - distro_infos["libc"] = libc - if distro_infos: - data["distro"] = distro_infos - - if sys.platform.startswith("darwin") and platform.mac_ver()[0]: - data["distro"] = {"name": "macOS", "version": platform.mac_ver()[0]} - - if platform.system(): - data.setdefault("system", {})["name"] = platform.system() - - if platform.release(): - data.setdefault("system", {})["release"] = platform.release() - - if platform.machine(): - data["cpu"] = platform.machine() - - if HAS_TLS: - data["openssl_version"] = ssl.OPENSSL_VERSION - - setuptools_version = get_installed_version("setuptools") - if setuptools_version is not None: - data["setuptools_version"] = setuptools_version - - return "{data[installer][name]}/{data[installer][version]} {json}".format( - data=data, - json=json.dumps(data, separators=(",", ":"), sort_keys=True), - ) - - -class MultiDomainBasicAuth(AuthBase): - - def __init__(self, prompting=True): - # type: (bool) -> None - self.prompting = prompting - self.passwords = {} # type: Dict[str, AuthInfo] - - def __call__(self, req): - parsed = urllib_parse.urlparse(req.url) - - # Split the credentials from the netloc. - netloc, url_user_password = split_auth_from_netloc(parsed.netloc) - - # Set the url of the request to the url without any credentials - req.url = urllib_parse.urlunparse(parsed[:1] + (netloc,) + parsed[2:]) - - # Use any stored credentials that we have for this netloc - username, password = self.passwords.get(netloc, (None, None)) - - # Use the credentials embedded in the url if we have none stored - if username is None: - username, password = url_user_password - - # Get creds from netrc if we still don't have them - if username is None and password is None: - netrc_auth = get_netrc_auth(req.url) - username, password = netrc_auth if netrc_auth else (None, None) - - if username or password: - # Store the username and password - self.passwords[netloc] = (username, password) - - # Send the basic auth with this request - req = HTTPBasicAuth(username or "", password or "")(req) - - # Attach a hook to handle 401 responses - req.register_hook("response", self.handle_401) - - return req - - def handle_401(self, resp, **kwargs): - # We only care about 401 responses, anything else we want to just - # pass through the actual response - if resp.status_code != 401: - return resp - - # We are not able to prompt the user so simply return the response - if not self.prompting: - return resp - - parsed = urllib_parse.urlparse(resp.url) - - # Prompt the user for a new username and password - username = six.moves.input("User for %s: " % parsed.netloc) - password = getpass.getpass("Password: ") - - # Store the new username and password to use for future requests - if username or password: - self.passwords[parsed.netloc] = (username, password) - - # Consume content and release the original connection to allow our new - # request to reuse the same one. - resp.content - resp.raw.release_conn() - - # Add our new username and password to the request - req = HTTPBasicAuth(username or "", password or "")(resp.request) - req.register_hook("response", self.warn_on_401) - - # Send our new request - new_resp = resp.connection.send(req, **kwargs) - new_resp.history.append(resp) - - return new_resp - - def warn_on_401(self, resp, **kwargs): - # warn user that they provided incorrect credentials - if resp.status_code == 401: - logger.warning('401 Error, Credentials not correct for %s', - resp.request.url) - - -class LocalFSAdapter(BaseAdapter): - - def send(self, request, stream=None, timeout=None, verify=None, cert=None, - proxies=None): - pathname = url_to_path(request.url) - - resp = Response() - resp.status_code = 200 - resp.url = request.url - - try: - stats = os.stat(pathname) - except OSError as exc: - resp.status_code = 404 - resp.raw = exc - else: - modified = email.utils.formatdate(stats.st_mtime, usegmt=True) - content_type = mimetypes.guess_type(pathname)[0] or "text/plain" - resp.headers = CaseInsensitiveDict({ - "Content-Type": content_type, - "Content-Length": stats.st_size, - "Last-Modified": modified, - }) - - resp.raw = open(pathname, "rb") - resp.close = resp.raw.close - - return resp - - def close(self): - pass - - -class SafeFileCache(FileCache): - """ - A file based cache which is safe to use even when the target directory may - not be accessible or writable. - """ - - def __init__(self, *args, **kwargs): - super(SafeFileCache, self).__init__(*args, **kwargs) - - # Check to ensure that the directory containing our cache directory - # is owned by the user current executing pip. If it does not exist - # we will check the parent directory until we find one that does exist. - # If it is not owned by the user executing pip then we will disable - # the cache and log a warning. - if not check_path_owner(self.directory): - logger.warning( - "The directory '%s' or its parent directory is not owned by " - "the current user and the cache has been disabled. Please " - "check the permissions and owner of that directory. If " - "executing pip with sudo, you may want sudo's -H flag.", - self.directory, - ) - - # Set our directory to None to disable the Cache - self.directory = None - - def get(self, *args, **kwargs): - # If we don't have a directory, then the cache should be a no-op. - if self.directory is None: - return - - try: - return super(SafeFileCache, self).get(*args, **kwargs) - except (LockError, OSError, IOError): - # We intentionally silence this error, if we can't access the cache - # then we can just skip caching and process the request as if - # caching wasn't enabled. - pass - - def set(self, *args, **kwargs): - # If we don't have a directory, then the cache should be a no-op. - if self.directory is None: - return - - try: - return super(SafeFileCache, self).set(*args, **kwargs) - except (LockError, OSError, IOError): - # We intentionally silence this error, if we can't access the cache - # then we can just skip caching and process the request as if - # caching wasn't enabled. - pass - - def delete(self, *args, **kwargs): - # If we don't have a directory, then the cache should be a no-op. - if self.directory is None: - return - - try: - return super(SafeFileCache, self).delete(*args, **kwargs) - except (LockError, OSError, IOError): - # We intentionally silence this error, if we can't access the cache - # then we can just skip caching and process the request as if - # caching wasn't enabled. - pass - - -class InsecureHTTPAdapter(HTTPAdapter): - - def cert_verify(self, conn, url, verify, cert): - conn.cert_reqs = 'CERT_NONE' - conn.ca_certs = None - - -class PipSession(requests.Session): - - timeout = None # type: Optional[int] - - def __init__(self, *args, **kwargs): - retries = kwargs.pop("retries", 0) - cache = kwargs.pop("cache", None) - insecure_hosts = kwargs.pop("insecure_hosts", []) - - super(PipSession, self).__init__(*args, **kwargs) - - # Attach our User Agent to the request - self.headers["User-Agent"] = user_agent() - - # Attach our Authentication handler to the session - self.auth = MultiDomainBasicAuth() - - # Create our urllib3.Retry instance which will allow us to customize - # how we handle retries. - retries = urllib3.Retry( - # Set the total number of retries that a particular request can - # have. - total=retries, - - # A 503 error from PyPI typically means that the Fastly -> Origin - # connection got interrupted in some way. A 503 error in general - # is typically considered a transient error so we'll go ahead and - # retry it. - # A 500 may indicate transient error in Amazon S3 - # A 520 or 527 - may indicate transient error in CloudFlare - status_forcelist=[500, 503, 520, 527], - - # Add a small amount of back off between failed requests in - # order to prevent hammering the service. - backoff_factor=0.25, - ) - - # We want to _only_ cache responses on securely fetched origins. We do - # this because we can't validate the response of an insecurely fetched - # origin, and we don't want someone to be able to poison the cache and - # require manual eviction from the cache to fix it. - if cache: - secure_adapter = CacheControlAdapter( - cache=SafeFileCache(cache, use_dir_lock=True), - max_retries=retries, - ) - else: - secure_adapter = HTTPAdapter(max_retries=retries) - - # Our Insecure HTTPAdapter disables HTTPS validation. It does not - # support caching (see above) so we'll use it for all http:// URLs as - # well as any https:// host that we've marked as ignoring TLS errors - # for. - insecure_adapter = InsecureHTTPAdapter(max_retries=retries) - - self.mount("https://", secure_adapter) - self.mount("http://", insecure_adapter) - - # Enable file:// urls - self.mount("file://", LocalFSAdapter()) - - # We want to use a non-validating adapter for any requests which are - # deemed insecure. - for host in insecure_hosts: - self.mount("https://{}/".format(host), insecure_adapter) - - def request(self, method, url, *args, **kwargs): - # Allow setting a default timeout on a session - kwargs.setdefault("timeout", self.timeout) - - # Dispatch the actual request - return super(PipSession, self).request(method, url, *args, **kwargs) - - -def get_file_content(url, comes_from=None, session=None): - # type: (str, Optional[str], Optional[PipSession]) -> Tuple[str, Text] - """Gets the content of a file; it may be a filename, file: URL, or - http: URL. Returns (location, content). Content is unicode. - - :param url: File path or url. - :param comes_from: Origin description of requirements. - :param session: Instance of pip.download.PipSession. - """ - if session is None: - raise TypeError( - "get_file_content() missing 1 required keyword argument: 'session'" - ) - - match = _scheme_re.search(url) - if match: - scheme = match.group(1).lower() - if (scheme == 'file' and comes_from and - comes_from.startswith('http')): - raise InstallationError( - 'Requirements file %s references URL %s, which is local' - % (comes_from, url)) - if scheme == 'file': - path = url.split(':', 1)[1] - path = path.replace('\\', '/') - match = _url_slash_drive_re.match(path) - if match: - path = match.group(1) + ':' + path.split('|', 1)[1] - path = urllib_parse.unquote(path) - if path.startswith('/'): - path = '/' + path.lstrip('/') - url = path - else: - # FIXME: catch some errors - resp = session.get(url) - resp.raise_for_status() - return resp.url, resp.text - try: - with open(url, 'rb') as f: - content = auto_decode(f.read()) - except IOError as exc: - raise InstallationError( - 'Could not open requirements file: %s' % str(exc) - ) - return url, content - - -_scheme_re = re.compile(r'^(http|https|file):', re.I) -_url_slash_drive_re = re.compile(r'/*([a-z])\|', re.I) - - -def is_url(name): - # type: (Union[str, Text]) -> bool - """Returns true if the name looks like a URL""" - if ':' not in name: - return False - scheme = name.split(':', 1)[0].lower() - return scheme in ['http', 'https', 'file', 'ftp'] + vcs.all_schemes - - -def url_to_path(url): - # type: (str) -> str - """ - Convert a file: URL to a path. - """ - assert url.startswith('file:'), ( - "You can only turn file: urls into filenames (not %r)" % url) - - _, netloc, path, _, _ = urllib_parse.urlsplit(url) - - # if we have a UNC path, prepend UNC share notation - if netloc: - netloc = '\\\\' + netloc - - path = urllib_request.url2pathname(netloc + path) - return path - - -def path_to_url(path): - # type: (Union[str, Text]) -> str - """ - Convert a path to a file: URL. The path will be made absolute and have - quoted path parts. - """ - path = os.path.normpath(os.path.abspath(path)) - url = urllib_parse.urljoin('file:', urllib_request.pathname2url(path)) - return url - - -def is_archive_file(name): - # type: (str) -> bool - """Return True if `name` is a considered as an archive file.""" - ext = splitext(name)[1].lower() - if ext in ARCHIVE_EXTENSIONS: - return True - return False - - -def unpack_vcs_link(link, location): - vcs_backend = _get_used_vcs_backend(link) - vcs_backend.unpack(location) - - -def _get_used_vcs_backend(link): - for backend in vcs.backends: - if link.scheme in backend.schemes: - vcs_backend = backend(link.url) - return vcs_backend - - -def is_vcs_url(link): - # type: (Link) -> bool - return bool(_get_used_vcs_backend(link)) - - -def is_file_url(link): - # type: (Link) -> bool - return link.url.lower().startswith('file:') - - -def is_dir_url(link): - # type: (Link) -> bool - """Return whether a file:// Link points to a directory. - - ``link`` must not have any other scheme but file://. Call is_file_url() - first. - - """ - link_path = url_to_path(link.url_without_fragment) - return os.path.isdir(link_path) - - -def _progress_indicator(iterable, *args, **kwargs): - return iterable - - -def _download_url( - resp, # type: Response - link, # type: Link - content_file, # type: IO - hashes, # type: Hashes - progress_bar # type: str -): - # type: (...) -> None - try: - total_length = int(resp.headers['content-length']) - except (ValueError, KeyError, TypeError): - total_length = 0 - - cached_resp = getattr(resp, "from_cache", False) - if logger.getEffectiveLevel() > logging.INFO: - show_progress = False - elif cached_resp: - show_progress = False - elif total_length > (40 * 1000): - show_progress = True - elif not total_length: - show_progress = True - else: - show_progress = False - - show_url = link.show_url - - def resp_read(chunk_size): - try: - # Special case for urllib3. - for chunk in resp.raw.stream( - chunk_size, - # We use decode_content=False here because we don't - # want urllib3 to mess with the raw bytes we get - # from the server. If we decompress inside of - # urllib3 then we cannot verify the checksum - # because the checksum will be of the compressed - # file. This breakage will only occur if the - # server adds a Content-Encoding header, which - # depends on how the server was configured: - # - Some servers will notice that the file isn't a - # compressible file and will leave the file alone - # and with an empty Content-Encoding - # - Some servers will notice that the file is - # already compressed and will leave the file - # alone and will add a Content-Encoding: gzip - # header - # - Some servers won't notice anything at all and - # will take a file that's already been compressed - # and compress it again and set the - # Content-Encoding: gzip header - # - # By setting this not to decode automatically we - # hope to eliminate problems with the second case. - decode_content=False): - yield chunk - except AttributeError: - # Standard file-like object. - while True: - chunk = resp.raw.read(chunk_size) - if not chunk: - break - yield chunk - - def written_chunks(chunks): - for chunk in chunks: - content_file.write(chunk) - yield chunk - - progress_indicator = _progress_indicator - - if link.netloc == PyPI.netloc: - url = show_url - else: - url = link.url_without_fragment - - if show_progress: # We don't show progress on cached responses - progress_indicator = DownloadProgressProvider(progress_bar, - max=total_length) - if total_length: - logger.info("Downloading %s (%s)", url, format_size(total_length)) - else: - logger.info("Downloading %s", url) - elif cached_resp: - logger.info("Using cached %s", url) - else: - logger.info("Downloading %s", url) - - logger.debug('Downloading from URL %s', link) - - downloaded_chunks = written_chunks( - progress_indicator( - resp_read(CONTENT_CHUNK_SIZE), - CONTENT_CHUNK_SIZE - ) - ) - if hashes: - hashes.check_against_chunks(downloaded_chunks) - else: - consume(downloaded_chunks) - - -def _copy_file(filename, location, link): - copy = True - download_location = os.path.join(location, link.filename) - if os.path.exists(download_location): - response = ask_path_exists( - 'The file %s exists. (i)gnore, (w)ipe, (b)ackup, (a)abort' % - display_path(download_location), ('i', 'w', 'b', 'a')) - if response == 'i': - copy = False - elif response == 'w': - logger.warning('Deleting %s', display_path(download_location)) - os.remove(download_location) - elif response == 'b': - dest_file = backup_dir(download_location) - logger.warning( - 'Backing up %s to %s', - display_path(download_location), - display_path(dest_file), - ) - shutil.move(download_location, dest_file) - elif response == 'a': - sys.exit(-1) - if copy: - shutil.copy(filename, download_location) - logger.info('Saved %s', display_path(download_location)) - - -def unpack_http_url( - link, # type: Link - location, # type: str - download_dir=None, # type: Optional[str] - session=None, # type: Optional[PipSession] - hashes=None, # type: Optional[Hashes] - progress_bar="on" # type: str -): - # type: (...) -> None - if session is None: - raise TypeError( - "unpack_http_url() missing 1 required keyword argument: 'session'" - ) - - with TempDirectory(kind="unpack") as temp_dir: - # If a download dir is specified, is the file already downloaded there? - already_downloaded_path = None - if download_dir: - already_downloaded_path = _check_download_dir(link, - download_dir, - hashes) - - if already_downloaded_path: - from_path = already_downloaded_path - content_type = mimetypes.guess_type(from_path)[0] - else: - # let's download to a tmp dir - from_path, content_type = _download_http_url(link, - session, - temp_dir.path, - hashes, - progress_bar) - - # unpack the archive to the build dir location. even when only - # downloading archives, they have to be unpacked to parse dependencies - unpack_file(from_path, location, content_type, link) - - # a download dir is specified; let's copy the archive there - if download_dir and not already_downloaded_path: - _copy_file(from_path, download_dir, link) - - if not already_downloaded_path: - os.unlink(from_path) - - -def unpack_file_url( - link, # type: Link - location, # type: str - download_dir=None, # type: Optional[str] - hashes=None # type: Optional[Hashes] -): - # type: (...) -> None - """Unpack link into location. - - If download_dir is provided and link points to a file, make a copy - of the link file inside download_dir. - """ - link_path = url_to_path(link.url_without_fragment) - - # If it's a url to a local directory - if is_dir_url(link): - if os.path.isdir(location): - rmtree(location) - shutil.copytree(link_path, location, symlinks=True) - if download_dir: - logger.info('Link is a directory, ignoring download_dir') - return - - # If --require-hashes is off, `hashes` is either empty, the - # link's embedded hash, or MissingHashes; it is required to - # match. If --require-hashes is on, we are satisfied by any - # hash in `hashes` matching: a URL-based or an option-based - # one; no internet-sourced hash will be in `hashes`. - if hashes: - hashes.check_against_path(link_path) - - # If a download dir is specified, is the file already there and valid? - already_downloaded_path = None - if download_dir: - already_downloaded_path = _check_download_dir(link, - download_dir, - hashes) - - if already_downloaded_path: - from_path = already_downloaded_path - else: - from_path = link_path - - content_type = mimetypes.guess_type(from_path)[0] - - # unpack the archive to the build dir location. even when only downloading - # archives, they have to be unpacked to parse dependencies - unpack_file(from_path, location, content_type, link) - - # a download dir is specified and not already downloaded - if download_dir and not already_downloaded_path: - _copy_file(from_path, download_dir, link) - - -def _copy_dist_from_dir(link_path, location): - """Copy distribution files in `link_path` to `location`. - - Invoked when user requests to install a local directory. E.g.: - - pip install . - pip install ~/dev/git-repos/python-prompt-toolkit - - """ - - # Note: This is currently VERY SLOW if you have a lot of data in the - # directory, because it copies everything with `shutil.copytree`. - # What it should really do is build an sdist and install that. - # See https://github.com/pypa/pip/issues/2195 - - if os.path.isdir(location): - rmtree(location) - - # build an sdist - setup_py = 'setup.py' - sdist_args = [sys.executable] - sdist_args.append('-c') - sdist_args.append(SETUPTOOLS_SHIM % setup_py) - sdist_args.append('sdist') - sdist_args += ['--dist-dir', location] - logger.info('Running setup.py sdist for %s', link_path) - - with indent_log(): - call_subprocess(sdist_args, cwd=link_path, show_stdout=False) - - # unpack sdist into `location` - sdist = os.path.join(location, os.listdir(location)[0]) - logger.info('Unpacking sdist %s into %s', sdist, location) - unpack_file(sdist, location, content_type=None, link=None) - - -class PipXmlrpcTransport(xmlrpc_client.Transport): - """Provide a `xmlrpclib.Transport` implementation via a `PipSession` - object. - """ - - def __init__(self, index_url, session, use_datetime=False): - xmlrpc_client.Transport.__init__(self, use_datetime) - index_parts = urllib_parse.urlparse(index_url) - self._scheme = index_parts.scheme - self._session = session - - def request(self, host, handler, request_body, verbose=False): - parts = (self._scheme, host, handler, None, None, None) - url = urllib_parse.urlunparse(parts) - try: - headers = {'Content-Type': 'text/xml'} - response = self._session.post(url, data=request_body, - headers=headers, stream=True) - response.raise_for_status() - self.verbose = verbose - return self.parse_response(response.raw) - except requests.HTTPError as exc: - logger.critical( - "HTTP error %s while getting %s", - exc.response.status_code, url, - ) - raise - - -def unpack_url( - link, # type: Optional[Link] - location, # type: Optional[str] - download_dir=None, # type: Optional[str] - only_download=False, # type: bool - session=None, # type: Optional[PipSession] - hashes=None, # type: Optional[Hashes] - progress_bar="on" # type: str -): - # type: (...) -> None - """Unpack link. - If link is a VCS link: - if only_download, export into download_dir and ignore location - else unpack into location - for other types of link: - - unpack into location - - if download_dir, copy the file into download_dir - - if only_download, mark location for deletion - - :param hashes: A Hashes object, one of whose embedded hashes must match, - or HashMismatch will be raised. If the Hashes is empty, no matches are - required, and unhashable types of requirements (like VCS ones, which - would ordinarily raise HashUnsupported) are allowed. - """ - # non-editable vcs urls - if is_vcs_url(link): - unpack_vcs_link(link, location) - - # file urls - elif is_file_url(link): - unpack_file_url(link, location, download_dir, hashes=hashes) - - # http urls - else: - if session is None: - session = PipSession() - - unpack_http_url( - link, - location, - download_dir, - session, - hashes=hashes, - progress_bar=progress_bar - ) - if only_download: - write_delete_marker_file(location) - - -def _download_http_url( - link, # type: Link - session, # type: PipSession - temp_dir, # type: str - hashes, # type: Hashes - progress_bar # type: str -): - # type: (...) -> Tuple[str, str] - """Download link url into temp_dir using provided session""" - target_url = link.url.split('#', 1)[0] - try: - resp = session.get( - target_url, - # We use Accept-Encoding: identity here because requests - # defaults to accepting compressed responses. This breaks in - # a variety of ways depending on how the server is configured. - # - Some servers will notice that the file isn't a compressible - # file and will leave the file alone and with an empty - # Content-Encoding - # - Some servers will notice that the file is already - # compressed and will leave the file alone and will add a - # Content-Encoding: gzip header - # - Some servers won't notice anything at all and will take - # a file that's already been compressed and compress it again - # and set the Content-Encoding: gzip header - # By setting this to request only the identity encoding We're - # hoping to eliminate the third case. Hopefully there does not - # exist a server which when given a file will notice it is - # already compressed and that you're not asking for a - # compressed file and will then decompress it before sending - # because if that's the case I don't think it'll ever be - # possible to make this work. - headers={"Accept-Encoding": "identity"}, - stream=True, - ) - resp.raise_for_status() - except requests.HTTPError as exc: - logger.critical( - "HTTP error %s while getting %s", exc.response.status_code, link, - ) - raise - - content_type = resp.headers.get('content-type', '') - filename = link.filename # fallback - # Have a look at the Content-Disposition header for a better guess - content_disposition = resp.headers.get('content-disposition') - if content_disposition: - type, params = cgi.parse_header(content_disposition) - # We use ``or`` here because we don't want to use an "empty" value - # from the filename param. - filename = params.get('filename') or filename - ext = splitext(filename)[1] - if not ext: - ext = mimetypes.guess_extension(content_type) - if ext: - filename += ext - if not ext and link.url != resp.url: - ext = os.path.splitext(resp.url)[1] - if ext: - filename += ext - file_path = os.path.join(temp_dir, filename) - with open(file_path, 'wb') as content_file: - _download_url(resp, link, content_file, hashes, progress_bar) - return file_path, content_type - - -def _check_download_dir(link, download_dir, hashes): - # type: (Link, str, Hashes) -> Optional[str] - """ Check download_dir for previously downloaded file with correct hash - If a correct file is found return its path else None - """ - download_path = os.path.join(download_dir, link.filename) - if os.path.exists(download_path): - # If already downloaded, does its hash match? - logger.info('File was already downloaded %s', download_path) - if hashes: - try: - hashes.check_against_path(download_path) - except HashMismatch: - logger.warning( - 'Previously-downloaded file %s has bad hash. ' - 'Re-downloading.', - download_path - ) - os.unlink(download_path) - return None - return download_path - return None diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/exceptions.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/exceptions.py deleted file mode 100644 index 38ceeea..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/exceptions.py +++ /dev/null @@ -1,274 +0,0 @@ -"""Exceptions used throughout package""" -from __future__ import absolute_import - -from itertools import chain, groupby, repeat - -from pip._vendor.six import iteritems - -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Optional # noqa: F401 - from pip._internal.req.req_install import InstallRequirement # noqa: F401 - - -class PipError(Exception): - """Base pip exception""" - - -class ConfigurationError(PipError): - """General exception in configuration""" - - -class InstallationError(PipError): - """General exception during installation""" - - -class UninstallationError(PipError): - """General exception during uninstallation""" - - -class DistributionNotFound(InstallationError): - """Raised when a distribution cannot be found to satisfy a requirement""" - - -class RequirementsFileParseError(InstallationError): - """Raised when a general error occurs parsing a requirements file line.""" - - -class BestVersionAlreadyInstalled(PipError): - """Raised when the most up-to-date version of a package is already - installed.""" - - -class BadCommand(PipError): - """Raised when virtualenv or a command is not found""" - - -class CommandError(PipError): - """Raised when there is an error in command-line arguments""" - - -class PreviousBuildDirError(PipError): - """Raised when there's a previous conflicting build directory""" - - -class InvalidWheelFilename(InstallationError): - """Invalid wheel filename.""" - - -class UnsupportedWheel(InstallationError): - """Unsupported wheel.""" - - -class HashErrors(InstallationError): - """Multiple HashError instances rolled into one for reporting""" - - def __init__(self): - self.errors = [] - - def append(self, error): - self.errors.append(error) - - def __str__(self): - lines = [] - self.errors.sort(key=lambda e: e.order) - for cls, errors_of_cls in groupby(self.errors, lambda e: e.__class__): - lines.append(cls.head) - lines.extend(e.body() for e in errors_of_cls) - if lines: - return '\n'.join(lines) - - def __nonzero__(self): - return bool(self.errors) - - def __bool__(self): - return self.__nonzero__() - - -class HashError(InstallationError): - """ - A failure to verify a package against known-good hashes - - :cvar order: An int sorting hash exception classes by difficulty of - recovery (lower being harder), so the user doesn't bother fretting - about unpinned packages when he has deeper issues, like VCS - dependencies, to deal with. Also keeps error reports in a - deterministic order. - :cvar head: A section heading for display above potentially many - exceptions of this kind - :ivar req: The InstallRequirement that triggered this error. This is - pasted on after the exception is instantiated, because it's not - typically available earlier. - - """ - req = None # type: Optional[InstallRequirement] - head = '' - - def body(self): - """Return a summary of me for display under the heading. - - This default implementation simply prints a description of the - triggering requirement. - - :param req: The InstallRequirement that provoked this error, with - populate_link() having already been called - - """ - return ' %s' % self._requirement_name() - - def __str__(self): - return '%s\n%s' % (self.head, self.body()) - - def _requirement_name(self): - """Return a description of the requirement that triggered me. - - This default implementation returns long description of the req, with - line numbers - - """ - return str(self.req) if self.req else 'unknown package' - - -class VcsHashUnsupported(HashError): - """A hash was provided for a version-control-system-based requirement, but - we don't have a method for hashing those.""" - - order = 0 - head = ("Can't verify hashes for these requirements because we don't " - "have a way to hash version control repositories:") - - -class DirectoryUrlHashUnsupported(HashError): - """A hash was provided for a version-control-system-based requirement, but - we don't have a method for hashing those.""" - - order = 1 - head = ("Can't verify hashes for these file:// requirements because they " - "point to directories:") - - -class HashMissing(HashError): - """A hash was needed for a requirement but is absent.""" - - order = 2 - head = ('Hashes are required in --require-hashes mode, but they are ' - 'missing from some requirements. Here is a list of those ' - 'requirements along with the hashes their downloaded archives ' - 'actually had. Add lines like these to your requirements files to ' - 'prevent tampering. (If you did not enable --require-hashes ' - 'manually, note that it turns on automatically when any package ' - 'has a hash.)') - - def __init__(self, gotten_hash): - """ - :param gotten_hash: The hash of the (possibly malicious) archive we - just downloaded - """ - self.gotten_hash = gotten_hash - - def body(self): - # Dodge circular import. - from pip._internal.utils.hashes import FAVORITE_HASH - - package = None - if self.req: - # In the case of URL-based requirements, display the original URL - # seen in the requirements file rather than the package name, - # so the output can be directly copied into the requirements file. - package = (self.req.original_link if self.req.original_link - # In case someone feeds something downright stupid - # to InstallRequirement's constructor. - else getattr(self.req, 'req', None)) - return ' %s --hash=%s:%s' % (package or 'unknown package', - FAVORITE_HASH, - self.gotten_hash) - - -class HashUnpinned(HashError): - """A requirement had a hash specified but was not pinned to a specific - version.""" - - order = 3 - head = ('In --require-hashes mode, all requirements must have their ' - 'versions pinned with ==. These do not:') - - -class HashMismatch(HashError): - """ - Distribution file hash values don't match. - - :ivar package_name: The name of the package that triggered the hash - mismatch. Feel free to write to this after the exception is raise to - improve its error message. - - """ - order = 4 - head = ('THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS ' - 'FILE. If you have updated the package versions, please update ' - 'the hashes. Otherwise, examine the package contents carefully; ' - 'someone may have tampered with them.') - - def __init__(self, allowed, gots): - """ - :param allowed: A dict of algorithm names pointing to lists of allowed - hex digests - :param gots: A dict of algorithm names pointing to hashes we - actually got from the files under suspicion - """ - self.allowed = allowed - self.gots = gots - - def body(self): - return ' %s:\n%s' % (self._requirement_name(), - self._hash_comparison()) - - def _hash_comparison(self): - """ - Return a comparison of actual and expected hash values. - - Example:: - - Expected sha256 abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde - or 123451234512345123451234512345123451234512345 - Got bcdefbcdefbcdefbcdefbcdefbcdefbcdefbcdefbcdef - - """ - def hash_then_or(hash_name): - # For now, all the decent hashes have 6-char names, so we can get - # away with hard-coding space literals. - return chain([hash_name], repeat(' or')) - - lines = [] - for hash_name, expecteds in iteritems(self.allowed): - prefix = hash_then_or(hash_name) - lines.extend((' Expected %s %s' % (next(prefix), e)) - for e in expecteds) - lines.append(' Got %s\n' % - self.gots[hash_name].hexdigest()) - prefix = ' or' - return '\n'.join(lines) - - -class UnsupportedPythonVersion(InstallationError): - """Unsupported python version according to Requires-Python package - metadata.""" - - -class ConfigurationFileCouldNotBeLoaded(ConfigurationError): - """When there are errors while loading a configuration file - """ - - def __init__(self, reason="could not be loaded", fname=None, error=None): - super(ConfigurationFileCouldNotBeLoaded, self).__init__(error) - self.reason = reason - self.fname = fname - self.error = error - - def __str__(self): - if self.fname is not None: - message_part = " in {}.".format(self.fname) - else: - assert self.error is not None - message_part = ".\n{}\n".format(self.error.message) - return "Configuration file {}{}".format(self.reason, message_part) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/index.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/index.py deleted file mode 100644 index 9eda3a3..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/index.py +++ /dev/null @@ -1,990 +0,0 @@ -"""Routines related to PyPI, indexes""" -from __future__ import absolute_import - -import cgi -import itertools -import logging -import mimetypes -import os -import posixpath -import re -import sys -from collections import namedtuple - -from pip._vendor import html5lib, requests, six -from pip._vendor.distlib.compat import unescape -from pip._vendor.packaging import specifiers -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.packaging.version import parse as parse_version -from pip._vendor.requests.exceptions import RetryError, SSLError -from pip._vendor.six.moves.urllib import parse as urllib_parse -from pip._vendor.six.moves.urllib import request as urllib_request - -from pip._internal.download import HAS_TLS, is_url, path_to_url, url_to_path -from pip._internal.exceptions import ( - BestVersionAlreadyInstalled, DistributionNotFound, InvalidWheelFilename, - UnsupportedWheel, -) -from pip._internal.models.candidate import InstallationCandidate -from pip._internal.models.format_control import FormatControl -from pip._internal.models.index import PyPI -from pip._internal.models.link import Link -from pip._internal.pep425tags import get_supported -from pip._internal.utils.compat import ipaddress -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import ( - ARCHIVE_EXTENSIONS, SUPPORTED_EXTENSIONS, WHEEL_EXTENSION, normalize_path, - redact_password_from_url, -) -from pip._internal.utils.packaging import check_requires_python -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.wheel import Wheel - -if MYPY_CHECK_RUNNING: - from logging import Logger # noqa: F401 - from typing import ( # noqa: F401 - Tuple, Optional, Any, List, Union, Callable, Set, Sequence, - Iterable, MutableMapping - ) - from pip._vendor.packaging.version import _BaseVersion # noqa: F401 - from pip._vendor.requests import Response # noqa: F401 - from pip._internal.req import InstallRequirement # noqa: F401 - from pip._internal.download import PipSession # noqa: F401 - - SecureOrigin = Tuple[str, str, Optional[str]] - BuildTag = Tuple[Any, ...] # either emply tuple or Tuple[int, str] - CandidateSortingKey = Tuple[int, _BaseVersion, BuildTag, Optional[int]] - -__all__ = ['FormatControl', 'PackageFinder'] - - -SECURE_ORIGINS = [ - # protocol, hostname, port - # Taken from Chrome's list of secure origins (See: http://bit.ly/1qrySKC) - ("https", "*", "*"), - ("*", "localhost", "*"), - ("*", "127.0.0.0/8", "*"), - ("*", "::1/128", "*"), - ("file", "*", None), - # ssh is always secure. - ("ssh", "*", "*"), -] # type: List[SecureOrigin] - - -logger = logging.getLogger(__name__) - - -def _match_vcs_scheme(url): - # type: (str) -> Optional[str] - """Look for VCS schemes in the URL. - - Returns the matched VCS scheme, or None if there's no match. - """ - from pip._internal.vcs import VcsSupport - for scheme in VcsSupport.schemes: - if url.lower().startswith(scheme) and url[len(scheme)] in '+:': - return scheme - return None - - -def _is_url_like_archive(url): - # type: (str) -> bool - """Return whether the URL looks like an archive. - """ - filename = Link(url).filename - for bad_ext in ARCHIVE_EXTENSIONS: - if filename.endswith(bad_ext): - return True - return False - - -class _NotHTML(Exception): - def __init__(self, content_type, request_desc): - # type: (str, str) -> None - super(_NotHTML, self).__init__(content_type, request_desc) - self.content_type = content_type - self.request_desc = request_desc - - -def _ensure_html_header(response): - # type: (Response) -> None - """Check the Content-Type header to ensure the response contains HTML. - - Raises `_NotHTML` if the content type is not text/html. - """ - content_type = response.headers.get("Content-Type", "") - if not content_type.lower().startswith("text/html"): - raise _NotHTML(content_type, response.request.method) - - -class _NotHTTP(Exception): - pass - - -def _ensure_html_response(url, session): - # type: (str, PipSession) -> None - """Send a HEAD request to the URL, and ensure the response contains HTML. - - Raises `_NotHTTP` if the URL is not available for a HEAD request, or - `_NotHTML` if the content type is not text/html. - """ - scheme, netloc, path, query, fragment = urllib_parse.urlsplit(url) - if scheme not in {'http', 'https'}: - raise _NotHTTP() - - resp = session.head(url, allow_redirects=True) - resp.raise_for_status() - - _ensure_html_header(resp) - - -def _get_html_response(url, session): - # type: (str, PipSession) -> Response - """Access an HTML page with GET, and return the response. - - This consists of three parts: - - 1. If the URL looks suspiciously like an archive, send a HEAD first to - check the Content-Type is HTML, to avoid downloading a large file. - Raise `_NotHTTP` if the content type cannot be determined, or - `_NotHTML` if it is not HTML. - 2. Actually perform the request. Raise HTTP exceptions on network failures. - 3. Check the Content-Type header to make sure we got HTML, and raise - `_NotHTML` otherwise. - """ - if _is_url_like_archive(url): - _ensure_html_response(url, session=session) - - logger.debug('Getting page %s', url) - - resp = session.get( - url, - headers={ - "Accept": "text/html", - # We don't want to blindly returned cached data for - # /simple/, because authors generally expecting that - # twine upload && pip install will function, but if - # they've done a pip install in the last ~10 minutes - # it won't. Thus by setting this to zero we will not - # blindly use any cached data, however the benefit of - # using max-age=0 instead of no-cache, is that we will - # still support conditional requests, so we will still - # minimize traffic sent in cases where the page hasn't - # changed at all, we will just always incur the round - # trip for the conditional GET now instead of only - # once per 10 minutes. - # For more information, please see pypa/pip#5670. - "Cache-Control": "max-age=0", - }, - ) - resp.raise_for_status() - - # The check for archives above only works if the url ends with - # something that looks like an archive. However that is not a - # requirement of an url. Unless we issue a HEAD request on every - # url we cannot know ahead of time for sure if something is HTML - # or not. However we can check after we've downloaded it. - _ensure_html_header(resp) - - return resp - - -def _handle_get_page_fail( - link, # type: Link - reason, # type: Union[str, Exception] - meth=None # type: Optional[Callable[..., None]] -): - # type: (...) -> None - if meth is None: - meth = logger.debug - meth("Could not fetch URL %s: %s - skipping", link, reason) - - -def _get_html_page(link, session=None): - # type: (Link, Optional[PipSession]) -> Optional[HTMLPage] - if session is None: - raise TypeError( - "_get_html_page() missing 1 required keyword argument: 'session'" - ) - - url = link.url.split('#', 1)[0] - - # Check for VCS schemes that do not support lookup as web pages. - vcs_scheme = _match_vcs_scheme(url) - if vcs_scheme: - logger.debug('Cannot look at %s URL %s', vcs_scheme, link) - return None - - # Tack index.html onto file:// URLs that point to directories - scheme, _, path, _, _, _ = urllib_parse.urlparse(url) - if (scheme == 'file' and os.path.isdir(urllib_request.url2pathname(path))): - # add trailing slash if not present so urljoin doesn't trim - # final segment - if not url.endswith('/'): - url += '/' - url = urllib_parse.urljoin(url, 'index.html') - logger.debug(' file: URL is directory, getting %s', url) - - try: - resp = _get_html_response(url, session=session) - except _NotHTTP as exc: - logger.debug( - 'Skipping page %s because it looks like an archive, and cannot ' - 'be checked by HEAD.', link, - ) - except _NotHTML as exc: - logger.debug( - 'Skipping page %s because the %s request got Content-Type: %s', - link, exc.request_desc, exc.content_type, - ) - except requests.HTTPError as exc: - _handle_get_page_fail(link, exc) - except RetryError as exc: - _handle_get_page_fail(link, exc) - except SSLError as exc: - reason = "There was a problem confirming the ssl certificate: " - reason += str(exc) - _handle_get_page_fail(link, reason, meth=logger.info) - except requests.ConnectionError as exc: - _handle_get_page_fail(link, "connection error: %s" % exc) - except requests.Timeout: - _handle_get_page_fail(link, "timed out") - else: - return HTMLPage(resp.content, resp.url, resp.headers) - return None - - -class PackageFinder(object): - """This finds packages. - - This is meant to match easy_install's technique for looking for - packages, by reading pages and looking for appropriate links. - """ - - def __init__( - self, - find_links, # type: List[str] - index_urls, # type: List[str] - allow_all_prereleases=False, # type: bool - trusted_hosts=None, # type: Optional[Iterable[str]] - session=None, # type: Optional[PipSession] - format_control=None, # type: Optional[FormatControl] - platform=None, # type: Optional[str] - versions=None, # type: Optional[List[str]] - abi=None, # type: Optional[str] - implementation=None, # type: Optional[str] - prefer_binary=False # type: bool - ): - # type: (...) -> None - """Create a PackageFinder. - - :param format_control: A FormatControl object or None. Used to control - the selection of source packages / binary packages when consulting - the index and links. - :param platform: A string or None. If None, searches for packages - that are supported by the current system. Otherwise, will find - packages that can be built on the platform passed in. These - packages will only be downloaded for distribution: they will - not be built locally. - :param versions: A list of strings or None. This is passed directly - to pep425tags.py in the get_supported() method. - :param abi: A string or None. This is passed directly - to pep425tags.py in the get_supported() method. - :param implementation: A string or None. This is passed directly - to pep425tags.py in the get_supported() method. - """ - if session is None: - raise TypeError( - "PackageFinder() missing 1 required keyword argument: " - "'session'" - ) - - # Build find_links. If an argument starts with ~, it may be - # a local file relative to a home directory. So try normalizing - # it and if it exists, use the normalized version. - # This is deliberately conservative - it might be fine just to - # blindly normalize anything starting with a ~... - self.find_links = [] # type: List[str] - for link in find_links: - if link.startswith('~'): - new_link = normalize_path(link) - if os.path.exists(new_link): - link = new_link - self.find_links.append(link) - - self.index_urls = index_urls - - # These are boring links that have already been logged somehow: - self.logged_links = set() # type: Set[Link] - - self.format_control = format_control or FormatControl(set(), set()) - - # Domains that we won't emit warnings for when not using HTTPS - self.secure_origins = [ - ("*", host, "*") - for host in (trusted_hosts if trusted_hosts else []) - ] # type: List[SecureOrigin] - - # Do we want to allow _all_ pre-releases? - self.allow_all_prereleases = allow_all_prereleases - - # The Session we'll use to make requests - self.session = session - - # The valid tags to check potential found wheel candidates against - self.valid_tags = get_supported( - versions=versions, - platform=platform, - abi=abi, - impl=implementation, - ) - - # Do we prefer old, but valid, binary dist over new source dist - self.prefer_binary = prefer_binary - - # If we don't have TLS enabled, then WARN if anyplace we're looking - # relies on TLS. - if not HAS_TLS: - for link in itertools.chain(self.index_urls, self.find_links): - parsed = urllib_parse.urlparse(link) - if parsed.scheme == "https": - logger.warning( - "pip is configured with locations that require " - "TLS/SSL, however the ssl module in Python is not " - "available." - ) - break - - def get_formatted_locations(self): - # type: () -> str - lines = [] - if self.index_urls and self.index_urls != [PyPI.simple_url]: - lines.append( - "Looking in indexes: {}".format(", ".join( - redact_password_from_url(url) for url in self.index_urls)) - ) - if self.find_links: - lines.append( - "Looking in links: {}".format(", ".join(self.find_links)) - ) - return "\n".join(lines) - - @staticmethod - def _sort_locations(locations, expand_dir=False): - # type: (Sequence[str], bool) -> Tuple[List[str], List[str]] - """ - Sort locations into "files" (archives) and "urls", and return - a pair of lists (files,urls) - """ - files = [] - urls = [] - - # puts the url for the given file path into the appropriate list - def sort_path(path): - url = path_to_url(path) - if mimetypes.guess_type(url, strict=False)[0] == 'text/html': - urls.append(url) - else: - files.append(url) - - for url in locations: - - is_local_path = os.path.exists(url) - is_file_url = url.startswith('file:') - - if is_local_path or is_file_url: - if is_local_path: - path = url - else: - path = url_to_path(url) - if os.path.isdir(path): - if expand_dir: - path = os.path.realpath(path) - for item in os.listdir(path): - sort_path(os.path.join(path, item)) - elif is_file_url: - urls.append(url) - else: - logger.warning( - "Path '{0}' is ignored: " - "it is a directory.".format(path), - ) - elif os.path.isfile(path): - sort_path(path) - else: - logger.warning( - "Url '%s' is ignored: it is neither a file " - "nor a directory.", url, - ) - elif is_url(url): - # Only add url with clear scheme - urls.append(url) - else: - logger.warning( - "Url '%s' is ignored. It is either a non-existing " - "path or lacks a specific scheme.", url, - ) - - return files, urls - - def _candidate_sort_key(self, candidate): - # type: (InstallationCandidate) -> CandidateSortingKey - """ - Function used to generate link sort key for link tuples. - The greater the return value, the more preferred it is. - If not finding wheels, then sorted by version only. - If finding wheels, then the sort order is by version, then: - 1. existing installs - 2. wheels ordered via Wheel.support_index_min(self.valid_tags) - 3. source archives - If prefer_binary was set, then all wheels are sorted above sources. - Note: it was considered to embed this logic into the Link - comparison operators, but then different sdist links - with the same version, would have to be considered equal - """ - support_num = len(self.valid_tags) - build_tag = tuple() # type: BuildTag - binary_preference = 0 - if candidate.location.is_wheel: - # can raise InvalidWheelFilename - wheel = Wheel(candidate.location.filename) - if not wheel.supported(self.valid_tags): - raise UnsupportedWheel( - "%s is not a supported wheel for this platform. It " - "can't be sorted." % wheel.filename - ) - if self.prefer_binary: - binary_preference = 1 - pri = -(wheel.support_index_min(self.valid_tags)) - if wheel.build_tag is not None: - match = re.match(r'^(\d+)(.*)$', wheel.build_tag) - build_tag_groups = match.groups() - build_tag = (int(build_tag_groups[0]), build_tag_groups[1]) - else: # sdist - pri = -(support_num) - return (binary_preference, candidate.version, build_tag, pri) - - def _validate_secure_origin(self, logger, location): - # type: (Logger, Link) -> bool - # Determine if this url used a secure transport mechanism - parsed = urllib_parse.urlparse(str(location)) - origin = (parsed.scheme, parsed.hostname, parsed.port) - - # The protocol to use to see if the protocol matches. - # Don't count the repository type as part of the protocol: in - # cases such as "git+ssh", only use "ssh". (I.e., Only verify against - # the last scheme.) - protocol = origin[0].rsplit('+', 1)[-1] - - # Determine if our origin is a secure origin by looking through our - # hardcoded list of secure origins, as well as any additional ones - # configured on this PackageFinder instance. - for secure_origin in (SECURE_ORIGINS + self.secure_origins): - if protocol != secure_origin[0] and secure_origin[0] != "*": - continue - - try: - # We need to do this decode dance to ensure that we have a - # unicode object, even on Python 2.x. - addr = ipaddress.ip_address( - origin[1] - if ( - isinstance(origin[1], six.text_type) or - origin[1] is None - ) - else origin[1].decode("utf8") - ) - network = ipaddress.ip_network( - secure_origin[1] - if isinstance(secure_origin[1], six.text_type) - # setting secure_origin[1] to proper Union[bytes, str] - # creates problems in other places - else secure_origin[1].decode("utf8") # type: ignore - ) - except ValueError: - # We don't have both a valid address or a valid network, so - # we'll check this origin against hostnames. - if (origin[1] and - origin[1].lower() != secure_origin[1].lower() and - secure_origin[1] != "*"): - continue - else: - # We have a valid address and network, so see if the address - # is contained within the network. - if addr not in network: - continue - - # Check to see if the port patches - if (origin[2] != secure_origin[2] and - secure_origin[2] != "*" and - secure_origin[2] is not None): - continue - - # If we've gotten here, then this origin matches the current - # secure origin and we should return True - return True - - # If we've gotten to this point, then the origin isn't secure and we - # will not accept it as a valid location to search. We will however - # log a warning that we are ignoring it. - logger.warning( - "The repository located at %s is not a trusted or secure host and " - "is being ignored. If this repository is available via HTTPS we " - "recommend you use HTTPS instead, otherwise you may silence " - "this warning and allow it anyway with '--trusted-host %s'.", - parsed.hostname, - parsed.hostname, - ) - - return False - - def _get_index_urls_locations(self, project_name): - # type: (str) -> List[str] - """Returns the locations found via self.index_urls - - Checks the url_name on the main (first in the list) index and - use this url_name to produce all locations - """ - - def mkurl_pypi_url(url): - loc = posixpath.join( - url, - urllib_parse.quote(canonicalize_name(project_name))) - # For maximum compatibility with easy_install, ensure the path - # ends in a trailing slash. Although this isn't in the spec - # (and PyPI can handle it without the slash) some other index - # implementations might break if they relied on easy_install's - # behavior. - if not loc.endswith('/'): - loc = loc + '/' - return loc - - return [mkurl_pypi_url(url) for url in self.index_urls] - - def find_all_candidates(self, project_name): - # type: (str) -> List[Optional[InstallationCandidate]] - """Find all available InstallationCandidate for project_name - - This checks index_urls and find_links. - All versions found are returned as an InstallationCandidate list. - - See _link_package_versions for details on which files are accepted - """ - index_locations = self._get_index_urls_locations(project_name) - index_file_loc, index_url_loc = self._sort_locations(index_locations) - fl_file_loc, fl_url_loc = self._sort_locations( - self.find_links, expand_dir=True, - ) - - file_locations = (Link(url) for url in itertools.chain( - index_file_loc, fl_file_loc, - )) - - # We trust every url that the user has given us whether it was given - # via --index-url or --find-links. - # We want to filter out any thing which does not have a secure origin. - url_locations = [ - link for link in itertools.chain( - (Link(url) for url in index_url_loc), - (Link(url) for url in fl_url_loc), - ) - if self._validate_secure_origin(logger, link) - ] - - logger.debug('%d location(s) to search for versions of %s:', - len(url_locations), project_name) - - for location in url_locations: - logger.debug('* %s', location) - - canonical_name = canonicalize_name(project_name) - formats = self.format_control.get_allowed_formats(canonical_name) - search = Search(project_name, canonical_name, formats) - find_links_versions = self._package_versions( - # We trust every directly linked archive in find_links - (Link(url, '-f') for url in self.find_links), - search - ) - - page_versions = [] - for page in self._get_pages(url_locations, project_name): - logger.debug('Analyzing links from page %s', page.url) - with indent_log(): - page_versions.extend( - self._package_versions(page.iter_links(), search) - ) - - file_versions = self._package_versions(file_locations, search) - if file_versions: - file_versions.sort(reverse=True) - logger.debug( - 'Local files found: %s', - ', '.join([ - url_to_path(candidate.location.url) - for candidate in file_versions - ]) - ) - - # This is an intentional priority ordering - return file_versions + find_links_versions + page_versions - - def find_requirement(self, req, upgrade): - # type: (InstallRequirement, bool) -> Optional[Link] - """Try to find a Link matching req - - Expects req, an InstallRequirement and upgrade, a boolean - Returns a Link if found, - Raises DistributionNotFound or BestVersionAlreadyInstalled otherwise - """ - all_candidates = self.find_all_candidates(req.name) - - # Filter out anything which doesn't match our specifier - compatible_versions = set( - req.specifier.filter( - # We turn the version object into a str here because otherwise - # when we're debundled but setuptools isn't, Python will see - # packaging.version.Version and - # pkg_resources._vendor.packaging.version.Version as different - # types. This way we'll use a str as a common data interchange - # format. If we stop using the pkg_resources provided specifier - # and start using our own, we can drop the cast to str(). - [str(c.version) for c in all_candidates], - prereleases=( - self.allow_all_prereleases - if self.allow_all_prereleases else None - ), - ) - ) - applicable_candidates = [ - # Again, converting to str to deal with debundling. - c for c in all_candidates if str(c.version) in compatible_versions - ] - - if applicable_candidates: - best_candidate = max(applicable_candidates, - key=self._candidate_sort_key) - else: - best_candidate = None - - if req.satisfied_by is not None: - installed_version = parse_version(req.satisfied_by.version) - else: - installed_version = None - - if installed_version is None and best_candidate is None: - logger.critical( - 'Could not find a version that satisfies the requirement %s ' - '(from versions: %s)', - req, - ', '.join( - sorted( - {str(c.version) for c in all_candidates}, - key=parse_version, - ) - ) - ) - - raise DistributionNotFound( - 'No matching distribution found for %s' % req - ) - - best_installed = False - if installed_version and ( - best_candidate is None or - best_candidate.version <= installed_version): - best_installed = True - - if not upgrade and installed_version is not None: - if best_installed: - logger.debug( - 'Existing installed version (%s) is most up-to-date and ' - 'satisfies requirement', - installed_version, - ) - else: - logger.debug( - 'Existing installed version (%s) satisfies requirement ' - '(most up-to-date version is %s)', - installed_version, - best_candidate.version, - ) - return None - - if best_installed: - # We have an existing version, and its the best version - logger.debug( - 'Installed version (%s) is most up-to-date (past versions: ' - '%s)', - installed_version, - ', '.join(sorted(compatible_versions, key=parse_version)) or - "none", - ) - raise BestVersionAlreadyInstalled - - logger.debug( - 'Using version %s (newest of versions: %s)', - best_candidate.version, - ', '.join(sorted(compatible_versions, key=parse_version)) - ) - return best_candidate.location - - def _get_pages(self, locations, project_name): - # type: (Iterable[Link], str) -> Iterable[HTMLPage] - """ - Yields (page, page_url) from the given locations, skipping - locations that have errors. - """ - seen = set() # type: Set[Link] - for location in locations: - if location in seen: - continue - seen.add(location) - - page = _get_html_page(location, session=self.session) - if page is None: - continue - - yield page - - _py_version_re = re.compile(r'-py([123]\.?[0-9]?)$') - - def _sort_links(self, links): - # type: (Iterable[Link]) -> List[Link] - """ - Returns elements of links in order, non-egg links first, egg links - second, while eliminating duplicates - """ - eggs, no_eggs = [], [] - seen = set() # type: Set[Link] - for link in links: - if link not in seen: - seen.add(link) - if link.egg_fragment: - eggs.append(link) - else: - no_eggs.append(link) - return no_eggs + eggs - - def _package_versions( - self, - links, # type: Iterable[Link] - search # type: Search - ): - # type: (...) -> List[Optional[InstallationCandidate]] - result = [] - for link in self._sort_links(links): - v = self._link_package_versions(link, search) - if v is not None: - result.append(v) - return result - - def _log_skipped_link(self, link, reason): - # type: (Link, str) -> None - if link not in self.logged_links: - logger.debug('Skipping link %s; %s', link, reason) - self.logged_links.add(link) - - def _link_package_versions(self, link, search): - # type: (Link, Search) -> Optional[InstallationCandidate] - """Return an InstallationCandidate or None""" - version = None - if link.egg_fragment: - egg_info = link.egg_fragment - ext = link.ext - else: - egg_info, ext = link.splitext() - if not ext: - self._log_skipped_link(link, 'not a file') - return None - if ext not in SUPPORTED_EXTENSIONS: - self._log_skipped_link( - link, 'unsupported archive format: %s' % ext, - ) - return None - if "binary" not in search.formats and ext == WHEEL_EXTENSION: - self._log_skipped_link( - link, 'No binaries permitted for %s' % search.supplied, - ) - return None - if "macosx10" in link.path and ext == '.zip': - self._log_skipped_link(link, 'macosx10 one') - return None - if ext == WHEEL_EXTENSION: - try: - wheel = Wheel(link.filename) - except InvalidWheelFilename: - self._log_skipped_link(link, 'invalid wheel filename') - return None - if canonicalize_name(wheel.name) != search.canonical: - self._log_skipped_link( - link, 'wrong project name (not %s)' % search.supplied) - return None - - if not wheel.supported(self.valid_tags): - self._log_skipped_link( - link, 'it is not compatible with this Python') - return None - - version = wheel.version - - # This should be up by the search.ok_binary check, but see issue 2700. - if "source" not in search.formats and ext != WHEEL_EXTENSION: - self._log_skipped_link( - link, 'No sources permitted for %s' % search.supplied, - ) - return None - - if not version: - version = _egg_info_matches(egg_info, search.canonical) - if not version: - self._log_skipped_link( - link, 'Missing project version for %s' % search.supplied) - return None - - match = self._py_version_re.search(version) - if match: - version = version[:match.start()] - py_version = match.group(1) - if py_version != sys.version[:3]: - self._log_skipped_link( - link, 'Python version is incorrect') - return None - try: - support_this_python = check_requires_python(link.requires_python) - except specifiers.InvalidSpecifier: - logger.debug("Package %s has an invalid Requires-Python entry: %s", - link.filename, link.requires_python) - support_this_python = True - - if not support_this_python: - logger.debug("The package %s is incompatible with the python " - "version in use. Acceptable python versions are: %s", - link, link.requires_python) - return None - logger.debug('Found link %s, version: %s', link, version) - - return InstallationCandidate(search.supplied, version, link) - - -def _find_name_version_sep(egg_info, canonical_name): - # type: (str, str) -> int - """Find the separator's index based on the package's canonical name. - - `egg_info` must be an egg info string for the given package, and - `canonical_name` must be the package's canonical name. - - This function is needed since the canonicalized name does not necessarily - have the same length as the egg info's name part. An example:: - - >>> egg_info = 'foo__bar-1.0' - >>> canonical_name = 'foo-bar' - >>> _find_name_version_sep(egg_info, canonical_name) - 8 - """ - # Project name and version must be separated by one single dash. Find all - # occurrences of dashes; if the string in front of it matches the canonical - # name, this is the one separating the name and version parts. - for i, c in enumerate(egg_info): - if c != "-": - continue - if canonicalize_name(egg_info[:i]) == canonical_name: - return i - raise ValueError("{} does not match {}".format(egg_info, canonical_name)) - - -def _egg_info_matches(egg_info, canonical_name): - # type: (str, str) -> Optional[str] - """Pull the version part out of a string. - - :param egg_info: The string to parse. E.g. foo-2.1 - :param canonical_name: The canonicalized name of the package this - belongs to. - """ - try: - version_start = _find_name_version_sep(egg_info, canonical_name) + 1 - except ValueError: - return None - version = egg_info[version_start:] - if not version: - return None - return version - - -def _determine_base_url(document, page_url): - """Determine the HTML document's base URL. - - This looks for a ```` tag in the HTML document. If present, its href - attribute denotes the base URL of anchor tags in the document. If there is - no such tag (or if it does not have a valid href attribute), the HTML - file's URL is used as the base URL. - - :param document: An HTML document representation. The current - implementation expects the result of ``html5lib.parse()``. - :param page_url: The URL of the HTML document. - """ - for base in document.findall(".//base"): - href = base.get("href") - if href is not None: - return href - return page_url - - -def _get_encoding_from_headers(headers): - """Determine if we have any encoding information in our headers. - """ - if headers and "Content-Type" in headers: - content_type, params = cgi.parse_header(headers["Content-Type"]) - if "charset" in params: - return params['charset'] - return None - - -_CLEAN_LINK_RE = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I) - - -def _clean_link(url): - # type: (str) -> str - """Makes sure a link is fully encoded. That is, if a ' ' shows up in - the link, it will be rewritten to %20 (while not over-quoting - % or other characters).""" - return _CLEAN_LINK_RE.sub(lambda match: '%%%2x' % ord(match.group(0)), url) - - -class HTMLPage(object): - """Represents one page, along with its URL""" - - def __init__(self, content, url, headers=None): - # type: (bytes, str, MutableMapping[str, str]) -> None - self.content = content - self.url = url - self.headers = headers - - def __str__(self): - return redact_password_from_url(self.url) - - def iter_links(self): - # type: () -> Iterable[Link] - """Yields all links in the page""" - document = html5lib.parse( - self.content, - transport_encoding=_get_encoding_from_headers(self.headers), - namespaceHTMLElements=False, - ) - base_url = _determine_base_url(document, self.url) - for anchor in document.findall(".//a"): - if anchor.get("href"): - href = anchor.get("href") - url = _clean_link(urllib_parse.urljoin(base_url, href)) - pyrequire = anchor.get('data-requires-python') - pyrequire = unescape(pyrequire) if pyrequire else None - yield Link(url, self.url, requires_python=pyrequire) - - -Search = namedtuple('Search', 'supplied canonical formats') -"""Capture key aspects of a search. - -:attribute supplied: The user supplied package. -:attribute canonical: The canonical package name. -:attribute formats: The formats allowed for this package. Should be a set - with 'binary' or 'source' or both in it. -""" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/locations.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/locations.py deleted file mode 100644 index c6e2a3e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/locations.py +++ /dev/null @@ -1,211 +0,0 @@ -"""Locations where we look for configs, install stuff, etc""" -from __future__ import absolute_import - -import os -import os.path -import platform -import site -import sys -import sysconfig -from distutils import sysconfig as distutils_sysconfig -from distutils.command.install import SCHEME_KEYS # type: ignore - -from pip._internal.utils import appdirs -from pip._internal.utils.compat import WINDOWS, expanduser -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Any, Union, Dict, List, Optional # noqa: F401 - - -# Application Directories -USER_CACHE_DIR = appdirs.user_cache_dir("pip") - - -DELETE_MARKER_MESSAGE = '''\ -This file is placed here by pip to indicate the source was put -here by pip. - -Once this package is successfully installed this source code will be -deleted (unless you remove this file). -''' -PIP_DELETE_MARKER_FILENAME = 'pip-delete-this-directory.txt' - - -def write_delete_marker_file(directory): - # type: (str) -> None - """ - Write the pip delete marker file into this directory. - """ - filepath = os.path.join(directory, PIP_DELETE_MARKER_FILENAME) - with open(filepath, 'w') as marker_fp: - marker_fp.write(DELETE_MARKER_MESSAGE) - - -def running_under_virtualenv(): - # type: () -> bool - """ - Return True if we're running inside a virtualenv, False otherwise. - - """ - if hasattr(sys, 'real_prefix'): - return True - elif sys.prefix != getattr(sys, "base_prefix", sys.prefix): - return True - - return False - - -def virtualenv_no_global(): - # type: () -> bool - """ - Return True if in a venv and no system site packages. - """ - # this mirrors the logic in virtualenv.py for locating the - # no-global-site-packages.txt file - site_mod_dir = os.path.dirname(os.path.abspath(site.__file__)) - no_global_file = os.path.join(site_mod_dir, 'no-global-site-packages.txt') - if running_under_virtualenv() and os.path.isfile(no_global_file): - return True - else: - return False - - -if running_under_virtualenv(): - src_prefix = os.path.join(sys.prefix, 'src') -else: - # FIXME: keep src in cwd for now (it is not a temporary folder) - try: - src_prefix = os.path.join(os.getcwd(), 'src') - except OSError: - # In case the current working directory has been renamed or deleted - sys.exit( - "The folder you are executing pip from can no longer be found." - ) - -# under macOS + virtualenv sys.prefix is not properly resolved -# it is something like /path/to/python/bin/.. -# Note: using realpath due to tmp dirs on OSX being symlinks -src_prefix = os.path.abspath(src_prefix) - -# FIXME doesn't account for venv linked to global site-packages - -site_packages = sysconfig.get_path("purelib") # type: Optional[str] - -# This is because of a bug in PyPy's sysconfig module, see -# https://bitbucket.org/pypy/pypy/issues/2506/sysconfig-returns-incorrect-paths -# for more information. -if platform.python_implementation().lower() == "pypy": - site_packages = distutils_sysconfig.get_python_lib() -try: - # Use getusersitepackages if this is present, as it ensures that the - # value is initialised properly. - user_site = site.getusersitepackages() -except AttributeError: - user_site = site.USER_SITE -user_dir = expanduser('~') -if WINDOWS: - bin_py = os.path.join(sys.prefix, 'Scripts') - bin_user = os.path.join(user_site, 'Scripts') - # buildout uses 'bin' on Windows too? - if not os.path.exists(bin_py): - bin_py = os.path.join(sys.prefix, 'bin') - bin_user = os.path.join(user_site, 'bin') - - config_basename = 'pip.ini' - - legacy_storage_dir = os.path.join(user_dir, 'pip') - legacy_config_file = os.path.join( - legacy_storage_dir, - config_basename, - ) -else: - bin_py = os.path.join(sys.prefix, 'bin') - bin_user = os.path.join(user_site, 'bin') - - config_basename = 'pip.conf' - - legacy_storage_dir = os.path.join(user_dir, '.pip') - legacy_config_file = os.path.join( - legacy_storage_dir, - config_basename, - ) - # Forcing to use /usr/local/bin for standard macOS framework installs - # Also log to ~/Library/Logs/ for use with the Console.app log viewer - if sys.platform[:6] == 'darwin' and sys.prefix[:16] == '/System/Library/': - bin_py = '/usr/local/bin' - -site_config_files = [ - os.path.join(path, config_basename) - for path in appdirs.site_config_dirs('pip') -] - -venv_config_file = os.path.join(sys.prefix, config_basename) -new_config_file = os.path.join(appdirs.user_config_dir("pip"), config_basename) - - -def distutils_scheme(dist_name, user=False, home=None, root=None, - isolated=False, prefix=None): - # type:(str, bool, str, str, bool, str) -> dict - """ - Return a distutils install scheme - """ - from distutils.dist import Distribution - - scheme = {} - - if isolated: - extra_dist_args = {"script_args": ["--no-user-cfg"]} - else: - extra_dist_args = {} - dist_args = {'name': dist_name} # type: Dict[str, Union[str, List[str]]] - dist_args.update(extra_dist_args) - - d = Distribution(dist_args) - # Ignoring, typeshed issue reported python/typeshed/issues/2567 - d.parse_config_files() - # NOTE: Ignoring type since mypy can't find attributes on 'Command' - i = d.get_command_obj('install', create=True) # type: Any - assert i is not None - # NOTE: setting user or home has the side-effect of creating the home dir - # or user base for installations during finalize_options() - # ideally, we'd prefer a scheme class that has no side-effects. - assert not (user and prefix), "user={} prefix={}".format(user, prefix) - i.user = user or i.user - if user: - i.prefix = "" - i.prefix = prefix or i.prefix - i.home = home or i.home - i.root = root or i.root - i.finalize_options() - for key in SCHEME_KEYS: - scheme[key] = getattr(i, 'install_' + key) - - # install_lib specified in setup.cfg should install *everything* - # into there (i.e. it takes precedence over both purelib and - # platlib). Note, i.install_lib is *always* set after - # finalize_options(); we only want to override here if the user - # has explicitly requested it hence going back to the config - - # Ignoring, typeshed issue reported python/typeshed/issues/2567 - if 'install_lib' in d.get_option_dict('install'): # type: ignore - scheme.update(dict(purelib=i.install_lib, platlib=i.install_lib)) - - if running_under_virtualenv(): - scheme['headers'] = os.path.join( - sys.prefix, - 'include', - 'site', - 'python' + sys.version[:3], - dist_name, - ) - - if root is not None: - path_no_drive = os.path.splitdrive( - os.path.abspath(scheme["headers"]))[1] - scheme["headers"] = os.path.join( - root, - path_no_drive[1:], - ) - - return scheme diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/__init__.py deleted file mode 100644 index 7855226..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -"""A package that contains models that represent entities. -""" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/candidate.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/candidate.py deleted file mode 100644 index 4475458..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/candidate.py +++ /dev/null @@ -1,31 +0,0 @@ -from pip._vendor.packaging.version import parse as parse_version - -from pip._internal.utils.models import KeyBasedCompareMixin -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from pip._vendor.packaging.version import _BaseVersion # noqa: F401 - from pip._internal.models.link import Link # noqa: F401 - from typing import Any, Union # noqa: F401 - - -class InstallationCandidate(KeyBasedCompareMixin): - """Represents a potential "candidate" for installation. - """ - - def __init__(self, project, version, location): - # type: (Any, str, Link) -> None - self.project = project - self.version = parse_version(version) # type: _BaseVersion - self.location = location - - super(InstallationCandidate, self).__init__( - key=(self.project, self.version, self.location), - defining_class=InstallationCandidate - ) - - def __repr__(self): - # type: () -> str - return "".format( - self.project, self.version, self.location, - ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/format_control.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/format_control.py deleted file mode 100644 index 971a391..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/format_control.py +++ /dev/null @@ -1,73 +0,0 @@ -from pip._vendor.packaging.utils import canonicalize_name - -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Optional, Set, FrozenSet # noqa: F401 - - -class FormatControl(object): - """Helper for managing formats from which a package can be installed. - """ - - def __init__(self, no_binary=None, only_binary=None): - # type: (Optional[Set], Optional[Set]) -> None - if no_binary is None: - no_binary = set() - if only_binary is None: - only_binary = set() - - self.no_binary = no_binary - self.only_binary = only_binary - - def __eq__(self, other): - return self.__dict__ == other.__dict__ - - def __ne__(self, other): - return not self.__eq__(other) - - def __repr__(self): - return "{}({}, {})".format( - self.__class__.__name__, - self.no_binary, - self.only_binary - ) - - @staticmethod - def handle_mutual_excludes(value, target, other): - # type: (str, Optional[Set], Optional[Set]) -> None - new = value.split(',') - while ':all:' in new: - other.clear() - target.clear() - target.add(':all:') - del new[:new.index(':all:') + 1] - # Without a none, we want to discard everything as :all: covers it - if ':none:' not in new: - return - for name in new: - if name == ':none:': - target.clear() - continue - name = canonicalize_name(name) - other.discard(name) - target.add(name) - - def get_allowed_formats(self, canonical_name): - # type: (str) -> FrozenSet - result = {"binary", "source"} - if canonical_name in self.only_binary: - result.discard('source') - elif canonical_name in self.no_binary: - result.discard('binary') - elif ':all:' in self.only_binary: - result.discard('source') - elif ':all:' in self.no_binary: - result.discard('binary') - return frozenset(result) - - def disallow_binaries(self): - # type: () -> None - self.handle_mutual_excludes( - ':all:', self.no_binary, self.only_binary, - ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/index.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/index.py deleted file mode 100644 index ead1efb..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/index.py +++ /dev/null @@ -1,31 +0,0 @@ -from pip._vendor.six.moves.urllib import parse as urllib_parse - - -class PackageIndex(object): - """Represents a Package Index and provides easier access to endpoints - """ - - def __init__(self, url, file_storage_domain): - # type: (str, str) -> None - super(PackageIndex, self).__init__() - self.url = url - self.netloc = urllib_parse.urlsplit(url).netloc - self.simple_url = self._url_for_path('simple') - self.pypi_url = self._url_for_path('pypi') - - # This is part of a temporary hack used to block installs of PyPI - # packages which depend on external urls only necessary until PyPI can - # block such packages themselves - self.file_storage_domain = file_storage_domain - - def _url_for_path(self, path): - # type: (str) -> str - return urllib_parse.urljoin(self.url, path) - - -PyPI = PackageIndex( - 'https://pypi.org/', file_storage_domain='files.pythonhosted.org' -) -TestPyPI = PackageIndex( - 'https://test.pypi.org/', file_storage_domain='test-files.pythonhosted.org' -) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/link.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/link.py deleted file mode 100644 index ad2f93e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/link.py +++ /dev/null @@ -1,163 +0,0 @@ -import posixpath -import re - -from pip._vendor.six.moves.urllib import parse as urllib_parse - -from pip._internal.download import path_to_url -from pip._internal.utils.misc import ( - WHEEL_EXTENSION, redact_password_from_url, splitext, -) -from pip._internal.utils.models import KeyBasedCompareMixin -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Optional, Tuple, Union, Text # noqa: F401 - from pip._internal.index import HTMLPage # noqa: F401 - - -class Link(KeyBasedCompareMixin): - """Represents a parsed link from a Package Index's simple URL - """ - - def __init__(self, url, comes_from=None, requires_python=None): - # type: (str, Optional[Union[str, HTMLPage]], Optional[str]) -> None - """ - url: - url of the resource pointed to (href of the link) - comes_from: - instance of HTMLPage where the link was found, or string. - requires_python: - String containing the `Requires-Python` metadata field, specified - in PEP 345. This may be specified by a data-requires-python - attribute in the HTML link tag, as described in PEP 503. - """ - - # url can be a UNC windows share - if url.startswith('\\\\'): - url = path_to_url(url) - - self.url = url - self.comes_from = comes_from - self.requires_python = requires_python if requires_python else None - - super(Link, self).__init__( - key=(self.url), - defining_class=Link - ) - - def __str__(self): - if self.requires_python: - rp = ' (requires-python:%s)' % self.requires_python - else: - rp = '' - if self.comes_from: - return '%s (from %s)%s' % (redact_password_from_url(self.url), - self.comes_from, rp) - else: - return redact_password_from_url(str(self.url)) - - def __repr__(self): - return '' % self - - @property - def filename(self): - # type: () -> str - _, netloc, path, _, _ = urllib_parse.urlsplit(self.url) - name = posixpath.basename(path.rstrip('/')) or netloc - name = urllib_parse.unquote(name) - assert name, ('URL %r produced no filename' % self.url) - return name - - @property - def scheme(self): - # type: () -> str - return urllib_parse.urlsplit(self.url)[0] - - @property - def netloc(self): - # type: () -> str - return urllib_parse.urlsplit(self.url)[1] - - @property - def path(self): - # type: () -> str - return urllib_parse.unquote(urllib_parse.urlsplit(self.url)[2]) - - def splitext(self): - # type: () -> Tuple[str, str] - return splitext(posixpath.basename(self.path.rstrip('/'))) - - @property - def ext(self): - # type: () -> str - return self.splitext()[1] - - @property - def url_without_fragment(self): - # type: () -> str - scheme, netloc, path, query, fragment = urllib_parse.urlsplit(self.url) - return urllib_parse.urlunsplit((scheme, netloc, path, query, None)) - - _egg_fragment_re = re.compile(r'[#&]egg=([^&]*)') - - @property - def egg_fragment(self): - # type: () -> Optional[str] - match = self._egg_fragment_re.search(self.url) - if not match: - return None - return match.group(1) - - _subdirectory_fragment_re = re.compile(r'[#&]subdirectory=([^&]*)') - - @property - def subdirectory_fragment(self): - # type: () -> Optional[str] - match = self._subdirectory_fragment_re.search(self.url) - if not match: - return None - return match.group(1) - - _hash_re = re.compile( - r'(sha1|sha224|sha384|sha256|sha512|md5)=([a-f0-9]+)' - ) - - @property - def hash(self): - # type: () -> Optional[str] - match = self._hash_re.search(self.url) - if match: - return match.group(2) - return None - - @property - def hash_name(self): - # type: () -> Optional[str] - match = self._hash_re.search(self.url) - if match: - return match.group(1) - return None - - @property - def show_url(self): - # type: () -> Optional[str] - return posixpath.basename(self.url.split('#', 1)[0].split('?', 1)[0]) - - @property - def is_wheel(self): - # type: () -> bool - return self.ext == WHEEL_EXTENSION - - @property - def is_artifact(self): - # type: () -> bool - """ - Determines if this points to an actual artifact (e.g. a tarball) or if - it points to an "abstract" thing like a path or a VCS location. - """ - from pip._internal.vcs import vcs - - if self.scheme in vcs.all_schemes: - return False - - return True diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/check.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/check.py deleted file mode 100644 index 0b56eda..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/check.py +++ /dev/null @@ -1,155 +0,0 @@ -"""Validation of dependencies of packages -""" - -import logging -from collections import namedtuple - -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.pkg_resources import RequirementParseError - -from pip._internal.operations.prepare import make_abstract_dist -from pip._internal.utils.misc import get_installed_distributions -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -logger = logging.getLogger(__name__) - -if MYPY_CHECK_RUNNING: - from pip._internal.req.req_install import InstallRequirement # noqa: F401 - from typing import ( # noqa: F401 - Any, Callable, Dict, Optional, Set, Tuple, List - ) - - # Shorthands - PackageSet = Dict[str, 'PackageDetails'] - Missing = Tuple[str, Any] - Conflicting = Tuple[str, str, Any] - - MissingDict = Dict[str, List[Missing]] - ConflictingDict = Dict[str, List[Conflicting]] - CheckResult = Tuple[MissingDict, ConflictingDict] - -PackageDetails = namedtuple('PackageDetails', ['version', 'requires']) - - -def create_package_set_from_installed(**kwargs): - # type: (**Any) -> Tuple[PackageSet, bool] - """Converts a list of distributions into a PackageSet. - """ - # Default to using all packages installed on the system - if kwargs == {}: - kwargs = {"local_only": False, "skip": ()} - - package_set = {} - problems = False - for dist in get_installed_distributions(**kwargs): - name = canonicalize_name(dist.project_name) - try: - package_set[name] = PackageDetails(dist.version, dist.requires()) - except RequirementParseError as e: - # Don't crash on broken metadata - logging.warning("Error parsing requirements for %s: %s", name, e) - problems = True - return package_set, problems - - -def check_package_set(package_set, should_ignore=None): - # type: (PackageSet, Optional[Callable[[str], bool]]) -> CheckResult - """Check if a package set is consistent - - If should_ignore is passed, it should be a callable that takes a - package name and returns a boolean. - """ - if should_ignore is None: - def should_ignore(name): - return False - - missing = dict() - conflicting = dict() - - for package_name in package_set: - # Info about dependencies of package_name - missing_deps = set() # type: Set[Missing] - conflicting_deps = set() # type: Set[Conflicting] - - if should_ignore(package_name): - continue - - for req in package_set[package_name].requires: - name = canonicalize_name(req.project_name) # type: str - - # Check if it's missing - if name not in package_set: - missed = True - if req.marker is not None: - missed = req.marker.evaluate() - if missed: - missing_deps.add((name, req)) - continue - - # Check if there's a conflict - version = package_set[name].version # type: str - if not req.specifier.contains(version, prereleases=True): - conflicting_deps.add((name, version, req)) - - if missing_deps: - missing[package_name] = sorted(missing_deps, key=str) - if conflicting_deps: - conflicting[package_name] = sorted(conflicting_deps, key=str) - - return missing, conflicting - - -def check_install_conflicts(to_install): - # type: (List[InstallRequirement]) -> Tuple[PackageSet, CheckResult] - """For checking if the dependency graph would be consistent after \ - installing given requirements - """ - # Start from the current state - package_set, _ = create_package_set_from_installed() - # Install packages - would_be_installed = _simulate_installation_of(to_install, package_set) - - # Only warn about directly-dependent packages; create a whitelist of them - whitelist = _create_whitelist(would_be_installed, package_set) - - return ( - package_set, - check_package_set( - package_set, should_ignore=lambda name: name not in whitelist - ) - ) - - -def _simulate_installation_of(to_install, package_set): - # type: (List[InstallRequirement], PackageSet) -> Set[str] - """Computes the version of packages after installing to_install. - """ - - # Keep track of packages that were installed - installed = set() - - # Modify it as installing requirement_set would (assuming no errors) - for inst_req in to_install: - dist = make_abstract_dist(inst_req).dist() - name = canonicalize_name(dist.key) - package_set[name] = PackageDetails(dist.version, dist.requires()) - - installed.add(name) - - return installed - - -def _create_whitelist(would_be_installed, package_set): - # type: (Set[str], PackageSet) -> Set[str] - packages_affected = set(would_be_installed) - - for package_name in package_set: - if package_name in packages_affected: - continue - - for req in package_set[package_name].requires: - if canonicalize_name(req.name) in packages_affected: - packages_affected.add(package_name) - break - - return packages_affected diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/freeze.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/freeze.py deleted file mode 100644 index 388bb73..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/freeze.py +++ /dev/null @@ -1,247 +0,0 @@ -from __future__ import absolute_import - -import collections -import logging -import os -import re - -from pip._vendor import six -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.pkg_resources import RequirementParseError - -from pip._internal.exceptions import BadCommand, InstallationError -from pip._internal.req.constructors import ( - install_req_from_editable, install_req_from_line, -) -from pip._internal.req.req_file import COMMENT_RE -from pip._internal.utils.misc import ( - dist_is_editable, get_installed_distributions, -) -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Iterator, Optional, List, Container, Set, Dict, Tuple, Iterable, Union - ) - from pip._internal.cache import WheelCache # noqa: F401 - from pip._vendor.pkg_resources import ( # noqa: F401 - Distribution, Requirement - ) - - RequirementInfo = Tuple[Optional[Union[str, Requirement]], bool, List[str]] - - -logger = logging.getLogger(__name__) - - -def freeze( - requirement=None, # type: Optional[List[str]] - find_links=None, # type: Optional[List[str]] - local_only=None, # type: Optional[bool] - user_only=None, # type: Optional[bool] - skip_regex=None, # type: Optional[str] - isolated=False, # type: bool - wheel_cache=None, # type: Optional[WheelCache] - exclude_editable=False, # type: bool - skip=() # type: Container[str] -): - # type: (...) -> Iterator[str] - find_links = find_links or [] - skip_match = None - - if skip_regex: - skip_match = re.compile(skip_regex).search - - for link in find_links: - yield '-f %s' % link - installations = {} # type: Dict[str, FrozenRequirement] - for dist in get_installed_distributions(local_only=local_only, - skip=(), - user_only=user_only): - try: - req = FrozenRequirement.from_dist(dist) - except RequirementParseError: - logger.warning( - "Could not parse requirement: %s", - dist.project_name - ) - continue - if exclude_editable and req.editable: - continue - installations[req.name] = req - - if requirement: - # the options that don't get turned into an InstallRequirement - # should only be emitted once, even if the same option is in multiple - # requirements files, so we need to keep track of what has been emitted - # so that we don't emit it again if it's seen again - emitted_options = set() # type: Set[str] - # keep track of which files a requirement is in so that we can - # give an accurate warning if a requirement appears multiple times. - req_files = collections.defaultdict(list) # type: Dict[str, List[str]] - for req_file_path in requirement: - with open(req_file_path) as req_file: - for line in req_file: - if (not line.strip() or - line.strip().startswith('#') or - (skip_match and skip_match(line)) or - line.startswith(( - '-r', '--requirement', - '-Z', '--always-unzip', - '-f', '--find-links', - '-i', '--index-url', - '--pre', - '--trusted-host', - '--process-dependency-links', - '--extra-index-url'))): - line = line.rstrip() - if line not in emitted_options: - emitted_options.add(line) - yield line - continue - - if line.startswith('-e') or line.startswith('--editable'): - if line.startswith('-e'): - line = line[2:].strip() - else: - line = line[len('--editable'):].strip().lstrip('=') - line_req = install_req_from_editable( - line, - isolated=isolated, - wheel_cache=wheel_cache, - ) - else: - line_req = install_req_from_line( - COMMENT_RE.sub('', line).strip(), - isolated=isolated, - wheel_cache=wheel_cache, - ) - - if not line_req.name: - logger.info( - "Skipping line in requirement file [%s] because " - "it's not clear what it would install: %s", - req_file_path, line.strip(), - ) - logger.info( - " (add #egg=PackageName to the URL to avoid" - " this warning)" - ) - elif line_req.name not in installations: - # either it's not installed, or it is installed - # but has been processed already - if not req_files[line_req.name]: - logger.warning( - "Requirement file [%s] contains %s, but " - "package %r is not installed", - req_file_path, - COMMENT_RE.sub('', line).strip(), line_req.name - ) - else: - req_files[line_req.name].append(req_file_path) - else: - yield str(installations[line_req.name]).rstrip() - del installations[line_req.name] - req_files[line_req.name].append(req_file_path) - - # Warn about requirements that were included multiple times (in a - # single requirements file or in different requirements files). - for name, files in six.iteritems(req_files): - if len(files) > 1: - logger.warning("Requirement %s included multiple times [%s]", - name, ', '.join(sorted(set(files)))) - - yield( - '## The following requirements were added by ' - 'pip freeze:' - ) - for installation in sorted( - installations.values(), key=lambda x: x.name.lower()): - if canonicalize_name(installation.name) not in skip: - yield str(installation).rstrip() - - -def get_requirement_info(dist): - # type: (Distribution) -> RequirementInfo - """ - Compute and return values (req, editable, comments) for use in - FrozenRequirement.from_dist(). - """ - if not dist_is_editable(dist): - return (None, False, []) - - location = os.path.normcase(os.path.abspath(dist.location)) - - from pip._internal.vcs import vcs, RemoteNotFoundError - vc_type = vcs.get_backend_type(location) - - if not vc_type: - req = dist.as_requirement() - logger.debug( - 'No VCS found for editable requirement {!r} in: {!r}', req, - location, - ) - comments = [ - '# Editable install with no version control ({})'.format(req) - ] - return (location, True, comments) - - try: - req = vc_type.get_src_requirement(location, dist.project_name) - except RemoteNotFoundError: - req = dist.as_requirement() - comments = [ - '# Editable {} install with no remote ({})'.format( - vc_type.__name__, req, - ) - ] - return (location, True, comments) - - except BadCommand: - logger.warning( - 'cannot determine version of editable source in %s ' - '(%s command not found in path)', - location, - vc_type.name, - ) - return (None, True, []) - - except InstallationError as exc: - logger.warning( - "Error when trying to get requirement for VCS system %s, " - "falling back to uneditable format", exc - ) - else: - if req is not None: - return (req, True, []) - - logger.warning( - 'Could not determine repository location of %s', location - ) - comments = ['## !! Could not determine repository location'] - - return (None, False, comments) - - -class FrozenRequirement(object): - def __init__(self, name, req, editable, comments=()): - # type: (str, Union[str, Requirement], bool, Iterable[str]) -> None - self.name = name - self.req = req - self.editable = editable - self.comments = comments - - @classmethod - def from_dist(cls, dist): - # type: (Distribution) -> FrozenRequirement - req, editable, comments = get_requirement_info(dist) - if req is None: - req = dist.as_requirement() - - return cls(dist.project_name, req, editable, comments=comments) - - def __str__(self): - req = self.req - if self.editable: - req = '-e %s' % req - return '\n'.join(list(self.comments) + [str(req)]) + '\n' diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/prepare.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/prepare.py deleted file mode 100644 index 4f31dd5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/prepare.py +++ /dev/null @@ -1,413 +0,0 @@ -"""Prepares a distribution for installation -""" - -import logging -import os - -from pip._vendor import pkg_resources, requests - -from pip._internal.build_env import BuildEnvironment -from pip._internal.download import ( - is_dir_url, is_file_url, is_vcs_url, unpack_url, url_to_path, -) -from pip._internal.exceptions import ( - DirectoryUrlHashUnsupported, HashUnpinned, InstallationError, - PreviousBuildDirError, VcsHashUnsupported, -) -from pip._internal.utils.compat import expanduser -from pip._internal.utils.hashes import MissingHashes -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import display_path, normalize_path -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.vcs import vcs - -if MYPY_CHECK_RUNNING: - from typing import Any, Optional # noqa: F401 - from pip._internal.req.req_install import InstallRequirement # noqa: F401 - from pip._internal.index import PackageFinder # noqa: F401 - from pip._internal.download import PipSession # noqa: F401 - from pip._internal.req.req_tracker import RequirementTracker # noqa: F401 - -logger = logging.getLogger(__name__) - - -def make_abstract_dist(req): - # type: (InstallRequirement) -> DistAbstraction - """Factory to make an abstract dist object. - - Preconditions: Either an editable req with a source_dir, or satisfied_by or - a wheel link, or a non-editable req with a source_dir. - - :return: A concrete DistAbstraction. - """ - if req.editable: - return IsSDist(req) - elif req.link and req.link.is_wheel: - return IsWheel(req) - else: - return IsSDist(req) - - -class DistAbstraction(object): - """Abstracts out the wheel vs non-wheel Resolver.resolve() logic. - - The requirements for anything installable are as follows: - - we must be able to determine the requirement name - (or we can't correctly handle the non-upgrade case). - - we must be able to generate a list of run-time dependencies - without installing any additional packages (or we would - have to either burn time by doing temporary isolated installs - or alternatively violate pips 'don't start installing unless - all requirements are available' rule - neither of which are - desirable). - - for packages with setup requirements, we must also be able - to determine their requirements without installing additional - packages (for the same reason as run-time dependencies) - - we must be able to create a Distribution object exposing the - above metadata. - """ - - def __init__(self, req): - # type: (InstallRequirement) -> None - self.req = req # type: InstallRequirement - - def dist(self): - # type: () -> Any - """Return a setuptools Dist object.""" - raise NotImplementedError - - def prep_for_dist(self, finder, build_isolation): - # type: (PackageFinder, bool) -> Any - """Ensure that we can get a Dist for this requirement.""" - raise NotImplementedError - - -class IsWheel(DistAbstraction): - - def dist(self): - # type: () -> pkg_resources.Distribution - return list(pkg_resources.find_distributions( - self.req.source_dir))[0] - - def prep_for_dist(self, finder, build_isolation): - # type: (PackageFinder, bool) -> Any - # FIXME:https://github.com/pypa/pip/issues/1112 - pass - - -class IsSDist(DistAbstraction): - - def dist(self): - return self.req.get_dist() - - def prep_for_dist(self, finder, build_isolation): - # type: (PackageFinder, bool) -> None - # Prepare for building. We need to: - # 1. Load pyproject.toml (if it exists) - # 2. Set up the build environment - - self.req.load_pyproject_toml() - should_isolate = self.req.use_pep517 and build_isolation - - def _raise_conflicts(conflicting_with, conflicting_reqs): - raise InstallationError( - "Some build dependencies for %s conflict with %s: %s." % ( - self.req, conflicting_with, ', '.join( - '%s is incompatible with %s' % (installed, wanted) - for installed, wanted in sorted(conflicting)))) - - if should_isolate: - # Isolate in a BuildEnvironment and install the build-time - # requirements. - self.req.build_env = BuildEnvironment() - self.req.build_env.install_requirements( - finder, self.req.pyproject_requires, 'overlay', - "Installing build dependencies" - ) - conflicting, missing = self.req.build_env.check_requirements( - self.req.requirements_to_check - ) - if conflicting: - _raise_conflicts("PEP 517/518 supported requirements", - conflicting) - if missing: - logger.warning( - "Missing build requirements in pyproject.toml for %s.", - self.req, - ) - logger.warning( - "The project does not specify a build backend, and " - "pip cannot fall back to setuptools without %s.", - " and ".join(map(repr, sorted(missing))) - ) - # Install any extra build dependencies that the backend requests. - # This must be done in a second pass, as the pyproject.toml - # dependencies must be installed before we can call the backend. - with self.req.build_env: - # We need to have the env active when calling the hook. - self.req.spin_message = "Getting requirements to build wheel" - reqs = self.req.pep517_backend.get_requires_for_build_wheel() - conflicting, missing = self.req.build_env.check_requirements(reqs) - if conflicting: - _raise_conflicts("the backend dependencies", conflicting) - self.req.build_env.install_requirements( - finder, missing, 'normal', - "Installing backend dependencies" - ) - - self.req.prepare_metadata() - self.req.assert_source_matches_version() - - -class Installed(DistAbstraction): - - def dist(self): - # type: () -> pkg_resources.Distribution - return self.req.satisfied_by - - def prep_for_dist(self, finder, build_isolation): - # type: (PackageFinder, bool) -> Any - pass - - -class RequirementPreparer(object): - """Prepares a Requirement - """ - - def __init__( - self, - build_dir, # type: str - download_dir, # type: Optional[str] - src_dir, # type: str - wheel_download_dir, # type: Optional[str] - progress_bar, # type: str - build_isolation, # type: bool - req_tracker # type: RequirementTracker - ): - # type: (...) -> None - super(RequirementPreparer, self).__init__() - - self.src_dir = src_dir - self.build_dir = build_dir - self.req_tracker = req_tracker - - # Where still packed archives should be written to. If None, they are - # not saved, and are deleted immediately after unpacking. - self.download_dir = download_dir - - # Where still-packed .whl files should be written to. If None, they are - # written to the download_dir parameter. Separate to download_dir to - # permit only keeping wheel archives for pip wheel. - if wheel_download_dir: - wheel_download_dir = normalize_path(wheel_download_dir) - self.wheel_download_dir = wheel_download_dir - - # NOTE - # download_dir and wheel_download_dir overlap semantically and may - # be combined if we're willing to have non-wheel archives present in - # the wheelhouse output by 'pip wheel'. - - self.progress_bar = progress_bar - - # Is build isolation allowed? - self.build_isolation = build_isolation - - @property - def _download_should_save(self): - # type: () -> bool - # TODO: Modify to reduce indentation needed - if self.download_dir: - self.download_dir = expanduser(self.download_dir) - if os.path.exists(self.download_dir): - return True - else: - logger.critical('Could not find download directory') - raise InstallationError( - "Could not find or access download directory '%s'" - % display_path(self.download_dir)) - return False - - def prepare_linked_requirement( - self, - req, # type: InstallRequirement - session, # type: PipSession - finder, # type: PackageFinder - upgrade_allowed, # type: bool - require_hashes # type: bool - ): - # type: (...) -> DistAbstraction - """Prepare a requirement that would be obtained from req.link - """ - # TODO: Breakup into smaller functions - if req.link and req.link.scheme == 'file': - path = url_to_path(req.link.url) - logger.info('Processing %s', display_path(path)) - else: - logger.info('Collecting %s', req) - - with indent_log(): - # @@ if filesystem packages are not marked - # editable in a req, a non deterministic error - # occurs when the script attempts to unpack the - # build directory - req.ensure_has_source_dir(self.build_dir) - # If a checkout exists, it's unwise to keep going. version - # inconsistencies are logged later, but do not fail the - # installation. - # FIXME: this won't upgrade when there's an existing - # package unpacked in `req.source_dir` - # package unpacked in `req.source_dir` - if os.path.exists(os.path.join(req.source_dir, 'setup.py')): - raise PreviousBuildDirError( - "pip can't proceed with requirements '%s' due to a" - " pre-existing build directory (%s). This is " - "likely due to a previous installation that failed" - ". pip is being responsible and not assuming it " - "can delete this. Please delete it and try again." - % (req, req.source_dir) - ) - req.populate_link(finder, upgrade_allowed, require_hashes) - - # We can't hit this spot and have populate_link return None. - # req.satisfied_by is None here (because we're - # guarded) and upgrade has no impact except when satisfied_by - # is not None. - # Then inside find_requirement existing_applicable -> False - # If no new versions are found, DistributionNotFound is raised, - # otherwise a result is guaranteed. - assert req.link - link = req.link - - # Now that we have the real link, we can tell what kind of - # requirements we have and raise some more informative errors - # than otherwise. (For example, we can raise VcsHashUnsupported - # for a VCS URL rather than HashMissing.) - if require_hashes: - # We could check these first 2 conditions inside - # unpack_url and save repetition of conditions, but then - # we would report less-useful error messages for - # unhashable requirements, complaining that there's no - # hash provided. - if is_vcs_url(link): - raise VcsHashUnsupported() - elif is_file_url(link) and is_dir_url(link): - raise DirectoryUrlHashUnsupported() - if not req.original_link and not req.is_pinned: - # Unpinned packages are asking for trouble when a new - # version is uploaded. This isn't a security check, but - # it saves users a surprising hash mismatch in the - # future. - # - # file:/// URLs aren't pinnable, so don't complain - # about them not being pinned. - raise HashUnpinned() - - hashes = req.hashes(trust_internet=not require_hashes) - if require_hashes and not hashes: - # Known-good hashes are missing for this requirement, so - # shim it with a facade object that will provoke hash - # computation and then raise a HashMissing exception - # showing the user what the hash should be. - hashes = MissingHashes() - - try: - download_dir = self.download_dir - # We always delete unpacked sdists after pip ran. - autodelete_unpacked = True - if req.link.is_wheel and self.wheel_download_dir: - # when doing 'pip wheel` we download wheels to a - # dedicated dir. - download_dir = self.wheel_download_dir - if req.link.is_wheel: - if download_dir: - # When downloading, we only unpack wheels to get - # metadata. - autodelete_unpacked = True - else: - # When installing a wheel, we use the unpacked - # wheel. - autodelete_unpacked = False - unpack_url( - req.link, req.source_dir, - download_dir, autodelete_unpacked, - session=session, hashes=hashes, - progress_bar=self.progress_bar - ) - except requests.HTTPError as exc: - logger.critical( - 'Could not install requirement %s because of error %s', - req, - exc, - ) - raise InstallationError( - 'Could not install requirement %s because of HTTP ' - 'error %s for URL %s' % - (req, exc, req.link) - ) - abstract_dist = make_abstract_dist(req) - with self.req_tracker.track(req): - abstract_dist.prep_for_dist(finder, self.build_isolation) - if self._download_should_save: - # Make a .zip of the source_dir we already created. - if req.link.scheme in vcs.all_schemes: - req.archive(self.download_dir) - return abstract_dist - - def prepare_editable_requirement( - self, - req, # type: InstallRequirement - require_hashes, # type: bool - use_user_site, # type: bool - finder # type: PackageFinder - ): - # type: (...) -> DistAbstraction - """Prepare an editable requirement - """ - assert req.editable, "cannot prepare a non-editable req as editable" - - logger.info('Obtaining %s', req) - - with indent_log(): - if require_hashes: - raise InstallationError( - 'The editable requirement %s cannot be installed when ' - 'requiring hashes, because there is no single file to ' - 'hash.' % req - ) - req.ensure_has_source_dir(self.src_dir) - req.update_editable(not self._download_should_save) - - abstract_dist = make_abstract_dist(req) - with self.req_tracker.track(req): - abstract_dist.prep_for_dist(finder, self.build_isolation) - - if self._download_should_save: - req.archive(self.download_dir) - req.check_if_exists(use_user_site) - - return abstract_dist - - def prepare_installed_requirement(self, req, require_hashes, skip_reason): - # type: (InstallRequirement, bool, Optional[str]) -> DistAbstraction - """Prepare an already-installed requirement - """ - assert req.satisfied_by, "req should have been satisfied but isn't" - assert skip_reason is not None, ( - "did not get skip reason skipped but req.satisfied_by " - "is set to %r" % (req.satisfied_by,) - ) - logger.info( - 'Requirement %s: %s (%s)', - skip_reason, req, req.satisfied_by.version - ) - with indent_log(): - if require_hashes: - logger.debug( - 'Since it is already installed, we are trusting this ' - 'package without checking its hash. To ensure a ' - 'completely repeatable environment, install into an ' - 'empty virtualenv.' - ) - abstract_dist = Installed(req) - - return abstract_dist diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pep425tags.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pep425tags.py deleted file mode 100644 index 1e782d1..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pep425tags.py +++ /dev/null @@ -1,381 +0,0 @@ -"""Generate and work with PEP 425 Compatibility Tags.""" -from __future__ import absolute_import - -import distutils.util -import logging -import platform -import re -import sys -import sysconfig -import warnings -from collections import OrderedDict - -import pip._internal.utils.glibc -from pip._internal.utils.compat import get_extension_suffixes -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Tuple, Callable, List, Optional, Union, Dict - ) - - Pep425Tag = Tuple[str, str, str] - -logger = logging.getLogger(__name__) - -_osx_arch_pat = re.compile(r'(.+)_(\d+)_(\d+)_(.+)') - - -def get_config_var(var): - # type: (str) -> Optional[str] - try: - return sysconfig.get_config_var(var) - except IOError as e: # Issue #1074 - warnings.warn("{}".format(e), RuntimeWarning) - return None - - -def get_abbr_impl(): - # type: () -> str - """Return abbreviated implementation name.""" - if hasattr(sys, 'pypy_version_info'): - pyimpl = 'pp' - elif sys.platform.startswith('java'): - pyimpl = 'jy' - elif sys.platform == 'cli': - pyimpl = 'ip' - else: - pyimpl = 'cp' - return pyimpl - - -def get_impl_ver(): - # type: () -> str - """Return implementation version.""" - impl_ver = get_config_var("py_version_nodot") - if not impl_ver or get_abbr_impl() == 'pp': - impl_ver = ''.join(map(str, get_impl_version_info())) - return impl_ver - - -def get_impl_version_info(): - # type: () -> Tuple[int, ...] - """Return sys.version_info-like tuple for use in decrementing the minor - version.""" - if get_abbr_impl() == 'pp': - # as per https://github.com/pypa/pip/issues/2882 - # attrs exist only on pypy - return (sys.version_info[0], - sys.pypy_version_info.major, # type: ignore - sys.pypy_version_info.minor) # type: ignore - else: - return sys.version_info[0], sys.version_info[1] - - -def get_impl_tag(): - # type: () -> str - """ - Returns the Tag for this specific implementation. - """ - return "{}{}".format(get_abbr_impl(), get_impl_ver()) - - -def get_flag(var, fallback, expected=True, warn=True): - # type: (str, Callable[..., bool], Union[bool, int], bool) -> bool - """Use a fallback method for determining SOABI flags if the needed config - var is unset or unavailable.""" - val = get_config_var(var) - if val is None: - if warn: - logger.debug("Config variable '%s' is unset, Python ABI tag may " - "be incorrect", var) - return fallback() - return val == expected - - -def get_abi_tag(): - # type: () -> Optional[str] - """Return the ABI tag based on SOABI (if available) or emulate SOABI - (CPython 2, PyPy).""" - soabi = get_config_var('SOABI') - impl = get_abbr_impl() - if not soabi and impl in {'cp', 'pp'} and hasattr(sys, 'maxunicode'): - d = '' - m = '' - u = '' - if get_flag('Py_DEBUG', - lambda: hasattr(sys, 'gettotalrefcount'), - warn=(impl == 'cp')): - d = 'd' - if get_flag('WITH_PYMALLOC', - lambda: impl == 'cp', - warn=(impl == 'cp')): - m = 'm' - if get_flag('Py_UNICODE_SIZE', - lambda: sys.maxunicode == 0x10ffff, - expected=4, - warn=(impl == 'cp' and - sys.version_info < (3, 3))) \ - and sys.version_info < (3, 3): - u = 'u' - abi = '%s%s%s%s%s' % (impl, get_impl_ver(), d, m, u) - elif soabi and soabi.startswith('cpython-'): - abi = 'cp' + soabi.split('-')[1] - elif soabi: - abi = soabi.replace('.', '_').replace('-', '_') - else: - abi = None - return abi - - -def _is_running_32bit(): - # type: () -> bool - return sys.maxsize == 2147483647 - - -def get_platform(): - # type: () -> str - """Return our platform name 'win32', 'linux_x86_64'""" - if sys.platform == 'darwin': - # distutils.util.get_platform() returns the release based on the value - # of MACOSX_DEPLOYMENT_TARGET on which Python was built, which may - # be significantly older than the user's current machine. - release, _, machine = platform.mac_ver() - split_ver = release.split('.') - - if machine == "x86_64" and _is_running_32bit(): - machine = "i386" - elif machine == "ppc64" and _is_running_32bit(): - machine = "ppc" - - return 'macosx_{}_{}_{}'.format(split_ver[0], split_ver[1], machine) - - # XXX remove distutils dependency - result = distutils.util.get_platform().replace('.', '_').replace('-', '_') - if result == "linux_x86_64" and _is_running_32bit(): - # 32 bit Python program (running on a 64 bit Linux): pip should only - # install and run 32 bit compiled extensions in that case. - result = "linux_i686" - - return result - - -def is_manylinux1_compatible(): - # type: () -> bool - # Only Linux, and only x86-64 / i686 - if get_platform() not in {"linux_x86_64", "linux_i686"}: - return False - - # Check for presence of _manylinux module - try: - import _manylinux - return bool(_manylinux.manylinux1_compatible) - except (ImportError, AttributeError): - # Fall through to heuristic check below - pass - - # Check glibc version. CentOS 5 uses glibc 2.5. - return pip._internal.utils.glibc.have_compatible_glibc(2, 5) - - -def is_manylinux2010_compatible(): - # type: () -> bool - # Only Linux, and only x86-64 / i686 - if get_platform() not in {"linux_x86_64", "linux_i686"}: - return False - - # Check for presence of _manylinux module - try: - import _manylinux - return bool(_manylinux.manylinux2010_compatible) - except (ImportError, AttributeError): - # Fall through to heuristic check below - pass - - # Check glibc version. CentOS 6 uses glibc 2.12. - return pip._internal.utils.glibc.have_compatible_glibc(2, 12) - - -def get_darwin_arches(major, minor, machine): - # type: (int, int, str) -> List[str] - """Return a list of supported arches (including group arches) for - the given major, minor and machine architecture of an macOS machine. - """ - arches = [] - - def _supports_arch(major, minor, arch): - # type: (int, int, str) -> bool - # Looking at the application support for macOS versions in the chart - # provided by https://en.wikipedia.org/wiki/OS_X#Versions it appears - # our timeline looks roughly like: - # - # 10.0 - Introduces ppc support. - # 10.4 - Introduces ppc64, i386, and x86_64 support, however the ppc64 - # and x86_64 support is CLI only, and cannot be used for GUI - # applications. - # 10.5 - Extends ppc64 and x86_64 support to cover GUI applications. - # 10.6 - Drops support for ppc64 - # 10.7 - Drops support for ppc - # - # Given that we do not know if we're installing a CLI or a GUI - # application, we must be conservative and assume it might be a GUI - # application and behave as if ppc64 and x86_64 support did not occur - # until 10.5. - # - # Note: The above information is taken from the "Application support" - # column in the chart not the "Processor support" since I believe - # that we care about what instruction sets an application can use - # not which processors the OS supports. - if arch == 'ppc': - return (major, minor) <= (10, 5) - if arch == 'ppc64': - return (major, minor) == (10, 5) - if arch == 'i386': - return (major, minor) >= (10, 4) - if arch == 'x86_64': - return (major, minor) >= (10, 5) - if arch in groups: - for garch in groups[arch]: - if _supports_arch(major, minor, garch): - return True - return False - - groups = OrderedDict([ - ("fat", ("i386", "ppc")), - ("intel", ("x86_64", "i386")), - ("fat64", ("x86_64", "ppc64")), - ("fat32", ("x86_64", "i386", "ppc")), - ]) # type: Dict[str, Tuple[str, ...]] - - if _supports_arch(major, minor, machine): - arches.append(machine) - - for garch in groups: - if machine in groups[garch] and _supports_arch(major, minor, garch): - arches.append(garch) - - arches.append('universal') - - return arches - - -def get_all_minor_versions_as_strings(version_info): - # type: (Tuple[int, ...]) -> List[str] - versions = [] - major = version_info[:-1] - # Support all previous minor Python versions. - for minor in range(version_info[-1], -1, -1): - versions.append(''.join(map(str, major + (minor,)))) - return versions - - -def get_supported( - versions=None, # type: Optional[List[str]] - noarch=False, # type: bool - platform=None, # type: Optional[str] - impl=None, # type: Optional[str] - abi=None # type: Optional[str] -): - # type: (...) -> List[Pep425Tag] - """Return a list of supported tags for each version specified in - `versions`. - - :param versions: a list of string versions, of the form ["33", "32"], - or None. The first version will be assumed to support our ABI. - :param platform: specify the exact platform you want valid - tags for, or None. If None, use the local system platform. - :param impl: specify the exact implementation you want valid - tags for, or None. If None, use the local interpreter impl. - :param abi: specify the exact abi you want valid - tags for, or None. If None, use the local interpreter abi. - """ - supported = [] - - # Versions must be given with respect to the preference - if versions is None: - version_info = get_impl_version_info() - versions = get_all_minor_versions_as_strings(version_info) - - impl = impl or get_abbr_impl() - - abis = [] # type: List[str] - - abi = abi or get_abi_tag() - if abi: - abis[0:0] = [abi] - - abi3s = set() - for suffix in get_extension_suffixes(): - if suffix.startswith('.abi'): - abi3s.add(suffix.split('.', 2)[1]) - - abis.extend(sorted(list(abi3s))) - - abis.append('none') - - if not noarch: - arch = platform or get_platform() - arch_prefix, arch_sep, arch_suffix = arch.partition('_') - if arch.startswith('macosx'): - # support macosx-10.6-intel on macosx-10.9-x86_64 - match = _osx_arch_pat.match(arch) - if match: - name, major, minor, actual_arch = match.groups() - tpl = '{}_{}_%i_%s'.format(name, major) - arches = [] - for m in reversed(range(int(minor) + 1)): - for a in get_darwin_arches(int(major), m, actual_arch): - arches.append(tpl % (m, a)) - else: - # arch pattern didn't match (?!) - arches = [arch] - elif arch_prefix == 'manylinux2010': - # manylinux1 wheels run on most manylinux2010 systems with the - # exception of wheels depending on ncurses. PEP 571 states - # manylinux1 wheels should be considered manylinux2010 wheels: - # https://www.python.org/dev/peps/pep-0571/#backwards-compatibility-with-manylinux1-wheels - arches = [arch, 'manylinux1' + arch_sep + arch_suffix] - elif platform is None: - arches = [] - if is_manylinux2010_compatible(): - arches.append('manylinux2010' + arch_sep + arch_suffix) - if is_manylinux1_compatible(): - arches.append('manylinux1' + arch_sep + arch_suffix) - arches.append(arch) - else: - arches = [arch] - - # Current version, current API (built specifically for our Python): - for abi in abis: - for arch in arches: - supported.append(('%s%s' % (impl, versions[0]), abi, arch)) - - # abi3 modules compatible with older version of Python - for version in versions[1:]: - # abi3 was introduced in Python 3.2 - if version in {'31', '30'}: - break - for abi in abi3s: # empty set if not Python 3 - for arch in arches: - supported.append(("%s%s" % (impl, version), abi, arch)) - - # Has binaries, does not use the Python API: - for arch in arches: - supported.append(('py%s' % (versions[0][0]), 'none', arch)) - - # No abi / arch, but requires our implementation: - supported.append(('%s%s' % (impl, versions[0]), 'none', 'any')) - # Tagged specifically as being cross-version compatible - # (with just the major version specified) - supported.append(('%s%s' % (impl, versions[0][0]), 'none', 'any')) - - # No abi / arch, generic Python - for i, version in enumerate(versions): - supported.append(('py%s' % (version,), 'none', 'any')) - if i == 0: - supported.append(('py%s' % (version[0]), 'none', 'any')) - - return supported - - -implementation_tag = get_impl_tag() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pyproject.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pyproject.py deleted file mode 100644 index 8d739a6..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pyproject.py +++ /dev/null @@ -1,171 +0,0 @@ -from __future__ import absolute_import - -import io -import os -import sys - -from pip._vendor import pytoml, six - -from pip._internal.exceptions import InstallationError -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Any, Tuple, Optional, List # noqa: F401 - - -def _is_list_of_str(obj): - # type: (Any) -> bool - return ( - isinstance(obj, list) and - all(isinstance(item, six.string_types) for item in obj) - ) - - -def make_pyproject_path(setup_py_dir): - # type: (str) -> str - path = os.path.join(setup_py_dir, 'pyproject.toml') - - # Python2 __file__ should not be unicode - if six.PY2 and isinstance(path, six.text_type): - path = path.encode(sys.getfilesystemencoding()) - - return path - - -def load_pyproject_toml( - use_pep517, # type: Optional[bool] - pyproject_toml, # type: str - setup_py, # type: str - req_name # type: str -): - # type: (...) -> Optional[Tuple[List[str], str, List[str]]] - """Load the pyproject.toml file. - - Parameters: - use_pep517 - Has the user requested PEP 517 processing? None - means the user hasn't explicitly specified. - pyproject_toml - Location of the project's pyproject.toml file - setup_py - Location of the project's setup.py file - req_name - The name of the requirement we're processing (for - error reporting) - - Returns: - None if we should use the legacy code path, otherwise a tuple - ( - requirements from pyproject.toml, - name of PEP 517 backend, - requirements we should check are installed after setting - up the build environment - ) - """ - has_pyproject = os.path.isfile(pyproject_toml) - has_setup = os.path.isfile(setup_py) - - if has_pyproject: - with io.open(pyproject_toml, encoding="utf-8") as f: - pp_toml = pytoml.load(f) - build_system = pp_toml.get("build-system") - else: - build_system = None - - # The following cases must use PEP 517 - # We check for use_pep517 being non-None and falsey because that means - # the user explicitly requested --no-use-pep517. The value 0 as - # opposed to False can occur when the value is provided via an - # environment variable or config file option (due to the quirk of - # strtobool() returning an integer in pip's configuration code). - if has_pyproject and not has_setup: - if use_pep517 is not None and not use_pep517: - raise InstallationError( - "Disabling PEP 517 processing is invalid: " - "project does not have a setup.py" - ) - use_pep517 = True - elif build_system and "build-backend" in build_system: - if use_pep517 is not None and not use_pep517: - raise InstallationError( - "Disabling PEP 517 processing is invalid: " - "project specifies a build backend of {} " - "in pyproject.toml".format( - build_system["build-backend"] - ) - ) - use_pep517 = True - - # If we haven't worked out whether to use PEP 517 yet, - # and the user hasn't explicitly stated a preference, - # we do so if the project has a pyproject.toml file. - elif use_pep517 is None: - use_pep517 = has_pyproject - - # At this point, we know whether we're going to use PEP 517. - assert use_pep517 is not None - - # If we're using the legacy code path, there is nothing further - # for us to do here. - if not use_pep517: - return None - - if build_system is None: - # Either the user has a pyproject.toml with no build-system - # section, or the user has no pyproject.toml, but has opted in - # explicitly via --use-pep517. - # In the absence of any explicit backend specification, we - # assume the setuptools backend that most closely emulates the - # traditional direct setup.py execution, and require wheel and - # a version of setuptools that supports that backend. - - build_system = { - "requires": ["setuptools>=40.8.0", "wheel"], - "build-backend": "setuptools.build_meta:__legacy__", - } - - # If we're using PEP 517, we have build system information (either - # from pyproject.toml, or defaulted by the code above). - # Note that at this point, we do not know if the user has actually - # specified a backend, though. - assert build_system is not None - - # Ensure that the build-system section in pyproject.toml conforms - # to PEP 518. - error_template = ( - "{package} has a pyproject.toml file that does not comply " - "with PEP 518: {reason}" - ) - - # Specifying the build-system table but not the requires key is invalid - if "requires" not in build_system: - raise InstallationError( - error_template.format(package=req_name, reason=( - "it has a 'build-system' table but not " - "'build-system.requires' which is mandatory in the table" - )) - ) - - # Error out if requires is not a list of strings - requires = build_system["requires"] - if not _is_list_of_str(requires): - raise InstallationError(error_template.format( - package=req_name, - reason="'build-system.requires' is not a list of strings.", - )) - - backend = build_system.get("build-backend") - check = [] # type: List[str] - if backend is None: - # If the user didn't specify a backend, we assume they want to use - # the setuptools backend. But we can't be sure they have included - # a version of setuptools which supplies the backend, or wheel - # (which is needed by the backend) in their requirements. So we - # make a note to check that those requirements are present once - # we have set up the environment. - # This is quite a lot of work to check for a very specific case. But - # the problem is, that case is potentially quite common - projects that - # adopted PEP 518 early for the ability to specify requirements to - # execute setup.py, but never considered needing to mention the build - # tools themselves. The original PEP 518 code had a similar check (but - # implemented in a different way). - backend = "setuptools.build_meta:__legacy__" - check = ["setuptools>=40.8.0", "wheel"] - - return (requires, backend, check) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/__init__.py deleted file mode 100644 index 5e4eb92..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/__init__.py +++ /dev/null @@ -1,77 +0,0 @@ -from __future__ import absolute_import - -import logging - -from .req_install import InstallRequirement -from .req_set import RequirementSet -from .req_file import parse_requirements -from pip._internal.utils.logging import indent_log -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import List, Sequence # noqa: F401 - -__all__ = [ - "RequirementSet", "InstallRequirement", - "parse_requirements", "install_given_reqs", -] - -logger = logging.getLogger(__name__) - - -def install_given_reqs( - to_install, # type: List[InstallRequirement] - install_options, # type: List[str] - global_options=(), # type: Sequence[str] - *args, **kwargs -): - # type: (...) -> List[InstallRequirement] - """ - Install everything in the given list. - - (to be called after having downloaded and unpacked the packages) - """ - - if to_install: - logger.info( - 'Installing collected packages: %s', - ', '.join([req.name for req in to_install]), - ) - - with indent_log(): - for requirement in to_install: - if requirement.conflicts_with: - logger.info( - 'Found existing installation: %s', - requirement.conflicts_with, - ) - with indent_log(): - uninstalled_pathset = requirement.uninstall( - auto_confirm=True - ) - try: - requirement.install( - install_options, - global_options, - *args, - **kwargs - ) - except Exception: - should_rollback = ( - requirement.conflicts_with and - not requirement.install_succeeded - ) - # if install did not succeed, rollback previous uninstall - if should_rollback: - uninstalled_pathset.rollback() - raise - else: - should_commit = ( - requirement.conflicts_with and - requirement.install_succeeded - ) - if should_commit: - uninstalled_pathset.commit() - requirement.remove_temporary_source() - - return to_install diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/constructors.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/constructors.py deleted file mode 100644 index 1eed1dd..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/constructors.py +++ /dev/null @@ -1,339 +0,0 @@ -"""Backing implementation for InstallRequirement's various constructors - -The idea here is that these formed a major chunk of InstallRequirement's size -so, moving them and support code dedicated to them outside of that class -helps creates for better understandability for the rest of the code. - -These are meant to be used elsewhere within pip to create instances of -InstallRequirement. -""" - -import logging -import os -import re - -from pip._vendor.packaging.markers import Marker -from pip._vendor.packaging.requirements import InvalidRequirement, Requirement -from pip._vendor.packaging.specifiers import Specifier -from pip._vendor.pkg_resources import RequirementParseError, parse_requirements - -from pip._internal.download import ( - is_archive_file, is_url, path_to_url, url_to_path, -) -from pip._internal.exceptions import InstallationError -from pip._internal.models.index import PyPI, TestPyPI -from pip._internal.models.link import Link -from pip._internal.pyproject import make_pyproject_path -from pip._internal.req.req_install import InstallRequirement -from pip._internal.utils.misc import is_installable_dir -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.vcs import vcs -from pip._internal.wheel import Wheel - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Optional, Tuple, Set, Any, Union, Text, Dict, - ) - from pip._internal.cache import WheelCache # noqa: F401 - - -__all__ = [ - "install_req_from_editable", "install_req_from_line", - "parse_editable" -] - -logger = logging.getLogger(__name__) -operators = Specifier._operators.keys() - - -def _strip_extras(path): - # type: (str) -> Tuple[str, Optional[str]] - m = re.match(r'^(.+)(\[[^\]]+\])$', path) - extras = None - if m: - path_no_extras = m.group(1) - extras = m.group(2) - else: - path_no_extras = path - - return path_no_extras, extras - - -def parse_editable(editable_req): - # type: (str) -> Tuple[Optional[str], str, Optional[Set[str]]] - """Parses an editable requirement into: - - a requirement name - - an URL - - extras - - editable options - Accepted requirements: - svn+http://blahblah@rev#egg=Foobar[baz]&subdirectory=version_subdir - .[some_extra] - """ - - url = editable_req - - # If a file path is specified with extras, strip off the extras. - url_no_extras, extras = _strip_extras(url) - - if os.path.isdir(url_no_extras): - if not os.path.exists(os.path.join(url_no_extras, 'setup.py')): - msg = ( - 'File "setup.py" not found. Directory cannot be installed ' - 'in editable mode: {}'.format(os.path.abspath(url_no_extras)) - ) - pyproject_path = make_pyproject_path(url_no_extras) - if os.path.isfile(pyproject_path): - msg += ( - '\n(A "pyproject.toml" file was found, but editable ' - 'mode currently requires a setup.py based build.)' - ) - raise InstallationError(msg) - - # Treating it as code that has already been checked out - url_no_extras = path_to_url(url_no_extras) - - if url_no_extras.lower().startswith('file:'): - package_name = Link(url_no_extras).egg_fragment - if extras: - return ( - package_name, - url_no_extras, - Requirement("placeholder" + extras.lower()).extras, - ) - else: - return package_name, url_no_extras, None - - for version_control in vcs: - if url.lower().startswith('%s:' % version_control): - url = '%s+%s' % (version_control, url) - break - - if '+' not in url: - raise InstallationError( - '%s should either be a path to a local project or a VCS url ' - 'beginning with svn+, git+, hg+, or bzr+' % - editable_req - ) - - vc_type = url.split('+', 1)[0].lower() - - if not vcs.get_backend(vc_type): - error_message = 'For --editable=%s only ' % editable_req + \ - ', '.join([backend.name + '+URL' for backend in vcs.backends]) + \ - ' is currently supported' - raise InstallationError(error_message) - - package_name = Link(url).egg_fragment - if not package_name: - raise InstallationError( - "Could not detect requirement name for '%s', please specify one " - "with #egg=your_package_name" % editable_req - ) - return package_name, url, None - - -def deduce_helpful_msg(req): - # type: (str) -> str - """Returns helpful msg in case requirements file does not exist, - or cannot be parsed. - - :params req: Requirements file path - """ - msg = "" - if os.path.exists(req): - msg = " It does exist." - # Try to parse and check if it is a requirements file. - try: - with open(req, 'r') as fp: - # parse first line only - next(parse_requirements(fp.read())) - msg += " The argument you provided " + \ - "(%s) appears to be a" % (req) + \ - " requirements file. If that is the" + \ - " case, use the '-r' flag to install" + \ - " the packages specified within it." - except RequirementParseError: - logger.debug("Cannot parse '%s' as requirements \ - file" % (req), exc_info=True) - else: - msg += " File '%s' does not exist." % (req) - return msg - - -# ---- The actual constructors follow ---- - - -def install_req_from_editable( - editable_req, # type: str - comes_from=None, # type: Optional[str] - use_pep517=None, # type: Optional[bool] - isolated=False, # type: bool - options=None, # type: Optional[Dict[str, Any]] - wheel_cache=None, # type: Optional[WheelCache] - constraint=False # type: bool -): - # type: (...) -> InstallRequirement - name, url, extras_override = parse_editable(editable_req) - if url.startswith('file:'): - source_dir = url_to_path(url) - else: - source_dir = None - - if name is not None: - try: - req = Requirement(name) - except InvalidRequirement: - raise InstallationError("Invalid requirement: '%s'" % name) - else: - req = None - return InstallRequirement( - req, comes_from, source_dir=source_dir, - editable=True, - link=Link(url), - constraint=constraint, - use_pep517=use_pep517, - isolated=isolated, - options=options if options else {}, - wheel_cache=wheel_cache, - extras=extras_override or (), - ) - - -def install_req_from_line( - name, # type: str - comes_from=None, # type: Optional[Union[str, InstallRequirement]] - use_pep517=None, # type: Optional[bool] - isolated=False, # type: bool - options=None, # type: Optional[Dict[str, Any]] - wheel_cache=None, # type: Optional[WheelCache] - constraint=False # type: bool -): - # type: (...) -> InstallRequirement - """Creates an InstallRequirement from a name, which might be a - requirement, directory containing 'setup.py', filename, or URL. - """ - if is_url(name): - marker_sep = '; ' - else: - marker_sep = ';' - if marker_sep in name: - name, markers_as_string = name.split(marker_sep, 1) - markers_as_string = markers_as_string.strip() - if not markers_as_string: - markers = None - else: - markers = Marker(markers_as_string) - else: - markers = None - name = name.strip() - req_as_string = None - path = os.path.normpath(os.path.abspath(name)) - link = None - extras_as_string = None - - if is_url(name): - link = Link(name) - else: - p, extras_as_string = _strip_extras(path) - looks_like_dir = os.path.isdir(p) and ( - os.path.sep in name or - (os.path.altsep is not None and os.path.altsep in name) or - name.startswith('.') - ) - if looks_like_dir: - if not is_installable_dir(p): - raise InstallationError( - "Directory %r is not installable. Neither 'setup.py' " - "nor 'pyproject.toml' found." % name - ) - link = Link(path_to_url(p)) - elif is_archive_file(p): - if not os.path.isfile(p): - logger.warning( - 'Requirement %r looks like a filename, but the ' - 'file does not exist', - name - ) - link = Link(path_to_url(p)) - - # it's a local file, dir, or url - if link: - # Handle relative file URLs - if link.scheme == 'file' and re.search(r'\.\./', link.url): - link = Link( - path_to_url(os.path.normpath(os.path.abspath(link.path)))) - # wheel file - if link.is_wheel: - wheel = Wheel(link.filename) # can raise InvalidWheelFilename - req_as_string = "%s==%s" % (wheel.name, wheel.version) - else: - # set the req to the egg fragment. when it's not there, this - # will become an 'unnamed' requirement - req_as_string = link.egg_fragment - - # a requirement specifier - else: - req_as_string = name - - if extras_as_string: - extras = Requirement("placeholder" + extras_as_string.lower()).extras - else: - extras = () - if req_as_string is not None: - try: - req = Requirement(req_as_string) - except InvalidRequirement: - if os.path.sep in req_as_string: - add_msg = "It looks like a path." - add_msg += deduce_helpful_msg(req_as_string) - elif ('=' in req_as_string and - not any(op in req_as_string for op in operators)): - add_msg = "= is not a valid operator. Did you mean == ?" - else: - add_msg = "" - raise InstallationError( - "Invalid requirement: '%s'\n%s" % (req_as_string, add_msg) - ) - else: - req = None - - return InstallRequirement( - req, comes_from, link=link, markers=markers, - use_pep517=use_pep517, isolated=isolated, - options=options if options else {}, - wheel_cache=wheel_cache, - constraint=constraint, - extras=extras, - ) - - -def install_req_from_req_string( - req_string, # type: str - comes_from=None, # type: Optional[InstallRequirement] - isolated=False, # type: bool - wheel_cache=None, # type: Optional[WheelCache] - use_pep517=None # type: Optional[bool] -): - # type: (...) -> InstallRequirement - try: - req = Requirement(req_string) - except InvalidRequirement: - raise InstallationError("Invalid requirement: '%s'" % req) - - domains_not_allowed = [ - PyPI.file_storage_domain, - TestPyPI.file_storage_domain, - ] - if req.url and comes_from.link.netloc in domains_not_allowed: - # Explicitly disallow pypi packages that depend on external urls - raise InstallationError( - "Packages installed from PyPI cannot depend on packages " - "which are not also hosted on PyPI.\n" - "%s depends on %s " % (comes_from.name, req) - ) - - return InstallRequirement( - req, comes_from, isolated=isolated, wheel_cache=wheel_cache, - use_pep517=use_pep517 - ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_file.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_file.py deleted file mode 100644 index 726f2f6..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_file.py +++ /dev/null @@ -1,382 +0,0 @@ -""" -Requirements file parsing -""" - -from __future__ import absolute_import - -import optparse -import os -import re -import shlex -import sys - -from pip._vendor.six.moves import filterfalse -from pip._vendor.six.moves.urllib import parse as urllib_parse - -from pip._internal.cli import cmdoptions -from pip._internal.download import get_file_content -from pip._internal.exceptions import RequirementsFileParseError -from pip._internal.req.constructors import ( - install_req_from_editable, install_req_from_line, -) -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Iterator, Tuple, Optional, List, Callable, Text - ) - from pip._internal.req import InstallRequirement # noqa: F401 - from pip._internal.cache import WheelCache # noqa: F401 - from pip._internal.index import PackageFinder # noqa: F401 - from pip._internal.download import PipSession # noqa: F401 - - ReqFileLines = Iterator[Tuple[int, Text]] - -__all__ = ['parse_requirements'] - -SCHEME_RE = re.compile(r'^(http|https|file):', re.I) -COMMENT_RE = re.compile(r'(^|\s)+#.*$') - -# Matches environment variable-style values in '${MY_VARIABLE_1}' with the -# variable name consisting of only uppercase letters, digits or the '_' -# (underscore). This follows the POSIX standard defined in IEEE Std 1003.1, -# 2013 Edition. -ENV_VAR_RE = re.compile(r'(?P\$\{(?P[A-Z0-9_]+)\})') - -SUPPORTED_OPTIONS = [ - cmdoptions.constraints, - cmdoptions.editable, - cmdoptions.requirements, - cmdoptions.no_index, - cmdoptions.index_url, - cmdoptions.find_links, - cmdoptions.extra_index_url, - cmdoptions.always_unzip, - cmdoptions.no_binary, - cmdoptions.only_binary, - cmdoptions.pre, - cmdoptions.trusted_host, - cmdoptions.require_hashes, -] # type: List[Callable[..., optparse.Option]] - -# options to be passed to requirements -SUPPORTED_OPTIONS_REQ = [ - cmdoptions.install_options, - cmdoptions.global_options, - cmdoptions.hash, -] # type: List[Callable[..., optparse.Option]] - -# the 'dest' string values -SUPPORTED_OPTIONS_REQ_DEST = [str(o().dest) for o in SUPPORTED_OPTIONS_REQ] - - -def parse_requirements( - filename, # type: str - finder=None, # type: Optional[PackageFinder] - comes_from=None, # type: Optional[str] - options=None, # type: Optional[optparse.Values] - session=None, # type: Optional[PipSession] - constraint=False, # type: bool - wheel_cache=None, # type: Optional[WheelCache] - use_pep517=None # type: Optional[bool] -): - # type: (...) -> Iterator[InstallRequirement] - """Parse a requirements file and yield InstallRequirement instances. - - :param filename: Path or url of requirements file. - :param finder: Instance of pip.index.PackageFinder. - :param comes_from: Origin description of requirements. - :param options: cli options. - :param session: Instance of pip.download.PipSession. - :param constraint: If true, parsing a constraint file rather than - requirements file. - :param wheel_cache: Instance of pip.wheel.WheelCache - :param use_pep517: Value of the --use-pep517 option. - """ - if session is None: - raise TypeError( - "parse_requirements() missing 1 required keyword argument: " - "'session'" - ) - - _, content = get_file_content( - filename, comes_from=comes_from, session=session - ) - - lines_enum = preprocess(content, options) - - for line_number, line in lines_enum: - req_iter = process_line(line, filename, line_number, finder, - comes_from, options, session, wheel_cache, - use_pep517=use_pep517, constraint=constraint) - for req in req_iter: - yield req - - -def preprocess(content, options): - # type: (Text, Optional[optparse.Values]) -> ReqFileLines - """Split, filter, and join lines, and return a line iterator - - :param content: the content of the requirements file - :param options: cli options - """ - lines_enum = enumerate(content.splitlines(), start=1) # type: ReqFileLines - lines_enum = join_lines(lines_enum) - lines_enum = ignore_comments(lines_enum) - lines_enum = skip_regex(lines_enum, options) - lines_enum = expand_env_variables(lines_enum) - return lines_enum - - -def process_line( - line, # type: Text - filename, # type: str - line_number, # type: int - finder=None, # type: Optional[PackageFinder] - comes_from=None, # type: Optional[str] - options=None, # type: Optional[optparse.Values] - session=None, # type: Optional[PipSession] - wheel_cache=None, # type: Optional[WheelCache] - use_pep517=None, # type: Optional[bool] - constraint=False # type: bool -): - # type: (...) -> Iterator[InstallRequirement] - """Process a single requirements line; This can result in creating/yielding - requirements, or updating the finder. - - For lines that contain requirements, the only options that have an effect - are from SUPPORTED_OPTIONS_REQ, and they are scoped to the - requirement. Other options from SUPPORTED_OPTIONS may be present, but are - ignored. - - For lines that do not contain requirements, the only options that have an - effect are from SUPPORTED_OPTIONS. Options from SUPPORTED_OPTIONS_REQ may - be present, but are ignored. These lines may contain multiple options - (although our docs imply only one is supported), and all our parsed and - affect the finder. - - :param constraint: If True, parsing a constraints file. - :param options: OptionParser options that we may update - """ - parser = build_parser(line) - defaults = parser.get_default_values() - defaults.index_url = None - if finder: - defaults.format_control = finder.format_control - args_str, options_str = break_args_options(line) - # Prior to 2.7.3, shlex cannot deal with unicode entries - if sys.version_info < (2, 7, 3): - # https://github.com/python/mypy/issues/1174 - options_str = options_str.encode('utf8') # type: ignore - # https://github.com/python/mypy/issues/1174 - opts, _ = parser.parse_args( - shlex.split(options_str), defaults) # type: ignore - - # preserve for the nested code path - line_comes_from = '%s %s (line %s)' % ( - '-c' if constraint else '-r', filename, line_number, - ) - - # yield a line requirement - if args_str: - isolated = options.isolated_mode if options else False - if options: - cmdoptions.check_install_build_global(options, opts) - # get the options that apply to requirements - req_options = {} - for dest in SUPPORTED_OPTIONS_REQ_DEST: - if dest in opts.__dict__ and opts.__dict__[dest]: - req_options[dest] = opts.__dict__[dest] - yield install_req_from_line( - args_str, line_comes_from, constraint=constraint, - use_pep517=use_pep517, - isolated=isolated, options=req_options, wheel_cache=wheel_cache - ) - - # yield an editable requirement - elif opts.editables: - isolated = options.isolated_mode if options else False - yield install_req_from_editable( - opts.editables[0], comes_from=line_comes_from, - use_pep517=use_pep517, - constraint=constraint, isolated=isolated, wheel_cache=wheel_cache - ) - - # parse a nested requirements file - elif opts.requirements or opts.constraints: - if opts.requirements: - req_path = opts.requirements[0] - nested_constraint = False - else: - req_path = opts.constraints[0] - nested_constraint = True - # original file is over http - if SCHEME_RE.search(filename): - # do a url join so relative paths work - req_path = urllib_parse.urljoin(filename, req_path) - # original file and nested file are paths - elif not SCHEME_RE.search(req_path): - # do a join so relative paths work - req_path = os.path.join(os.path.dirname(filename), req_path) - # TODO: Why not use `comes_from='-r {} (line {})'` here as well? - parsed_reqs = parse_requirements( - req_path, finder, comes_from, options, session, - constraint=nested_constraint, wheel_cache=wheel_cache - ) - for req in parsed_reqs: - yield req - - # percolate hash-checking option upward - elif opts.require_hashes: - options.require_hashes = opts.require_hashes - - # set finder options - elif finder: - if opts.index_url: - finder.index_urls = [opts.index_url] - if opts.no_index is True: - finder.index_urls = [] - if opts.extra_index_urls: - finder.index_urls.extend(opts.extra_index_urls) - if opts.find_links: - # FIXME: it would be nice to keep track of the source - # of the find_links: support a find-links local path - # relative to a requirements file. - value = opts.find_links[0] - req_dir = os.path.dirname(os.path.abspath(filename)) - relative_to_reqs_file = os.path.join(req_dir, value) - if os.path.exists(relative_to_reqs_file): - value = relative_to_reqs_file - finder.find_links.append(value) - if opts.pre: - finder.allow_all_prereleases = True - if opts.trusted_hosts: - finder.secure_origins.extend( - ("*", host, "*") for host in opts.trusted_hosts) - - -def break_args_options(line): - # type: (Text) -> Tuple[str, Text] - """Break up the line into an args and options string. We only want to shlex - (and then optparse) the options, not the args. args can contain markers - which are corrupted by shlex. - """ - tokens = line.split(' ') - args = [] - options = tokens[:] - for token in tokens: - if token.startswith('-') or token.startswith('--'): - break - else: - args.append(token) - options.pop(0) - return ' '.join(args), ' '.join(options) # type: ignore - - -def build_parser(line): - # type: (Text) -> optparse.OptionParser - """ - Return a parser for parsing requirement lines - """ - parser = optparse.OptionParser(add_help_option=False) - - option_factories = SUPPORTED_OPTIONS + SUPPORTED_OPTIONS_REQ - for option_factory in option_factories: - option = option_factory() - parser.add_option(option) - - # By default optparse sys.exits on parsing errors. We want to wrap - # that in our own exception. - def parser_exit(self, msg): - # add offending line - msg = 'Invalid requirement: %s\n%s' % (line, msg) - raise RequirementsFileParseError(msg) - # NOTE: mypy disallows assigning to a method - # https://github.com/python/mypy/issues/2427 - parser.exit = parser_exit # type: ignore - - return parser - - -def join_lines(lines_enum): - # type: (ReqFileLines) -> ReqFileLines - """Joins a line ending in '\' with the previous line (except when following - comments). The joined line takes on the index of the first line. - """ - primary_line_number = None - new_line = [] # type: List[Text] - for line_number, line in lines_enum: - if not line.endswith('\\') or COMMENT_RE.match(line): - if COMMENT_RE.match(line): - # this ensures comments are always matched later - line = ' ' + line - if new_line: - new_line.append(line) - yield primary_line_number, ''.join(new_line) - new_line = [] - else: - yield line_number, line - else: - if not new_line: - primary_line_number = line_number - new_line.append(line.strip('\\')) - - # last line contains \ - if new_line: - yield primary_line_number, ''.join(new_line) - - # TODO: handle space after '\'. - - -def ignore_comments(lines_enum): - # type: (ReqFileLines) -> ReqFileLines - """ - Strips comments and filter empty lines. - """ - for line_number, line in lines_enum: - line = COMMENT_RE.sub('', line) - line = line.strip() - if line: - yield line_number, line - - -def skip_regex(lines_enum, options): - # type: (ReqFileLines, Optional[optparse.Values]) -> ReqFileLines - """ - Skip lines that match '--skip-requirements-regex' pattern - - Note: the regex pattern is only built once - """ - skip_regex = options.skip_requirements_regex if options else None - if skip_regex: - pattern = re.compile(skip_regex) - lines_enum = filterfalse(lambda e: pattern.search(e[1]), lines_enum) - return lines_enum - - -def expand_env_variables(lines_enum): - # type: (ReqFileLines) -> ReqFileLines - """Replace all environment variables that can be retrieved via `os.getenv`. - - The only allowed format for environment variables defined in the - requirement file is `${MY_VARIABLE_1}` to ensure two things: - - 1. Strings that contain a `$` aren't accidentally (partially) expanded. - 2. Ensure consistency across platforms for requirement files. - - These points are the result of a discusssion on the `github pull - request #3514 `_. - - Valid characters in variable names follow the `POSIX standard - `_ and are limited - to uppercase letter, digits and the `_` (underscore). - """ - for line_number, line in lines_enum: - for env_var, var_name in ENV_VAR_RE.findall(line): - value = os.getenv(var_name) - if not value: - continue - - line = line.replace(env_var, value) - - yield line_number, line diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_install.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_install.py deleted file mode 100644 index a4834b0..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_install.py +++ /dev/null @@ -1,1021 +0,0 @@ -from __future__ import absolute_import - -import logging -import os -import shutil -import sys -import sysconfig -import zipfile -from distutils.util import change_root - -from pip._vendor import pkg_resources, six -from pip._vendor.packaging.requirements import Requirement -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.packaging.version import Version -from pip._vendor.packaging.version import parse as parse_version -from pip._vendor.pep517.wrappers import Pep517HookCaller - -from pip._internal import wheel -from pip._internal.build_env import NoOpBuildEnvironment -from pip._internal.exceptions import InstallationError -from pip._internal.locations import ( - PIP_DELETE_MARKER_FILENAME, running_under_virtualenv, -) -from pip._internal.models.link import Link -from pip._internal.pyproject import load_pyproject_toml, make_pyproject_path -from pip._internal.req.req_uninstall import UninstallPathSet -from pip._internal.utils.compat import native_str -from pip._internal.utils.hashes import Hashes -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import ( - _make_build_dir, ask_path_exists, backup_dir, call_subprocess, - display_path, dist_in_site_packages, dist_in_usersite, ensure_dir, - get_installed_version, redact_password_from_url, rmtree, -) -from pip._internal.utils.packaging import get_metadata -from pip._internal.utils.setuptools_build import SETUPTOOLS_SHIM -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.utils.ui import open_spinner -from pip._internal.vcs import vcs -from pip._internal.wheel import move_wheel_files - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Optional, Iterable, List, Union, Any, Text, Sequence, Dict - ) - from pip._internal.build_env import BuildEnvironment # noqa: F401 - from pip._internal.cache import WheelCache # noqa: F401 - from pip._internal.index import PackageFinder # noqa: F401 - from pip._vendor.pkg_resources import Distribution # noqa: F401 - from pip._vendor.packaging.specifiers import SpecifierSet # noqa: F401 - from pip._vendor.packaging.markers import Marker # noqa: F401 - - -logger = logging.getLogger(__name__) - - -class InstallRequirement(object): - """ - Represents something that may be installed later on, may have information - about where to fetch the relavant requirement and also contains logic for - installing the said requirement. - """ - - def __init__( - self, - req, # type: Optional[Requirement] - comes_from, # type: Optional[Union[str, InstallRequirement]] - source_dir=None, # type: Optional[str] - editable=False, # type: bool - link=None, # type: Optional[Link] - update=True, # type: bool - markers=None, # type: Optional[Marker] - use_pep517=None, # type: Optional[bool] - isolated=False, # type: bool - options=None, # type: Optional[Dict[str, Any]] - wheel_cache=None, # type: Optional[WheelCache] - constraint=False, # type: bool - extras=() # type: Iterable[str] - ): - # type: (...) -> None - assert req is None or isinstance(req, Requirement), req - self.req = req - self.comes_from = comes_from - self.constraint = constraint - if source_dir is not None: - self.source_dir = os.path.normpath(os.path.abspath(source_dir)) - else: - self.source_dir = None - self.editable = editable - - self._wheel_cache = wheel_cache - if link is None and req and req.url: - # PEP 508 URL requirement - link = Link(req.url) - self.link = self.original_link = link - - if extras: - self.extras = extras - elif req: - self.extras = { - pkg_resources.safe_extra(extra) for extra in req.extras - } - else: - self.extras = set() - if markers is None and req: - markers = req.marker - self.markers = markers - - self._egg_info_path = None # type: Optional[str] - # This holds the pkg_resources.Distribution object if this requirement - # is already available: - self.satisfied_by = None - # This hold the pkg_resources.Distribution object if this requirement - # conflicts with another installed distribution: - self.conflicts_with = None - # Temporary build location - self._temp_build_dir = TempDirectory(kind="req-build") - # Used to store the global directory where the _temp_build_dir should - # have been created. Cf _correct_build_location method. - self._ideal_build_dir = None # type: Optional[str] - # True if the editable should be updated: - self.update = update - # Set to True after successful installation - self.install_succeeded = None # type: Optional[bool] - # UninstallPathSet of uninstalled distribution (for possible rollback) - self.uninstalled_pathset = None - self.options = options if options else {} - # Set to True after successful preparation of this requirement - self.prepared = False - self.is_direct = False - - self.isolated = isolated - self.build_env = NoOpBuildEnvironment() # type: BuildEnvironment - - # For PEP 517, the directory where we request the project metadata - # gets stored. We need this to pass to build_wheel, so the backend - # can ensure that the wheel matches the metadata (see the PEP for - # details). - self.metadata_directory = None # type: Optional[str] - - # The static build requirements (from pyproject.toml) - self.pyproject_requires = None # type: Optional[List[str]] - - # Build requirements that we will check are available - self.requirements_to_check = [] # type: List[str] - - # The PEP 517 backend we should use to build the project - self.pep517_backend = None # type: Optional[Pep517HookCaller] - - # Are we using PEP 517 for this requirement? - # After pyproject.toml has been loaded, the only valid values are True - # and False. Before loading, None is valid (meaning "use the default"). - # Setting an explicit value before loading pyproject.toml is supported, - # but after loading this flag should be treated as read only. - self.use_pep517 = use_pep517 - - def __str__(self): - if self.req: - s = str(self.req) - if self.link: - s += ' from %s' % redact_password_from_url(self.link.url) - elif self.link: - s = redact_password_from_url(self.link.url) - else: - s = '' - if self.satisfied_by is not None: - s += ' in %s' % display_path(self.satisfied_by.location) - if self.comes_from: - if isinstance(self.comes_from, six.string_types): - comes_from = self.comes_from - else: - comes_from = self.comes_from.from_path() - if comes_from: - s += ' (from %s)' % comes_from - return s - - def __repr__(self): - return '<%s object: %s editable=%r>' % ( - self.__class__.__name__, str(self), self.editable) - - def populate_link(self, finder, upgrade, require_hashes): - # type: (PackageFinder, bool, bool) -> None - """Ensure that if a link can be found for this, that it is found. - - Note that self.link may still be None - if Upgrade is False and the - requirement is already installed. - - If require_hashes is True, don't use the wheel cache, because cached - wheels, always built locally, have different hashes than the files - downloaded from the index server and thus throw false hash mismatches. - Furthermore, cached wheels at present have undeterministic contents due - to file modification times. - """ - if self.link is None: - self.link = finder.find_requirement(self, upgrade) - if self._wheel_cache is not None and not require_hashes: - old_link = self.link - self.link = self._wheel_cache.get(self.link, self.name) - if old_link != self.link: - logger.debug('Using cached wheel link: %s', self.link) - - # Things that are valid for all kinds of requirements? - @property - def name(self): - # type: () -> Optional[str] - if self.req is None: - return None - return native_str(pkg_resources.safe_name(self.req.name)) - - @property - def specifier(self): - # type: () -> SpecifierSet - return self.req.specifier - - @property - def is_pinned(self): - # type: () -> bool - """Return whether I am pinned to an exact version. - - For example, some-package==1.2 is pinned; some-package>1.2 is not. - """ - specifiers = self.specifier - return (len(specifiers) == 1 and - next(iter(specifiers)).operator in {'==', '==='}) - - @property - def installed_version(self): - return get_installed_version(self.name) - - def match_markers(self, extras_requested=None): - # type: (Optional[Iterable[str]]) -> bool - if not extras_requested: - # Provide an extra to safely evaluate the markers - # without matching any extra - extras_requested = ('',) - if self.markers is not None: - return any( - self.markers.evaluate({'extra': extra}) - for extra in extras_requested) - else: - return True - - @property - def has_hash_options(self): - # type: () -> bool - """Return whether any known-good hashes are specified as options. - - These activate --require-hashes mode; hashes specified as part of a - URL do not. - - """ - return bool(self.options.get('hashes', {})) - - def hashes(self, trust_internet=True): - # type: (bool) -> Hashes - """Return a hash-comparer that considers my option- and URL-based - hashes to be known-good. - - Hashes in URLs--ones embedded in the requirements file, not ones - downloaded from an index server--are almost peers with ones from - flags. They satisfy --require-hashes (whether it was implicitly or - explicitly activated) but do not activate it. md5 and sha224 are not - allowed in flags, which should nudge people toward good algos. We - always OR all hashes together, even ones from URLs. - - :param trust_internet: Whether to trust URL-based (#md5=...) hashes - downloaded from the internet, as by populate_link() - - """ - good_hashes = self.options.get('hashes', {}).copy() - link = self.link if trust_internet else self.original_link - if link and link.hash: - good_hashes.setdefault(link.hash_name, []).append(link.hash) - return Hashes(good_hashes) - - def from_path(self): - # type: () -> Optional[str] - """Format a nice indicator to show where this "comes from" - """ - if self.req is None: - return None - s = str(self.req) - if self.comes_from: - if isinstance(self.comes_from, six.string_types): - comes_from = self.comes_from - else: - comes_from = self.comes_from.from_path() - if comes_from: - s += '->' + comes_from - return s - - def build_location(self, build_dir): - # type: (str) -> Optional[str] - assert build_dir is not None - if self._temp_build_dir.path is not None: - return self._temp_build_dir.path - if self.req is None: - # for requirement via a path to a directory: the name of the - # package is not available yet so we create a temp directory - # Once run_egg_info will have run, we'll be able - # to fix it via _correct_build_location - # Some systems have /tmp as a symlink which confuses custom - # builds (such as numpy). Thus, we ensure that the real path - # is returned. - self._temp_build_dir.create() - self._ideal_build_dir = build_dir - - return self._temp_build_dir.path - if self.editable: - name = self.name.lower() - else: - name = self.name - # FIXME: Is there a better place to create the build_dir? (hg and bzr - # need this) - if not os.path.exists(build_dir): - logger.debug('Creating directory %s', build_dir) - _make_build_dir(build_dir) - return os.path.join(build_dir, name) - - def _correct_build_location(self): - # type: () -> None - """Move self._temp_build_dir to self._ideal_build_dir/self.req.name - - For some requirements (e.g. a path to a directory), the name of the - package is not available until we run egg_info, so the build_location - will return a temporary directory and store the _ideal_build_dir. - - This is only called by self.run_egg_info to fix the temporary build - directory. - """ - if self.source_dir is not None: - return - assert self.req is not None - assert self._temp_build_dir.path - assert (self._ideal_build_dir is not None and - self._ideal_build_dir.path) # type: ignore - old_location = self._temp_build_dir.path - self._temp_build_dir.path = None - - new_location = self.build_location(self._ideal_build_dir) - if os.path.exists(new_location): - raise InstallationError( - 'A package already exists in %s; please remove it to continue' - % display_path(new_location)) - logger.debug( - 'Moving package %s from %s to new location %s', - self, display_path(old_location), display_path(new_location), - ) - shutil.move(old_location, new_location) - self._temp_build_dir.path = new_location - self._ideal_build_dir = None - self.source_dir = os.path.normpath(os.path.abspath(new_location)) - self._egg_info_path = None - - # Correct the metadata directory, if it exists - if self.metadata_directory: - old_meta = self.metadata_directory - rel = os.path.relpath(old_meta, start=old_location) - new_meta = os.path.join(new_location, rel) - new_meta = os.path.normpath(os.path.abspath(new_meta)) - self.metadata_directory = new_meta - - def remove_temporary_source(self): - # type: () -> None - """Remove the source files from this requirement, if they are marked - for deletion""" - if self.source_dir and os.path.exists( - os.path.join(self.source_dir, PIP_DELETE_MARKER_FILENAME)): - logger.debug('Removing source in %s', self.source_dir) - rmtree(self.source_dir) - self.source_dir = None - self._temp_build_dir.cleanup() - self.build_env.cleanup() - - def check_if_exists(self, use_user_site): - # type: (bool) -> bool - """Find an installed distribution that satisfies or conflicts - with this requirement, and set self.satisfied_by or - self.conflicts_with appropriately. - """ - if self.req is None: - return False - try: - # get_distribution() will resolve the entire list of requirements - # anyway, and we've already determined that we need the requirement - # in question, so strip the marker so that we don't try to - # evaluate it. - no_marker = Requirement(str(self.req)) - no_marker.marker = None - self.satisfied_by = pkg_resources.get_distribution(str(no_marker)) - if self.editable and self.satisfied_by: - self.conflicts_with = self.satisfied_by - # when installing editables, nothing pre-existing should ever - # satisfy - self.satisfied_by = None - return True - except pkg_resources.DistributionNotFound: - return False - except pkg_resources.VersionConflict: - existing_dist = pkg_resources.get_distribution( - self.req.name - ) - if use_user_site: - if dist_in_usersite(existing_dist): - self.conflicts_with = existing_dist - elif (running_under_virtualenv() and - dist_in_site_packages(existing_dist)): - raise InstallationError( - "Will not install to the user site because it will " - "lack sys.path precedence to %s in %s" % - (existing_dist.project_name, existing_dist.location) - ) - else: - self.conflicts_with = existing_dist - return True - - # Things valid for wheels - @property - def is_wheel(self): - # type: () -> bool - if not self.link: - return False - return self.link.is_wheel - - def move_wheel_files( - self, - wheeldir, # type: str - root=None, # type: Optional[str] - home=None, # type: Optional[str] - prefix=None, # type: Optional[str] - warn_script_location=True, # type: bool - use_user_site=False, # type: bool - pycompile=True # type: bool - ): - # type: (...) -> None - move_wheel_files( - self.name, self.req, wheeldir, - user=use_user_site, - home=home, - root=root, - prefix=prefix, - pycompile=pycompile, - isolated=self.isolated, - warn_script_location=warn_script_location, - ) - - # Things valid for sdists - @property - def setup_py_dir(self): - # type: () -> str - return os.path.join( - self.source_dir, - self.link and self.link.subdirectory_fragment or '') - - @property - def setup_py(self): - # type: () -> str - assert self.source_dir, "No source dir for %s" % self - - setup_py = os.path.join(self.setup_py_dir, 'setup.py') - - # Python2 __file__ should not be unicode - if six.PY2 and isinstance(setup_py, six.text_type): - setup_py = setup_py.encode(sys.getfilesystemencoding()) - - return setup_py - - @property - def pyproject_toml(self): - # type: () -> str - assert self.source_dir, "No source dir for %s" % self - - return make_pyproject_path(self.setup_py_dir) - - def load_pyproject_toml(self): - # type: () -> None - """Load the pyproject.toml file. - - After calling this routine, all of the attributes related to PEP 517 - processing for this requirement have been set. In particular, the - use_pep517 attribute can be used to determine whether we should - follow the PEP 517 or legacy (setup.py) code path. - """ - pep517_data = load_pyproject_toml( - self.use_pep517, - self.pyproject_toml, - self.setup_py, - str(self) - ) - - if pep517_data is None: - self.use_pep517 = False - else: - self.use_pep517 = True - requires, backend, check = pep517_data - self.requirements_to_check = check - self.pyproject_requires = requires - self.pep517_backend = Pep517HookCaller(self.setup_py_dir, backend) - - # Use a custom function to call subprocesses - self.spin_message = "" - - def runner(cmd, cwd=None, extra_environ=None): - with open_spinner(self.spin_message) as spinner: - call_subprocess( - cmd, - cwd=cwd, - extra_environ=extra_environ, - show_stdout=False, - spinner=spinner - ) - self.spin_message = "" - - self.pep517_backend._subprocess_runner = runner - - def prepare_metadata(self): - # type: () -> None - """Ensure that project metadata is available. - - Under PEP 517, call the backend hook to prepare the metadata. - Under legacy processing, call setup.py egg-info. - """ - assert self.source_dir - - with indent_log(): - if self.use_pep517: - self.prepare_pep517_metadata() - else: - self.run_egg_info() - - if not self.req: - if isinstance(parse_version(self.metadata["Version"]), Version): - op = "==" - else: - op = "===" - self.req = Requirement( - "".join([ - self.metadata["Name"], - op, - self.metadata["Version"], - ]) - ) - self._correct_build_location() - else: - metadata_name = canonicalize_name(self.metadata["Name"]) - if canonicalize_name(self.req.name) != metadata_name: - logger.warning( - 'Generating metadata for package %s ' - 'produced metadata for project name %s. Fix your ' - '#egg=%s fragments.', - self.name, metadata_name, self.name - ) - self.req = Requirement(metadata_name) - - def prepare_pep517_metadata(self): - # type: () -> None - assert self.pep517_backend is not None - - metadata_dir = os.path.join( - self.setup_py_dir, - 'pip-wheel-metadata' - ) - ensure_dir(metadata_dir) - - with self.build_env: - # Note that Pep517HookCaller implements a fallback for - # prepare_metadata_for_build_wheel, so we don't have to - # consider the possibility that this hook doesn't exist. - backend = self.pep517_backend - self.spin_message = "Preparing wheel metadata" - distinfo_dir = backend.prepare_metadata_for_build_wheel( - metadata_dir - ) - - self.metadata_directory = os.path.join(metadata_dir, distinfo_dir) - - def run_egg_info(self): - # type: () -> None - if self.name: - logger.debug( - 'Running setup.py (path:%s) egg_info for package %s', - self.setup_py, self.name, - ) - else: - logger.debug( - 'Running setup.py (path:%s) egg_info for package from %s', - self.setup_py, self.link, - ) - script = SETUPTOOLS_SHIM % self.setup_py - base_cmd = [sys.executable, '-c', script] - if self.isolated: - base_cmd += ["--no-user-cfg"] - egg_info_cmd = base_cmd + ['egg_info'] - # We can't put the .egg-info files at the root, because then the - # source code will be mistaken for an installed egg, causing - # problems - if self.editable: - egg_base_option = [] # type: List[str] - else: - egg_info_dir = os.path.join(self.setup_py_dir, 'pip-egg-info') - ensure_dir(egg_info_dir) - egg_base_option = ['--egg-base', 'pip-egg-info'] - with self.build_env: - call_subprocess( - egg_info_cmd + egg_base_option, - cwd=self.setup_py_dir, - show_stdout=False, - command_desc='python setup.py egg_info') - - @property - def egg_info_path(self): - # type: () -> str - if self._egg_info_path is None: - if self.editable: - base = self.source_dir - else: - base = os.path.join(self.setup_py_dir, 'pip-egg-info') - filenames = os.listdir(base) - if self.editable: - filenames = [] - for root, dirs, files in os.walk(base): - for dir in vcs.dirnames: - if dir in dirs: - dirs.remove(dir) - # Iterate over a copy of ``dirs``, since mutating - # a list while iterating over it can cause trouble. - # (See https://github.com/pypa/pip/pull/462.) - for dir in list(dirs): - # Don't search in anything that looks like a virtualenv - # environment - if ( - os.path.lexists( - os.path.join(root, dir, 'bin', 'python') - ) or - os.path.exists( - os.path.join( - root, dir, 'Scripts', 'Python.exe' - ) - )): - dirs.remove(dir) - # Also don't search through tests - elif dir == 'test' or dir == 'tests': - dirs.remove(dir) - filenames.extend([os.path.join(root, dir) - for dir in dirs]) - filenames = [f for f in filenames if f.endswith('.egg-info')] - - if not filenames: - raise InstallationError( - "Files/directories not found in %s" % base - ) - # if we have more than one match, we pick the toplevel one. This - # can easily be the case if there is a dist folder which contains - # an extracted tarball for testing purposes. - if len(filenames) > 1: - filenames.sort( - key=lambda x: x.count(os.path.sep) + - (os.path.altsep and x.count(os.path.altsep) or 0) - ) - self._egg_info_path = os.path.join(base, filenames[0]) - return self._egg_info_path - - @property - def metadata(self): - if not hasattr(self, '_metadata'): - self._metadata = get_metadata(self.get_dist()) - - return self._metadata - - def get_dist(self): - # type: () -> Distribution - """Return a pkg_resources.Distribution for this requirement""" - if self.metadata_directory: - base_dir, distinfo = os.path.split(self.metadata_directory) - metadata = pkg_resources.PathMetadata( - base_dir, self.metadata_directory - ) - dist_name = os.path.splitext(distinfo)[0] - typ = pkg_resources.DistInfoDistribution - else: - egg_info = self.egg_info_path.rstrip(os.path.sep) - base_dir = os.path.dirname(egg_info) - metadata = pkg_resources.PathMetadata(base_dir, egg_info) - dist_name = os.path.splitext(os.path.basename(egg_info))[0] - # https://github.com/python/mypy/issues/1174 - typ = pkg_resources.Distribution # type: ignore - - return typ( - base_dir, - project_name=dist_name, - metadata=metadata, - ) - - def assert_source_matches_version(self): - # type: () -> None - assert self.source_dir - version = self.metadata['version'] - if self.req.specifier and version not in self.req.specifier: - logger.warning( - 'Requested %s, but installing version %s', - self, - version, - ) - else: - logger.debug( - 'Source in %s has version %s, which satisfies requirement %s', - display_path(self.source_dir), - version, - self, - ) - - # For both source distributions and editables - def ensure_has_source_dir(self, parent_dir): - # type: (str) -> str - """Ensure that a source_dir is set. - - This will create a temporary build dir if the name of the requirement - isn't known yet. - - :param parent_dir: The ideal pip parent_dir for the source_dir. - Generally src_dir for editables and build_dir for sdists. - :return: self.source_dir - """ - if self.source_dir is None: - self.source_dir = self.build_location(parent_dir) - return self.source_dir - - # For editable installations - def install_editable( - self, - install_options, # type: List[str] - global_options=(), # type: Sequence[str] - prefix=None # type: Optional[str] - ): - # type: (...) -> None - logger.info('Running setup.py develop for %s', self.name) - - if self.isolated: - global_options = list(global_options) + ["--no-user-cfg"] - - if prefix: - prefix_param = ['--prefix={}'.format(prefix)] - install_options = list(install_options) + prefix_param - - with indent_log(): - # FIXME: should we do --install-headers here too? - with self.build_env: - call_subprocess( - [ - sys.executable, - '-c', - SETUPTOOLS_SHIM % self.setup_py - ] + - list(global_options) + - ['develop', '--no-deps'] + - list(install_options), - - cwd=self.setup_py_dir, - show_stdout=False, - ) - - self.install_succeeded = True - - def update_editable(self, obtain=True): - # type: (bool) -> None - if not self.link: - logger.debug( - "Cannot update repository at %s; repository location is " - "unknown", - self.source_dir, - ) - return - assert self.editable - assert self.source_dir - if self.link.scheme == 'file': - # Static paths don't get updated - return - assert '+' in self.link.url, "bad url: %r" % self.link.url - if not self.update: - return - vc_type, url = self.link.url.split('+', 1) - backend = vcs.get_backend(vc_type) - if backend: - vcs_backend = backend(self.link.url) - if obtain: - vcs_backend.obtain(self.source_dir) - else: - vcs_backend.export(self.source_dir) - else: - assert 0, ( - 'Unexpected version control type (in %s): %s' - % (self.link, vc_type)) - - # Top-level Actions - def uninstall(self, auto_confirm=False, verbose=False, - use_user_site=False): - # type: (bool, bool, bool) -> Optional[UninstallPathSet] - """ - Uninstall the distribution currently satisfying this requirement. - - Prompts before removing or modifying files unless - ``auto_confirm`` is True. - - Refuses to delete or modify files outside of ``sys.prefix`` - - thus uninstallation within a virtual environment can only - modify that virtual environment, even if the virtualenv is - linked to global site-packages. - - """ - if not self.check_if_exists(use_user_site): - logger.warning("Skipping %s as it is not installed.", self.name) - return None - dist = self.satisfied_by or self.conflicts_with - - uninstalled_pathset = UninstallPathSet.from_dist(dist) - uninstalled_pathset.remove(auto_confirm, verbose) - return uninstalled_pathset - - def _clean_zip_name(self, name, prefix): # only used by archive. - assert name.startswith(prefix + os.path.sep), ( - "name %r doesn't start with prefix %r" % (name, prefix) - ) - name = name[len(prefix) + 1:] - name = name.replace(os.path.sep, '/') - return name - - def _get_archive_name(self, path, parentdir, rootdir): - # type: (str, str, str) -> str - path = os.path.join(parentdir, path) - name = self._clean_zip_name(path, rootdir) - return self.name + '/' + name - - # TODO: Investigate if this should be kept in InstallRequirement - # Seems to be used only when VCS + downloads - def archive(self, build_dir): - # type: (str) -> None - assert self.source_dir - create_archive = True - archive_name = '%s-%s.zip' % (self.name, self.metadata["version"]) - archive_path = os.path.join(build_dir, archive_name) - if os.path.exists(archive_path): - response = ask_path_exists( - 'The file %s exists. (i)gnore, (w)ipe, (b)ackup, (a)bort ' % - display_path(archive_path), ('i', 'w', 'b', 'a')) - if response == 'i': - create_archive = False - elif response == 'w': - logger.warning('Deleting %s', display_path(archive_path)) - os.remove(archive_path) - elif response == 'b': - dest_file = backup_dir(archive_path) - logger.warning( - 'Backing up %s to %s', - display_path(archive_path), - display_path(dest_file), - ) - shutil.move(archive_path, dest_file) - elif response == 'a': - sys.exit(-1) - if create_archive: - zip = zipfile.ZipFile( - archive_path, 'w', zipfile.ZIP_DEFLATED, - allowZip64=True - ) - dir = os.path.normcase(os.path.abspath(self.setup_py_dir)) - for dirpath, dirnames, filenames in os.walk(dir): - if 'pip-egg-info' in dirnames: - dirnames.remove('pip-egg-info') - for dirname in dirnames: - dir_arcname = self._get_archive_name(dirname, - parentdir=dirpath, - rootdir=dir) - zipdir = zipfile.ZipInfo(dir_arcname + '/') - zipdir.external_attr = 0x1ED << 16 # 0o755 - zip.writestr(zipdir, '') - for filename in filenames: - if filename == PIP_DELETE_MARKER_FILENAME: - continue - file_arcname = self._get_archive_name(filename, - parentdir=dirpath, - rootdir=dir) - filename = os.path.join(dirpath, filename) - zip.write(filename, file_arcname) - zip.close() - logger.info('Saved %s', display_path(archive_path)) - - def install( - self, - install_options, # type: List[str] - global_options=None, # type: Optional[Sequence[str]] - root=None, # type: Optional[str] - home=None, # type: Optional[str] - prefix=None, # type: Optional[str] - warn_script_location=True, # type: bool - use_user_site=False, # type: bool - pycompile=True # type: bool - ): - # type: (...) -> None - global_options = global_options if global_options is not None else [] - if self.editable: - self.install_editable( - install_options, global_options, prefix=prefix, - ) - return - if self.is_wheel: - version = wheel.wheel_version(self.source_dir) - wheel.check_compatibility(version, self.name) - - self.move_wheel_files( - self.source_dir, root=root, prefix=prefix, home=home, - warn_script_location=warn_script_location, - use_user_site=use_user_site, pycompile=pycompile, - ) - self.install_succeeded = True - return - - # Extend the list of global and install options passed on to - # the setup.py call with the ones from the requirements file. - # Options specified in requirements file override those - # specified on the command line, since the last option given - # to setup.py is the one that is used. - global_options = list(global_options) + \ - self.options.get('global_options', []) - install_options = list(install_options) + \ - self.options.get('install_options', []) - - if self.isolated: - # https://github.com/python/mypy/issues/1174 - global_options = global_options + ["--no-user-cfg"] # type: ignore - - with TempDirectory(kind="record") as temp_dir: - record_filename = os.path.join(temp_dir.path, 'install-record.txt') - install_args = self.get_install_args( - global_options, record_filename, root, prefix, pycompile, - ) - msg = 'Running setup.py install for %s' % (self.name,) - with open_spinner(msg) as spinner: - with indent_log(): - with self.build_env: - call_subprocess( - install_args + install_options, - cwd=self.setup_py_dir, - show_stdout=False, - spinner=spinner, - ) - - if not os.path.exists(record_filename): - logger.debug('Record file %s not found', record_filename) - return - self.install_succeeded = True - - def prepend_root(path): - if root is None or not os.path.isabs(path): - return path - else: - return change_root(root, path) - - with open(record_filename) as f: - for line in f: - directory = os.path.dirname(line) - if directory.endswith('.egg-info'): - egg_info_dir = prepend_root(directory) - break - else: - logger.warning( - 'Could not find .egg-info directory in install record' - ' for %s', - self, - ) - # FIXME: put the record somewhere - # FIXME: should this be an error? - return - new_lines = [] - with open(record_filename) as f: - for line in f: - filename = line.strip() - if os.path.isdir(filename): - filename += os.path.sep - new_lines.append( - os.path.relpath(prepend_root(filename), egg_info_dir) - ) - new_lines.sort() - ensure_dir(egg_info_dir) - inst_files_path = os.path.join(egg_info_dir, 'installed-files.txt') - with open(inst_files_path, 'w') as f: - f.write('\n'.join(new_lines) + '\n') - - def get_install_args( - self, - global_options, # type: Sequence[str] - record_filename, # type: str - root, # type: Optional[str] - prefix, # type: Optional[str] - pycompile # type: bool - ): - # type: (...) -> List[str] - install_args = [sys.executable, "-u"] - install_args.append('-c') - install_args.append(SETUPTOOLS_SHIM % self.setup_py) - install_args += list(global_options) + \ - ['install', '--record', record_filename] - install_args += ['--single-version-externally-managed'] - - if root is not None: - install_args += ['--root', root] - if prefix is not None: - install_args += ['--prefix', prefix] - - if pycompile: - install_args += ["--compile"] - else: - install_args += ["--no-compile"] - - if running_under_virtualenv(): - py_ver_str = 'python' + sysconfig.get_python_version() - install_args += ['--install-headers', - os.path.join(sys.prefix, 'include', 'site', - py_ver_str, self.name)] - - return install_args diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_set.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_set.py deleted file mode 100644 index d1410e9..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_set.py +++ /dev/null @@ -1,197 +0,0 @@ -from __future__ import absolute_import - -import logging -from collections import OrderedDict - -from pip._internal.exceptions import InstallationError -from pip._internal.utils.logging import indent_log -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.wheel import Wheel - -if MYPY_CHECK_RUNNING: - from typing import Optional, List, Tuple, Dict, Iterable # noqa: F401 - from pip._internal.req.req_install import InstallRequirement # noqa: F401 - - -logger = logging.getLogger(__name__) - - -class RequirementSet(object): - - def __init__(self, require_hashes=False, check_supported_wheels=True): - # type: (bool, bool) -> None - """Create a RequirementSet. - """ - - self.requirements = OrderedDict() # type: Dict[str, InstallRequirement] # noqa: E501 - self.require_hashes = require_hashes - self.check_supported_wheels = check_supported_wheels - - # Mapping of alias: real_name - self.requirement_aliases = {} # type: Dict[str, str] - self.unnamed_requirements = [] # type: List[InstallRequirement] - self.successfully_downloaded = [] # type: List[InstallRequirement] - self.reqs_to_cleanup = [] # type: List[InstallRequirement] - - def __str__(self): - reqs = [req for req in self.requirements.values() - if not req.comes_from] - reqs.sort(key=lambda req: req.name.lower()) - return ' '.join([str(req.req) for req in reqs]) - - def __repr__(self): - reqs = [req for req in self.requirements.values()] - reqs.sort(key=lambda req: req.name.lower()) - reqs_str = ', '.join([str(req.req) for req in reqs]) - return ('<%s object; %d requirement(s): %s>' - % (self.__class__.__name__, len(reqs), reqs_str)) - - def add_requirement( - self, - install_req, # type: InstallRequirement - parent_req_name=None, # type: Optional[str] - extras_requested=None # type: Optional[Iterable[str]] - ): - # type: (...) -> Tuple[List[InstallRequirement], Optional[InstallRequirement]] # noqa: E501 - """Add install_req as a requirement to install. - - :param parent_req_name: The name of the requirement that needed this - added. The name is used because when multiple unnamed requirements - resolve to the same name, we could otherwise end up with dependency - links that point outside the Requirements set. parent_req must - already be added. Note that None implies that this is a user - supplied requirement, vs an inferred one. - :param extras_requested: an iterable of extras used to evaluate the - environment markers. - :return: Additional requirements to scan. That is either [] if - the requirement is not applicable, or [install_req] if the - requirement is applicable and has just been added. - """ - name = install_req.name - - # If the markers do not match, ignore this requirement. - if not install_req.match_markers(extras_requested): - logger.info( - "Ignoring %s: markers '%s' don't match your environment", - name, install_req.markers, - ) - return [], None - - # If the wheel is not supported, raise an error. - # Should check this after filtering out based on environment markers to - # allow specifying different wheels based on the environment/OS, in a - # single requirements file. - if install_req.link and install_req.link.is_wheel: - wheel = Wheel(install_req.link.filename) - if self.check_supported_wheels and not wheel.supported(): - raise InstallationError( - "%s is not a supported wheel on this platform." % - wheel.filename - ) - - # This next bit is really a sanity check. - assert install_req.is_direct == (parent_req_name is None), ( - "a direct req shouldn't have a parent and also, " - "a non direct req should have a parent" - ) - - # Unnamed requirements are scanned again and the requirement won't be - # added as a dependency until after scanning. - if not name: - # url or path requirement w/o an egg fragment - self.unnamed_requirements.append(install_req) - return [install_req], None - - try: - existing_req = self.get_requirement(name) - except KeyError: - existing_req = None - - has_conflicting_requirement = ( - parent_req_name is None and - existing_req and - not existing_req.constraint and - existing_req.extras == install_req.extras and - existing_req.req.specifier != install_req.req.specifier - ) - if has_conflicting_requirement: - raise InstallationError( - "Double requirement given: %s (already in %s, name=%r)" - % (install_req, existing_req, name) - ) - - # When no existing requirement exists, add the requirement as a - # dependency and it will be scanned again after. - if not existing_req: - self.requirements[name] = install_req - # FIXME: what about other normalizations? E.g., _ vs. -? - if name.lower() != name: - self.requirement_aliases[name.lower()] = name - # We'd want to rescan this requirements later - return [install_req], install_req - - # Assume there's no need to scan, and that we've already - # encountered this for scanning. - if install_req.constraint or not existing_req.constraint: - return [], existing_req - - does_not_satisfy_constraint = ( - install_req.link and - not ( - existing_req.link and - install_req.link.path == existing_req.link.path - ) - ) - if does_not_satisfy_constraint: - self.reqs_to_cleanup.append(install_req) - raise InstallationError( - "Could not satisfy constraints for '%s': " - "installation from path or url cannot be " - "constrained to a version" % name, - ) - # If we're now installing a constraint, mark the existing - # object for real installation. - existing_req.constraint = False - existing_req.extras = tuple(sorted( - set(existing_req.extras) | set(install_req.extras) - )) - logger.debug( - "Setting %s extras to: %s", - existing_req, existing_req.extras, - ) - # Return the existing requirement for addition to the parent and - # scanning again. - return [existing_req], existing_req - - def has_requirement(self, project_name): - # type: (str) -> bool - name = project_name.lower() - if (name in self.requirements and - not self.requirements[name].constraint or - name in self.requirement_aliases and - not self.requirements[self.requirement_aliases[name]].constraint): - return True - return False - - @property - def has_requirements(self): - # type: () -> List[InstallRequirement] - return list(req for req in self.requirements.values() if not - req.constraint) or self.unnamed_requirements - - def get_requirement(self, project_name): - # type: (str) -> InstallRequirement - for name in project_name, project_name.lower(): - if name in self.requirements: - return self.requirements[name] - if name in self.requirement_aliases: - return self.requirements[self.requirement_aliases[name]] - raise KeyError("No project with the name %r" % project_name) - - def cleanup_files(self): - # type: () -> None - """Clean up files, remove builds.""" - logger.debug('Cleaning up...') - with indent_log(): - for req in self.reqs_to_cleanup: - req.remove_temporary_source() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_tracker.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_tracker.py deleted file mode 100644 index 82e084a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_tracker.py +++ /dev/null @@ -1,88 +0,0 @@ -from __future__ import absolute_import - -import contextlib -import errno -import hashlib -import logging -import os - -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Set, Iterator # noqa: F401 - from pip._internal.req.req_install import InstallRequirement # noqa: F401 - from pip._internal.models.link import Link # noqa: F401 - -logger = logging.getLogger(__name__) - - -class RequirementTracker(object): - - def __init__(self): - # type: () -> None - self._root = os.environ.get('PIP_REQ_TRACKER') - if self._root is None: - self._temp_dir = TempDirectory(delete=False, kind='req-tracker') - self._temp_dir.create() - self._root = os.environ['PIP_REQ_TRACKER'] = self._temp_dir.path - logger.debug('Created requirements tracker %r', self._root) - else: - self._temp_dir = None - logger.debug('Re-using requirements tracker %r', self._root) - self._entries = set() # type: Set[InstallRequirement] - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - self.cleanup() - - def _entry_path(self, link): - # type: (Link) -> str - hashed = hashlib.sha224(link.url_without_fragment.encode()).hexdigest() - return os.path.join(self._root, hashed) - - def add(self, req): - # type: (InstallRequirement) -> None - link = req.link - info = str(req) - entry_path = self._entry_path(link) - try: - with open(entry_path) as fp: - # Error, these's already a build in progress. - raise LookupError('%s is already being built: %s' - % (link, fp.read())) - except IOError as e: - if e.errno != errno.ENOENT: - raise - assert req not in self._entries - with open(entry_path, 'w') as fp: - fp.write(info) - self._entries.add(req) - logger.debug('Added %s to build tracker %r', req, self._root) - - def remove(self, req): - # type: (InstallRequirement) -> None - link = req.link - self._entries.remove(req) - os.unlink(self._entry_path(link)) - logger.debug('Removed %s from build tracker %r', req, self._root) - - def cleanup(self): - # type: () -> None - for req in set(self._entries): - self.remove(req) - remove = self._temp_dir is not None - if remove: - self._temp_dir.cleanup() - logger.debug('%s build tracker %r', - 'Removed' if remove else 'Cleaned', - self._root) - - @contextlib.contextmanager - def track(self, req): - # type: (InstallRequirement) -> Iterator[None] - self.add(req) - yield - self.remove(req) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_uninstall.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_uninstall.py deleted file mode 100644 index c80959e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_uninstall.py +++ /dev/null @@ -1,596 +0,0 @@ -from __future__ import absolute_import - -import csv -import functools -import logging -import os -import sys -import sysconfig - -from pip._vendor import pkg_resources - -from pip._internal.exceptions import UninstallationError -from pip._internal.locations import bin_py, bin_user -from pip._internal.utils.compat import WINDOWS, cache_from_source, uses_pycache -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import ( - FakeFile, ask, dist_in_usersite, dist_is_local, egg_link_path, is_local, - normalize_path, renames, rmtree, -) -from pip._internal.utils.temp_dir import AdjacentTempDirectory, TempDirectory - -logger = logging.getLogger(__name__) - - -def _script_names(dist, script_name, is_gui): - """Create the fully qualified name of the files created by - {console,gui}_scripts for the given ``dist``. - Returns the list of file names - """ - if dist_in_usersite(dist): - bin_dir = bin_user - else: - bin_dir = bin_py - exe_name = os.path.join(bin_dir, script_name) - paths_to_remove = [exe_name] - if WINDOWS: - paths_to_remove.append(exe_name + '.exe') - paths_to_remove.append(exe_name + '.exe.manifest') - if is_gui: - paths_to_remove.append(exe_name + '-script.pyw') - else: - paths_to_remove.append(exe_name + '-script.py') - return paths_to_remove - - -def _unique(fn): - @functools.wraps(fn) - def unique(*args, **kw): - seen = set() - for item in fn(*args, **kw): - if item not in seen: - seen.add(item) - yield item - return unique - - -@_unique -def uninstallation_paths(dist): - """ - Yield all the uninstallation paths for dist based on RECORD-without-.py[co] - - Yield paths to all the files in RECORD. For each .py file in RECORD, add - the .pyc and .pyo in the same directory. - - UninstallPathSet.add() takes care of the __pycache__ .py[co]. - """ - r = csv.reader(FakeFile(dist.get_metadata_lines('RECORD'))) - for row in r: - path = os.path.join(dist.location, row[0]) - yield path - if path.endswith('.py'): - dn, fn = os.path.split(path) - base = fn[:-3] - path = os.path.join(dn, base + '.pyc') - yield path - path = os.path.join(dn, base + '.pyo') - yield path - - -def compact(paths): - """Compact a path set to contain the minimal number of paths - necessary to contain all paths in the set. If /a/path/ and - /a/path/to/a/file.txt are both in the set, leave only the - shorter path.""" - - sep = os.path.sep - short_paths = set() - for path in sorted(paths, key=len): - should_skip = any( - path.startswith(shortpath.rstrip("*")) and - path[len(shortpath.rstrip("*").rstrip(sep))] == sep - for shortpath in short_paths - ) - if not should_skip: - short_paths.add(path) - return short_paths - - -def compress_for_rename(paths): - """Returns a set containing the paths that need to be renamed. - - This set may include directories when the original sequence of paths - included every file on disk. - """ - case_map = dict((os.path.normcase(p), p) for p in paths) - remaining = set(case_map) - unchecked = sorted(set(os.path.split(p)[0] - for p in case_map.values()), key=len) - wildcards = set() - - def norm_join(*a): - return os.path.normcase(os.path.join(*a)) - - for root in unchecked: - if any(os.path.normcase(root).startswith(w) - for w in wildcards): - # This directory has already been handled. - continue - - all_files = set() - all_subdirs = set() - for dirname, subdirs, files in os.walk(root): - all_subdirs.update(norm_join(root, dirname, d) - for d in subdirs) - all_files.update(norm_join(root, dirname, f) - for f in files) - # If all the files we found are in our remaining set of files to - # remove, then remove them from the latter set and add a wildcard - # for the directory. - if not (all_files - remaining): - remaining.difference_update(all_files) - wildcards.add(root + os.sep) - - return set(map(case_map.__getitem__, remaining)) | wildcards - - -def compress_for_output_listing(paths): - """Returns a tuple of 2 sets of which paths to display to user - - The first set contains paths that would be deleted. Files of a package - are not added and the top-level directory of the package has a '*' added - at the end - to signify that all it's contents are removed. - - The second set contains files that would have been skipped in the above - folders. - """ - - will_remove = list(paths) - will_skip = set() - - # Determine folders and files - folders = set() - files = set() - for path in will_remove: - if path.endswith(".pyc"): - continue - if path.endswith("__init__.py") or ".dist-info" in path: - folders.add(os.path.dirname(path)) - files.add(path) - - _normcased_files = set(map(os.path.normcase, files)) - - folders = compact(folders) - - # This walks the tree using os.walk to not miss extra folders - # that might get added. - for folder in folders: - for dirpath, _, dirfiles in os.walk(folder): - for fname in dirfiles: - if fname.endswith(".pyc"): - continue - - file_ = os.path.join(dirpath, fname) - if (os.path.isfile(file_) and - os.path.normcase(file_) not in _normcased_files): - # We are skipping this file. Add it to the set. - will_skip.add(file_) - - will_remove = files | { - os.path.join(folder, "*") for folder in folders - } - - return will_remove, will_skip - - -class StashedUninstallPathSet(object): - """A set of file rename operations to stash files while - tentatively uninstalling them.""" - def __init__(self): - # Mapping from source file root to [Adjacent]TempDirectory - # for files under that directory. - self._save_dirs = {} - # (old path, new path) tuples for each move that may need - # to be undone. - self._moves = [] - - def _get_directory_stash(self, path): - """Stashes a directory. - - Directories are stashed adjacent to their original location if - possible, or else moved/copied into the user's temp dir.""" - - try: - save_dir = AdjacentTempDirectory(path) - save_dir.create() - except OSError: - save_dir = TempDirectory(kind="uninstall") - save_dir.create() - self._save_dirs[os.path.normcase(path)] = save_dir - - return save_dir.path - - def _get_file_stash(self, path): - """Stashes a file. - - If no root has been provided, one will be created for the directory - in the user's temp directory.""" - path = os.path.normcase(path) - head, old_head = os.path.dirname(path), None - save_dir = None - - while head != old_head: - try: - save_dir = self._save_dirs[head] - break - except KeyError: - pass - head, old_head = os.path.dirname(head), head - else: - # Did not find any suitable root - head = os.path.dirname(path) - save_dir = TempDirectory(kind='uninstall') - save_dir.create() - self._save_dirs[head] = save_dir - - relpath = os.path.relpath(path, head) - if relpath and relpath != os.path.curdir: - return os.path.join(save_dir.path, relpath) - return save_dir.path - - def stash(self, path): - """Stashes the directory or file and returns its new location. - """ - if os.path.isdir(path): - new_path = self._get_directory_stash(path) - else: - new_path = self._get_file_stash(path) - - self._moves.append((path, new_path)) - if os.path.isdir(path) and os.path.isdir(new_path): - # If we're moving a directory, we need to - # remove the destination first or else it will be - # moved to inside the existing directory. - # We just created new_path ourselves, so it will - # be removable. - os.rmdir(new_path) - renames(path, new_path) - return new_path - - def commit(self): - """Commits the uninstall by removing stashed files.""" - for _, save_dir in self._save_dirs.items(): - save_dir.cleanup() - self._moves = [] - self._save_dirs = {} - - def rollback(self): - """Undoes the uninstall by moving stashed files back.""" - for p in self._moves: - logging.info("Moving to %s\n from %s", *p) - - for new_path, path in self._moves: - try: - logger.debug('Replacing %s from %s', new_path, path) - if os.path.isfile(new_path): - os.unlink(new_path) - elif os.path.isdir(new_path): - rmtree(new_path) - renames(path, new_path) - except OSError as ex: - logger.error("Failed to restore %s", new_path) - logger.debug("Exception: %s", ex) - - self.commit() - - @property - def can_rollback(self): - return bool(self._moves) - - -class UninstallPathSet(object): - """A set of file paths to be removed in the uninstallation of a - requirement.""" - def __init__(self, dist): - self.paths = set() - self._refuse = set() - self.pth = {} - self.dist = dist - self._moved_paths = StashedUninstallPathSet() - - def _permitted(self, path): - """ - Return True if the given path is one we are permitted to - remove/modify, False otherwise. - - """ - return is_local(path) - - def add(self, path): - head, tail = os.path.split(path) - - # we normalize the head to resolve parent directory symlinks, but not - # the tail, since we only want to uninstall symlinks, not their targets - path = os.path.join(normalize_path(head), os.path.normcase(tail)) - - if not os.path.exists(path): - return - if self._permitted(path): - self.paths.add(path) - else: - self._refuse.add(path) - - # __pycache__ files can show up after 'installed-files.txt' is created, - # due to imports - if os.path.splitext(path)[1] == '.py' and uses_pycache: - self.add(cache_from_source(path)) - - def add_pth(self, pth_file, entry): - pth_file = normalize_path(pth_file) - if self._permitted(pth_file): - if pth_file not in self.pth: - self.pth[pth_file] = UninstallPthEntries(pth_file) - self.pth[pth_file].add(entry) - else: - self._refuse.add(pth_file) - - def remove(self, auto_confirm=False, verbose=False): - """Remove paths in ``self.paths`` with confirmation (unless - ``auto_confirm`` is True).""" - - if not self.paths: - logger.info( - "Can't uninstall '%s'. No files were found to uninstall.", - self.dist.project_name, - ) - return - - dist_name_version = ( - self.dist.project_name + "-" + self.dist.version - ) - logger.info('Uninstalling %s:', dist_name_version) - - with indent_log(): - if auto_confirm or self._allowed_to_proceed(verbose): - moved = self._moved_paths - - for_rename = compress_for_rename(self.paths) - - for path in sorted(compact(for_rename)): - moved.stash(path) - logger.debug('Removing file or directory %s', path) - - for pth in self.pth.values(): - pth.remove() - - logger.info('Successfully uninstalled %s', dist_name_version) - - def _allowed_to_proceed(self, verbose): - """Display which files would be deleted and prompt for confirmation - """ - - def _display(msg, paths): - if not paths: - return - - logger.info(msg) - with indent_log(): - for path in sorted(compact(paths)): - logger.info(path) - - if not verbose: - will_remove, will_skip = compress_for_output_listing(self.paths) - else: - # In verbose mode, display all the files that are going to be - # deleted. - will_remove = list(self.paths) - will_skip = set() - - _display('Would remove:', will_remove) - _display('Would not remove (might be manually added):', will_skip) - _display('Would not remove (outside of prefix):', self._refuse) - if verbose: - _display('Will actually move:', compress_for_rename(self.paths)) - - return ask('Proceed (y/n)? ', ('y', 'n')) == 'y' - - def rollback(self): - """Rollback the changes previously made by remove().""" - if not self._moved_paths.can_rollback: - logger.error( - "Can't roll back %s; was not uninstalled", - self.dist.project_name, - ) - return False - logger.info('Rolling back uninstall of %s', self.dist.project_name) - self._moved_paths.rollback() - for pth in self.pth.values(): - pth.rollback() - - def commit(self): - """Remove temporary save dir: rollback will no longer be possible.""" - self._moved_paths.commit() - - @classmethod - def from_dist(cls, dist): - dist_path = normalize_path(dist.location) - if not dist_is_local(dist): - logger.info( - "Not uninstalling %s at %s, outside environment %s", - dist.key, - dist_path, - sys.prefix, - ) - return cls(dist) - - if dist_path in {p for p in {sysconfig.get_path("stdlib"), - sysconfig.get_path("platstdlib")} - if p}: - logger.info( - "Not uninstalling %s at %s, as it is in the standard library.", - dist.key, - dist_path, - ) - return cls(dist) - - paths_to_remove = cls(dist) - develop_egg_link = egg_link_path(dist) - develop_egg_link_egg_info = '{}.egg-info'.format( - pkg_resources.to_filename(dist.project_name)) - egg_info_exists = dist.egg_info and os.path.exists(dist.egg_info) - # Special case for distutils installed package - distutils_egg_info = getattr(dist._provider, 'path', None) - - # Uninstall cases order do matter as in the case of 2 installs of the - # same package, pip needs to uninstall the currently detected version - if (egg_info_exists and dist.egg_info.endswith('.egg-info') and - not dist.egg_info.endswith(develop_egg_link_egg_info)): - # if dist.egg_info.endswith(develop_egg_link_egg_info), we - # are in fact in the develop_egg_link case - paths_to_remove.add(dist.egg_info) - if dist.has_metadata('installed-files.txt'): - for installed_file in dist.get_metadata( - 'installed-files.txt').splitlines(): - path = os.path.normpath( - os.path.join(dist.egg_info, installed_file) - ) - paths_to_remove.add(path) - # FIXME: need a test for this elif block - # occurs with --single-version-externally-managed/--record outside - # of pip - elif dist.has_metadata('top_level.txt'): - if dist.has_metadata('namespace_packages.txt'): - namespaces = dist.get_metadata('namespace_packages.txt') - else: - namespaces = [] - for top_level_pkg in [ - p for p - in dist.get_metadata('top_level.txt').splitlines() - if p and p not in namespaces]: - path = os.path.join(dist.location, top_level_pkg) - paths_to_remove.add(path) - paths_to_remove.add(path + '.py') - paths_to_remove.add(path + '.pyc') - paths_to_remove.add(path + '.pyo') - - elif distutils_egg_info: - raise UninstallationError( - "Cannot uninstall {!r}. It is a distutils installed project " - "and thus we cannot accurately determine which files belong " - "to it which would lead to only a partial uninstall.".format( - dist.project_name, - ) - ) - - elif dist.location.endswith('.egg'): - # package installed by easy_install - # We cannot match on dist.egg_name because it can slightly vary - # i.e. setuptools-0.6c11-py2.6.egg vs setuptools-0.6rc11-py2.6.egg - paths_to_remove.add(dist.location) - easy_install_egg = os.path.split(dist.location)[1] - easy_install_pth = os.path.join(os.path.dirname(dist.location), - 'easy-install.pth') - paths_to_remove.add_pth(easy_install_pth, './' + easy_install_egg) - - elif egg_info_exists and dist.egg_info.endswith('.dist-info'): - for path in uninstallation_paths(dist): - paths_to_remove.add(path) - - elif develop_egg_link: - # develop egg - with open(develop_egg_link, 'r') as fh: - link_pointer = os.path.normcase(fh.readline().strip()) - assert (link_pointer == dist.location), ( - 'Egg-link %s does not match installed location of %s ' - '(at %s)' % (link_pointer, dist.project_name, dist.location) - ) - paths_to_remove.add(develop_egg_link) - easy_install_pth = os.path.join(os.path.dirname(develop_egg_link), - 'easy-install.pth') - paths_to_remove.add_pth(easy_install_pth, dist.location) - - else: - logger.debug( - 'Not sure how to uninstall: %s - Check: %s', - dist, dist.location, - ) - - # find distutils scripts= scripts - if dist.has_metadata('scripts') and dist.metadata_isdir('scripts'): - for script in dist.metadata_listdir('scripts'): - if dist_in_usersite(dist): - bin_dir = bin_user - else: - bin_dir = bin_py - paths_to_remove.add(os.path.join(bin_dir, script)) - if WINDOWS: - paths_to_remove.add(os.path.join(bin_dir, script) + '.bat') - - # find console_scripts - _scripts_to_remove = [] - console_scripts = dist.get_entry_map(group='console_scripts') - for name in console_scripts.keys(): - _scripts_to_remove.extend(_script_names(dist, name, False)) - # find gui_scripts - gui_scripts = dist.get_entry_map(group='gui_scripts') - for name in gui_scripts.keys(): - _scripts_to_remove.extend(_script_names(dist, name, True)) - - for s in _scripts_to_remove: - paths_to_remove.add(s) - - return paths_to_remove - - -class UninstallPthEntries(object): - def __init__(self, pth_file): - if not os.path.isfile(pth_file): - raise UninstallationError( - "Cannot remove entries from nonexistent file %s" % pth_file - ) - self.file = pth_file - self.entries = set() - self._saved_lines = None - - def add(self, entry): - entry = os.path.normcase(entry) - # On Windows, os.path.normcase converts the entry to use - # backslashes. This is correct for entries that describe absolute - # paths outside of site-packages, but all the others use forward - # slashes. - if WINDOWS and not os.path.splitdrive(entry)[0]: - entry = entry.replace('\\', '/') - self.entries.add(entry) - - def remove(self): - logger.debug('Removing pth entries from %s:', self.file) - with open(self.file, 'rb') as fh: - # windows uses '\r\n' with py3k, but uses '\n' with py2.x - lines = fh.readlines() - self._saved_lines = lines - if any(b'\r\n' in line for line in lines): - endline = '\r\n' - else: - endline = '\n' - # handle missing trailing newline - if lines and not lines[-1].endswith(endline.encode("utf-8")): - lines[-1] = lines[-1] + endline.encode("utf-8") - for entry in self.entries: - try: - logger.debug('Removing entry: %s', entry) - lines.remove((entry + endline).encode("utf-8")) - except ValueError: - pass - with open(self.file, 'wb') as fh: - fh.writelines(lines) - - def rollback(self): - if self._saved_lines is None: - logger.error( - 'Cannot roll back changes to %s, none were made', self.file - ) - return False - logger.debug('Rolling %s back to previous state', self.file) - with open(self.file, 'wb') as fh: - fh.writelines(self._saved_lines) - return True diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/resolve.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/resolve.py deleted file mode 100644 index 33f572f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/resolve.py +++ /dev/null @@ -1,393 +0,0 @@ -"""Dependency Resolution - -The dependency resolution in pip is performed as follows: - -for top-level requirements: - a. only one spec allowed per project, regardless of conflicts or not. - otherwise a "double requirement" exception is raised - b. they override sub-dependency requirements. -for sub-dependencies - a. "first found, wins" (where the order is breadth first) -""" - -import logging -from collections import defaultdict -from itertools import chain - -from pip._internal.exceptions import ( - BestVersionAlreadyInstalled, DistributionNotFound, HashError, HashErrors, - UnsupportedPythonVersion, -) -from pip._internal.req.constructors import install_req_from_req_string -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import dist_in_usersite, ensure_dir -from pip._internal.utils.packaging import check_dist_requires_python -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Optional, DefaultDict, List, Set # noqa: F401 - from pip._internal.download import PipSession # noqa: F401 - from pip._internal.req.req_install import InstallRequirement # noqa: F401 - from pip._internal.index import PackageFinder # noqa: F401 - from pip._internal.req.req_set import RequirementSet # noqa: F401 - from pip._internal.operations.prepare import ( # noqa: F401 - DistAbstraction, RequirementPreparer - ) - from pip._internal.cache import WheelCache # noqa: F401 - -logger = logging.getLogger(__name__) - - -class Resolver(object): - """Resolves which packages need to be installed/uninstalled to perform \ - the requested operation without breaking the requirements of any package. - """ - - _allowed_strategies = {"eager", "only-if-needed", "to-satisfy-only"} - - def __init__( - self, - preparer, # type: RequirementPreparer - session, # type: PipSession - finder, # type: PackageFinder - wheel_cache, # type: Optional[WheelCache] - use_user_site, # type: bool - ignore_dependencies, # type: bool - ignore_installed, # type: bool - ignore_requires_python, # type: bool - force_reinstall, # type: bool - isolated, # type: bool - upgrade_strategy, # type: str - use_pep517=None # type: Optional[bool] - ): - # type: (...) -> None - super(Resolver, self).__init__() - assert upgrade_strategy in self._allowed_strategies - - self.preparer = preparer - self.finder = finder - self.session = session - - # NOTE: This would eventually be replaced with a cache that can give - # information about both sdist and wheels transparently. - self.wheel_cache = wheel_cache - - # This is set in resolve - self.require_hashes = None # type: Optional[bool] - - self.upgrade_strategy = upgrade_strategy - self.force_reinstall = force_reinstall - self.isolated = isolated - self.ignore_dependencies = ignore_dependencies - self.ignore_installed = ignore_installed - self.ignore_requires_python = ignore_requires_python - self.use_user_site = use_user_site - self.use_pep517 = use_pep517 - - self._discovered_dependencies = \ - defaultdict(list) # type: DefaultDict[str, List] - - def resolve(self, requirement_set): - # type: (RequirementSet) -> None - """Resolve what operations need to be done - - As a side-effect of this method, the packages (and their dependencies) - are downloaded, unpacked and prepared for installation. This - preparation is done by ``pip.operations.prepare``. - - Once PyPI has static dependency metadata available, it would be - possible to move the preparation to become a step separated from - dependency resolution. - """ - # make the wheelhouse - if self.preparer.wheel_download_dir: - ensure_dir(self.preparer.wheel_download_dir) - - # If any top-level requirement has a hash specified, enter - # hash-checking mode, which requires hashes from all. - root_reqs = ( - requirement_set.unnamed_requirements + - list(requirement_set.requirements.values()) - ) - self.require_hashes = ( - requirement_set.require_hashes or - any(req.has_hash_options for req in root_reqs) - ) - - # Display where finder is looking for packages - locations = self.finder.get_formatted_locations() - if locations: - logger.info(locations) - - # Actually prepare the files, and collect any exceptions. Most hash - # exceptions cannot be checked ahead of time, because - # req.populate_link() needs to be called before we can make decisions - # based on link type. - discovered_reqs = [] # type: List[InstallRequirement] - hash_errors = HashErrors() - for req in chain(root_reqs, discovered_reqs): - try: - discovered_reqs.extend( - self._resolve_one(requirement_set, req) - ) - except HashError as exc: - exc.req = req - hash_errors.append(exc) - - if hash_errors: - raise hash_errors - - def _is_upgrade_allowed(self, req): - # type: (InstallRequirement) -> bool - if self.upgrade_strategy == "to-satisfy-only": - return False - elif self.upgrade_strategy == "eager": - return True - else: - assert self.upgrade_strategy == "only-if-needed" - return req.is_direct - - def _set_req_to_reinstall(self, req): - # type: (InstallRequirement) -> None - """ - Set a requirement to be installed. - """ - # Don't uninstall the conflict if doing a user install and the - # conflict is not a user install. - if not self.use_user_site or dist_in_usersite(req.satisfied_by): - req.conflicts_with = req.satisfied_by - req.satisfied_by = None - - # XXX: Stop passing requirement_set for options - def _check_skip_installed(self, req_to_install): - # type: (InstallRequirement) -> Optional[str] - """Check if req_to_install should be skipped. - - This will check if the req is installed, and whether we should upgrade - or reinstall it, taking into account all the relevant user options. - - After calling this req_to_install will only have satisfied_by set to - None if the req_to_install is to be upgraded/reinstalled etc. Any - other value will be a dist recording the current thing installed that - satisfies the requirement. - - Note that for vcs urls and the like we can't assess skipping in this - routine - we simply identify that we need to pull the thing down, - then later on it is pulled down and introspected to assess upgrade/ - reinstalls etc. - - :return: A text reason for why it was skipped, or None. - """ - if self.ignore_installed: - return None - - req_to_install.check_if_exists(self.use_user_site) - if not req_to_install.satisfied_by: - return None - - if self.force_reinstall: - self._set_req_to_reinstall(req_to_install) - return None - - if not self._is_upgrade_allowed(req_to_install): - if self.upgrade_strategy == "only-if-needed": - return 'already satisfied, skipping upgrade' - return 'already satisfied' - - # Check for the possibility of an upgrade. For link-based - # requirements we have to pull the tree down and inspect to assess - # the version #, so it's handled way down. - if not req_to_install.link: - try: - self.finder.find_requirement(req_to_install, upgrade=True) - except BestVersionAlreadyInstalled: - # Then the best version is installed. - return 'already up-to-date' - except DistributionNotFound: - # No distribution found, so we squash the error. It will - # be raised later when we re-try later to do the install. - # Why don't we just raise here? - pass - - self._set_req_to_reinstall(req_to_install) - return None - - def _get_abstract_dist_for(self, req): - # type: (InstallRequirement) -> DistAbstraction - """Takes a InstallRequirement and returns a single AbstractDist \ - representing a prepared variant of the same. - """ - assert self.require_hashes is not None, ( - "require_hashes should have been set in Resolver.resolve()" - ) - - if req.editable: - return self.preparer.prepare_editable_requirement( - req, self.require_hashes, self.use_user_site, self.finder, - ) - - # satisfied_by is only evaluated by calling _check_skip_installed, - # so it must be None here. - assert req.satisfied_by is None - skip_reason = self._check_skip_installed(req) - - if req.satisfied_by: - return self.preparer.prepare_installed_requirement( - req, self.require_hashes, skip_reason - ) - - upgrade_allowed = self._is_upgrade_allowed(req) - abstract_dist = self.preparer.prepare_linked_requirement( - req, self.session, self.finder, upgrade_allowed, - self.require_hashes - ) - - # NOTE - # The following portion is for determining if a certain package is - # going to be re-installed/upgraded or not and reporting to the user. - # This should probably get cleaned up in a future refactor. - - # req.req is only avail after unpack for URL - # pkgs repeat check_if_exists to uninstall-on-upgrade - # (#14) - if not self.ignore_installed: - req.check_if_exists(self.use_user_site) - - if req.satisfied_by: - should_modify = ( - self.upgrade_strategy != "to-satisfy-only" or - self.force_reinstall or - self.ignore_installed or - req.link.scheme == 'file' - ) - if should_modify: - self._set_req_to_reinstall(req) - else: - logger.info( - 'Requirement already satisfied (use --upgrade to upgrade):' - ' %s', req, - ) - - return abstract_dist - - def _resolve_one( - self, - requirement_set, # type: RequirementSet - req_to_install # type: InstallRequirement - ): - # type: (...) -> List[InstallRequirement] - """Prepare a single requirements file. - - :return: A list of additional InstallRequirements to also install. - """ - # Tell user what we are doing for this requirement: - # obtain (editable), skipping, processing (local url), collecting - # (remote url or package name) - if req_to_install.constraint or req_to_install.prepared: - return [] - - req_to_install.prepared = True - - # register tmp src for cleanup in case something goes wrong - requirement_set.reqs_to_cleanup.append(req_to_install) - - abstract_dist = self._get_abstract_dist_for(req_to_install) - - # Parse and return dependencies - dist = abstract_dist.dist() - try: - check_dist_requires_python(dist) - except UnsupportedPythonVersion as err: - if self.ignore_requires_python: - logger.warning(err.args[0]) - else: - raise - - more_reqs = [] # type: List[InstallRequirement] - - def add_req(subreq, extras_requested): - sub_install_req = install_req_from_req_string( - str(subreq), - req_to_install, - isolated=self.isolated, - wheel_cache=self.wheel_cache, - use_pep517=self.use_pep517 - ) - parent_req_name = req_to_install.name - to_scan_again, add_to_parent = requirement_set.add_requirement( - sub_install_req, - parent_req_name=parent_req_name, - extras_requested=extras_requested, - ) - if parent_req_name and add_to_parent: - self._discovered_dependencies[parent_req_name].append( - add_to_parent - ) - more_reqs.extend(to_scan_again) - - with indent_log(): - # We add req_to_install before its dependencies, so that we - # can refer to it when adding dependencies. - if not requirement_set.has_requirement(req_to_install.name): - # 'unnamed' requirements will get added here - req_to_install.is_direct = True - requirement_set.add_requirement( - req_to_install, parent_req_name=None, - ) - - if not self.ignore_dependencies: - if req_to_install.extras: - logger.debug( - "Installing extra requirements: %r", - ','.join(req_to_install.extras), - ) - missing_requested = sorted( - set(req_to_install.extras) - set(dist.extras) - ) - for missing in missing_requested: - logger.warning( - '%s does not provide the extra \'%s\'', - dist, missing - ) - - available_requested = sorted( - set(dist.extras) & set(req_to_install.extras) - ) - for subreq in dist.requires(available_requested): - add_req(subreq, extras_requested=available_requested) - - if not req_to_install.editable and not req_to_install.satisfied_by: - # XXX: --no-install leads this to report 'Successfully - # downloaded' for only non-editable reqs, even though we took - # action on them. - requirement_set.successfully_downloaded.append(req_to_install) - - return more_reqs - - def get_installation_order(self, req_set): - # type: (RequirementSet) -> List[InstallRequirement] - """Create the installation order. - - The installation order is topological - requirements are installed - before the requiring thing. We break cycles at an arbitrary point, - and make no other guarantees. - """ - # The current implementation, which we may change at any point - # installs the user specified things in the order given, except when - # dependencies must come earlier to achieve topological order. - order = [] - ordered_reqs = set() # type: Set[InstallRequirement] - - def schedule(req): - if req.satisfied_by or req in ordered_reqs: - return - if req.constraint: - return - ordered_reqs.add(req) - for dep in self._discovered_dependencies[req.name]: - schedule(dep) - order.append(req) - - for install_req in req_set.requirements.values(): - schedule(install_req) - return order diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/appdirs.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/appdirs.py deleted file mode 100644 index 9af9fa7..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/appdirs.py +++ /dev/null @@ -1,270 +0,0 @@ -""" -This code was taken from https://github.com/ActiveState/appdirs and modified -to suit our purposes. -""" -from __future__ import absolute_import - -import os -import sys - -from pip._vendor.six import PY2, text_type - -from pip._internal.utils.compat import WINDOWS, expanduser -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - List, Union - ) - - -def user_cache_dir(appname): - # type: (str) -> str - r""" - Return full path to the user-specific cache dir for this application. - - "appname" is the name of application. - - Typical user cache directories are: - macOS: ~/Library/Caches/ - Unix: ~/.cache/ (XDG default) - Windows: C:\Users\\AppData\Local\\Cache - - On Windows the only suggestion in the MSDN docs is that local settings go - in the `CSIDL_LOCAL_APPDATA` directory. This is identical to the - non-roaming app data dir (the default returned by `user_data_dir`). Apps - typically put cache data somewhere *under* the given dir here. Some - examples: - ...\Mozilla\Firefox\Profiles\\Cache - ...\Acme\SuperApp\Cache\1.0 - - OPINION: This function appends "Cache" to the `CSIDL_LOCAL_APPDATA` value. - """ - if WINDOWS: - # Get the base path - path = os.path.normpath(_get_win_folder("CSIDL_LOCAL_APPDATA")) - - # When using Python 2, return paths as bytes on Windows like we do on - # other operating systems. See helper function docs for more details. - if PY2 and isinstance(path, text_type): - path = _win_path_to_bytes(path) - - # Add our app name and Cache directory to it - path = os.path.join(path, appname, "Cache") - elif sys.platform == "darwin": - # Get the base path - path = expanduser("~/Library/Caches") - - # Add our app name to it - path = os.path.join(path, appname) - else: - # Get the base path - path = os.getenv("XDG_CACHE_HOME", expanduser("~/.cache")) - - # Add our app name to it - path = os.path.join(path, appname) - - return path - - -def user_data_dir(appname, roaming=False): - # type: (str, bool) -> str - r""" - Return full path to the user-specific data dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "roaming" (boolean, default False) can be set True to use the Windows - roaming appdata directory. That means that for users on a Windows - network setup for roaming profiles, this user data will be - sync'd on login. See - - for a discussion of issues. - - Typical user data directories are: - macOS: ~/Library/Application Support/ - if it exists, else ~/.config/ - Unix: ~/.local/share/ # or in - $XDG_DATA_HOME, if defined - Win XP (not roaming): C:\Documents and Settings\\ ... - ...Application Data\ - Win XP (roaming): C:\Documents and Settings\\Local ... - ...Settings\Application Data\ - Win 7 (not roaming): C:\\Users\\AppData\Local\ - Win 7 (roaming): C:\\Users\\AppData\Roaming\ - - For Unix, we follow the XDG spec and support $XDG_DATA_HOME. - That means, by default "~/.local/share/". - """ - if WINDOWS: - const = roaming and "CSIDL_APPDATA" or "CSIDL_LOCAL_APPDATA" - path = os.path.join(os.path.normpath(_get_win_folder(const)), appname) - elif sys.platform == "darwin": - path = os.path.join( - expanduser('~/Library/Application Support/'), - appname, - ) if os.path.isdir(os.path.join( - expanduser('~/Library/Application Support/'), - appname, - ) - ) else os.path.join( - expanduser('~/.config/'), - appname, - ) - else: - path = os.path.join( - os.getenv('XDG_DATA_HOME', expanduser("~/.local/share")), - appname, - ) - - return path - - -def user_config_dir(appname, roaming=True): - # type: (str, bool) -> str - """Return full path to the user-specific config dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "roaming" (boolean, default True) can be set False to not use the - Windows roaming appdata directory. That means that for users on a - Windows network setup for roaming profiles, this user data will be - sync'd on login. See - - for a discussion of issues. - - Typical user data directories are: - macOS: same as user_data_dir - Unix: ~/.config/ - Win *: same as user_data_dir - - For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME. - That means, by default "~/.config/". - """ - if WINDOWS: - path = user_data_dir(appname, roaming=roaming) - elif sys.platform == "darwin": - path = user_data_dir(appname) - else: - path = os.getenv('XDG_CONFIG_HOME', expanduser("~/.config")) - path = os.path.join(path, appname) - - return path - - -# for the discussion regarding site_config_dirs locations -# see -def site_config_dirs(appname): - # type: (str) -> List[str] - r"""Return a list of potential user-shared config dirs for this application. - - "appname" is the name of application. - - Typical user config directories are: - macOS: /Library/Application Support// - Unix: /etc or $XDG_CONFIG_DIRS[i]// for each value in - $XDG_CONFIG_DIRS - Win XP: C:\Documents and Settings\All Users\Application ... - ...Data\\ - Vista: (Fail! "C:\ProgramData" is a hidden *system* directory - on Vista.) - Win 7: Hidden, but writeable on Win 7: - C:\ProgramData\\ - """ - if WINDOWS: - path = os.path.normpath(_get_win_folder("CSIDL_COMMON_APPDATA")) - pathlist = [os.path.join(path, appname)] - elif sys.platform == 'darwin': - pathlist = [os.path.join('/Library/Application Support', appname)] - else: - # try looking in $XDG_CONFIG_DIRS - xdg_config_dirs = os.getenv('XDG_CONFIG_DIRS', '/etc/xdg') - if xdg_config_dirs: - pathlist = [ - os.path.join(expanduser(x), appname) - for x in xdg_config_dirs.split(os.pathsep) - ] - else: - pathlist = [] - - # always look in /etc directly as well - pathlist.append('/etc') - - return pathlist - - -# -- Windows support functions -- - -def _get_win_folder_from_registry(csidl_name): - # type: (str) -> str - """ - This is a fallback technique at best. I'm not sure if using the - registry for this guarantees us the correct answer for all CSIDL_* - names. - """ - import _winreg - - shell_folder_name = { - "CSIDL_APPDATA": "AppData", - "CSIDL_COMMON_APPDATA": "Common AppData", - "CSIDL_LOCAL_APPDATA": "Local AppData", - }[csidl_name] - - key = _winreg.OpenKey( - _winreg.HKEY_CURRENT_USER, - r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" - ) - directory, _type = _winreg.QueryValueEx(key, shell_folder_name) - return directory - - -def _get_win_folder_with_ctypes(csidl_name): - # type: (str) -> str - csidl_const = { - "CSIDL_APPDATA": 26, - "CSIDL_COMMON_APPDATA": 35, - "CSIDL_LOCAL_APPDATA": 28, - }[csidl_name] - - buf = ctypes.create_unicode_buffer(1024) - ctypes.windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) - - # Downgrade to short path name if have highbit chars. See - # . - has_high_char = False - for c in buf: - if ord(c) > 255: - has_high_char = True - break - if has_high_char: - buf2 = ctypes.create_unicode_buffer(1024) - if ctypes.windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): - buf = buf2 - - return buf.value - - -if WINDOWS: - try: - import ctypes - _get_win_folder = _get_win_folder_with_ctypes - except ImportError: - _get_win_folder = _get_win_folder_from_registry - - -def _win_path_to_bytes(path): - """Encode Windows paths to bytes. Only used on Python 2. - - Motivation is to be consistent with other operating systems where paths - are also returned as bytes. This avoids problems mixing bytes and Unicode - elsewhere in the codebase. For more details and discussion see - . - - If encoding using ASCII and MBCS fails, return the original Unicode path. - """ - for encoding in ('ASCII', 'MBCS'): - try: - return path.encode(encoding) - except (UnicodeEncodeError, LookupError): - pass - return path diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/compat.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/compat.py deleted file mode 100644 index 2d8b3bf..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/compat.py +++ /dev/null @@ -1,264 +0,0 @@ -"""Stuff that differs in different Python versions and platform -distributions.""" -from __future__ import absolute_import, division - -import codecs -import locale -import logging -import os -import shutil -import sys - -from pip._vendor.six import text_type - -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Tuple, Text # noqa: F401 - -try: - import ipaddress -except ImportError: - try: - from pip._vendor import ipaddress # type: ignore - except ImportError: - import ipaddr as ipaddress # type: ignore - ipaddress.ip_address = ipaddress.IPAddress # type: ignore - ipaddress.ip_network = ipaddress.IPNetwork # type: ignore - - -__all__ = [ - "ipaddress", "uses_pycache", "console_to_str", "native_str", - "get_path_uid", "stdlib_pkgs", "WINDOWS", "samefile", "get_terminal_size", - "get_extension_suffixes", -] - - -logger = logging.getLogger(__name__) - -if sys.version_info >= (3, 4): - uses_pycache = True - from importlib.util import cache_from_source -else: - import imp - - try: - cache_from_source = imp.cache_from_source # type: ignore - except AttributeError: - # does not use __pycache__ - cache_from_source = None - - uses_pycache = cache_from_source is not None - - -if sys.version_info >= (3, 5): - backslashreplace_decode = "backslashreplace" -else: - # In version 3.4 and older, backslashreplace exists - # but does not support use for decoding. - # We implement our own replace handler for this - # situation, so that we can consistently use - # backslash replacement for all versions. - def backslashreplace_decode_fn(err): - raw_bytes = (err.object[i] for i in range(err.start, err.end)) - if sys.version_info[0] == 2: - # Python 2 gave us characters - convert to numeric bytes - raw_bytes = (ord(b) for b in raw_bytes) - return u"".join(u"\\x%x" % c for c in raw_bytes), err.end - codecs.register_error( - "backslashreplace_decode", - backslashreplace_decode_fn, - ) - backslashreplace_decode = "backslashreplace_decode" - - -def console_to_str(data): - # type: (bytes) -> Text - """Return a string, safe for output, of subprocess output. - - We assume the data is in the locale preferred encoding. - If it won't decode properly, we warn the user but decode as - best we can. - - We also ensure that the output can be safely written to - standard output without encoding errors. - """ - - # First, get the encoding we assume. This is the preferred - # encoding for the locale, unless that is not found, or - # it is ASCII, in which case assume UTF-8 - encoding = locale.getpreferredencoding() - if (not encoding) or codecs.lookup(encoding).name == "ascii": - encoding = "utf-8" - - # Now try to decode the data - if we fail, warn the user and - # decode with replacement. - try: - decoded_data = data.decode(encoding) - except UnicodeDecodeError: - logger.warning( - "Subprocess output does not appear to be encoded as %s", - encoding, - ) - decoded_data = data.decode(encoding, errors=backslashreplace_decode) - - # Make sure we can print the output, by encoding it to the output - # encoding with replacement of unencodable characters, and then - # decoding again. - # We use stderr's encoding because it's less likely to be - # redirected and if we don't find an encoding we skip this - # step (on the assumption that output is wrapped by something - # that won't fail). - # The double getattr is to deal with the possibility that we're - # being called in a situation where sys.__stderr__ doesn't exist, - # or doesn't have an encoding attribute. Neither of these cases - # should occur in normal pip use, but there's no harm in checking - # in case people use pip in (unsupported) unusual situations. - output_encoding = getattr(getattr(sys, "__stderr__", None), - "encoding", None) - - if output_encoding: - output_encoded = decoded_data.encode( - output_encoding, - errors="backslashreplace" - ) - decoded_data = output_encoded.decode(output_encoding) - - return decoded_data - - -if sys.version_info >= (3,): - def native_str(s, replace=False): - # type: (str, bool) -> str - if isinstance(s, bytes): - return s.decode('utf-8', 'replace' if replace else 'strict') - return s - -else: - def native_str(s, replace=False): - # type: (str, bool) -> str - # Replace is ignored -- unicode to UTF-8 can't fail - if isinstance(s, text_type): - return s.encode('utf-8') - return s - - -def get_path_uid(path): - # type: (str) -> int - """ - Return path's uid. - - Does not follow symlinks: - https://github.com/pypa/pip/pull/935#discussion_r5307003 - - Placed this function in compat due to differences on AIX and - Jython, that should eventually go away. - - :raises OSError: When path is a symlink or can't be read. - """ - if hasattr(os, 'O_NOFOLLOW'): - fd = os.open(path, os.O_RDONLY | os.O_NOFOLLOW) - file_uid = os.fstat(fd).st_uid - os.close(fd) - else: # AIX and Jython - # WARNING: time of check vulnerability, but best we can do w/o NOFOLLOW - if not os.path.islink(path): - # older versions of Jython don't have `os.fstat` - file_uid = os.stat(path).st_uid - else: - # raise OSError for parity with os.O_NOFOLLOW above - raise OSError( - "%s is a symlink; Will not return uid for symlinks" % path - ) - return file_uid - - -if sys.version_info >= (3, 4): - from importlib.machinery import EXTENSION_SUFFIXES - - def get_extension_suffixes(): - return EXTENSION_SUFFIXES -else: - from imp import get_suffixes - - def get_extension_suffixes(): - return [suffix[0] for suffix in get_suffixes()] - - -def expanduser(path): - # type: (str) -> str - """ - Expand ~ and ~user constructions. - - Includes a workaround for https://bugs.python.org/issue14768 - """ - expanded = os.path.expanduser(path) - if path.startswith('~/') and expanded.startswith('//'): - expanded = expanded[1:] - return expanded - - -# packages in the stdlib that may have installation metadata, but should not be -# considered 'installed'. this theoretically could be determined based on -# dist.location (py27:`sysconfig.get_paths()['stdlib']`, -# py26:sysconfig.get_config_vars('LIBDEST')), but fear platform variation may -# make this ineffective, so hard-coding -stdlib_pkgs = {"python", "wsgiref", "argparse"} - - -# windows detection, covers cpython and ironpython -WINDOWS = (sys.platform.startswith("win") or - (sys.platform == 'cli' and os.name == 'nt')) - - -def samefile(file1, file2): - # type: (str, str) -> bool - """Provide an alternative for os.path.samefile on Windows/Python2""" - if hasattr(os.path, 'samefile'): - return os.path.samefile(file1, file2) - else: - path1 = os.path.normcase(os.path.abspath(file1)) - path2 = os.path.normcase(os.path.abspath(file2)) - return path1 == path2 - - -if hasattr(shutil, 'get_terminal_size'): - def get_terminal_size(): - # type: () -> Tuple[int, int] - """ - Returns a tuple (x, y) representing the width(x) and the height(y) - in characters of the terminal window. - """ - return tuple(shutil.get_terminal_size()) # type: ignore -else: - def get_terminal_size(): - # type: () -> Tuple[int, int] - """ - Returns a tuple (x, y) representing the width(x) and the height(y) - in characters of the terminal window. - """ - def ioctl_GWINSZ(fd): - try: - import fcntl - import termios - import struct - cr = struct.unpack_from( - 'hh', - fcntl.ioctl(fd, termios.TIOCGWINSZ, '12345678') - ) - except Exception: - return None - if cr == (0, 0): - return None - return cr - cr = ioctl_GWINSZ(0) or ioctl_GWINSZ(1) or ioctl_GWINSZ(2) - if not cr: - try: - fd = os.open(os.ctermid(), os.O_RDONLY) - cr = ioctl_GWINSZ(fd) - os.close(fd) - except Exception: - pass - if not cr: - cr = (os.environ.get('LINES', 25), os.environ.get('COLUMNS', 80)) - return int(cr[1]), int(cr[0]) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/deprecation.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/deprecation.py deleted file mode 100644 index 0beaf74..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/deprecation.py +++ /dev/null @@ -1,90 +0,0 @@ -""" -A module that implements tooling to enable easy warnings about deprecations. -""" -from __future__ import absolute_import - -import logging -import warnings - -from pip._vendor.packaging.version import parse - -from pip import __version__ as current_version -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Any, Optional # noqa: F401 - - -class PipDeprecationWarning(Warning): - pass - - -_original_showwarning = None # type: Any - - -# Warnings <-> Logging Integration -def _showwarning(message, category, filename, lineno, file=None, line=None): - if file is not None: - if _original_showwarning is not None: - _original_showwarning( - message, category, filename, lineno, file, line, - ) - elif issubclass(category, PipDeprecationWarning): - # We use a specially named logger which will handle all of the - # deprecation messages for pip. - logger = logging.getLogger("pip._internal.deprecations") - logger.warning(message) - else: - _original_showwarning( - message, category, filename, lineno, file, line, - ) - - -def install_warning_logger(): - # type: () -> None - # Enable our Deprecation Warnings - warnings.simplefilter("default", PipDeprecationWarning, append=True) - - global _original_showwarning - - if _original_showwarning is None: - _original_showwarning = warnings.showwarning - warnings.showwarning = _showwarning - - -def deprecated(reason, replacement, gone_in, issue=None): - # type: (str, Optional[str], Optional[str], Optional[int]) -> None - """Helper to deprecate existing functionality. - - reason: - Textual reason shown to the user about why this functionality has - been deprecated. - replacement: - Textual suggestion shown to the user about what alternative - functionality they can use. - gone_in: - The version of pip does this functionality should get removed in. - Raises errors if pip's current version is greater than or equal to - this. - issue: - Issue number on the tracker that would serve as a useful place for - users to find related discussion and provide feedback. - - Always pass replacement, gone_in and issue as keyword arguments for clarity - at the call site. - """ - - # Construct a nice message. - # This is purposely eagerly formatted as we want it to appear as if someone - # typed this entire message out. - message = "DEPRECATION: " + reason - if replacement is not None: - message += " A possible replacement is {}.".format(replacement) - if issue is not None: - url = "https://github.com/pypa/pip/issues/" + str(issue) - message += " You can find discussion regarding this at {}.".format(url) - - # Raise as an error if it has to be removed. - if gone_in is not None and parse(current_version) >= parse(gone_in): - raise PipDeprecationWarning(message) - warnings.warn(message, category=PipDeprecationWarning, stacklevel=2) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/encoding.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/encoding.py deleted file mode 100644 index d36defa..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/encoding.py +++ /dev/null @@ -1,39 +0,0 @@ -import codecs -import locale -import re -import sys - -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import List, Tuple, Text # noqa: F401 - -BOMS = [ - (codecs.BOM_UTF8, 'utf8'), - (codecs.BOM_UTF16, 'utf16'), - (codecs.BOM_UTF16_BE, 'utf16-be'), - (codecs.BOM_UTF16_LE, 'utf16-le'), - (codecs.BOM_UTF32, 'utf32'), - (codecs.BOM_UTF32_BE, 'utf32-be'), - (codecs.BOM_UTF32_LE, 'utf32-le'), -] # type: List[Tuple[bytes, Text]] - -ENCODING_RE = re.compile(br'coding[:=]\s*([-\w.]+)') - - -def auto_decode(data): - # type: (bytes) -> Text - """Check a bytes string for a BOM to correctly detect the encoding - - Fallback to locale.getpreferredencoding(False) like open() on Python3""" - for bom, encoding in BOMS: - if data.startswith(bom): - return data[len(bom):].decode(encoding) - # Lets check the first two lines as in PEP263 - for line in data.split(b'\n')[:2]: - if line[0:1] == b'#' and ENCODING_RE.search(line): - encoding = ENCODING_RE.search(line).groups()[0].decode('ascii') - return data.decode(encoding) - return data.decode( - locale.getpreferredencoding(False) or sys.getdefaultencoding(), - ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/filesystem.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/filesystem.py deleted file mode 100644 index 1e6b033..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/filesystem.py +++ /dev/null @@ -1,30 +0,0 @@ -import os -import os.path - -from pip._internal.utils.compat import get_path_uid - - -def check_path_owner(path): - # type: (str) -> bool - # If we don't have a way to check the effective uid of this process, then - # we'll just assume that we own the directory. - if not hasattr(os, "geteuid"): - return True - - previous = None - while path != previous: - if os.path.lexists(path): - # Check if path is writable by current user. - if os.geteuid() == 0: - # Special handling for root user in order to handle properly - # cases where users use sudo without -H flag. - try: - path_uid = get_path_uid(path) - except OSError: - return False - return path_uid == 0 - else: - return os.access(path, os.W_OK) - else: - previous, path = path, os.path.dirname(path) - return False # assume we don't own the path diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/glibc.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/glibc.py deleted file mode 100644 index 8a51f69..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/glibc.py +++ /dev/null @@ -1,93 +0,0 @@ -from __future__ import absolute_import - -import ctypes -import re -import warnings - -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Optional, Tuple # noqa: F401 - - -def glibc_version_string(): - # type: () -> Optional[str] - "Returns glibc version string, or None if not using glibc." - - # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen - # manpage says, "If filename is NULL, then the returned handle is for the - # main program". This way we can let the linker do the work to figure out - # which libc our process is actually using. - process_namespace = ctypes.CDLL(None) - try: - gnu_get_libc_version = process_namespace.gnu_get_libc_version - except AttributeError: - # Symbol doesn't exist -> therefore, we are not linked to - # glibc. - return None - - # Call gnu_get_libc_version, which returns a string like "2.5" - gnu_get_libc_version.restype = ctypes.c_char_p - version_str = gnu_get_libc_version() - # py2 / py3 compatibility: - if not isinstance(version_str, str): - version_str = version_str.decode("ascii") - - return version_str - - -# Separated out from have_compatible_glibc for easier unit testing -def check_glibc_version(version_str, required_major, minimum_minor): - # type: (str, int, int) -> bool - # Parse string and check against requested version. - # - # We use a regexp instead of str.split because we want to discard any - # random junk that might come after the minor version -- this might happen - # in patched/forked versions of glibc (e.g. Linaro's version of glibc - # uses version strings like "2.20-2014.11"). See gh-3588. - m = re.match(r"(?P[0-9]+)\.(?P[0-9]+)", version_str) - if not m: - warnings.warn("Expected glibc version with 2 components major.minor," - " got: %s" % version_str, RuntimeWarning) - return False - return (int(m.group("major")) == required_major and - int(m.group("minor")) >= minimum_minor) - - -def have_compatible_glibc(required_major, minimum_minor): - # type: (int, int) -> bool - version_str = glibc_version_string() # type: Optional[str] - if version_str is None: - return False - return check_glibc_version(version_str, required_major, minimum_minor) - - -# platform.libc_ver regularly returns completely nonsensical glibc -# versions. E.g. on my computer, platform says: -# -# ~$ python2.7 -c 'import platform; print(platform.libc_ver())' -# ('glibc', '2.7') -# ~$ python3.5 -c 'import platform; print(platform.libc_ver())' -# ('glibc', '2.9') -# -# But the truth is: -# -# ~$ ldd --version -# ldd (Debian GLIBC 2.22-11) 2.22 -# -# This is unfortunate, because it means that the linehaul data on libc -# versions that was generated by pip 8.1.2 and earlier is useless and -# misleading. Solution: instead of using platform, use our code that actually -# works. -def libc_ver(): - # type: () -> Tuple[str, str] - """Try to determine the glibc version - - Returns a tuple of strings (lib, version) which default to empty strings - in case the lookup fails. - """ - glibc_version = glibc_version_string() - if glibc_version is None: - return ("", "") - else: - return ("glibc", glibc_version) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/hashes.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/hashes.py deleted file mode 100644 index c6df7a1..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/hashes.py +++ /dev/null @@ -1,115 +0,0 @@ -from __future__ import absolute_import - -import hashlib - -from pip._vendor.six import iteritems, iterkeys, itervalues - -from pip._internal.exceptions import ( - HashMismatch, HashMissing, InstallationError, -) -from pip._internal.utils.misc import read_chunks -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Dict, List, BinaryIO, NoReturn, Iterator - ) - from pip._vendor.six import PY3 - if PY3: - from hashlib import _Hash # noqa: F401 - else: - from hashlib import _hash as _Hash # noqa: F401 - - -# The recommended hash algo of the moment. Change this whenever the state of -# the art changes; it won't hurt backward compatibility. -FAVORITE_HASH = 'sha256' - - -# Names of hashlib algorithms allowed by the --hash option and ``pip hash`` -# Currently, those are the ones at least as collision-resistant as sha256. -STRONG_HASHES = ['sha256', 'sha384', 'sha512'] - - -class Hashes(object): - """A wrapper that builds multiple hashes at once and checks them against - known-good values - - """ - def __init__(self, hashes=None): - # type: (Dict[str, List[str]]) -> None - """ - :param hashes: A dict of algorithm names pointing to lists of allowed - hex digests - """ - self._allowed = {} if hashes is None else hashes - - def check_against_chunks(self, chunks): - # type: (Iterator[bytes]) -> None - """Check good hashes against ones built from iterable of chunks of - data. - - Raise HashMismatch if none match. - - """ - gots = {} - for hash_name in iterkeys(self._allowed): - try: - gots[hash_name] = hashlib.new(hash_name) - except (ValueError, TypeError): - raise InstallationError('Unknown hash name: %s' % hash_name) - - for chunk in chunks: - for hash in itervalues(gots): - hash.update(chunk) - - for hash_name, got in iteritems(gots): - if got.hexdigest() in self._allowed[hash_name]: - return - self._raise(gots) - - def _raise(self, gots): - # type: (Dict[str, _Hash]) -> NoReturn - raise HashMismatch(self._allowed, gots) - - def check_against_file(self, file): - # type: (BinaryIO) -> None - """Check good hashes against a file-like object - - Raise HashMismatch if none match. - - """ - return self.check_against_chunks(read_chunks(file)) - - def check_against_path(self, path): - # type: (str) -> None - with open(path, 'rb') as file: - return self.check_against_file(file) - - def __nonzero__(self): - # type: () -> bool - """Return whether I know any known-good hashes.""" - return bool(self._allowed) - - def __bool__(self): - # type: () -> bool - return self.__nonzero__() - - -class MissingHashes(Hashes): - """A workalike for Hashes used when we're missing a hash for a requirement - - It computes the actual hash of the requirement and raises a HashMissing - exception showing it to the user. - - """ - def __init__(self): - # type: () -> None - """Don't offer the ``hashes`` kwarg.""" - # Pass our favorite hash in to generate a "gotten hash". With the - # empty list, it will never match, so an error will always raise. - super(MissingHashes, self).__init__(hashes={FAVORITE_HASH: []}) - - def _raise(self, gots): - # type: (Dict[str, _Hash]) -> NoReturn - raise HashMissing(gots[FAVORITE_HASH].hexdigest()) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/logging.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/logging.py deleted file mode 100644 index 579d696..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/logging.py +++ /dev/null @@ -1,318 +0,0 @@ -from __future__ import absolute_import - -import contextlib -import errno -import logging -import logging.handlers -import os -import sys - -from pip._vendor.six import PY2 - -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.misc import ensure_dir - -try: - import threading -except ImportError: - import dummy_threading as threading # type: ignore - - -try: - from pip._vendor import colorama -# Lots of different errors can come from this, including SystemError and -# ImportError. -except Exception: - colorama = None - - -_log_state = threading.local() -_log_state.indentation = 0 - - -class BrokenStdoutLoggingError(Exception): - """ - Raised if BrokenPipeError occurs for the stdout stream while logging. - """ - pass - - -# BrokenPipeError does not exist in Python 2 and, in addition, manifests -# differently in Windows and non-Windows. -if WINDOWS: - # In Windows, a broken pipe can show up as EINVAL rather than EPIPE: - # https://bugs.python.org/issue19612 - # https://bugs.python.org/issue30418 - if PY2: - def _is_broken_pipe_error(exc_class, exc): - """See the docstring for non-Windows Python 3 below.""" - return (exc_class is IOError and - exc.errno in (errno.EINVAL, errno.EPIPE)) - else: - # In Windows, a broken pipe IOError became OSError in Python 3. - def _is_broken_pipe_error(exc_class, exc): - """See the docstring for non-Windows Python 3 below.""" - return ((exc_class is BrokenPipeError) or # noqa: F821 - (exc_class is OSError and - exc.errno in (errno.EINVAL, errno.EPIPE))) -elif PY2: - def _is_broken_pipe_error(exc_class, exc): - """See the docstring for non-Windows Python 3 below.""" - return (exc_class is IOError and exc.errno == errno.EPIPE) -else: - # Then we are in the non-Windows Python 3 case. - def _is_broken_pipe_error(exc_class, exc): - """ - Return whether an exception is a broken pipe error. - - Args: - exc_class: an exception class. - exc: an exception instance. - """ - return (exc_class is BrokenPipeError) # noqa: F821 - - -@contextlib.contextmanager -def indent_log(num=2): - """ - A context manager which will cause the log output to be indented for any - log messages emitted inside it. - """ - _log_state.indentation += num - try: - yield - finally: - _log_state.indentation -= num - - -def get_indentation(): - return getattr(_log_state, 'indentation', 0) - - -class IndentingFormatter(logging.Formatter): - def __init__(self, *args, **kwargs): - """ - A logging.Formatter obeying containing indent_log contexts. - - :param add_timestamp: A bool indicating output lines should be prefixed - with their record's timestamp. - """ - self.add_timestamp = kwargs.pop("add_timestamp", False) - super(IndentingFormatter, self).__init__(*args, **kwargs) - - def format(self, record): - """ - Calls the standard formatter, but will indent all of the log messages - by our current indentation level. - """ - formatted = super(IndentingFormatter, self).format(record) - prefix = '' - if self.add_timestamp: - prefix = self.formatTime(record, "%Y-%m-%dT%H:%M:%S ") - prefix += " " * get_indentation() - formatted = "".join([ - prefix + line - for line in formatted.splitlines(True) - ]) - return formatted - - -def _color_wrap(*colors): - def wrapped(inp): - return "".join(list(colors) + [inp, colorama.Style.RESET_ALL]) - return wrapped - - -class ColorizedStreamHandler(logging.StreamHandler): - - # Don't build up a list of colors if we don't have colorama - if colorama: - COLORS = [ - # This needs to be in order from highest logging level to lowest. - (logging.ERROR, _color_wrap(colorama.Fore.RED)), - (logging.WARNING, _color_wrap(colorama.Fore.YELLOW)), - ] - else: - COLORS = [] - - def __init__(self, stream=None, no_color=None): - logging.StreamHandler.__init__(self, stream) - self._no_color = no_color - - if WINDOWS and colorama: - self.stream = colorama.AnsiToWin32(self.stream) - - def _using_stdout(self): - """ - Return whether the handler is using sys.stdout. - """ - if WINDOWS and colorama: - # Then self.stream is an AnsiToWin32 object. - return self.stream.wrapped is sys.stdout - - return self.stream is sys.stdout - - def should_color(self): - # Don't colorize things if we do not have colorama or if told not to - if not colorama or self._no_color: - return False - - real_stream = ( - self.stream if not isinstance(self.stream, colorama.AnsiToWin32) - else self.stream.wrapped - ) - - # If the stream is a tty we should color it - if hasattr(real_stream, "isatty") and real_stream.isatty(): - return True - - # If we have an ANSI term we should color it - if os.environ.get("TERM") == "ANSI": - return True - - # If anything else we should not color it - return False - - def format(self, record): - msg = logging.StreamHandler.format(self, record) - - if self.should_color(): - for level, color in self.COLORS: - if record.levelno >= level: - msg = color(msg) - break - - return msg - - # The logging module says handleError() can be customized. - def handleError(self, record): - exc_class, exc = sys.exc_info()[:2] - # If a broken pipe occurred while calling write() or flush() on the - # stdout stream in logging's Handler.emit(), then raise our special - # exception so we can handle it in main() instead of logging the - # broken pipe error and continuing. - if (exc_class and self._using_stdout() and - _is_broken_pipe_error(exc_class, exc)): - raise BrokenStdoutLoggingError() - - return super(ColorizedStreamHandler, self).handleError(record) - - -class BetterRotatingFileHandler(logging.handlers.RotatingFileHandler): - - def _open(self): - ensure_dir(os.path.dirname(self.baseFilename)) - return logging.handlers.RotatingFileHandler._open(self) - - -class MaxLevelFilter(logging.Filter): - - def __init__(self, level): - self.level = level - - def filter(self, record): - return record.levelno < self.level - - -def setup_logging(verbosity, no_color, user_log_file): - """Configures and sets up all of the logging - - Returns the requested logging level, as its integer value. - """ - - # Determine the level to be logging at. - if verbosity >= 1: - level = "DEBUG" - elif verbosity == -1: - level = "WARNING" - elif verbosity == -2: - level = "ERROR" - elif verbosity <= -3: - level = "CRITICAL" - else: - level = "INFO" - - level_number = getattr(logging, level) - - # The "root" logger should match the "console" level *unless* we also need - # to log to a user log file. - include_user_log = user_log_file is not None - if include_user_log: - additional_log_file = user_log_file - root_level = "DEBUG" - else: - additional_log_file = "/dev/null" - root_level = level - - # Disable any logging besides WARNING unless we have DEBUG level logging - # enabled for vendored libraries. - vendored_log_level = "WARNING" if level in ["INFO", "ERROR"] else "DEBUG" - - # Shorthands for clarity - log_streams = { - "stdout": "ext://sys.stdout", - "stderr": "ext://sys.stderr", - } - handler_classes = { - "stream": "pip._internal.utils.logging.ColorizedStreamHandler", - "file": "pip._internal.utils.logging.BetterRotatingFileHandler", - } - - logging.config.dictConfig({ - "version": 1, - "disable_existing_loggers": False, - "filters": { - "exclude_warnings": { - "()": "pip._internal.utils.logging.MaxLevelFilter", - "level": logging.WARNING, - }, - }, - "formatters": { - "indent": { - "()": IndentingFormatter, - "format": "%(message)s", - }, - "indent_with_timestamp": { - "()": IndentingFormatter, - "format": "%(message)s", - "add_timestamp": True, - }, - }, - "handlers": { - "console": { - "level": level, - "class": handler_classes["stream"], - "no_color": no_color, - "stream": log_streams["stdout"], - "filters": ["exclude_warnings"], - "formatter": "indent", - }, - "console_errors": { - "level": "WARNING", - "class": handler_classes["stream"], - "no_color": no_color, - "stream": log_streams["stderr"], - "formatter": "indent", - }, - "user_log": { - "level": "DEBUG", - "class": handler_classes["file"], - "filename": additional_log_file, - "delay": True, - "formatter": "indent_with_timestamp", - }, - }, - "root": { - "level": root_level, - "handlers": ["console", "console_errors"] + ( - ["user_log"] if include_user_log else [] - ), - }, - "loggers": { - "pip._vendor": { - "level": vendored_log_level - } - }, - }) - - return level_number diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/misc.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/misc.py deleted file mode 100644 index 84605ee..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/misc.py +++ /dev/null @@ -1,1040 +0,0 @@ -from __future__ import absolute_import - -import contextlib -import errno -import io -import locale -# we have a submodule named 'logging' which would shadow this if we used the -# regular name: -import logging as std_logging -import os -import posixpath -import re -import shutil -import stat -import subprocess -import sys -import tarfile -import zipfile -from collections import deque - -from pip._vendor import pkg_resources -# NOTE: retrying is not annotated in typeshed as on 2017-07-17, which is -# why we ignore the type on this import. -from pip._vendor.retrying import retry # type: ignore -from pip._vendor.six import PY2 -from pip._vendor.six.moves import input -from pip._vendor.six.moves.urllib import parse as urllib_parse -from pip._vendor.six.moves.urllib.parse import unquote as urllib_unquote - -from pip._internal.exceptions import CommandError, InstallationError -from pip._internal.locations import ( - running_under_virtualenv, site_packages, user_site, virtualenv_no_global, - write_delete_marker_file, -) -from pip._internal.utils.compat import ( - WINDOWS, console_to_str, expanduser, stdlib_pkgs, -) -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if PY2: - from io import BytesIO as StringIO -else: - from io import StringIO - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Optional, Tuple, Iterable, List, Match, Union, Any, Mapping, Text, - AnyStr, Container - ) - from pip._vendor.pkg_resources import Distribution # noqa: F401 - from pip._internal.models.link import Link # noqa: F401 - from pip._internal.utils.ui import SpinnerInterface # noqa: F401 - - -__all__ = ['rmtree', 'display_path', 'backup_dir', - 'ask', 'splitext', - 'format_size', 'is_installable_dir', - 'is_svn_page', 'file_contents', - 'split_leading_dir', 'has_leading_dir', - 'normalize_path', - 'renames', 'get_prog', - 'unzip_file', 'untar_file', 'unpack_file', 'call_subprocess', - 'captured_stdout', 'ensure_dir', - 'ARCHIVE_EXTENSIONS', 'SUPPORTED_EXTENSIONS', 'WHEEL_EXTENSION', - 'get_installed_version', 'remove_auth_from_url'] - - -logger = std_logging.getLogger(__name__) - -WHEEL_EXTENSION = '.whl' -BZ2_EXTENSIONS = ('.tar.bz2', '.tbz') -XZ_EXTENSIONS = ('.tar.xz', '.txz', '.tlz', '.tar.lz', '.tar.lzma') -ZIP_EXTENSIONS = ('.zip', WHEEL_EXTENSION) -TAR_EXTENSIONS = ('.tar.gz', '.tgz', '.tar') -ARCHIVE_EXTENSIONS = ( - ZIP_EXTENSIONS + BZ2_EXTENSIONS + TAR_EXTENSIONS + XZ_EXTENSIONS) -SUPPORTED_EXTENSIONS = ZIP_EXTENSIONS + TAR_EXTENSIONS - -try: - import bz2 # noqa - SUPPORTED_EXTENSIONS += BZ2_EXTENSIONS -except ImportError: - logger.debug('bz2 module is not available') - -try: - # Only for Python 3.3+ - import lzma # noqa - SUPPORTED_EXTENSIONS += XZ_EXTENSIONS -except ImportError: - logger.debug('lzma module is not available') - - -def ensure_dir(path): - # type: (AnyStr) -> None - """os.path.makedirs without EEXIST.""" - try: - os.makedirs(path) - except OSError as e: - if e.errno != errno.EEXIST: - raise - - -def get_prog(): - # type: () -> str - try: - prog = os.path.basename(sys.argv[0]) - if prog in ('__main__.py', '-c'): - return "%s -m pip" % sys.executable - else: - return prog - except (AttributeError, TypeError, IndexError): - pass - return 'pip' - - -# Retry every half second for up to 3 seconds -@retry(stop_max_delay=3000, wait_fixed=500) -def rmtree(dir, ignore_errors=False): - # type: (str, bool) -> None - shutil.rmtree(dir, ignore_errors=ignore_errors, - onerror=rmtree_errorhandler) - - -def rmtree_errorhandler(func, path, exc_info): - """On Windows, the files in .svn are read-only, so when rmtree() tries to - remove them, an exception is thrown. We catch that here, remove the - read-only attribute, and hopefully continue without problems.""" - # if file type currently read only - if os.stat(path).st_mode & stat.S_IREAD: - # convert to read/write - os.chmod(path, stat.S_IWRITE) - # use the original function to repeat the operation - func(path) - return - else: - raise - - -def display_path(path): - # type: (Union[str, Text]) -> str - """Gives the display value for a given path, making it relative to cwd - if possible.""" - path = os.path.normcase(os.path.abspath(path)) - if sys.version_info[0] == 2: - path = path.decode(sys.getfilesystemencoding(), 'replace') - path = path.encode(sys.getdefaultencoding(), 'replace') - if path.startswith(os.getcwd() + os.path.sep): - path = '.' + path[len(os.getcwd()):] - return path - - -def backup_dir(dir, ext='.bak'): - # type: (str, str) -> str - """Figure out the name of a directory to back up the given dir to - (adding .bak, .bak2, etc)""" - n = 1 - extension = ext - while os.path.exists(dir + extension): - n += 1 - extension = ext + str(n) - return dir + extension - - -def ask_path_exists(message, options): - # type: (str, Iterable[str]) -> str - for action in os.environ.get('PIP_EXISTS_ACTION', '').split(): - if action in options: - return action - return ask(message, options) - - -def ask(message, options): - # type: (str, Iterable[str]) -> str - """Ask the message interactively, with the given possible responses""" - while 1: - if os.environ.get('PIP_NO_INPUT'): - raise Exception( - 'No input was expected ($PIP_NO_INPUT set); question: %s' % - message - ) - response = input(message) - response = response.strip().lower() - if response not in options: - print( - 'Your response (%r) was not one of the expected responses: ' - '%s' % (response, ', '.join(options)) - ) - else: - return response - - -def format_size(bytes): - # type: (float) -> str - if bytes > 1000 * 1000: - return '%.1fMB' % (bytes / 1000.0 / 1000) - elif bytes > 10 * 1000: - return '%ikB' % (bytes / 1000) - elif bytes > 1000: - return '%.1fkB' % (bytes / 1000.0) - else: - return '%ibytes' % bytes - - -def is_installable_dir(path): - # type: (str) -> bool - """Is path is a directory containing setup.py or pyproject.toml? - """ - if not os.path.isdir(path): - return False - setup_py = os.path.join(path, 'setup.py') - if os.path.isfile(setup_py): - return True - pyproject_toml = os.path.join(path, 'pyproject.toml') - if os.path.isfile(pyproject_toml): - return True - return False - - -def is_svn_page(html): - # type: (Union[str, Text]) -> Optional[Match[Union[str, Text]]] - """ - Returns true if the page appears to be the index page of an svn repository - """ - return (re.search(r'[^<]*Revision \d+:', html) and - re.search(r'Powered by (?:<a[^>]*?>)?Subversion', html, re.I)) - - -def file_contents(filename): - # type: (str) -> Text - with open(filename, 'rb') as fp: - return fp.read().decode('utf-8') - - -def read_chunks(file, size=io.DEFAULT_BUFFER_SIZE): - """Yield pieces of data from a file-like object until EOF.""" - while True: - chunk = file.read(size) - if not chunk: - break - yield chunk - - -def split_leading_dir(path): - # type: (Union[str, Text]) -> List[Union[str, Text]] - path = path.lstrip('/').lstrip('\\') - if '/' in path and (('\\' in path and path.find('/') < path.find('\\')) or - '\\' not in path): - return path.split('/', 1) - elif '\\' in path: - return path.split('\\', 1) - else: - return [path, ''] - - -def has_leading_dir(paths): - # type: (Iterable[Union[str, Text]]) -> bool - """Returns true if all the paths have the same leading path name - (i.e., everything is in one subdirectory in an archive)""" - common_prefix = None - for path in paths: - prefix, rest = split_leading_dir(path) - if not prefix: - return False - elif common_prefix is None: - common_prefix = prefix - elif prefix != common_prefix: - return False - return True - - -def normalize_path(path, resolve_symlinks=True): - # type: (str, bool) -> str - """ - Convert a path to its canonical, case-normalized, absolute version. - - """ - path = expanduser(path) - if resolve_symlinks: - path = os.path.realpath(path) - else: - path = os.path.abspath(path) - return os.path.normcase(path) - - -def splitext(path): - # type: (str) -> Tuple[str, str] - """Like os.path.splitext, but take off .tar too""" - base, ext = posixpath.splitext(path) - if base.lower().endswith('.tar'): - ext = base[-4:] + ext - base = base[:-4] - return base, ext - - -def renames(old, new): - # type: (str, str) -> None - """Like os.renames(), but handles renaming across devices.""" - # Implementation borrowed from os.renames(). - head, tail = os.path.split(new) - if head and tail and not os.path.exists(head): - os.makedirs(head) - - shutil.move(old, new) - - head, tail = os.path.split(old) - if head and tail: - try: - os.removedirs(head) - except OSError: - pass - - -def is_local(path): - # type: (str) -> bool - """ - Return True if path is within sys.prefix, if we're running in a virtualenv. - - If we're not in a virtualenv, all paths are considered "local." - - """ - if not running_under_virtualenv(): - return True - return normalize_path(path).startswith(normalize_path(sys.prefix)) - - -def dist_is_local(dist): - # type: (Distribution) -> bool - """ - Return True if given Distribution object is installed locally - (i.e. within current virtualenv). - - Always True if we're not in a virtualenv. - - """ - return is_local(dist_location(dist)) - - -def dist_in_usersite(dist): - # type: (Distribution) -> bool - """ - Return True if given Distribution is installed in user site. - """ - norm_path = normalize_path(dist_location(dist)) - return norm_path.startswith(normalize_path(user_site)) - - -def dist_in_site_packages(dist): - # type: (Distribution) -> bool - """ - Return True if given Distribution is installed in - sysconfig.get_python_lib(). - """ - return normalize_path( - dist_location(dist) - ).startswith(normalize_path(site_packages)) - - -def dist_is_editable(dist): - # type: (Distribution) -> bool - """ - Return True if given Distribution is an editable install. - """ - for path_item in sys.path: - egg_link = os.path.join(path_item, dist.project_name + '.egg-link') - if os.path.isfile(egg_link): - return True - return False - - -def get_installed_distributions(local_only=True, - skip=stdlib_pkgs, - include_editables=True, - editables_only=False, - user_only=False): - # type: (bool, Container[str], bool, bool, bool) -> List[Distribution] - """ - Return a list of installed Distribution objects. - - If ``local_only`` is True (default), only return installations - local to the current virtualenv, if in a virtualenv. - - ``skip`` argument is an iterable of lower-case project names to - ignore; defaults to stdlib_pkgs - - If ``include_editables`` is False, don't report editables. - - If ``editables_only`` is True , only report editables. - - If ``user_only`` is True , only report installations in the user - site directory. - - """ - if local_only: - local_test = dist_is_local - else: - def local_test(d): - return True - - if include_editables: - def editable_test(d): - return True - else: - def editable_test(d): - return not dist_is_editable(d) - - if editables_only: - def editables_only_test(d): - return dist_is_editable(d) - else: - def editables_only_test(d): - return True - - if user_only: - user_test = dist_in_usersite - else: - def user_test(d): - return True - - # because of pkg_resources vendoring, mypy cannot find stub in typeshed - return [d for d in pkg_resources.working_set # type: ignore - if local_test(d) and - d.key not in skip and - editable_test(d) and - editables_only_test(d) and - user_test(d) - ] - - -def egg_link_path(dist): - # type: (Distribution) -> Optional[str] - """ - Return the path for the .egg-link file if it exists, otherwise, None. - - There's 3 scenarios: - 1) not in a virtualenv - try to find in site.USER_SITE, then site_packages - 2) in a no-global virtualenv - try to find in site_packages - 3) in a yes-global virtualenv - try to find in site_packages, then site.USER_SITE - (don't look in global location) - - For #1 and #3, there could be odd cases, where there's an egg-link in 2 - locations. - - This method will just return the first one found. - """ - sites = [] - if running_under_virtualenv(): - if virtualenv_no_global(): - sites.append(site_packages) - else: - sites.append(site_packages) - if user_site: - sites.append(user_site) - else: - if user_site: - sites.append(user_site) - sites.append(site_packages) - - for site in sites: - egglink = os.path.join(site, dist.project_name) + '.egg-link' - if os.path.isfile(egglink): - return egglink - return None - - -def dist_location(dist): - # type: (Distribution) -> str - """ - Get the site-packages location of this distribution. Generally - this is dist.location, except in the case of develop-installed - packages, where dist.location is the source code location, and we - want to know where the egg-link file is. - - """ - egg_link = egg_link_path(dist) - if egg_link: - return egg_link - return dist.location - - -def current_umask(): - """Get the current umask which involves having to set it temporarily.""" - mask = os.umask(0) - os.umask(mask) - return mask - - -def unzip_file(filename, location, flatten=True): - # type: (str, str, bool) -> None - """ - Unzip the file (with path `filename`) to the destination `location`. All - files are written based on system defaults and umask (i.e. permissions are - not preserved), except that regular file members with any execute - permissions (user, group, or world) have "chmod +x" applied after being - written. Note that for windows, any execute changes using os.chmod are - no-ops per the python docs. - """ - ensure_dir(location) - zipfp = open(filename, 'rb') - try: - zip = zipfile.ZipFile(zipfp, allowZip64=True) - leading = has_leading_dir(zip.namelist()) and flatten - for info in zip.infolist(): - name = info.filename - fn = name - if leading: - fn = split_leading_dir(name)[1] - fn = os.path.join(location, fn) - dir = os.path.dirname(fn) - if fn.endswith('/') or fn.endswith('\\'): - # A directory - ensure_dir(fn) - else: - ensure_dir(dir) - # Don't use read() to avoid allocating an arbitrarily large - # chunk of memory for the file's content - fp = zip.open(name) - try: - with open(fn, 'wb') as destfp: - shutil.copyfileobj(fp, destfp) - finally: - fp.close() - mode = info.external_attr >> 16 - # if mode and regular file and any execute permissions for - # user/group/world? - if mode and stat.S_ISREG(mode) and mode & 0o111: - # make dest file have execute for user/group/world - # (chmod +x) no-op on windows per python docs - os.chmod(fn, (0o777 - current_umask() | 0o111)) - finally: - zipfp.close() - - -def untar_file(filename, location): - # type: (str, str) -> None - """ - Untar the file (with path `filename`) to the destination `location`. - All files are written based on system defaults and umask (i.e. permissions - are not preserved), except that regular file members with any execute - permissions (user, group, or world) have "chmod +x" applied after being - written. Note that for windows, any execute changes using os.chmod are - no-ops per the python docs. - """ - ensure_dir(location) - if filename.lower().endswith('.gz') or filename.lower().endswith('.tgz'): - mode = 'r:gz' - elif filename.lower().endswith(BZ2_EXTENSIONS): - mode = 'r:bz2' - elif filename.lower().endswith(XZ_EXTENSIONS): - mode = 'r:xz' - elif filename.lower().endswith('.tar'): - mode = 'r' - else: - logger.warning( - 'Cannot determine compression type for file %s', filename, - ) - mode = 'r:*' - tar = tarfile.open(filename, mode) - try: - leading = has_leading_dir([ - member.name for member in tar.getmembers() - ]) - for member in tar.getmembers(): - fn = member.name - if leading: - # https://github.com/python/mypy/issues/1174 - fn = split_leading_dir(fn)[1] # type: ignore - path = os.path.join(location, fn) - if member.isdir(): - ensure_dir(path) - elif member.issym(): - try: - # https://github.com/python/typeshed/issues/2673 - tar._extract_member(member, path) # type: ignore - except Exception as exc: - # Some corrupt tar files seem to produce this - # (specifically bad symlinks) - logger.warning( - 'In the tar file %s the member %s is invalid: %s', - filename, member.name, exc, - ) - continue - else: - try: - fp = tar.extractfile(member) - except (KeyError, AttributeError) as exc: - # Some corrupt tar files seem to produce this - # (specifically bad symlinks) - logger.warning( - 'In the tar file %s the member %s is invalid: %s', - filename, member.name, exc, - ) - continue - ensure_dir(os.path.dirname(path)) - with open(path, 'wb') as destfp: - shutil.copyfileobj(fp, destfp) - fp.close() - # Update the timestamp (useful for cython compiled files) - # https://github.com/python/typeshed/issues/2673 - tar.utime(member, path) # type: ignore - # member have any execute permissions for user/group/world? - if member.mode & 0o111: - # make dest file have execute for user/group/world - # no-op on windows per python docs - os.chmod(path, (0o777 - current_umask() | 0o111)) - finally: - tar.close() - - -def unpack_file( - filename, # type: str - location, # type: str - content_type, # type: Optional[str] - link # type: Optional[Link] -): - # type: (...) -> None - filename = os.path.realpath(filename) - if (content_type == 'application/zip' or - filename.lower().endswith(ZIP_EXTENSIONS) or - zipfile.is_zipfile(filename)): - unzip_file( - filename, - location, - flatten=not filename.endswith('.whl') - ) - elif (content_type == 'application/x-gzip' or - tarfile.is_tarfile(filename) or - filename.lower().endswith( - TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): - untar_file(filename, location) - elif (content_type and content_type.startswith('text/html') and - is_svn_page(file_contents(filename))): - # We don't really care about this - from pip._internal.vcs.subversion import Subversion - Subversion('svn+' + link.url).unpack(location) - else: - # FIXME: handle? - # FIXME: magic signatures? - logger.critical( - 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' - 'cannot detect archive format', - filename, location, content_type, - ) - raise InstallationError( - 'Cannot determine archive format of %s' % location - ) - - -def call_subprocess( - cmd, # type: List[str] - show_stdout=True, # type: bool - cwd=None, # type: Optional[str] - on_returncode='raise', # type: str - extra_ok_returncodes=None, # type: Optional[Iterable[int]] - command_desc=None, # type: Optional[str] - extra_environ=None, # type: Optional[Mapping[str, Any]] - unset_environ=None, # type: Optional[Iterable[str]] - spinner=None # type: Optional[SpinnerInterface] -): - # type: (...) -> Optional[Text] - """ - Args: - extra_ok_returncodes: an iterable of integer return codes that are - acceptable, in addition to 0. Defaults to None, which means []. - unset_environ: an iterable of environment variable names to unset - prior to calling subprocess.Popen(). - """ - if extra_ok_returncodes is None: - extra_ok_returncodes = [] - if unset_environ is None: - unset_environ = [] - # This function's handling of subprocess output is confusing and I - # previously broke it terribly, so as penance I will write a long comment - # explaining things. - # - # The obvious thing that affects output is the show_stdout= - # kwarg. show_stdout=True means, let the subprocess write directly to our - # stdout. Even though it is nominally the default, it is almost never used - # inside pip (and should not be used in new code without a very good - # reason); as of 2016-02-22 it is only used in a few places inside the VCS - # wrapper code. Ideally we should get rid of it entirely, because it - # creates a lot of complexity here for a rarely used feature. - # - # Most places in pip set show_stdout=False. What this means is: - # - We connect the child stdout to a pipe, which we read. - # - By default, we hide the output but show a spinner -- unless the - # subprocess exits with an error, in which case we show the output. - # - If the --verbose option was passed (= loglevel is DEBUG), then we show - # the output unconditionally. (But in this case we don't want to show - # the output a second time if it turns out that there was an error.) - # - # stderr is always merged with stdout (even if show_stdout=True). - if show_stdout: - stdout = None - else: - stdout = subprocess.PIPE - if command_desc is None: - cmd_parts = [] - for part in cmd: - if ' ' in part or '\n' in part or '"' in part or "'" in part: - part = '"%s"' % part.replace('"', '\\"') - cmd_parts.append(part) - command_desc = ' '.join(cmd_parts) - logger.debug("Running command %s", command_desc) - env = os.environ.copy() - if extra_environ: - env.update(extra_environ) - for name in unset_environ: - env.pop(name, None) - try: - proc = subprocess.Popen( - cmd, stderr=subprocess.STDOUT, stdin=subprocess.PIPE, - stdout=stdout, cwd=cwd, env=env, - ) - proc.stdin.close() - except Exception as exc: - logger.critical( - "Error %s while executing command %s", exc, command_desc, - ) - raise - all_output = [] - if stdout is not None: - while True: - line = console_to_str(proc.stdout.readline()) - if not line: - break - line = line.rstrip() - all_output.append(line + '\n') - if logger.getEffectiveLevel() <= std_logging.DEBUG: - # Show the line immediately - logger.debug(line) - else: - # Update the spinner - if spinner is not None: - spinner.spin() - try: - proc.wait() - finally: - if proc.stdout: - proc.stdout.close() - if spinner is not None: - if proc.returncode: - spinner.finish("error") - else: - spinner.finish("done") - if proc.returncode and proc.returncode not in extra_ok_returncodes: - if on_returncode == 'raise': - if (logger.getEffectiveLevel() > std_logging.DEBUG and - not show_stdout): - logger.info( - 'Complete output from command %s:', command_desc, - ) - logger.info( - ''.join(all_output) + - '\n----------------------------------------' - ) - raise InstallationError( - 'Command "%s" failed with error code %s in %s' - % (command_desc, proc.returncode, cwd)) - elif on_returncode == 'warn': - logger.warning( - 'Command "%s" had error code %s in %s', - command_desc, proc.returncode, cwd, - ) - elif on_returncode == 'ignore': - pass - else: - raise ValueError('Invalid value: on_returncode=%s' % - repr(on_returncode)) - if not show_stdout: - return ''.join(all_output) - return None - - -def read_text_file(filename): - # type: (str) -> str - """Return the contents of *filename*. - - Try to decode the file contents with utf-8, the preferred system encoding - (e.g., cp1252 on some Windows machines), and latin1, in that order. - Decoding a byte string with latin1 will never raise an error. In the worst - case, the returned string will contain some garbage characters. - - """ - with open(filename, 'rb') as fp: - data = fp.read() - - encodings = ['utf-8', locale.getpreferredencoding(False), 'latin1'] - for enc in encodings: - try: - # https://github.com/python/mypy/issues/1174 - data = data.decode(enc) # type: ignore - except UnicodeDecodeError: - continue - break - - assert not isinstance(data, bytes) # Latin1 should have worked. - return data - - -def _make_build_dir(build_dir): - os.makedirs(build_dir) - write_delete_marker_file(build_dir) - - -class FakeFile(object): - """Wrap a list of lines in an object with readline() to make - ConfigParser happy.""" - def __init__(self, lines): - self._gen = (l for l in lines) - - def readline(self): - try: - try: - return next(self._gen) - except NameError: - return self._gen.next() - except StopIteration: - return '' - - def __iter__(self): - return self._gen - - -class StreamWrapper(StringIO): - - @classmethod - def from_stream(cls, orig_stream): - cls.orig_stream = orig_stream - return cls() - - # compileall.compile_dir() needs stdout.encoding to print to stdout - @property - def encoding(self): - return self.orig_stream.encoding - - -@contextlib.contextmanager -def captured_output(stream_name): - """Return a context manager used by captured_stdout/stdin/stderr - that temporarily replaces the sys stream *stream_name* with a StringIO. - - Taken from Lib/support/__init__.py in the CPython repo. - """ - orig_stdout = getattr(sys, stream_name) - setattr(sys, stream_name, StreamWrapper.from_stream(orig_stdout)) - try: - yield getattr(sys, stream_name) - finally: - setattr(sys, stream_name, orig_stdout) - - -def captured_stdout(): - """Capture the output of sys.stdout: - - with captured_stdout() as stdout: - print('hello') - self.assertEqual(stdout.getvalue(), 'hello\n') - - Taken from Lib/support/__init__.py in the CPython repo. - """ - return captured_output('stdout') - - -def captured_stderr(): - """ - See captured_stdout(). - """ - return captured_output('stderr') - - -class cached_property(object): - """A property that is only computed once per instance and then replaces - itself with an ordinary attribute. Deleting the attribute resets the - property. - - Source: https://github.com/bottlepy/bottle/blob/0.11.5/bottle.py#L175 - """ - - def __init__(self, func): - self.__doc__ = getattr(func, '__doc__') - self.func = func - - def __get__(self, obj, cls): - if obj is None: - # We're being accessed from the class itself, not from an object - return self - value = obj.__dict__[self.func.__name__] = self.func(obj) - return value - - -def get_installed_version(dist_name, working_set=None): - """Get the installed version of dist_name avoiding pkg_resources cache""" - # Create a requirement that we'll look for inside of setuptools. - req = pkg_resources.Requirement.parse(dist_name) - - if working_set is None: - # We want to avoid having this cached, so we need to construct a new - # working set each time. - working_set = pkg_resources.WorkingSet() - - # Get the installed distribution from our working set - dist = working_set.find(req) - - # Check to see if we got an installed distribution or not, if we did - # we want to return it's version. - return dist.version if dist else None - - -def consume(iterator): - """Consume an iterable at C speed.""" - deque(iterator, maxlen=0) - - -# Simulates an enum -def enum(*sequential, **named): - enums = dict(zip(sequential, range(len(sequential))), **named) - reverse = {value: key for key, value in enums.items()} - enums['reverse_mapping'] = reverse - return type('Enum', (), enums) - - -def make_vcs_requirement_url(repo_url, rev, project_name, subdir=None): - """ - Return the URL for a VCS requirement. - - Args: - repo_url: the remote VCS url, with any needed VCS prefix (e.g. "git+"). - project_name: the (unescaped) project name. - """ - egg_project_name = pkg_resources.to_filename(project_name) - req = '{}@{}#egg={}'.format(repo_url, rev, egg_project_name) - if subdir: - req += '&subdirectory={}'.format(subdir) - - return req - - -def split_auth_from_netloc(netloc): - """ - Parse out and remove the auth information from a netloc. - - Returns: (netloc, (username, password)). - """ - if '@' not in netloc: - return netloc, (None, None) - - # Split from the right because that's how urllib.parse.urlsplit() - # behaves if more than one @ is present (which can be checked using - # the password attribute of urlsplit()'s return value). - auth, netloc = netloc.rsplit('@', 1) - if ':' in auth: - # Split from the left because that's how urllib.parse.urlsplit() - # behaves if more than one : is present (which again can be checked - # using the password attribute of the return value) - user_pass = auth.split(':', 1) - else: - user_pass = auth, None - - user_pass = tuple( - None if x is None else urllib_unquote(x) for x in user_pass - ) - - return netloc, user_pass - - -def redact_netloc(netloc): - # type: (str) -> str - """ - Replace the password in a netloc with "****", if it exists. - - For example, "user:pass@example.com" returns "user:****@example.com". - """ - netloc, (user, password) = split_auth_from_netloc(netloc) - if user is None: - return netloc - password = '' if password is None else ':****' - return '{user}{password}@{netloc}'.format(user=urllib_parse.quote(user), - password=password, - netloc=netloc) - - -def _transform_url(url, transform_netloc): - purl = urllib_parse.urlsplit(url) - netloc = transform_netloc(purl.netloc) - # stripped url - url_pieces = ( - purl.scheme, netloc, purl.path, purl.query, purl.fragment - ) - surl = urllib_parse.urlunsplit(url_pieces) - return surl - - -def _get_netloc(netloc): - return split_auth_from_netloc(netloc)[0] - - -def remove_auth_from_url(url): - # type: (str) -> str - # Return a copy of url with 'username:password@' removed. - # username/pass params are passed to subversion through flags - # and are not recognized in the url. - return _transform_url(url, _get_netloc) - - -def redact_password_from_url(url): - # type: (str) -> str - """Replace the password in a given url with ****.""" - return _transform_url(url, redact_netloc) - - -def protect_pip_from_modification_on_windows(modifying_pip): - """Protection of pip.exe from modification on Windows - - On Windows, any operation modifying pip should be run as: - python -m pip ... - """ - pip_names = [ - "pip.exe", - "pip{}.exe".format(sys.version_info[0]), - "pip{}.{}.exe".format(*sys.version_info[:2]) - ] - - # See https://github.com/pypa/pip/issues/1299 for more discussion - should_show_use_python_msg = ( - modifying_pip and - WINDOWS and - os.path.basename(sys.argv[0]) in pip_names - ) - - if should_show_use_python_msg: - new_command = [ - sys.executable, "-m", "pip" - ] + sys.argv[1:] - raise CommandError( - 'To modify pip, please run the following command:\n{}' - .format(" ".join(new_command)) - ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/models.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/models.py deleted file mode 100644 index d5cb80a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/models.py +++ /dev/null @@ -1,40 +0,0 @@ -"""Utilities for defining models -""" - -import operator - - -class KeyBasedCompareMixin(object): - """Provides comparision capabilities that is based on a key - """ - - def __init__(self, key, defining_class): - self._compare_key = key - self._defining_class = defining_class - - def __hash__(self): - return hash(self._compare_key) - - def __lt__(self, other): - return self._compare(other, operator.__lt__) - - def __le__(self, other): - return self._compare(other, operator.__le__) - - def __gt__(self, other): - return self._compare(other, operator.__gt__) - - def __ge__(self, other): - return self._compare(other, operator.__ge__) - - def __eq__(self, other): - return self._compare(other, operator.__eq__) - - def __ne__(self, other): - return self._compare(other, operator.__ne__) - - def _compare(self, other, method): - if not isinstance(other, self._defining_class): - return NotImplemented - - return method(self._compare_key, other._compare_key) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/outdated.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/outdated.py deleted file mode 100644 index 37c47a4..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/outdated.py +++ /dev/null @@ -1,164 +0,0 @@ -from __future__ import absolute_import - -import datetime -import json -import logging -import os.path -import sys - -from pip._vendor import lockfile, pkg_resources -from pip._vendor.packaging import version as packaging_version - -from pip._internal.index import PackageFinder -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.filesystem import check_path_owner -from pip._internal.utils.misc import ensure_dir, get_installed_version -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - import optparse # noqa: F401 - from typing import Any, Dict # noqa: F401 - from pip._internal.download import PipSession # noqa: F401 - - -SELFCHECK_DATE_FMT = "%Y-%m-%dT%H:%M:%SZ" - - -logger = logging.getLogger(__name__) - - -class SelfCheckState(object): - def __init__(self, cache_dir): - # type: (str) -> None - self.state = {} # type: Dict[str, Any] - self.statefile_path = None - - # Try to load the existing state - if cache_dir: - self.statefile_path = os.path.join(cache_dir, "selfcheck.json") - try: - with open(self.statefile_path) as statefile: - self.state = json.load(statefile)[sys.prefix] - except (IOError, ValueError, KeyError): - # Explicitly suppressing exceptions, since we don't want to - # error out if the cache file is invalid. - pass - - def save(self, pypi_version, current_time): - # type: (str, datetime.datetime) -> None - # If we do not have a path to cache in, don't bother saving. - if not self.statefile_path: - return - - # Check to make sure that we own the directory - if not check_path_owner(os.path.dirname(self.statefile_path)): - return - - # Now that we've ensured the directory is owned by this user, we'll go - # ahead and make sure that all our directories are created. - ensure_dir(os.path.dirname(self.statefile_path)) - - # Attempt to write out our version check file - with lockfile.LockFile(self.statefile_path): - if os.path.exists(self.statefile_path): - with open(self.statefile_path) as statefile: - state = json.load(statefile) - else: - state = {} - - state[sys.prefix] = { - "last_check": current_time.strftime(SELFCHECK_DATE_FMT), - "pypi_version": pypi_version, - } - - with open(self.statefile_path, "w") as statefile: - json.dump(state, statefile, sort_keys=True, - separators=(",", ":")) - - -def was_installed_by_pip(pkg): - # type: (str) -> bool - """Checks whether pkg was installed by pip - - This is used not to display the upgrade message when pip is in fact - installed by system package manager, such as dnf on Fedora. - """ - try: - dist = pkg_resources.get_distribution(pkg) - return (dist.has_metadata('INSTALLER') and - 'pip' in dist.get_metadata_lines('INSTALLER')) - except pkg_resources.DistributionNotFound: - return False - - -def pip_version_check(session, options): - # type: (PipSession, optparse.Values) -> None - """Check for an update for pip. - - Limit the frequency of checks to once per week. State is stored either in - the active virtualenv or in the user's USER_CACHE_DIR keyed off the prefix - of the pip script path. - """ - installed_version = get_installed_version("pip") - if not installed_version: - return - - pip_version = packaging_version.parse(installed_version) - pypi_version = None - - try: - state = SelfCheckState(cache_dir=options.cache_dir) - - current_time = datetime.datetime.utcnow() - # Determine if we need to refresh the state - if "last_check" in state.state and "pypi_version" in state.state: - last_check = datetime.datetime.strptime( - state.state["last_check"], - SELFCHECK_DATE_FMT - ) - if (current_time - last_check).total_seconds() < 7 * 24 * 60 * 60: - pypi_version = state.state["pypi_version"] - - # Refresh the version if we need to or just see if we need to warn - if pypi_version is None: - # Lets use PackageFinder to see what the latest pip version is - finder = PackageFinder( - find_links=options.find_links, - index_urls=[options.index_url] + options.extra_index_urls, - allow_all_prereleases=False, # Explicitly set to False - trusted_hosts=options.trusted_hosts, - session=session, - ) - all_candidates = finder.find_all_candidates("pip") - if not all_candidates: - return - pypi_version = str( - max(all_candidates, key=lambda c: c.version).version - ) - - # save that we've performed a check - state.save(pypi_version, current_time) - - remote_version = packaging_version.parse(pypi_version) - - # Determine if our pypi_version is older - if (pip_version < remote_version and - pip_version.base_version != remote_version.base_version and - was_installed_by_pip('pip')): - # Advise "python -m pip" on Windows to avoid issues - # with overwriting pip.exe. - if WINDOWS: - pip_cmd = "python -m pip" - else: - pip_cmd = "pip" - logger.warning( - "You are using pip version %s, however version %s is " - "available.\nYou should consider upgrading via the " - "'%s install --upgrade pip' command.", - pip_version, pypi_version, pip_cmd - ) - except Exception: - logger.debug( - "There was an error checking the latest version of pip", - exc_info=True, - ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/packaging.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/packaging.py deleted file mode 100644 index 7aaf7b5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/packaging.py +++ /dev/null @@ -1,85 +0,0 @@ -from __future__ import absolute_import - -import logging -import sys -from email.parser import FeedParser - -from pip._vendor import pkg_resources -from pip._vendor.packaging import specifiers, version - -from pip._internal import exceptions -from pip._internal.utils.misc import display_path -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Optional # noqa: F401 - from email.message import Message # noqa: F401 - from pip._vendor.pkg_resources import Distribution # noqa: F401 - - -logger = logging.getLogger(__name__) - - -def check_requires_python(requires_python): - # type: (Optional[str]) -> bool - """ - Check if the python version in use match the `requires_python` specifier. - - Returns `True` if the version of python in use matches the requirement. - Returns `False` if the version of python in use does not matches the - requirement. - - Raises an InvalidSpecifier if `requires_python` have an invalid format. - """ - if requires_python is None: - # The package provides no information - return True - requires_python_specifier = specifiers.SpecifierSet(requires_python) - - # We only use major.minor.micro - python_version = version.parse('.'.join(map(str, sys.version_info[:3]))) - return python_version in requires_python_specifier - - -def get_metadata(dist): - # type: (Distribution) -> Message - if (isinstance(dist, pkg_resources.DistInfoDistribution) and - dist.has_metadata('METADATA')): - metadata = dist.get_metadata('METADATA') - elif dist.has_metadata('PKG-INFO'): - metadata = dist.get_metadata('PKG-INFO') - else: - logger.warning("No metadata found in %s", display_path(dist.location)) - metadata = '' - - feed_parser = FeedParser() - feed_parser.feed(metadata) - return feed_parser.close() - - -def check_dist_requires_python(dist): - pkg_info_dict = get_metadata(dist) - requires_python = pkg_info_dict.get('Requires-Python') - try: - if not check_requires_python(requires_python): - raise exceptions.UnsupportedPythonVersion( - "%s requires Python '%s' but the running Python is %s" % ( - dist.project_name, - requires_python, - '.'.join(map(str, sys.version_info[:3])),) - ) - except specifiers.InvalidSpecifier as e: - logger.warning( - "Package %s has an invalid Requires-Python entry %s - %s", - dist.project_name, requires_python, e, - ) - return - - -def get_installer(dist): - # type: (Distribution) -> str - if dist.has_metadata('INSTALLER'): - for line in dist.get_metadata_lines('INSTALLER'): - if line.strip(): - return line.strip() - return '' diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/setuptools_build.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/setuptools_build.py deleted file mode 100644 index 03973e9..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/setuptools_build.py +++ /dev/null @@ -1,8 +0,0 @@ -# Shim to wrap setup.py invocation with setuptools -SETUPTOOLS_SHIM = ( - "import setuptools, tokenize;__file__=%r;" - "f=getattr(tokenize, 'open', open)(__file__);" - "code=f.read().replace('\\r\\n', '\\n');" - "f.close();" - "exec(compile(code, __file__, 'exec'))" -) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/temp_dir.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/temp_dir.py deleted file mode 100644 index 2c81ad5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/temp_dir.py +++ /dev/null @@ -1,155 +0,0 @@ -from __future__ import absolute_import - -import errno -import itertools -import logging -import os.path -import tempfile - -from pip._internal.utils.misc import rmtree - -logger = logging.getLogger(__name__) - - -class TempDirectory(object): - """Helper class that owns and cleans up a temporary directory. - - This class can be used as a context manager or as an OO representation of a - temporary directory. - - Attributes: - path - Location to the created temporary directory or None - delete - Whether the directory should be deleted when exiting - (when used as a contextmanager) - - Methods: - create() - Creates a temporary directory and stores its path in the path - attribute. - cleanup() - Deletes the temporary directory and sets path attribute to None - - When used as a context manager, a temporary directory is created on - entering the context and, if the delete attribute is True, on exiting the - context the created directory is deleted. - """ - - def __init__(self, path=None, delete=None, kind="temp"): - super(TempDirectory, self).__init__() - - if path is None and delete is None: - # If we were not given an explicit directory, and we were not given - # an explicit delete option, then we'll default to deleting. - delete = True - - self.path = path - self.delete = delete - self.kind = kind - - def __repr__(self): - return "<{} {!r}>".format(self.__class__.__name__, self.path) - - def __enter__(self): - self.create() - return self - - def __exit__(self, exc, value, tb): - if self.delete: - self.cleanup() - - def create(self): - """Create a temporary directory and store its path in self.path - """ - if self.path is not None: - logger.debug( - "Skipped creation of temporary directory: {}".format(self.path) - ) - return - # We realpath here because some systems have their default tmpdir - # symlinked to another directory. This tends to confuse build - # scripts, so we canonicalize the path by traversing potential - # symlinks here. - self.path = os.path.realpath( - tempfile.mkdtemp(prefix="pip-{}-".format(self.kind)) - ) - logger.debug("Created temporary directory: {}".format(self.path)) - - def cleanup(self): - """Remove the temporary directory created and reset state - """ - if self.path is not None and os.path.exists(self.path): - rmtree(self.path) - self.path = None - - -class AdjacentTempDirectory(TempDirectory): - """Helper class that creates a temporary directory adjacent to a real one. - - Attributes: - original - The original directory to create a temp directory for. - path - After calling create() or entering, contains the full - path to the temporary directory. - delete - Whether the directory should be deleted when exiting - (when used as a contextmanager) - - """ - # The characters that may be used to name the temp directory - # We always prepend a ~ and then rotate through these until - # a usable name is found. - # pkg_resources raises a different error for .dist-info folder - # with leading '-' and invalid metadata - LEADING_CHARS = "-~.=%0123456789" - - def __init__(self, original, delete=None): - super(AdjacentTempDirectory, self).__init__(delete=delete) - self.original = original.rstrip('/\\') - - @classmethod - def _generate_names(cls, name): - """Generates a series of temporary names. - - The algorithm replaces the leading characters in the name - with ones that are valid filesystem characters, but are not - valid package names (for both Python and pip definitions of - package). - """ - for i in range(1, len(name)): - for candidate in itertools.combinations_with_replacement( - cls.LEADING_CHARS, i - 1): - new_name = '~' + ''.join(candidate) + name[i:] - if new_name != name: - yield new_name - - # If we make it this far, we will have to make a longer name - for i in range(len(cls.LEADING_CHARS)): - for candidate in itertools.combinations_with_replacement( - cls.LEADING_CHARS, i): - new_name = '~' + ''.join(candidate) + name - if new_name != name: - yield new_name - - def create(self): - root, name = os.path.split(self.original) - for candidate in self._generate_names(name): - path = os.path.join(root, candidate) - try: - os.mkdir(path) - except OSError as ex: - # Continue if the name exists already - if ex.errno != errno.EEXIST: - raise - else: - self.path = os.path.realpath(path) - break - - if not self.path: - # Final fallback on the default behavior. - self.path = os.path.realpath( - tempfile.mkdtemp(prefix="pip-{}-".format(self.kind)) - ) - logger.debug("Created temporary directory: {}".format(self.path)) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/typing.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/typing.py deleted file mode 100644 index e085cdf..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/typing.py +++ /dev/null @@ -1,29 +0,0 @@ -"""For neatly implementing static typing in pip. - -`mypy` - the static type analysis tool we use - uses the `typing` module, which -provides core functionality fundamental to mypy's functioning. - -Generally, `typing` would be imported at runtime and used in that fashion - -it acts as a no-op at runtime and does not have any run-time overhead by -design. - -As it turns out, `typing` is not vendorable - it uses separate sources for -Python 2/Python 3. Thus, this codebase can not expect it to be present. -To work around this, mypy allows the typing import to be behind a False-y -optional to prevent it from running at runtime and type-comments can be used -to remove the need for the types to be accessible directly during runtime. - -This module provides the False-y guard in a nicely named fashion so that a -curious maintainer can reach here to read this. - -In pip, all static-typing related imports should be guarded as follows: - - from pip._internal.utils.typing import MYPY_CHECK_RUNNING - - if MYPY_CHECK_RUNNING: - from typing import ... # noqa: F401 - -Ref: https://github.com/python/mypy/issues/3216 -""" - -MYPY_CHECK_RUNNING = False diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/ui.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/ui.py deleted file mode 100644 index 433675d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/ui.py +++ /dev/null @@ -1,441 +0,0 @@ -from __future__ import absolute_import, division - -import contextlib -import itertools -import logging -import sys -import time -from signal import SIGINT, default_int_handler, signal - -from pip._vendor import six -from pip._vendor.progress.bar import ( - Bar, ChargingBar, FillingCirclesBar, FillingSquaresBar, IncrementalBar, - ShadyBar, -) -from pip._vendor.progress.helpers import HIDE_CURSOR, SHOW_CURSOR, WritelnMixin -from pip._vendor.progress.spinner import Spinner - -from pip._internal.utils.compat import WINDOWS -from pip._internal.utils.logging import get_indentation -from pip._internal.utils.misc import format_size -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import Any, Iterator, IO # noqa: F401 - -try: - from pip._vendor import colorama -# Lots of different errors can come from this, including SystemError and -# ImportError. -except Exception: - colorama = None - -logger = logging.getLogger(__name__) - - -def _select_progress_class(preferred, fallback): - encoding = getattr(preferred.file, "encoding", None) - - # If we don't know what encoding this file is in, then we'll just assume - # that it doesn't support unicode and use the ASCII bar. - if not encoding: - return fallback - - # Collect all of the possible characters we want to use with the preferred - # bar. - characters = [ - getattr(preferred, "empty_fill", six.text_type()), - getattr(preferred, "fill", six.text_type()), - ] - characters += list(getattr(preferred, "phases", [])) - - # Try to decode the characters we're using for the bar using the encoding - # of the given file, if this works then we'll assume that we can use the - # fancier bar and if not we'll fall back to the plaintext bar. - try: - six.text_type().join(characters).encode(encoding) - except UnicodeEncodeError: - return fallback - else: - return preferred - - -_BaseBar = _select_progress_class(IncrementalBar, Bar) # type: Any - - -class InterruptibleMixin(object): - """ - Helper to ensure that self.finish() gets called on keyboard interrupt. - - This allows downloads to be interrupted without leaving temporary state - (like hidden cursors) behind. - - This class is similar to the progress library's existing SigIntMixin - helper, but as of version 1.2, that helper has the following problems: - - 1. It calls sys.exit(). - 2. It discards the existing SIGINT handler completely. - 3. It leaves its own handler in place even after an uninterrupted finish, - which will have unexpected delayed effects if the user triggers an - unrelated keyboard interrupt some time after a progress-displaying - download has already completed, for example. - """ - - def __init__(self, *args, **kwargs): - """ - Save the original SIGINT handler for later. - """ - super(InterruptibleMixin, self).__init__(*args, **kwargs) - - self.original_handler = signal(SIGINT, self.handle_sigint) - - # If signal() returns None, the previous handler was not installed from - # Python, and we cannot restore it. This probably should not happen, - # but if it does, we must restore something sensible instead, at least. - # The least bad option should be Python's default SIGINT handler, which - # just raises KeyboardInterrupt. - if self.original_handler is None: - self.original_handler = default_int_handler - - def finish(self): - """ - Restore the original SIGINT handler after finishing. - - This should happen regardless of whether the progress display finishes - normally, or gets interrupted. - """ - super(InterruptibleMixin, self).finish() - signal(SIGINT, self.original_handler) - - def handle_sigint(self, signum, frame): - """ - Call self.finish() before delegating to the original SIGINT handler. - - This handler should only be in place while the progress display is - active. - """ - self.finish() - self.original_handler(signum, frame) - - -class SilentBar(Bar): - - def update(self): - pass - - -class BlueEmojiBar(IncrementalBar): - - suffix = "%(percent)d%%" - bar_prefix = " " - bar_suffix = " " - phases = (u"\U0001F539", u"\U0001F537", u"\U0001F535") # type: Any - - -class DownloadProgressMixin(object): - - def __init__(self, *args, **kwargs): - super(DownloadProgressMixin, self).__init__(*args, **kwargs) - self.message = (" " * (get_indentation() + 2)) + self.message - - @property - def downloaded(self): - return format_size(self.index) - - @property - def download_speed(self): - # Avoid zero division errors... - if self.avg == 0.0: - return "..." - return format_size(1 / self.avg) + "/s" - - @property - def pretty_eta(self): - if self.eta: - return "eta %s" % self.eta_td - return "" - - def iter(self, it, n=1): - for x in it: - yield x - self.next(n) - self.finish() - - -class WindowsMixin(object): - - def __init__(self, *args, **kwargs): - # The Windows terminal does not support the hide/show cursor ANSI codes - # even with colorama. So we'll ensure that hide_cursor is False on - # Windows. - # This call neds to go before the super() call, so that hide_cursor - # is set in time. The base progress bar class writes the "hide cursor" - # code to the terminal in its init, so if we don't set this soon - # enough, we get a "hide" with no corresponding "show"... - if WINDOWS and self.hide_cursor: - self.hide_cursor = False - - super(WindowsMixin, self).__init__(*args, **kwargs) - - # Check if we are running on Windows and we have the colorama module, - # if we do then wrap our file with it. - if WINDOWS and colorama: - self.file = colorama.AnsiToWin32(self.file) - # The progress code expects to be able to call self.file.isatty() - # but the colorama.AnsiToWin32() object doesn't have that, so we'll - # add it. - self.file.isatty = lambda: self.file.wrapped.isatty() - # The progress code expects to be able to call self.file.flush() - # but the colorama.AnsiToWin32() object doesn't have that, so we'll - # add it. - self.file.flush = lambda: self.file.wrapped.flush() - - -class BaseDownloadProgressBar(WindowsMixin, InterruptibleMixin, - DownloadProgressMixin): - - file = sys.stdout - message = "%(percent)d%%" - suffix = "%(downloaded)s %(download_speed)s %(pretty_eta)s" - -# NOTE: The "type: ignore" comments on the following classes are there to -# work around https://github.com/python/typing/issues/241 - - -class DefaultDownloadProgressBar(BaseDownloadProgressBar, - _BaseBar): - pass - - -class DownloadSilentBar(BaseDownloadProgressBar, SilentBar): # type: ignore - pass - - -class DownloadIncrementalBar(BaseDownloadProgressBar, # type: ignore - IncrementalBar): - pass - - -class DownloadChargingBar(BaseDownloadProgressBar, # type: ignore - ChargingBar): - pass - - -class DownloadShadyBar(BaseDownloadProgressBar, ShadyBar): # type: ignore - pass - - -class DownloadFillingSquaresBar(BaseDownloadProgressBar, # type: ignore - FillingSquaresBar): - pass - - -class DownloadFillingCirclesBar(BaseDownloadProgressBar, # type: ignore - FillingCirclesBar): - pass - - -class DownloadBlueEmojiProgressBar(BaseDownloadProgressBar, # type: ignore - BlueEmojiBar): - pass - - -class DownloadProgressSpinner(WindowsMixin, InterruptibleMixin, - DownloadProgressMixin, WritelnMixin, Spinner): - - file = sys.stdout - suffix = "%(downloaded)s %(download_speed)s" - - def next_phase(self): - if not hasattr(self, "_phaser"): - self._phaser = itertools.cycle(self.phases) - return next(self._phaser) - - def update(self): - message = self.message % self - phase = self.next_phase() - suffix = self.suffix % self - line = ''.join([ - message, - " " if message else "", - phase, - " " if suffix else "", - suffix, - ]) - - self.writeln(line) - - -BAR_TYPES = { - "off": (DownloadSilentBar, DownloadSilentBar), - "on": (DefaultDownloadProgressBar, DownloadProgressSpinner), - "ascii": (DownloadIncrementalBar, DownloadProgressSpinner), - "pretty": (DownloadFillingCirclesBar, DownloadProgressSpinner), - "emoji": (DownloadBlueEmojiProgressBar, DownloadProgressSpinner) -} - - -def DownloadProgressProvider(progress_bar, max=None): - if max is None or max == 0: - return BAR_TYPES[progress_bar][1]().iter - else: - return BAR_TYPES[progress_bar][0](max=max).iter - - -################################################################ -# Generic "something is happening" spinners -# -# We don't even try using progress.spinner.Spinner here because it's actually -# simpler to reimplement from scratch than to coerce their code into doing -# what we need. -################################################################ - -@contextlib.contextmanager -def hidden_cursor(file): - # type: (IO) -> Iterator[None] - # The Windows terminal does not support the hide/show cursor ANSI codes, - # even via colorama. So don't even try. - if WINDOWS: - yield - # We don't want to clutter the output with control characters if we're - # writing to a file, or if the user is running with --quiet. - # See https://github.com/pypa/pip/issues/3418 - elif not file.isatty() or logger.getEffectiveLevel() > logging.INFO: - yield - else: - file.write(HIDE_CURSOR) - try: - yield - finally: - file.write(SHOW_CURSOR) - - -class RateLimiter(object): - def __init__(self, min_update_interval_seconds): - # type: (float) -> None - self._min_update_interval_seconds = min_update_interval_seconds - self._last_update = 0 # type: float - - def ready(self): - # type: () -> bool - now = time.time() - delta = now - self._last_update - return delta >= self._min_update_interval_seconds - - def reset(self): - # type: () -> None - self._last_update = time.time() - - -class SpinnerInterface(object): - def spin(self): - # type: () -> None - raise NotImplementedError() - - def finish(self, final_status): - # type: (str) -> None - raise NotImplementedError() - - -class InteractiveSpinner(SpinnerInterface): - def __init__(self, message, file=None, spin_chars="-\\|/", - # Empirically, 8 updates/second looks nice - min_update_interval_seconds=0.125): - self._message = message - if file is None: - file = sys.stdout - self._file = file - self._rate_limiter = RateLimiter(min_update_interval_seconds) - self._finished = False - - self._spin_cycle = itertools.cycle(spin_chars) - - self._file.write(" " * get_indentation() + self._message + " ... ") - self._width = 0 - - def _write(self, status): - assert not self._finished - # Erase what we wrote before by backspacing to the beginning, writing - # spaces to overwrite the old text, and then backspacing again - backup = "\b" * self._width - self._file.write(backup + " " * self._width + backup) - # Now we have a blank slate to add our status - self._file.write(status) - self._width = len(status) - self._file.flush() - self._rate_limiter.reset() - - def spin(self): - # type: () -> None - if self._finished: - return - if not self._rate_limiter.ready(): - return - self._write(next(self._spin_cycle)) - - def finish(self, final_status): - # type: (str) -> None - if self._finished: - return - self._write(final_status) - self._file.write("\n") - self._file.flush() - self._finished = True - - -# Used for dumb terminals, non-interactive installs (no tty), etc. -# We still print updates occasionally (once every 60 seconds by default) to -# act as a keep-alive for systems like Travis-CI that take lack-of-output as -# an indication that a task has frozen. -class NonInteractiveSpinner(SpinnerInterface): - def __init__(self, message, min_update_interval_seconds=60): - # type: (str, float) -> None - self._message = message - self._finished = False - self._rate_limiter = RateLimiter(min_update_interval_seconds) - self._update("started") - - def _update(self, status): - assert not self._finished - self._rate_limiter.reset() - logger.info("%s: %s", self._message, status) - - def spin(self): - # type: () -> None - if self._finished: - return - if not self._rate_limiter.ready(): - return - self._update("still running...") - - def finish(self, final_status): - # type: (str) -> None - if self._finished: - return - self._update("finished with status '%s'" % (final_status,)) - self._finished = True - - -@contextlib.contextmanager -def open_spinner(message): - # type: (str) -> Iterator[SpinnerInterface] - # Interactive spinner goes directly to sys.stdout rather than being routed - # through the logging system, but it acts like it has level INFO, - # i.e. it's only displayed if we're at level INFO or better. - # Non-interactive spinner goes through the logging system, so it is always - # in sync with logging configuration. - if sys.stdout.isatty() and logger.getEffectiveLevel() <= logging.INFO: - spinner = InteractiveSpinner(message) # type: SpinnerInterface - else: - spinner = NonInteractiveSpinner(message) - try: - with hidden_cursor(sys.stdout): - yield spinner - except KeyboardInterrupt: - spinner.finish("canceled") - raise - except Exception: - spinner.finish("error") - raise - else: - spinner.finish("done") diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/__init__.py deleted file mode 100644 index 9cba764..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/__init__.py +++ /dev/null @@ -1,534 +0,0 @@ -"""Handles all VCS (version control) support""" -from __future__ import absolute_import - -import errno -import logging -import os -import shutil -import sys - -from pip._vendor.six.moves.urllib import parse as urllib_parse - -from pip._internal.exceptions import BadCommand -from pip._internal.utils.misc import ( - display_path, backup_dir, call_subprocess, rmtree, ask_path_exists, -) -from pip._internal.utils.typing import MYPY_CHECK_RUNNING - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Any, Dict, Iterable, List, Mapping, Optional, Text, Tuple, Type - ) - from pip._internal.utils.ui import SpinnerInterface # noqa: F401 - - AuthInfo = Tuple[Optional[str], Optional[str]] - -__all__ = ['vcs'] - - -logger = logging.getLogger(__name__) - - -class RemoteNotFoundError(Exception): - pass - - -class RevOptions(object): - - """ - Encapsulates a VCS-specific revision to install, along with any VCS - install options. - - Instances of this class should be treated as if immutable. - """ - - def __init__(self, vcs, rev=None, extra_args=None): - # type: (VersionControl, Optional[str], Optional[List[str]]) -> None - """ - Args: - vcs: a VersionControl object. - rev: the name of the revision to install. - extra_args: a list of extra options. - """ - if extra_args is None: - extra_args = [] - - self.extra_args = extra_args - self.rev = rev - self.vcs = vcs - - def __repr__(self): - return '<RevOptions {}: rev={!r}>'.format(self.vcs.name, self.rev) - - @property - def arg_rev(self): - # type: () -> Optional[str] - if self.rev is None: - return self.vcs.default_arg_rev - - return self.rev - - def to_args(self): - # type: () -> List[str] - """ - Return the VCS-specific command arguments. - """ - args = [] # type: List[str] - rev = self.arg_rev - if rev is not None: - args += self.vcs.get_base_rev_args(rev) - args += self.extra_args - - return args - - def to_display(self): - # type: () -> str - if not self.rev: - return '' - - return ' (to revision {})'.format(self.rev) - - def make_new(self, rev): - # type: (str) -> RevOptions - """ - Make a copy of the current instance, but with a new rev. - - Args: - rev: the name of the revision for the new object. - """ - return self.vcs.make_rev_options(rev, extra_args=self.extra_args) - - -class VcsSupport(object): - _registry = {} # type: Dict[str, Type[VersionControl]] - schemes = ['ssh', 'git', 'hg', 'bzr', 'sftp', 'svn'] - - def __init__(self): - # type: () -> None - # Register more schemes with urlparse for various version control - # systems - urllib_parse.uses_netloc.extend(self.schemes) - # Python >= 2.7.4, 3.3 doesn't have uses_fragment - if getattr(urllib_parse, 'uses_fragment', None): - urllib_parse.uses_fragment.extend(self.schemes) - super(VcsSupport, self).__init__() - - def __iter__(self): - return self._registry.__iter__() - - @property - def backends(self): - # type: () -> List[Type[VersionControl]] - return list(self._registry.values()) - - @property - def dirnames(self): - # type: () -> List[str] - return [backend.dirname for backend in self.backends] - - @property - def all_schemes(self): - # type: () -> List[str] - schemes = [] # type: List[str] - for backend in self.backends: - schemes.extend(backend.schemes) - return schemes - - def register(self, cls): - # type: (Type[VersionControl]) -> None - if not hasattr(cls, 'name'): - logger.warning('Cannot register VCS %s', cls.__name__) - return - if cls.name not in self._registry: - self._registry[cls.name] = cls - logger.debug('Registered VCS backend: %s', cls.name) - - def unregister(self, cls=None, name=None): - # type: (Optional[Type[VersionControl]], Optional[str]) -> None - if name in self._registry: - del self._registry[name] - elif cls in self._registry.values(): - del self._registry[cls.name] - else: - logger.warning('Cannot unregister because no class or name given') - - def get_backend_type(self, location): - # type: (str) -> Optional[Type[VersionControl]] - """ - Return the type of the version control backend if found at given - location, e.g. vcs.get_backend_type('/path/to/vcs/checkout') - """ - for vc_type in self._registry.values(): - if vc_type.controls_location(location): - logger.debug('Determine that %s uses VCS: %s', - location, vc_type.name) - return vc_type - return None - - def get_backend(self, name): - # type: (str) -> Optional[Type[VersionControl]] - name = name.lower() - if name in self._registry: - return self._registry[name] - return None - - -vcs = VcsSupport() - - -class VersionControl(object): - name = '' - dirname = '' - repo_name = '' - # List of supported schemes for this Version Control - schemes = () # type: Tuple[str, ...] - # Iterable of environment variable names to pass to call_subprocess(). - unset_environ = () # type: Tuple[str, ...] - default_arg_rev = None # type: Optional[str] - - def __init__(self, url=None, *args, **kwargs): - self.url = url - super(VersionControl, self).__init__(*args, **kwargs) - - def get_base_rev_args(self, rev): - """ - Return the base revision arguments for a vcs command. - - Args: - rev: the name of a revision to install. Cannot be None. - """ - raise NotImplementedError - - def make_rev_options(self, rev=None, extra_args=None): - # type: (Optional[str], Optional[List[str]]) -> RevOptions - """ - Return a RevOptions object. - - Args: - rev: the name of a revision to install. - extra_args: a list of extra options. - """ - return RevOptions(self, rev, extra_args=extra_args) - - @classmethod - def _is_local_repository(cls, repo): - # type: (str) -> bool - """ - posix absolute paths start with os.path.sep, - win32 ones start with drive (like c:\\folder) - """ - drive, tail = os.path.splitdrive(repo) - return repo.startswith(os.path.sep) or bool(drive) - - def export(self, location): - """ - Export the repository at the url to the destination location - i.e. only download the files, without vcs informations - """ - raise NotImplementedError - - def get_netloc_and_auth(self, netloc, scheme): - """ - Parse the repository URL's netloc, and return the new netloc to use - along with auth information. - - Args: - netloc: the original repository URL netloc. - scheme: the repository URL's scheme without the vcs prefix. - - This is mainly for the Subversion class to override, so that auth - information can be provided via the --username and --password options - instead of through the URL. For other subclasses like Git without - such an option, auth information must stay in the URL. - - Returns: (netloc, (username, password)). - """ - return netloc, (None, None) - - def get_url_rev_and_auth(self, url): - # type: (str) -> Tuple[str, Optional[str], AuthInfo] - """ - Parse the repository URL to use, and return the URL, revision, - and auth info to use. - - Returns: (url, rev, (username, password)). - """ - scheme, netloc, path, query, frag = urllib_parse.urlsplit(url) - if '+' not in scheme: - raise ValueError( - "Sorry, {!r} is a malformed VCS url. " - "The format is <vcs>+<protocol>://<url>, " - "e.g. svn+http://myrepo/svn/MyApp#egg=MyApp".format(url) - ) - # Remove the vcs prefix. - scheme = scheme.split('+', 1)[1] - netloc, user_pass = self.get_netloc_and_auth(netloc, scheme) - rev = None - if '@' in path: - path, rev = path.rsplit('@', 1) - url = urllib_parse.urlunsplit((scheme, netloc, path, query, '')) - return url, rev, user_pass - - def make_rev_args(self, username, password): - """ - Return the RevOptions "extra arguments" to use in obtain(). - """ - return [] - - def get_url_rev_options(self, url): - # type: (str) -> Tuple[str, RevOptions] - """ - Return the URL and RevOptions object to use in obtain() and in - some cases export(), as a tuple (url, rev_options). - """ - url, rev, user_pass = self.get_url_rev_and_auth(url) - username, password = user_pass - extra_args = self.make_rev_args(username, password) - rev_options = self.make_rev_options(rev, extra_args=extra_args) - - return url, rev_options - - def normalize_url(self, url): - # type: (str) -> str - """ - Normalize a URL for comparison by unquoting it and removing any - trailing slash. - """ - return urllib_parse.unquote(url).rstrip('/') - - def compare_urls(self, url1, url2): - # type: (str, str) -> bool - """ - Compare two repo URLs for identity, ignoring incidental differences. - """ - return (self.normalize_url(url1) == self.normalize_url(url2)) - - def fetch_new(self, dest, url, rev_options): - """ - Fetch a revision from a repository, in the case that this is the - first fetch from the repository. - - Args: - dest: the directory to fetch the repository to. - rev_options: a RevOptions object. - """ - raise NotImplementedError - - def switch(self, dest, url, rev_options): - """ - Switch the repo at ``dest`` to point to ``URL``. - - Args: - rev_options: a RevOptions object. - """ - raise NotImplementedError - - def update(self, dest, url, rev_options): - """ - Update an already-existing repo to the given ``rev_options``. - - Args: - rev_options: a RevOptions object. - """ - raise NotImplementedError - - def is_commit_id_equal(self, dest, name): - """ - Return whether the id of the current commit equals the given name. - - Args: - dest: the repository directory. - name: a string name. - """ - raise NotImplementedError - - def obtain(self, dest): - # type: (str) -> None - """ - Install or update in editable mode the package represented by this - VersionControl object. - - Args: - dest: the repository directory in which to install or update. - """ - url, rev_options = self.get_url_rev_options(self.url) - - if not os.path.exists(dest): - self.fetch_new(dest, url, rev_options) - return - - rev_display = rev_options.to_display() - if self.is_repository_directory(dest): - existing_url = self.get_remote_url(dest) - if self.compare_urls(existing_url, url): - logger.debug( - '%s in %s exists, and has correct URL (%s)', - self.repo_name.title(), - display_path(dest), - url, - ) - if not self.is_commit_id_equal(dest, rev_options.rev): - logger.info( - 'Updating %s %s%s', - display_path(dest), - self.repo_name, - rev_display, - ) - self.update(dest, url, rev_options) - else: - logger.info('Skipping because already up-to-date.') - return - - logger.warning( - '%s %s in %s exists with URL %s', - self.name, - self.repo_name, - display_path(dest), - existing_url, - ) - prompt = ('(s)witch, (i)gnore, (w)ipe, (b)ackup ', - ('s', 'i', 'w', 'b')) - else: - logger.warning( - 'Directory %s already exists, and is not a %s %s.', - dest, - self.name, - self.repo_name, - ) - # https://github.com/python/mypy/issues/1174 - prompt = ('(i)gnore, (w)ipe, (b)ackup ', # type: ignore - ('i', 'w', 'b')) - - logger.warning( - 'The plan is to install the %s repository %s', - self.name, - url, - ) - response = ask_path_exists('What to do? %s' % prompt[0], prompt[1]) - - if response == 'a': - sys.exit(-1) - - if response == 'w': - logger.warning('Deleting %s', display_path(dest)) - rmtree(dest) - self.fetch_new(dest, url, rev_options) - return - - if response == 'b': - dest_dir = backup_dir(dest) - logger.warning( - 'Backing up %s to %s', display_path(dest), dest_dir, - ) - shutil.move(dest, dest_dir) - self.fetch_new(dest, url, rev_options) - return - - # Do nothing if the response is "i". - if response == 's': - logger.info( - 'Switching %s %s to %s%s', - self.repo_name, - display_path(dest), - url, - rev_display, - ) - self.switch(dest, url, rev_options) - - def unpack(self, location): - # type: (str) -> None - """ - Clean up current location and download the url repository - (and vcs infos) into location - """ - if os.path.exists(location): - rmtree(location) - self.obtain(location) - - @classmethod - def get_src_requirement(cls, location, project_name): - """ - Return a string representing the requirement needed to - redownload the files currently present in location, something - like: - {repository_url}@{revision}#egg={project_name}-{version_identifier} - """ - raise NotImplementedError - - @classmethod - def get_remote_url(cls, location): - """ - Return the url used at location - - Raises RemoteNotFoundError if the repository does not have a remote - url configured. - """ - raise NotImplementedError - - @classmethod - def get_revision(cls, location): - """ - Return the current commit id of the files at the given location. - """ - raise NotImplementedError - - @classmethod - def run_command( - cls, - cmd, # type: List[str] - show_stdout=True, # type: bool - cwd=None, # type: Optional[str] - on_returncode='raise', # type: str - extra_ok_returncodes=None, # type: Optional[Iterable[int]] - command_desc=None, # type: Optional[str] - extra_environ=None, # type: Optional[Mapping[str, Any]] - spinner=None # type: Optional[SpinnerInterface] - ): - # type: (...) -> Optional[Text] - """ - Run a VCS subcommand - This is simply a wrapper around call_subprocess that adds the VCS - command name, and checks that the VCS is available - """ - cmd = [cls.name] + cmd - try: - return call_subprocess(cmd, show_stdout, cwd, - on_returncode=on_returncode, - extra_ok_returncodes=extra_ok_returncodes, - command_desc=command_desc, - extra_environ=extra_environ, - unset_environ=cls.unset_environ, - spinner=spinner) - except OSError as e: - # errno.ENOENT = no such file or directory - # In other words, the VCS executable isn't available - if e.errno == errno.ENOENT: - raise BadCommand( - 'Cannot find command %r - do you have ' - '%r installed and in your ' - 'PATH?' % (cls.name, cls.name)) - else: - raise # re-raise exception if a different error occurred - - @classmethod - def is_repository_directory(cls, path): - # type: (str) -> bool - """ - Return whether a directory path is a repository directory. - """ - logger.debug('Checking in %s for %s (%s)...', - path, cls.dirname, cls.name) - return os.path.exists(os.path.join(path, cls.dirname)) - - @classmethod - def controls_location(cls, location): - # type: (str) -> bool - """ - Check if a location is controlled by the vcs. - It is meant to be overridden to implement smarter detection - mechanisms for specific vcs. - - This can do more than is_repository_directory() alone. For example, - the Git override checks that Git is actually available. - """ - return cls.is_repository_directory(location) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/bazaar.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/bazaar.py deleted file mode 100644 index 4c6ac79..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/bazaar.py +++ /dev/null @@ -1,114 +0,0 @@ -from __future__ import absolute_import - -import logging -import os - -from pip._vendor.six.moves.urllib import parse as urllib_parse - -from pip._internal.download import path_to_url -from pip._internal.utils.misc import ( - display_path, make_vcs_requirement_url, rmtree, -) -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.vcs import VersionControl, vcs - -logger = logging.getLogger(__name__) - - -class Bazaar(VersionControl): - name = 'bzr' - dirname = '.bzr' - repo_name = 'branch' - schemes = ( - 'bzr', 'bzr+http', 'bzr+https', 'bzr+ssh', 'bzr+sftp', 'bzr+ftp', - 'bzr+lp', - ) - - def __init__(self, url=None, *args, **kwargs): - super(Bazaar, self).__init__(url, *args, **kwargs) - # This is only needed for python <2.7.5 - # Register lp but do not expose as a scheme to support bzr+lp. - if getattr(urllib_parse, 'uses_fragment', None): - urllib_parse.uses_fragment.extend(['lp']) - - def get_base_rev_args(self, rev): - return ['-r', rev] - - def export(self, location): - """ - Export the Bazaar repository at the url to the destination location - """ - # Remove the location to make sure Bazaar can export it correctly - if os.path.exists(location): - rmtree(location) - - with TempDirectory(kind="export") as temp_dir: - self.unpack(temp_dir.path) - - self.run_command( - ['export', location], - cwd=temp_dir.path, show_stdout=False, - ) - - def fetch_new(self, dest, url, rev_options): - rev_display = rev_options.to_display() - logger.info( - 'Checking out %s%s to %s', - url, - rev_display, - display_path(dest), - ) - cmd_args = ['branch', '-q'] + rev_options.to_args() + [url, dest] - self.run_command(cmd_args) - - def switch(self, dest, url, rev_options): - self.run_command(['switch', url], cwd=dest) - - def update(self, dest, url, rev_options): - cmd_args = ['pull', '-q'] + rev_options.to_args() - self.run_command(cmd_args, cwd=dest) - - def get_url_rev_and_auth(self, url): - # hotfix the URL scheme after removing bzr+ from bzr+ssh:// readd it - url, rev, user_pass = super(Bazaar, self).get_url_rev_and_auth(url) - if url.startswith('ssh://'): - url = 'bzr+' + url - return url, rev, user_pass - - @classmethod - def get_remote_url(cls, location): - urls = cls.run_command(['info'], show_stdout=False, cwd=location) - for line in urls.splitlines(): - line = line.strip() - for x in ('checkout of branch: ', - 'parent branch: '): - if line.startswith(x): - repo = line.split(x)[1] - if cls._is_local_repository(repo): - return path_to_url(repo) - return repo - return None - - @classmethod - def get_revision(cls, location): - revision = cls.run_command( - ['revno'], show_stdout=False, cwd=location, - ) - return revision.splitlines()[-1] - - @classmethod - def get_src_requirement(cls, location, project_name): - repo = cls.get_remote_url(location) - if not repo: - return None - if not repo.lower().startswith('bzr:'): - repo = 'bzr+' + repo - current_rev = cls.get_revision(location) - return make_vcs_requirement_url(repo, current_rev, project_name) - - def is_commit_id_equal(self, dest, name): - """Always assume the versions don't match""" - return False - - -vcs.register(Bazaar) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/git.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/git.py deleted file mode 100644 index dd2bd61..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/git.py +++ /dev/null @@ -1,369 +0,0 @@ -from __future__ import absolute_import - -import logging -import os.path -import re - -from pip._vendor.packaging.version import parse as parse_version -from pip._vendor.six.moves.urllib import parse as urllib_parse -from pip._vendor.six.moves.urllib import request as urllib_request - -from pip._internal.exceptions import BadCommand -from pip._internal.utils.compat import samefile -from pip._internal.utils.misc import ( - display_path, make_vcs_requirement_url, redact_password_from_url, -) -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.vcs import RemoteNotFoundError, VersionControl, vcs - -urlsplit = urllib_parse.urlsplit -urlunsplit = urllib_parse.urlunsplit - - -logger = logging.getLogger(__name__) - - -HASH_REGEX = re.compile('[a-fA-F0-9]{40}') - - -def looks_like_hash(sha): - return bool(HASH_REGEX.match(sha)) - - -class Git(VersionControl): - name = 'git' - dirname = '.git' - repo_name = 'clone' - schemes = ( - 'git', 'git+http', 'git+https', 'git+ssh', 'git+git', 'git+file', - ) - # Prevent the user's environment variables from interfering with pip: - # https://github.com/pypa/pip/issues/1130 - unset_environ = ('GIT_DIR', 'GIT_WORK_TREE') - default_arg_rev = 'HEAD' - - def __init__(self, url=None, *args, **kwargs): - - # Works around an apparent Git bug - # (see https://article.gmane.org/gmane.comp.version-control.git/146500) - if url: - scheme, netloc, path, query, fragment = urlsplit(url) - if scheme.endswith('file'): - initial_slashes = path[:-len(path.lstrip('/'))] - newpath = ( - initial_slashes + - urllib_request.url2pathname(path) - .replace('\\', '/').lstrip('/') - ) - url = urlunsplit((scheme, netloc, newpath, query, fragment)) - after_plus = scheme.find('+') + 1 - url = scheme[:after_plus] + urlunsplit( - (scheme[after_plus:], netloc, newpath, query, fragment), - ) - - super(Git, self).__init__(url, *args, **kwargs) - - def get_base_rev_args(self, rev): - return [rev] - - def get_git_version(self): - VERSION_PFX = 'git version ' - version = self.run_command(['version'], show_stdout=False) - if version.startswith(VERSION_PFX): - version = version[len(VERSION_PFX):].split()[0] - else: - version = '' - # get first 3 positions of the git version becasue - # on windows it is x.y.z.windows.t, and this parses as - # LegacyVersion which always smaller than a Version. - version = '.'.join(version.split('.')[:3]) - return parse_version(version) - - def get_current_branch(self, location): - """ - Return the current branch, or None if HEAD isn't at a branch - (e.g. detached HEAD). - """ - # git-symbolic-ref exits with empty stdout if "HEAD" is a detached - # HEAD rather than a symbolic ref. In addition, the -q causes the - # command to exit with status code 1 instead of 128 in this case - # and to suppress the message to stderr. - args = ['symbolic-ref', '-q', 'HEAD'] - output = self.run_command( - args, extra_ok_returncodes=(1, ), show_stdout=False, cwd=location, - ) - ref = output.strip() - - if ref.startswith('refs/heads/'): - return ref[len('refs/heads/'):] - - return None - - def export(self, location): - """Export the Git repository at the url to the destination location""" - if not location.endswith('/'): - location = location + '/' - - with TempDirectory(kind="export") as temp_dir: - self.unpack(temp_dir.path) - self.run_command( - ['checkout-index', '-a', '-f', '--prefix', location], - show_stdout=False, cwd=temp_dir.path - ) - - def get_revision_sha(self, dest, rev): - """ - Return (sha_or_none, is_branch), where sha_or_none is a commit hash - if the revision names a remote branch or tag, otherwise None. - - Args: - dest: the repository directory. - rev: the revision name. - """ - # Pass rev to pre-filter the list. - output = self.run_command(['show-ref', rev], cwd=dest, - show_stdout=False, on_returncode='ignore') - refs = {} - for line in output.strip().splitlines(): - try: - sha, ref = line.split() - except ValueError: - # Include the offending line to simplify troubleshooting if - # this error ever occurs. - raise ValueError('unexpected show-ref line: {!r}'.format(line)) - - refs[ref] = sha - - branch_ref = 'refs/remotes/origin/{}'.format(rev) - tag_ref = 'refs/tags/{}'.format(rev) - - sha = refs.get(branch_ref) - if sha is not None: - return (sha, True) - - sha = refs.get(tag_ref) - - return (sha, False) - - def resolve_revision(self, dest, url, rev_options): - """ - Resolve a revision to a new RevOptions object with the SHA1 of the - branch, tag, or ref if found. - - Args: - rev_options: a RevOptions object. - """ - rev = rev_options.arg_rev - sha, is_branch = self.get_revision_sha(dest, rev) - - if sha is not None: - rev_options = rev_options.make_new(sha) - rev_options.branch_name = rev if is_branch else None - - return rev_options - - # Do not show a warning for the common case of something that has - # the form of a Git commit hash. - if not looks_like_hash(rev): - logger.warning( - "Did not find branch or tag '%s', assuming revision or ref.", - rev, - ) - - if not rev.startswith('refs/'): - return rev_options - - # If it looks like a ref, we have to fetch it explicitly. - self.run_command( - ['fetch', '-q', url] + rev_options.to_args(), - cwd=dest, - ) - # Change the revision to the SHA of the ref we fetched - sha = self.get_revision(dest, rev='FETCH_HEAD') - rev_options = rev_options.make_new(sha) - - return rev_options - - def is_commit_id_equal(self, dest, name): - """ - Return whether the current commit hash equals the given name. - - Args: - dest: the repository directory. - name: a string name. - """ - if not name: - # Then avoid an unnecessary subprocess call. - return False - - return self.get_revision(dest) == name - - def fetch_new(self, dest, url, rev_options): - rev_display = rev_options.to_display() - logger.info( - 'Cloning %s%s to %s', redact_password_from_url(url), - rev_display, display_path(dest), - ) - self.run_command(['clone', '-q', url, dest]) - - if rev_options.rev: - # Then a specific revision was requested. - rev_options = self.resolve_revision(dest, url, rev_options) - branch_name = getattr(rev_options, 'branch_name', None) - if branch_name is None: - # Only do a checkout if the current commit id doesn't match - # the requested revision. - if not self.is_commit_id_equal(dest, rev_options.rev): - cmd_args = ['checkout', '-q'] + rev_options.to_args() - self.run_command(cmd_args, cwd=dest) - elif self.get_current_branch(dest) != branch_name: - # Then a specific branch was requested, and that branch - # is not yet checked out. - track_branch = 'origin/{}'.format(branch_name) - cmd_args = [ - 'checkout', '-b', branch_name, '--track', track_branch, - ] - self.run_command(cmd_args, cwd=dest) - - #: repo may contain submodules - self.update_submodules(dest) - - def switch(self, dest, url, rev_options): - self.run_command(['config', 'remote.origin.url', url], cwd=dest) - cmd_args = ['checkout', '-q'] + rev_options.to_args() - self.run_command(cmd_args, cwd=dest) - - self.update_submodules(dest) - - def update(self, dest, url, rev_options): - # First fetch changes from the default remote - if self.get_git_version() >= parse_version('1.9.0'): - # fetch tags in addition to everything else - self.run_command(['fetch', '-q', '--tags'], cwd=dest) - else: - self.run_command(['fetch', '-q'], cwd=dest) - # Then reset to wanted revision (maybe even origin/master) - rev_options = self.resolve_revision(dest, url, rev_options) - cmd_args = ['reset', '--hard', '-q'] + rev_options.to_args() - self.run_command(cmd_args, cwd=dest) - #: update submodules - self.update_submodules(dest) - - @classmethod - def get_remote_url(cls, location): - """ - Return URL of the first remote encountered. - - Raises RemoteNotFoundError if the repository does not have a remote - url configured. - """ - # We need to pass 1 for extra_ok_returncodes since the command - # exits with return code 1 if there are no matching lines. - stdout = cls.run_command( - ['config', '--get-regexp', r'remote\..*\.url'], - extra_ok_returncodes=(1, ), show_stdout=False, cwd=location, - ) - remotes = stdout.splitlines() - try: - found_remote = remotes[0] - except IndexError: - raise RemoteNotFoundError - - for remote in remotes: - if remote.startswith('remote.origin.url '): - found_remote = remote - break - url = found_remote.split(' ')[1] - return url.strip() - - @classmethod - def get_revision(cls, location, rev=None): - if rev is None: - rev = 'HEAD' - current_rev = cls.run_command( - ['rev-parse', rev], show_stdout=False, cwd=location, - ) - return current_rev.strip() - - @classmethod - def _get_subdirectory(cls, location): - """Return the relative path of setup.py to the git repo root.""" - # find the repo root - git_dir = cls.run_command(['rev-parse', '--git-dir'], - show_stdout=False, cwd=location).strip() - if not os.path.isabs(git_dir): - git_dir = os.path.join(location, git_dir) - root_dir = os.path.join(git_dir, '..') - # find setup.py - orig_location = location - while not os.path.exists(os.path.join(location, 'setup.py')): - last_location = location - location = os.path.dirname(location) - if location == last_location: - # We've traversed up to the root of the filesystem without - # finding setup.py - logger.warning( - "Could not find setup.py for directory %s (tried all " - "parent directories)", - orig_location, - ) - return None - # relative path of setup.py to repo root - if samefile(root_dir, location): - return None - return os.path.relpath(location, root_dir) - - @classmethod - def get_src_requirement(cls, location, project_name): - repo = cls.get_remote_url(location) - if not repo.lower().startswith('git:'): - repo = 'git+' + repo - current_rev = cls.get_revision(location) - subdir = cls._get_subdirectory(location) - req = make_vcs_requirement_url(repo, current_rev, project_name, - subdir=subdir) - - return req - - def get_url_rev_and_auth(self, url): - """ - Prefixes stub URLs like 'user@hostname:user/repo.git' with 'ssh://'. - That's required because although they use SSH they sometimes don't - work with a ssh:// scheme (e.g. GitHub). But we need a scheme for - parsing. Hence we remove it again afterwards and return it as a stub. - """ - if '://' not in url: - assert 'file:' not in url - url = url.replace('git+', 'git+ssh://') - url, rev, user_pass = super(Git, self).get_url_rev_and_auth(url) - url = url.replace('ssh://', '') - else: - url, rev, user_pass = super(Git, self).get_url_rev_and_auth(url) - - return url, rev, user_pass - - def update_submodules(self, location): - if not os.path.exists(os.path.join(location, '.gitmodules')): - return - self.run_command( - ['submodule', 'update', '--init', '--recursive', '-q'], - cwd=location, - ) - - @classmethod - def controls_location(cls, location): - if super(Git, cls).controls_location(location): - return True - try: - r = cls.run_command(['rev-parse'], - cwd=location, - show_stdout=False, - on_returncode='ignore') - return not r - except BadCommand: - logger.debug("could not determine if %s is under git control " - "because git is not available", location) - return False - - -vcs.register(Git) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/mercurial.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/mercurial.py deleted file mode 100644 index 26e75de..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/mercurial.py +++ /dev/null @@ -1,103 +0,0 @@ -from __future__ import absolute_import - -import logging -import os - -from pip._vendor.six.moves import configparser - -from pip._internal.download import path_to_url -from pip._internal.utils.misc import display_path, make_vcs_requirement_url -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.vcs import VersionControl, vcs - -logger = logging.getLogger(__name__) - - -class Mercurial(VersionControl): - name = 'hg' - dirname = '.hg' - repo_name = 'clone' - schemes = ('hg', 'hg+http', 'hg+https', 'hg+ssh', 'hg+static-http') - - def get_base_rev_args(self, rev): - return [rev] - - def export(self, location): - """Export the Hg repository at the url to the destination location""" - with TempDirectory(kind="export") as temp_dir: - self.unpack(temp_dir.path) - - self.run_command( - ['archive', location], show_stdout=False, cwd=temp_dir.path - ) - - def fetch_new(self, dest, url, rev_options): - rev_display = rev_options.to_display() - logger.info( - 'Cloning hg %s%s to %s', - url, - rev_display, - display_path(dest), - ) - self.run_command(['clone', '--noupdate', '-q', url, dest]) - cmd_args = ['update', '-q'] + rev_options.to_args() - self.run_command(cmd_args, cwd=dest) - - def switch(self, dest, url, rev_options): - repo_config = os.path.join(dest, self.dirname, 'hgrc') - config = configparser.SafeConfigParser() - try: - config.read(repo_config) - config.set('paths', 'default', url) - with open(repo_config, 'w') as config_file: - config.write(config_file) - except (OSError, configparser.NoSectionError) as exc: - logger.warning( - 'Could not switch Mercurial repository to %s: %s', url, exc, - ) - else: - cmd_args = ['update', '-q'] + rev_options.to_args() - self.run_command(cmd_args, cwd=dest) - - def update(self, dest, url, rev_options): - self.run_command(['pull', '-q'], cwd=dest) - cmd_args = ['update', '-q'] + rev_options.to_args() - self.run_command(cmd_args, cwd=dest) - - @classmethod - def get_remote_url(cls, location): - url = cls.run_command( - ['showconfig', 'paths.default'], - show_stdout=False, cwd=location).strip() - if cls._is_local_repository(url): - url = path_to_url(url) - return url.strip() - - @classmethod - def get_revision(cls, location): - current_revision = cls.run_command( - ['parents', '--template={rev}'], - show_stdout=False, cwd=location).strip() - return current_revision - - @classmethod - def get_revision_hash(cls, location): - current_rev_hash = cls.run_command( - ['parents', '--template={node}'], - show_stdout=False, cwd=location).strip() - return current_rev_hash - - @classmethod - def get_src_requirement(cls, location, project_name): - repo = cls.get_remote_url(location) - if not repo.lower().startswith('hg:'): - repo = 'hg+' + repo - current_rev_hash = cls.get_revision_hash(location) - return make_vcs_requirement_url(repo, current_rev_hash, project_name) - - def is_commit_id_equal(self, dest, name): - """Always assume the versions don't match""" - return False - - -vcs.register(Mercurial) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/subversion.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/subversion.py deleted file mode 100644 index 42ac5ac..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/subversion.py +++ /dev/null @@ -1,200 +0,0 @@ -from __future__ import absolute_import - -import logging -import os -import re - -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import ( - display_path, make_vcs_requirement_url, rmtree, split_auth_from_netloc, -) -from pip._internal.vcs import VersionControl, vcs - -_svn_xml_url_re = re.compile('url="([^"]+)"') -_svn_rev_re = re.compile(r'committed-rev="(\d+)"') -_svn_info_xml_rev_re = re.compile(r'\s*revision="(\d+)"') -_svn_info_xml_url_re = re.compile(r'<url>(.*)</url>') - - -logger = logging.getLogger(__name__) - - -class Subversion(VersionControl): - name = 'svn' - dirname = '.svn' - repo_name = 'checkout' - schemes = ('svn', 'svn+ssh', 'svn+http', 'svn+https', 'svn+svn') - - def get_base_rev_args(self, rev): - return ['-r', rev] - - def export(self, location): - """Export the svn repository at the url to the destination location""" - url, rev_options = self.get_url_rev_options(self.url) - - logger.info('Exporting svn repository %s to %s', url, location) - with indent_log(): - if os.path.exists(location): - # Subversion doesn't like to check out over an existing - # directory --force fixes this, but was only added in svn 1.5 - rmtree(location) - cmd_args = ['export'] + rev_options.to_args() + [url, location] - self.run_command(cmd_args, show_stdout=False) - - def fetch_new(self, dest, url, rev_options): - rev_display = rev_options.to_display() - logger.info( - 'Checking out %s%s to %s', - url, - rev_display, - display_path(dest), - ) - cmd_args = ['checkout', '-q'] + rev_options.to_args() + [url, dest] - self.run_command(cmd_args) - - def switch(self, dest, url, rev_options): - cmd_args = ['switch'] + rev_options.to_args() + [url, dest] - self.run_command(cmd_args) - - def update(self, dest, url, rev_options): - cmd_args = ['update'] + rev_options.to_args() + [dest] - self.run_command(cmd_args) - - @classmethod - def get_revision(cls, location): - """ - Return the maximum revision for all files under a given location - """ - # Note: taken from setuptools.command.egg_info - revision = 0 - - for base, dirs, files in os.walk(location): - if cls.dirname not in dirs: - dirs[:] = [] - continue # no sense walking uncontrolled subdirs - dirs.remove(cls.dirname) - entries_fn = os.path.join(base, cls.dirname, 'entries') - if not os.path.exists(entries_fn): - # FIXME: should we warn? - continue - - dirurl, localrev = cls._get_svn_url_rev(base) - - if base == location: - base = dirurl + '/' # save the root url - elif not dirurl or not dirurl.startswith(base): - dirs[:] = [] - continue # not part of the same svn tree, skip it - revision = max(revision, localrev) - return revision - - def get_netloc_and_auth(self, netloc, scheme): - """ - This override allows the auth information to be passed to svn via the - --username and --password options instead of via the URL. - """ - if scheme == 'ssh': - # The --username and --password options can't be used for - # svn+ssh URLs, so keep the auth information in the URL. - return super(Subversion, self).get_netloc_and_auth( - netloc, scheme) - - return split_auth_from_netloc(netloc) - - def get_url_rev_and_auth(self, url): - # hotfix the URL scheme after removing svn+ from svn+ssh:// readd it - url, rev, user_pass = super(Subversion, self).get_url_rev_and_auth(url) - if url.startswith('ssh://'): - url = 'svn+' + url - return url, rev, user_pass - - def make_rev_args(self, username, password): - extra_args = [] - if username: - extra_args += ['--username', username] - if password: - extra_args += ['--password', password] - - return extra_args - - @classmethod - def get_remote_url(cls, location): - # In cases where the source is in a subdirectory, not alongside - # setup.py we have to look up in the location until we find a real - # setup.py - orig_location = location - while not os.path.exists(os.path.join(location, 'setup.py')): - last_location = location - location = os.path.dirname(location) - if location == last_location: - # We've traversed up to the root of the filesystem without - # finding setup.py - logger.warning( - "Could not find setup.py for directory %s (tried all " - "parent directories)", - orig_location, - ) - return None - - return cls._get_svn_url_rev(location)[0] - - @classmethod - def _get_svn_url_rev(cls, location): - from pip._internal.exceptions import InstallationError - - entries_path = os.path.join(location, cls.dirname, 'entries') - if os.path.exists(entries_path): - with open(entries_path) as f: - data = f.read() - else: # subversion >= 1.7 does not have the 'entries' file - data = '' - - if (data.startswith('8') or - data.startswith('9') or - data.startswith('10')): - data = list(map(str.splitlines, data.split('\n\x0c\n'))) - del data[0][0] # get rid of the '8' - url = data[0][3] - revs = [int(d[9]) for d in data if len(d) > 9 and d[9]] + [0] - elif data.startswith('<?xml'): - match = _svn_xml_url_re.search(data) - if not match: - raise ValueError('Badly formatted data: %r' % data) - url = match.group(1) # get repository URL - revs = [int(m.group(1)) for m in _svn_rev_re.finditer(data)] + [0] - else: - try: - # subversion >= 1.7 - xml = cls.run_command( - ['info', '--xml', location], - show_stdout=False, - ) - url = _svn_info_xml_url_re.search(xml).group(1) - revs = [ - int(m.group(1)) for m in _svn_info_xml_rev_re.finditer(xml) - ] - except InstallationError: - url, revs = None, [] - - if revs: - rev = max(revs) - else: - rev = 0 - - return url, rev - - @classmethod - def get_src_requirement(cls, location, project_name): - repo = cls.get_remote_url(location) - if repo is None: - return None - repo = 'svn+' + repo - rev = cls.get_revision(location) - return make_vcs_requirement_url(repo, rev, project_name) - - def is_commit_id_equal(self, dest, name): - """Always assume the versions don't match""" - return False - - -vcs.register(Subversion) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/wheel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/wheel.py deleted file mode 100644 index 67bcc7f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/wheel.py +++ /dev/null @@ -1,1095 +0,0 @@ -""" -Support for installing and building the "wheel" binary package format. -""" -from __future__ import absolute_import - -import collections -import compileall -import csv -import hashlib -import logging -import os.path -import re -import shutil -import stat -import sys -import warnings -from base64 import urlsafe_b64encode -from email.parser import Parser - -from pip._vendor import pkg_resources -from pip._vendor.distlib.scripts import ScriptMaker -from pip._vendor.packaging.utils import canonicalize_name -from pip._vendor.six import StringIO - -from pip._internal import pep425tags -from pip._internal.download import path_to_url, unpack_url -from pip._internal.exceptions import ( - InstallationError, InvalidWheelFilename, UnsupportedWheel, -) -from pip._internal.locations import ( - PIP_DELETE_MARKER_FILENAME, distutils_scheme, -) -from pip._internal.models.link import Link -from pip._internal.utils.logging import indent_log -from pip._internal.utils.misc import ( - call_subprocess, captured_stdout, ensure_dir, read_chunks, -) -from pip._internal.utils.setuptools_build import SETUPTOOLS_SHIM -from pip._internal.utils.temp_dir import TempDirectory -from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.utils.ui import open_spinner - -if MYPY_CHECK_RUNNING: - from typing import ( # noqa: F401 - Dict, List, Optional, Sequence, Mapping, Tuple, IO, Text, Any, - Union, Iterable - ) - from pip._vendor.packaging.requirements import Requirement # noqa: F401 - from pip._internal.req.req_install import InstallRequirement # noqa: F401 - from pip._internal.download import PipSession # noqa: F401 - from pip._internal.index import FormatControl, PackageFinder # noqa: F401 - from pip._internal.operations.prepare import ( # noqa: F401 - RequirementPreparer - ) - from pip._internal.cache import WheelCache # noqa: F401 - from pip._internal.pep425tags import Pep425Tag # noqa: F401 - - InstalledCSVRow = Tuple[str, ...] - - -VERSION_COMPATIBLE = (1, 0) - - -logger = logging.getLogger(__name__) - - -def normpath(src, p): - return os.path.relpath(src, p).replace(os.path.sep, '/') - - -def rehash(path, blocksize=1 << 20): - # type: (str, int) -> Tuple[str, str] - """Return (hash, length) for path using hashlib.sha256()""" - h = hashlib.sha256() - length = 0 - with open(path, 'rb') as f: - for block in read_chunks(f, size=blocksize): - length += len(block) - h.update(block) - digest = 'sha256=' + urlsafe_b64encode( - h.digest() - ).decode('latin1').rstrip('=') - # unicode/str python2 issues - return (digest, str(length)) # type: ignore - - -def open_for_csv(name, mode): - # type: (str, Text) -> IO - if sys.version_info[0] < 3: - nl = {} # type: Dict[str, Any] - bin = 'b' - else: - nl = {'newline': ''} # type: Dict[str, Any] - bin = '' - return open(name, mode + bin, **nl) - - -def replace_python_tag(wheelname, new_tag): - # type: (str, str) -> str - """Replace the Python tag in a wheel file name with a new value. - """ - parts = wheelname.split('-') - parts[-3] = new_tag - return '-'.join(parts) - - -def fix_script(path): - # type: (str) -> Optional[bool] - """Replace #!python with #!/path/to/python - Return True if file was changed.""" - # XXX RECORD hashes will need to be updated - if os.path.isfile(path): - with open(path, 'rb') as script: - firstline = script.readline() - if not firstline.startswith(b'#!python'): - return False - exename = sys.executable.encode(sys.getfilesystemencoding()) - firstline = b'#!' + exename + os.linesep.encode("ascii") - rest = script.read() - with open(path, 'wb') as script: - script.write(firstline) - script.write(rest) - return True - return None - - -dist_info_re = re.compile(r"""^(?P<namever>(?P<name>.+?)(-(?P<ver>.+?))?) - \.dist-info$""", re.VERBOSE) - - -def root_is_purelib(name, wheeldir): - # type: (str, str) -> bool - """ - Return True if the extracted wheel in wheeldir should go into purelib. - """ - name_folded = name.replace("-", "_") - for item in os.listdir(wheeldir): - match = dist_info_re.match(item) - if match and match.group('name') == name_folded: - with open(os.path.join(wheeldir, item, 'WHEEL')) as wheel: - for line in wheel: - line = line.lower().rstrip() - if line == "root-is-purelib: true": - return True - return False - - -def get_entrypoints(filename): - # type: (str) -> Tuple[Dict[str, str], Dict[str, str]] - if not os.path.exists(filename): - return {}, {} - - # This is done because you can pass a string to entry_points wrappers which - # means that they may or may not be valid INI files. The attempt here is to - # strip leading and trailing whitespace in order to make them valid INI - # files. - with open(filename) as fp: - data = StringIO() - for line in fp: - data.write(line.strip()) - data.write("\n") - data.seek(0) - - # get the entry points and then the script names - entry_points = pkg_resources.EntryPoint.parse_map(data) - console = entry_points.get('console_scripts', {}) - gui = entry_points.get('gui_scripts', {}) - - def _split_ep(s): - """get the string representation of EntryPoint, remove space and split - on '='""" - return str(s).replace(" ", "").split("=") - - # convert the EntryPoint objects into strings with module:function - console = dict(_split_ep(v) for v in console.values()) - gui = dict(_split_ep(v) for v in gui.values()) - return console, gui - - -def message_about_scripts_not_on_PATH(scripts): - # type: (Sequence[str]) -> Optional[str] - """Determine if any scripts are not on PATH and format a warning. - - Returns a warning message if one or more scripts are not on PATH, - otherwise None. - """ - if not scripts: - return None - - # Group scripts by the path they were installed in - grouped_by_dir = collections.defaultdict(set) # type: Dict[str, set] - for destfile in scripts: - parent_dir = os.path.dirname(destfile) - script_name = os.path.basename(destfile) - grouped_by_dir[parent_dir].add(script_name) - - # We don't want to warn for directories that are on PATH. - not_warn_dirs = [ - os.path.normcase(i).rstrip(os.sep) for i in - os.environ.get("PATH", "").split(os.pathsep) - ] - # If an executable sits with sys.executable, we don't warn for it. - # This covers the case of venv invocations without activating the venv. - not_warn_dirs.append(os.path.normcase(os.path.dirname(sys.executable))) - warn_for = { - parent_dir: scripts for parent_dir, scripts in grouped_by_dir.items() - if os.path.normcase(parent_dir) not in not_warn_dirs - } - if not warn_for: - return None - - # Format a message - msg_lines = [] - for parent_dir, scripts in warn_for.items(): - scripts = sorted(scripts) - if len(scripts) == 1: - start_text = "script {} is".format(scripts[0]) - else: - start_text = "scripts {} are".format( - ", ".join(scripts[:-1]) + " and " + scripts[-1] - ) - - msg_lines.append( - "The {} installed in '{}' which is not on PATH." - .format(start_text, parent_dir) - ) - - last_line_fmt = ( - "Consider adding {} to PATH or, if you prefer " - "to suppress this warning, use --no-warn-script-location." - ) - if len(msg_lines) == 1: - msg_lines.append(last_line_fmt.format("this directory")) - else: - msg_lines.append(last_line_fmt.format("these directories")) - - # Returns the formatted multiline message - return "\n".join(msg_lines) - - -def sorted_outrows(outrows): - # type: (Iterable[InstalledCSVRow]) -> List[InstalledCSVRow] - """ - Return the given rows of a RECORD file in sorted order. - - Each row is a 3-tuple (path, hash, size) and corresponds to a record of - a RECORD file (see PEP 376 and PEP 427 for details). For the rows - passed to this function, the size can be an integer as an int or string, - or the empty string. - """ - # Normally, there should only be one row per path, in which case the - # second and third elements don't come into play when sorting. - # However, in cases in the wild where a path might happen to occur twice, - # we don't want the sort operation to trigger an error (but still want - # determinism). Since the third element can be an int or string, we - # coerce each element to a string to avoid a TypeError in this case. - # For additional background, see-- - # https://github.com/pypa/pip/issues/5868 - return sorted(outrows, key=lambda row: tuple(str(x) for x in row)) - - -def get_csv_rows_for_installed( - old_csv_rows, # type: Iterable[List[str]] - installed, # type: Dict[str, str] - changed, # type: set - generated, # type: List[str] - lib_dir, # type: str -): - # type: (...) -> List[InstalledCSVRow] - """ - :param installed: A map from archive RECORD path to installation RECORD - path. - """ - installed_rows = [] # type: List[InstalledCSVRow] - for row in old_csv_rows: - if len(row) > 3: - logger.warning( - 'RECORD line has more than three elements: {}'.format(row) - ) - # Make a copy because we are mutating the row. - row = list(row) - old_path = row[0] - new_path = installed.pop(old_path, old_path) - row[0] = new_path - if new_path in changed: - digest, length = rehash(new_path) - row[1] = digest - row[2] = length - installed_rows.append(tuple(row)) - for f in generated: - digest, length = rehash(f) - installed_rows.append((normpath(f, lib_dir), digest, str(length))) - for f in installed: - installed_rows.append((installed[f], '', '')) - return installed_rows - - -def move_wheel_files( - name, # type: str - req, # type: Requirement - wheeldir, # type: str - user=False, # type: bool - home=None, # type: Optional[str] - root=None, # type: Optional[str] - pycompile=True, # type: bool - scheme=None, # type: Optional[Mapping[str, str]] - isolated=False, # type: bool - prefix=None, # type: Optional[str] - warn_script_location=True # type: bool -): - # type: (...) -> None - """Install a wheel""" - # TODO: Investigate and break this up. - # TODO: Look into moving this into a dedicated class for representing an - # installation. - - if not scheme: - scheme = distutils_scheme( - name, user=user, home=home, root=root, isolated=isolated, - prefix=prefix, - ) - - if root_is_purelib(name, wheeldir): - lib_dir = scheme['purelib'] - else: - lib_dir = scheme['platlib'] - - info_dir = [] # type: List[str] - data_dirs = [] - source = wheeldir.rstrip(os.path.sep) + os.path.sep - - # Record details of the files moved - # installed = files copied from the wheel to the destination - # changed = files changed while installing (scripts #! line typically) - # generated = files newly generated during the install (script wrappers) - installed = {} # type: Dict[str, str] - changed = set() - generated = [] # type: List[str] - - # Compile all of the pyc files that we're going to be installing - if pycompile: - with captured_stdout() as stdout: - with warnings.catch_warnings(): - warnings.filterwarnings('ignore') - compileall.compile_dir(source, force=True, quiet=True) - logger.debug(stdout.getvalue()) - - def record_installed(srcfile, destfile, modified=False): - """Map archive RECORD paths to installation RECORD paths.""" - oldpath = normpath(srcfile, wheeldir) - newpath = normpath(destfile, lib_dir) - installed[oldpath] = newpath - if modified: - changed.add(destfile) - - def clobber(source, dest, is_base, fixer=None, filter=None): - ensure_dir(dest) # common for the 'include' path - - for dir, subdirs, files in os.walk(source): - basedir = dir[len(source):].lstrip(os.path.sep) - destdir = os.path.join(dest, basedir) - if is_base and basedir.split(os.path.sep, 1)[0].endswith('.data'): - continue - for s in subdirs: - destsubdir = os.path.join(dest, basedir, s) - if is_base and basedir == '' and destsubdir.endswith('.data'): - data_dirs.append(s) - continue - elif (is_base and - s.endswith('.dist-info') and - canonicalize_name(s).startswith( - canonicalize_name(req.name))): - assert not info_dir, ('Multiple .dist-info directories: ' + - destsubdir + ', ' + - ', '.join(info_dir)) - info_dir.append(destsubdir) - for f in files: - # Skip unwanted files - if filter and filter(f): - continue - srcfile = os.path.join(dir, f) - destfile = os.path.join(dest, basedir, f) - # directory creation is lazy and after the file filtering above - # to ensure we don't install empty dirs; empty dirs can't be - # uninstalled. - ensure_dir(destdir) - - # copyfile (called below) truncates the destination if it - # exists and then writes the new contents. This is fine in most - # cases, but can cause a segfault if pip has loaded a shared - # object (e.g. from pyopenssl through its vendored urllib3) - # Since the shared object is mmap'd an attempt to call a - # symbol in it will then cause a segfault. Unlinking the file - # allows writing of new contents while allowing the process to - # continue to use the old copy. - if os.path.exists(destfile): - os.unlink(destfile) - - # We use copyfile (not move, copy, or copy2) to be extra sure - # that we are not moving directories over (copyfile fails for - # directories) as well as to ensure that we are not copying - # over any metadata because we want more control over what - # metadata we actually copy over. - shutil.copyfile(srcfile, destfile) - - # Copy over the metadata for the file, currently this only - # includes the atime and mtime. - st = os.stat(srcfile) - if hasattr(os, "utime"): - os.utime(destfile, (st.st_atime, st.st_mtime)) - - # If our file is executable, then make our destination file - # executable. - if os.access(srcfile, os.X_OK): - st = os.stat(srcfile) - permissions = ( - st.st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH - ) - os.chmod(destfile, permissions) - - changed = False - if fixer: - changed = fixer(destfile) - record_installed(srcfile, destfile, changed) - - clobber(source, lib_dir, True) - - assert info_dir, "%s .dist-info directory not found" % req - - # Get the defined entry points - ep_file = os.path.join(info_dir[0], 'entry_points.txt') - console, gui = get_entrypoints(ep_file) - - def is_entrypoint_wrapper(name): - # EP, EP.exe and EP-script.py are scripts generated for - # entry point EP by setuptools - if name.lower().endswith('.exe'): - matchname = name[:-4] - elif name.lower().endswith('-script.py'): - matchname = name[:-10] - elif name.lower().endswith(".pya"): - matchname = name[:-4] - else: - matchname = name - # Ignore setuptools-generated scripts - return (matchname in console or matchname in gui) - - for datadir in data_dirs: - fixer = None - filter = None - for subdir in os.listdir(os.path.join(wheeldir, datadir)): - fixer = None - if subdir == 'scripts': - fixer = fix_script - filter = is_entrypoint_wrapper - source = os.path.join(wheeldir, datadir, subdir) - dest = scheme[subdir] - clobber(source, dest, False, fixer=fixer, filter=filter) - - maker = ScriptMaker(None, scheme['scripts']) - - # Ensure old scripts are overwritten. - # See https://github.com/pypa/pip/issues/1800 - maker.clobber = True - - # Ensure we don't generate any variants for scripts because this is almost - # never what somebody wants. - # See https://bitbucket.org/pypa/distlib/issue/35/ - maker.variants = {''} - - # This is required because otherwise distlib creates scripts that are not - # executable. - # See https://bitbucket.org/pypa/distlib/issue/32/ - maker.set_mode = True - - # Simplify the script and fix the fact that the default script swallows - # every single stack trace. - # See https://bitbucket.org/pypa/distlib/issue/34/ - # See https://bitbucket.org/pypa/distlib/issue/33/ - def _get_script_text(entry): - if entry.suffix is None: - raise InstallationError( - "Invalid script entry point: %s for req: %s - A callable " - "suffix is required. Cf https://packaging.python.org/en/" - "latest/distributing.html#console-scripts for more " - "information." % (entry, req) - ) - return maker.script_template % { - "module": entry.prefix, - "import_name": entry.suffix.split(".")[0], - "func": entry.suffix, - } - # ignore type, because mypy disallows assigning to a method, - # see https://github.com/python/mypy/issues/2427 - maker._get_script_text = _get_script_text # type: ignore - maker.script_template = r"""# -*- coding: utf-8 -*- -import re -import sys - -from %(module)s import %(import_name)s - -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - sys.exit(%(func)s()) -""" - - # Special case pip and setuptools to generate versioned wrappers - # - # The issue is that some projects (specifically, pip and setuptools) use - # code in setup.py to create "versioned" entry points - pip2.7 on Python - # 2.7, pip3.3 on Python 3.3, etc. But these entry points are baked into - # the wheel metadata at build time, and so if the wheel is installed with - # a *different* version of Python the entry points will be wrong. The - # correct fix for this is to enhance the metadata to be able to describe - # such versioned entry points, but that won't happen till Metadata 2.0 is - # available. - # In the meantime, projects using versioned entry points will either have - # incorrect versioned entry points, or they will not be able to distribute - # "universal" wheels (i.e., they will need a wheel per Python version). - # - # Because setuptools and pip are bundled with _ensurepip and virtualenv, - # we need to use universal wheels. So, as a stopgap until Metadata 2.0, we - # override the versioned entry points in the wheel and generate the - # correct ones. This code is purely a short-term measure until Metadata 2.0 - # is available. - # - # To add the level of hack in this section of code, in order to support - # ensurepip this code will look for an ``ENSUREPIP_OPTIONS`` environment - # variable which will control which version scripts get installed. - # - # ENSUREPIP_OPTIONS=altinstall - # - Only pipX.Y and easy_install-X.Y will be generated and installed - # ENSUREPIP_OPTIONS=install - # - pipX.Y, pipX, easy_install-X.Y will be generated and installed. Note - # that this option is technically if ENSUREPIP_OPTIONS is set and is - # not altinstall - # DEFAULT - # - The default behavior is to install pip, pipX, pipX.Y, easy_install - # and easy_install-X.Y. - pip_script = console.pop('pip', None) - if pip_script: - if "ENSUREPIP_OPTIONS" not in os.environ: - spec = 'pip = ' + pip_script - generated.extend(maker.make(spec)) - - if os.environ.get("ENSUREPIP_OPTIONS", "") != "altinstall": - spec = 'pip%s = %s' % (sys.version[:1], pip_script) - generated.extend(maker.make(spec)) - - spec = 'pip%s = %s' % (sys.version[:3], pip_script) - generated.extend(maker.make(spec)) - # Delete any other versioned pip entry points - pip_ep = [k for k in console if re.match(r'pip(\d(\.\d)?)?$', k)] - for k in pip_ep: - del console[k] - easy_install_script = console.pop('easy_install', None) - if easy_install_script: - if "ENSUREPIP_OPTIONS" not in os.environ: - spec = 'easy_install = ' + easy_install_script - generated.extend(maker.make(spec)) - - spec = 'easy_install-%s = %s' % (sys.version[:3], easy_install_script) - generated.extend(maker.make(spec)) - # Delete any other versioned easy_install entry points - easy_install_ep = [ - k for k in console if re.match(r'easy_install(-\d\.\d)?$', k) - ] - for k in easy_install_ep: - del console[k] - - # Generate the console and GUI entry points specified in the wheel - if len(console) > 0: - generated_console_scripts = maker.make_multiple( - ['%s = %s' % kv for kv in console.items()] - ) - generated.extend(generated_console_scripts) - - if warn_script_location: - msg = message_about_scripts_not_on_PATH(generated_console_scripts) - if msg is not None: - logger.warning(msg) - - if len(gui) > 0: - generated.extend( - maker.make_multiple( - ['%s = %s' % kv for kv in gui.items()], - {'gui': True} - ) - ) - - # Record pip as the installer - installer = os.path.join(info_dir[0], 'INSTALLER') - temp_installer = os.path.join(info_dir[0], 'INSTALLER.pip') - with open(temp_installer, 'wb') as installer_file: - installer_file.write(b'pip\n') - shutil.move(temp_installer, installer) - generated.append(installer) - - # Record details of all files installed - record = os.path.join(info_dir[0], 'RECORD') - temp_record = os.path.join(info_dir[0], 'RECORD.pip') - with open_for_csv(record, 'r') as record_in: - with open_for_csv(temp_record, 'w+') as record_out: - reader = csv.reader(record_in) - outrows = get_csv_rows_for_installed( - reader, installed=installed, changed=changed, - generated=generated, lib_dir=lib_dir, - ) - writer = csv.writer(record_out) - # Sort to simplify testing. - for row in sorted_outrows(outrows): - writer.writerow(row) - shutil.move(temp_record, record) - - -def wheel_version(source_dir): - # type: (Optional[str]) -> Optional[Tuple[int, ...]] - """ - Return the Wheel-Version of an extracted wheel, if possible. - - Otherwise, return None if we couldn't parse / extract it. - """ - try: - dist = [d for d in pkg_resources.find_on_path(None, source_dir)][0] - - wheel_data = dist.get_metadata('WHEEL') - wheel_data = Parser().parsestr(wheel_data) - - version = wheel_data['Wheel-Version'].strip() - version = tuple(map(int, version.split('.'))) - return version - except Exception: - return None - - -def check_compatibility(version, name): - # type: (Optional[Tuple[int, ...]], str) -> None - """ - Raises errors or warns if called with an incompatible Wheel-Version. - - Pip should refuse to install a Wheel-Version that's a major series - ahead of what it's compatible with (e.g 2.0 > 1.1); and warn when - installing a version only minor version ahead (e.g 1.2 > 1.1). - - version: a 2-tuple representing a Wheel-Version (Major, Minor) - name: name of wheel or package to raise exception about - - :raises UnsupportedWheel: when an incompatible Wheel-Version is given - """ - if not version: - raise UnsupportedWheel( - "%s is in an unsupported or invalid wheel" % name - ) - if version[0] > VERSION_COMPATIBLE[0]: - raise UnsupportedWheel( - "%s's Wheel-Version (%s) is not compatible with this version " - "of pip" % (name, '.'.join(map(str, version))) - ) - elif version > VERSION_COMPATIBLE: - logger.warning( - 'Installing from a newer Wheel-Version (%s)', - '.'.join(map(str, version)), - ) - - -class Wheel(object): - """A wheel file""" - - # TODO: Maybe move the class into the models sub-package - # TODO: Maybe move the install code into this class - - wheel_file_re = re.compile( - r"""^(?P<namever>(?P<name>.+?)-(?P<ver>.*?)) - ((-(?P<build>\d[^-]*?))?-(?P<pyver>.+?)-(?P<abi>.+?)-(?P<plat>.+?) - \.whl|\.dist-info)$""", - re.VERBOSE - ) - - def __init__(self, filename): - # type: (str) -> None - """ - :raises InvalidWheelFilename: when the filename is invalid for a wheel - """ - wheel_info = self.wheel_file_re.match(filename) - if not wheel_info: - raise InvalidWheelFilename( - "%s is not a valid wheel filename." % filename - ) - self.filename = filename - self.name = wheel_info.group('name').replace('_', '-') - # we'll assume "_" means "-" due to wheel naming scheme - # (https://github.com/pypa/pip/issues/1150) - self.version = wheel_info.group('ver').replace('_', '-') - self.build_tag = wheel_info.group('build') - self.pyversions = wheel_info.group('pyver').split('.') - self.abis = wheel_info.group('abi').split('.') - self.plats = wheel_info.group('plat').split('.') - - # All the tag combinations from this file - self.file_tags = { - (x, y, z) for x in self.pyversions - for y in self.abis for z in self.plats - } - - def support_index_min(self, tags=None): - # type: (Optional[List[Pep425Tag]]) -> Optional[int] - """ - Return the lowest index that one of the wheel's file_tag combinations - achieves in the supported_tags list e.g. if there are 8 supported tags, - and one of the file tags is first in the list, then return 0. Returns - None is the wheel is not supported. - """ - if tags is None: # for mock - tags = pep425tags.get_supported() - indexes = [tags.index(c) for c in self.file_tags if c in tags] - return min(indexes) if indexes else None - - def supported(self, tags=None): - # type: (Optional[List[Pep425Tag]]) -> bool - """Is this wheel supported on this system?""" - if tags is None: # for mock - tags = pep425tags.get_supported() - return bool(set(tags).intersection(self.file_tags)) - - -def _contains_egg_info( - s, _egg_info_re=re.compile(r'([a-z0-9_.]+)-([a-z0-9_.!+-]+)', re.I)): - """Determine whether the string looks like an egg_info. - - :param s: The string to parse. E.g. foo-2.1 - """ - return bool(_egg_info_re.search(s)) - - -def should_use_ephemeral_cache( - req, # type: InstallRequirement - format_control, # type: FormatControl - autobuilding, # type: bool - cache_available # type: bool -): - # type: (...) -> Optional[bool] - """ - Return whether to build an InstallRequirement object using the - ephemeral cache. - - :param cache_available: whether a cache directory is available for the - autobuilding=True case. - - :return: True or False to build the requirement with ephem_cache=True - or False, respectively; or None not to build the requirement. - """ - if req.constraint: - return None - if req.is_wheel: - if not autobuilding: - logger.info( - 'Skipping %s, due to already being wheel.', req.name, - ) - return None - if not autobuilding: - return False - - if req.editable or not req.source_dir: - return None - - if req.link and not req.link.is_artifact: - # VCS checkout. Build wheel just for this run. - return True - - if "binary" not in format_control.get_allowed_formats( - canonicalize_name(req.name)): - logger.info( - "Skipping bdist_wheel for %s, due to binaries " - "being disabled for it.", req.name, - ) - return None - - link = req.link - base, ext = link.splitext() - if cache_available and _contains_egg_info(base): - return False - - # Otherwise, build the wheel just for this run using the ephemeral - # cache since we are either in the case of e.g. a local directory, or - # no cache directory is available to use. - return True - - -def format_command( - command_args, # type: List[str] - command_output, # type: str -): - # type: (...) -> str - """ - Format command information for logging. - """ - text = 'Command arguments: {}\n'.format(command_args) - - if not command_output: - text += 'Command output: None' - elif logger.getEffectiveLevel() > logging.DEBUG: - text += 'Command output: [use --verbose to show]' - else: - if not command_output.endswith('\n'): - command_output += '\n' - text += ( - 'Command output:\n{}' - '-----------------------------------------' - ).format(command_output) - - return text - - -def get_legacy_build_wheel_path( - names, # type: List[str] - temp_dir, # type: str - req, # type: InstallRequirement - command_args, # type: List[str] - command_output, # type: str -): - # type: (...) -> Optional[str] - """ - Return the path to the wheel in the temporary build directory. - """ - # Sort for determinism. - names = sorted(names) - if not names: - msg = ( - 'Legacy build of wheel for {!r} created no files.\n' - ).format(req.name) - msg += format_command(command_args, command_output) - logger.warning(msg) - return None - - if len(names) > 1: - msg = ( - 'Legacy build of wheel for {!r} created more than one file.\n' - 'Filenames (choosing first): {}\n' - ).format(req.name, names) - msg += format_command(command_args, command_output) - logger.warning(msg) - - return os.path.join(temp_dir, names[0]) - - -class WheelBuilder(object): - """Build wheels from a RequirementSet.""" - - def __init__( - self, - finder, # type: PackageFinder - preparer, # type: RequirementPreparer - wheel_cache, # type: WheelCache - build_options=None, # type: Optional[List[str]] - global_options=None, # type: Optional[List[str]] - no_clean=False # type: bool - ): - # type: (...) -> None - self.finder = finder - self.preparer = preparer - self.wheel_cache = wheel_cache - - self._wheel_dir = preparer.wheel_download_dir - - self.build_options = build_options or [] - self.global_options = global_options or [] - self.no_clean = no_clean - - def _build_one(self, req, output_dir, python_tag=None): - """Build one wheel. - - :return: The filename of the built wheel, or None if the build failed. - """ - # Install build deps into temporary directory (PEP 518) - with req.build_env: - return self._build_one_inside_env(req, output_dir, - python_tag=python_tag) - - def _build_one_inside_env(self, req, output_dir, python_tag=None): - with TempDirectory(kind="wheel") as temp_dir: - if req.use_pep517: - builder = self._build_one_pep517 - else: - builder = self._build_one_legacy - wheel_path = builder(req, temp_dir.path, python_tag=python_tag) - if wheel_path is not None: - wheel_name = os.path.basename(wheel_path) - dest_path = os.path.join(output_dir, wheel_name) - try: - shutil.move(wheel_path, dest_path) - logger.info('Stored in directory: %s', output_dir) - return dest_path - except Exception: - pass - # Ignore return, we can't do anything else useful. - self._clean_one(req) - return None - - def _base_setup_args(self, req): - # NOTE: Eventually, we'd want to also -S to the flags here, when we're - # isolating. Currently, it breaks Python in virtualenvs, because it - # relies on site.py to find parts of the standard library outside the - # virtualenv. - return [ - sys.executable, '-u', '-c', - SETUPTOOLS_SHIM % req.setup_py - ] + list(self.global_options) - - def _build_one_pep517(self, req, tempd, python_tag=None): - """Build one InstallRequirement using the PEP 517 build process. - - Returns path to wheel if successfully built. Otherwise, returns None. - """ - assert req.metadata_directory is not None - try: - req.spin_message = 'Building wheel for %s (PEP 517)' % (req.name,) - logger.debug('Destination directory: %s', tempd) - wheel_name = req.pep517_backend.build_wheel( - tempd, - metadata_directory=req.metadata_directory - ) - if python_tag: - # General PEP 517 backends don't necessarily support - # a "--python-tag" option, so we rename the wheel - # file directly. - new_name = replace_python_tag(wheel_name, python_tag) - os.rename( - os.path.join(tempd, wheel_name), - os.path.join(tempd, new_name) - ) - # Reassign to simplify the return at the end of function - wheel_name = new_name - except Exception: - logger.error('Failed building wheel for %s', req.name) - return None - return os.path.join(tempd, wheel_name) - - def _build_one_legacy(self, req, tempd, python_tag=None): - """Build one InstallRequirement using the "legacy" build process. - - Returns path to wheel if successfully built. Otherwise, returns None. - """ - base_args = self._base_setup_args(req) - - spin_message = 'Building wheel for %s (setup.py)' % (req.name,) - with open_spinner(spin_message) as spinner: - logger.debug('Destination directory: %s', tempd) - wheel_args = base_args + ['bdist_wheel', '-d', tempd] \ - + self.build_options - - if python_tag is not None: - wheel_args += ["--python-tag", python_tag] - - try: - output = call_subprocess(wheel_args, cwd=req.setup_py_dir, - show_stdout=False, spinner=spinner) - except Exception: - spinner.finish("error") - logger.error('Failed building wheel for %s', req.name) - return None - names = os.listdir(tempd) - wheel_path = get_legacy_build_wheel_path( - names=names, - temp_dir=tempd, - req=req, - command_args=wheel_args, - command_output=output, - ) - return wheel_path - - def _clean_one(self, req): - base_args = self._base_setup_args(req) - - logger.info('Running setup.py clean for %s', req.name) - clean_args = base_args + ['clean', '--all'] - try: - call_subprocess(clean_args, cwd=req.source_dir, show_stdout=False) - return True - except Exception: - logger.error('Failed cleaning build dir for %s', req.name) - return False - - def build( - self, - requirements, # type: Iterable[InstallRequirement] - session, # type: PipSession - autobuilding=False # type: bool - ): - # type: (...) -> List[InstallRequirement] - """Build wheels. - - :param unpack: If True, replace the sdist we built from with the - newly built wheel, in preparation for installation. - :return: True if all the wheels built correctly. - """ - buildset = [] - format_control = self.finder.format_control - # Whether a cache directory is available for autobuilding=True. - cache_available = bool(self._wheel_dir or self.wheel_cache.cache_dir) - - for req in requirements: - ephem_cache = should_use_ephemeral_cache( - req, format_control=format_control, autobuilding=autobuilding, - cache_available=cache_available, - ) - if ephem_cache is None: - continue - - buildset.append((req, ephem_cache)) - - if not buildset: - return [] - - # Is any wheel build not using the ephemeral cache? - if any(not ephem_cache for _, ephem_cache in buildset): - have_directory_for_build = self._wheel_dir or ( - autobuilding and self.wheel_cache.cache_dir - ) - assert have_directory_for_build - - # TODO by @pradyunsg - # Should break up this method into 2 separate methods. - - # Build the wheels. - logger.info( - 'Building wheels for collected packages: %s', - ', '.join([req.name for (req, _) in buildset]), - ) - _cache = self.wheel_cache # shorter name - with indent_log(): - build_success, build_failure = [], [] - for req, ephem in buildset: - python_tag = None - if autobuilding: - python_tag = pep425tags.implementation_tag - if ephem: - output_dir = _cache.get_ephem_path_for_link(req.link) - else: - output_dir = _cache.get_path_for_link(req.link) - try: - ensure_dir(output_dir) - except OSError as e: - logger.warning("Building wheel for %s failed: %s", - req.name, e) - build_failure.append(req) - continue - else: - output_dir = self._wheel_dir - wheel_file = self._build_one( - req, output_dir, - python_tag=python_tag, - ) - if wheel_file: - build_success.append(req) - if autobuilding: - # XXX: This is mildly duplicative with prepare_files, - # but not close enough to pull out to a single common - # method. - # The code below assumes temporary source dirs - - # prevent it doing bad things. - if req.source_dir and not os.path.exists(os.path.join( - req.source_dir, PIP_DELETE_MARKER_FILENAME)): - raise AssertionError( - "bad source dir - missing marker") - # Delete the source we built the wheel from - req.remove_temporary_source() - # set the build directory again - name is known from - # the work prepare_files did. - req.source_dir = req.build_location( - self.preparer.build_dir - ) - # Update the link for this. - req.link = Link(path_to_url(wheel_file)) - assert req.link.is_wheel - # extract the wheel into the dir - unpack_url( - req.link, req.source_dir, None, False, - session=session, - ) - else: - build_failure.append(req) - - # notify success/failure - if build_success: - logger.info( - 'Successfully built %s', - ' '.join([req.name for req in build_success]), - ) - if build_failure: - logger.info( - 'Failed to build %s', - ' '.join([req.name for req in build_failure]), - ) - # Return a list of requirements that failed to build - return build_failure diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/__init__.py deleted file mode 100644 index b919b54..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/__init__.py +++ /dev/null @@ -1,111 +0,0 @@ -""" -pip._vendor is for vendoring dependencies of pip to prevent needing pip to -depend on something external. - -Files inside of pip._vendor should be considered immutable and should only be -updated to versions from upstream. -""" -from __future__ import absolute_import - -import glob -import os.path -import sys - -# Downstream redistributors which have debundled our dependencies should also -# patch this value to be true. This will trigger the additional patching -# to cause things like "six" to be available as pip. -DEBUNDLED = False - -# By default, look in this directory for a bunch of .whl files which we will -# add to the beginning of sys.path before attempting to import anything. This -# is done to support downstream re-distributors like Debian and Fedora who -# wish to create their own Wheels for our dependencies to aid in debundling. -WHEEL_DIR = os.path.abspath(os.path.dirname(__file__)) - - -# Define a small helper function to alias our vendored modules to the real ones -# if the vendored ones do not exist. This idea of this was taken from -# https://github.com/kennethreitz/requests/pull/2567. -def vendored(modulename): - vendored_name = "{0}.{1}".format(__name__, modulename) - - try: - __import__(vendored_name, globals(), locals(), level=0) - except ImportError: - try: - __import__(modulename, globals(), locals(), level=0) - except ImportError: - # We can just silently allow import failures to pass here. If we - # got to this point it means that ``import pip._vendor.whatever`` - # failed and so did ``import whatever``. Since we're importing this - # upfront in an attempt to alias imports, not erroring here will - # just mean we get a regular import error whenever pip *actually* - # tries to import one of these modules to use it, which actually - # gives us a better error message than we would have otherwise - # gotten. - pass - else: - sys.modules[vendored_name] = sys.modules[modulename] - base, head = vendored_name.rsplit(".", 1) - setattr(sys.modules[base], head, sys.modules[modulename]) - - -# If we're operating in a debundled setup, then we want to go ahead and trigger -# the aliasing of our vendored libraries as well as looking for wheels to add -# to our sys.path. This will cause all of this code to be a no-op typically -# however downstream redistributors can enable it in a consistent way across -# all platforms. -if DEBUNDLED: - # Actually look inside of WHEEL_DIR to find .whl files and add them to the - # front of our sys.path. - sys.path[:] = glob.glob(os.path.join(WHEEL_DIR, "*.whl")) + sys.path - - # Actually alias all of our vendored dependencies. - vendored("cachecontrol") - vendored("colorama") - vendored("distlib") - vendored("distro") - vendored("html5lib") - vendored("lockfile") - vendored("six") - vendored("six.moves") - vendored("six.moves.urllib") - vendored("six.moves.urllib.parse") - vendored("packaging") - vendored("packaging.version") - vendored("packaging.specifiers") - vendored("pep517") - vendored("pkg_resources") - vendored("progress") - vendored("pytoml") - vendored("retrying") - vendored("requests") - vendored("requests.packages") - vendored("requests.packages.urllib3") - vendored("requests.packages.urllib3._collections") - vendored("requests.packages.urllib3.connection") - vendored("requests.packages.urllib3.connectionpool") - vendored("requests.packages.urllib3.contrib") - vendored("requests.packages.urllib3.contrib.ntlmpool") - vendored("requests.packages.urllib3.contrib.pyopenssl") - vendored("requests.packages.urllib3.exceptions") - vendored("requests.packages.urllib3.fields") - vendored("requests.packages.urllib3.filepost") - vendored("requests.packages.urllib3.packages") - vendored("requests.packages.urllib3.packages.ordered_dict") - vendored("requests.packages.urllib3.packages.six") - vendored("requests.packages.urllib3.packages.ssl_match_hostname") - vendored("requests.packages.urllib3.packages.ssl_match_hostname." - "_implementation") - vendored("requests.packages.urllib3.poolmanager") - vendored("requests.packages.urllib3.request") - vendored("requests.packages.urllib3.response") - vendored("requests.packages.urllib3.util") - vendored("requests.packages.urllib3.util.connection") - vendored("requests.packages.urllib3.util.request") - vendored("requests.packages.urllib3.util.response") - vendored("requests.packages.urllib3.util.retry") - vendored("requests.packages.urllib3.util.ssl_") - vendored("requests.packages.urllib3.util.timeout") - vendored("requests.packages.urllib3.util.url") - vendored("urllib3") diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/appdirs.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/appdirs.py deleted file mode 100644 index 2bd3911..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/appdirs.py +++ /dev/null @@ -1,604 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# Copyright (c) 2005-2010 ActiveState Software Inc. -# Copyright (c) 2013 Eddy Petrișor - -"""Utilities for determining application-specific dirs. - -See <http://github.com/ActiveState/appdirs> for details and usage. -""" -# Dev Notes: -# - MSDN on where to store app data files: -# http://support.microsoft.com/default.aspx?scid=kb;en-us;310294#XSLTH3194121123120121120120 -# - Mac OS X: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/index.html -# - XDG spec for Un*x: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html - -__version_info__ = (1, 4, 3) -__version__ = '.'.join(map(str, __version_info__)) - - -import sys -import os - -PY3 = sys.version_info[0] == 3 - -if PY3: - unicode = str - -if sys.platform.startswith('java'): - import platform - os_name = platform.java_ver()[3][0] - if os_name.startswith('Windows'): # "Windows XP", "Windows 7", etc. - system = 'win32' - elif os_name.startswith('Mac'): # "Mac OS X", etc. - system = 'darwin' - else: # "Linux", "SunOS", "FreeBSD", etc. - # Setting this to "linux2" is not ideal, but only Windows or Mac - # are actually checked for and the rest of the module expects - # *sys.platform* style strings. - system = 'linux2' -else: - system = sys.platform - - - -def user_data_dir(appname=None, appauthor=None, version=None, roaming=False): - r"""Return full path to the user-specific data dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be "<major>.<minor>". - Only applied when appname is present. - "roaming" (boolean, default False) can be set True to use the Windows - roaming appdata directory. That means that for users on a Windows - network setup for roaming profiles, this user data will be - sync'd on login. See - <http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx> - for a discussion of issues. - - Typical user data directories are: - Mac OS X: ~/Library/Application Support/<AppName> - Unix: ~/.local/share/<AppName> # or in $XDG_DATA_HOME, if defined - Win XP (not roaming): C:\Documents and Settings\<username>\Application Data\<AppAuthor>\<AppName> - Win XP (roaming): C:\Documents and Settings\<username>\Local Settings\Application Data\<AppAuthor>\<AppName> - Win 7 (not roaming): C:\Users\<username>\AppData\Local\<AppAuthor>\<AppName> - Win 7 (roaming): C:\Users\<username>\AppData\Roaming\<AppAuthor>\<AppName> - - For Unix, we follow the XDG spec and support $XDG_DATA_HOME. - That means, by default "~/.local/share/<AppName>". - """ - if system == "win32": - if appauthor is None: - appauthor = appname - const = roaming and "CSIDL_APPDATA" or "CSIDL_LOCAL_APPDATA" - path = os.path.normpath(_get_win_folder(const)) - if appname: - if appauthor is not False: - path = os.path.join(path, appauthor, appname) - else: - path = os.path.join(path, appname) - elif system == 'darwin': - path = os.path.expanduser('~/Library/Application Support/') - if appname: - path = os.path.join(path, appname) - else: - path = os.getenv('XDG_DATA_HOME', os.path.expanduser("~/.local/share")) - if appname: - path = os.path.join(path, appname) - if appname and version: - path = os.path.join(path, version) - return path - - -def site_data_dir(appname=None, appauthor=None, version=None, multipath=False): - r"""Return full path to the user-shared data dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be "<major>.<minor>". - Only applied when appname is present. - "multipath" is an optional parameter only applicable to *nix - which indicates that the entire list of data dirs should be - returned. By default, the first item from XDG_DATA_DIRS is - returned, or '/usr/local/share/<AppName>', - if XDG_DATA_DIRS is not set - - Typical site data directories are: - Mac OS X: /Library/Application Support/<AppName> - Unix: /usr/local/share/<AppName> or /usr/share/<AppName> - Win XP: C:\Documents and Settings\All Users\Application Data\<AppAuthor>\<AppName> - Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) - Win 7: C:\ProgramData\<AppAuthor>\<AppName> # Hidden, but writeable on Win 7. - - For Unix, this is using the $XDG_DATA_DIRS[0] default. - - WARNING: Do not use this on Windows. See the Vista-Fail note above for why. - """ - if system == "win32": - if appauthor is None: - appauthor = appname - path = os.path.normpath(_get_win_folder("CSIDL_COMMON_APPDATA")) - if appname: - if appauthor is not False: - path = os.path.join(path, appauthor, appname) - else: - path = os.path.join(path, appname) - elif system == 'darwin': - path = os.path.expanduser('/Library/Application Support') - if appname: - path = os.path.join(path, appname) - else: - # XDG default for $XDG_DATA_DIRS - # only first, if multipath is False - path = os.getenv('XDG_DATA_DIRS', - os.pathsep.join(['/usr/local/share', '/usr/share'])) - pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] - if appname: - if version: - appname = os.path.join(appname, version) - pathlist = [os.sep.join([x, appname]) for x in pathlist] - - if multipath: - path = os.pathsep.join(pathlist) - else: - path = pathlist[0] - return path - - if appname and version: - path = os.path.join(path, version) - return path - - -def user_config_dir(appname=None, appauthor=None, version=None, roaming=False): - r"""Return full path to the user-specific config dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be "<major>.<minor>". - Only applied when appname is present. - "roaming" (boolean, default False) can be set True to use the Windows - roaming appdata directory. That means that for users on a Windows - network setup for roaming profiles, this user data will be - sync'd on login. See - <http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx> - for a discussion of issues. - - Typical user config directories are: - Mac OS X: same as user_data_dir - Unix: ~/.config/<AppName> # or in $XDG_CONFIG_HOME, if defined - Win *: same as user_data_dir - - For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME. - That means, by default "~/.config/<AppName>". - """ - if system in ["win32", "darwin"]: - path = user_data_dir(appname, appauthor, None, roaming) - else: - path = os.getenv('XDG_CONFIG_HOME', os.path.expanduser("~/.config")) - if appname: - path = os.path.join(path, appname) - if appname and version: - path = os.path.join(path, version) - return path - - -def site_config_dir(appname=None, appauthor=None, version=None, multipath=False): - r"""Return full path to the user-shared data dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be "<major>.<minor>". - Only applied when appname is present. - "multipath" is an optional parameter only applicable to *nix - which indicates that the entire list of config dirs should be - returned. By default, the first item from XDG_CONFIG_DIRS is - returned, or '/etc/xdg/<AppName>', if XDG_CONFIG_DIRS is not set - - Typical site config directories are: - Mac OS X: same as site_data_dir - Unix: /etc/xdg/<AppName> or $XDG_CONFIG_DIRS[i]/<AppName> for each value in - $XDG_CONFIG_DIRS - Win *: same as site_data_dir - Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) - - For Unix, this is using the $XDG_CONFIG_DIRS[0] default, if multipath=False - - WARNING: Do not use this on Windows. See the Vista-Fail note above for why. - """ - if system in ["win32", "darwin"]: - path = site_data_dir(appname, appauthor) - if appname and version: - path = os.path.join(path, version) - else: - # XDG default for $XDG_CONFIG_DIRS - # only first, if multipath is False - path = os.getenv('XDG_CONFIG_DIRS', '/etc/xdg') - pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] - if appname: - if version: - appname = os.path.join(appname, version) - pathlist = [os.sep.join([x, appname]) for x in pathlist] - - if multipath: - path = os.pathsep.join(pathlist) - else: - path = pathlist[0] - return path - - -def user_cache_dir(appname=None, appauthor=None, version=None, opinion=True): - r"""Return full path to the user-specific cache dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be "<major>.<minor>". - Only applied when appname is present. - "opinion" (boolean) can be False to disable the appending of - "Cache" to the base app data dir for Windows. See - discussion below. - - Typical user cache directories are: - Mac OS X: ~/Library/Caches/<AppName> - Unix: ~/.cache/<AppName> (XDG default) - Win XP: C:\Documents and Settings\<username>\Local Settings\Application Data\<AppAuthor>\<AppName>\Cache - Vista: C:\Users\<username>\AppData\Local\<AppAuthor>\<AppName>\Cache - - On Windows the only suggestion in the MSDN docs is that local settings go in - the `CSIDL_LOCAL_APPDATA` directory. This is identical to the non-roaming - app data dir (the default returned by `user_data_dir` above). Apps typically - put cache data somewhere *under* the given dir here. Some examples: - ...\Mozilla\Firefox\Profiles\<ProfileName>\Cache - ...\Acme\SuperApp\Cache\1.0 - OPINION: This function appends "Cache" to the `CSIDL_LOCAL_APPDATA` value. - This can be disabled with the `opinion=False` option. - """ - if system == "win32": - if appauthor is None: - appauthor = appname - path = os.path.normpath(_get_win_folder("CSIDL_LOCAL_APPDATA")) - if appname: - if appauthor is not False: - path = os.path.join(path, appauthor, appname) - else: - path = os.path.join(path, appname) - if opinion: - path = os.path.join(path, "Cache") - elif system == 'darwin': - path = os.path.expanduser('~/Library/Caches') - if appname: - path = os.path.join(path, appname) - else: - path = os.getenv('XDG_CACHE_HOME', os.path.expanduser('~/.cache')) - if appname: - path = os.path.join(path, appname) - if appname and version: - path = os.path.join(path, version) - return path - - -def user_state_dir(appname=None, appauthor=None, version=None, roaming=False): - r"""Return full path to the user-specific state dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be "<major>.<minor>". - Only applied when appname is present. - "roaming" (boolean, default False) can be set True to use the Windows - roaming appdata directory. That means that for users on a Windows - network setup for roaming profiles, this user data will be - sync'd on login. See - <http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx> - for a discussion of issues. - - Typical user state directories are: - Mac OS X: same as user_data_dir - Unix: ~/.local/state/<AppName> # or in $XDG_STATE_HOME, if defined - Win *: same as user_data_dir - - For Unix, we follow this Debian proposal <https://wiki.debian.org/XDGBaseDirectorySpecification#state> - to extend the XDG spec and support $XDG_STATE_HOME. - - That means, by default "~/.local/state/<AppName>". - """ - if system in ["win32", "darwin"]: - path = user_data_dir(appname, appauthor, None, roaming) - else: - path = os.getenv('XDG_STATE_HOME', os.path.expanduser("~/.local/state")) - if appname: - path = os.path.join(path, appname) - if appname and version: - path = os.path.join(path, version) - return path - - -def user_log_dir(appname=None, appauthor=None, version=None, opinion=True): - r"""Return full path to the user-specific log dir for this application. - - "appname" is the name of application. - If None, just the system directory is returned. - "appauthor" (only used on Windows) is the name of the - appauthor or distributing body for this application. Typically - it is the owning company name. This falls back to appname. You may - pass False to disable it. - "version" is an optional version path element to append to the - path. You might want to use this if you want multiple versions - of your app to be able to run independently. If used, this - would typically be "<major>.<minor>". - Only applied when appname is present. - "opinion" (boolean) can be False to disable the appending of - "Logs" to the base app data dir for Windows, and "log" to the - base cache dir for Unix. See discussion below. - - Typical user log directories are: - Mac OS X: ~/Library/Logs/<AppName> - Unix: ~/.cache/<AppName>/log # or under $XDG_CACHE_HOME if defined - Win XP: C:\Documents and Settings\<username>\Local Settings\Application Data\<AppAuthor>\<AppName>\Logs - Vista: C:\Users\<username>\AppData\Local\<AppAuthor>\<AppName>\Logs - - On Windows the only suggestion in the MSDN docs is that local settings - go in the `CSIDL_LOCAL_APPDATA` directory. (Note: I'm interested in - examples of what some windows apps use for a logs dir.) - - OPINION: This function appends "Logs" to the `CSIDL_LOCAL_APPDATA` - value for Windows and appends "log" to the user cache dir for Unix. - This can be disabled with the `opinion=False` option. - """ - if system == "darwin": - path = os.path.join( - os.path.expanduser('~/Library/Logs'), - appname) - elif system == "win32": - path = user_data_dir(appname, appauthor, version) - version = False - if opinion: - path = os.path.join(path, "Logs") - else: - path = user_cache_dir(appname, appauthor, version) - version = False - if opinion: - path = os.path.join(path, "log") - if appname and version: - path = os.path.join(path, version) - return path - - -class AppDirs(object): - """Convenience wrapper for getting application dirs.""" - def __init__(self, appname=None, appauthor=None, version=None, - roaming=False, multipath=False): - self.appname = appname - self.appauthor = appauthor - self.version = version - self.roaming = roaming - self.multipath = multipath - - @property - def user_data_dir(self): - return user_data_dir(self.appname, self.appauthor, - version=self.version, roaming=self.roaming) - - @property - def site_data_dir(self): - return site_data_dir(self.appname, self.appauthor, - version=self.version, multipath=self.multipath) - - @property - def user_config_dir(self): - return user_config_dir(self.appname, self.appauthor, - version=self.version, roaming=self.roaming) - - @property - def site_config_dir(self): - return site_config_dir(self.appname, self.appauthor, - version=self.version, multipath=self.multipath) - - @property - def user_cache_dir(self): - return user_cache_dir(self.appname, self.appauthor, - version=self.version) - - @property - def user_state_dir(self): - return user_state_dir(self.appname, self.appauthor, - version=self.version) - - @property - def user_log_dir(self): - return user_log_dir(self.appname, self.appauthor, - version=self.version) - - -#---- internal support stuff - -def _get_win_folder_from_registry(csidl_name): - """This is a fallback technique at best. I'm not sure if using the - registry for this guarantees us the correct answer for all CSIDL_* - names. - """ - if PY3: - import winreg as _winreg - else: - import _winreg - - shell_folder_name = { - "CSIDL_APPDATA": "AppData", - "CSIDL_COMMON_APPDATA": "Common AppData", - "CSIDL_LOCAL_APPDATA": "Local AppData", - }[csidl_name] - - key = _winreg.OpenKey( - _winreg.HKEY_CURRENT_USER, - r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" - ) - dir, type = _winreg.QueryValueEx(key, shell_folder_name) - return dir - - -def _get_win_folder_with_pywin32(csidl_name): - from win32com.shell import shellcon, shell - dir = shell.SHGetFolderPath(0, getattr(shellcon, csidl_name), 0, 0) - # Try to make this a unicode path because SHGetFolderPath does - # not return unicode strings when there is unicode data in the - # path. - try: - dir = unicode(dir) - - # Downgrade to short path name if have highbit chars. See - # <http://bugs.activestate.com/show_bug.cgi?id=85099>. - has_high_char = False - for c in dir: - if ord(c) > 255: - has_high_char = True - break - if has_high_char: - try: - import win32api - dir = win32api.GetShortPathName(dir) - except ImportError: - pass - except UnicodeError: - pass - return dir - - -def _get_win_folder_with_ctypes(csidl_name): - import ctypes - - csidl_const = { - "CSIDL_APPDATA": 26, - "CSIDL_COMMON_APPDATA": 35, - "CSIDL_LOCAL_APPDATA": 28, - }[csidl_name] - - buf = ctypes.create_unicode_buffer(1024) - ctypes.windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) - - # Downgrade to short path name if have highbit chars. See - # <http://bugs.activestate.com/show_bug.cgi?id=85099>. - has_high_char = False - for c in buf: - if ord(c) > 255: - has_high_char = True - break - if has_high_char: - buf2 = ctypes.create_unicode_buffer(1024) - if ctypes.windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): - buf = buf2 - - return buf.value - -def _get_win_folder_with_jna(csidl_name): - import array - from com.sun import jna - from com.sun.jna.platform import win32 - - buf_size = win32.WinDef.MAX_PATH * 2 - buf = array.zeros('c', buf_size) - shell = win32.Shell32.INSTANCE - shell.SHGetFolderPath(None, getattr(win32.ShlObj, csidl_name), None, win32.ShlObj.SHGFP_TYPE_CURRENT, buf) - dir = jna.Native.toString(buf.tostring()).rstrip("\0") - - # Downgrade to short path name if have highbit chars. See - # <http://bugs.activestate.com/show_bug.cgi?id=85099>. - has_high_char = False - for c in dir: - if ord(c) > 255: - has_high_char = True - break - if has_high_char: - buf = array.zeros('c', buf_size) - kernel = win32.Kernel32.INSTANCE - if kernel.GetShortPathName(dir, buf, buf_size): - dir = jna.Native.toString(buf.tostring()).rstrip("\0") - - return dir - -if system == "win32": - try: - from ctypes import windll - _get_win_folder = _get_win_folder_with_ctypes - except ImportError: - try: - import com.sun.jna - _get_win_folder = _get_win_folder_with_jna - except ImportError: - _get_win_folder = _get_win_folder_from_registry - - -#---- self test code - -if __name__ == "__main__": - appname = "MyApp" - appauthor = "MyCompany" - - props = ("user_data_dir", - "user_config_dir", - "user_cache_dir", - "user_state_dir", - "user_log_dir", - "site_data_dir", - "site_config_dir") - - print("-- app dirs %s --" % __version__) - - print("-- app dirs (with optional 'version')") - dirs = AppDirs(appname, appauthor, version="1.0") - for prop in props: - print("%s: %s" % (prop, getattr(dirs, prop))) - - print("\n-- app dirs (without optional 'version')") - dirs = AppDirs(appname, appauthor) - for prop in props: - print("%s: %s" % (prop, getattr(dirs, prop))) - - print("\n-- app dirs (without optional 'appauthor')") - dirs = AppDirs(appname) - for prop in props: - print("%s: %s" % (prop, getattr(dirs, prop))) - - print("\n-- app dirs (with disabled 'appauthor')") - dirs = AppDirs(appname, appauthor=False) - for prop in props: - print("%s: %s" % (prop, getattr(dirs, prop))) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/__init__.py deleted file mode 100644 index 8fdee66..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -"""CacheControl import Interface. - -Make it easy to import from cachecontrol without long namespaces. -""" -__author__ = "Eric Larson" -__email__ = "eric@ionrock.org" -__version__ = "0.12.5" - -from .wrapper import CacheControl -from .adapter import CacheControlAdapter -from .controller import CacheController diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/_cmd.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/_cmd.py deleted file mode 100644 index f1e0ad9..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/_cmd.py +++ /dev/null @@ -1,57 +0,0 @@ -import logging - -from pip._vendor import requests - -from pip._vendor.cachecontrol.adapter import CacheControlAdapter -from pip._vendor.cachecontrol.cache import DictCache -from pip._vendor.cachecontrol.controller import logger - -from argparse import ArgumentParser - - -def setup_logging(): - logger.setLevel(logging.DEBUG) - handler = logging.StreamHandler() - logger.addHandler(handler) - - -def get_session(): - adapter = CacheControlAdapter( - DictCache(), cache_etags=True, serializer=None, heuristic=None - ) - sess = requests.Session() - sess.mount("http://", adapter) - sess.mount("https://", adapter) - - sess.cache_controller = adapter.controller - return sess - - -def get_args(): - parser = ArgumentParser() - parser.add_argument("url", help="The URL to try and cache") - return parser.parse_args() - - -def main(args=None): - args = get_args() - sess = get_session() - - # Make a request to get a response - resp = sess.get(args.url) - - # Turn on logging - setup_logging() - - # try setting the cache - sess.cache_controller.cache_response(resp.request, resp.raw) - - # Now try to get it - if sess.cache_controller.cached_request(resp.request): - print("Cached!") - else: - print("Not cached :(") - - -if __name__ == "__main__": - main() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/adapter.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/adapter.py deleted file mode 100644 index 780eb28..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/adapter.py +++ /dev/null @@ -1,133 +0,0 @@ -import types -import functools -import zlib - -from pip._vendor.requests.adapters import HTTPAdapter - -from .controller import CacheController -from .cache import DictCache -from .filewrapper import CallbackFileWrapper - - -class CacheControlAdapter(HTTPAdapter): - invalidating_methods = {"PUT", "DELETE"} - - def __init__( - self, - cache=None, - cache_etags=True, - controller_class=None, - serializer=None, - heuristic=None, - cacheable_methods=None, - *args, - **kw - ): - super(CacheControlAdapter, self).__init__(*args, **kw) - self.cache = cache or DictCache() - self.heuristic = heuristic - self.cacheable_methods = cacheable_methods or ("GET",) - - controller_factory = controller_class or CacheController - self.controller = controller_factory( - self.cache, cache_etags=cache_etags, serializer=serializer - ) - - def send(self, request, cacheable_methods=None, **kw): - """ - Send a request. Use the request information to see if it - exists in the cache and cache the response if we need to and can. - """ - cacheable = cacheable_methods or self.cacheable_methods - if request.method in cacheable: - try: - cached_response = self.controller.cached_request(request) - except zlib.error: - cached_response = None - if cached_response: - return self.build_response(request, cached_response, from_cache=True) - - # check for etags and add headers if appropriate - request.headers.update(self.controller.conditional_headers(request)) - - resp = super(CacheControlAdapter, self).send(request, **kw) - - return resp - - def build_response( - self, request, response, from_cache=False, cacheable_methods=None - ): - """ - Build a response by making a request or using the cache. - - This will end up calling send and returning a potentially - cached response - """ - cacheable = cacheable_methods or self.cacheable_methods - if not from_cache and request.method in cacheable: - # Check for any heuristics that might update headers - # before trying to cache. - if self.heuristic: - response = self.heuristic.apply(response) - - # apply any expiration heuristics - if response.status == 304: - # We must have sent an ETag request. This could mean - # that we've been expired already or that we simply - # have an etag. In either case, we want to try and - # update the cache if that is the case. - cached_response = self.controller.update_cached_response( - request, response - ) - - if cached_response is not response: - from_cache = True - - # We are done with the server response, read a - # possible response body (compliant servers will - # not return one, but we cannot be 100% sure) and - # release the connection back to the pool. - response.read(decode_content=False) - response.release_conn() - - response = cached_response - - # We always cache the 301 responses - elif response.status == 301: - self.controller.cache_response(request, response) - else: - # Wrap the response file with a wrapper that will cache the - # response when the stream has been consumed. - response._fp = CallbackFileWrapper( - response._fp, - functools.partial( - self.controller.cache_response, request, response - ), - ) - if response.chunked: - super_update_chunk_length = response._update_chunk_length - - def _update_chunk_length(self): - super_update_chunk_length() - if self.chunk_left == 0: - self._fp._close() - - response._update_chunk_length = types.MethodType( - _update_chunk_length, response - ) - - resp = super(CacheControlAdapter, self).build_response(request, response) - - # See if we should invalidate the cache. - if request.method in self.invalidating_methods and resp.ok: - cache_url = self.controller.cache_url(request.url) - self.cache.delete(cache_url) - - # Give the request a from_cache attr to let people use it - resp.from_cache = from_cache - - return resp - - def close(self): - self.cache.close() - super(CacheControlAdapter, self).close() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/cache.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/cache.py deleted file mode 100644 index 94e0773..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/cache.py +++ /dev/null @@ -1,39 +0,0 @@ -""" -The cache object API for implementing caches. The default is a thread -safe in-memory dictionary. -""" -from threading import Lock - - -class BaseCache(object): - - def get(self, key): - raise NotImplementedError() - - def set(self, key, value): - raise NotImplementedError() - - def delete(self, key): - raise NotImplementedError() - - def close(self): - pass - - -class DictCache(BaseCache): - - def __init__(self, init_dict=None): - self.lock = Lock() - self.data = init_dict or {} - - def get(self, key): - return self.data.get(key, None) - - def set(self, key, value): - with self.lock: - self.data.update({key: value}) - - def delete(self, key): - with self.lock: - if key in self.data: - self.data.pop(key) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/__init__.py deleted file mode 100644 index 0e1658f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .file_cache import FileCache # noqa -from .redis_cache import RedisCache # noqa diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/file_cache.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/file_cache.py deleted file mode 100644 index 1ba0080..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/file_cache.py +++ /dev/null @@ -1,146 +0,0 @@ -import hashlib -import os -from textwrap import dedent - -from ..cache import BaseCache -from ..controller import CacheController - -try: - FileNotFoundError -except NameError: - # py2.X - FileNotFoundError = (IOError, OSError) - - -def _secure_open_write(filename, fmode): - # We only want to write to this file, so open it in write only mode - flags = os.O_WRONLY - - # os.O_CREAT | os.O_EXCL will fail if the file already exists, so we only - # will open *new* files. - # We specify this because we want to ensure that the mode we pass is the - # mode of the file. - flags |= os.O_CREAT | os.O_EXCL - - # Do not follow symlinks to prevent someone from making a symlink that - # we follow and insecurely open a cache file. - if hasattr(os, "O_NOFOLLOW"): - flags |= os.O_NOFOLLOW - - # On Windows we'll mark this file as binary - if hasattr(os, "O_BINARY"): - flags |= os.O_BINARY - - # Before we open our file, we want to delete any existing file that is - # there - try: - os.remove(filename) - except (IOError, OSError): - # The file must not exist already, so we can just skip ahead to opening - pass - - # Open our file, the use of os.O_CREAT | os.O_EXCL will ensure that if a - # race condition happens between the os.remove and this line, that an - # error will be raised. Because we utilize a lockfile this should only - # happen if someone is attempting to attack us. - fd = os.open(filename, flags, fmode) - try: - return os.fdopen(fd, "wb") - - except: - # An error occurred wrapping our FD in a file object - os.close(fd) - raise - - -class FileCache(BaseCache): - - def __init__( - self, - directory, - forever=False, - filemode=0o0600, - dirmode=0o0700, - use_dir_lock=None, - lock_class=None, - ): - - if use_dir_lock is not None and lock_class is not None: - raise ValueError("Cannot use use_dir_lock and lock_class together") - - try: - from pip._vendor.lockfile import LockFile - from pip._vendor.lockfile.mkdirlockfile import MkdirLockFile - except ImportError: - notice = dedent( - """ - NOTE: In order to use the FileCache you must have - lockfile installed. You can install it via pip: - pip install lockfile - """ - ) - raise ImportError(notice) - - else: - if use_dir_lock: - lock_class = MkdirLockFile - - elif lock_class is None: - lock_class = LockFile - - self.directory = directory - self.forever = forever - self.filemode = filemode - self.dirmode = dirmode - self.lock_class = lock_class - - @staticmethod - def encode(x): - return hashlib.sha224(x.encode()).hexdigest() - - def _fn(self, name): - # NOTE: This method should not change as some may depend on it. - # See: https://github.com/ionrock/cachecontrol/issues/63 - hashed = self.encode(name) - parts = list(hashed[:5]) + [hashed] - return os.path.join(self.directory, *parts) - - def get(self, key): - name = self._fn(key) - try: - with open(name, "rb") as fh: - return fh.read() - - except FileNotFoundError: - return None - - def set(self, key, value): - name = self._fn(key) - - # Make sure the directory exists - try: - os.makedirs(os.path.dirname(name), self.dirmode) - except (IOError, OSError): - pass - - with self.lock_class(name) as lock: - # Write our actual file - with _secure_open_write(lock.path, self.filemode) as fh: - fh.write(value) - - def delete(self, key): - name = self._fn(key) - if not self.forever: - try: - os.remove(name) - except FileNotFoundError: - pass - - -def url_to_file_path(url, filecache): - """Return the file cache path based on the URL. - - This does not ensure the file exists! - """ - key = CacheController.cache_url(url) - return filecache._fn(key) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/redis_cache.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/redis_cache.py deleted file mode 100644 index ed705ce..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/redis_cache.py +++ /dev/null @@ -1,33 +0,0 @@ -from __future__ import division - -from datetime import datetime -from pip._vendor.cachecontrol.cache import BaseCache - - -class RedisCache(BaseCache): - - def __init__(self, conn): - self.conn = conn - - def get(self, key): - return self.conn.get(key) - - def set(self, key, value, expires=None): - if not expires: - self.conn.set(key, value) - else: - expires = expires - datetime.utcnow() - self.conn.setex(key, int(expires.total_seconds()), value) - - def delete(self, key): - self.conn.delete(key) - - def clear(self): - """Helper for clearing all the keys in a database. Use with - caution!""" - for key in self.conn.keys(): - self.conn.delete(key) - - def close(self): - """Redis uses connection pooling, no need to close the connection.""" - pass diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/compat.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/compat.py deleted file mode 100644 index 33b5aed..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/compat.py +++ /dev/null @@ -1,29 +0,0 @@ -try: - from urllib.parse import urljoin -except ImportError: - from urlparse import urljoin - - -try: - import cPickle as pickle -except ImportError: - import pickle - - -# Handle the case where the requests module has been patched to not have -# urllib3 bundled as part of its source. -try: - from pip._vendor.requests.packages.urllib3.response import HTTPResponse -except ImportError: - from pip._vendor.urllib3.response import HTTPResponse - -try: - from pip._vendor.requests.packages.urllib3.util import is_fp_closed -except ImportError: - from pip._vendor.urllib3.util import is_fp_closed - -# Replicate some six behaviour -try: - text_type = unicode -except NameError: - text_type = str diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/controller.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/controller.py deleted file mode 100644 index 1b2b943..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/controller.py +++ /dev/null @@ -1,367 +0,0 @@ -""" -The httplib2 algorithms ported for use with requests. -""" -import logging -import re -import calendar -import time -from email.utils import parsedate_tz - -from pip._vendor.requests.structures import CaseInsensitiveDict - -from .cache import DictCache -from .serialize import Serializer - - -logger = logging.getLogger(__name__) - -URI = re.compile(r"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?") - - -def parse_uri(uri): - """Parses a URI using the regex given in Appendix B of RFC 3986. - - (scheme, authority, path, query, fragment) = parse_uri(uri) - """ - groups = URI.match(uri).groups() - return (groups[1], groups[3], groups[4], groups[6], groups[8]) - - -class CacheController(object): - """An interface to see if request should cached or not. - """ - - def __init__( - self, cache=None, cache_etags=True, serializer=None, status_codes=None - ): - self.cache = cache or DictCache() - self.cache_etags = cache_etags - self.serializer = serializer or Serializer() - self.cacheable_status_codes = status_codes or (200, 203, 300, 301) - - @classmethod - def _urlnorm(cls, uri): - """Normalize the URL to create a safe key for the cache""" - (scheme, authority, path, query, fragment) = parse_uri(uri) - if not scheme or not authority: - raise Exception("Only absolute URIs are allowed. uri = %s" % uri) - - scheme = scheme.lower() - authority = authority.lower() - - if not path: - path = "/" - - # Could do syntax based normalization of the URI before - # computing the digest. See Section 6.2.2 of Std 66. - request_uri = query and "?".join([path, query]) or path - defrag_uri = scheme + "://" + authority + request_uri - - return defrag_uri - - @classmethod - def cache_url(cls, uri): - return cls._urlnorm(uri) - - def parse_cache_control(self, headers): - known_directives = { - # https://tools.ietf.org/html/rfc7234#section-5.2 - "max-age": (int, True), - "max-stale": (int, False), - "min-fresh": (int, True), - "no-cache": (None, False), - "no-store": (None, False), - "no-transform": (None, False), - "only-if-cached": (None, False), - "must-revalidate": (None, False), - "public": (None, False), - "private": (None, False), - "proxy-revalidate": (None, False), - "s-maxage": (int, True), - } - - cc_headers = headers.get("cache-control", headers.get("Cache-Control", "")) - - retval = {} - - for cc_directive in cc_headers.split(","): - if not cc_directive.strip(): - continue - - parts = cc_directive.split("=", 1) - directive = parts[0].strip() - - try: - typ, required = known_directives[directive] - except KeyError: - logger.debug("Ignoring unknown cache-control directive: %s", directive) - continue - - if not typ or not required: - retval[directive] = None - if typ: - try: - retval[directive] = typ(parts[1].strip()) - except IndexError: - if required: - logger.debug( - "Missing value for cache-control " "directive: %s", - directive, - ) - except ValueError: - logger.debug( - "Invalid value for cache-control directive " "%s, must be %s", - directive, - typ.__name__, - ) - - return retval - - def cached_request(self, request): - """ - Return a cached response if it exists in the cache, otherwise - return False. - """ - cache_url = self.cache_url(request.url) - logger.debug('Looking up "%s" in the cache', cache_url) - cc = self.parse_cache_control(request.headers) - - # Bail out if the request insists on fresh data - if "no-cache" in cc: - logger.debug('Request header has "no-cache", cache bypassed') - return False - - if "max-age" in cc and cc["max-age"] == 0: - logger.debug('Request header has "max_age" as 0, cache bypassed') - return False - - # Request allows serving from the cache, let's see if we find something - cache_data = self.cache.get(cache_url) - if cache_data is None: - logger.debug("No cache entry available") - return False - - # Check whether it can be deserialized - resp = self.serializer.loads(request, cache_data) - if not resp: - logger.warning("Cache entry deserialization failed, entry ignored") - return False - - # If we have a cached 301, return it immediately. We don't - # need to test our response for other headers b/c it is - # intrinsically "cacheable" as it is Permanent. - # See: - # https://tools.ietf.org/html/rfc7231#section-6.4.2 - # - # Client can try to refresh the value by repeating the request - # with cache busting headers as usual (ie no-cache). - if resp.status == 301: - msg = ( - 'Returning cached "301 Moved Permanently" response ' - "(ignoring date and etag information)" - ) - logger.debug(msg) - return resp - - headers = CaseInsensitiveDict(resp.headers) - if not headers or "date" not in headers: - if "etag" not in headers: - # Without date or etag, the cached response can never be used - # and should be deleted. - logger.debug("Purging cached response: no date or etag") - self.cache.delete(cache_url) - logger.debug("Ignoring cached response: no date") - return False - - now = time.time() - date = calendar.timegm(parsedate_tz(headers["date"])) - current_age = max(0, now - date) - logger.debug("Current age based on date: %i", current_age) - - # TODO: There is an assumption that the result will be a - # urllib3 response object. This may not be best since we - # could probably avoid instantiating or constructing the - # response until we know we need it. - resp_cc = self.parse_cache_control(headers) - - # determine freshness - freshness_lifetime = 0 - - # Check the max-age pragma in the cache control header - if "max-age" in resp_cc: - freshness_lifetime = resp_cc["max-age"] - logger.debug("Freshness lifetime from max-age: %i", freshness_lifetime) - - # If there isn't a max-age, check for an expires header - elif "expires" in headers: - expires = parsedate_tz(headers["expires"]) - if expires is not None: - expire_time = calendar.timegm(expires) - date - freshness_lifetime = max(0, expire_time) - logger.debug("Freshness lifetime from expires: %i", freshness_lifetime) - - # Determine if we are setting freshness limit in the - # request. Note, this overrides what was in the response. - if "max-age" in cc: - freshness_lifetime = cc["max-age"] - logger.debug( - "Freshness lifetime from request max-age: %i", freshness_lifetime - ) - - if "min-fresh" in cc: - min_fresh = cc["min-fresh"] - # adjust our current age by our min fresh - current_age += min_fresh - logger.debug("Adjusted current age from min-fresh: %i", current_age) - - # Return entry if it is fresh enough - if freshness_lifetime > current_age: - logger.debug('The response is "fresh", returning cached response') - logger.debug("%i > %i", freshness_lifetime, current_age) - return resp - - # we're not fresh. If we don't have an Etag, clear it out - if "etag" not in headers: - logger.debug('The cached response is "stale" with no etag, purging') - self.cache.delete(cache_url) - - # return the original handler - return False - - def conditional_headers(self, request): - cache_url = self.cache_url(request.url) - resp = self.serializer.loads(request, self.cache.get(cache_url)) - new_headers = {} - - if resp: - headers = CaseInsensitiveDict(resp.headers) - - if "etag" in headers: - new_headers["If-None-Match"] = headers["ETag"] - - if "last-modified" in headers: - new_headers["If-Modified-Since"] = headers["Last-Modified"] - - return new_headers - - def cache_response(self, request, response, body=None, status_codes=None): - """ - Algorithm for caching requests. - - This assumes a requests Response object. - """ - # From httplib2: Don't cache 206's since we aren't going to - # handle byte range requests - cacheable_status_codes = status_codes or self.cacheable_status_codes - if response.status not in cacheable_status_codes: - logger.debug( - "Status code %s not in %s", response.status, cacheable_status_codes - ) - return - - response_headers = CaseInsensitiveDict(response.headers) - - # If we've been given a body, our response has a Content-Length, that - # Content-Length is valid then we can check to see if the body we've - # been given matches the expected size, and if it doesn't we'll just - # skip trying to cache it. - if ( - body is not None - and "content-length" in response_headers - and response_headers["content-length"].isdigit() - and int(response_headers["content-length"]) != len(body) - ): - return - - cc_req = self.parse_cache_control(request.headers) - cc = self.parse_cache_control(response_headers) - - cache_url = self.cache_url(request.url) - logger.debug('Updating cache with response from "%s"', cache_url) - - # Delete it from the cache if we happen to have it stored there - no_store = False - if "no-store" in cc: - no_store = True - logger.debug('Response header has "no-store"') - if "no-store" in cc_req: - no_store = True - logger.debug('Request header has "no-store"') - if no_store and self.cache.get(cache_url): - logger.debug('Purging existing cache entry to honor "no-store"') - self.cache.delete(cache_url) - if no_store: - return - - # If we've been given an etag, then keep the response - if self.cache_etags and "etag" in response_headers: - logger.debug("Caching due to etag") - self.cache.set( - cache_url, self.serializer.dumps(request, response, body=body) - ) - - # Add to the cache any 301s. We do this before looking that - # the Date headers. - elif response.status == 301: - logger.debug("Caching permanant redirect") - self.cache.set(cache_url, self.serializer.dumps(request, response)) - - # Add to the cache if the response headers demand it. If there - # is no date header then we can't do anything about expiring - # the cache. - elif "date" in response_headers: - # cache when there is a max-age > 0 - if "max-age" in cc and cc["max-age"] > 0: - logger.debug("Caching b/c date exists and max-age > 0") - self.cache.set( - cache_url, self.serializer.dumps(request, response, body=body) - ) - - # If the request can expire, it means we should cache it - # in the meantime. - elif "expires" in response_headers: - if response_headers["expires"]: - logger.debug("Caching b/c of expires header") - self.cache.set( - cache_url, self.serializer.dumps(request, response, body=body) - ) - - def update_cached_response(self, request, response): - """On a 304 we will get a new set of headers that we want to - update our cached value with, assuming we have one. - - This should only ever be called when we've sent an ETag and - gotten a 304 as the response. - """ - cache_url = self.cache_url(request.url) - - cached_response = self.serializer.loads(request, self.cache.get(cache_url)) - - if not cached_response: - # we didn't have a cached response - return response - - # Lets update our headers with the headers from the new request: - # http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-26#section-4.1 - # - # The server isn't supposed to send headers that would make - # the cached body invalid. But... just in case, we'll be sure - # to strip out ones we know that might be problmatic due to - # typical assumptions. - excluded_headers = ["content-length"] - - cached_response.headers.update( - dict( - (k, v) - for k, v in response.headers.items() - if k.lower() not in excluded_headers - ) - ) - - # we want a 200 b/c we have content via the cache - cached_response.status = 200 - - # update our cache - self.cache.set(cache_url, self.serializer.dumps(request, cached_response)) - - return cached_response diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/filewrapper.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/filewrapper.py deleted file mode 100644 index 30ed4c5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/filewrapper.py +++ /dev/null @@ -1,80 +0,0 @@ -from io import BytesIO - - -class CallbackFileWrapper(object): - """ - Small wrapper around a fp object which will tee everything read into a - buffer, and when that file is closed it will execute a callback with the - contents of that buffer. - - All attributes are proxied to the underlying file object. - - This class uses members with a double underscore (__) leading prefix so as - not to accidentally shadow an attribute. - """ - - def __init__(self, fp, callback): - self.__buf = BytesIO() - self.__fp = fp - self.__callback = callback - - def __getattr__(self, name): - # The vaguaries of garbage collection means that self.__fp is - # not always set. By using __getattribute__ and the private - # name[0] allows looking up the attribute value and raising an - # AttributeError when it doesn't exist. This stop thigns from - # infinitely recursing calls to getattr in the case where - # self.__fp hasn't been set. - # - # [0] https://docs.python.org/2/reference/expressions.html#atom-identifiers - fp = self.__getattribute__("_CallbackFileWrapper__fp") - return getattr(fp, name) - - def __is_fp_closed(self): - try: - return self.__fp.fp is None - - except AttributeError: - pass - - try: - return self.__fp.closed - - except AttributeError: - pass - - # We just don't cache it then. - # TODO: Add some logging here... - return False - - def _close(self): - if self.__callback: - self.__callback(self.__buf.getvalue()) - - # We assign this to None here, because otherwise we can get into - # really tricky problems where the CPython interpreter dead locks - # because the callback is holding a reference to something which - # has a __del__ method. Setting this to None breaks the cycle - # and allows the garbage collector to do it's thing normally. - self.__callback = None - - def read(self, amt=None): - data = self.__fp.read(amt) - self.__buf.write(data) - if self.__is_fp_closed(): - self._close() - - return data - - def _safe_read(self, amt): - data = self.__fp._safe_read(amt) - if amt == 2 and data == b"\r\n": - # urllib executes this read to toss the CRLF at the end - # of the chunk. - return data - - self.__buf.write(data) - if self.__is_fp_closed(): - self._close() - - return data diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/heuristics.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/heuristics.py deleted file mode 100644 index 6c0e979..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/heuristics.py +++ /dev/null @@ -1,135 +0,0 @@ -import calendar -import time - -from email.utils import formatdate, parsedate, parsedate_tz - -from datetime import datetime, timedelta - -TIME_FMT = "%a, %d %b %Y %H:%M:%S GMT" - - -def expire_after(delta, date=None): - date = date or datetime.utcnow() - return date + delta - - -def datetime_to_header(dt): - return formatdate(calendar.timegm(dt.timetuple())) - - -class BaseHeuristic(object): - - def warning(self, response): - """ - Return a valid 1xx warning header value describing the cache - adjustments. - - The response is provided too allow warnings like 113 - http://tools.ietf.org/html/rfc7234#section-5.5.4 where we need - to explicitly say response is over 24 hours old. - """ - return '110 - "Response is Stale"' - - def update_headers(self, response): - """Update the response headers with any new headers. - - NOTE: This SHOULD always include some Warning header to - signify that the response was cached by the client, not - by way of the provided headers. - """ - return {} - - def apply(self, response): - updated_headers = self.update_headers(response) - - if updated_headers: - response.headers.update(updated_headers) - warning_header_value = self.warning(response) - if warning_header_value is not None: - response.headers.update({"Warning": warning_header_value}) - - return response - - -class OneDayCache(BaseHeuristic): - """ - Cache the response by providing an expires 1 day in the - future. - """ - - def update_headers(self, response): - headers = {} - - if "expires" not in response.headers: - date = parsedate(response.headers["date"]) - expires = expire_after(timedelta(days=1), date=datetime(*date[:6])) - headers["expires"] = datetime_to_header(expires) - headers["cache-control"] = "public" - return headers - - -class ExpiresAfter(BaseHeuristic): - """ - Cache **all** requests for a defined time period. - """ - - def __init__(self, **kw): - self.delta = timedelta(**kw) - - def update_headers(self, response): - expires = expire_after(self.delta) - return {"expires": datetime_to_header(expires), "cache-control": "public"} - - def warning(self, response): - tmpl = "110 - Automatically cached for %s. Response might be stale" - return tmpl % self.delta - - -class LastModified(BaseHeuristic): - """ - If there is no Expires header already, fall back on Last-Modified - using the heuristic from - http://tools.ietf.org/html/rfc7234#section-4.2.2 - to calculate a reasonable value. - - Firefox also does something like this per - https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching_FAQ - http://lxr.mozilla.org/mozilla-release/source/netwerk/protocol/http/nsHttpResponseHead.cpp#397 - Unlike mozilla we limit this to 24-hr. - """ - cacheable_by_default_statuses = { - 200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501 - } - - def update_headers(self, resp): - headers = resp.headers - - if "expires" in headers: - return {} - - if "cache-control" in headers and headers["cache-control"] != "public": - return {} - - if resp.status not in self.cacheable_by_default_statuses: - return {} - - if "date" not in headers or "last-modified" not in headers: - return {} - - date = calendar.timegm(parsedate_tz(headers["date"])) - last_modified = parsedate(headers["last-modified"]) - if date is None or last_modified is None: - return {} - - now = time.time() - current_age = max(0, now - date) - delta = date - calendar.timegm(last_modified) - freshness_lifetime = max(0, min(delta / 10, 24 * 3600)) - if freshness_lifetime <= current_age: - return {} - - expires = date + freshness_lifetime - return {"expires": time.strftime(TIME_FMT, time.gmtime(expires))} - - def warning(self, resp): - return None diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/serialize.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/serialize.py deleted file mode 100644 index ec43ff2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/serialize.py +++ /dev/null @@ -1,186 +0,0 @@ -import base64 -import io -import json -import zlib - -from pip._vendor import msgpack -from pip._vendor.requests.structures import CaseInsensitiveDict - -from .compat import HTTPResponse, pickle, text_type - - -def _b64_decode_bytes(b): - return base64.b64decode(b.encode("ascii")) - - -def _b64_decode_str(s): - return _b64_decode_bytes(s).decode("utf8") - - -class Serializer(object): - - def dumps(self, request, response, body=None): - response_headers = CaseInsensitiveDict(response.headers) - - if body is None: - body = response.read(decode_content=False) - - # NOTE: 99% sure this is dead code. I'm only leaving it - # here b/c I don't have a test yet to prove - # it. Basically, before using - # `cachecontrol.filewrapper.CallbackFileWrapper`, - # this made an effort to reset the file handle. The - # `CallbackFileWrapper` short circuits this code by - # setting the body as the content is consumed, the - # result being a `body` argument is *always* passed - # into cache_response, and in turn, - # `Serializer.dump`. - response._fp = io.BytesIO(body) - - # NOTE: This is all a bit weird, but it's really important that on - # Python 2.x these objects are unicode and not str, even when - # they contain only ascii. The problem here is that msgpack - # understands the difference between unicode and bytes and we - # have it set to differentiate between them, however Python 2 - # doesn't know the difference. Forcing these to unicode will be - # enough to have msgpack know the difference. - data = { - u"response": { - u"body": body, - u"headers": dict( - (text_type(k), text_type(v)) for k, v in response.headers.items() - ), - u"status": response.status, - u"version": response.version, - u"reason": text_type(response.reason), - u"strict": response.strict, - u"decode_content": response.decode_content, - } - } - - # Construct our vary headers - data[u"vary"] = {} - if u"vary" in response_headers: - varied_headers = response_headers[u"vary"].split(",") - for header in varied_headers: - header = text_type(header).strip() - header_value = request.headers.get(header, None) - if header_value is not None: - header_value = text_type(header_value) - data[u"vary"][header] = header_value - - return b",".join([b"cc=4", msgpack.dumps(data, use_bin_type=True)]) - - def loads(self, request, data): - # Short circuit if we've been given an empty set of data - if not data: - return - - # Determine what version of the serializer the data was serialized - # with - try: - ver, data = data.split(b",", 1) - except ValueError: - ver = b"cc=0" - - # Make sure that our "ver" is actually a version and isn't a false - # positive from a , being in the data stream. - if ver[:3] != b"cc=": - data = ver + data - ver = b"cc=0" - - # Get the version number out of the cc=N - ver = ver.split(b"=", 1)[-1].decode("ascii") - - # Dispatch to the actual load method for the given version - try: - return getattr(self, "_loads_v{}".format(ver))(request, data) - - except AttributeError: - # This is a version we don't have a loads function for, so we'll - # just treat it as a miss and return None - return - - def prepare_response(self, request, cached): - """Verify our vary headers match and construct a real urllib3 - HTTPResponse object. - """ - # Special case the '*' Vary value as it means we cannot actually - # determine if the cached response is suitable for this request. - if "*" in cached.get("vary", {}): - return - - # Ensure that the Vary headers for the cached response match our - # request - for header, value in cached.get("vary", {}).items(): - if request.headers.get(header, None) != value: - return - - body_raw = cached["response"].pop("body") - - headers = CaseInsensitiveDict(data=cached["response"]["headers"]) - if headers.get("transfer-encoding", "") == "chunked": - headers.pop("transfer-encoding") - - cached["response"]["headers"] = headers - - try: - body = io.BytesIO(body_raw) - except TypeError: - # This can happen if cachecontrol serialized to v1 format (pickle) - # using Python 2. A Python 2 str(byte string) will be unpickled as - # a Python 3 str (unicode string), which will cause the above to - # fail with: - # - # TypeError: 'str' does not support the buffer interface - body = io.BytesIO(body_raw.encode("utf8")) - - return HTTPResponse(body=body, preload_content=False, **cached["response"]) - - def _loads_v0(self, request, data): - # The original legacy cache data. This doesn't contain enough - # information to construct everything we need, so we'll treat this as - # a miss. - return - - def _loads_v1(self, request, data): - try: - cached = pickle.loads(data) - except ValueError: - return - - return self.prepare_response(request, cached) - - def _loads_v2(self, request, data): - try: - cached = json.loads(zlib.decompress(data).decode("utf8")) - except (ValueError, zlib.error): - return - - # We need to decode the items that we've base64 encoded - cached["response"]["body"] = _b64_decode_bytes(cached["response"]["body"]) - cached["response"]["headers"] = dict( - (_b64_decode_str(k), _b64_decode_str(v)) - for k, v in cached["response"]["headers"].items() - ) - cached["response"]["reason"] = _b64_decode_str(cached["response"]["reason"]) - cached["vary"] = dict( - (_b64_decode_str(k), _b64_decode_str(v) if v is not None else v) - for k, v in cached["vary"].items() - ) - - return self.prepare_response(request, cached) - - def _loads_v3(self, request, data): - # Due to Python 2 encoding issues, it's impossible to know for sure - # exactly how to load v3 entries, thus we'll treat these as a miss so - # that they get rewritten out as v4 entries. - return - - def _loads_v4(self, request, data): - try: - cached = msgpack.loads(data, encoding="utf-8") - except ValueError: - return - - return self.prepare_response(request, cached) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/wrapper.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/wrapper.py deleted file mode 100644 index 265bfc8..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/wrapper.py +++ /dev/null @@ -1,29 +0,0 @@ -from .adapter import CacheControlAdapter -from .cache import DictCache - - -def CacheControl( - sess, - cache=None, - cache_etags=True, - serializer=None, - heuristic=None, - controller_class=None, - adapter_class=None, - cacheable_methods=None, -): - - cache = cache or DictCache() - adapter_class = adapter_class or CacheControlAdapter - adapter = adapter_class( - cache, - cache_etags=cache_etags, - serializer=serializer, - heuristic=heuristic, - controller_class=controller_class, - cacheable_methods=cacheable_methods, - ) - sess.mount("http://", adapter) - sess.mount("https://", adapter) - - return sess diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__init__.py deleted file mode 100644 index ef71f3a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from .core import where - -__version__ = "2018.11.29" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__main__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__main__.py deleted file mode 100644 index ae2aff5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__main__.py +++ /dev/null @@ -1,2 +0,0 @@ -from pip._vendor.certifi import where -print(where()) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/cacert.pem b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/cacert.pem deleted file mode 100644 index db68797..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/cacert.pem +++ /dev/null @@ -1,4512 +0,0 @@ - -# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA -# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA -# Label: "GlobalSign Root CA" -# Serial: 4835703278459707669005204 -# MD5 Fingerprint: 3e:45:52:15:09:51:92:e1:b7:5d:37:9f:b1:87:29:8a -# SHA1 Fingerprint: b1:bc:96:8b:d4:f4:9d:62:2a:a8:9a:81:f2:15:01:52:a4:1d:82:9c -# SHA256 Fingerprint: eb:d4:10:40:e4:bb:3e:c7:42:c9:e3:81:d3:1e:f2:a4:1a:48:b6:68:5c:96:e7:ce:f3:c1:df:6c:d4:33:1c:99 ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG -A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv -b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw -MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i -YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT -aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ -jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp -xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp -1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG -snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ -U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8 -9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E -BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B -AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz -yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE -38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP -AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad -DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME -HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 -# Label: "GlobalSign Root CA - R2" -# Serial: 4835703278459682885658125 -# MD5 Fingerprint: 94:14:77:7e:3e:5e:fd:8f:30:bd:41:b0:cf:e7:d0:30 -# SHA1 Fingerprint: 75:e0:ab:b6:13:85:12:27:1c:04:f8:5f:dd:de:38:e4:b7:24:2e:fe -# SHA256 Fingerprint: ca:42:dd:41:74:5f:d0:b8:1e:b9:02:36:2c:f9:d8:bf:71:9d:a1:bd:1b:1e:fc:94:6f:5b:4c:99:f4:2c:1b:9e ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 -MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL -v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 -eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq -tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd -C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa -zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB -mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH -V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n -bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG -3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs -J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO -291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS -ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd -AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - -# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only -# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only -# Label: "Verisign Class 3 Public Primary Certification Authority - G3" -# Serial: 206684696279472310254277870180966723415 -# MD5 Fingerprint: cd:68:b6:a7:c7:c4:ce:75:e0:1d:4f:57:44:61:92:09 -# SHA1 Fingerprint: 13:2d:0d:45:53:4b:69:97:cd:b2:d5:c3:39:e2:55:76:60:9b:5c:c6 -# SHA256 Fingerprint: eb:04:cf:5e:b1:f3:9a:fa:76:2f:2b:b1:20:f2:96:cb:a5:20:c1:b9:7d:b1:58:95:65:b8:1c:b9:a1:7b:72:44 ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl -cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu -LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT -aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD -VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT -aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ -bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu -IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b -N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t -KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu -kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm -CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ -Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu -imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te -2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe -DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC -/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p -F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt -TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== ------END CERTIFICATE----- - -# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited -# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited -# Label: "Entrust.net Premium 2048 Secure Server CA" -# Serial: 946069240 -# MD5 Fingerprint: ee:29:31:bc:32:7e:9a:e6:e8:b5:f7:51:b4:34:71:90 -# SHA1 Fingerprint: 50:30:06:09:1d:97:d4:f5:ae:39:f7:cb:e7:92:7d:7d:65:2d:34:31 -# SHA256 Fingerprint: 6d:c4:71:72:e0:1c:bc:b0:bf:62:58:0d:89:5f:e2:b8:ac:9a:d4:f8:73:80:1e:0c:10:b9:c8:37:d2:1e:b1:77 ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML -RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp -bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 -IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3 -MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 -LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp -YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG -A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq -K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe -sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX -MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT -XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/ -HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH -4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub -j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo -U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf -zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b -u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+ -bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er -fF6adulZkMV8gzURZVE= ------END CERTIFICATE----- - -# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust -# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust -# Label: "Baltimore CyberTrust Root" -# Serial: 33554617 -# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4 -# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74 -# SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ -RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD -VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX -DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y -ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy -VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr -mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr -IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK -mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu -XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy -dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye -jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1 -BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3 -DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92 -9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx -jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0 -Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz -ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS -R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- - -# Issuer: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network -# Subject: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network -# Label: "AddTrust External Root" -# Serial: 1 -# MD5 Fingerprint: 1d:35:54:04:85:78:b0:3f:42:42:4d:bf:20:73:0a:3f -# SHA1 Fingerprint: 02:fa:f3:e2:91:43:54:68:60:78:57:69:4d:f5:e4:5b:68:85:18:68 -# SHA256 Fingerprint: 68:7f:a4:51:38:22:78:ff:f0:c8:b1:1f:8d:43:d5:76:67:1c:6e:b2:bc:ea:b4:13:fb:83:d9:65:d0:6d:2f:f2 ------BEGIN CERTIFICATE----- -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs -IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 -MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux -FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h -bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v -dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt -H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 -uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX -mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX -a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN -E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 -WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD -VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 -Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU -cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx -IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN -AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH -YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 -6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC -Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX -c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a -mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= ------END CERTIFICATE----- - -# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. -# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. -# Label: "Entrust Root Certification Authority" -# Serial: 1164660820 -# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4 -# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9 -# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c ------BEGIN CERTIFICATE----- -MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 -Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW -KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw -NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw -NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy -ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV -BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo -Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 -4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 -KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI -rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi -94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB -sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi -gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo -kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE -vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA -A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t -O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua -AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP -9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ -eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m -0vdXcDazv/wor3ElhVsT/h5/WrQ8 ------END CERTIFICATE----- - -# Issuer: CN=GeoTrust Global CA O=GeoTrust Inc. -# Subject: CN=GeoTrust Global CA O=GeoTrust Inc. -# Label: "GeoTrust Global CA" -# Serial: 144470 -# MD5 Fingerprint: f7:75:ab:29:fb:51:4e:b7:77:5e:ff:05:3c:99:8e:f5 -# SHA1 Fingerprint: de:28:f4:a4:ff:e5:b9:2f:a3:c5:03:d1:a3:49:a7:f9:96:2a:82:12 -# SHA256 Fingerprint: ff:85:6a:2d:25:1d:cd:88:d3:66:56:f4:50:12:67:98:cf:ab:aa:de:40:79:9c:72:2d:e4:d2:b5:db:36:a7:3a ------BEGIN CERTIFICATE----- -MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT -MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i -YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg -R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9 -9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq -fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv -iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU -1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ -bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW -MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA -ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l -uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn -Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS -tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF -PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un -hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV -5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== ------END CERTIFICATE----- - -# Issuer: CN=GeoTrust Universal CA O=GeoTrust Inc. -# Subject: CN=GeoTrust Universal CA O=GeoTrust Inc. -# Label: "GeoTrust Universal CA" -# Serial: 1 -# MD5 Fingerprint: 92:65:58:8b:a2:1a:31:72:73:68:5c:b4:a5:7a:07:48 -# SHA1 Fingerprint: e6:21:f3:35:43:79:05:9a:4b:68:30:9d:8a:2f:74:22:15:87:ec:79 -# SHA256 Fingerprint: a0:45:9b:9f:63:b2:25:59:f5:fa:5d:4c:6d:b3:f9:f7:2f:f1:93:42:03:35:78:f0:73:bf:1d:1b:46:cb:b9:12 ------BEGIN CERTIFICATE----- -MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW -MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy -c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE -BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0 -IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV -VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8 -cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT -QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh -F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v -c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w -mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd -VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX -teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ -f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe -Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+ -nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB -/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY -MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG -9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc -aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX -IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn -ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z -uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN -Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja -QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW -koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9 -ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt -DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm -bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw= ------END CERTIFICATE----- - -# Issuer: CN=GeoTrust Universal CA 2 O=GeoTrust Inc. -# Subject: CN=GeoTrust Universal CA 2 O=GeoTrust Inc. -# Label: "GeoTrust Universal CA 2" -# Serial: 1 -# MD5 Fingerprint: 34:fc:b8:d0:36:db:9e:14:b3:c2:f2:db:8f:e4:94:c7 -# SHA1 Fingerprint: 37:9a:19:7b:41:85:45:35:0c:a6:03:69:f3:3c:2e:af:47:4f:20:79 -# SHA256 Fingerprint: a0:23:4f:3b:c8:52:7c:a5:62:8e:ec:81:ad:5d:69:89:5d:a5:68:0d:c9:1d:1c:b8:47:7f:33:f8:78:b9:5b:0b ------BEGIN CERTIFICATE----- -MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW -MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy -c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD -VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1 -c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81 -WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG -FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq -XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL -se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb -KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd -IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73 -y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt -hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc -QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4 -Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV -HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ -KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z -dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ -L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr -Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo -ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY -T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz -GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m -1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV -OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH -6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX -QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS ------END CERTIFICATE----- - -# Issuer: CN=AAA Certificate Services O=Comodo CA Limited -# Subject: CN=AAA Certificate Services O=Comodo CA Limited -# Label: "Comodo AAA Services root" -# Serial: 1 -# MD5 Fingerprint: 49:79:04:b0:eb:87:19:ac:47:b0:bc:11:51:9b:74:d0 -# SHA1 Fingerprint: d1:eb:23:a4:6d:17:d6:8f:d9:25:64:c2:f1:f1:60:17:64:d8:e3:49 -# SHA256 Fingerprint: d7:a7:a0:fb:5d:7e:27:31:d7:71:e9:48:4e:bc:de:f7:1d:5f:0c:3e:0a:29:48:78:2b:c8:3e:e0:ea:69:9e:f4 ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb -MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow -GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj -YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL -MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE -BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM -GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua -BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe -3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4 -YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR -rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm -ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU -oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v -QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t -b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF -AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q -GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2 -G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi -l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3 -smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root Certification Authority O=QuoVadis Limited OU=Root Certification Authority -# Subject: CN=QuoVadis Root Certification Authority O=QuoVadis Limited OU=Root Certification Authority -# Label: "QuoVadis Root CA" -# Serial: 985026699 -# MD5 Fingerprint: 27:de:36:fe:72:b7:00:03:00:9d:f4:f0:1e:6c:04:24 -# SHA1 Fingerprint: de:3f:40:bd:50:93:d3:9b:6c:60:f6:da:bc:07:62:01:00:89:76:c9 -# SHA256 Fingerprint: a4:5e:de:3b:bb:f0:9c:8a:e1:5c:72:ef:c0:72:68:d6:93:a2:1c:99:6f:d5:1e:67:ca:07:94:60:fd:6d:88:73 ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC -TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0 -aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz -MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw -IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR -dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp -li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D -rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ -WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug -F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU -xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC -Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv -dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw -ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl -IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh -c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy -ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI -KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T -KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq -y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p -dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD -VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL -MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk -fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 -7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R -cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y -mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW -xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK -SnQ2+Q== ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 2 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 2 O=QuoVadis Limited -# Label: "QuoVadis Root CA 2" -# Serial: 1289 -# MD5 Fingerprint: 5e:39:7b:dd:f8:ba:ec:82:e9:ac:62:ba:0c:54:00:2b -# SHA1 Fingerprint: ca:3a:fb:cf:12:40:36:4b:44:b2:16:20:88:80:48:39:19:93:7c:f7 -# SHA256 Fingerprint: 85:a0:dd:7d:d7:20:ad:b7:ff:05:f8:3d:54:2b:20:9d:c7:ff:45:28:f7:d6:77:b1:83:89:fe:a5:e5:c4:9e:86 ------BEGIN CERTIFICATE----- -MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x -GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv -b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV -BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W -YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa -GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg -Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J -WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB -rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp -+ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1 -ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i -Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz -PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og -/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH -oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI -yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud -EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2 -A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL -MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT -ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f -BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn -g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl -fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K -WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha -B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc -hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR -TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD -mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z -ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y -4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza -8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 3" -# Serial: 1478 -# MD5 Fingerprint: 31:85:3c:62:94:97:63:b9:aa:fd:89:4e:af:6f:e0:cf -# SHA1 Fingerprint: 1f:49:14:f7:d8:74:95:1d:dd:ae:02:c0:be:fd:3a:2d:82:75:51:85 -# SHA256 Fingerprint: 18:f1:fc:7f:20:5d:f8:ad:dd:eb:7f:e0:07:dd:57:e3:af:37:5a:9c:4d:8d:73:54:6b:f4:f1:fe:d1:e1:8d:35 ------BEGIN CERTIFICATE----- -MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x -GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv -b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV -BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W -YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM -V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB -4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr -H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd -8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv -vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT -mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe -btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc -T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt -WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ -c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A -4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD -VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG -CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0 -aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 -aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu -dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw -czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G -A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC -TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg -Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0 -7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem -d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd -+LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B -4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN -t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x -DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57 -k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s -zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j -Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT -mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK -4SVhM7JZG+Ju1zdXtg2pEto= ------END CERTIFICATE----- - -# Issuer: O=SECOM Trust.net OU=Security Communication RootCA1 -# Subject: O=SECOM Trust.net OU=Security Communication RootCA1 -# Label: "Security Communication Root CA" -# Serial: 0 -# MD5 Fingerprint: f1:bc:63:6a:54:e0:b5:27:f5:cd:e7:1a:e3:4d:6e:4a -# SHA1 Fingerprint: 36:b1:2b:49:f9:81:9e:d7:4c:9e:bc:38:0f:c6:56:8f:5d:ac:b2:f7 -# SHA256 Fingerprint: e7:5e:72:ed:9f:56:0e:ec:6e:b4:80:00:73:a4:3f:c3:ad:19:19:5a:39:22:82:01:78:95:97:4a:99:02:6b:6c ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY -MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t -dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5 -WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD -VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8 -9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ -DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9 -Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N -QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ -xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G -A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T -AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG -kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr -Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5 -Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU -JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot -RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw== ------END CERTIFICATE----- - -# Issuer: CN=Sonera Class2 CA O=Sonera -# Subject: CN=Sonera Class2 CA O=Sonera -# Label: "Sonera Class 2 Root CA" -# Serial: 29 -# MD5 Fingerprint: a3:ec:75:0f:2e:88:df:fa:48:01:4e:0b:5c:48:6f:fb -# SHA1 Fingerprint: 37:f7:6d:e6:07:7c:90:c5:b1:3e:93:1a:b7:41:10:b4:f2:e4:9a:27 -# SHA256 Fingerprint: 79:08:b4:03:14:c1:38:10:0b:51:8d:07:35:80:7f:fb:fc:f8:51:8a:00:95:33:71:05:ba:38:6b:15:3d:d9:27 ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP -MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx -MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV -BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o -Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt -5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s -3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej -vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu -8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw -DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG -MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil -zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/ -3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD -FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6 -Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2 -ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M ------END CERTIFICATE----- - -# Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com -# Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com -# Label: "XRamp Global CA Root" -# Serial: 107108908803651509692980124233745014957 -# MD5 Fingerprint: a1:0b:44:b3:ca:10:d8:00:6e:9d:0f:d8:0f:92:0a:d1 -# SHA1 Fingerprint: b8:01:86:d1:eb:9c:86:a5:41:04:cf:30:54:f3:4c:52:b7:e5:58:c6 -# SHA256 Fingerprint: ce:cd:dc:90:50:99:d8:da:df:c5:b1:d2:09:b7:37:cb:e2:c1:8c:fb:2c:10:c0:ff:0b:cf:0d:32:86:fc:1a:a2 ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB -gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk -MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY -UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx -NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3 -dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy -dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6 -38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP -KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q -DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4 -qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa -JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi -PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P -BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs -jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0 -eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD -ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR -vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa -IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy -i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ -O+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- - -# Issuer: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority -# Subject: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority -# Label: "Go Daddy Class 2 CA" -# Serial: 0 -# MD5 Fingerprint: 91:de:06:25:ab:da:fd:32:17:0c:bb:25:17:2a:84:67 -# SHA1 Fingerprint: 27:96:ba:e6:3f:18:01:e2:77:26:1b:a0:d7:77:70:02:8f:20:ee:e4 -# SHA256 Fingerprint: c3:84:6b:f2:4b:9e:93:ca:64:27:4c:0e:c6:7c:1e:cc:5e:02:4f:fc:ac:d2:d7:40:19:35:0e:81:fe:54:6a:e4 ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh -MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE -YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 -MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo -ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg -MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN -ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA -PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w -wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi -EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY -avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ -YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE -sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h -/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 -IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD -ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy -OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P -TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER -dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf -ReYNnyicsbkqWletNw+vHX/bvZ8= ------END CERTIFICATE----- - -# Issuer: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority -# Subject: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority -# Label: "Starfield Class 2 CA" -# Serial: 0 -# MD5 Fingerprint: 32:4a:4b:bb:c8:63:69:9b:be:74:9a:c6:dd:1d:46:24 -# SHA1 Fingerprint: ad:7e:1c:28:b0:64:ef:8f:60:03:40:20:14:c3:d0:e3:37:0e:b5:8a -# SHA256 Fingerprint: 14:65:fa:20:53:97:b8:76:fa:a6:f0:a9:95:8e:55:90:e4:0f:cc:7f:aa:4f:b7:c2:c8:67:75:21:fb:5f:b6:58 ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl -MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp -U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw -NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE -ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp -ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3 -DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf -8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN -+lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0 -X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa -K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA -1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G -A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR -zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0 -YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD -bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w -DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3 -L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D -eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp -VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY -WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- - -# Issuer: O=Government Root Certification Authority -# Subject: O=Government Root Certification Authority -# Label: "Taiwan GRCA" -# Serial: 42023070807708724159991140556527066870 -# MD5 Fingerprint: 37:85:44:53:32:45:1f:20:f0:f3:95:e1:25:c4:43:4e -# SHA1 Fingerprint: f4:8b:11:bf:de:ab:be:94:54:20:71:e6:41:de:6b:be:88:2b:40:b9 -# SHA256 Fingerprint: 76:00:29:5e:ef:e8:5b:9e:1f:d6:24:db:76:06:2a:aa:ae:59:81:8a:54:d2:77:4c:d4:c0:b2:c0:11:31:e1:b3 ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/ -MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow -PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR -IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q -gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy -yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts -F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2 -jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx -ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC -VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK -YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH -EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN -Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud -DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE -MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK -UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ -TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf -qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK -ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE -JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7 -hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1 -EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm -nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX -udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz -ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe -LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl -pYYsfPQS ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Assured ID Root CA" -# Serial: 17154717934120587862167794914071425081 -# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72 -# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43 -# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c -JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP -mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ -wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 -VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ -AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB -AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW -BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun -pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC -dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf -fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm -NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx -H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Global Root CA" -# Serial: 10944719598952040374951832963794454346 -# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e -# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36 -# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61 ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD -QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT -MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j -b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB -CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 -nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt -43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P -T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 -gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO -BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR -TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw -DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr -hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg -06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF -PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls -YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- - -# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert High Assurance EV Root CA" -# Serial: 3553400076410547919724730734378100087 -# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a -# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25 -# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j -ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL -MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 -LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug -RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm -+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW -PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM -xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB -Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 -hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg -EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA -FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec -nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z -eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF -hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 -Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep -+OkuE6N36B9K ------END CERTIFICATE----- - -# Issuer: CN=Class 2 Primary CA O=Certplus -# Subject: CN=Class 2 Primary CA O=Certplus -# Label: "Certplus Class 2 Primary CA" -# Serial: 177770208045934040241468760488327595043 -# MD5 Fingerprint: 88:2c:8c:52:b8:a2:3c:f3:f7:bb:03:ea:ae:ac:42:0b -# SHA1 Fingerprint: 74:20:74:41:72:9c:dd:92:ec:79:31:d8:23:10:8d:c2:81:92:e2:bb -# SHA256 Fingerprint: 0f:99:3c:8a:ef:97:ba:af:56:87:14:0e:d5:9a:d1:82:1b:b4:af:ac:f0:aa:9a:58:b5:d5:7a:33:8a:3a:fb:cb ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAw -PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz -cyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9 -MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz -IDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxQ -ltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR5aiR -VhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyL -kcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCd -EgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas -H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0 -HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud -DwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4 -QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu -Y29tL0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/ -AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8 -yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR -FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA -ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB -kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 -l7+ijrRU ------END CERTIFICATE----- - -# Issuer: CN=DST Root CA X3 O=Digital Signature Trust Co. -# Subject: CN=DST Root CA X3 O=Digital Signature Trust Co. -# Label: "DST Root CA X3" -# Serial: 91299735575339953335919266965803778155 -# MD5 Fingerprint: 41:03:52:dc:0f:f7:50:1b:16:f0:02:8e:ba:6f:45:c5 -# SHA1 Fingerprint: da:c9:02:4f:54:d8:f6:df:94:93:5f:b1:73:26:38:ca:6a:d7:7c:13 -# SHA256 Fingerprint: 06:87:26:03:31:a7:24:03:d9:09:f1:05:e6:9b:cf:0d:32:e1:bd:24:93:ff:c6:d9:20:6d:11:bc:d6:77:07:39 ------BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ -MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT -DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow -PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD -Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O -rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq -OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b -xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw -7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD -aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG -SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 -ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr -AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz -R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 -JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo -Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ ------END CERTIFICATE----- - -# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG -# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG -# Label: "SwissSign Gold CA - G2" -# Serial: 13492815561806991280 -# MD5 Fingerprint: 24:77:d9:a8:91:d1:3b:fa:88:2d:c2:ff:f8:cd:33:93 -# SHA1 Fingerprint: d8:c5:38:8a:b7:30:1b:1b:6e:d4:7a:e6:45:25:3a:6f:9f:1a:27:61 -# SHA256 Fingerprint: 62:dd:0b:e9:b9:f5:0a:16:3e:a0:f8:e7:5c:05:3b:1e:ca:57:ea:55:c8:68:8f:64:7c:68:81:f2:c8:35:7b:95 ------BEGIN CERTIFICATE----- -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 ------END CERTIFICATE----- - -# Issuer: CN=SwissSign Silver CA - G2 O=SwissSign AG -# Subject: CN=SwissSign Silver CA - G2 O=SwissSign AG -# Label: "SwissSign Silver CA - G2" -# Serial: 5700383053117599563 -# MD5 Fingerprint: e0:06:a1:c9:7d:cf:c9:fc:0d:c0:56:75:96:d8:62:13 -# SHA1 Fingerprint: 9b:aa:e5:9f:56:ee:21:cb:43:5a:be:25:93:df:a7:f0:40:d1:1d:cb -# SHA256 Fingerprint: be:6c:4d:a2:bb:b9:ba:59:b6:f3:93:97:68:37:42:46:c3:c0:05:99:3f:a9:8f:02:0d:1d:ed:be:d4:8a:81:d5 ------BEGIN CERTIFICATE----- -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 ------END CERTIFICATE----- - -# Issuer: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc. -# Subject: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc. -# Label: "GeoTrust Primary Certification Authority" -# Serial: 32798226551256963324313806436981982369 -# MD5 Fingerprint: 02:26:c3:01:5e:08:30:37:43:a9:d0:7d:cf:37:e6:bf -# SHA1 Fingerprint: 32:3c:11:8e:1b:f7:b8:b6:52:54:e2:e2:10:0d:d6:02:90:37:f0:96 -# SHA256 Fingerprint: 37:d5:10:06:c5:12:ea:ab:62:64:21:f1:ec:8c:92:01:3f:c5:f8:2a:e9:8e:e5:33:eb:46:19:b8:de:b4:d0:6c ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY -MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo -R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx -MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK -Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9 -AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA -ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0 -7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W -kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI -mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G -A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ -KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1 -6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl -4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K -oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj -UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU -AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= ------END CERTIFICATE----- - -# Issuer: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only -# Subject: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only -# Label: "thawte Primary Root CA" -# Serial: 69529181992039203566298953787712940909 -# MD5 Fingerprint: 8c:ca:dc:0b:22:ce:f5:be:72:ac:41:1a:11:a8:d8:12 -# SHA1 Fingerprint: 91:c6:d6:ee:3e:8a:c8:63:84:e5:48:c2:99:29:5c:75:6c:81:7b:81 -# SHA256 Fingerprint: 8d:72:2f:81:a9:c1:13:c0:79:1d:f1:36:a2:96:6d:b2:6c:95:0a:97:1d:b4:6b:41:99:f4:ea:54:b7:8b:fb:9f ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB -qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf -Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw -MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV -BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw -NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j -LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG -A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs -W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta -3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk -6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6 -Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J -NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP -r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU -DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz -YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX -xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2 -/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/ -LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7 -jVaMaA== ------END CERTIFICATE----- - -# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only -# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only -# Label: "VeriSign Class 3 Public Primary Certification Authority - G5" -# Serial: 33037644167568058970164719475676101450 -# MD5 Fingerprint: cb:17:e4:31:67:3e:e2:09:fe:45:57:93:f3:0a:fa:1c -# SHA1 Fingerprint: 4e:b6:d5:78:49:9b:1c:cf:5f:58:1e:ad:56:be:3d:9b:67:44:a5:e5 -# SHA256 Fingerprint: 9a:cf:ab:7e:43:c8:d8:80:d0:6b:26:2a:94:de:ee:e4:b4:65:99:89:c3:d0:ca:f1:9b:af:64:05:e4:1a:b7:df ------BEGIN CERTIFICATE----- -MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB -yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL -ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp -U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW -ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW -ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp -U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y -aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1 -nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex -t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz -SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG -BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+ -rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/ -NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E -BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH -BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy -aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv -MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE -p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y -5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK -WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ -4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N -hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq ------END CERTIFICATE----- - -# Issuer: CN=SecureTrust CA O=SecureTrust Corporation -# Subject: CN=SecureTrust CA O=SecureTrust Corporation -# Label: "SecureTrust CA" -# Serial: 17199774589125277788362757014266862032 -# MD5 Fingerprint: dc:32:c3:a7:6d:25:57:c7:68:09:9d:ea:2d:a9:a2:d1 -# SHA1 Fingerprint: 87:82:c6:c3:04:35:3b:cf:d2:96:92:d2:59:3e:7d:44:d9:34:ff:11 -# SHA256 Fingerprint: f1:c1:b5:0a:e5:a2:0d:d8:03:0e:c9:f6:bc:24:82:3d:d3:67:b5:25:57:59:b4:e7:1b:61:fc:e9:f7:37:5d:73 ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x -FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz -MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv -cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz -Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO -0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao -wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj -7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS -8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT -BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg -JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC -NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3 -6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/ -3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm -D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS -CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- - -# Issuer: CN=Secure Global CA O=SecureTrust Corporation -# Subject: CN=Secure Global CA O=SecureTrust Corporation -# Label: "Secure Global CA" -# Serial: 9751836167731051554232119481456978597 -# MD5 Fingerprint: cf:f4:27:0d:d4:ed:dc:65:16:49:6d:3d:da:bf:6e:de -# SHA1 Fingerprint: 3a:44:73:5a:e5:81:90:1f:24:86:61:46:1e:3b:9c:c4:5f:f5:3a:1b -# SHA256 Fingerprint: 42:00:f5:04:3a:c8:59:0e:bb:52:7d:20:9e:d1:50:30:29:fb:cb:d4:1c:a1:b5:06:ec:27:f1:5a:de:7d:ac:69 ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK -MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x -GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx -MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg -Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ -iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa -/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ -jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI -HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7 -sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w -gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw -KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG -AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L -URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO -H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm -I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY -iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- - -# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited -# Subject: CN=COMODO Certification Authority O=COMODO CA Limited -# Label: "COMODO Certification Authority" -# Serial: 104350513648249232941998508985834464573 -# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75 -# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b -# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66 ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB -gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV -BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw -MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl -YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P -RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 -UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI -2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 -Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp -+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ -DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O -nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW -/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g -PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u -QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY -SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv -IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 -zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd -BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB -ZQ== ------END CERTIFICATE----- - -# Issuer: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C. -# Subject: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C. -# Label: "Network Solutions Certificate Authority" -# Serial: 116697915152937497490437556386812487904 -# MD5 Fingerprint: d3:f3:a6:16:c0:fa:6b:1d:59:b1:2d:96:4d:0e:11:2e -# SHA1 Fingerprint: 74:f8:a3:c3:ef:e7:b3:90:06:4b:83:90:3c:21:64:60:20:e5:df:ce -# SHA256 Fingerprint: 15:f0:ba:00:a3:ac:7a:f3:ac:88:4c:07:2b:10:11:a0:77:bd:77:c0:97:f4:01:64:b2:f8:59:8a:bd:83:86:0c ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi -MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV -UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO -ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz -c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP -OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl -mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF -BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4 -qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw -gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu -bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp -dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8 -6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/ -h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH -/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN -pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - -# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited -# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited -# Label: "COMODO ECC Certification Authority" -# Serial: 41578283867086692638256921589707938090 -# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23 -# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11 -# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7 ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL -MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE -BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT -IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw -MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy -ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N -T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR -FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J -cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW -BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm -fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv -GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- - -# Issuer: CN=OISTE WISeKey Global Root GA CA O=WISeKey OU=Copyright (c) 2005/OISTE Foundation Endorsed -# Subject: CN=OISTE WISeKey Global Root GA CA O=WISeKey OU=Copyright (c) 2005/OISTE Foundation Endorsed -# Label: "OISTE WISeKey Global Root GA CA" -# Serial: 86718877871133159090080555911823548314 -# MD5 Fingerprint: bc:6c:51:33:a7:e9:d3:66:63:54:15:72:1b:21:92:93 -# SHA1 Fingerprint: 59:22:a1:e1:5a:ea:16:35:21:f8:98:39:6a:46:46:b0:44:1b:0f:a9 -# SHA256 Fingerprint: 41:c9:23:86:6a:b4:ca:d6:b7:ad:57:80:81:58:2e:02:07:97:a6:cb:df:4f:ff:78:ce:83:96:b3:89:37:d7:f5 ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB -ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly -aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl -ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w -NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G -A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD -VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX -SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR -VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2 -w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF -mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg -4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9 -4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw -EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx -SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2 -ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8 -vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa -hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi -Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ -/L7fCg0= ------END CERTIFICATE----- - -# Issuer: CN=Certigna O=Dhimyotis -# Subject: CN=Certigna O=Dhimyotis -# Label: "Certigna" -# Serial: 18364802974209362175 -# MD5 Fingerprint: ab:57:a6:5b:7d:42:82:19:b5:d8:58:26:28:5e:fd:ff -# SHA1 Fingerprint: b1:2e:13:63:45:86:a4:6f:1a:b2:60:68:37:58:2d:c4:ac:fd:94:97 -# SHA256 Fingerprint: e3:b6:a2:db:2e:d7:ce:48:84:2f:7a:c5:32:41:c7:b7:1d:54:14:4b:fb:40:c1:1f:3f:1d:0b:42:f5:ee:a1:2d ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV -BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X -DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ -BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4 -QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny -gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw -zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q -130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2 -JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw -DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw -ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT -AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj -AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG -9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h -bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc -fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu -HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w -t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- - -# Issuer: CN=Deutsche Telekom Root CA 2 O=Deutsche Telekom AG OU=T-TeleSec Trust Center -# Subject: CN=Deutsche Telekom Root CA 2 O=Deutsche Telekom AG OU=T-TeleSec Trust Center -# Label: "Deutsche Telekom Root CA 2" -# Serial: 38 -# MD5 Fingerprint: 74:01:4a:91:b1:08:c4:58:ce:47:cd:f0:dd:11:53:08 -# SHA1 Fingerprint: 85:a4:08:c0:9c:19:3e:5d:51:58:7d:cd:d6:13:30:fd:8c:de:37:bf -# SHA256 Fingerprint: b6:19:1a:50:d0:c3:97:7f:7d:a9:9b:cd:aa:c8:6a:22:7d:ae:b9:67:9e:c7:0b:a3:b0:c9:d9:22:71:c1:70:d3 ------BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc -MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj -IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB -IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE -RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl -U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290 -IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU -ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC -QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr -rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S -NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc -QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH -txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP -BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC -AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp -tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa -IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl -6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+ -xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU -Cm26OWMohpLzGITY+9HPBVZkVw== ------END CERTIFICATE----- - -# Issuer: CN=Cybertrust Global Root O=Cybertrust, Inc -# Subject: CN=Cybertrust Global Root O=Cybertrust, Inc -# Label: "Cybertrust Global Root" -# Serial: 4835703278459682877484360 -# MD5 Fingerprint: 72:e4:4a:87:e3:69:40:80:77:ea:bc:e3:f4:ff:f0:e1 -# SHA1 Fingerprint: 5f:43:e5:b1:bf:f8:78:8c:ac:1c:c7:ca:4a:9a:c6:22:2b:cc:34:c6 -# SHA256 Fingerprint: 96:0a:df:00:63:e9:63:56:75:0c:29:65:dd:0a:08:67:da:0b:9c:bd:6e:77:71:4a:ea:fb:23:49:ab:39:3d:a3 ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG -A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh -bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE -ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS -b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 -7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS -J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y -HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP -t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz -FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY -XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ -MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw -hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js -MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA -A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj -Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx -XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o -omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc -A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- - -# Issuer: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority -# Subject: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority -# Label: "ePKI Root Certification Authority" -# Serial: 28956088682735189655030529057352760477 -# MD5 Fingerprint: 1b:2e:00:ca:26:06:90:3d:ad:fe:6f:15:68:d3:6b:b3 -# SHA1 Fingerprint: 67:65:0d:f1:7e:8e:7e:5b:82:40:a4:f4:56:4b:cf:e2:3d:69:c6:f0 -# SHA256 Fingerprint: c0:a6:f4:dc:63:a2:4b:fd:cf:54:ef:2a:6a:08:2a:0a:72:de:35:80:3e:2f:f5:ff:52:7a:e5:d8:72:06:df:d5 ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe -MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 -ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw -IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL -SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH -SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh -ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X -DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1 -TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ -fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA -sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU -WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS -nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH -dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip -NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC -AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF -MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB -uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl -PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP -JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/ -gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2 -j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6 -5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB -o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS -/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z -Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE -W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D -hNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- - -# Issuer: O=certSIGN OU=certSIGN ROOT CA -# Subject: O=certSIGN OU=certSIGN ROOT CA -# Label: "certSIGN ROOT CA" -# Serial: 35210227249154 -# MD5 Fingerprint: 18:98:c0:d6:e9:3a:fc:f9:b0:f5:0c:f7:4b:01:44:17 -# SHA1 Fingerprint: fa:b7:ee:36:97:26:62:fb:2d:b0:2a:f6:bf:03:fd:e8:7c:4b:2f:9b -# SHA256 Fingerprint: ea:a9:62:c4:fa:4a:6b:af:eb:e4:15:19:6d:35:1c:cd:88:8d:4f:53:f3:fa:8a:e6:d7:c4:66:a9:4e:60:42:bb ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT -AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD -QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP -MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do -0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ -UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d -RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ -OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv -JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C -AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O -BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ -LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY -MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ -44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I -Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw -i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN -9u6wWk5JRFRYX0KD ------END CERTIFICATE----- - -# Issuer: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only -# Subject: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only -# Label: "GeoTrust Primary Certification Authority - G3" -# Serial: 28809105769928564313984085209975885599 -# MD5 Fingerprint: b5:e8:34:36:c9:10:44:58:48:70:6d:2e:83:d4:b8:05 -# SHA1 Fingerprint: 03:9e:ed:b8:0b:e7:a0:3c:69:53:89:3b:20:d2:d9:32:3a:4c:2a:fd -# SHA256 Fingerprint: b4:78:b8:12:25:0d:f8:78:63:5c:2a:a7:ec:7d:15:5e:aa:62:5e:e8:29:16:e2:cd:29:43:61:88:6c:d1:fb:d4 ------BEGIN CERTIFICATE----- -MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB -mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT -MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ -BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg -MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0 -BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz -+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm -hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn -5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W -JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL -DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC -huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw -HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB -AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB -zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN -kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD -AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH -SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G -spki4cErx5z481+oghLrGREt ------END CERTIFICATE----- - -# Issuer: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only -# Subject: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only -# Label: "thawte Primary Root CA - G2" -# Serial: 71758320672825410020661621085256472406 -# MD5 Fingerprint: 74:9d:ea:60:24:c4:fd:22:53:3e:cc:3a:72:d9:29:4f -# SHA1 Fingerprint: aa:db:bc:22:23:8f:c4:01:a1:27:bb:38:dd:f4:1d:db:08:9e:f0:12 -# SHA256 Fingerprint: a4:31:0d:50:af:18:a6:44:71:90:37:2a:86:af:af:8b:95:1f:fb:43:1d:83:7f:1e:56:88:b4:59:71:ed:15:57 ------BEGIN CERTIFICATE----- -MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL -MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp -IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi -BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw -MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh -d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig -YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v -dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/ -BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6 -papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K -DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3 -KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox -XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== ------END CERTIFICATE----- - -# Issuer: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only -# Subject: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only -# Label: "thawte Primary Root CA - G3" -# Serial: 127614157056681299805556476275995414779 -# MD5 Fingerprint: fb:1b:5d:43:8a:94:cd:44:c6:76:f2:43:4b:47:e7:31 -# SHA1 Fingerprint: f1:8b:53:8d:1b:e9:03:b6:a6:f0:56:43:5b:17:15:89:ca:f3:6b:f2 -# SHA256 Fingerprint: 4b:03:f4:58:07:ad:70:f2:1b:fc:2c:ae:71:c9:fd:e4:60:4c:06:4c:f5:ff:b6:86:ba:e5:db:aa:d7:fd:d3:4c ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB -rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf -Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw -MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV -BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa -Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl -LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u -MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl -ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm -gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8 -YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf -b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9 -9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S -zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk -OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV -HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA -2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW -oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu -t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c -KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM -m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu -MdRAGmI0Nj81Aa6sY6A= ------END CERTIFICATE----- - -# Issuer: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only -# Subject: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only -# Label: "GeoTrust Primary Certification Authority - G2" -# Serial: 80682863203381065782177908751794619243 -# MD5 Fingerprint: 01:5e:d8:6b:bd:6f:3d:8e:a1:31:f8:12:e0:98:73:6a -# SHA1 Fingerprint: 8d:17:84:d5:37:f3:03:7d:ec:70:fe:57:8b:51:9a:99:e6:10:d7:b0 -# SHA256 Fingerprint: 5e:db:7a:c4:3b:82:a0:6a:87:61:e8:d7:be:49:79:eb:f2:61:1f:7d:d7:9b:f9:1c:1c:6b:56:6a:21:9e:d7:66 ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL -MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj -KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2 -MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw -NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV -BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH -MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL -So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal -tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG -CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT -qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz -rD6ogRLQy7rQkgu2npaqBA+K ------END CERTIFICATE----- - -# Issuer: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only -# Subject: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only -# Label: "VeriSign Universal Root Certification Authority" -# Serial: 85209574734084581917763752644031726877 -# MD5 Fingerprint: 8e:ad:b5:01:aa:4d:81:e4:8c:1d:d1:e1:14:00:95:19 -# SHA1 Fingerprint: 36:79:ca:35:66:87:72:30:4d:30:a5:fb:87:3b:0f:a7:7b:b7:0d:54 -# SHA256 Fingerprint: 23:99:56:11:27:a5:71:25:de:8c:ef:ea:61:0d:df:2f:a0:78:b5:c8:06:7f:4e:82:82:90:bf:b8:60:e8:4b:3c ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB -vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL -ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp -U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W -ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe -Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX -MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 -IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y -IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh -bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF -9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH -H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H -LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN -/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT -rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw -WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs -exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 -sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ -seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz -4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ -BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR -lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 -7M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- - -# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only -# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only -# Label: "VeriSign Class 3 Public Primary Certification Authority - G4" -# Serial: 63143484348153506665311985501458640051 -# MD5 Fingerprint: 3a:52:e1:e7:fd:6f:3a:e3:6f:f3:6f:99:1b:f9:22:41 -# SHA1 Fingerprint: 22:d5:d8:df:8f:02:31:d1:8d:f7:9d:b7:cf:8a:2d:64:c9:3f:6c:3a -# SHA256 Fingerprint: 69:dd:d7:ea:90:bb:57:c9:3e:13:5d:c8:5e:a6:fc:d5:48:0b:60:32:39:bd:c4:54:fc:75:8b:2a:26:cf:7f:79 ------BEGIN CERTIFICATE----- -MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW -ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp -U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y -aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG -A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp -U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg -SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln -biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm -GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve -fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ -aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj -aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW -kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC -4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga -FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== ------END CERTIFICATE----- - -# Issuer: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) -# Subject: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) -# Label: "NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny" -# Serial: 80544274841616 -# MD5 Fingerprint: c5:a1:b7:ff:73:dd:d6:d7:34:32:18:df:fc:3c:ad:88 -# SHA1 Fingerprint: 06:08:3f:59:3f:15:a1:04:a0:69:a4:6b:a9:03:d0:06:b7:97:09:91 -# SHA256 Fingerprint: 6c:61:da:c3:a2:de:f0:31:50:6b:e0:36:d2:a6:fe:40:19:94:fb:d1:3d:f9:c8:d4:66:59:92:74:c4:46:ec:98 ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG -EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3 -MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl -cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR -dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB -pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM -b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm -aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz -IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT -lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz -AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5 -VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG -ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2 -BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG -AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M -U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh -bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C -+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F -uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 -XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- - -# Issuer: CN=Staat der Nederlanden Root CA - G2 O=Staat der Nederlanden -# Subject: CN=Staat der Nederlanden Root CA - G2 O=Staat der Nederlanden -# Label: "Staat der Nederlanden Root CA - G2" -# Serial: 10000012 -# MD5 Fingerprint: 7c:a5:0f:f8:5b:9a:7d:6d:30:ae:54:5a:e3:42:a2:8a -# SHA1 Fingerprint: 59:af:82:79:91:86:c7:b4:75:07:cb:cf:03:57:46:eb:04:dd:b7:16 -# SHA256 Fingerprint: 66:8c:83:94:7d:a6:3b:72:4b:ec:e1:74:3c:31:a0:e6:ae:d0:db:8e:c5:b3:1b:e3:77:bb:78:4f:91:b6:71:6f ------BEGIN CERTIFICATE----- -MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX -DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl -ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv -b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291 -qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp -uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU -Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE -pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp -5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M -UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN -GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy -5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv -6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK -eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6 -B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/ -BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov -L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG -SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS -CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen -5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897 -IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK -gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL -+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL -vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm -bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk -N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC -Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z -ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ== ------END CERTIFICATE----- - -# Issuer: CN=Hongkong Post Root CA 1 O=Hongkong Post -# Subject: CN=Hongkong Post Root CA 1 O=Hongkong Post -# Label: "Hongkong Post Root CA 1" -# Serial: 1000 -# MD5 Fingerprint: a8:0d:6f:39:78:b9:43:6d:77:42:6d:98:5a:cc:23:ca -# SHA1 Fingerprint: d6:da:a8:20:8d:09:d2:15:4d:24:b5:2f:cb:34:6e:b2:58:b2:8a:58 -# SHA256 Fingerprint: f9:e6:7d:33:6c:51:00:2a:c0:54:c6:32:02:2d:66:dd:a2:e7:e3:ff:f1:0a:d0:61:ed:31:d8:bb:b4:10:cf:b2 ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx -FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg -Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG -A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr -b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ -jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn -PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh -ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9 -nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h -q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED -MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC -mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3 -7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB -oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs -EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO -fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi -AmvZWg== ------END CERTIFICATE----- - -# Issuer: CN=SecureSign RootCA11 O=Japan Certification Services, Inc. -# Subject: CN=SecureSign RootCA11 O=Japan Certification Services, Inc. -# Label: "SecureSign RootCA11" -# Serial: 1 -# MD5 Fingerprint: b7:52:74:e2:92:b4:80:93:f2:75:e4:cc:d7:f2:ea:26 -# SHA1 Fingerprint: 3b:c4:9f:48:f8:f3:73:a0:9c:1e:bd:f8:5b:b1:c3:65:c7:d8:11:b3 -# SHA256 Fingerprint: bf:0f:ee:fb:9e:3a:58:1a:d5:f9:e9:db:75:89:98:57:43:d2:61:08:5c:4d:31:4f:6f:5d:72:59:aa:42:16:12 ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr -MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG -A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0 -MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp -Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD -QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz -i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8 -h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV -MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9 -UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni -8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC -h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD -VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB -AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm -KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ -X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr -QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5 -pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN -QSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- - -# Issuer: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. -# Subject: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. -# Label: "Microsec e-Szigno Root CA 2009" -# Serial: 14014712776195784473 -# MD5 Fingerprint: f8:49:f4:03:bc:44:2d:83:be:48:69:7d:29:64:fc:b1 -# SHA1 Fingerprint: 89:df:74:fe:5c:f4:0f:4a:80:f9:e3:37:7d:54:da:91:e1:01:31:8e -# SHA256 Fingerprint: 3c:5f:81:fe:a5:fa:b8:2c:64:bf:a2:ea:ec:af:cd:e8:e0:77:fc:86:20:a7:ca:e5:37:16:3d:f3:6e:db:f3:78 ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD -VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 -ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G -CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y -OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx -FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp -Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP -kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc -cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U -fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7 -N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC -xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1 -+rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G -A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM -Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG -SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h -mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk -ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c -2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t -HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 -# Label: "GlobalSign Root CA - R3" -# Serial: 4835703278459759426209954 -# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28 -# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad -# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G -A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp -Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 -MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG -A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 -RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT -gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm -KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd -QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ -XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o -LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU -RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp -jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK -6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX -mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs -Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH -WD9f ------END CERTIFICATE----- - -# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 -# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 -# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068" -# Serial: 6047274297262753887 -# MD5 Fingerprint: 73:3a:74:7a:ec:bb:a3:96:a6:c2:e4:e2:c8:9b:c0:c3 -# SHA1 Fingerprint: ae:c5:fb:3f:c8:e1:bf:c4:e5:4f:03:07:5a:9a:e8:00:b7:f7:b6:fa -# SHA256 Fingerprint: 04:04:80:28:bf:1f:28:64:d4:8f:9a:d4:d8:32:94:36:6a:82:88:56:55:3f:3b:14:30:3f:90:14:7f:5d:40:ef ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE -BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h -cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy -MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg -Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 -thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM -cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG -L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i -NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h -X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b -m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy -Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja -EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T -KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF -6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh -OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD -VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv -ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl -AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF -661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9 -am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1 -ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481 -PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS -3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k -SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF -3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM -ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g -StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz -Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB -jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- - -# Issuer: CN=Izenpe.com O=IZENPE S.A. -# Subject: CN=Izenpe.com O=IZENPE S.A. -# Label: "Izenpe.com" -# Serial: 917563065490389241595536686991402621 -# MD5 Fingerprint: a6:b0:cd:85:80:da:5c:50:34:a3:39:90:2f:55:67:73 -# SHA1 Fingerprint: 2f:78:3d:25:52:18:a7:4a:65:39:71:b5:2c:a2:9c:45:15:6f:e9:19 -# SHA256 Fingerprint: 25:30:cc:8e:98:32:15:02:ba:d9:6f:9b:1f:ba:1b:09:9e:2d:29:9e:0f:45:48:bb:91:4f:36:3b:c0:d4:53:1f ------BEGIN CERTIFICATE----- -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 ------END CERTIFICATE----- - -# Issuer: CN=Chambers of Commerce Root - 2008 O=AC Camerfirma S.A. -# Subject: CN=Chambers of Commerce Root - 2008 O=AC Camerfirma S.A. -# Label: "Chambers of Commerce Root - 2008" -# Serial: 11806822484801597146 -# MD5 Fingerprint: 5e:80:9e:84:5a:0e:65:0b:17:02:f3:55:18:2a:3e:d7 -# SHA1 Fingerprint: 78:6a:74:ac:76:ab:14:7f:9c:6a:30:50:ba:9e:a8:7e:fe:9a:ce:3c -# SHA256 Fingerprint: 06:3e:4a:fa:c4:91:df:d3:32:f3:08:9b:85:42:e9:46:17:d8:93:d7:fe:94:4e:10:a7:93:7e:e2:9d:96:93:c0 ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD -VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 -IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 -MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz -IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz -MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj -dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw -EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp -MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9 -28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq -VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q -DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR -5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL -ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a -Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl -UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s -+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5 -Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx -hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV -HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1 -+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN -YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t -L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy -ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt -IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV -HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w -DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW -PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF -5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1 -glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH -FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2 -pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD -xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG -tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq -jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De -fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ -d0jQ ------END CERTIFICATE----- - -# Issuer: CN=Global Chambersign Root - 2008 O=AC Camerfirma S.A. -# Subject: CN=Global Chambersign Root - 2008 O=AC Camerfirma S.A. -# Label: "Global Chambersign Root - 2008" -# Serial: 14541511773111788494 -# MD5 Fingerprint: 9e:80:ff:78:01:0c:2e:c1:36:bd:fe:96:90:6e:08:f3 -# SHA1 Fingerprint: 4a:bd:ee:ec:95:0d:35:9c:89:ae:c7:52:a1:2c:5b:29:f6:d6:aa:0c -# SHA256 Fingerprint: 13:63:35:43:93:34:a7:69:80:16:a0:d3:24:de:72:28:4e:07:9d:7b:52:20:bb:8f:bd:74:78:16:ee:be:ba:ca ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD -VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 -IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 -MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx -MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy -cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG -A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl -BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI -hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed -KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7 -G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2 -zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4 -ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG -HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2 -Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V -yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e -beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r -6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog -zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW -BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr -ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp -ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk -cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt -YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC -CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow -KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI -hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ -UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz -X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x -fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz -a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd -Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd -SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O -AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso -M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge -v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- - -# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. -# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. -# Label: "Go Daddy Root Certificate Authority - G2" -# Serial: 0 -# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01 -# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b -# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT -EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp -ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz -NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH -EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE -AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD -E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH -/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy -DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh -GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR -tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA -AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX -WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu -9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr -gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo -2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI -4uJEvlz36hz1 ------END CERTIFICATE----- - -# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Label: "Starfield Root Certificate Authority - G2" -# Serial: 0 -# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96 -# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e -# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5 ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT -HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs -ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw -MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj -aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp -Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg -nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 -HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N -Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN -dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 -HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO -BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G -CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU -sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 -4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg -8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 -mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- - -# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. -# Label: "Starfield Services Root Certificate Authority - G2" -# Serial: 0 -# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2 -# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f -# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5 ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx -EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT -HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs -ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD -VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy -ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy -dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p -OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 -8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K -Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe -hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk -6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw -DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q -AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI -bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB -ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z -qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn -0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN -sSi6 ------END CERTIFICATE----- - -# Issuer: CN=AffirmTrust Commercial O=AffirmTrust -# Subject: CN=AffirmTrust Commercial O=AffirmTrust -# Label: "AffirmTrust Commercial" -# Serial: 8608355977964138876 -# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7 -# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7 -# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7 ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE -BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz -dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL -MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp -cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP -Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr -ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL -MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 -yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr -VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ -nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ -KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG -XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj -vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt -Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g -N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC -nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= ------END CERTIFICATE----- - -# Issuer: CN=AffirmTrust Networking O=AffirmTrust -# Subject: CN=AffirmTrust Networking O=AffirmTrust -# Label: "AffirmTrust Networking" -# Serial: 8957382827206547757 -# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f -# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f -# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE -BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz -dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL -MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp -cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y -YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua -kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL -QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp -6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG -yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i -QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ -KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO -tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu -QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ -Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u -olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 -x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= ------END CERTIFICATE----- - -# Issuer: CN=AffirmTrust Premium O=AffirmTrust -# Subject: CN=AffirmTrust Premium O=AffirmTrust -# Label: "AffirmTrust Premium" -# Serial: 7893706540734352110 -# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57 -# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27 -# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE -BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz -dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG -A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U -cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf -qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ -JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ -+jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS -s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 -HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 -70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG -V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S -qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S -5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia -C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX -OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE -FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ -BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 -KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg -Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B -8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ -MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc -0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ -u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF -u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH -YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 -GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO -RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e -KeC2uAloGRwYQw== ------END CERTIFICATE----- - -# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust -# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust -# Label: "AffirmTrust Premium ECC" -# Serial: 8401224907861490260 -# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d -# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb -# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23 ------BEGIN CERTIFICATE----- -MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC -VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ -cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ -BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt -VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D -0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9 -ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G -A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G -A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs -aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I -flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== ------END CERTIFICATE----- - -# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Label: "Certum Trusted Network CA" -# Serial: 279744 -# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78 -# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e -# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM -MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D -ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU -cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3 -WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg -Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw -IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH -UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM -TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU -BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM -kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x -AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV -HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y -sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL -I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8 -J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY -VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- - -# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA -# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA -# Label: "TWCA Root Certification Authority" -# Serial: 1 -# MD5 Fingerprint: aa:08:8f:f6:f9:7b:b7:f2:b1:a7:1e:9b:ea:ea:bd:79 -# SHA1 Fingerprint: cf:9e:87:6d:d3:eb:fc:42:26:97:a3:b5:a3:7a:a0:76:a9:06:23:48 -# SHA256 Fingerprint: bf:d8:8f:e1:10:1c:41:ae:3e:80:1b:f8:be:56:35:0e:e9:ba:d1:a6:b9:bd:51:5e:dc:5c:6d:5b:87:11:ac:44 ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES -MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU -V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz -WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO -LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE -AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH -K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX -RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z -rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx -3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq -hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC -MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls -XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D -lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn -aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ -YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- - -# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 -# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 -# Label: "Security Communication RootCA2" -# Serial: 0 -# MD5 Fingerprint: 6c:39:7d:a4:0e:55:59:b2:3f:d6:41:b1:12:50:de:43 -# SHA1 Fingerprint: 5f:3b:8c:f2:f8:10:b3:7d:78:b4:ce:ec:19:19:c3:73:34:b9:c7:74 -# SHA256 Fingerprint: 51:3b:2c:ec:b8:10:d4:cd:e5:dd:85:39:1a:df:c6:c2:dd:60:d8:7b:b7:36:d2:b5:21:48:4a:a4:7a:0e:be:f6 ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl -MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe -U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX -DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy -dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj -YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV -OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr -zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM -VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ -hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO -ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw -awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs -OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF -coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc -okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8 -t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy -1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/ -SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- - -# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2011 O=Hellenic Academic and Research Institutions Cert. Authority -# Subject: CN=Hellenic Academic and Research Institutions RootCA 2011 O=Hellenic Academic and Research Institutions Cert. Authority -# Label: "Hellenic Academic and Research Institutions RootCA 2011" -# Serial: 0 -# MD5 Fingerprint: 73:9f:4c:4b:73:5b:79:e9:fa:ba:1c:ef:6e:cb:d5:c9 -# SHA1 Fingerprint: fe:45:65:9b:79:03:5b:98:a1:61:b5:51:2e:ac:da:58:09:48:22:4d -# SHA256 Fingerprint: bc:10:4f:15:a4:8b:e7:09:dc:a5:42:a7:e1:d4:b9:df:6f:05:45:27:e8:02:ea:a9:2d:59:54:44:25:8a:fe:71 ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix -RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 -dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p -YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw -NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK -EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl -cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz -dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ -fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns -bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD -75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP -FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV -HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp -5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu -b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA -A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p -6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7 -dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys -Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI -l7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - -# Issuer: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 -# Subject: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 -# Label: "Actalis Authentication Root CA" -# Serial: 6271844772424770508 -# MD5 Fingerprint: 69:c1:0d:4f:07:a3:1b:c3:fe:56:3d:04:bc:11:f6:a6 -# SHA1 Fingerprint: f3:73:b3:87:06:5a:28:84:8a:f2:f3:4a:ce:19:2b:dd:c7:8e:9c:ac -# SHA256 Fingerprint: 55:92:60:84:ec:96:3a:64:b9:6e:2a:be:01:ce:0b:a8:6a:64:fb:fe:bc:c7:aa:b5:af:c1:55:b3:7f:d7:60:66 ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE -BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w -MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC -SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 -ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv -UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX -4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 -KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ -gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb -rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ -51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F -be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe -KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F -v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn -fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 -jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz -ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL -e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 -jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz -WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V -SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j -pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX -X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok -fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R -K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU -ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU -LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT -LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- - -# Issuer: O=Trustis Limited OU=Trustis FPS Root CA -# Subject: O=Trustis Limited OU=Trustis FPS Root CA -# Label: "Trustis FPS Root CA" -# Serial: 36053640375399034304724988975563710553 -# MD5 Fingerprint: 30:c9:e7:1e:6b:e6:14:eb:65:b2:16:69:20:31:67:4d -# SHA1 Fingerprint: 3b:c0:38:0b:33:c3:f6:a6:0c:86:15:22:93:d9:df:f5:4b:81:c0:04 -# SHA256 Fingerprint: c1:b4:82:99:ab:a5:20:8f:e9:63:0a:ce:55:ca:68:a0:3e:da:5a:51:9c:88:02:a0:d3:a6:73:be:8f:8e:55:7d ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF -MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL -ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx -MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc -MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+ -AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH -iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj -vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA -0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB -OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/ -BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E -FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01 -GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW -zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4 -1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE -f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F -jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN -ZetX2fNXlrtIzYE= ------END CERTIFICATE----- - -# Issuer: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 -# Subject: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 -# Label: "Buypass Class 2 Root CA" -# Serial: 2 -# MD5 Fingerprint: 46:a7:d2:fe:45:fb:64:5a:a8:59:90:9b:78:44:9b:29 -# SHA1 Fingerprint: 49:0a:75:74:de:87:0a:47:fe:58:ee:f6:c7:6b:eb:c6:0b:12:40:99 -# SHA256 Fingerprint: 9a:11:40:25:19:7c:5b:b9:5d:94:e6:3d:55:cd:43:79:08:47:b6:46:b2:3c:df:11:ad:a4:a0:0e:ff:15:fb:48 ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg -Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow -TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw -HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr -6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV -L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91 -1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx -MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ -QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB -arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr -Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi -FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS -P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN -9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP -AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz -uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h -9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t -OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo -+fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7 -KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2 -DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us -H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ -I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7 -5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h -3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz -Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA= ------END CERTIFICATE----- - -# Issuer: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 -# Subject: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 -# Label: "Buypass Class 3 Root CA" -# Serial: 2 -# MD5 Fingerprint: 3d:3b:18:9e:2c:64:5a:e8:d5:88:ce:0e:f9:37:c2:ec -# SHA1 Fingerprint: da:fa:f7:fa:66:84:ec:06:8f:14:50:bd:c7:c2:81:a5:bc:a9:64:57 -# SHA256 Fingerprint: ed:f7:eb:bc:a2:7a:2a:38:4d:38:7b:7d:40:10:c6:66:e2:ed:b4:84:3e:4c:29:b4:ae:1d:5b:93:32:e6:b2:4d ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd -MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg -Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow -TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw -HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB -BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y -ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E -N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9 -tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX -0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c -/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X -KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY -zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS -O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D -34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP -K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3 -AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv -Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj -QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS -IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2 -HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa -O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv -033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u -dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE -kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41 -3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD -u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq -4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc= ------END CERTIFICATE----- - -# Issuer: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Subject: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Label: "T-TeleSec GlobalRoot Class 3" -# Serial: 1 -# MD5 Fingerprint: ca:fb:40:a8:4e:39:92:8a:1d:fe:8e:2f:c4:27:ea:ef -# SHA1 Fingerprint: 55:a6:72:3e:cb:f2:ec:cd:c3:23:74:70:19:9d:2a:be:11:e3:81:d1 -# SHA256 Fingerprint: fd:73:da:d3:1c:64:4f:f1:b4:3b:ef:0c:cd:da:96:71:0b:9c:d9:87:5e:ca:7e:31:70:7a:f3:e9:6d:52:2b:bd ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx -KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd -BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl -YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1 -OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy -aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 -ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN -8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/ -RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4 -hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5 -ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM -EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1 -A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy -WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ -1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30 -6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT -91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p -TpPDpFQUWw== ------END CERTIFICATE----- - -# Issuer: CN=EE Certification Centre Root CA O=AS Sertifitseerimiskeskus -# Subject: CN=EE Certification Centre Root CA O=AS Sertifitseerimiskeskus -# Label: "EE Certification Centre Root CA" -# Serial: 112324828676200291871926431888494945866 -# MD5 Fingerprint: 43:5e:88:d4:7d:1a:4a:7e:fd:84:2e:52:eb:01:d4:6f -# SHA1 Fingerprint: c9:a8:b9:e7:55:80:5e:58:e3:53:77:a7:25:eb:af:c3:7b:27:cc:d7 -# SHA256 Fingerprint: 3e:84:ba:43:42:90:85:16:e7:75:73:c0:99:2f:09:79:ca:08:4e:46:85:68:1f:f1:95:cc:ba:8a:22:9b:8a:76 ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1 -MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1 -czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG -CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy -MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl -ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS -b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy -euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO -bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw -WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d -MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE -1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/ -zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB -BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF -BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV -v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG -E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u -uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW -iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v -GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH -# Subject: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH -# Label: "D-TRUST Root Class 3 CA 2 2009" -# Serial: 623603 -# MD5 Fingerprint: cd:e0:25:69:8d:47:ac:9c:89:35:90:f7:fd:51:3d:2f -# SHA1 Fingerprint: 58:e8:ab:b0:36:15:33:fb:80:f7:9b:1b:6d:29:d3:ff:8d:5f:00:f0 -# SHA256 Fingerprint: 49:e7:a4:42:ac:f0:ea:62:87:05:00:54:b5:25:64:b6:50:e4:f4:9e:42:e3:48:d6:aa:38:e0:39:e9:57:b1:c1 ------BEGIN CERTIFICATE----- -MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF -MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD -bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha -ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM -HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03 -UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42 -tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R -ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM -lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp -/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G -A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G -A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj -dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy -MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl -cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js -L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL -BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni -acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 -o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K -zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8 -PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y -Johw1+qRzT65ysCQblrGXnRl11z+o+I= ------END CERTIFICATE----- - -# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH -# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH -# Label: "D-TRUST Root Class 3 CA 2 EV 2009" -# Serial: 623604 -# MD5 Fingerprint: aa:c6:43:2c:5e:2d:cd:c4:34:c0:50:4f:11:02:4f:b6 -# SHA1 Fingerprint: 96:c9:1b:0b:95:b4:10:98:42:fa:d0:d8:22:79:fe:60:fa:b9:16:83 -# SHA256 Fingerprint: ee:c5:49:6b:98:8c:e9:86:25:b9:34:09:2e:ec:29:08:be:d0:b0:f3:16:c2:d4:73:0c:84:ea:f1:f3:d3:48:81 ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF -MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD -bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw -NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV -BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn -ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0 -3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z -qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR -p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8 -HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw -ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea -HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw -Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh -c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E -RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt -dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku -Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp -3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 -nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF -CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na -xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX -KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1 ------END CERTIFICATE----- - -# Issuer: CN=CA Disig Root R2 O=Disig a.s. -# Subject: CN=CA Disig Root R2 O=Disig a.s. -# Label: "CA Disig Root R2" -# Serial: 10572350602393338211 -# MD5 Fingerprint: 26:01:fb:d8:27:a7:17:9a:45:54:38:1a:43:01:3b:03 -# SHA1 Fingerprint: b5:61:eb:ea:a4:de:e4:25:4b:69:1a:98:a5:57:47:c2:34:c7:d9:71 -# SHA256 Fingerprint: e2:3d:4a:03:6d:7b:70:e9:f5:95:b1:42:20:79:d2:b9:1e:df:bb:1f:b6:51:a0:63:3e:aa:8a:9d:c5:f8:07:03 ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV -BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu -MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy -MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx -EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw -ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe -NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH -PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I -x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe -QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR -yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO -QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912 -H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ -QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD -i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs -nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1 -rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI -hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM -tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf -GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb -lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka -+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal -TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i -nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3 -gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr -G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os -zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x -L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL ------END CERTIFICATE----- - -# Issuer: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV -# Subject: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV -# Label: "ACCVRAIZ1" -# Serial: 6828503384748696800 -# MD5 Fingerprint: d0:a0:5a:ee:05:b6:09:94:21:a1:7d:f1:b2:29:82:02 -# SHA1 Fingerprint: 93:05:7a:88:15:c6:4f:ce:88:2f:fa:91:16:52:28:78:bc:53:64:17 -# SHA256 Fingerprint: 9a:6e:c0:12:e1:a7:da:9d:be:34:19:4d:47:8a:d7:c0:db:18:22:fb:07:1d:f1:29:81:49:6e:d1:04:38:41:13 ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE -AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw -CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ -BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND -VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb -qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY -HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo -G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA -lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr -IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ -0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH -k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 -4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO -m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa -cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl -uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI -KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls -ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG -AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT -VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG -CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA -cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA -QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA -7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA -cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA -QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA -czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu -aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt -aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud -DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF -BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp -D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU -JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m -AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD -vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms -tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH -7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA -h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF -d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H -pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- - -# Issuer: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA -# Subject: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA -# Label: "TWCA Global Root CA" -# Serial: 3262 -# MD5 Fingerprint: f9:03:7e:cf:e6:9e:3c:73:7a:2a:90:07:69:ff:2b:96 -# SHA1 Fingerprint: 9c:bb:48:53:f6:a4:f6:d3:52:a4:e8:32:52:55:60:13:f5:ad:af:65 -# SHA256 Fingerprint: 59:76:90:07:f7:68:5d:0f:cd:50:87:2f:9f:95:d5:75:5a:5b:2b:45:7d:81:f3:69:2b:61:0a:98:67:2f:0e:1b ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx -EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT -VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5 -NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT -B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF -10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz -0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh -MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH -zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc -46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2 -yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi -laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP -oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA -BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE -qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm -4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL -1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn -LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF -H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo -RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+ -nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh -15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW -6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW -nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j -wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz -aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy -KwbQBM0= ------END CERTIFICATE----- - -# Issuer: CN=TeliaSonera Root CA v1 O=TeliaSonera -# Subject: CN=TeliaSonera Root CA v1 O=TeliaSonera -# Label: "TeliaSonera Root CA v1" -# Serial: 199041966741090107964904287217786801558 -# MD5 Fingerprint: 37:41:49:1b:18:56:9a:26:f5:ad:c2:66:fb:40:a5:4c -# SHA1 Fingerprint: 43:13:bb:96:f1:d5:86:9b:c1:4e:6a:92:f6:cf:f6:34:69:87:82:37 -# SHA256 Fingerprint: dd:69:36:fe:21:f8:f0:77:c1:23:a1:a5:21:c1:22:24:f7:22:55:b7:3e:03:a7:26:06:93:e8:a2:4b:0f:a3:89 ------BEGIN CERTIFICATE----- -MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw -NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv -b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD -VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2 -MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F -VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1 -7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X -Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+ -/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs -81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm -dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe -Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu -sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4 -pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs -slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ -arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD -VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG -9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl -dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx -0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj -TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed -Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7 -Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI -OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7 -vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW -t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn -HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx -SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= ------END CERTIFICATE----- - -# Issuer: CN=E-Tugra Certification Authority O=E-Tu\u011fra EBG Bili\u015fim Teknolojileri ve Hizmetleri A.\u015e. OU=E-Tugra Sertifikasyon Merkezi -# Subject: CN=E-Tugra Certification Authority O=E-Tu\u011fra EBG Bili\u015fim Teknolojileri ve Hizmetleri A.\u015e. OU=E-Tugra Sertifikasyon Merkezi -# Label: "E-Tugra Certification Authority" -# Serial: 7667447206703254355 -# MD5 Fingerprint: b8:a1:03:63:b0:bd:21:71:70:8a:6f:13:3a:bb:79:49 -# SHA1 Fingerprint: 51:c6:e7:08:49:06:6e:f3:92:d4:5c:a0:0d:6d:a3:62:8f:c3:52:39 -# SHA256 Fingerprint: b0:bf:d5:2b:b0:d7:d9:bd:92:bf:5d:4d:c1:3d:a2:55:c0:2c:54:2f:37:83:65:ea:89:39:11:f5:5e:55:f2:3c ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV -BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC -aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV -BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1 -Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz -MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+ -BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp -em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY -B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH -D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF -Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo -q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D -k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH -fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut -dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM -ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8 -zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX -U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6 -Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5 -XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF -Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR -HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY -GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c -77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3 -+GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK -vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6 -FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl -yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P -AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD -y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d -NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- - -# Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center -# Label: "T-TeleSec GlobalRoot Class 2" -# Serial: 1 -# MD5 Fingerprint: 2b:9b:9e:e4:7b:6c:1f:00:72:1a:cc:c1:77:79:df:6a -# SHA1 Fingerprint: 59:0d:2d:7d:88:4f:40:2e:61:7e:a5:62:32:17:65:cf:17:d8:94:e9 -# SHA256 Fingerprint: 91:e2:f5:78:8d:58:10:eb:a7:ba:58:73:7d:e1:54:8a:8e:ca:cd:01:45:98:bc:0b:14:3e:04:1b:17:05:25:52 ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx -KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd -BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl -YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1 -OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy -aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 -ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd -AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC -FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi -1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq -jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ -wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/ -WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy -NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC -uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw -IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 -g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN -9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP -BSeOE6Fuwg== ------END CERTIFICATE----- - -# Issuer: CN=Atos TrustedRoot 2011 O=Atos -# Subject: CN=Atos TrustedRoot 2011 O=Atos -# Label: "Atos TrustedRoot 2011" -# Serial: 6643877497813316402 -# MD5 Fingerprint: ae:b9:c4:32:4b:ac:7f:5d:66:cc:77:94:bb:2a:77:56 -# SHA1 Fingerprint: 2b:b1:f5:3e:55:0c:1d:c5:f1:d4:e6:b7:6a:46:4b:55:06:02:ac:21 -# SHA256 Fingerprint: f3:56:be:a2:44:b7:a9:1e:b3:5d:53:ca:9a:d7:86:4a:ce:01:8e:2d:35:d5:f8:f9:6d:df:68:a6:f4:1a:a4:74 ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE -AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG -EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM -FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC -REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp -Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM -VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+ -SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ -4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L -cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi -eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG -A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3 -DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j -vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP -DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc -maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D -lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv -KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 1 G3" -# Serial: 687049649626669250736271037606554624078720034195 -# MD5 Fingerprint: a4:bc:5b:3f:fe:37:9a:fa:64:f0:e2:fa:05:3d:0b:ab -# SHA1 Fingerprint: 1b:8e:ea:57:96:29:1a:c9:39:ea:b8:0a:81:1a:73:73:c0:93:79:67 -# SHA256 Fingerprint: 8a:86:6f:d1:b2:76:b5:7e:57:8e:92:1c:65:82:8a:2b:ed:58:e9:f2:f2:88:05:41:34:b7:f1:f4:bf:c9:cc:74 ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00 -MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV -wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe -rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341 -68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh -4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp -UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o -abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc -3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G -KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt -hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO -Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt -zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD -ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC -MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2 -cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN -qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5 -YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv -b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2 -8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k -NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj -ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp -q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt -nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 2 G3" -# Serial: 390156079458959257446133169266079962026824725800 -# MD5 Fingerprint: af:0c:86:6e:bf:40:2d:7f:0b:3e:12:50:ba:12:3d:06 -# SHA1 Fingerprint: 09:3c:61:f3:8b:8b:dc:7d:55:df:75:38:02:05:00:e1:25:f5:c8:36 -# SHA256 Fingerprint: 8f:e4:fb:0a:f9:3a:4d:0d:67:db:0b:eb:b2:3e:37:c7:1b:f3:25:dc:bc:dd:24:0e:a0:4d:af:58:b4:7e:18:40 ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00 -MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf -qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW -n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym -c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+ -O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1 -o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j -IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq -IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz -8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh -vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l -7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG -cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD -ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 -AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC -roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga -W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n -lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE -+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV -csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd -dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg -KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM -HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4 -WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M ------END CERTIFICATE----- - -# Issuer: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited -# Subject: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited -# Label: "QuoVadis Root CA 3 G3" -# Serial: 268090761170461462463995952157327242137089239581 -# MD5 Fingerprint: df:7d:b9:ad:54:6f:68:a1:df:89:57:03:97:43:b0:d7 -# SHA1 Fingerprint: 48:12:bd:92:3c:a8:c4:39:06:e7:30:6d:27:96:e6:a4:cf:22:2e:7d -# SHA256 Fingerprint: 88:ef:81:de:20:2e:b0:18:45:2e:43:f8:64:72:5c:ea:5f:bd:1f:c2:d9:d2:05:73:07:09:c5:d8:b8:69:0f:46 ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL -BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc -BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00 -MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR -/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu -FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR -U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c -ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR -FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k -A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw -eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl -sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp -VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q -A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ -ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD -ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px -KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI -FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv -oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg -u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP -0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf -3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl -8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+ -DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN -PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ -ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0 ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Assured ID Root G2" -# Serial: 15385348160840213938643033620894905419 -# MD5 Fingerprint: 92:38:b9:f8:63:24:82:65:2c:57:33:e6:fe:81:8f:9d -# SHA1 Fingerprint: a1:4b:48:d9:43:ee:0a:0e:40:90:4f:3c:e0:a4:c0:91:93:51:5d:3f -# SHA256 Fingerprint: 7d:05:eb:b6:82:33:9f:8c:94:51:ee:09:4e:eb:fe:fa:79:53:a1:14:ed:b2:f4:49:49:45:2f:ab:7d:2f:c1:85 ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA -n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc -biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp -EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA -bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu -YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW -BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI -QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I -0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni -lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9 -B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv -ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo -IhNzbM8m9Yop5w== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Assured ID Root G3" -# Serial: 15459312981008553731928384953135426796 -# MD5 Fingerprint: 7c:7f:65:31:0c:81:df:8d:ba:3e:99:e2:5c:ad:6e:fb -# SHA1 Fingerprint: f5:17:a2:4f:9a:48:c6:c9:f8:a2:00:26:9f:dc:0f:48:2c:ab:30:89 -# SHA256 Fingerprint: 7e:37:cb:8b:4c:47:09:0c:ab:36:55:1b:a6:f4:5d:b8:40:68:0f:ba:16:6a:95:2d:b1:00:71:7f:43:05:3f:c2 ------BEGIN CERTIFICATE----- -MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw -CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu -ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg -RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu -Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf -Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q -RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ -BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD -AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY -JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv -6pZjamVFkpUBtA== ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Global Root G2" -# Serial: 4293743540046975378534879503202253541 -# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44 -# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4 -# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f ------BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH -MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT -MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j -b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI -2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx -1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ -q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz -tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ -vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV -5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY -1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 -NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG -Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 -8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe -pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl -MrY= ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Global Root G3" -# Serial: 7089244469030293291760083333884364146 -# MD5 Fingerprint: f5:5d:a4:50:a5:fb:28:7e:1e:0f:0d:cc:96:57:56:ca -# SHA1 Fingerprint: 7e:04:de:89:6a:3e:66:6d:00:e6:87:d3:3f:fa:d9:3b:e8:3d:34:9e -# SHA256 Fingerprint: 31:ad:66:48:f8:10:41:38:c7:38:f3:9e:a4:32:01:33:39:3e:3a:18:cc:02:29:6e:f9:7c:2a:c9:ef:67:31:d0 ------BEGIN CERTIFICATE----- -MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw -CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu -ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe -Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw -EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x -IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF -K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG -fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO -Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd -BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx -AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/ -oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8 -sycX ------END CERTIFICATE----- - -# Issuer: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com -# Subject: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com -# Label: "DigiCert Trusted Root G4" -# Serial: 7451500558977370777930084869016614236 -# MD5 Fingerprint: 78:f2:fc:aa:60:1f:2f:b4:eb:c9:37:ba:53:2e:75:49 -# SHA1 Fingerprint: dd:fb:16:cd:49:31:c9:73:a2:03:7d:3f:c8:3a:4d:7d:77:5d:05:e4 -# SHA256 Fingerprint: 55:2f:7b:dc:f1:a7:af:9e:6c:e6:72:01:7f:4f:12:ab:f7:72:40:c7:8e:76:1a:c2:03:d1:d9:d2:0a:c8:99:88 ------BEGIN CERTIFICATE----- -MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg -RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu -Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y -ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If -xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV -ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO -DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ -jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ -CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi -EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM -fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY -uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK -chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t -9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB -hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD -ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 -SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd -+SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc -fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa -sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N -cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N -0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie -4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI -r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 -/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm -gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ ------END CERTIFICATE----- - -# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited -# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited -# Label: "COMODO RSA Certification Authority" -# Serial: 101909084537582093308941363524873193117 -# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18 -# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4 -# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34 ------BEGIN CERTIFICATE----- -MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB -hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV -BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5 -MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT -EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR -6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X -pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC -9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV -/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf -Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z -+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w -qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah -SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC -u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf -Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq -crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E -FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB -/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl -wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM -4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV -2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna -FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ -CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK -boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke -jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL -S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb -QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl -0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB -NVOFBkpdn627G190 ------END CERTIFICATE----- - -# Issuer: CN=USERTrust RSA Certification Authority O=The USERTRUST Network -# Subject: CN=USERTrust RSA Certification Authority O=The USERTRUST Network -# Label: "USERTrust RSA Certification Authority" -# Serial: 2645093764781058787591871645665788717 -# MD5 Fingerprint: 1b:fe:69:d1:91:b7:19:33:a3:72:a8:0f:e1:55:e5:b5 -# SHA1 Fingerprint: 2b:8f:1b:57:33:0d:bb:a2:d0:7a:6c:51:f7:0e:e9:0d:da:b9:ad:8e -# SHA256 Fingerprint: e7:93:c9:b0:2f:d8:aa:13:e2:1c:31:22:8a:cc:b0:81:19:64:3b:74:9c:89:89:64:b1:74:6d:46:c3:d4:cb:d2 ------BEGIN CERTIFICATE----- -MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB -iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl -cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV -BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw -MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV -BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy -dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK -AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B -3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY -tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/ -Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2 -VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT -79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6 -c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT -Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l -c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee -UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE -Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd -BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G -A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF -Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO -VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3 -ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs -8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR -iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze -Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ -XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/ -qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB -VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB -L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG -jjxDah2nGN59PRbxYvnKkKj9 ------END CERTIFICATE----- - -# Issuer: CN=USERTrust ECC Certification Authority O=The USERTRUST Network -# Subject: CN=USERTrust ECC Certification Authority O=The USERTRUST Network -# Label: "USERTrust ECC Certification Authority" -# Serial: 123013823720199481456569720443997572134 -# MD5 Fingerprint: fa:68:bc:d9:b5:7f:ad:fd:c9:1d:06:83:28:cc:24:c1 -# SHA1 Fingerprint: d1:cb:ca:5d:b2:d5:2a:7f:69:3b:67:4d:e5:f0:5a:1d:0c:95:7d:f0 -# SHA256 Fingerprint: 4f:f4:60:d5:4b:9c:86:da:bf:bc:fc:57:12:e0:40:0d:2b:ed:3f:bc:4d:4f:bd:aa:86:e0:6a:dc:d2:a9:ad:7a ------BEGIN CERTIFICATE----- -MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl -eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT -JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx -MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT -Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg -VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm -aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo -I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng -o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G -A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB -zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW -RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 -# Label: "GlobalSign ECC Root CA - R4" -# Serial: 14367148294922964480859022125800977897474 -# MD5 Fingerprint: 20:f0:27:68:d1:7e:a0:9d:0e:e6:2a:ca:df:5c:89:8e -# SHA1 Fingerprint: 69:69:56:2e:40:80:f4:24:a1:e7:19:9f:14:ba:f3:ee:58:ab:6a:bb -# SHA256 Fingerprint: be:c9:49:11:c2:95:56:76:db:6c:0a:55:09:86:d7:6e:3b:a0:05:66:7c:44:2c:97:62:b4:fb:b7:73:de:22:8c ------BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ -FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw -DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F -uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX -kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs -ewv4n4Q= ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 -# Label: "GlobalSign ECC Root CA - R5" -# Serial: 32785792099990507226680698011560947931244 -# MD5 Fingerprint: 9f:ad:3b:1c:02:1e:8a:ba:17:74:38:81:0c:a2:bc:08 -# SHA1 Fingerprint: 1f:24:c6:30:cd:a4:18:ef:20:69:ff:ad:4f:dd:5f:46:3a:1b:69:aa -# SHA256 Fingerprint: 17:9f:bc:14:8a:3d:d0:0f:d2:4e:a1:34:58:cc:43:bf:a7:f5:9c:81:82:d7:83:a5:13:f6:eb:ec:10:0c:89:24 ------BEGIN CERTIFICATE----- -MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk -MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH -bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX -DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD -QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu -MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc -8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke -hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI -KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg -515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO -xwy8p2Fp8fc74SrL+SvzZpA3 ------END CERTIFICATE----- - -# Issuer: CN=Staat der Nederlanden Root CA - G3 O=Staat der Nederlanden -# Subject: CN=Staat der Nederlanden Root CA - G3 O=Staat der Nederlanden -# Label: "Staat der Nederlanden Root CA - G3" -# Serial: 10003001 -# MD5 Fingerprint: 0b:46:67:07:db:10:2f:19:8c:35:50:60:d1:0b:f4:37 -# SHA1 Fingerprint: d8:eb:6b:41:51:92:59:e0:f3:e7:85:00:c0:3d:b6:88:97:c9:ee:fc -# SHA256 Fingerprint: 3c:4f:b0:b9:5a:b8:b3:00:32:f4:32:b8:6f:53:5f:e1:72:c1:85:d0:fd:39:86:58:37:cf:36:18:7f:a6:f4:28 ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX -DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl -ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv -b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP -cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW -IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX -xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy -KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR -9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az -5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8 -6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7 -Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP -bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt -BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt -XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF -MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd -INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD -U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp -LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8 -Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp -gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh -/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw -0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A -fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq -4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR -1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/ -QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM -94B7IWcnMFk= ------END CERTIFICATE----- - -# Issuer: CN=Staat der Nederlanden EV Root CA O=Staat der Nederlanden -# Subject: CN=Staat der Nederlanden EV Root CA O=Staat der Nederlanden -# Label: "Staat der Nederlanden EV Root CA" -# Serial: 10000013 -# MD5 Fingerprint: fc:06:af:7b:e8:1a:f1:9a:b4:e8:d2:70:1f:c0:f5:ba -# SHA1 Fingerprint: 76:e2:7e:c1:4f:db:82:c1:c0:a6:75:b5:05:be:3d:29:b4:ed:db:bb -# SHA256 Fingerprint: 4d:24:91:41:4c:fe:95:67:46:ec:4c:ef:a6:cf:6f:72:e2:8a:13:29:43:2f:9d:8a:90:7a:c4:cb:5d:ad:c1:5a ------BEGIN CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO -TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh -dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y -MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg -TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS -b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS -M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC -UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d -Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p -rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l -pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb -j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC -KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS -/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X -cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH -1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP -px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7 -MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u -2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS -v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC -wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy -CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e -vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6 -Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa -Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL -eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8 -FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc -7uzXLg== ------END CERTIFICATE----- - -# Issuer: CN=IdenTrust Commercial Root CA 1 O=IdenTrust -# Subject: CN=IdenTrust Commercial Root CA 1 O=IdenTrust -# Label: "IdenTrust Commercial Root CA 1" -# Serial: 13298821034946342390520003877796839426 -# MD5 Fingerprint: b3:3e:77:73:75:ee:a0:d3:e3:7e:49:63:49:59:bb:c7 -# SHA1 Fingerprint: df:71:7e:aa:4a:d9:4e:c9:55:84:99:60:2d:48:de:5f:bc:f0:3a:25 -# SHA256 Fingerprint: 5d:56:49:9b:e4:d2:e0:8b:cf:ca:d0:8a:3e:38:72:3d:50:50:3b:de:70:69:48:e4:2f:55:60:30:19:e5:28:ae ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu -VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw -MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw -JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT -3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU -+ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp -S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1 -bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi -T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL -vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK -Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK -dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT -c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv -l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N -iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD -ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH -6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt -LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93 -nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3 -+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK -W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT -AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq -l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG -4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ -mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A -7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H ------END CERTIFICATE----- - -# Issuer: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust -# Subject: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust -# Label: "IdenTrust Public Sector Root CA 1" -# Serial: 13298821034946342390521976156843933698 -# MD5 Fingerprint: 37:06:a5:b0:fc:89:9d:ba:f4:6b:8c:1a:64:cd:d5:ba -# SHA1 Fingerprint: ba:29:41:60:77:98:3f:f4:f3:ef:f2:31:05:3b:2e:ea:6d:4d:45:fd -# SHA256 Fingerprint: 30:d0:89:5a:9a:44:8a:26:20:91:63:55:22:d1:f5:20:10:b5:86:7a:ca:e1:2c:78:ef:95:8f:d4:f4:38:9f:2f ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN -MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu -VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN -MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0 -MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7 -ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy -RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS -bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF -/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R -3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw -EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy -9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V -GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ -2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV -WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD -W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN -AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj -t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV -DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9 -TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G -lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW -mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df -WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5 -+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ -tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA -GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv -8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c ------END CERTIFICATE----- - -# Issuer: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only -# Subject: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only -# Label: "Entrust Root Certification Authority - G2" -# Serial: 1246989352 -# MD5 Fingerprint: 4b:e2:c9:91:96:65:0c:f4:0e:5a:93:92:a0:0a:fe:b2 -# SHA1 Fingerprint: 8c:f4:27:fd:79:0c:3a:d1:66:06:8d:e8:1e:57:ef:bb:93:22:72:d4 -# SHA256 Fingerprint: 43:df:57:74:b0:3e:7f:ef:5f:e4:0d:93:1a:7b:ed:f1:bb:2e:6b:42:73:8c:4e:6d:38:41:10:3d:3a:a7:f3:39 ------BEGIN CERTIFICATE----- -MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50 -cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs -IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz -dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy -NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu -dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt -dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0 -aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T -RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN -cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW -wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1 -U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0 -jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN -BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/ -jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ -Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v -1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R -nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH -VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g== ------END CERTIFICATE----- - -# Issuer: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only -# Subject: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only -# Label: "Entrust Root Certification Authority - EC1" -# Serial: 51543124481930649114116133369 -# MD5 Fingerprint: b6:7e:1d:f0:58:c5:49:6c:24:3b:3d:ed:98:18:ed:bc -# SHA1 Fingerprint: 20:d8:06:40:df:9b:25:f5:12:25:3a:11:ea:f7:59:8a:eb:14:b5:47 -# SHA256 Fingerprint: 02:ed:0e:b2:8c:14:da:45:16:5c:56:67:91:70:0d:64:51:d7:fb:56:f0:b2:ab:1d:3b:8e:b0:70:e5:6e:df:f5 ------BEGIN CERTIFICATE----- -MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG -A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3 -d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu -dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq -RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy -MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD -VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 -L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g -Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi -A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt -ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH -Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O -BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC -R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX -hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G ------END CERTIFICATE----- - -# Issuer: CN=CFCA EV ROOT O=China Financial Certification Authority -# Subject: CN=CFCA EV ROOT O=China Financial Certification Authority -# Label: "CFCA EV ROOT" -# Serial: 407555286 -# MD5 Fingerprint: 74:e1:b6:ed:26:7a:7a:44:30:33:94:ab:7b:27:81:30 -# SHA1 Fingerprint: e2:b8:29:4b:55:84:ab:6b:58:c2:90:46:6c:ac:3f:b8:39:8f:84:83 -# SHA256 Fingerprint: 5c:c3:d7:8e:4e:1d:5e:45:54:7a:04:e6:87:3e:64:f9:0c:f9:53:6d:1c:cc:2e:f8:00:f3:55:c4:c5:fd:70:fd ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD -TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y -aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx -MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j -aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP -T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03 -sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL -TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5 -/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp -7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz -EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt -hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP -a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot -aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg -TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV -PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv -cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL -tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd -BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB -ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT -ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL -jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS -ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy -P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19 -xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d -Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN -5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe -/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z -AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ -5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su ------END CERTIFICATE----- - -# Issuer: CN=Certinomis - Root CA O=Certinomis OU=0002 433998903 -# Subject: CN=Certinomis - Root CA O=Certinomis OU=0002 433998903 -# Label: "Certinomis - Root CA" -# Serial: 1 -# MD5 Fingerprint: 14:0a:fd:8d:a8:28:b5:38:69:db:56:7e:61:22:03:3f -# SHA1 Fingerprint: 9d:70:bb:01:a5:a4:a0:18:11:2e:f7:1c:01:b9:32:c5:34:e7:88:a8 -# SHA256 Fingerprint: 2a:99:f5:bc:11:74:b7:3c:bb:1d:62:08:84:e0:1c:34:e5:1c:cb:39:78:da:12:5f:0e:33:26:88:83:bf:41:58 ------BEGIN CERTIFICATE----- -MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjET -MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAb -BgNVBAMTFENlcnRpbm9taXMgLSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMz -MTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMx -FzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRDZXJ0aW5vbWlzIC0g -Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQosP5L2 -fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJfl -LieY6pOod5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQV -WZUKxkd8aRi5pwP5ynapz8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDF -TKWrteoB4owuZH9kb/2jJZOLyKIOSY008B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb -5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09xRLWtwHkziOC/7aOgFLSc -CbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE6OXWk6Ri -wsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJ -wx3tFvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SG -m/lg0h9tkQPTYKbVPZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4 -F2iw4lNVYC2vPsKD2NkJK/DAZNuHi5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZng -WVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I6tNxIqSSaHh0 -2TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF -AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/ -0KGRHCwPT5iVWVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWw -F6YSjNRieOpWauwK0kDDPAUwPk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZS -g081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAXlCOotQqSD7J6wWAsOMwaplv/8gzj -qh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJy29SWwNyhlCVCNSN -h4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9Iff/ -ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8V -btaw5BngDwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwj -Y/M50n92Uaf0yKHxDHYiI0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ -8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW -gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE= ------END CERTIFICATE----- - -# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed -# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed -# Label: "OISTE WISeKey Global Root GB CA" -# Serial: 157768595616588414422159278966750757568 -# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d -# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed -# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6 ------BEGIN CERTIFICATE----- -MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt -MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg -Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i -YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x -CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG -b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh -bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3 -HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx -WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX -1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk -u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P -99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r -M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB -BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh -cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5 -gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO -ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf -aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic -Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= ------END CERTIFICATE----- - -# Issuer: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. -# Subject: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. -# Label: "SZAFIR ROOT CA2" -# Serial: 357043034767186914217277344587386743377558296292 -# MD5 Fingerprint: 11:64:c1:89:b0:24:b1:8c:b1:07:7e:89:9e:51:9e:99 -# SHA1 Fingerprint: e2:52:fa:95:3f:ed:db:24:60:bd:6e:28:f3:9c:cc:cf:5e:b3:3f:de -# SHA256 Fingerprint: a1:33:9d:33:28:1a:0b:56:e5:57:d3:d3:2b:1c:e7:f9:36:7e:b0:94:bd:5f:a7:2a:7e:50:04:c8:de:d7:ca:fe ------BEGIN CERTIFICATE----- -MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL -BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6 -ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw -NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L -cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg -Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN -QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT -3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw -3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6 -3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5 -BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN -XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD -AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF -AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw -8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG -nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP -oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy -d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg -LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== ------END CERTIFICATE----- - -# Issuer: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Subject: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority -# Label: "Certum Trusted Network CA 2" -# Serial: 44979900017204383099463764357512596969 -# MD5 Fingerprint: 6d:46:9e:d9:25:6d:08:23:5b:5e:74:7d:1e:27:db:f2 -# SHA1 Fingerprint: d3:dd:48:3e:2b:bf:4c:05:e8:af:10:f5:fa:76:26:cf:d3:dc:30:92 -# SHA256 Fingerprint: b6:76:f2:ed:da:e8:77:5c:d3:6c:b0:f6:3c:d1:d4:60:39:61:f4:9e:62:65:ba:01:3a:2f:03:07:b6:d0:b8:04 ------BEGIN CERTIFICATE----- -MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB -gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu -QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG -A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz -OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ -VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3 -b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA -DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn -0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB -OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE -fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E -Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m -o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i -sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW -OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez -Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS -adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n -3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ -F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf -CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29 -XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm -djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/ -WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb -AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq -P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko -b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj -XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P -5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi -DrW5viSP ------END CERTIFICATE----- - -# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Label: "Hellenic Academic and Research Institutions RootCA 2015" -# Serial: 0 -# MD5 Fingerprint: ca:ff:e2:db:03:d9:cb:4b:e9:0f:ad:84:fd:7b:18:ce -# SHA1 Fingerprint: 01:0c:06:95:a6:98:19:14:ff:bf:5f:c6:b0:b6:95:ea:29:e9:12:a6 -# SHA256 Fingerprint: a0:40:92:9a:02:ce:53:b4:ac:f4:f2:ff:c6:98:1c:e4:49:6f:75:5e:6d:45:fe:0b:2a:69:2b:cd:52:52:3f:36 ------BEGIN CERTIFICATE----- -MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix -DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k -IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT -N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v -dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG -A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh -ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx -QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 -dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA -4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0 -AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10 -4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C -ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV -9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD -gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6 -Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq -NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko -LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc -Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd -ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I -XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI -M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot -9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V -Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea -j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh -X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ -l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf -bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4 -pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK -e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0 -vm9qp/UsQu0yrbYhnr68 ------END CERTIFICATE----- - -# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority -# Label: "Hellenic Academic and Research Institutions ECC RootCA 2015" -# Serial: 0 -# MD5 Fingerprint: 81:e5:b4:17:eb:c2:f5:e1:4b:0d:41:7b:49:92:fe:ef -# SHA1 Fingerprint: 9f:f1:71:8d:92:d5:9a:f3:7d:74:97:b4:bc:6f:84:68:0b:ba:b6:66 -# SHA256 Fingerprint: 44:b5:45:aa:8a:25:e6:5a:73:ca:15:dc:27:fc:36:d2:4c:1c:b9:95:3a:06:65:39:b1:15:82:dc:48:7b:48:33 ------BEGIN CERTIFICATE----- -MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN -BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl -c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl -bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv -b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ -BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj -YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5 -MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0 -dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg -QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa -jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi -C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep -lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof -TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR ------END CERTIFICATE----- - -# Issuer: CN=ISRG Root X1 O=Internet Security Research Group -# Subject: CN=ISRG Root X1 O=Internet Security Research Group -# Label: "ISRG Root X1" -# Serial: 172886928669790476064670243504169061120 -# MD5 Fingerprint: 0c:d2:f9:e0:da:17:73:e9:ed:86:4d:a5:e3:70:e7:4e -# SHA1 Fingerprint: ca:bd:2a:79:a1:07:6a:31:f2:1d:25:36:35:cb:03:9d:43:29:a5:e8 -# SHA256 Fingerprint: 96:bc:ec:06:26:49:76:f3:74:60:77:9a:cf:28:c5:a7:cf:e8:a3:c0:aa:e1:1a:8f:fc:ee:05:c0:bd:df:08:c6 ------BEGIN CERTIFICATE----- -MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw -TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh -cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 -WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu -ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY -MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc -h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ -0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U -A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW -T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH -B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC -B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv -KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn -OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn -jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw -qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI -rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq -hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL -ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ -3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK -NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 -ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur -TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC -jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc -oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq -4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA -mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d -emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= ------END CERTIFICATE----- - -# Issuer: O=FNMT-RCM OU=AC RAIZ FNMT-RCM -# Subject: O=FNMT-RCM OU=AC RAIZ FNMT-RCM -# Label: "AC RAIZ FNMT-RCM" -# Serial: 485876308206448804701554682760554759 -# MD5 Fingerprint: e2:09:04:b4:d3:bd:d1:a0:14:fd:1a:d2:47:c4:57:1d -# SHA1 Fingerprint: ec:50:35:07:b2:15:c4:95:62:19:e2:a8:9a:5b:42:99:2c:4c:2c:20 -# SHA256 Fingerprint: eb:c5:57:0c:29:01:8c:4d:67:b1:aa:12:7b:af:12:f7:03:b4:61:1e:bc:17:b7:da:b5:57:38:94:17:9b:93:fa ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx -CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ -WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ -BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG -Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/ -yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf -BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz -WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF -tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z -374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC -IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL -mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7 -wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS -MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2 -ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet -UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H -YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 -LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD -nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1 -RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM -LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf -77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N -JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm -fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp -6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp -1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B -9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok -RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv -uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 1 O=Amazon -# Subject: CN=Amazon Root CA 1 O=Amazon -# Label: "Amazon Root CA 1" -# Serial: 143266978916655856878034712317230054538369994 -# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6 -# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16 -# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e ------BEGIN CERTIFICATE----- -MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF -ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 -b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL -MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv -b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj -ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM -9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw -IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6 -VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L -93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm -jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA -A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI -U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs -N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv -o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU -5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy -rqXRfboQnoZsG4q5WTP468SQvvG5 ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 2 O=Amazon -# Subject: CN=Amazon Root CA 2 O=Amazon -# Label: "Amazon Root CA 2" -# Serial: 143266982885963551818349160658925006970653239 -# MD5 Fingerprint: c8:e5:8d:ce:a8:42:e2:7a:c0:2a:5c:7c:9e:26:bf:66 -# SHA1 Fingerprint: 5a:8c:ef:45:d7:a6:98:59:76:7a:8c:8b:44:96:b5:78:cf:47:4b:1a -# SHA256 Fingerprint: 1b:a5:b2:aa:8c:65:40:1a:82:96:01:18:f8:0b:ec:4f:62:30:4d:83:ce:c4:71:3a:19:c3:9c:01:1e:a4:6d:b4 ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF -ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 -b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL -MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv -b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK -gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ -W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg -1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K -8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r -2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me -z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR -8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj -mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz -7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6 -+XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI -0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB -Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm -UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2 -LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY -+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS -k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl -7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm -btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl -urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+ -fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63 -n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE -76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H -9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT -4PsJYGw= ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 3 O=Amazon -# Subject: CN=Amazon Root CA 3 O=Amazon -# Label: "Amazon Root CA 3" -# Serial: 143266986699090766294700635381230934788665930 -# MD5 Fingerprint: a0:d4:ef:0b:f7:b5:d8:49:95:2a:ec:f5:c4:fc:81:87 -# SHA1 Fingerprint: 0d:44:dd:8c:3c:8c:1a:1a:58:75:64:81:e9:0f:2e:2a:ff:b3:d2:6e -# SHA256 Fingerprint: 18:ce:6c:fe:7b:f1:4e:60:b2:e3:47:b8:df:e8:68:cb:31:d0:2e:bb:3a:da:27:15:69:f5:03:43:b4:6d:b3:a4 ------BEGIN CERTIFICATE----- -MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5 -MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g -Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG -A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg -Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl -ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j -QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr -ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr -BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM -YyRIHN8wfdVoOw== ------END CERTIFICATE----- - -# Issuer: CN=Amazon Root CA 4 O=Amazon -# Subject: CN=Amazon Root CA 4 O=Amazon -# Label: "Amazon Root CA 4" -# Serial: 143266989758080763974105200630763877849284878 -# MD5 Fingerprint: 89:bc:27:d5:eb:17:8d:06:6a:69:d5:fd:89:47:b4:cd -# SHA1 Fingerprint: f6:10:84:07:d6:f8:bb:67:98:0c:c2:e2:44:c2:eb:ae:1c:ef:63:be -# SHA256 Fingerprint: e3:5d:28:41:9e:d0:20:25:cf:a6:90:38:cd:62:39:62:45:8d:a5:c6:95:fb:de:a3:c2:2b:0b:fb:25:89:70:92 ------BEGIN CERTIFICATE----- -MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5 -MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g -Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG -A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg -Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi -9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk -M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB -MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw -CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW -1KyLa2tJElMzrdfkviT8tQp21KW8EA== ------END CERTIFICATE----- - -# Issuer: CN=LuxTrust Global Root 2 O=LuxTrust S.A. -# Subject: CN=LuxTrust Global Root 2 O=LuxTrust S.A. -# Label: "LuxTrust Global Root 2" -# Serial: 59914338225734147123941058376788110305822489521 -# MD5 Fingerprint: b2:e1:09:00:61:af:f7:f1:91:6f:c4:ad:8d:5e:3b:7c -# SHA1 Fingerprint: 1e:0e:56:19:0a:d1:8b:25:98:b2:04:44:ff:66:8a:04:17:99:5f:3f -# SHA256 Fingerprint: 54:45:5f:71:29:c2:0b:14:47:c4:18:f9:97:16:8f:24:c5:8f:c5:02:3b:f5:da:5b:e2:eb:6e:1d:d8:90:2e:d5 ------BEGIN CERTIFICATE----- -MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQEL -BQAwRjELMAkGA1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNV -BAMMFkx1eFRydXN0IEdsb2JhbCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUw -MzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEWMBQGA1UECgwNTHV4VHJ1c3QgUy5B -LjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCCAiIwDQYJKoZIhvcN -AQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wmKb3F -ibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTem -hfY7RBi2xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1 -EMShduxq3sVs35a0VkBCwGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsn -Xpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4 -zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkmFRseTJIpgp7VkoGSQXAZ -96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niFwpN6cj5m -j5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4g -DEa/a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+ -8kPREd8vZS9kzl8UubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2j -X5t/Lax5Gw5CMZdjpPuKadUiDTSQMC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmH -hFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB/zBCBgNVHSAEOzA5MDcGByuB -KwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5Lmx1eHRydXN0 -Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT -+Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQEL -BQADggIBAGoZFO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9 -BzZAcg4atmpZ1gDlaCDdLnINH2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTO -jFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW7MM3LGVYvlcAGvI1+ut7MV3CwRI9 -loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIuZY+kt9J/Z93I055c -qqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWAVWe+ -2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/ -JEAdemrRTxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKre -zrnK+T+Tb/mjuuqlPpmt/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQf -LSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+ -x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31IiyBMz2TWuJdGsE7RKlY6 -oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr ------END CERTIFICATE----- - -# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM -# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM -# Label: "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" -# Serial: 1 -# MD5 Fingerprint: dc:00:81:dc:69:2f:3e:2f:b0:3b:f6:3d:5a:91:8e:49 -# SHA1 Fingerprint: 31:43:64:9b:ec:ce:27:ec:ed:3a:3f:0b:8f:0d:e4:e8:91:dd:ee:ca -# SHA256 Fingerprint: 46:ed:c3:68:90:46:d5:3a:45:3f:b3:10:4a:b8:0d:ca:ec:65:8b:26:60:ea:16:29:dd:7e:86:79:90:64:87:16 ------BEGIN CERTIFICATE----- -MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx -GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp -bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w -KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0 -BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy -dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG -EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll -IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU -QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT -TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg -LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7 -a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr -LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr -N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X -YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/ -iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f -AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH -V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL -BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh -AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf -IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4 -lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c -8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf -lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= ------END CERTIFICATE----- - -# Issuer: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. -# Subject: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. -# Label: "GDCA TrustAUTH R5 ROOT" -# Serial: 9009899650740120186 -# MD5 Fingerprint: 63:cc:d9:3d:34:35:5c:6f:53:a3:e2:08:70:48:1f:b4 -# SHA1 Fingerprint: 0f:36:38:5b:81:1a:25:c3:9b:31:4e:83:ca:e9:34:66:70:cc:74:b4 -# SHA256 Fingerprint: bf:ff:8f:d0:44:33:48:7d:6a:8a:a6:0c:1a:29:76:7a:9f:c2:bb:b0:5e:42:0f:71:3a:13:b9:92:89:1d:38:93 ------BEGIN CERTIFICATE----- -MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE -BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ -IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0 -MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV -BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w -HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj -Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj -TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u -KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj -qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm -MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12 -ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP -zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk -L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC -jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA -HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC -AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg -p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm -DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5 -COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry -L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf -JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg -IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io -2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV -09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ -XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq -T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe -MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== ------END CERTIFICATE----- - -# Issuer: CN=TrustCor RootCert CA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority -# Subject: CN=TrustCor RootCert CA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority -# Label: "TrustCor RootCert CA-1" -# Serial: 15752444095811006489 -# MD5 Fingerprint: 6e:85:f1:dc:1a:00:d3:22:d5:b2:b2:ac:6b:37:05:45 -# SHA1 Fingerprint: ff:bd:cd:e7:82:c8:43:5e:3c:6f:26:86:5c:ca:a8:3a:45:5b:c3:0a -# SHA256 Fingerprint: d4:0e:9c:86:cd:8f:e4:68:c1:77:69:59:f4:9e:a7:74:fa:54:86:84:b6:c4:06:f3:90:92:61:f4:dc:e2:57:5c ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYD -VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk -MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U -cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29y -IFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkxMjMxMTcyMzE2WjCB -pDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFuYW1h -IENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUG -A1UECwweVHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZU -cnVzdENvciBSb290Q2VydCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAv463leLCJhJrMxnHQFgKq1mqjQCj/IDHUHuO1CAmujIS2CNUSSUQIpid -RtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4pQa81QBeCQryJ3pS/C3V -seq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0JEsq1pme -9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CV -EY4hgLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorW -hnAbJN7+KIor0Gqw/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/ -DeOxCbeKyKsZn3MzUOcwHwYDVR0jBBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcw -DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD -ggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5mDo4Nvu7Zp5I -/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf -ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZ -yonnMlo2HD6CqFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djts -L1Ac59v2Z3kf9YKVmgenFK+P3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdN -zl/HHk484IkzlQsPpTLWPFp5LBk= ------END CERTIFICATE----- - -# Issuer: CN=TrustCor RootCert CA-2 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority -# Subject: CN=TrustCor RootCert CA-2 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority -# Label: "TrustCor RootCert CA-2" -# Serial: 2711694510199101698 -# MD5 Fingerprint: a2:e1:f8:18:0b:ba:45:d5:c7:41:2a:bb:37:52:45:64 -# SHA1 Fingerprint: b8:be:6d:cb:56:f1:55:b9:63:d4:12:ca:4e:06:34:c7:94:b2:1c:c0 -# SHA256 Fingerprint: 07:53:e9:40:37:8c:1b:d5:e3:83:6e:39:5d:ae:a5:cb:83:9e:50:46:f1:bd:0e:ae:19:51:cf:10:fe:c7:c9:65 ------BEGIN CERTIFICATE----- -MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNV -BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw -IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy -dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEfMB0GA1UEAwwWVHJ1c3RDb3Ig -Um9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEyMzExNzI2MzlaMIGk -MQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEg -Q2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYD -VQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRy -dXN0Q29yIFJvb3RDZXJ0IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK -AoICAQCnIG7CKqJiJJWQdsg4foDSq8GbZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+ -QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9NkRvRUqdw6VC0xK5mC8tkq -1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1oYxOdqHp -2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nK -DOObXUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hape -az6LMvYHL1cEksr1/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF -3wP+TfSvPd9cW436cOGlfifHhi5qjxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88 -oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQPeSghYA2FFn3XVDjxklb9tTNM -g9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+CtgrKAmrhQhJ8Z3 -mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh -8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAd -BgNVHQ4EFgQU2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6U -nrybPZx9mCAZ5YwwYrIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYw -DQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/hOsh80QA9z+LqBrWyOrsGS2h60COX -dKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnpkpfbsEZC89NiqpX+ -MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv2wnL -/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RX -CI/hOWB3S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYa -ZH9bDTMJBzN7Bj8RpFxwPIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW -2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dvDDqPys/cA8GiCcjl/YBeyGBCARsaU1q7 -N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYURpFHmygk71dSTlxCnKr3 -Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANExdqtvArB -As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp -5KeXRKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu -1uwJ ------END CERTIFICATE----- - -# Issuer: CN=TrustCor ECA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority -# Subject: CN=TrustCor ECA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority -# Label: "TrustCor ECA-1" -# Serial: 9548242946988625984 -# MD5 Fingerprint: 27:92:23:1d:0a:f5:40:7c:e9:e6:6b:9d:d8:f5:e7:6c -# SHA1 Fingerprint: 58:d1:df:95:95:67:6b:63:c0:f0:5b:1c:17:4d:8b:84:0b:c8:78:bd -# SHA256 Fingerprint: 5a:88:5d:b1:9c:01:d9:12:c5:75:93:88:93:8c:af:bb:df:03:1a:b2:d4:8e:91:ee:15:58:9b:42:97:1d:03:9c ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYD -VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk -MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U -cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDlRydXN0Q29y -IEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3MjgwN1owgZwxCzAJBgNV -BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw -IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy -dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3Ig -RUNBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb -3w9U73NjKYKtR8aja+3+XzP4Q1HpGjORMRegdMTUpwHmspI+ap3tDvl0mEDTPwOA -BoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23xFUfJ3zSCNV2HykVh0A5 -3ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmcp0yJF4Ou -owReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/ -wZ0+fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZF -ZtS6mFjBAgMBAAGjYzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAf -BgNVHSMEGDAWgBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/ -MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEABT41XBVwm8nHc2Fv -civUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u/ukZMjgDfxT2 -AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F -hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50 -soIipX1TH0XsJ5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BI -WJZpTdwHjFGTot+fDz2LYLSCjaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1Wi -tJ/X5g== ------END CERTIFICATE----- - -# Issuer: CN=SSL.com Root Certification Authority RSA O=SSL Corporation -# Subject: CN=SSL.com Root Certification Authority RSA O=SSL Corporation -# Label: "SSL.com Root Certification Authority RSA" -# Serial: 8875640296558310041 -# MD5 Fingerprint: 86:69:12:c0:70:f1:ec:ac:ac:c2:d5:bc:a5:5b:a1:29 -# SHA1 Fingerprint: b7:ab:33:08:d1:ea:44:77:ba:14:80:12:5a:6f:bd:a9:36:49:0c:bb -# SHA256 Fingerprint: 85:66:6a:56:2e:e0:be:5c:e9:25:c1:d8:89:0a:6f:76:a8:7e:c1:6d:4d:7d:5f:29:ea:74:19:cf:20:12:3b:69 ------BEGIN CERTIFICATE----- -MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE -BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK -DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz -OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv -dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv -bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN -AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R -xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX -qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC -C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3 -6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh -/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF -YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E -JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc -US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8 -ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm -+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi -M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV -HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G -A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV -cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc -Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs -PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/ -q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0 -cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr -a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I -H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y -K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu -nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf -oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY -Ic2wBlX7Jz9TkHCpBB5XJ7k= ------END CERTIFICATE----- - -# Issuer: CN=SSL.com Root Certification Authority ECC O=SSL Corporation -# Subject: CN=SSL.com Root Certification Authority ECC O=SSL Corporation -# Label: "SSL.com Root Certification Authority ECC" -# Serial: 8495723813297216424 -# MD5 Fingerprint: 2e:da:e4:39:7f:9c:8f:37:d1:70:9f:26:17:51:3a:8e -# SHA1 Fingerprint: c3:19:7c:39:24:e6:54:af:1b:c4:ab:20:95:7a:e2:c3:0e:13:02:6a -# SHA256 Fingerprint: 34:17:bb:06:cc:60:07:da:1b:96:1c:92:0b:8a:b4:ce:3f:ad:82:0e:4a:a3:0b:9a:cb:c4:a7:4e:bd:ce:bc:65 ------BEGIN CERTIFICATE----- -MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC -VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T -U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0 -aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz -WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0 -b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS -b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB -BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI -7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg -CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud -EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD -VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T -kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+ -gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl ------END CERTIFICATE----- - -# Issuer: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation -# Subject: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation -# Label: "SSL.com EV Root Certification Authority RSA R2" -# Serial: 6248227494352943350 -# MD5 Fingerprint: e1:1e:31:58:1a:ae:54:53:02:f6:17:6a:11:7b:4d:95 -# SHA1 Fingerprint: 74:3a:f0:52:9b:d0:32:a0:f4:4a:83:cd:d4:ba:a9:7b:7c:2e:c4:9a -# SHA256 Fingerprint: 2e:7b:f1:6c:c2:24:85:a7:bb:e2:aa:86:96:75:07:61:b0:ae:39:be:3b:2f:e9:d0:cc:6d:4e:f7:34:91:42:5c ------BEGIN CERTIFICATE----- -MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV -BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE -CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy -dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy -MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G -A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD -DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy -MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq -M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf -OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa -4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9 -HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR -aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA -b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ -Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV -PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO -pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu -UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY -MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV -HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4 -9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW -s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5 -Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg -cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM -79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz -/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt -ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm -Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK -QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ -w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi -S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07 -mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== ------END CERTIFICATE----- - -# Issuer: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation -# Subject: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation -# Label: "SSL.com EV Root Certification Authority ECC" -# Serial: 3182246526754555285 -# MD5 Fingerprint: 59:53:22:65:83:42:01:54:c0:ce:42:b9:5a:7c:f2:90 -# SHA1 Fingerprint: 4c:dd:51:a3:d1:f5:20:32:14:b0:c6:c5:32:23:03:91:c7:46:42:6d -# SHA256 Fingerprint: 22:a2:c1:f7:bd:ed:70:4c:c1:e7:01:b5:f4:08:c3:10:88:0f:e9:56:b5:de:2a:4a:44:f9:9c:87:3a:25:a7:c8 ------BEGIN CERTIFICATE----- -MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC -VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T -U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx -NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv -dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv -bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49 -AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA -VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku -WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP -MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX -5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ -ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg -h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== ------END CERTIFICATE----- - -# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 -# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R6 -# Label: "GlobalSign Root CA - R6" -# Serial: 1417766617973444989252670301619537 -# MD5 Fingerprint: 4f:dd:07:e4:d4:22:64:39:1e:0c:37:42:ea:d1:c6:ae -# SHA1 Fingerprint: 80:94:64:0e:b5:a7:a1:ca:11:9c:1f:dd:d5:9f:81:02:63:a7:fb:d1 -# SHA256 Fingerprint: 2c:ab:ea:fe:37:d0:6c:a2:2a:ba:73:91:c0:03:3d:25:98:29:52:c4:53:64:73:49:76:3a:3a:b5:ad:6c:cf:69 ------BEGIN CERTIFICATE----- -MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg -MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh -bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx -MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET -MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI -xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k -ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD -aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw -LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw -1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX -k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2 -SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h -bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n -WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY -rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce -MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu -bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN -nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt -Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61 -55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj -vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf -cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz -oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp -nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs -pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v -JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R -8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4 -5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= ------END CERTIFICATE----- - -# Issuer: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed -# Subject: CN=OISTE WISeKey Global Root GC CA O=WISeKey OU=OISTE Foundation Endorsed -# Label: "OISTE WISeKey Global Root GC CA" -# Serial: 44084345621038548146064804565436152554 -# MD5 Fingerprint: a9:d6:b9:2d:2f:93:64:f8:a5:69:ca:91:e9:68:07:23 -# SHA1 Fingerprint: e0:11:84:5e:34:de:be:88:81:b9:9c:f6:16:26:d1:96:1f:c3:b9:31 -# SHA256 Fingerprint: 85:60:f9:1c:36:24:da:ba:95:70:b5:fe:a0:db:e3:6f:f1:1a:83:23:be:94:86:85:4f:b3:f3:4a:55:71:19:8d ------BEGIN CERTIFICATE----- -MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw -CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91 -bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg -Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ -BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu -ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS -b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni -eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W -p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T -rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV -57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg -Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R1 O=Google Trust Services LLC -# Subject: CN=GTS Root R1 O=Google Trust Services LLC -# Label: "GTS Root R1" -# Serial: 146587175971765017618439757810265552097 -# MD5 Fingerprint: 82:1a:ef:d4:d2:4a:f2:9f:e2:3d:97:06:14:70:72:85 -# SHA1 Fingerprint: e1:c9:50:e6:ef:22:f8:4c:56:45:72:8b:92:20:60:d7:d5:a7:a3:e8 -# SHA256 Fingerprint: 2a:57:54:71:e3:13:40:bc:21:58:1c:bd:2c:f1:3e:15:84:63:20:3e:ce:94:bc:f9:d3:cc:19:6b:f0:9a:54:72 ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBH -MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM -QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy -MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl -cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM -f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vX -mX7wCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7 -zUjwTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0P -fyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtc -vfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4 -Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUsp -zBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOO -Rc92wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYW -k70paDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+ -DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgF -lQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBADiW -Cu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 -d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6Z -XPYfcX3v73svfuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZR -gyFmxhE+885H7pwoHyXa/6xmld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3 -d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9bgsiG1eGZbYwE8na6SfZu6W0eX6Dv -J4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq4BjFbkerQUIpm/Zg -DdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWErtXvM -+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyy -F62ARPBopY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9 -SQ98POyDGCBDTtWTurQ0sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdws -E3PYJ/HQcu51OyLemGhmW/HGY0dVHLqlCFF1pkgl ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R2 O=Google Trust Services LLC -# Subject: CN=GTS Root R2 O=Google Trust Services LLC -# Label: "GTS Root R2" -# Serial: 146587176055767053814479386953112547951 -# MD5 Fingerprint: 44:ed:9a:0e:a4:09:3b:00:f2:ae:4c:a3:c6:61:b0:8b -# SHA1 Fingerprint: d2:73:96:2a:2a:5e:39:9f:73:3f:e1:c7:1e:64:3f:03:38:34:fc:4d -# SHA256 Fingerprint: c4:5d:7b:b0:8e:6d:67:e6:2e:42:35:11:0b:56:4e:5f:78:fd:92:ef:05:8c:84:0a:ea:4e:64:55:d7:58:5c:60 ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBH -MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM -QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy -MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl -cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv -CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3Kg -GjSY6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9Bu -XvAuMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOd -re7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXu -PuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1 -mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K -8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqj -x5RWIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsR -nTKaG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0 -kzCqgc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9Ok -twIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV -HQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBALZp -8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT -vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiT -z9D2PGcDFWEJ+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiA -pJiS4wGWAqoC7o87xdFtCjMwc3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvb -pxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3DaWsYDQvTtN6LwG1BUSw7YhN4ZKJmB -R64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5rn/WkhLx3+WuXrD5R -RaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56GtmwfuNmsk -0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC -5AwiWVIQ7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiF -izoHCBy69Y9Vmhh1fuXsgWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLn -yOd/xCxgXS/Dr55FBcOEArf9LAhST4Ldo/DUhgkC ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R3 O=Google Trust Services LLC -# Subject: CN=GTS Root R3 O=Google Trust Services LLC -# Label: "GTS Root R3" -# Serial: 146587176140553309517047991083707763997 -# MD5 Fingerprint: 1a:79:5b:6b:04:52:9c:5d:c7:74:33:1b:25:9a:f9:25 -# SHA1 Fingerprint: 30:d4:24:6f:07:ff:db:91:89:8a:0b:e9:49:66:11:eb:8c:5e:46:e5 -# SHA256 Fingerprint: 15:d5:b8:77:46:19:ea:7d:54:ce:1c:a6:d0:b0:c4:03:e0:37:a9:17:f1:31:e8:a0:4e:1e:6b:7a:71:ba:bc:e5 ------BEGIN CERTIFICATE----- -MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout -736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2A -DDL24CejQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFuk -fCPAlaUs3L6JbyO5o91lAFJekazInXJ0glMLfalAvWhgxeG4VDvBNhcl2MG9AjEA -njWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOaKaqW04MjyaR7YbPMAuhd ------END CERTIFICATE----- - -# Issuer: CN=GTS Root R4 O=Google Trust Services LLC -# Subject: CN=GTS Root R4 O=Google Trust Services LLC -# Label: "GTS Root R4" -# Serial: 146587176229350439916519468929765261721 -# MD5 Fingerprint: 5d:b6:6a:c4:60:17:24:6a:1a:99:a8:4b:ee:5e:b4:26 -# SHA1 Fingerprint: 2a:1d:60:27:d9:4a:b1:0a:1c:4d:91:5c:cd:33:a0:cb:3e:2d:54:cb -# SHA256 Fingerprint: 71:cc:a5:39:1f:9e:79:4b:04:80:25:30:b3:63:e1:21:da:8a:30:43:bb:26:66:2f:ea:4d:ca:7f:c9:51:a4:bd ------BEGIN CERTIFICATE----- -MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQsw -CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU -MBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw -MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp -Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu -hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/l -xKvRHYqjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0 -CMRw3J5QdCHojXohw0+WbhXRIjVhLfoIN+4Zba3bssx9BzT1YBkstTTZbyACMANx -sbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11xzPKwTdb+mciUqXWi4w== ------END CERTIFICATE----- - -# Issuer: CN=UCA Global G2 Root O=UniTrust -# Subject: CN=UCA Global G2 Root O=UniTrust -# Label: "UCA Global G2 Root" -# Serial: 124779693093741543919145257850076631279 -# MD5 Fingerprint: 80:fe:f0:c4:4a:f0:5c:62:32:9f:1c:ba:78:a9:50:f8 -# SHA1 Fingerprint: 28:f9:78:16:19:7a:ff:18:25:18:aa:44:fe:c1:a0:ce:5c:b6:4c:8a -# SHA256 Fingerprint: 9b:ea:11:c9:76:fe:01:47:64:c1:be:56:a6:f9:14:b5:a5:60:31:7a:bd:99:88:39:33:82:e5:16:1a:a0:49:3c ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9 -MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH -bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x -CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds -b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr -b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9 -kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm -VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R -VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc -C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj -tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY -D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv -j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl -NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6 -iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP -O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/ -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV -ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj -L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 -1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl -1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU -b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV -PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj -y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb -EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg -DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI -+Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy -YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX -UB+K+wb1whnw0A== ------END CERTIFICATE----- - -# Issuer: CN=UCA Extended Validation Root O=UniTrust -# Subject: CN=UCA Extended Validation Root O=UniTrust -# Label: "UCA Extended Validation Root" -# Serial: 106100277556486529736699587978573607008 -# MD5 Fingerprint: a1:f3:5f:43:c6:34:9b:da:bf:8c:7e:05:53:ad:96:e2 -# SHA1 Fingerprint: a3:a1:b0:6f:24:61:23:4a:e3:36:a5:c2:37:fc:a6:ff:dd:f0:d7:3a -# SHA256 Fingerprint: d4:3a:f9:b3:54:73:75:5c:96:84:fc:06:d7:d8:cb:70:ee:5c:28:e7:73:fb:29:4e:b4:1e:e7:17:22:92:4d:24 ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH -MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF -eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx -MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV -BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB -AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog -D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS -sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop -O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk -sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi -c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj -VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz -KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/ -TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G -sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs -1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD -fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN -l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR -ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ -VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5 -c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp -4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s -t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj -2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO -vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C -xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx -cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM -fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax ------END CERTIFICATE----- - -# Issuer: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 -# Subject: CN=Certigna Root CA O=Dhimyotis OU=0002 48146308100036 -# Label: "Certigna Root CA" -# Serial: 269714418870597844693661054334862075617 -# MD5 Fingerprint: 0e:5c:30:62:27:eb:5b:bc:d7:ae:62:ba:e9:d5:df:77 -# SHA1 Fingerprint: 2d:0d:52:14:ff:9e:ad:99:24:01:74:20:47:6e:6c:85:27:27:f5:43 -# SHA256 Fingerprint: d4:8d:3d:23:ee:db:50:a4:59:e5:51:97:60:1c:27:77:4b:9d:7b:18:c9:4d:5a:05:95:11:a1:02:50:b9:31:68 ------BEGIN CERTIFICATE----- -MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw -WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw -MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x -MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD -VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX -BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO -ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M -CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu -I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm -TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh -C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf -ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz -IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT -Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k -JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5 -hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB -GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE -FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of -1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov -L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo -dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr -aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq -hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L -6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG -HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6 -0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB -lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi -o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1 -gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v -faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63 -Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh -jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw -3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= ------END CERTIFICATE----- diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/core.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/core.py deleted file mode 100644 index 2d02ea4..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/core.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" -certifi.py -~~~~~~~~~~ - -This module returns the installation location of cacert.pem. -""" -import os - - -def where(): - f = os.path.dirname(__file__) - - return os.path.join(f, 'cacert.pem') - - -if __name__ == '__main__': - print(where()) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/__init__.py deleted file mode 100644 index 0f9f820..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/__init__.py +++ /dev/null @@ -1,39 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - - -from .compat import PY2, PY3 -from .universaldetector import UniversalDetector -from .version import __version__, VERSION - - -def detect(byte_str): - """ - Detect the encoding of the given byte string. - - :param byte_str: The byte sequence to examine. - :type byte_str: ``bytes`` or ``bytearray`` - """ - if not isinstance(byte_str, bytearray): - if not isinstance(byte_str, bytes): - raise TypeError('Expected object of type bytes or bytearray, got: ' - '{0}'.format(type(byte_str))) - else: - byte_str = bytearray(byte_str) - detector = UniversalDetector() - detector.feed(byte_str) - return detector.close() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5freq.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5freq.py deleted file mode 100644 index 38f3251..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5freq.py +++ /dev/null @@ -1,386 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# Big5 frequency table -# by Taiwan's Mandarin Promotion Council -# <http://www.edu.tw:81/mandr/> -# -# 128 --> 0.42261 -# 256 --> 0.57851 -# 512 --> 0.74851 -# 1024 --> 0.89384 -# 2048 --> 0.97583 -# -# Ideal Distribution Ratio = 0.74851/(1-0.74851) =2.98 -# Random Distribution Ration = 512/(5401-512)=0.105 -# -# Typical Distribution Ratio about 25% of Ideal one, still much higher than RDR - -BIG5_TYPICAL_DISTRIBUTION_RATIO = 0.75 - -#Char to FreqOrder table -BIG5_TABLE_SIZE = 5376 - -BIG5_CHAR_TO_FREQ_ORDER = ( - 1,1801,1506, 255,1431, 198, 9, 82, 6,5008, 177, 202,3681,1256,2821, 110, # 16 -3814, 33,3274, 261, 76, 44,2114, 16,2946,2187,1176, 659,3971, 26,3451,2653, # 32 -1198,3972,3350,4202, 410,2215, 302, 590, 361,1964, 8, 204, 58,4510,5009,1932, # 48 - 63,5010,5011, 317,1614, 75, 222, 159,4203,2417,1480,5012,3555,3091, 224,2822, # 64 -3682, 3, 10,3973,1471, 29,2787,1135,2866,1940, 873, 130,3275,1123, 312,5013, # 80 -4511,2052, 507, 252, 682,5014, 142,1915, 124, 206,2947, 34,3556,3204, 64, 604, # 96 -5015,2501,1977,1978, 155,1991, 645, 641,1606,5016,3452, 337, 72, 406,5017, 80, # 112 - 630, 238,3205,1509, 263, 939,1092,2654, 756,1440,1094,3453, 449, 69,2987, 591, # 128 - 179,2096, 471, 115,2035,1844, 60, 50,2988, 134, 806,1869, 734,2036,3454, 180, # 144 - 995,1607, 156, 537,2907, 688,5018, 319,1305, 779,2145, 514,2379, 298,4512, 359, # 160 -2502, 90,2716,1338, 663, 11, 906,1099,2553, 20,2441, 182, 532,1716,5019, 732, # 176 -1376,4204,1311,1420,3206, 25,2317,1056, 113, 399, 382,1950, 242,3455,2474, 529, # 192 -3276, 475,1447,3683,5020, 117, 21, 656, 810,1297,2300,2334,3557,5021, 126,4205, # 208 - 706, 456, 150, 613,4513, 71,1118,2037,4206, 145,3092, 85, 835, 486,2115,1246, # 224 -1426, 428, 727,1285,1015, 800, 106, 623, 303,1281,5022,2128,2359, 347,3815, 221, # 240 -3558,3135,5023,1956,1153,4207, 83, 296,1199,3093, 192, 624, 93,5024, 822,1898, # 256 -2823,3136, 795,2065, 991,1554,1542,1592, 27, 43,2867, 859, 139,1456, 860,4514, # 272 - 437, 712,3974, 164,2397,3137, 695, 211,3037,2097, 195,3975,1608,3559,3560,3684, # 288 -3976, 234, 811,2989,2098,3977,2233,1441,3561,1615,2380, 668,2077,1638, 305, 228, # 304 -1664,4515, 467, 415,5025, 262,2099,1593, 239, 108, 300, 200,1033, 512,1247,2078, # 320 -5026,5027,2176,3207,3685,2682, 593, 845,1062,3277, 88,1723,2038,3978,1951, 212, # 336 - 266, 152, 149, 468,1899,4208,4516, 77, 187,5028,3038, 37, 5,2990,5029,3979, # 352 -5030,5031, 39,2524,4517,2908,3208,2079, 55, 148, 74,4518, 545, 483,1474,1029, # 368 -1665, 217,1870,1531,3138,1104,2655,4209, 24, 172,3562, 900,3980,3563,3564,4519, # 384 - 32,1408,2824,1312, 329, 487,2360,2251,2717, 784,2683, 4,3039,3351,1427,1789, # 400 - 188, 109, 499,5032,3686,1717,1790, 888,1217,3040,4520,5033,3565,5034,3352,1520, # 416 -3687,3981, 196,1034, 775,5035,5036, 929,1816, 249, 439, 38,5037,1063,5038, 794, # 432 -3982,1435,2301, 46, 178,3278,2066,5039,2381,5040, 214,1709,4521, 804, 35, 707, # 448 - 324,3688,1601,2554, 140, 459,4210,5041,5042,1365, 839, 272, 978,2262,2580,3456, # 464 -2129,1363,3689,1423, 697, 100,3094, 48, 70,1231, 495,3139,2196,5043,1294,5044, # 480 -2080, 462, 586,1042,3279, 853, 256, 988, 185,2382,3457,1698, 434,1084,5045,3458, # 496 - 314,2625,2788,4522,2335,2336, 569,2285, 637,1817,2525, 757,1162,1879,1616,3459, # 512 - 287,1577,2116, 768,4523,1671,2868,3566,2526,1321,3816, 909,2418,5046,4211, 933, # 528 -3817,4212,2053,2361,1222,4524, 765,2419,1322, 786,4525,5047,1920,1462,1677,2909, # 544 -1699,5048,4526,1424,2442,3140,3690,2600,3353,1775,1941,3460,3983,4213, 309,1369, # 560 -1130,2825, 364,2234,1653,1299,3984,3567,3985,3986,2656, 525,1085,3041, 902,2001, # 576 -1475, 964,4527, 421,1845,1415,1057,2286, 940,1364,3141, 376,4528,4529,1381, 7, # 592 -2527, 983,2383, 336,1710,2684,1846, 321,3461, 559,1131,3042,2752,1809,1132,1313, # 608 - 265,1481,1858,5049, 352,1203,2826,3280, 167,1089, 420,2827, 776, 792,1724,3568, # 624 -4214,2443,3281,5050,4215,5051, 446, 229, 333,2753, 901,3818,1200,1557,4530,2657, # 640 -1921, 395,2754,2685,3819,4216,1836, 125, 916,3209,2626,4531,5052,5053,3820,5054, # 656 -5055,5056,4532,3142,3691,1133,2555,1757,3462,1510,2318,1409,3569,5057,2146, 438, # 672 -2601,2910,2384,3354,1068, 958,3043, 461, 311,2869,2686,4217,1916,3210,4218,1979, # 688 - 383, 750,2755,2627,4219, 274, 539, 385,1278,1442,5058,1154,1965, 384, 561, 210, # 704 - 98,1295,2556,3570,5059,1711,2420,1482,3463,3987,2911,1257, 129,5060,3821, 642, # 720 - 523,2789,2790,2658,5061, 141,2235,1333, 68, 176, 441, 876, 907,4220, 603,2602, # 736 - 710, 171,3464, 404, 549, 18,3143,2398,1410,3692,1666,5062,3571,4533,2912,4534, # 752 -5063,2991, 368,5064, 146, 366, 99, 871,3693,1543, 748, 807,1586,1185, 22,2263, # 768 - 379,3822,3211,5065,3212, 505,1942,2628,1992,1382,2319,5066, 380,2362, 218, 702, # 784 -1818,1248,3465,3044,3572,3355,3282,5067,2992,3694, 930,3283,3823,5068, 59,5069, # 800 - 585, 601,4221, 497,3466,1112,1314,4535,1802,5070,1223,1472,2177,5071, 749,1837, # 816 - 690,1900,3824,1773,3988,1476, 429,1043,1791,2236,2117, 917,4222, 447,1086,1629, # 832 -5072, 556,5073,5074,2021,1654, 844,1090, 105, 550, 966,1758,2828,1008,1783, 686, # 848 -1095,5075,2287, 793,1602,5076,3573,2603,4536,4223,2948,2302,4537,3825, 980,2503, # 864 - 544, 353, 527,4538, 908,2687,2913,5077, 381,2629,1943,1348,5078,1341,1252, 560, # 880 -3095,5079,3467,2870,5080,2054, 973, 886,2081, 143,4539,5081,5082, 157,3989, 496, # 896 -4224, 57, 840, 540,2039,4540,4541,3468,2118,1445, 970,2264,1748,1966,2082,4225, # 912 -3144,1234,1776,3284,2829,3695, 773,1206,2130,1066,2040,1326,3990,1738,1725,4226, # 928 - 279,3145, 51,1544,2604, 423,1578,2131,2067, 173,4542,1880,5083,5084,1583, 264, # 944 - 610,3696,4543,2444, 280, 154,5085,5086,5087,1739, 338,1282,3096, 693,2871,1411, # 960 -1074,3826,2445,5088,4544,5089,5090,1240, 952,2399,5091,2914,1538,2688, 685,1483, # 976 -4227,2475,1436, 953,4228,2055,4545, 671,2400, 79,4229,2446,3285, 608, 567,2689, # 992 -3469,4230,4231,1691, 393,1261,1792,2401,5092,4546,5093,5094,5095,5096,1383,1672, # 1008 -3827,3213,1464, 522,1119, 661,1150, 216, 675,4547,3991,1432,3574, 609,4548,2690, # 1024 -2402,5097,5098,5099,4232,3045, 0,5100,2476, 315, 231,2447, 301,3356,4549,2385, # 1040 -5101, 233,4233,3697,1819,4550,4551,5102, 96,1777,1315,2083,5103, 257,5104,1810, # 1056 -3698,2718,1139,1820,4234,2022,1124,2164,2791,1778,2659,5105,3097, 363,1655,3214, # 1072 -5106,2993,5107,5108,5109,3992,1567,3993, 718, 103,3215, 849,1443, 341,3357,2949, # 1088 -1484,5110,1712, 127, 67, 339,4235,2403, 679,1412, 821,5111,5112, 834, 738, 351, # 1104 -2994,2147, 846, 235,1497,1881, 418,1993,3828,2719, 186,1100,2148,2756,3575,1545, # 1120 -1355,2950,2872,1377, 583,3994,4236,2581,2995,5113,1298,3699,1078,2557,3700,2363, # 1136 - 78,3829,3830, 267,1289,2100,2002,1594,4237, 348, 369,1274,2197,2178,1838,4552, # 1152 -1821,2830,3701,2757,2288,2003,4553,2951,2758, 144,3358, 882,4554,3995,2759,3470, # 1168 -4555,2915,5114,4238,1726, 320,5115,3996,3046, 788,2996,5116,2831,1774,1327,2873, # 1184 -3997,2832,5117,1306,4556,2004,1700,3831,3576,2364,2660, 787,2023, 506, 824,3702, # 1200 - 534, 323,4557,1044,3359,2024,1901, 946,3471,5118,1779,1500,1678,5119,1882,4558, # 1216 - 165, 243,4559,3703,2528, 123, 683,4239, 764,4560, 36,3998,1793, 589,2916, 816, # 1232 - 626,1667,3047,2237,1639,1555,1622,3832,3999,5120,4000,2874,1370,1228,1933, 891, # 1248 -2084,2917, 304,4240,5121, 292,2997,2720,3577, 691,2101,4241,1115,4561, 118, 662, # 1264 -5122, 611,1156, 854,2386,1316,2875, 2, 386, 515,2918,5123,5124,3286, 868,2238, # 1280 -1486, 855,2661, 785,2216,3048,5125,1040,3216,3578,5126,3146, 448,5127,1525,5128, # 1296 -2165,4562,5129,3833,5130,4242,2833,3579,3147, 503, 818,4001,3148,1568, 814, 676, # 1312 -1444, 306,1749,5131,3834,1416,1030, 197,1428, 805,2834,1501,4563,5132,5133,5134, # 1328 -1994,5135,4564,5136,5137,2198, 13,2792,3704,2998,3149,1229,1917,5138,3835,2132, # 1344 -5139,4243,4565,2404,3580,5140,2217,1511,1727,1120,5141,5142, 646,3836,2448, 307, # 1360 -5143,5144,1595,3217,5145,5146,5147,3705,1113,1356,4002,1465,2529,2530,5148, 519, # 1376 -5149, 128,2133, 92,2289,1980,5150,4003,1512, 342,3150,2199,5151,2793,2218,1981, # 1392 -3360,4244, 290,1656,1317, 789, 827,2365,5152,3837,4566, 562, 581,4004,5153, 401, # 1408 -4567,2252, 94,4568,5154,1399,2794,5155,1463,2025,4569,3218,1944,5156, 828,1105, # 1424 -4245,1262,1394,5157,4246, 605,4570,5158,1784,2876,5159,2835, 819,2102, 578,2200, # 1440 -2952,5160,1502, 436,3287,4247,3288,2836,4005,2919,3472,3473,5161,2721,2320,5162, # 1456 -5163,2337,2068, 23,4571, 193, 826,3838,2103, 699,1630,4248,3098, 390,1794,1064, # 1472 -3581,5164,1579,3099,3100,1400,5165,4249,1839,1640,2877,5166,4572,4573, 137,4250, # 1488 - 598,3101,1967, 780, 104, 974,2953,5167, 278, 899, 253, 402, 572, 504, 493,1339, # 1504 -5168,4006,1275,4574,2582,2558,5169,3706,3049,3102,2253, 565,1334,2722, 863, 41, # 1520 -5170,5171,4575,5172,1657,2338, 19, 463,2760,4251, 606,5173,2999,3289,1087,2085, # 1536 -1323,2662,3000,5174,1631,1623,1750,4252,2691,5175,2878, 791,2723,2663,2339, 232, # 1552 -2421,5176,3001,1498,5177,2664,2630, 755,1366,3707,3290,3151,2026,1609, 119,1918, # 1568 -3474, 862,1026,4253,5178,4007,3839,4576,4008,4577,2265,1952,2477,5179,1125, 817, # 1584 -4254,4255,4009,1513,1766,2041,1487,4256,3050,3291,2837,3840,3152,5180,5181,1507, # 1600 -5182,2692, 733, 40,1632,1106,2879, 345,4257, 841,2531, 230,4578,3002,1847,3292, # 1616 -3475,5183,1263, 986,3476,5184, 735, 879, 254,1137, 857, 622,1300,1180,1388,1562, # 1632 -4010,4011,2954, 967,2761,2665,1349, 592,2134,1692,3361,3003,1995,4258,1679,4012, # 1648 -1902,2188,5185, 739,3708,2724,1296,1290,5186,4259,2201,2202,1922,1563,2605,2559, # 1664 -1871,2762,3004,5187, 435,5188, 343,1108, 596, 17,1751,4579,2239,3477,3709,5189, # 1680 -4580, 294,3582,2955,1693, 477, 979, 281,2042,3583, 643,2043,3710,2631,2795,2266, # 1696 -1031,2340,2135,2303,3584,4581, 367,1249,2560,5190,3585,5191,4582,1283,3362,2005, # 1712 - 240,1762,3363,4583,4584, 836,1069,3153, 474,5192,2149,2532, 268,3586,5193,3219, # 1728 -1521,1284,5194,1658,1546,4260,5195,3587,3588,5196,4261,3364,2693,1685,4262, 961, # 1744 -1673,2632, 190,2006,2203,3841,4585,4586,5197, 570,2504,3711,1490,5198,4587,2633, # 1760 -3293,1957,4588, 584,1514, 396,1045,1945,5199,4589,1968,2449,5200,5201,4590,4013, # 1776 - 619,5202,3154,3294, 215,2007,2796,2561,3220,4591,3221,4592, 763,4263,3842,4593, # 1792 -5203,5204,1958,1767,2956,3365,3712,1174, 452,1477,4594,3366,3155,5205,2838,1253, # 1808 -2387,2189,1091,2290,4264, 492,5206, 638,1169,1825,2136,1752,4014, 648, 926,1021, # 1824 -1324,4595, 520,4596, 997, 847,1007, 892,4597,3843,2267,1872,3713,2405,1785,4598, # 1840 -1953,2957,3103,3222,1728,4265,2044,3714,4599,2008,1701,3156,1551, 30,2268,4266, # 1856 -5207,2027,4600,3589,5208, 501,5209,4267, 594,3478,2166,1822,3590,3479,3591,3223, # 1872 - 829,2839,4268,5210,1680,3157,1225,4269,5211,3295,4601,4270,3158,2341,5212,4602, # 1888 -4271,5213,4015,4016,5214,1848,2388,2606,3367,5215,4603, 374,4017, 652,4272,4273, # 1904 - 375,1140, 798,5216,5217,5218,2366,4604,2269, 546,1659, 138,3051,2450,4605,5219, # 1920 -2254, 612,1849, 910, 796,3844,1740,1371, 825,3845,3846,5220,2920,2562,5221, 692, # 1936 - 444,3052,2634, 801,4606,4274,5222,1491, 244,1053,3053,4275,4276, 340,5223,4018, # 1952 -1041,3005, 293,1168, 87,1357,5224,1539, 959,5225,2240, 721, 694,4277,3847, 219, # 1968 -1478, 644,1417,3368,2666,1413,1401,1335,1389,4019,5226,5227,3006,2367,3159,1826, # 1984 - 730,1515, 184,2840, 66,4607,5228,1660,2958, 246,3369, 378,1457, 226,3480, 975, # 2000 -4020,2959,1264,3592, 674, 696,5229, 163,5230,1141,2422,2167, 713,3593,3370,4608, # 2016 -4021,5231,5232,1186, 15,5233,1079,1070,5234,1522,3224,3594, 276,1050,2725, 758, # 2032 -1126, 653,2960,3296,5235,2342, 889,3595,4022,3104,3007, 903,1250,4609,4023,3481, # 2048 -3596,1342,1681,1718, 766,3297, 286, 89,2961,3715,5236,1713,5237,2607,3371,3008, # 2064 -5238,2962,2219,3225,2880,5239,4610,2505,2533, 181, 387,1075,4024, 731,2190,3372, # 2080 -5240,3298, 310, 313,3482,2304, 770,4278, 54,3054, 189,4611,3105,3848,4025,5241, # 2096 -1230,1617,1850, 355,3597,4279,4612,3373, 111,4280,3716,1350,3160,3483,3055,4281, # 2112 -2150,3299,3598,5242,2797,4026,4027,3009, 722,2009,5243,1071, 247,1207,2343,2478, # 2128 -1378,4613,2010, 864,1437,1214,4614, 373,3849,1142,2220, 667,4615, 442,2763,2563, # 2144 -3850,4028,1969,4282,3300,1840, 837, 170,1107, 934,1336,1883,5244,5245,2119,4283, # 2160 -2841, 743,1569,5246,4616,4284, 582,2389,1418,3484,5247,1803,5248, 357,1395,1729, # 2176 -3717,3301,2423,1564,2241,5249,3106,3851,1633,4617,1114,2086,4285,1532,5250, 482, # 2192 -2451,4618,5251,5252,1492, 833,1466,5253,2726,3599,1641,2842,5254,1526,1272,3718, # 2208 -4286,1686,1795, 416,2564,1903,1954,1804,5255,3852,2798,3853,1159,2321,5256,2881, # 2224 -4619,1610,1584,3056,2424,2764, 443,3302,1163,3161,5257,5258,4029,5259,4287,2506, # 2240 -3057,4620,4030,3162,2104,1647,3600,2011,1873,4288,5260,4289, 431,3485,5261, 250, # 2256 - 97, 81,4290,5262,1648,1851,1558, 160, 848,5263, 866, 740,1694,5264,2204,2843, # 2272 -3226,4291,4621,3719,1687, 950,2479, 426, 469,3227,3720,3721,4031,5265,5266,1188, # 2288 - 424,1996, 861,3601,4292,3854,2205,2694, 168,1235,3602,4293,5267,2087,1674,4622, # 2304 -3374,3303, 220,2565,1009,5268,3855, 670,3010, 332,1208, 717,5269,5270,3603,2452, # 2320 -4032,3375,5271, 513,5272,1209,2882,3376,3163,4623,1080,5273,5274,5275,5276,2534, # 2336 -3722,3604, 815,1587,4033,4034,5277,3605,3486,3856,1254,4624,1328,3058,1390,4035, # 2352 -1741,4036,3857,4037,5278, 236,3858,2453,3304,5279,5280,3723,3859,1273,3860,4625, # 2368 -5281, 308,5282,4626, 245,4627,1852,2480,1307,2583, 430, 715,2137,2454,5283, 270, # 2384 - 199,2883,4038,5284,3606,2727,1753, 761,1754, 725,1661,1841,4628,3487,3724,5285, # 2400 -5286, 587, 14,3305, 227,2608, 326, 480,2270, 943,2765,3607, 291, 650,1884,5287, # 2416 -1702,1226, 102,1547, 62,3488, 904,4629,3489,1164,4294,5288,5289,1224,1548,2766, # 2432 - 391, 498,1493,5290,1386,1419,5291,2056,1177,4630, 813, 880,1081,2368, 566,1145, # 2448 -4631,2291,1001,1035,2566,2609,2242, 394,1286,5292,5293,2069,5294, 86,1494,1730, # 2464 -4039, 491,1588, 745, 897,2963, 843,3377,4040,2767,2884,3306,1768, 998,2221,2070, # 2480 - 397,1827,1195,1970,3725,3011,3378, 284,5295,3861,2507,2138,2120,1904,5296,4041, # 2496 -2151,4042,4295,1036,3490,1905, 114,2567,4296, 209,1527,5297,5298,2964,2844,2635, # 2512 -2390,2728,3164, 812,2568,5299,3307,5300,1559, 737,1885,3726,1210, 885, 28,2695, # 2528 -3608,3862,5301,4297,1004,1780,4632,5302, 346,1982,2222,2696,4633,3863,1742, 797, # 2544 -1642,4043,1934,1072,1384,2152, 896,4044,3308,3727,3228,2885,3609,5303,2569,1959, # 2560 -4634,2455,1786,5304,5305,5306,4045,4298,1005,1308,3728,4299,2729,4635,4636,1528, # 2576 -2610, 161,1178,4300,1983, 987,4637,1101,4301, 631,4046,1157,3229,2425,1343,1241, # 2592 -1016,2243,2570, 372, 877,2344,2508,1160, 555,1935, 911,4047,5307, 466,1170, 169, # 2608 -1051,2921,2697,3729,2481,3012,1182,2012,2571,1251,2636,5308, 992,2345,3491,1540, # 2624 -2730,1201,2071,2406,1997,2482,5309,4638, 528,1923,2191,1503,1874,1570,2369,3379, # 2640 -3309,5310, 557,1073,5311,1828,3492,2088,2271,3165,3059,3107, 767,3108,2799,4639, # 2656 -1006,4302,4640,2346,1267,2179,3730,3230, 778,4048,3231,2731,1597,2667,5312,4641, # 2672 -5313,3493,5314,5315,5316,3310,2698,1433,3311, 131, 95,1504,4049, 723,4303,3166, # 2688 -1842,3610,2768,2192,4050,2028,2105,3731,5317,3013,4051,1218,5318,3380,3232,4052, # 2704 -4304,2584, 248,1634,3864, 912,5319,2845,3732,3060,3865, 654, 53,5320,3014,5321, # 2720 -1688,4642, 777,3494,1032,4053,1425,5322, 191, 820,2121,2846, 971,4643, 931,3233, # 2736 - 135, 664, 783,3866,1998, 772,2922,1936,4054,3867,4644,2923,3234, 282,2732, 640, # 2752 -1372,3495,1127, 922, 325,3381,5323,5324, 711,2045,5325,5326,4055,2223,2800,1937, # 2768 -4056,3382,2224,2255,3868,2305,5327,4645,3869,1258,3312,4057,3235,2139,2965,4058, # 2784 -4059,5328,2225, 258,3236,4646, 101,1227,5329,3313,1755,5330,1391,3314,5331,2924, # 2800 -2057, 893,5332,5333,5334,1402,4305,2347,5335,5336,3237,3611,5337,5338, 878,1325, # 2816 -1781,2801,4647, 259,1385,2585, 744,1183,2272,4648,5339,4060,2509,5340, 684,1024, # 2832 -4306,5341, 472,3612,3496,1165,3315,4061,4062, 322,2153, 881, 455,1695,1152,1340, # 2848 - 660, 554,2154,4649,1058,4650,4307, 830,1065,3383,4063,4651,1924,5342,1703,1919, # 2864 -5343, 932,2273, 122,5344,4652, 947, 677,5345,3870,2637, 297,1906,1925,2274,4653, # 2880 -2322,3316,5346,5347,4308,5348,4309, 84,4310, 112, 989,5349, 547,1059,4064, 701, # 2896 -3613,1019,5350,4311,5351,3497, 942, 639, 457,2306,2456, 993,2966, 407, 851, 494, # 2912 -4654,3384, 927,5352,1237,5353,2426,3385, 573,4312, 680, 921,2925,1279,1875, 285, # 2928 - 790,1448,1984, 719,2168,5354,5355,4655,4065,4066,1649,5356,1541, 563,5357,1077, # 2944 -5358,3386,3061,3498, 511,3015,4067,4068,3733,4069,1268,2572,3387,3238,4656,4657, # 2960 -5359, 535,1048,1276,1189,2926,2029,3167,1438,1373,2847,2967,1134,2013,5360,4313, # 2976 -1238,2586,3109,1259,5361, 700,5362,2968,3168,3734,4314,5363,4315,1146,1876,1907, # 2992 -4658,2611,4070, 781,2427, 132,1589, 203, 147, 273,2802,2407, 898,1787,2155,4071, # 3008 -4072,5364,3871,2803,5365,5366,4659,4660,5367,3239,5368,1635,3872, 965,5369,1805, # 3024 -2699,1516,3614,1121,1082,1329,3317,4073,1449,3873, 65,1128,2848,2927,2769,1590, # 3040 -3874,5370,5371, 12,2668, 45, 976,2587,3169,4661, 517,2535,1013,1037,3240,5372, # 3056 -3875,2849,5373,3876,5374,3499,5375,2612, 614,1999,2323,3877,3110,2733,2638,5376, # 3072 -2588,4316, 599,1269,5377,1811,3735,5378,2700,3111, 759,1060, 489,1806,3388,3318, # 3088 -1358,5379,5380,2391,1387,1215,2639,2256, 490,5381,5382,4317,1759,2392,2348,5383, # 3104 -4662,3878,1908,4074,2640,1807,3241,4663,3500,3319,2770,2349, 874,5384,5385,3501, # 3120 -3736,1859, 91,2928,3737,3062,3879,4664,5386,3170,4075,2669,5387,3502,1202,1403, # 3136 -3880,2969,2536,1517,2510,4665,3503,2511,5388,4666,5389,2701,1886,1495,1731,4076, # 3152 -2370,4667,5390,2030,5391,5392,4077,2702,1216, 237,2589,4318,2324,4078,3881,4668, # 3168 -4669,2703,3615,3504, 445,4670,5393,5394,5395,5396,2771, 61,4079,3738,1823,4080, # 3184 -5397, 687,2046, 935, 925, 405,2670, 703,1096,1860,2734,4671,4081,1877,1367,2704, # 3200 -3389, 918,2106,1782,2483, 334,3320,1611,1093,4672, 564,3171,3505,3739,3390, 945, # 3216 -2641,2058,4673,5398,1926, 872,4319,5399,3506,2705,3112, 349,4320,3740,4082,4674, # 3232 -3882,4321,3741,2156,4083,4675,4676,4322,4677,2408,2047, 782,4084, 400, 251,4323, # 3248 -1624,5400,5401, 277,3742, 299,1265, 476,1191,3883,2122,4324,4325,1109, 205,5402, # 3264 -2590,1000,2157,3616,1861,5403,5404,5405,4678,5406,4679,2573, 107,2484,2158,4085, # 3280 -3507,3172,5407,1533, 541,1301, 158, 753,4326,2886,3617,5408,1696, 370,1088,4327, # 3296 -4680,3618, 579, 327, 440, 162,2244, 269,1938,1374,3508, 968,3063, 56,1396,3113, # 3312 -2107,3321,3391,5409,1927,2159,4681,3016,5410,3619,5411,5412,3743,4682,2485,5413, # 3328 -2804,5414,1650,4683,5415,2613,5416,5417,4086,2671,3392,1149,3393,4087,3884,4088, # 3344 -5418,1076, 49,5419, 951,3242,3322,3323, 450,2850, 920,5420,1812,2805,2371,4328, # 3360 -1909,1138,2372,3885,3509,5421,3243,4684,1910,1147,1518,2428,4685,3886,5422,4686, # 3376 -2393,2614, 260,1796,3244,5423,5424,3887,3324, 708,5425,3620,1704,5426,3621,1351, # 3392 -1618,3394,3017,1887, 944,4329,3395,4330,3064,3396,4331,5427,3744, 422, 413,1714, # 3408 -3325, 500,2059,2350,4332,2486,5428,1344,1911, 954,5429,1668,5430,5431,4089,2409, # 3424 -4333,3622,3888,4334,5432,2307,1318,2512,3114, 133,3115,2887,4687, 629, 31,2851, # 3440 -2706,3889,4688, 850, 949,4689,4090,2970,1732,2089,4335,1496,1853,5433,4091, 620, # 3456 -3245, 981,1242,3745,3397,1619,3746,1643,3326,2140,2457,1971,1719,3510,2169,5434, # 3472 -3246,5435,5436,3398,1829,5437,1277,4690,1565,2048,5438,1636,3623,3116,5439, 869, # 3488 -2852, 655,3890,3891,3117,4092,3018,3892,1310,3624,4691,5440,5441,5442,1733, 558, # 3504 -4692,3747, 335,1549,3065,1756,4336,3748,1946,3511,1830,1291,1192, 470,2735,2108, # 3520 -2806, 913,1054,4093,5443,1027,5444,3066,4094,4693, 982,2672,3399,3173,3512,3247, # 3536 -3248,1947,2807,5445, 571,4694,5446,1831,5447,3625,2591,1523,2429,5448,2090, 984, # 3552 -4695,3749,1960,5449,3750, 852, 923,2808,3513,3751, 969,1519, 999,2049,2325,1705, # 3568 -5450,3118, 615,1662, 151, 597,4095,2410,2326,1049, 275,4696,3752,4337, 568,3753, # 3584 -3626,2487,4338,3754,5451,2430,2275, 409,3249,5452,1566,2888,3514,1002, 769,2853, # 3600 - 194,2091,3174,3755,2226,3327,4339, 628,1505,5453,5454,1763,2180,3019,4096, 521, # 3616 -1161,2592,1788,2206,2411,4697,4097,1625,4340,4341, 412, 42,3119, 464,5455,2642, # 3632 -4698,3400,1760,1571,2889,3515,2537,1219,2207,3893,2643,2141,2373,4699,4700,3328, # 3648 -1651,3401,3627,5456,5457,3628,2488,3516,5458,3756,5459,5460,2276,2092, 460,5461, # 3664 -4701,5462,3020, 962, 588,3629, 289,3250,2644,1116, 52,5463,3067,1797,5464,5465, # 3680 -5466,1467,5467,1598,1143,3757,4342,1985,1734,1067,4702,1280,3402, 465,4703,1572, # 3696 - 510,5468,1928,2245,1813,1644,3630,5469,4704,3758,5470,5471,2673,1573,1534,5472, # 3712 -5473, 536,1808,1761,3517,3894,3175,2645,5474,5475,5476,4705,3518,2929,1912,2809, # 3728 -5477,3329,1122, 377,3251,5478, 360,5479,5480,4343,1529, 551,5481,2060,3759,1769, # 3744 -2431,5482,2930,4344,3330,3120,2327,2109,2031,4706,1404, 136,1468,1479, 672,1171, # 3760 -3252,2308, 271,3176,5483,2772,5484,2050, 678,2736, 865,1948,4707,5485,2014,4098, # 3776 -2971,5486,2737,2227,1397,3068,3760,4708,4709,1735,2931,3403,3631,5487,3895, 509, # 3792 -2854,2458,2890,3896,5488,5489,3177,3178,4710,4345,2538,4711,2309,1166,1010, 552, # 3808 - 681,1888,5490,5491,2972,2973,4099,1287,1596,1862,3179, 358, 453, 736, 175, 478, # 3824 -1117, 905,1167,1097,5492,1854,1530,5493,1706,5494,2181,3519,2292,3761,3520,3632, # 3840 -4346,2093,4347,5495,3404,1193,2489,4348,1458,2193,2208,1863,1889,1421,3331,2932, # 3856 -3069,2182,3521, 595,2123,5496,4100,5497,5498,4349,1707,2646, 223,3762,1359, 751, # 3872 -3121, 183,3522,5499,2810,3021, 419,2374, 633, 704,3897,2394, 241,5500,5501,5502, # 3888 - 838,3022,3763,2277,2773,2459,3898,1939,2051,4101,1309,3122,2246,1181,5503,1136, # 3904 -2209,3899,2375,1446,4350,2310,4712,5504,5505,4351,1055,2615, 484,3764,5506,4102, # 3920 - 625,4352,2278,3405,1499,4353,4103,5507,4104,4354,3253,2279,2280,3523,5508,5509, # 3936 -2774, 808,2616,3765,3406,4105,4355,3123,2539, 526,3407,3900,4356, 955,5510,1620, # 3952 -4357,2647,2432,5511,1429,3766,1669,1832, 994, 928,5512,3633,1260,5513,5514,5515, # 3968 -1949,2293, 741,2933,1626,4358,2738,2460, 867,1184, 362,3408,1392,5516,5517,4106, # 3984 -4359,1770,1736,3254,2934,4713,4714,1929,2707,1459,1158,5518,3070,3409,2891,1292, # 4000 -1930,2513,2855,3767,1986,1187,2072,2015,2617,4360,5519,2574,2514,2170,3768,2490, # 4016 -3332,5520,3769,4715,5521,5522, 666,1003,3023,1022,3634,4361,5523,4716,1814,2257, # 4032 - 574,3901,1603, 295,1535, 705,3902,4362, 283, 858, 417,5524,5525,3255,4717,4718, # 4048 -3071,1220,1890,1046,2281,2461,4107,1393,1599, 689,2575, 388,4363,5526,2491, 802, # 4064 -5527,2811,3903,2061,1405,2258,5528,4719,3904,2110,1052,1345,3256,1585,5529, 809, # 4080 -5530,5531,5532, 575,2739,3524, 956,1552,1469,1144,2328,5533,2329,1560,2462,3635, # 4096 -3257,4108, 616,2210,4364,3180,2183,2294,5534,1833,5535,3525,4720,5536,1319,3770, # 4112 -3771,1211,3636,1023,3258,1293,2812,5537,5538,5539,3905, 607,2311,3906, 762,2892, # 4128 -1439,4365,1360,4721,1485,3072,5540,4722,1038,4366,1450,2062,2648,4367,1379,4723, # 4144 -2593,5541,5542,4368,1352,1414,2330,2935,1172,5543,5544,3907,3908,4724,1798,1451, # 4160 -5545,5546,5547,5548,2936,4109,4110,2492,2351, 411,4111,4112,3637,3333,3124,4725, # 4176 -1561,2674,1452,4113,1375,5549,5550, 47,2974, 316,5551,1406,1591,2937,3181,5552, # 4192 -1025,2142,3125,3182, 354,2740, 884,2228,4369,2412, 508,3772, 726,3638, 996,2433, # 4208 -3639, 729,5553, 392,2194,1453,4114,4726,3773,5554,5555,2463,3640,2618,1675,2813, # 4224 - 919,2352,2975,2353,1270,4727,4115, 73,5556,5557, 647,5558,3259,2856,2259,1550, # 4240 -1346,3024,5559,1332, 883,3526,5560,5561,5562,5563,3334,2775,5564,1212, 831,1347, # 4256 -4370,4728,2331,3909,1864,3073, 720,3910,4729,4730,3911,5565,4371,5566,5567,4731, # 4272 -5568,5569,1799,4732,3774,2619,4733,3641,1645,2376,4734,5570,2938, 669,2211,2675, # 4288 -2434,5571,2893,5572,5573,1028,3260,5574,4372,2413,5575,2260,1353,5576,5577,4735, # 4304 -3183, 518,5578,4116,5579,4373,1961,5580,2143,4374,5581,5582,3025,2354,2355,3912, # 4320 - 516,1834,1454,4117,2708,4375,4736,2229,2620,1972,1129,3642,5583,2776,5584,2976, # 4336 -1422, 577,1470,3026,1524,3410,5585,5586, 432,4376,3074,3527,5587,2594,1455,2515, # 4352 -2230,1973,1175,5588,1020,2741,4118,3528,4737,5589,2742,5590,1743,1361,3075,3529, # 4368 -2649,4119,4377,4738,2295, 895, 924,4378,2171, 331,2247,3076, 166,1627,3077,1098, # 4384 -5591,1232,2894,2231,3411,4739, 657, 403,1196,2377, 542,3775,3412,1600,4379,3530, # 4400 -5592,4740,2777,3261, 576, 530,1362,4741,4742,2540,2676,3776,4120,5593, 842,3913, # 4416 -5594,2814,2032,1014,4121, 213,2709,3413, 665, 621,4380,5595,3777,2939,2435,5596, # 4432 -2436,3335,3643,3414,4743,4381,2541,4382,4744,3644,1682,4383,3531,1380,5597, 724, # 4448 -2282, 600,1670,5598,1337,1233,4745,3126,2248,5599,1621,4746,5600, 651,4384,5601, # 4464 -1612,4385,2621,5602,2857,5603,2743,2312,3078,5604, 716,2464,3079, 174,1255,2710, # 4480 -4122,3645, 548,1320,1398, 728,4123,1574,5605,1891,1197,3080,4124,5606,3081,3082, # 4496 -3778,3646,3779, 747,5607, 635,4386,4747,5608,5609,5610,4387,5611,5612,4748,5613, # 4512 -3415,4749,2437, 451,5614,3780,2542,2073,4388,2744,4389,4125,5615,1764,4750,5616, # 4528 -4390, 350,4751,2283,2395,2493,5617,4391,4126,2249,1434,4127, 488,4752, 458,4392, # 4544 -4128,3781, 771,1330,2396,3914,2576,3184,2160,2414,1553,2677,3185,4393,5618,2494, # 4560 -2895,2622,1720,2711,4394,3416,4753,5619,2543,4395,5620,3262,4396,2778,5621,2016, # 4576 -2745,5622,1155,1017,3782,3915,5623,3336,2313, 201,1865,4397,1430,5624,4129,5625, # 4592 -5626,5627,5628,5629,4398,1604,5630, 414,1866, 371,2595,4754,4755,3532,2017,3127, # 4608 -4756,1708, 960,4399, 887, 389,2172,1536,1663,1721,5631,2232,4130,2356,2940,1580, # 4624 -5632,5633,1744,4757,2544,4758,4759,5634,4760,5635,2074,5636,4761,3647,3417,2896, # 4640 -4400,5637,4401,2650,3418,2815, 673,2712,2465, 709,3533,4131,3648,4402,5638,1148, # 4656 - 502, 634,5639,5640,1204,4762,3649,1575,4763,2623,3783,5641,3784,3128, 948,3263, # 4672 - 121,1745,3916,1110,5642,4403,3083,2516,3027,4132,3785,1151,1771,3917,1488,4133, # 4688 -1987,5643,2438,3534,5644,5645,2094,5646,4404,3918,1213,1407,2816, 531,2746,2545, # 4704 -3264,1011,1537,4764,2779,4405,3129,1061,5647,3786,3787,1867,2897,5648,2018, 120, # 4720 -4406,4407,2063,3650,3265,2314,3919,2678,3419,1955,4765,4134,5649,3535,1047,2713, # 4736 -1266,5650,1368,4766,2858, 649,3420,3920,2546,2747,1102,2859,2679,5651,5652,2000, # 4752 -5653,1111,3651,2977,5654,2495,3921,3652,2817,1855,3421,3788,5655,5656,3422,2415, # 4768 -2898,3337,3266,3653,5657,2577,5658,3654,2818,4135,1460, 856,5659,3655,5660,2899, # 4784 -2978,5661,2900,3922,5662,4408, 632,2517, 875,3923,1697,3924,2296,5663,5664,4767, # 4800 -3028,1239, 580,4768,4409,5665, 914, 936,2075,1190,4136,1039,2124,5666,5667,5668, # 4816 -5669,3423,1473,5670,1354,4410,3925,4769,2173,3084,4137, 915,3338,4411,4412,3339, # 4832 -1605,1835,5671,2748, 398,3656,4413,3926,4138, 328,1913,2860,4139,3927,1331,4414, # 4848 -3029, 937,4415,5672,3657,4140,4141,3424,2161,4770,3425, 524, 742, 538,3085,1012, # 4864 -5673,5674,3928,2466,5675, 658,1103, 225,3929,5676,5677,4771,5678,4772,5679,3267, # 4880 -1243,5680,4142, 963,2250,4773,5681,2714,3658,3186,5682,5683,2596,2332,5684,4774, # 4896 -5685,5686,5687,3536, 957,3426,2547,2033,1931,2941,2467, 870,2019,3659,1746,2780, # 4912 -2781,2439,2468,5688,3930,5689,3789,3130,3790,3537,3427,3791,5690,1179,3086,5691, # 4928 -3187,2378,4416,3792,2548,3188,3131,2749,4143,5692,3428,1556,2549,2297, 977,2901, # 4944 -2034,4144,1205,3429,5693,1765,3430,3189,2125,1271, 714,1689,4775,3538,5694,2333, # 4960 -3931, 533,4417,3660,2184, 617,5695,2469,3340,3539,2315,5696,5697,3190,5698,5699, # 4976 -3932,1988, 618, 427,2651,3540,3431,5700,5701,1244,1690,5702,2819,4418,4776,5703, # 4992 -3541,4777,5704,2284,1576, 473,3661,4419,3432, 972,5705,3662,5706,3087,5707,5708, # 5008 -4778,4779,5709,3793,4145,4146,5710, 153,4780, 356,5711,1892,2902,4420,2144, 408, # 5024 - 803,2357,5712,3933,5713,4421,1646,2578,2518,4781,4782,3934,5714,3935,4422,5715, # 5040 -2416,3433, 752,5716,5717,1962,3341,2979,5718, 746,3030,2470,4783,4423,3794, 698, # 5056 -4784,1893,4424,3663,2550,4785,3664,3936,5719,3191,3434,5720,1824,1302,4147,2715, # 5072 -3937,1974,4425,5721,4426,3192, 823,1303,1288,1236,2861,3542,4148,3435, 774,3938, # 5088 -5722,1581,4786,1304,2862,3939,4787,5723,2440,2162,1083,3268,4427,4149,4428, 344, # 5104 -1173, 288,2316, 454,1683,5724,5725,1461,4788,4150,2597,5726,5727,4789, 985, 894, # 5120 -5728,3436,3193,5729,1914,2942,3795,1989,5730,2111,1975,5731,4151,5732,2579,1194, # 5136 - 425,5733,4790,3194,1245,3796,4429,5734,5735,2863,5736, 636,4791,1856,3940, 760, # 5152 -1800,5737,4430,2212,1508,4792,4152,1894,1684,2298,5738,5739,4793,4431,4432,2213, # 5168 - 479,5740,5741, 832,5742,4153,2496,5743,2980,2497,3797, 990,3132, 627,1815,2652, # 5184 -4433,1582,4434,2126,2112,3543,4794,5744, 799,4435,3195,5745,4795,2113,1737,3031, # 5200 -1018, 543, 754,4436,3342,1676,4796,4797,4154,4798,1489,5746,3544,5747,2624,2903, # 5216 -4155,5748,5749,2981,5750,5751,5752,5753,3196,4799,4800,2185,1722,5754,3269,3270, # 5232 -1843,3665,1715, 481, 365,1976,1857,5755,5756,1963,2498,4801,5757,2127,3666,3271, # 5248 - 433,1895,2064,2076,5758, 602,2750,5759,5760,5761,5762,5763,3032,1628,3437,5764, # 5264 -3197,4802,4156,2904,4803,2519,5765,2551,2782,5766,5767,5768,3343,4804,2905,5769, # 5280 -4805,5770,2864,4806,4807,1221,2982,4157,2520,5771,5772,5773,1868,1990,5774,5775, # 5296 -5776,1896,5777,5778,4808,1897,4158, 318,5779,2095,4159,4437,5780,5781, 485,5782, # 5312 - 938,3941, 553,2680, 116,5783,3942,3667,5784,3545,2681,2783,3438,3344,2820,5785, # 5328 -3668,2943,4160,1747,2944,2983,5786,5787, 207,5788,4809,5789,4810,2521,5790,3033, # 5344 - 890,3669,3943,5791,1878,3798,3439,5792,2186,2358,3440,1652,5793,5794,5795, 941, # 5360 -2299, 208,3546,4161,2020, 330,4438,3944,2906,2499,3799,4439,4811,5796,5797,5798, # 5376 -) - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5prober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5prober.py deleted file mode 100644 index 98f9970..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5prober.py +++ /dev/null @@ -1,47 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import Big5DistributionAnalysis -from .mbcssm import BIG5_SM_MODEL - - -class Big5Prober(MultiByteCharSetProber): - def __init__(self): - super(Big5Prober, self).__init__() - self.coding_sm = CodingStateMachine(BIG5_SM_MODEL) - self.distribution_analyzer = Big5DistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "Big5" - - @property - def language(self): - return "Chinese" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/chardistribution.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/chardistribution.py deleted file mode 100644 index c0395f4..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/chardistribution.py +++ /dev/null @@ -1,233 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .euctwfreq import (EUCTW_CHAR_TO_FREQ_ORDER, EUCTW_TABLE_SIZE, - EUCTW_TYPICAL_DISTRIBUTION_RATIO) -from .euckrfreq import (EUCKR_CHAR_TO_FREQ_ORDER, EUCKR_TABLE_SIZE, - EUCKR_TYPICAL_DISTRIBUTION_RATIO) -from .gb2312freq import (GB2312_CHAR_TO_FREQ_ORDER, GB2312_TABLE_SIZE, - GB2312_TYPICAL_DISTRIBUTION_RATIO) -from .big5freq import (BIG5_CHAR_TO_FREQ_ORDER, BIG5_TABLE_SIZE, - BIG5_TYPICAL_DISTRIBUTION_RATIO) -from .jisfreq import (JIS_CHAR_TO_FREQ_ORDER, JIS_TABLE_SIZE, - JIS_TYPICAL_DISTRIBUTION_RATIO) - - -class CharDistributionAnalysis(object): - ENOUGH_DATA_THRESHOLD = 1024 - SURE_YES = 0.99 - SURE_NO = 0.01 - MINIMUM_DATA_THRESHOLD = 3 - - def __init__(self): - # Mapping table to get frequency order from char order (get from - # GetOrder()) - self._char_to_freq_order = None - self._table_size = None # Size of above table - # This is a constant value which varies from language to language, - # used in calculating confidence. See - # http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html - # for further detail. - self.typical_distribution_ratio = None - self._done = None - self._total_chars = None - self._freq_chars = None - self.reset() - - def reset(self): - """reset analyser, clear any state""" - # If this flag is set to True, detection is done and conclusion has - # been made - self._done = False - self._total_chars = 0 # Total characters encountered - # The number of characters whose frequency order is less than 512 - self._freq_chars = 0 - - def feed(self, char, char_len): - """feed a character with known length""" - if char_len == 2: - # we only care about 2-bytes character in our distribution analysis - order = self.get_order(char) - else: - order = -1 - if order >= 0: - self._total_chars += 1 - # order is valid - if order < self._table_size: - if 512 > self._char_to_freq_order[order]: - self._freq_chars += 1 - - def get_confidence(self): - """return confidence based on existing data""" - # if we didn't receive any character in our consideration range, - # return negative answer - if self._total_chars <= 0 or self._freq_chars <= self.MINIMUM_DATA_THRESHOLD: - return self.SURE_NO - - if self._total_chars != self._freq_chars: - r = (self._freq_chars / ((self._total_chars - self._freq_chars) - * self.typical_distribution_ratio)) - if r < self.SURE_YES: - return r - - # normalize confidence (we don't want to be 100% sure) - return self.SURE_YES - - def got_enough_data(self): - # It is not necessary to receive all data to draw conclusion. - # For charset detection, certain amount of data is enough - return self._total_chars > self.ENOUGH_DATA_THRESHOLD - - def get_order(self, byte_str): - # We do not handle characters based on the original encoding string, - # but convert this encoding string to a number, here called order. - # This allows multiple encodings of a language to share one frequency - # table. - return -1 - - -class EUCTWDistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(EUCTWDistributionAnalysis, self).__init__() - self._char_to_freq_order = EUCTW_CHAR_TO_FREQ_ORDER - self._table_size = EUCTW_TABLE_SIZE - self.typical_distribution_ratio = EUCTW_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for euc-TW encoding, we are interested - # first byte range: 0xc4 -- 0xfe - # second byte range: 0xa1 -- 0xfe - # no validation needed here. State machine has done that - first_char = byte_str[0] - if first_char >= 0xC4: - return 94 * (first_char - 0xC4) + byte_str[1] - 0xA1 - else: - return -1 - - -class EUCKRDistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(EUCKRDistributionAnalysis, self).__init__() - self._char_to_freq_order = EUCKR_CHAR_TO_FREQ_ORDER - self._table_size = EUCKR_TABLE_SIZE - self.typical_distribution_ratio = EUCKR_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for euc-KR encoding, we are interested - # first byte range: 0xb0 -- 0xfe - # second byte range: 0xa1 -- 0xfe - # no validation needed here. State machine has done that - first_char = byte_str[0] - if first_char >= 0xB0: - return 94 * (first_char - 0xB0) + byte_str[1] - 0xA1 - else: - return -1 - - -class GB2312DistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(GB2312DistributionAnalysis, self).__init__() - self._char_to_freq_order = GB2312_CHAR_TO_FREQ_ORDER - self._table_size = GB2312_TABLE_SIZE - self.typical_distribution_ratio = GB2312_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for GB2312 encoding, we are interested - # first byte range: 0xb0 -- 0xfe - # second byte range: 0xa1 -- 0xfe - # no validation needed here. State machine has done that - first_char, second_char = byte_str[0], byte_str[1] - if (first_char >= 0xB0) and (second_char >= 0xA1): - return 94 * (first_char - 0xB0) + second_char - 0xA1 - else: - return -1 - - -class Big5DistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(Big5DistributionAnalysis, self).__init__() - self._char_to_freq_order = BIG5_CHAR_TO_FREQ_ORDER - self._table_size = BIG5_TABLE_SIZE - self.typical_distribution_ratio = BIG5_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for big5 encoding, we are interested - # first byte range: 0xa4 -- 0xfe - # second byte range: 0x40 -- 0x7e , 0xa1 -- 0xfe - # no validation needed here. State machine has done that - first_char, second_char = byte_str[0], byte_str[1] - if first_char >= 0xA4: - if second_char >= 0xA1: - return 157 * (first_char - 0xA4) + second_char - 0xA1 + 63 - else: - return 157 * (first_char - 0xA4) + second_char - 0x40 - else: - return -1 - - -class SJISDistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(SJISDistributionAnalysis, self).__init__() - self._char_to_freq_order = JIS_CHAR_TO_FREQ_ORDER - self._table_size = JIS_TABLE_SIZE - self.typical_distribution_ratio = JIS_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for sjis encoding, we are interested - # first byte range: 0x81 -- 0x9f , 0xe0 -- 0xfe - # second byte range: 0x40 -- 0x7e, 0x81 -- oxfe - # no validation needed here. State machine has done that - first_char, second_char = byte_str[0], byte_str[1] - if (first_char >= 0x81) and (first_char <= 0x9F): - order = 188 * (first_char - 0x81) - elif (first_char >= 0xE0) and (first_char <= 0xEF): - order = 188 * (first_char - 0xE0 + 31) - else: - return -1 - order = order + second_char - 0x40 - if second_char > 0x7F: - order = -1 - return order - - -class EUCJPDistributionAnalysis(CharDistributionAnalysis): - def __init__(self): - super(EUCJPDistributionAnalysis, self).__init__() - self._char_to_freq_order = JIS_CHAR_TO_FREQ_ORDER - self._table_size = JIS_TABLE_SIZE - self.typical_distribution_ratio = JIS_TYPICAL_DISTRIBUTION_RATIO - - def get_order(self, byte_str): - # for euc-JP encoding, we are interested - # first byte range: 0xa0 -- 0xfe - # second byte range: 0xa1 -- 0xfe - # no validation needed here. State machine has done that - char = byte_str[0] - if char >= 0xA0: - return 94 * (char - 0xA1) + byte_str[1] - 0xa1 - else: - return -1 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetgroupprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetgroupprober.py deleted file mode 100644 index 8b3738e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetgroupprober.py +++ /dev/null @@ -1,106 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .enums import ProbingState -from .charsetprober import CharSetProber - - -class CharSetGroupProber(CharSetProber): - def __init__(self, lang_filter=None): - super(CharSetGroupProber, self).__init__(lang_filter=lang_filter) - self._active_num = 0 - self.probers = [] - self._best_guess_prober = None - - def reset(self): - super(CharSetGroupProber, self).reset() - self._active_num = 0 - for prober in self.probers: - if prober: - prober.reset() - prober.active = True - self._active_num += 1 - self._best_guess_prober = None - - @property - def charset_name(self): - if not self._best_guess_prober: - self.get_confidence() - if not self._best_guess_prober: - return None - return self._best_guess_prober.charset_name - - @property - def language(self): - if not self._best_guess_prober: - self.get_confidence() - if not self._best_guess_prober: - return None - return self._best_guess_prober.language - - def feed(self, byte_str): - for prober in self.probers: - if not prober: - continue - if not prober.active: - continue - state = prober.feed(byte_str) - if not state: - continue - if state == ProbingState.FOUND_IT: - self._best_guess_prober = prober - return self.state - elif state == ProbingState.NOT_ME: - prober.active = False - self._active_num -= 1 - if self._active_num <= 0: - self._state = ProbingState.NOT_ME - return self.state - return self.state - - def get_confidence(self): - state = self.state - if state == ProbingState.FOUND_IT: - return 0.99 - elif state == ProbingState.NOT_ME: - return 0.01 - best_conf = 0.0 - self._best_guess_prober = None - for prober in self.probers: - if not prober: - continue - if not prober.active: - self.logger.debug('%s not active', prober.charset_name) - continue - conf = prober.get_confidence() - self.logger.debug('%s %s confidence = %s', prober.charset_name, prober.language, conf) - if best_conf < conf: - best_conf = conf - self._best_guess_prober = prober - if not self._best_guess_prober: - return 0.0 - return best_conf diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetprober.py deleted file mode 100644 index eac4e59..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetprober.py +++ /dev/null @@ -1,145 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -import logging -import re - -from .enums import ProbingState - - -class CharSetProber(object): - - SHORTCUT_THRESHOLD = 0.95 - - def __init__(self, lang_filter=None): - self._state = None - self.lang_filter = lang_filter - self.logger = logging.getLogger(__name__) - - def reset(self): - self._state = ProbingState.DETECTING - - @property - def charset_name(self): - return None - - def feed(self, buf): - pass - - @property - def state(self): - return self._state - - def get_confidence(self): - return 0.0 - - @staticmethod - def filter_high_byte_only(buf): - buf = re.sub(b'([\x00-\x7F])+', b' ', buf) - return buf - - @staticmethod - def filter_international_words(buf): - """ - We define three types of bytes: - alphabet: english alphabets [a-zA-Z] - international: international characters [\x80-\xFF] - marker: everything else [^a-zA-Z\x80-\xFF] - - The input buffer can be thought to contain a series of words delimited - by markers. This function works to filter all words that contain at - least one international character. All contiguous sequences of markers - are replaced by a single space ascii character. - - This filter applies to all scripts which do not use English characters. - """ - filtered = bytearray() - - # This regex expression filters out only words that have at-least one - # international character. The word may include one marker character at - # the end. - words = re.findall(b'[a-zA-Z]*[\x80-\xFF]+[a-zA-Z]*[^a-zA-Z\x80-\xFF]?', - buf) - - for word in words: - filtered.extend(word[:-1]) - - # If the last character in the word is a marker, replace it with a - # space as markers shouldn't affect our analysis (they are used - # similarly across all languages and may thus have similar - # frequencies). - last_char = word[-1:] - if not last_char.isalpha() and last_char < b'\x80': - last_char = b' ' - filtered.extend(last_char) - - return filtered - - @staticmethod - def filter_with_english_letters(buf): - """ - Returns a copy of ``buf`` that retains only the sequences of English - alphabet and high byte characters that are not between <> characters. - Also retains English alphabet and high byte characters immediately - before occurrences of >. - - This filter can be applied to all scripts which contain both English - characters and extended ASCII characters, but is currently only used by - ``Latin1Prober``. - """ - filtered = bytearray() - in_tag = False - prev = 0 - - for curr in range(len(buf)): - # Slice here to get bytes instead of an int with Python 3 - buf_char = buf[curr:curr + 1] - # Check if we're coming out of or entering an HTML tag - if buf_char == b'>': - in_tag = False - elif buf_char == b'<': - in_tag = True - - # If current character is not extended-ASCII and not alphabetic... - if buf_char < b'\x80' and not buf_char.isalpha(): - # ...and we're not in a tag - if curr > prev and not in_tag: - # Keep everything after last non-extended-ASCII, - # non-alphabetic character - filtered.extend(buf[prev:curr]) - # Output a space to delimit stretch we kept - filtered.extend(b' ') - prev = curr + 1 - - # If we're not in a tag... - if not in_tag: - # Keep everything after last non-extended-ASCII, non-alphabetic - # character - filtered.extend(buf[prev:]) - - return filtered diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/__init__.py deleted file mode 100644 index 8b13789..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/chardetect.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/chardetect.py deleted file mode 100644 index c61136b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/chardetect.py +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env python -""" -Script which takes one or more file paths and reports on their detected -encodings - -Example:: - - % chardetect somefile someotherfile - somefile: windows-1252 with confidence 0.5 - someotherfile: ascii with confidence 1.0 - -If no paths are provided, it takes its input from stdin. - -""" - -from __future__ import absolute_import, print_function, unicode_literals - -import argparse -import sys - -from pip._vendor.chardet import __version__ -from pip._vendor.chardet.compat import PY2 -from pip._vendor.chardet.universaldetector import UniversalDetector - - -def description_of(lines, name='stdin'): - """ - Return a string describing the probable encoding of a file or - list of strings. - - :param lines: The lines to get the encoding of. - :type lines: Iterable of bytes - :param name: Name of file or collection of lines - :type name: str - """ - u = UniversalDetector() - for line in lines: - line = bytearray(line) - u.feed(line) - # shortcut out of the loop to save reading further - particularly useful if we read a BOM. - if u.done: - break - u.close() - result = u.result - if PY2: - name = name.decode(sys.getfilesystemencoding(), 'ignore') - if result['encoding']: - return '{0}: {1} with confidence {2}'.format(name, result['encoding'], - result['confidence']) - else: - return '{0}: no result'.format(name) - - -def main(argv=None): - """ - Handles command line arguments and gets things started. - - :param argv: List of arguments, as if specified on the command-line. - If None, ``sys.argv[1:]`` is used instead. - :type argv: list of str - """ - # Get command line arguments - parser = argparse.ArgumentParser( - description="Takes one or more file paths and reports their detected \ - encodings") - parser.add_argument('input', - help='File whose encoding we would like to determine. \ - (default: stdin)', - type=argparse.FileType('rb'), nargs='*', - default=[sys.stdin if PY2 else sys.stdin.buffer]) - parser.add_argument('--version', action='version', - version='%(prog)s {0}'.format(__version__)) - args = parser.parse_args(argv) - - for f in args.input: - if f.isatty(): - print("You are running chardetect interactively. Press " + - "CTRL-D twice at the start of a blank line to signal the " + - "end of your input. If you want help, run chardetect " + - "--help\n", file=sys.stderr) - print(description_of(f, f.name)) - - -if __name__ == '__main__': - main() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/codingstatemachine.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/codingstatemachine.py deleted file mode 100644 index 68fba44..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/codingstatemachine.py +++ /dev/null @@ -1,88 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -import logging - -from .enums import MachineState - - -class CodingStateMachine(object): - """ - A state machine to verify a byte sequence for a particular encoding. For - each byte the detector receives, it will feed that byte to every active - state machine available, one byte at a time. The state machine changes its - state based on its previous state and the byte it receives. There are 3 - states in a state machine that are of interest to an auto-detector: - - START state: This is the state to start with, or a legal byte sequence - (i.e. a valid code point) for character has been identified. - - ME state: This indicates that the state machine identified a byte sequence - that is specific to the charset it is designed for and that - there is no other possible encoding which can contain this byte - sequence. This will to lead to an immediate positive answer for - the detector. - - ERROR state: This indicates the state machine identified an illegal byte - sequence for that encoding. This will lead to an immediate - negative answer for this encoding. Detector will exclude this - encoding from consideration from here on. - """ - def __init__(self, sm): - self._model = sm - self._curr_byte_pos = 0 - self._curr_char_len = 0 - self._curr_state = None - self.logger = logging.getLogger(__name__) - self.reset() - - def reset(self): - self._curr_state = MachineState.START - - def next_state(self, c): - # for each byte we get its class - # if it is first byte, we also get byte length - byte_class = self._model['class_table'][c] - if self._curr_state == MachineState.START: - self._curr_byte_pos = 0 - self._curr_char_len = self._model['char_len_table'][byte_class] - # from byte's class and state_table, we get its next state - curr_state = (self._curr_state * self._model['class_factor'] - + byte_class) - self._curr_state = self._model['state_table'][curr_state] - self._curr_byte_pos += 1 - return self._curr_state - - def get_current_charlen(self): - return self._curr_char_len - - def get_coding_state_machine(self): - return self._model['name'] - - @property - def language(self): - return self._model['language'] diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/compat.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/compat.py deleted file mode 100644 index ddd7468..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/compat.py +++ /dev/null @@ -1,34 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# Contributor(s): -# Dan Blanchard -# Ian Cordasco -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -import sys - - -if sys.version_info < (3, 0): - PY2 = True - PY3 = False - base_str = (str, unicode) - text_type = unicode -else: - PY2 = False - PY3 = True - base_str = (bytes, str) - text_type = str diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cp949prober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cp949prober.py deleted file mode 100644 index efd793a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cp949prober.py +++ /dev/null @@ -1,49 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .chardistribution import EUCKRDistributionAnalysis -from .codingstatemachine import CodingStateMachine -from .mbcharsetprober import MultiByteCharSetProber -from .mbcssm import CP949_SM_MODEL - - -class CP949Prober(MultiByteCharSetProber): - def __init__(self): - super(CP949Prober, self).__init__() - self.coding_sm = CodingStateMachine(CP949_SM_MODEL) - # NOTE: CP949 is a superset of EUC-KR, so the distribution should be - # not different. - self.distribution_analyzer = EUCKRDistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "CP949" - - @property - def language(self): - return "Korean" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/enums.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/enums.py deleted file mode 100644 index 0451207..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/enums.py +++ /dev/null @@ -1,76 +0,0 @@ -""" -All of the Enums that are used throughout the chardet package. - -:author: Dan Blanchard (dan.blanchard@gmail.com) -""" - - -class InputState(object): - """ - This enum represents the different states a universal detector can be in. - """ - PURE_ASCII = 0 - ESC_ASCII = 1 - HIGH_BYTE = 2 - - -class LanguageFilter(object): - """ - This enum represents the different language filters we can apply to a - ``UniversalDetector``. - """ - CHINESE_SIMPLIFIED = 0x01 - CHINESE_TRADITIONAL = 0x02 - JAPANESE = 0x04 - KOREAN = 0x08 - NON_CJK = 0x10 - ALL = 0x1F - CHINESE = CHINESE_SIMPLIFIED | CHINESE_TRADITIONAL - CJK = CHINESE | JAPANESE | KOREAN - - -class ProbingState(object): - """ - This enum represents the different states a prober can be in. - """ - DETECTING = 0 - FOUND_IT = 1 - NOT_ME = 2 - - -class MachineState(object): - """ - This enum represents the different states a state machine can be in. - """ - START = 0 - ERROR = 1 - ITS_ME = 2 - - -class SequenceLikelihood(object): - """ - This enum represents the likelihood of a character following the previous one. - """ - NEGATIVE = 0 - UNLIKELY = 1 - LIKELY = 2 - POSITIVE = 3 - - @classmethod - def get_num_categories(cls): - """:returns: The number of likelihood categories in the enum.""" - return 4 - - -class CharacterCategory(object): - """ - This enum represents the different categories language models for - ``SingleByteCharsetProber`` put characters into. - - Anything less than CONTROL is considered a letter. - """ - UNDEFINED = 255 - LINE_BREAK = 254 - SYMBOL = 253 - DIGIT = 252 - CONTROL = 251 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escprober.py deleted file mode 100644 index c70493f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escprober.py +++ /dev/null @@ -1,101 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .codingstatemachine import CodingStateMachine -from .enums import LanguageFilter, ProbingState, MachineState -from .escsm import (HZ_SM_MODEL, ISO2022CN_SM_MODEL, ISO2022JP_SM_MODEL, - ISO2022KR_SM_MODEL) - - -class EscCharSetProber(CharSetProber): - """ - This CharSetProber uses a "code scheme" approach for detecting encodings, - whereby easily recognizable escape or shift sequences are relied on to - identify these encodings. - """ - - def __init__(self, lang_filter=None): - super(EscCharSetProber, self).__init__(lang_filter=lang_filter) - self.coding_sm = [] - if self.lang_filter & LanguageFilter.CHINESE_SIMPLIFIED: - self.coding_sm.append(CodingStateMachine(HZ_SM_MODEL)) - self.coding_sm.append(CodingStateMachine(ISO2022CN_SM_MODEL)) - if self.lang_filter & LanguageFilter.JAPANESE: - self.coding_sm.append(CodingStateMachine(ISO2022JP_SM_MODEL)) - if self.lang_filter & LanguageFilter.KOREAN: - self.coding_sm.append(CodingStateMachine(ISO2022KR_SM_MODEL)) - self.active_sm_count = None - self._detected_charset = None - self._detected_language = None - self._state = None - self.reset() - - def reset(self): - super(EscCharSetProber, self).reset() - for coding_sm in self.coding_sm: - if not coding_sm: - continue - coding_sm.active = True - coding_sm.reset() - self.active_sm_count = len(self.coding_sm) - self._detected_charset = None - self._detected_language = None - - @property - def charset_name(self): - return self._detected_charset - - @property - def language(self): - return self._detected_language - - def get_confidence(self): - if self._detected_charset: - return 0.99 - else: - return 0.00 - - def feed(self, byte_str): - for c in byte_str: - for coding_sm in self.coding_sm: - if not coding_sm or not coding_sm.active: - continue - coding_state = coding_sm.next_state(c) - if coding_state == MachineState.ERROR: - coding_sm.active = False - self.active_sm_count -= 1 - if self.active_sm_count <= 0: - self._state = ProbingState.NOT_ME - return self.state - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - self._detected_charset = coding_sm.get_coding_state_machine() - self._detected_language = coding_sm.language - return self.state - - return self.state diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escsm.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escsm.py deleted file mode 100644 index 0069523..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escsm.py +++ /dev/null @@ -1,246 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .enums import MachineState - -HZ_CLS = ( -1,0,0,0,0,0,0,0, # 00 - 07 -0,0,0,0,0,0,0,0, # 08 - 0f -0,0,0,0,0,0,0,0, # 10 - 17 -0,0,0,1,0,0,0,0, # 18 - 1f -0,0,0,0,0,0,0,0, # 20 - 27 -0,0,0,0,0,0,0,0, # 28 - 2f -0,0,0,0,0,0,0,0, # 30 - 37 -0,0,0,0,0,0,0,0, # 38 - 3f -0,0,0,0,0,0,0,0, # 40 - 47 -0,0,0,0,0,0,0,0, # 48 - 4f -0,0,0,0,0,0,0,0, # 50 - 57 -0,0,0,0,0,0,0,0, # 58 - 5f -0,0,0,0,0,0,0,0, # 60 - 67 -0,0,0,0,0,0,0,0, # 68 - 6f -0,0,0,0,0,0,0,0, # 70 - 77 -0,0,0,4,0,5,2,0, # 78 - 7f -1,1,1,1,1,1,1,1, # 80 - 87 -1,1,1,1,1,1,1,1, # 88 - 8f -1,1,1,1,1,1,1,1, # 90 - 97 -1,1,1,1,1,1,1,1, # 98 - 9f -1,1,1,1,1,1,1,1, # a0 - a7 -1,1,1,1,1,1,1,1, # a8 - af -1,1,1,1,1,1,1,1, # b0 - b7 -1,1,1,1,1,1,1,1, # b8 - bf -1,1,1,1,1,1,1,1, # c0 - c7 -1,1,1,1,1,1,1,1, # c8 - cf -1,1,1,1,1,1,1,1, # d0 - d7 -1,1,1,1,1,1,1,1, # d8 - df -1,1,1,1,1,1,1,1, # e0 - e7 -1,1,1,1,1,1,1,1, # e8 - ef -1,1,1,1,1,1,1,1, # f0 - f7 -1,1,1,1,1,1,1,1, # f8 - ff -) - -HZ_ST = ( -MachineState.START,MachineState.ERROR, 3,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,# 00-07 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 08-0f -MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START, 4,MachineState.ERROR,# 10-17 - 5,MachineState.ERROR, 6,MachineState.ERROR, 5, 5, 4,MachineState.ERROR,# 18-1f - 4,MachineState.ERROR, 4, 4, 4,MachineState.ERROR, 4,MachineState.ERROR,# 20-27 - 4,MachineState.ITS_ME,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 28-2f -) - -HZ_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0) - -HZ_SM_MODEL = {'class_table': HZ_CLS, - 'class_factor': 6, - 'state_table': HZ_ST, - 'char_len_table': HZ_CHAR_LEN_TABLE, - 'name': "HZ-GB-2312", - 'language': 'Chinese'} - -ISO2022CN_CLS = ( -2,0,0,0,0,0,0,0, # 00 - 07 -0,0,0,0,0,0,0,0, # 08 - 0f -0,0,0,0,0,0,0,0, # 10 - 17 -0,0,0,1,0,0,0,0, # 18 - 1f -0,0,0,0,0,0,0,0, # 20 - 27 -0,3,0,0,0,0,0,0, # 28 - 2f -0,0,0,0,0,0,0,0, # 30 - 37 -0,0,0,0,0,0,0,0, # 38 - 3f -0,0,0,4,0,0,0,0, # 40 - 47 -0,0,0,0,0,0,0,0, # 48 - 4f -0,0,0,0,0,0,0,0, # 50 - 57 -0,0,0,0,0,0,0,0, # 58 - 5f -0,0,0,0,0,0,0,0, # 60 - 67 -0,0,0,0,0,0,0,0, # 68 - 6f -0,0,0,0,0,0,0,0, # 70 - 77 -0,0,0,0,0,0,0,0, # 78 - 7f -2,2,2,2,2,2,2,2, # 80 - 87 -2,2,2,2,2,2,2,2, # 88 - 8f -2,2,2,2,2,2,2,2, # 90 - 97 -2,2,2,2,2,2,2,2, # 98 - 9f -2,2,2,2,2,2,2,2, # a0 - a7 -2,2,2,2,2,2,2,2, # a8 - af -2,2,2,2,2,2,2,2, # b0 - b7 -2,2,2,2,2,2,2,2, # b8 - bf -2,2,2,2,2,2,2,2, # c0 - c7 -2,2,2,2,2,2,2,2, # c8 - cf -2,2,2,2,2,2,2,2, # d0 - d7 -2,2,2,2,2,2,2,2, # d8 - df -2,2,2,2,2,2,2,2, # e0 - e7 -2,2,2,2,2,2,2,2, # e8 - ef -2,2,2,2,2,2,2,2, # f0 - f7 -2,2,2,2,2,2,2,2, # f8 - ff -) - -ISO2022CN_ST = ( -MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 00-07 -MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 08-0f -MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 10-17 -MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 4,MachineState.ERROR,# 18-1f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 20-27 - 5, 6,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 28-2f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 30-37 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,# 38-3f -) - -ISO2022CN_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0, 0, 0, 0) - -ISO2022CN_SM_MODEL = {'class_table': ISO2022CN_CLS, - 'class_factor': 9, - 'state_table': ISO2022CN_ST, - 'char_len_table': ISO2022CN_CHAR_LEN_TABLE, - 'name': "ISO-2022-CN", - 'language': 'Chinese'} - -ISO2022JP_CLS = ( -2,0,0,0,0,0,0,0, # 00 - 07 -0,0,0,0,0,0,2,2, # 08 - 0f -0,0,0,0,0,0,0,0, # 10 - 17 -0,0,0,1,0,0,0,0, # 18 - 1f -0,0,0,0,7,0,0,0, # 20 - 27 -3,0,0,0,0,0,0,0, # 28 - 2f -0,0,0,0,0,0,0,0, # 30 - 37 -0,0,0,0,0,0,0,0, # 38 - 3f -6,0,4,0,8,0,0,0, # 40 - 47 -0,9,5,0,0,0,0,0, # 48 - 4f -0,0,0,0,0,0,0,0, # 50 - 57 -0,0,0,0,0,0,0,0, # 58 - 5f -0,0,0,0,0,0,0,0, # 60 - 67 -0,0,0,0,0,0,0,0, # 68 - 6f -0,0,0,0,0,0,0,0, # 70 - 77 -0,0,0,0,0,0,0,0, # 78 - 7f -2,2,2,2,2,2,2,2, # 80 - 87 -2,2,2,2,2,2,2,2, # 88 - 8f -2,2,2,2,2,2,2,2, # 90 - 97 -2,2,2,2,2,2,2,2, # 98 - 9f -2,2,2,2,2,2,2,2, # a0 - a7 -2,2,2,2,2,2,2,2, # a8 - af -2,2,2,2,2,2,2,2, # b0 - b7 -2,2,2,2,2,2,2,2, # b8 - bf -2,2,2,2,2,2,2,2, # c0 - c7 -2,2,2,2,2,2,2,2, # c8 - cf -2,2,2,2,2,2,2,2, # d0 - d7 -2,2,2,2,2,2,2,2, # d8 - df -2,2,2,2,2,2,2,2, # e0 - e7 -2,2,2,2,2,2,2,2, # e8 - ef -2,2,2,2,2,2,2,2, # f0 - f7 -2,2,2,2,2,2,2,2, # f8 - ff -) - -ISO2022JP_ST = ( -MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 00-07 -MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 08-0f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 10-17 -MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,# 18-1f -MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 4,MachineState.ERROR,MachineState.ERROR,# 20-27 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 6,MachineState.ITS_ME,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,# 28-2f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,# 30-37 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 38-3f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,MachineState.START,# 40-47 -) - -ISO2022JP_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - -ISO2022JP_SM_MODEL = {'class_table': ISO2022JP_CLS, - 'class_factor': 10, - 'state_table': ISO2022JP_ST, - 'char_len_table': ISO2022JP_CHAR_LEN_TABLE, - 'name': "ISO-2022-JP", - 'language': 'Japanese'} - -ISO2022KR_CLS = ( -2,0,0,0,0,0,0,0, # 00 - 07 -0,0,0,0,0,0,0,0, # 08 - 0f -0,0,0,0,0,0,0,0, # 10 - 17 -0,0,0,1,0,0,0,0, # 18 - 1f -0,0,0,0,3,0,0,0, # 20 - 27 -0,4,0,0,0,0,0,0, # 28 - 2f -0,0,0,0,0,0,0,0, # 30 - 37 -0,0,0,0,0,0,0,0, # 38 - 3f -0,0,0,5,0,0,0,0, # 40 - 47 -0,0,0,0,0,0,0,0, # 48 - 4f -0,0,0,0,0,0,0,0, # 50 - 57 -0,0,0,0,0,0,0,0, # 58 - 5f -0,0,0,0,0,0,0,0, # 60 - 67 -0,0,0,0,0,0,0,0, # 68 - 6f -0,0,0,0,0,0,0,0, # 70 - 77 -0,0,0,0,0,0,0,0, # 78 - 7f -2,2,2,2,2,2,2,2, # 80 - 87 -2,2,2,2,2,2,2,2, # 88 - 8f -2,2,2,2,2,2,2,2, # 90 - 97 -2,2,2,2,2,2,2,2, # 98 - 9f -2,2,2,2,2,2,2,2, # a0 - a7 -2,2,2,2,2,2,2,2, # a8 - af -2,2,2,2,2,2,2,2, # b0 - b7 -2,2,2,2,2,2,2,2, # b8 - bf -2,2,2,2,2,2,2,2, # c0 - c7 -2,2,2,2,2,2,2,2, # c8 - cf -2,2,2,2,2,2,2,2, # d0 - d7 -2,2,2,2,2,2,2,2, # d8 - df -2,2,2,2,2,2,2,2, # e0 - e7 -2,2,2,2,2,2,2,2, # e8 - ef -2,2,2,2,2,2,2,2, # f0 - f7 -2,2,2,2,2,2,2,2, # f8 - ff -) - -ISO2022KR_ST = ( -MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,# 00-07 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 08-0f -MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 4,MachineState.ERROR,MachineState.ERROR,# 10-17 -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 18-1f -MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 20-27 -) - -ISO2022KR_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0) - -ISO2022KR_SM_MODEL = {'class_table': ISO2022KR_CLS, - 'class_factor': 6, - 'state_table': ISO2022KR_ST, - 'char_len_table': ISO2022KR_CHAR_LEN_TABLE, - 'name': "ISO-2022-KR", - 'language': 'Korean'} - - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/eucjpprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/eucjpprober.py deleted file mode 100644 index 20ce8f7..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/eucjpprober.py +++ /dev/null @@ -1,92 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .enums import ProbingState, MachineState -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import EUCJPDistributionAnalysis -from .jpcntx import EUCJPContextAnalysis -from .mbcssm import EUCJP_SM_MODEL - - -class EUCJPProber(MultiByteCharSetProber): - def __init__(self): - super(EUCJPProber, self).__init__() - self.coding_sm = CodingStateMachine(EUCJP_SM_MODEL) - self.distribution_analyzer = EUCJPDistributionAnalysis() - self.context_analyzer = EUCJPContextAnalysis() - self.reset() - - def reset(self): - super(EUCJPProber, self).reset() - self.context_analyzer.reset() - - @property - def charset_name(self): - return "EUC-JP" - - @property - def language(self): - return "Japanese" - - def feed(self, byte_str): - for i in range(len(byte_str)): - # PY3K: byte_str is a byte array, so byte_str[i] is an int, not a byte - coding_state = self.coding_sm.next_state(byte_str[i]) - if coding_state == MachineState.ERROR: - self.logger.debug('%s %s prober hit error at byte %s', - self.charset_name, self.language, i) - self._state = ProbingState.NOT_ME - break - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - break - elif coding_state == MachineState.START: - char_len = self.coding_sm.get_current_charlen() - if i == 0: - self._last_char[1] = byte_str[0] - self.context_analyzer.feed(self._last_char, char_len) - self.distribution_analyzer.feed(self._last_char, char_len) - else: - self.context_analyzer.feed(byte_str[i - 1:i + 1], - char_len) - self.distribution_analyzer.feed(byte_str[i - 1:i + 1], - char_len) - - self._last_char[0] = byte_str[-1] - - if self.state == ProbingState.DETECTING: - if (self.context_analyzer.got_enough_data() and - (self.get_confidence() > self.SHORTCUT_THRESHOLD)): - self._state = ProbingState.FOUND_IT - - return self.state - - def get_confidence(self): - context_conf = self.context_analyzer.get_confidence() - distrib_conf = self.distribution_analyzer.get_confidence() - return max(context_conf, distrib_conf) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrfreq.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrfreq.py deleted file mode 100644 index b68078c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrfreq.py +++ /dev/null @@ -1,195 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# Sampling from about 20M text materials include literature and computer technology - -# 128 --> 0.79 -# 256 --> 0.92 -# 512 --> 0.986 -# 1024 --> 0.99944 -# 2048 --> 0.99999 -# -# Idea Distribution Ratio = 0.98653 / (1-0.98653) = 73.24 -# Random Distribution Ration = 512 / (2350-512) = 0.279. -# -# Typical Distribution Ratio - -EUCKR_TYPICAL_DISTRIBUTION_RATIO = 6.0 - -EUCKR_TABLE_SIZE = 2352 - -# Char to FreqOrder table , -EUCKR_CHAR_TO_FREQ_ORDER = ( - 13, 130, 120,1396, 481,1719,1720, 328, 609, 212,1721, 707, 400, 299,1722, 87, -1397,1723, 104, 536,1117,1203,1724,1267, 685,1268, 508,1725,1726,1727,1728,1398, -1399,1729,1730,1731, 141, 621, 326,1057, 368,1732, 267, 488, 20,1733,1269,1734, - 945,1400,1735, 47, 904,1270,1736,1737, 773, 248,1738, 409, 313, 786, 429,1739, - 116, 987, 813,1401, 683, 75,1204, 145,1740,1741,1742,1743, 16, 847, 667, 622, - 708,1744,1745,1746, 966, 787, 304, 129,1747, 60, 820, 123, 676,1748,1749,1750, -1751, 617,1752, 626,1753,1754,1755,1756, 653,1757,1758,1759,1760,1761,1762, 856, - 344,1763,1764,1765,1766, 89, 401, 418, 806, 905, 848,1767,1768,1769, 946,1205, - 709,1770,1118,1771, 241,1772,1773,1774,1271,1775, 569,1776, 999,1777,1778,1779, -1780, 337, 751,1058, 28, 628, 254,1781, 177, 906, 270, 349, 891,1079,1782, 19, -1783, 379,1784, 315,1785, 629, 754,1402, 559,1786, 636, 203,1206,1787, 710, 567, -1788, 935, 814,1789,1790,1207, 766, 528,1791,1792,1208,1793,1794,1795,1796,1797, -1403,1798,1799, 533,1059,1404,1405,1156,1406, 936, 884,1080,1800, 351,1801,1802, -1803,1804,1805, 801,1806,1807,1808,1119,1809,1157, 714, 474,1407,1810, 298, 899, - 885,1811,1120, 802,1158,1812, 892,1813,1814,1408, 659,1815,1816,1121,1817,1818, -1819,1820,1821,1822, 319,1823, 594, 545,1824, 815, 937,1209,1825,1826, 573,1409, -1022,1827,1210,1828,1829,1830,1831,1832,1833, 556, 722, 807,1122,1060,1834, 697, -1835, 900, 557, 715,1836,1410, 540,1411, 752,1159, 294, 597,1211, 976, 803, 770, -1412,1837,1838, 39, 794,1413, 358,1839, 371, 925,1840, 453, 661, 788, 531, 723, - 544,1023,1081, 869, 91,1841, 392, 430, 790, 602,1414, 677,1082, 457,1415,1416, -1842,1843, 475, 327,1024,1417, 795, 121,1844, 733, 403,1418,1845,1846,1847, 300, - 119, 711,1212, 627,1848,1272, 207,1849,1850, 796,1213, 382,1851, 519,1852,1083, - 893,1853,1854,1855, 367, 809, 487, 671,1856, 663,1857,1858, 956, 471, 306, 857, -1859,1860,1160,1084,1861,1862,1863,1864,1865,1061,1866,1867,1868,1869,1870,1871, - 282, 96, 574,1872, 502,1085,1873,1214,1874, 907,1875,1876, 827, 977,1419,1420, -1421, 268,1877,1422,1878,1879,1880, 308,1881, 2, 537,1882,1883,1215,1884,1885, - 127, 791,1886,1273,1423,1887, 34, 336, 404, 643,1888, 571, 654, 894, 840,1889, - 0, 886,1274, 122, 575, 260, 908, 938,1890,1275, 410, 316,1891,1892, 100,1893, -1894,1123, 48,1161,1124,1025,1895, 633, 901,1276,1896,1897, 115, 816,1898, 317, -1899, 694,1900, 909, 734,1424, 572, 866,1425, 691, 85, 524,1010, 543, 394, 841, -1901,1902,1903,1026,1904,1905,1906,1907,1908,1909, 30, 451, 651, 988, 310,1910, -1911,1426, 810,1216, 93,1912,1913,1277,1217,1914, 858, 759, 45, 58, 181, 610, - 269,1915,1916, 131,1062, 551, 443,1000, 821,1427, 957, 895,1086,1917,1918, 375, -1919, 359,1920, 687,1921, 822,1922, 293,1923,1924, 40, 662, 118, 692, 29, 939, - 887, 640, 482, 174,1925, 69,1162, 728,1428, 910,1926,1278,1218,1279, 386, 870, - 217, 854,1163, 823,1927,1928,1929,1930, 834,1931, 78,1932, 859,1933,1063,1934, -1935,1936,1937, 438,1164, 208, 595,1938,1939,1940,1941,1219,1125,1942, 280, 888, -1429,1430,1220,1431,1943,1944,1945,1946,1947,1280, 150, 510,1432,1948,1949,1950, -1951,1952,1953,1954,1011,1087,1955,1433,1043,1956, 881,1957, 614, 958,1064,1065, -1221,1958, 638,1001, 860, 967, 896,1434, 989, 492, 553,1281,1165,1959,1282,1002, -1283,1222,1960,1961,1962,1963, 36, 383, 228, 753, 247, 454,1964, 876, 678,1965, -1966,1284, 126, 464, 490, 835, 136, 672, 529, 940,1088,1435, 473,1967,1968, 467, - 50, 390, 227, 587, 279, 378, 598, 792, 968, 240, 151, 160, 849, 882,1126,1285, - 639,1044, 133, 140, 288, 360, 811, 563,1027, 561, 142, 523,1969,1970,1971, 7, - 103, 296, 439, 407, 506, 634, 990,1972,1973,1974,1975, 645,1976,1977,1978,1979, -1980,1981, 236,1982,1436,1983,1984,1089, 192, 828, 618, 518,1166, 333,1127,1985, - 818,1223,1986,1987,1988,1989,1990,1991,1992,1993, 342,1128,1286, 746, 842,1994, -1995, 560, 223,1287, 98, 8, 189, 650, 978,1288,1996,1437,1997, 17, 345, 250, - 423, 277, 234, 512, 226, 97, 289, 42, 167,1998, 201,1999,2000, 843, 836, 824, - 532, 338, 783,1090, 182, 576, 436,1438,1439, 527, 500,2001, 947, 889,2002,2003, -2004,2005, 262, 600, 314, 447,2006, 547,2007, 693, 738,1129,2008, 71,1440, 745, - 619, 688,2009, 829,2010,2011, 147,2012, 33, 948,2013,2014, 74, 224,2015, 61, - 191, 918, 399, 637,2016,1028,1130, 257, 902,2017,2018,2019,2020,2021,2022,2023, -2024,2025,2026, 837,2027,2028,2029,2030, 179, 874, 591, 52, 724, 246,2031,2032, -2033,2034,1167, 969,2035,1289, 630, 605, 911,1091,1168,2036,2037,2038,1441, 912, -2039, 623,2040,2041, 253,1169,1290,2042,1442, 146, 620, 611, 577, 433,2043,1224, - 719,1170, 959, 440, 437, 534, 84, 388, 480,1131, 159, 220, 198, 679,2044,1012, - 819,1066,1443, 113,1225, 194, 318,1003,1029,2045,2046,2047,2048,1067,2049,2050, -2051,2052,2053, 59, 913, 112,2054, 632,2055, 455, 144, 739,1291,2056, 273, 681, - 499,2057, 448,2058,2059, 760,2060,2061, 970, 384, 169, 245,1132,2062,2063, 414, -1444,2064,2065, 41, 235,2066, 157, 252, 877, 568, 919, 789, 580,2067, 725,2068, -2069,1292,2070,2071,1445,2072,1446,2073,2074, 55, 588, 66,1447, 271,1092,2075, -1226,2076, 960,1013, 372,2077,2078,2079,2080,2081,1293,2082,2083,2084,2085, 850, -2086,2087,2088,2089,2090, 186,2091,1068, 180,2092,2093,2094, 109,1227, 522, 606, -2095, 867,1448,1093, 991,1171, 926, 353,1133,2096, 581,2097,2098,2099,1294,1449, -1450,2100, 596,1172,1014,1228,2101,1451,1295,1173,1229,2102,2103,1296,1134,1452, - 949,1135,2104,2105,1094,1453,1454,1455,2106,1095,2107,2108,2109,2110,2111,2112, -2113,2114,2115,2116,2117, 804,2118,2119,1230,1231, 805,1456, 405,1136,2120,2121, -2122,2123,2124, 720, 701,1297, 992,1457, 927,1004,2125,2126,2127,2128,2129,2130, - 22, 417,2131, 303,2132, 385,2133, 971, 520, 513,2134,1174, 73,1096, 231, 274, - 962,1458, 673,2135,1459,2136, 152,1137,2137,2138,2139,2140,1005,1138,1460,1139, -2141,2142,2143,2144, 11, 374, 844,2145, 154,1232, 46,1461,2146, 838, 830, 721, -1233, 106,2147, 90, 428, 462, 578, 566,1175, 352,2148,2149, 538,1234, 124,1298, -2150,1462, 761, 565,2151, 686,2152, 649,2153, 72, 173,2154, 460, 415,2155,1463, -2156,1235, 305,2157,2158,2159,2160,2161,2162, 579,2163,2164,2165,2166,2167, 747, -2168,2169,2170,2171,1464, 669,2172,2173,2174,2175,2176,1465,2177, 23, 530, 285, -2178, 335, 729,2179, 397,2180,2181,2182,1030,2183,2184, 698,2185,2186, 325,2187, -2188, 369,2189, 799,1097,1015, 348,2190,1069, 680,2191, 851,1466,2192,2193, 10, -2194, 613, 424,2195, 979, 108, 449, 589, 27, 172, 81,1031, 80, 774, 281, 350, -1032, 525, 301, 582,1176,2196, 674,1045,2197,2198,1467, 730, 762,2199,2200,2201, -2202,1468,2203, 993,2204,2205, 266,1070, 963,1140,2206,2207,2208, 664,1098, 972, -2209,2210,2211,1177,1469,1470, 871,2212,2213,2214,2215,2216,1471,2217,2218,2219, -2220,2221,2222,2223,2224,2225,2226,2227,1472,1236,2228,2229,2230,2231,2232,2233, -2234,2235,1299,2236,2237, 200,2238, 477, 373,2239,2240, 731, 825, 777,2241,2242, -2243, 521, 486, 548,2244,2245,2246,1473,1300, 53, 549, 137, 875, 76, 158,2247, -1301,1474, 469, 396,1016, 278, 712,2248, 321, 442, 503, 767, 744, 941,1237,1178, -1475,2249, 82, 178,1141,1179, 973,2250,1302,2251, 297,2252,2253, 570,2254,2255, -2256, 18, 450, 206,2257, 290, 292,1142,2258, 511, 162, 99, 346, 164, 735,2259, -1476,1477, 4, 554, 343, 798,1099,2260,1100,2261, 43, 171,1303, 139, 215,2262, -2263, 717, 775,2264,1033, 322, 216,2265, 831,2266, 149,2267,1304,2268,2269, 702, -1238, 135, 845, 347, 309,2270, 484,2271, 878, 655, 238,1006,1478,2272, 67,2273, - 295,2274,2275, 461,2276, 478, 942, 412,2277,1034,2278,2279,2280, 265,2281, 541, -2282,2283,2284,2285,2286, 70, 852,1071,2287,2288,2289,2290, 21, 56, 509, 117, - 432,2291,2292, 331, 980, 552,1101, 148, 284, 105, 393,1180,1239, 755,2293, 187, -2294,1046,1479,2295, 340,2296, 63,1047, 230,2297,2298,1305, 763,1306, 101, 800, - 808, 494,2299,2300,2301, 903,2302, 37,1072, 14, 5,2303, 79, 675,2304, 312, -2305,2306,2307,2308,2309,1480, 6,1307,2310,2311,2312, 1, 470, 35, 24, 229, -2313, 695, 210, 86, 778, 15, 784, 592, 779, 32, 77, 855, 964,2314, 259,2315, - 501, 380,2316,2317, 83, 981, 153, 689,1308,1481,1482,1483,2318,2319, 716,1484, -2320,2321,2322,2323,2324,2325,1485,2326,2327, 128, 57, 68, 261,1048, 211, 170, -1240, 31,2328, 51, 435, 742,2329,2330,2331, 635,2332, 264, 456,2333,2334,2335, - 425,2336,1486, 143, 507, 263, 943,2337, 363, 920,1487, 256,1488,1102, 243, 601, -1489,2338,2339,2340,2341,2342,2343,2344, 861,2345,2346,2347,2348,2349,2350, 395, -2351,1490,1491, 62, 535, 166, 225,2352,2353, 668, 419,1241, 138, 604, 928,2354, -1181,2355,1492,1493,2356,2357,2358,1143,2359, 696,2360, 387, 307,1309, 682, 476, -2361,2362, 332, 12, 222, 156,2363, 232,2364, 641, 276, 656, 517,1494,1495,1035, - 416, 736,1496,2365,1017, 586,2366,2367,2368,1497,2369, 242,2370,2371,2372,1498, -2373, 965, 713,2374,2375,2376,2377, 740, 982,1499, 944,1500,1007,2378,2379,1310, -1501,2380,2381,2382, 785, 329,2383,2384,1502,2385,2386,2387, 932,2388,1503,2389, -2390,2391,2392,1242,2393,2394,2395,2396,2397, 994, 950,2398,2399,2400,2401,1504, -1311,2402,2403,2404,2405,1049, 749,2406,2407, 853, 718,1144,1312,2408,1182,1505, -2409,2410, 255, 516, 479, 564, 550, 214,1506,1507,1313, 413, 239, 444, 339,1145, -1036,1508,1509,1314,1037,1510,1315,2411,1511,2412,2413,2414, 176, 703, 497, 624, - 593, 921, 302,2415, 341, 165,1103,1512,2416,1513,2417,2418,2419, 376,2420, 700, -2421,2422,2423, 258, 768,1316,2424,1183,2425, 995, 608,2426,2427,2428,2429, 221, -2430,2431,2432,2433,2434,2435,2436,2437, 195, 323, 726, 188, 897, 983,1317, 377, - 644,1050, 879,2438, 452,2439,2440,2441,2442,2443,2444, 914,2445,2446,2447,2448, - 915, 489,2449,1514,1184,2450,2451, 515, 64, 427, 495,2452, 583,2453, 483, 485, -1038, 562, 213,1515, 748, 666,2454,2455,2456,2457, 334,2458, 780, 996,1008, 705, -1243,2459,2460,2461,2462,2463, 114,2464, 493,1146, 366, 163,1516, 961,1104,2465, - 291,2466,1318,1105,2467,1517, 365,2468, 355, 951,1244,2469,1319,2470, 631,2471, -2472, 218,1320, 364, 320, 756,1518,1519,1321,1520,1322,2473,2474,2475,2476, 997, -2477,2478,2479,2480, 665,1185,2481, 916,1521,2482,2483,2484, 584, 684,2485,2486, - 797,2487,1051,1186,2488,2489,2490,1522,2491,2492, 370,2493,1039,1187, 65,2494, - 434, 205, 463,1188,2495, 125, 812, 391, 402, 826, 699, 286, 398, 155, 781, 771, - 585,2496, 590, 505,1073,2497, 599, 244, 219, 917,1018, 952, 646,1523,2498,1323, -2499,2500, 49, 984, 354, 741,2501, 625,2502,1324,2503,1019, 190, 357, 757, 491, - 95, 782, 868,2504,2505,2506,2507,2508,2509, 134,1524,1074, 422,1525, 898,2510, - 161,2511,2512,2513,2514, 769,2515,1526,2516,2517, 411,1325,2518, 472,1527,2519, -2520,2521,2522,2523,2524, 985,2525,2526,2527,2528,2529,2530, 764,2531,1245,2532, -2533, 25, 204, 311,2534, 496,2535,1052,2536,2537,2538,2539,2540,2541,2542, 199, - 704, 504, 468, 758, 657,1528, 196, 44, 839,1246, 272, 750,2543, 765, 862,2544, -2545,1326,2546, 132, 615, 933,2547, 732,2548,2549,2550,1189,1529,2551, 283,1247, -1053, 607, 929,2552,2553,2554, 930, 183, 872, 616,1040,1147,2555,1148,1020, 441, - 249,1075,2556,2557,2558, 466, 743,2559,2560,2561, 92, 514, 426, 420, 526,2562, -2563,2564,2565,2566,2567,2568, 185,2569,2570,2571,2572, 776,1530, 658,2573, 362, -2574, 361, 922,1076, 793,2575,2576,2577,2578,2579,2580,1531, 251,2581,2582,2583, -2584,1532, 54, 612, 237,1327,2585,2586, 275, 408, 647, 111,2587,1533,1106, 465, - 3, 458, 9, 38,2588, 107, 110, 890, 209, 26, 737, 498,2589,1534,2590, 431, - 202, 88,1535, 356, 287,1107, 660,1149,2591, 381,1536, 986,1150, 445,1248,1151, - 974,2592,2593, 846,2594, 446, 953, 184,1249,1250, 727,2595, 923, 193, 883,2596, -2597,2598, 102, 324, 539, 817,2599, 421,1041,2600, 832,2601, 94, 175, 197, 406, -2602, 459,2603,2604,2605,2606,2607, 330, 555,2608,2609,2610, 706,1108, 389,2611, -2612,2613,2614, 233,2615, 833, 558, 931, 954,1251,2616,2617,1537, 546,2618,2619, -1009,2620,2621,2622,1538, 690,1328,2623, 955,2624,1539,2625,2626, 772,2627,2628, -2629,2630,2631, 924, 648, 863, 603,2632,2633, 934,1540, 864, 865,2634, 642,1042, - 670,1190,2635,2636,2637,2638, 168,2639, 652, 873, 542,1054,1541,2640,2641,2642, # 512, 256 -) - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrprober.py deleted file mode 100644 index 345a060..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrprober.py +++ /dev/null @@ -1,47 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import EUCKRDistributionAnalysis -from .mbcssm import EUCKR_SM_MODEL - - -class EUCKRProber(MultiByteCharSetProber): - def __init__(self): - super(EUCKRProber, self).__init__() - self.coding_sm = CodingStateMachine(EUCKR_SM_MODEL) - self.distribution_analyzer = EUCKRDistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "EUC-KR" - - @property - def language(self): - return "Korean" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwfreq.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwfreq.py deleted file mode 100644 index ed7a995..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwfreq.py +++ /dev/null @@ -1,387 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# EUCTW frequency table -# Converted from big5 work -# by Taiwan's Mandarin Promotion Council -# <http:#www.edu.tw:81/mandr/> - -# 128 --> 0.42261 -# 256 --> 0.57851 -# 512 --> 0.74851 -# 1024 --> 0.89384 -# 2048 --> 0.97583 -# -# Idea Distribution Ratio = 0.74851/(1-0.74851) =2.98 -# Random Distribution Ration = 512/(5401-512)=0.105 -# -# Typical Distribution Ratio about 25% of Ideal one, still much higher than RDR - -EUCTW_TYPICAL_DISTRIBUTION_RATIO = 0.75 - -# Char to FreqOrder table , -EUCTW_TABLE_SIZE = 5376 - -EUCTW_CHAR_TO_FREQ_ORDER = ( - 1,1800,1506, 255,1431, 198, 9, 82, 6,7310, 177, 202,3615,1256,2808, 110, # 2742 -3735, 33,3241, 261, 76, 44,2113, 16,2931,2184,1176, 659,3868, 26,3404,2643, # 2758 -1198,3869,3313,4060, 410,2211, 302, 590, 361,1963, 8, 204, 58,4296,7311,1931, # 2774 - 63,7312,7313, 317,1614, 75, 222, 159,4061,2412,1480,7314,3500,3068, 224,2809, # 2790 -3616, 3, 10,3870,1471, 29,2774,1135,2852,1939, 873, 130,3242,1123, 312,7315, # 2806 -4297,2051, 507, 252, 682,7316, 142,1914, 124, 206,2932, 34,3501,3173, 64, 604, # 2822 -7317,2494,1976,1977, 155,1990, 645, 641,1606,7318,3405, 337, 72, 406,7319, 80, # 2838 - 630, 238,3174,1509, 263, 939,1092,2644, 756,1440,1094,3406, 449, 69,2969, 591, # 2854 - 179,2095, 471, 115,2034,1843, 60, 50,2970, 134, 806,1868, 734,2035,3407, 180, # 2870 - 995,1607, 156, 537,2893, 688,7320, 319,1305, 779,2144, 514,2374, 298,4298, 359, # 2886 -2495, 90,2707,1338, 663, 11, 906,1099,2545, 20,2436, 182, 532,1716,7321, 732, # 2902 -1376,4062,1311,1420,3175, 25,2312,1056, 113, 399, 382,1949, 242,3408,2467, 529, # 2918 -3243, 475,1447,3617,7322, 117, 21, 656, 810,1297,2295,2329,3502,7323, 126,4063, # 2934 - 706, 456, 150, 613,4299, 71,1118,2036,4064, 145,3069, 85, 835, 486,2114,1246, # 2950 -1426, 428, 727,1285,1015, 800, 106, 623, 303,1281,7324,2127,2354, 347,3736, 221, # 2966 -3503,3110,7325,1955,1153,4065, 83, 296,1199,3070, 192, 624, 93,7326, 822,1897, # 2982 -2810,3111, 795,2064, 991,1554,1542,1592, 27, 43,2853, 859, 139,1456, 860,4300, # 2998 - 437, 712,3871, 164,2392,3112, 695, 211,3017,2096, 195,3872,1608,3504,3505,3618, # 3014 -3873, 234, 811,2971,2097,3874,2229,1441,3506,1615,2375, 668,2076,1638, 305, 228, # 3030 -1664,4301, 467, 415,7327, 262,2098,1593, 239, 108, 300, 200,1033, 512,1247,2077, # 3046 -7328,7329,2173,3176,3619,2673, 593, 845,1062,3244, 88,1723,2037,3875,1950, 212, # 3062 - 266, 152, 149, 468,1898,4066,4302, 77, 187,7330,3018, 37, 5,2972,7331,3876, # 3078 -7332,7333, 39,2517,4303,2894,3177,2078, 55, 148, 74,4304, 545, 483,1474,1029, # 3094 -1665, 217,1869,1531,3113,1104,2645,4067, 24, 172,3507, 900,3877,3508,3509,4305, # 3110 - 32,1408,2811,1312, 329, 487,2355,2247,2708, 784,2674, 4,3019,3314,1427,1788, # 3126 - 188, 109, 499,7334,3620,1717,1789, 888,1217,3020,4306,7335,3510,7336,3315,1520, # 3142 -3621,3878, 196,1034, 775,7337,7338, 929,1815, 249, 439, 38,7339,1063,7340, 794, # 3158 -3879,1435,2296, 46, 178,3245,2065,7341,2376,7342, 214,1709,4307, 804, 35, 707, # 3174 - 324,3622,1601,2546, 140, 459,4068,7343,7344,1365, 839, 272, 978,2257,2572,3409, # 3190 -2128,1363,3623,1423, 697, 100,3071, 48, 70,1231, 495,3114,2193,7345,1294,7346, # 3206 -2079, 462, 586,1042,3246, 853, 256, 988, 185,2377,3410,1698, 434,1084,7347,3411, # 3222 - 314,2615,2775,4308,2330,2331, 569,2280, 637,1816,2518, 757,1162,1878,1616,3412, # 3238 - 287,1577,2115, 768,4309,1671,2854,3511,2519,1321,3737, 909,2413,7348,4069, 933, # 3254 -3738,7349,2052,2356,1222,4310, 765,2414,1322, 786,4311,7350,1919,1462,1677,2895, # 3270 -1699,7351,4312,1424,2437,3115,3624,2590,3316,1774,1940,3413,3880,4070, 309,1369, # 3286 -1130,2812, 364,2230,1653,1299,3881,3512,3882,3883,2646, 525,1085,3021, 902,2000, # 3302 -1475, 964,4313, 421,1844,1415,1057,2281, 940,1364,3116, 376,4314,4315,1381, 7, # 3318 -2520, 983,2378, 336,1710,2675,1845, 321,3414, 559,1131,3022,2742,1808,1132,1313, # 3334 - 265,1481,1857,7352, 352,1203,2813,3247, 167,1089, 420,2814, 776, 792,1724,3513, # 3350 -4071,2438,3248,7353,4072,7354, 446, 229, 333,2743, 901,3739,1200,1557,4316,2647, # 3366 -1920, 395,2744,2676,3740,4073,1835, 125, 916,3178,2616,4317,7355,7356,3741,7357, # 3382 -7358,7359,4318,3117,3625,1133,2547,1757,3415,1510,2313,1409,3514,7360,2145, 438, # 3398 -2591,2896,2379,3317,1068, 958,3023, 461, 311,2855,2677,4074,1915,3179,4075,1978, # 3414 - 383, 750,2745,2617,4076, 274, 539, 385,1278,1442,7361,1154,1964, 384, 561, 210, # 3430 - 98,1295,2548,3515,7362,1711,2415,1482,3416,3884,2897,1257, 129,7363,3742, 642, # 3446 - 523,2776,2777,2648,7364, 141,2231,1333, 68, 176, 441, 876, 907,4077, 603,2592, # 3462 - 710, 171,3417, 404, 549, 18,3118,2393,1410,3626,1666,7365,3516,4319,2898,4320, # 3478 -7366,2973, 368,7367, 146, 366, 99, 871,3627,1543, 748, 807,1586,1185, 22,2258, # 3494 - 379,3743,3180,7368,3181, 505,1941,2618,1991,1382,2314,7369, 380,2357, 218, 702, # 3510 -1817,1248,3418,3024,3517,3318,3249,7370,2974,3628, 930,3250,3744,7371, 59,7372, # 3526 - 585, 601,4078, 497,3419,1112,1314,4321,1801,7373,1223,1472,2174,7374, 749,1836, # 3542 - 690,1899,3745,1772,3885,1476, 429,1043,1790,2232,2116, 917,4079, 447,1086,1629, # 3558 -7375, 556,7376,7377,2020,1654, 844,1090, 105, 550, 966,1758,2815,1008,1782, 686, # 3574 -1095,7378,2282, 793,1602,7379,3518,2593,4322,4080,2933,2297,4323,3746, 980,2496, # 3590 - 544, 353, 527,4324, 908,2678,2899,7380, 381,2619,1942,1348,7381,1341,1252, 560, # 3606 -3072,7382,3420,2856,7383,2053, 973, 886,2080, 143,4325,7384,7385, 157,3886, 496, # 3622 -4081, 57, 840, 540,2038,4326,4327,3421,2117,1445, 970,2259,1748,1965,2081,4082, # 3638 -3119,1234,1775,3251,2816,3629, 773,1206,2129,1066,2039,1326,3887,1738,1725,4083, # 3654 - 279,3120, 51,1544,2594, 423,1578,2130,2066, 173,4328,1879,7386,7387,1583, 264, # 3670 - 610,3630,4329,2439, 280, 154,7388,7389,7390,1739, 338,1282,3073, 693,2857,1411, # 3686 -1074,3747,2440,7391,4330,7392,7393,1240, 952,2394,7394,2900,1538,2679, 685,1483, # 3702 -4084,2468,1436, 953,4085,2054,4331, 671,2395, 79,4086,2441,3252, 608, 567,2680, # 3718 -3422,4087,4088,1691, 393,1261,1791,2396,7395,4332,7396,7397,7398,7399,1383,1672, # 3734 -3748,3182,1464, 522,1119, 661,1150, 216, 675,4333,3888,1432,3519, 609,4334,2681, # 3750 -2397,7400,7401,7402,4089,3025, 0,7403,2469, 315, 231,2442, 301,3319,4335,2380, # 3766 -7404, 233,4090,3631,1818,4336,4337,7405, 96,1776,1315,2082,7406, 257,7407,1809, # 3782 -3632,2709,1139,1819,4091,2021,1124,2163,2778,1777,2649,7408,3074, 363,1655,3183, # 3798 -7409,2975,7410,7411,7412,3889,1567,3890, 718, 103,3184, 849,1443, 341,3320,2934, # 3814 -1484,7413,1712, 127, 67, 339,4092,2398, 679,1412, 821,7414,7415, 834, 738, 351, # 3830 -2976,2146, 846, 235,1497,1880, 418,1992,3749,2710, 186,1100,2147,2746,3520,1545, # 3846 -1355,2935,2858,1377, 583,3891,4093,2573,2977,7416,1298,3633,1078,2549,3634,2358, # 3862 - 78,3750,3751, 267,1289,2099,2001,1594,4094, 348, 369,1274,2194,2175,1837,4338, # 3878 -1820,2817,3635,2747,2283,2002,4339,2936,2748, 144,3321, 882,4340,3892,2749,3423, # 3894 -4341,2901,7417,4095,1726, 320,7418,3893,3026, 788,2978,7419,2818,1773,1327,2859, # 3910 -3894,2819,7420,1306,4342,2003,1700,3752,3521,2359,2650, 787,2022, 506, 824,3636, # 3926 - 534, 323,4343,1044,3322,2023,1900, 946,3424,7421,1778,1500,1678,7422,1881,4344, # 3942 - 165, 243,4345,3637,2521, 123, 683,4096, 764,4346, 36,3895,1792, 589,2902, 816, # 3958 - 626,1667,3027,2233,1639,1555,1622,3753,3896,7423,3897,2860,1370,1228,1932, 891, # 3974 -2083,2903, 304,4097,7424, 292,2979,2711,3522, 691,2100,4098,1115,4347, 118, 662, # 3990 -7425, 611,1156, 854,2381,1316,2861, 2, 386, 515,2904,7426,7427,3253, 868,2234, # 4006 -1486, 855,2651, 785,2212,3028,7428,1040,3185,3523,7429,3121, 448,7430,1525,7431, # 4022 -2164,4348,7432,3754,7433,4099,2820,3524,3122, 503, 818,3898,3123,1568, 814, 676, # 4038 -1444, 306,1749,7434,3755,1416,1030, 197,1428, 805,2821,1501,4349,7435,7436,7437, # 4054 -1993,7438,4350,7439,7440,2195, 13,2779,3638,2980,3124,1229,1916,7441,3756,2131, # 4070 -7442,4100,4351,2399,3525,7443,2213,1511,1727,1120,7444,7445, 646,3757,2443, 307, # 4086 -7446,7447,1595,3186,7448,7449,7450,3639,1113,1356,3899,1465,2522,2523,7451, 519, # 4102 -7452, 128,2132, 92,2284,1979,7453,3900,1512, 342,3125,2196,7454,2780,2214,1980, # 4118 -3323,7455, 290,1656,1317, 789, 827,2360,7456,3758,4352, 562, 581,3901,7457, 401, # 4134 -4353,2248, 94,4354,1399,2781,7458,1463,2024,4355,3187,1943,7459, 828,1105,4101, # 4150 -1262,1394,7460,4102, 605,4356,7461,1783,2862,7462,2822, 819,2101, 578,2197,2937, # 4166 -7463,1502, 436,3254,4103,3255,2823,3902,2905,3425,3426,7464,2712,2315,7465,7466, # 4182 -2332,2067, 23,4357, 193, 826,3759,2102, 699,1630,4104,3075, 390,1793,1064,3526, # 4198 -7467,1579,3076,3077,1400,7468,4105,1838,1640,2863,7469,4358,4359, 137,4106, 598, # 4214 -3078,1966, 780, 104, 974,2938,7470, 278, 899, 253, 402, 572, 504, 493,1339,7471, # 4230 -3903,1275,4360,2574,2550,7472,3640,3029,3079,2249, 565,1334,2713, 863, 41,7473, # 4246 -7474,4361,7475,1657,2333, 19, 463,2750,4107, 606,7476,2981,3256,1087,2084,1323, # 4262 -2652,2982,7477,1631,1623,1750,4108,2682,7478,2864, 791,2714,2653,2334, 232,2416, # 4278 -7479,2983,1498,7480,2654,2620, 755,1366,3641,3257,3126,2025,1609, 119,1917,3427, # 4294 - 862,1026,4109,7481,3904,3760,4362,3905,4363,2260,1951,2470,7482,1125, 817,4110, # 4310 -4111,3906,1513,1766,2040,1487,4112,3030,3258,2824,3761,3127,7483,7484,1507,7485, # 4326 -2683, 733, 40,1632,1106,2865, 345,4113, 841,2524, 230,4364,2984,1846,3259,3428, # 4342 -7486,1263, 986,3429,7487, 735, 879, 254,1137, 857, 622,1300,1180,1388,1562,3907, # 4358 -3908,2939, 967,2751,2655,1349, 592,2133,1692,3324,2985,1994,4114,1679,3909,1901, # 4374 -2185,7488, 739,3642,2715,1296,1290,7489,4115,2198,2199,1921,1563,2595,2551,1870, # 4390 -2752,2986,7490, 435,7491, 343,1108, 596, 17,1751,4365,2235,3430,3643,7492,4366, # 4406 - 294,3527,2940,1693, 477, 979, 281,2041,3528, 643,2042,3644,2621,2782,2261,1031, # 4422 -2335,2134,2298,3529,4367, 367,1249,2552,7493,3530,7494,4368,1283,3325,2004, 240, # 4438 -1762,3326,4369,4370, 836,1069,3128, 474,7495,2148,2525, 268,3531,7496,3188,1521, # 4454 -1284,7497,1658,1546,4116,7498,3532,3533,7499,4117,3327,2684,1685,4118, 961,1673, # 4470 -2622, 190,2005,2200,3762,4371,4372,7500, 570,2497,3645,1490,7501,4373,2623,3260, # 4486 -1956,4374, 584,1514, 396,1045,1944,7502,4375,1967,2444,7503,7504,4376,3910, 619, # 4502 -7505,3129,3261, 215,2006,2783,2553,3189,4377,3190,4378, 763,4119,3763,4379,7506, # 4518 -7507,1957,1767,2941,3328,3646,1174, 452,1477,4380,3329,3130,7508,2825,1253,2382, # 4534 -2186,1091,2285,4120, 492,7509, 638,1169,1824,2135,1752,3911, 648, 926,1021,1324, # 4550 -4381, 520,4382, 997, 847,1007, 892,4383,3764,2262,1871,3647,7510,2400,1784,4384, # 4566 -1952,2942,3080,3191,1728,4121,2043,3648,4385,2007,1701,3131,1551, 30,2263,4122, # 4582 -7511,2026,4386,3534,7512, 501,7513,4123, 594,3431,2165,1821,3535,3432,3536,3192, # 4598 - 829,2826,4124,7514,1680,3132,1225,4125,7515,3262,4387,4126,3133,2336,7516,4388, # 4614 -4127,7517,3912,3913,7518,1847,2383,2596,3330,7519,4389, 374,3914, 652,4128,4129, # 4630 - 375,1140, 798,7520,7521,7522,2361,4390,2264, 546,1659, 138,3031,2445,4391,7523, # 4646 -2250, 612,1848, 910, 796,3765,1740,1371, 825,3766,3767,7524,2906,2554,7525, 692, # 4662 - 444,3032,2624, 801,4392,4130,7526,1491, 244,1053,3033,4131,4132, 340,7527,3915, # 4678 -1041,2987, 293,1168, 87,1357,7528,1539, 959,7529,2236, 721, 694,4133,3768, 219, # 4694 -1478, 644,1417,3331,2656,1413,1401,1335,1389,3916,7530,7531,2988,2362,3134,1825, # 4710 - 730,1515, 184,2827, 66,4393,7532,1660,2943, 246,3332, 378,1457, 226,3433, 975, # 4726 -3917,2944,1264,3537, 674, 696,7533, 163,7534,1141,2417,2166, 713,3538,3333,4394, # 4742 -3918,7535,7536,1186, 15,7537,1079,1070,7538,1522,3193,3539, 276,1050,2716, 758, # 4758 -1126, 653,2945,3263,7539,2337, 889,3540,3919,3081,2989, 903,1250,4395,3920,3434, # 4774 -3541,1342,1681,1718, 766,3264, 286, 89,2946,3649,7540,1713,7541,2597,3334,2990, # 4790 -7542,2947,2215,3194,2866,7543,4396,2498,2526, 181, 387,1075,3921, 731,2187,3335, # 4806 -7544,3265, 310, 313,3435,2299, 770,4134, 54,3034, 189,4397,3082,3769,3922,7545, # 4822 -1230,1617,1849, 355,3542,4135,4398,3336, 111,4136,3650,1350,3135,3436,3035,4137, # 4838 -2149,3266,3543,7546,2784,3923,3924,2991, 722,2008,7547,1071, 247,1207,2338,2471, # 4854 -1378,4399,2009, 864,1437,1214,4400, 373,3770,1142,2216, 667,4401, 442,2753,2555, # 4870 -3771,3925,1968,4138,3267,1839, 837, 170,1107, 934,1336,1882,7548,7549,2118,4139, # 4886 -2828, 743,1569,7550,4402,4140, 582,2384,1418,3437,7551,1802,7552, 357,1395,1729, # 4902 -3651,3268,2418,1564,2237,7553,3083,3772,1633,4403,1114,2085,4141,1532,7554, 482, # 4918 -2446,4404,7555,7556,1492, 833,1466,7557,2717,3544,1641,2829,7558,1526,1272,3652, # 4934 -4142,1686,1794, 416,2556,1902,1953,1803,7559,3773,2785,3774,1159,2316,7560,2867, # 4950 -4405,1610,1584,3036,2419,2754, 443,3269,1163,3136,7561,7562,3926,7563,4143,2499, # 4966 -3037,4406,3927,3137,2103,1647,3545,2010,1872,4144,7564,4145, 431,3438,7565, 250, # 4982 - 97, 81,4146,7566,1648,1850,1558, 160, 848,7567, 866, 740,1694,7568,2201,2830, # 4998 -3195,4147,4407,3653,1687, 950,2472, 426, 469,3196,3654,3655,3928,7569,7570,1188, # 5014 - 424,1995, 861,3546,4148,3775,2202,2685, 168,1235,3547,4149,7571,2086,1674,4408, # 5030 -3337,3270, 220,2557,1009,7572,3776, 670,2992, 332,1208, 717,7573,7574,3548,2447, # 5046 -3929,3338,7575, 513,7576,1209,2868,3339,3138,4409,1080,7577,7578,7579,7580,2527, # 5062 -3656,3549, 815,1587,3930,3931,7581,3550,3439,3777,1254,4410,1328,3038,1390,3932, # 5078 -1741,3933,3778,3934,7582, 236,3779,2448,3271,7583,7584,3657,3780,1273,3781,4411, # 5094 -7585, 308,7586,4412, 245,4413,1851,2473,1307,2575, 430, 715,2136,2449,7587, 270, # 5110 - 199,2869,3935,7588,3551,2718,1753, 761,1754, 725,1661,1840,4414,3440,3658,7589, # 5126 -7590, 587, 14,3272, 227,2598, 326, 480,2265, 943,2755,3552, 291, 650,1883,7591, # 5142 -1702,1226, 102,1547, 62,3441, 904,4415,3442,1164,4150,7592,7593,1224,1548,2756, # 5158 - 391, 498,1493,7594,1386,1419,7595,2055,1177,4416, 813, 880,1081,2363, 566,1145, # 5174 -4417,2286,1001,1035,2558,2599,2238, 394,1286,7596,7597,2068,7598, 86,1494,1730, # 5190 -3936, 491,1588, 745, 897,2948, 843,3340,3937,2757,2870,3273,1768, 998,2217,2069, # 5206 - 397,1826,1195,1969,3659,2993,3341, 284,7599,3782,2500,2137,2119,1903,7600,3938, # 5222 -2150,3939,4151,1036,3443,1904, 114,2559,4152, 209,1527,7601,7602,2949,2831,2625, # 5238 -2385,2719,3139, 812,2560,7603,3274,7604,1559, 737,1884,3660,1210, 885, 28,2686, # 5254 -3553,3783,7605,4153,1004,1779,4418,7606, 346,1981,2218,2687,4419,3784,1742, 797, # 5270 -1642,3940,1933,1072,1384,2151, 896,3941,3275,3661,3197,2871,3554,7607,2561,1958, # 5286 -4420,2450,1785,7608,7609,7610,3942,4154,1005,1308,3662,4155,2720,4421,4422,1528, # 5302 -2600, 161,1178,4156,1982, 987,4423,1101,4157, 631,3943,1157,3198,2420,1343,1241, # 5318 -1016,2239,2562, 372, 877,2339,2501,1160, 555,1934, 911,3944,7611, 466,1170, 169, # 5334 -1051,2907,2688,3663,2474,2994,1182,2011,2563,1251,2626,7612, 992,2340,3444,1540, # 5350 -2721,1201,2070,2401,1996,2475,7613,4424, 528,1922,2188,1503,1873,1570,2364,3342, # 5366 -3276,7614, 557,1073,7615,1827,3445,2087,2266,3140,3039,3084, 767,3085,2786,4425, # 5382 -1006,4158,4426,2341,1267,2176,3664,3199, 778,3945,3200,2722,1597,2657,7616,4427, # 5398 -7617,3446,7618,7619,7620,3277,2689,1433,3278, 131, 95,1504,3946, 723,4159,3141, # 5414 -1841,3555,2758,2189,3947,2027,2104,3665,7621,2995,3948,1218,7622,3343,3201,3949, # 5430 -4160,2576, 248,1634,3785, 912,7623,2832,3666,3040,3786, 654, 53,7624,2996,7625, # 5446 -1688,4428, 777,3447,1032,3950,1425,7626, 191, 820,2120,2833, 971,4429, 931,3202, # 5462 - 135, 664, 783,3787,1997, 772,2908,1935,3951,3788,4430,2909,3203, 282,2723, 640, # 5478 -1372,3448,1127, 922, 325,3344,7627,7628, 711,2044,7629,7630,3952,2219,2787,1936, # 5494 -3953,3345,2220,2251,3789,2300,7631,4431,3790,1258,3279,3954,3204,2138,2950,3955, # 5510 -3956,7632,2221, 258,3205,4432, 101,1227,7633,3280,1755,7634,1391,3281,7635,2910, # 5526 -2056, 893,7636,7637,7638,1402,4161,2342,7639,7640,3206,3556,7641,7642, 878,1325, # 5542 -1780,2788,4433, 259,1385,2577, 744,1183,2267,4434,7643,3957,2502,7644, 684,1024, # 5558 -4162,7645, 472,3557,3449,1165,3282,3958,3959, 322,2152, 881, 455,1695,1152,1340, # 5574 - 660, 554,2153,4435,1058,4436,4163, 830,1065,3346,3960,4437,1923,7646,1703,1918, # 5590 -7647, 932,2268, 122,7648,4438, 947, 677,7649,3791,2627, 297,1905,1924,2269,4439, # 5606 -2317,3283,7650,7651,4164,7652,4165, 84,4166, 112, 989,7653, 547,1059,3961, 701, # 5622 -3558,1019,7654,4167,7655,3450, 942, 639, 457,2301,2451, 993,2951, 407, 851, 494, # 5638 -4440,3347, 927,7656,1237,7657,2421,3348, 573,4168, 680, 921,2911,1279,1874, 285, # 5654 - 790,1448,1983, 719,2167,7658,7659,4441,3962,3963,1649,7660,1541, 563,7661,1077, # 5670 -7662,3349,3041,3451, 511,2997,3964,3965,3667,3966,1268,2564,3350,3207,4442,4443, # 5686 -7663, 535,1048,1276,1189,2912,2028,3142,1438,1373,2834,2952,1134,2012,7664,4169, # 5702 -1238,2578,3086,1259,7665, 700,7666,2953,3143,3668,4170,7667,4171,1146,1875,1906, # 5718 -4444,2601,3967, 781,2422, 132,1589, 203, 147, 273,2789,2402, 898,1786,2154,3968, # 5734 -3969,7668,3792,2790,7669,7670,4445,4446,7671,3208,7672,1635,3793, 965,7673,1804, # 5750 -2690,1516,3559,1121,1082,1329,3284,3970,1449,3794, 65,1128,2835,2913,2759,1590, # 5766 -3795,7674,7675, 12,2658, 45, 976,2579,3144,4447, 517,2528,1013,1037,3209,7676, # 5782 -3796,2836,7677,3797,7678,3452,7679,2602, 614,1998,2318,3798,3087,2724,2628,7680, # 5798 -2580,4172, 599,1269,7681,1810,3669,7682,2691,3088, 759,1060, 489,1805,3351,3285, # 5814 -1358,7683,7684,2386,1387,1215,2629,2252, 490,7685,7686,4173,1759,2387,2343,7687, # 5830 -4448,3799,1907,3971,2630,1806,3210,4449,3453,3286,2760,2344, 874,7688,7689,3454, # 5846 -3670,1858, 91,2914,3671,3042,3800,4450,7690,3145,3972,2659,7691,3455,1202,1403, # 5862 -3801,2954,2529,1517,2503,4451,3456,2504,7692,4452,7693,2692,1885,1495,1731,3973, # 5878 -2365,4453,7694,2029,7695,7696,3974,2693,1216, 237,2581,4174,2319,3975,3802,4454, # 5894 -4455,2694,3560,3457, 445,4456,7697,7698,7699,7700,2761, 61,3976,3672,1822,3977, # 5910 -7701, 687,2045, 935, 925, 405,2660, 703,1096,1859,2725,4457,3978,1876,1367,2695, # 5926 -3352, 918,2105,1781,2476, 334,3287,1611,1093,4458, 564,3146,3458,3673,3353, 945, # 5942 -2631,2057,4459,7702,1925, 872,4175,7703,3459,2696,3089, 349,4176,3674,3979,4460, # 5958 -3803,4177,3675,2155,3980,4461,4462,4178,4463,2403,2046, 782,3981, 400, 251,4179, # 5974 -1624,7704,7705, 277,3676, 299,1265, 476,1191,3804,2121,4180,4181,1109, 205,7706, # 5990 -2582,1000,2156,3561,1860,7707,7708,7709,4464,7710,4465,2565, 107,2477,2157,3982, # 6006 -3460,3147,7711,1533, 541,1301, 158, 753,4182,2872,3562,7712,1696, 370,1088,4183, # 6022 -4466,3563, 579, 327, 440, 162,2240, 269,1937,1374,3461, 968,3043, 56,1396,3090, # 6038 -2106,3288,3354,7713,1926,2158,4467,2998,7714,3564,7715,7716,3677,4468,2478,7717, # 6054 -2791,7718,1650,4469,7719,2603,7720,7721,3983,2661,3355,1149,3356,3984,3805,3985, # 6070 -7722,1076, 49,7723, 951,3211,3289,3290, 450,2837, 920,7724,1811,2792,2366,4184, # 6086 -1908,1138,2367,3806,3462,7725,3212,4470,1909,1147,1518,2423,4471,3807,7726,4472, # 6102 -2388,2604, 260,1795,3213,7727,7728,3808,3291, 708,7729,3565,1704,7730,3566,1351, # 6118 -1618,3357,2999,1886, 944,4185,3358,4186,3044,3359,4187,7731,3678, 422, 413,1714, # 6134 -3292, 500,2058,2345,4188,2479,7732,1344,1910, 954,7733,1668,7734,7735,3986,2404, # 6150 -4189,3567,3809,4190,7736,2302,1318,2505,3091, 133,3092,2873,4473, 629, 31,2838, # 6166 -2697,3810,4474, 850, 949,4475,3987,2955,1732,2088,4191,1496,1852,7737,3988, 620, # 6182 -3214, 981,1242,3679,3360,1619,3680,1643,3293,2139,2452,1970,1719,3463,2168,7738, # 6198 -3215,7739,7740,3361,1828,7741,1277,4476,1565,2047,7742,1636,3568,3093,7743, 869, # 6214 -2839, 655,3811,3812,3094,3989,3000,3813,1310,3569,4477,7744,7745,7746,1733, 558, # 6230 -4478,3681, 335,1549,3045,1756,4192,3682,1945,3464,1829,1291,1192, 470,2726,2107, # 6246 -2793, 913,1054,3990,7747,1027,7748,3046,3991,4479, 982,2662,3362,3148,3465,3216, # 6262 -3217,1946,2794,7749, 571,4480,7750,1830,7751,3570,2583,1523,2424,7752,2089, 984, # 6278 -4481,3683,1959,7753,3684, 852, 923,2795,3466,3685, 969,1519, 999,2048,2320,1705, # 6294 -7754,3095, 615,1662, 151, 597,3992,2405,2321,1049, 275,4482,3686,4193, 568,3687, # 6310 -3571,2480,4194,3688,7755,2425,2270, 409,3218,7756,1566,2874,3467,1002, 769,2840, # 6326 - 194,2090,3149,3689,2222,3294,4195, 628,1505,7757,7758,1763,2177,3001,3993, 521, # 6342 -1161,2584,1787,2203,2406,4483,3994,1625,4196,4197, 412, 42,3096, 464,7759,2632, # 6358 -4484,3363,1760,1571,2875,3468,2530,1219,2204,3814,2633,2140,2368,4485,4486,3295, # 6374 -1651,3364,3572,7760,7761,3573,2481,3469,7762,3690,7763,7764,2271,2091, 460,7765, # 6390 -4487,7766,3002, 962, 588,3574, 289,3219,2634,1116, 52,7767,3047,1796,7768,7769, # 6406 -7770,1467,7771,1598,1143,3691,4198,1984,1734,1067,4488,1280,3365, 465,4489,1572, # 6422 - 510,7772,1927,2241,1812,1644,3575,7773,4490,3692,7774,7775,2663,1573,1534,7776, # 6438 -7777,4199, 536,1807,1761,3470,3815,3150,2635,7778,7779,7780,4491,3471,2915,1911, # 6454 -2796,7781,3296,1122, 377,3220,7782, 360,7783,7784,4200,1529, 551,7785,2059,3693, # 6470 -1769,2426,7786,2916,4201,3297,3097,2322,2108,2030,4492,1404, 136,1468,1479, 672, # 6486 -1171,3221,2303, 271,3151,7787,2762,7788,2049, 678,2727, 865,1947,4493,7789,2013, # 6502 -3995,2956,7790,2728,2223,1397,3048,3694,4494,4495,1735,2917,3366,3576,7791,3816, # 6518 - 509,2841,2453,2876,3817,7792,7793,3152,3153,4496,4202,2531,4497,2304,1166,1010, # 6534 - 552, 681,1887,7794,7795,2957,2958,3996,1287,1596,1861,3154, 358, 453, 736, 175, # 6550 - 478,1117, 905,1167,1097,7796,1853,1530,7797,1706,7798,2178,3472,2287,3695,3473, # 6566 -3577,4203,2092,4204,7799,3367,1193,2482,4205,1458,2190,2205,1862,1888,1421,3298, # 6582 -2918,3049,2179,3474, 595,2122,7800,3997,7801,7802,4206,1707,2636, 223,3696,1359, # 6598 - 751,3098, 183,3475,7803,2797,3003, 419,2369, 633, 704,3818,2389, 241,7804,7805, # 6614 -7806, 838,3004,3697,2272,2763,2454,3819,1938,2050,3998,1309,3099,2242,1181,7807, # 6630 -1136,2206,3820,2370,1446,4207,2305,4498,7808,7809,4208,1055,2605, 484,3698,7810, # 6646 -3999, 625,4209,2273,3368,1499,4210,4000,7811,4001,4211,3222,2274,2275,3476,7812, # 6662 -7813,2764, 808,2606,3699,3369,4002,4212,3100,2532, 526,3370,3821,4213, 955,7814, # 6678 -1620,4214,2637,2427,7815,1429,3700,1669,1831, 994, 928,7816,3578,1260,7817,7818, # 6694 -7819,1948,2288, 741,2919,1626,4215,2729,2455, 867,1184, 362,3371,1392,7820,7821, # 6710 -4003,4216,1770,1736,3223,2920,4499,4500,1928,2698,1459,1158,7822,3050,3372,2877, # 6726 -1292,1929,2506,2842,3701,1985,1187,2071,2014,2607,4217,7823,2566,2507,2169,3702, # 6742 -2483,3299,7824,3703,4501,7825,7826, 666,1003,3005,1022,3579,4218,7827,4502,1813, # 6758 -2253, 574,3822,1603, 295,1535, 705,3823,4219, 283, 858, 417,7828,7829,3224,4503, # 6774 -4504,3051,1220,1889,1046,2276,2456,4004,1393,1599, 689,2567, 388,4220,7830,2484, # 6790 - 802,7831,2798,3824,2060,1405,2254,7832,4505,3825,2109,1052,1345,3225,1585,7833, # 6806 - 809,7834,7835,7836, 575,2730,3477, 956,1552,1469,1144,2323,7837,2324,1560,2457, # 6822 -3580,3226,4005, 616,2207,3155,2180,2289,7838,1832,7839,3478,4506,7840,1319,3704, # 6838 -3705,1211,3581,1023,3227,1293,2799,7841,7842,7843,3826, 607,2306,3827, 762,2878, # 6854 -1439,4221,1360,7844,1485,3052,7845,4507,1038,4222,1450,2061,2638,4223,1379,4508, # 6870 -2585,7846,7847,4224,1352,1414,2325,2921,1172,7848,7849,3828,3829,7850,1797,1451, # 6886 -7851,7852,7853,7854,2922,4006,4007,2485,2346, 411,4008,4009,3582,3300,3101,4509, # 6902 -1561,2664,1452,4010,1375,7855,7856, 47,2959, 316,7857,1406,1591,2923,3156,7858, # 6918 -1025,2141,3102,3157, 354,2731, 884,2224,4225,2407, 508,3706, 726,3583, 996,2428, # 6934 -3584, 729,7859, 392,2191,1453,4011,4510,3707,7860,7861,2458,3585,2608,1675,2800, # 6950 - 919,2347,2960,2348,1270,4511,4012, 73,7862,7863, 647,7864,3228,2843,2255,1550, # 6966 -1346,3006,7865,1332, 883,3479,7866,7867,7868,7869,3301,2765,7870,1212, 831,1347, # 6982 -4226,4512,2326,3830,1863,3053, 720,3831,4513,4514,3832,7871,4227,7872,7873,4515, # 6998 -7874,7875,1798,4516,3708,2609,4517,3586,1645,2371,7876,7877,2924, 669,2208,2665, # 7014 -2429,7878,2879,7879,7880,1028,3229,7881,4228,2408,7882,2256,1353,7883,7884,4518, # 7030 -3158, 518,7885,4013,7886,4229,1960,7887,2142,4230,7888,7889,3007,2349,2350,3833, # 7046 - 516,1833,1454,4014,2699,4231,4519,2225,2610,1971,1129,3587,7890,2766,7891,2961, # 7062 -1422, 577,1470,3008,1524,3373,7892,7893, 432,4232,3054,3480,7894,2586,1455,2508, # 7078 -2226,1972,1175,7895,1020,2732,4015,3481,4520,7896,2733,7897,1743,1361,3055,3482, # 7094 -2639,4016,4233,4521,2290, 895, 924,4234,2170, 331,2243,3056, 166,1627,3057,1098, # 7110 -7898,1232,2880,2227,3374,4522, 657, 403,1196,2372, 542,3709,3375,1600,4235,3483, # 7126 -7899,4523,2767,3230, 576, 530,1362,7900,4524,2533,2666,3710,4017,7901, 842,3834, # 7142 -7902,2801,2031,1014,4018, 213,2700,3376, 665, 621,4236,7903,3711,2925,2430,7904, # 7158 -2431,3302,3588,3377,7905,4237,2534,4238,4525,3589,1682,4239,3484,1380,7906, 724, # 7174 -2277, 600,1670,7907,1337,1233,4526,3103,2244,7908,1621,4527,7909, 651,4240,7910, # 7190 -1612,4241,2611,7911,2844,7912,2734,2307,3058,7913, 716,2459,3059, 174,1255,2701, # 7206 -4019,3590, 548,1320,1398, 728,4020,1574,7914,1890,1197,3060,4021,7915,3061,3062, # 7222 -3712,3591,3713, 747,7916, 635,4242,4528,7917,7918,7919,4243,7920,7921,4529,7922, # 7238 -3378,4530,2432, 451,7923,3714,2535,2072,4244,2735,4245,4022,7924,1764,4531,7925, # 7254 -4246, 350,7926,2278,2390,2486,7927,4247,4023,2245,1434,4024, 488,4532, 458,4248, # 7270 -4025,3715, 771,1330,2391,3835,2568,3159,2159,2409,1553,2667,3160,4249,7928,2487, # 7286 -2881,2612,1720,2702,4250,3379,4533,7929,2536,4251,7930,3231,4252,2768,7931,2015, # 7302 -2736,7932,1155,1017,3716,3836,7933,3303,2308, 201,1864,4253,1430,7934,4026,7935, # 7318 -7936,7937,7938,7939,4254,1604,7940, 414,1865, 371,2587,4534,4535,3485,2016,3104, # 7334 -4536,1708, 960,4255, 887, 389,2171,1536,1663,1721,7941,2228,4027,2351,2926,1580, # 7350 -7942,7943,7944,1744,7945,2537,4537,4538,7946,4539,7947,2073,7948,7949,3592,3380, # 7366 -2882,4256,7950,4257,2640,3381,2802, 673,2703,2460, 709,3486,4028,3593,4258,7951, # 7382 -1148, 502, 634,7952,7953,1204,4540,3594,1575,4541,2613,3717,7954,3718,3105, 948, # 7398 -3232, 121,1745,3837,1110,7955,4259,3063,2509,3009,4029,3719,1151,1771,3838,1488, # 7414 -4030,1986,7956,2433,3487,7957,7958,2093,7959,4260,3839,1213,1407,2803, 531,2737, # 7430 -2538,3233,1011,1537,7960,2769,4261,3106,1061,7961,3720,3721,1866,2883,7962,2017, # 7446 - 120,4262,4263,2062,3595,3234,2309,3840,2668,3382,1954,4542,7963,7964,3488,1047, # 7462 -2704,1266,7965,1368,4543,2845, 649,3383,3841,2539,2738,1102,2846,2669,7966,7967, # 7478 -1999,7968,1111,3596,2962,7969,2488,3842,3597,2804,1854,3384,3722,7970,7971,3385, # 7494 -2410,2884,3304,3235,3598,7972,2569,7973,3599,2805,4031,1460, 856,7974,3600,7975, # 7510 -2885,2963,7976,2886,3843,7977,4264, 632,2510, 875,3844,1697,3845,2291,7978,7979, # 7526 -4544,3010,1239, 580,4545,4265,7980, 914, 936,2074,1190,4032,1039,2123,7981,7982, # 7542 -7983,3386,1473,7984,1354,4266,3846,7985,2172,3064,4033, 915,3305,4267,4268,3306, # 7558 -1605,1834,7986,2739, 398,3601,4269,3847,4034, 328,1912,2847,4035,3848,1331,4270, # 7574 -3011, 937,4271,7987,3602,4036,4037,3387,2160,4546,3388, 524, 742, 538,3065,1012, # 7590 -7988,7989,3849,2461,7990, 658,1103, 225,3850,7991,7992,4547,7993,4548,7994,3236, # 7606 -1243,7995,4038, 963,2246,4549,7996,2705,3603,3161,7997,7998,2588,2327,7999,4550, # 7622 -8000,8001,8002,3489,3307, 957,3389,2540,2032,1930,2927,2462, 870,2018,3604,1746, # 7638 -2770,2771,2434,2463,8003,3851,8004,3723,3107,3724,3490,3390,3725,8005,1179,3066, # 7654 -8006,3162,2373,4272,3726,2541,3163,3108,2740,4039,8007,3391,1556,2542,2292, 977, # 7670 -2887,2033,4040,1205,3392,8008,1765,3393,3164,2124,1271,1689, 714,4551,3491,8009, # 7686 -2328,3852, 533,4273,3605,2181, 617,8010,2464,3308,3492,2310,8011,8012,3165,8013, # 7702 -8014,3853,1987, 618, 427,2641,3493,3394,8015,8016,1244,1690,8017,2806,4274,4552, # 7718 -8018,3494,8019,8020,2279,1576, 473,3606,4275,3395, 972,8021,3607,8022,3067,8023, # 7734 -8024,4553,4554,8025,3727,4041,4042,8026, 153,4555, 356,8027,1891,2888,4276,2143, # 7750 - 408, 803,2352,8028,3854,8029,4277,1646,2570,2511,4556,4557,3855,8030,3856,4278, # 7766 -8031,2411,3396, 752,8032,8033,1961,2964,8034, 746,3012,2465,8035,4279,3728, 698, # 7782 -4558,1892,4280,3608,2543,4559,3609,3857,8036,3166,3397,8037,1823,1302,4043,2706, # 7798 -3858,1973,4281,8038,4282,3167, 823,1303,1288,1236,2848,3495,4044,3398, 774,3859, # 7814 -8039,1581,4560,1304,2849,3860,4561,8040,2435,2161,1083,3237,4283,4045,4284, 344, # 7830 -1173, 288,2311, 454,1683,8041,8042,1461,4562,4046,2589,8043,8044,4563, 985, 894, # 7846 -8045,3399,3168,8046,1913,2928,3729,1988,8047,2110,1974,8048,4047,8049,2571,1194, # 7862 - 425,8050,4564,3169,1245,3730,4285,8051,8052,2850,8053, 636,4565,1855,3861, 760, # 7878 -1799,8054,4286,2209,1508,4566,4048,1893,1684,2293,8055,8056,8057,4287,4288,2210, # 7894 - 479,8058,8059, 832,8060,4049,2489,8061,2965,2490,3731, 990,3109, 627,1814,2642, # 7910 -4289,1582,4290,2125,2111,3496,4567,8062, 799,4291,3170,8063,4568,2112,1737,3013, # 7926 -1018, 543, 754,4292,3309,1676,4569,4570,4050,8064,1489,8065,3497,8066,2614,2889, # 7942 -4051,8067,8068,2966,8069,8070,8071,8072,3171,4571,4572,2182,1722,8073,3238,3239, # 7958 -1842,3610,1715, 481, 365,1975,1856,8074,8075,1962,2491,4573,8076,2126,3611,3240, # 7974 - 433,1894,2063,2075,8077, 602,2741,8078,8079,8080,8081,8082,3014,1628,3400,8083, # 7990 -3172,4574,4052,2890,4575,2512,8084,2544,2772,8085,8086,8087,3310,4576,2891,8088, # 8006 -4577,8089,2851,4578,4579,1221,2967,4053,2513,8090,8091,8092,1867,1989,8093,8094, # 8022 -8095,1895,8096,8097,4580,1896,4054, 318,8098,2094,4055,4293,8099,8100, 485,8101, # 8038 - 938,3862, 553,2670, 116,8102,3863,3612,8103,3498,2671,2773,3401,3311,2807,8104, # 8054 -3613,2929,4056,1747,2930,2968,8105,8106, 207,8107,8108,2672,4581,2514,8109,3015, # 8070 - 890,3614,3864,8110,1877,3732,3402,8111,2183,2353,3403,1652,8112,8113,8114, 941, # 8086 -2294, 208,3499,4057,2019, 330,4294,3865,2892,2492,3733,4295,8115,8116,8117,8118, # 8102 -) - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwprober.py deleted file mode 100644 index 35669cc..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwprober.py +++ /dev/null @@ -1,46 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import EUCTWDistributionAnalysis -from .mbcssm import EUCTW_SM_MODEL - -class EUCTWProber(MultiByteCharSetProber): - def __init__(self): - super(EUCTWProber, self).__init__() - self.coding_sm = CodingStateMachine(EUCTW_SM_MODEL) - self.distribution_analyzer = EUCTWDistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "EUC-TW" - - @property - def language(self): - return "Taiwan" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312freq.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312freq.py deleted file mode 100644 index 697837b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312freq.py +++ /dev/null @@ -1,283 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# GB2312 most frequently used character table -# -# Char to FreqOrder table , from hz6763 - -# 512 --> 0.79 -- 0.79 -# 1024 --> 0.92 -- 0.13 -# 2048 --> 0.98 -- 0.06 -# 6768 --> 1.00 -- 0.02 -# -# Ideal Distribution Ratio = 0.79135/(1-0.79135) = 3.79 -# Random Distribution Ration = 512 / (3755 - 512) = 0.157 -# -# Typical Distribution Ratio about 25% of Ideal one, still much higher that RDR - -GB2312_TYPICAL_DISTRIBUTION_RATIO = 0.9 - -GB2312_TABLE_SIZE = 3760 - -GB2312_CHAR_TO_FREQ_ORDER = ( -1671, 749,1443,2364,3924,3807,2330,3921,1704,3463,2691,1511,1515, 572,3191,2205, -2361, 224,2558, 479,1711, 963,3162, 440,4060,1905,2966,2947,3580,2647,3961,3842, -2204, 869,4207, 970,2678,5626,2944,2956,1479,4048, 514,3595, 588,1346,2820,3409, - 249,4088,1746,1873,2047,1774, 581,1813, 358,1174,3590,1014,1561,4844,2245, 670, -1636,3112, 889,1286, 953, 556,2327,3060,1290,3141, 613, 185,3477,1367, 850,3820, -1715,2428,2642,2303,2732,3041,2562,2648,3566,3946,1349, 388,3098,2091,1360,3585, - 152,1687,1539, 738,1559, 59,1232,2925,2267,1388,1249,1741,1679,2960, 151,1566, -1125,1352,4271, 924,4296, 385,3166,4459, 310,1245,2850, 70,3285,2729,3534,3575, -2398,3298,3466,1960,2265, 217,3647, 864,1909,2084,4401,2773,1010,3269,5152, 853, -3051,3121,1244,4251,1895, 364,1499,1540,2313,1180,3655,2268, 562, 715,2417,3061, - 544, 336,3768,2380,1752,4075, 950, 280,2425,4382, 183,2759,3272, 333,4297,2155, -1688,2356,1444,1039,4540, 736,1177,3349,2443,2368,2144,2225, 565, 196,1482,3406, - 927,1335,4147, 692, 878,1311,1653,3911,3622,1378,4200,1840,2969,3149,2126,1816, -2534,1546,2393,2760, 737,2494, 13, 447, 245,2747, 38,2765,2129,2589,1079, 606, - 360, 471,3755,2890, 404, 848, 699,1785,1236, 370,2221,1023,3746,2074,2026,2023, -2388,1581,2119, 812,1141,3091,2536,1519, 804,2053, 406,1596,1090, 784, 548,4414, -1806,2264,2936,1100, 343,4114,5096, 622,3358, 743,3668,1510,1626,5020,3567,2513, -3195,4115,5627,2489,2991, 24,2065,2697,1087,2719, 48,1634, 315, 68, 985,2052, - 198,2239,1347,1107,1439, 597,2366,2172, 871,3307, 919,2487,2790,1867, 236,2570, -1413,3794, 906,3365,3381,1701,1982,1818,1524,2924,1205, 616,2586,2072,2004, 575, - 253,3099, 32,1365,1182, 197,1714,2454,1201, 554,3388,3224,2748, 756,2587, 250, -2567,1507,1517,3529,1922,2761,2337,3416,1961,1677,2452,2238,3153, 615, 911,1506, -1474,2495,1265,1906,2749,3756,3280,2161, 898,2714,1759,3450,2243,2444, 563, 26, -3286,2266,3769,3344,2707,3677, 611,1402, 531,1028,2871,4548,1375, 261,2948, 835, -1190,4134, 353, 840,2684,1900,3082,1435,2109,1207,1674, 329,1872,2781,4055,2686, -2104, 608,3318,2423,2957,2768,1108,3739,3512,3271,3985,2203,1771,3520,1418,2054, -1681,1153, 225,1627,2929, 162,2050,2511,3687,1954, 124,1859,2431,1684,3032,2894, - 585,4805,3969,2869,2704,2088,2032,2095,3656,2635,4362,2209, 256, 518,2042,2105, -3777,3657, 643,2298,1148,1779, 190, 989,3544, 414, 11,2135,2063,2979,1471, 403, -3678, 126, 770,1563, 671,2499,3216,2877, 600,1179, 307,2805,4937,1268,1297,2694, - 252,4032,1448,1494,1331,1394, 127,2256, 222,1647,1035,1481,3056,1915,1048, 873, -3651, 210, 33,1608,2516, 200,1520, 415, 102, 0,3389,1287, 817, 91,3299,2940, - 836,1814, 549,2197,1396,1669,2987,3582,2297,2848,4528,1070, 687, 20,1819, 121, -1552,1364,1461,1968,2617,3540,2824,2083, 177, 948,4938,2291, 110,4549,2066, 648, -3359,1755,2110,2114,4642,4845,1693,3937,3308,1257,1869,2123, 208,1804,3159,2992, -2531,2549,3361,2418,1350,2347,2800,2568,1291,2036,2680, 72, 842,1990, 212,1233, -1154,1586, 75,2027,3410,4900,1823,1337,2710,2676, 728,2810,1522,3026,4995, 157, - 755,1050,4022, 710, 785,1936,2194,2085,1406,2777,2400, 150,1250,4049,1206, 807, -1910, 534, 529,3309,1721,1660, 274, 39,2827, 661,2670,1578, 925,3248,3815,1094, -4278,4901,4252, 41,1150,3747,2572,2227,4501,3658,4902,3813,3357,3617,2884,2258, - 887, 538,4187,3199,1294,2439,3042,2329,2343,2497,1255, 107, 543,1527, 521,3478, -3568, 194,5062, 15, 961,3870,1241,1192,2664, 66,5215,3260,2111,1295,1127,2152, -3805,4135, 901,1164,1976, 398,1278, 530,1460, 748, 904,1054,1966,1426, 53,2909, - 509, 523,2279,1534, 536,1019, 239,1685, 460,2353, 673,1065,2401,3600,4298,2272, -1272,2363, 284,1753,3679,4064,1695, 81, 815,2677,2757,2731,1386, 859, 500,4221, -2190,2566, 757,1006,2519,2068,1166,1455, 337,2654,3203,1863,1682,1914,3025,1252, -1409,1366, 847, 714,2834,2038,3209, 964,2970,1901, 885,2553,1078,1756,3049, 301, -1572,3326, 688,2130,1996,2429,1805,1648,2930,3421,2750,3652,3088, 262,1158,1254, - 389,1641,1812, 526,1719, 923,2073,1073,1902, 468, 489,4625,1140, 857,2375,3070, -3319,2863, 380, 116,1328,2693,1161,2244, 273,1212,1884,2769,3011,1775,1142, 461, -3066,1200,2147,2212, 790, 702,2695,4222,1601,1058, 434,2338,5153,3640, 67,2360, -4099,2502, 618,3472,1329, 416,1132, 830,2782,1807,2653,3211,3510,1662, 192,2124, - 296,3979,1739,1611,3684, 23, 118, 324, 446,1239,1225, 293,2520,3814,3795,2535, -3116, 17,1074, 467,2692,2201, 387,2922, 45,1326,3055,1645,3659,2817, 958, 243, -1903,2320,1339,2825,1784,3289, 356, 576, 865,2315,2381,3377,3916,1088,3122,1713, -1655, 935, 628,4689,1034,1327, 441, 800, 720, 894,1979,2183,1528,5289,2702,1071, -4046,3572,2399,1571,3281, 79, 761,1103, 327, 134, 758,1899,1371,1615, 879, 442, - 215,2605,2579, 173,2048,2485,1057,2975,3317,1097,2253,3801,4263,1403,1650,2946, - 814,4968,3487,1548,2644,1567,1285, 2, 295,2636, 97, 946,3576, 832, 141,4257, -3273, 760,3821,3521,3156,2607, 949,1024,1733,1516,1803,1920,2125,2283,2665,3180, -1501,2064,3560,2171,1592, 803,3518,1416, 732,3897,4258,1363,1362,2458, 119,1427, - 602,1525,2608,1605,1639,3175, 694,3064, 10, 465, 76,2000,4846,4208, 444,3781, -1619,3353,2206,1273,3796, 740,2483, 320,1723,2377,3660,2619,1359,1137,1762,1724, -2345,2842,1850,1862, 912, 821,1866, 612,2625,1735,2573,3369,1093, 844, 89, 937, - 930,1424,3564,2413,2972,1004,3046,3019,2011, 711,3171,1452,4178, 428, 801,1943, - 432, 445,2811, 206,4136,1472, 730, 349, 73, 397,2802,2547, 998,1637,1167, 789, - 396,3217, 154,1218, 716,1120,1780,2819,4826,1931,3334,3762,2139,1215,2627, 552, -3664,3628,3232,1405,2383,3111,1356,2652,3577,3320,3101,1703, 640,1045,1370,1246, -4996, 371,1575,2436,1621,2210, 984,4033,1734,2638, 16,4529, 663,2755,3255,1451, -3917,2257,1253,1955,2234,1263,2951, 214,1229, 617, 485, 359,1831,1969, 473,2310, - 750,2058, 165, 80,2864,2419, 361,4344,2416,2479,1134, 796,3726,1266,2943, 860, -2715, 938, 390,2734,1313,1384, 248, 202, 877,1064,2854, 522,3907, 279,1602, 297, -2357, 395,3740, 137,2075, 944,4089,2584,1267,3802, 62,1533,2285, 178, 176, 780, -2440, 201,3707, 590, 478,1560,4354,2117,1075, 30, 74,4643,4004,1635,1441,2745, - 776,2596, 238,1077,1692,1912,2844, 605, 499,1742,3947, 241,3053, 980,1749, 936, -2640,4511,2582, 515,1543,2162,5322,2892,2993, 890,2148,1924, 665,1827,3581,1032, - 968,3163, 339,1044,1896, 270, 583,1791,1720,4367,1194,3488,3669, 43,2523,1657, - 163,2167, 290,1209,1622,3378, 550, 634,2508,2510, 695,2634,2384,2512,1476,1414, - 220,1469,2341,2138,2852,3183,2900,4939,2865,3502,1211,3680, 854,3227,1299,2976, -3172, 186,2998,1459, 443,1067,3251,1495, 321,1932,3054, 909, 753,1410,1828, 436, -2441,1119,1587,3164,2186,1258, 227, 231,1425,1890,3200,3942, 247, 959, 725,5254, -2741, 577,2158,2079, 929, 120, 174, 838,2813, 591,1115, 417,2024, 40,3240,1536, -1037, 291,4151,2354, 632,1298,2406,2500,3535,1825,1846,3451, 205,1171, 345,4238, - 18,1163, 811, 685,2208,1217, 425,1312,1508,1175,4308,2552,1033, 587,1381,3059, -2984,3482, 340,1316,4023,3972, 792,3176, 519, 777,4690, 918, 933,4130,2981,3741, - 90,3360,2911,2200,5184,4550, 609,3079,2030, 272,3379,2736, 363,3881,1130,1447, - 286, 779, 357,1169,3350,3137,1630,1220,2687,2391, 747,1277,3688,2618,2682,2601, -1156,3196,5290,4034,3102,1689,3596,3128, 874, 219,2783, 798, 508,1843,2461, 269, -1658,1776,1392,1913,2983,3287,2866,2159,2372, 829,4076, 46,4253,2873,1889,1894, - 915,1834,1631,2181,2318, 298, 664,2818,3555,2735, 954,3228,3117, 527,3511,2173, - 681,2712,3033,2247,2346,3467,1652, 155,2164,3382, 113,1994, 450, 899, 494, 994, -1237,2958,1875,2336,1926,3727, 545,1577,1550, 633,3473, 204,1305,3072,2410,1956, -2471, 707,2134, 841,2195,2196,2663,3843,1026,4940, 990,3252,4997, 368,1092, 437, -3212,3258,1933,1829, 675,2977,2893, 412, 943,3723,4644,3294,3283,2230,2373,5154, -2389,2241,2661,2323,1404,2524, 593, 787, 677,3008,1275,2059, 438,2709,2609,2240, -2269,2246,1446, 36,1568,1373,3892,1574,2301,1456,3962, 693,2276,5216,2035,1143, -2720,1919,1797,1811,2763,4137,2597,1830,1699,1488,1198,2090, 424,1694, 312,3634, -3390,4179,3335,2252,1214, 561,1059,3243,2295,2561, 975,5155,2321,2751,3772, 472, -1537,3282,3398,1047,2077,2348,2878,1323,3340,3076, 690,2906, 51, 369, 170,3541, -1060,2187,2688,3670,2541,1083,1683, 928,3918, 459, 109,4427, 599,3744,4286, 143, -2101,2730,2490, 82,1588,3036,2121, 281,1860, 477,4035,1238,2812,3020,2716,3312, -1530,2188,2055,1317, 843, 636,1808,1173,3495, 649, 181,1002, 147,3641,1159,2414, -3750,2289,2795, 813,3123,2610,1136,4368, 5,3391,4541,2174, 420, 429,1728, 754, -1228,2115,2219, 347,2223,2733, 735,1518,3003,2355,3134,1764,3948,3329,1888,2424, -1001,1234,1972,3321,3363,1672,1021,1450,1584, 226, 765, 655,2526,3404,3244,2302, -3665, 731, 594,2184, 319,1576, 621, 658,2656,4299,2099,3864,1279,2071,2598,2739, - 795,3086,3699,3908,1707,2352,2402,1382,3136,2475,1465,4847,3496,3865,1085,3004, -2591,1084, 213,2287,1963,3565,2250, 822, 793,4574,3187,1772,1789,3050, 595,1484, -1959,2770,1080,2650, 456, 422,2996, 940,3322,4328,4345,3092,2742, 965,2784, 739, -4124, 952,1358,2498,2949,2565, 332,2698,2378, 660,2260,2473,4194,3856,2919, 535, -1260,2651,1208,1428,1300,1949,1303,2942, 433,2455,2450,1251,1946, 614,1269, 641, -1306,1810,2737,3078,2912, 564,2365,1419,1415,1497,4460,2367,2185,1379,3005,1307, -3218,2175,1897,3063, 682,1157,4040,4005,1712,1160,1941,1399, 394, 402,2952,1573, -1151,2986,2404, 862, 299,2033,1489,3006, 346, 171,2886,3401,1726,2932, 168,2533, - 47,2507,1030,3735,1145,3370,1395,1318,1579,3609,4560,2857,4116,1457,2529,1965, - 504,1036,2690,2988,2405, 745,5871, 849,2397,2056,3081, 863,2359,3857,2096, 99, -1397,1769,2300,4428,1643,3455,1978,1757,3718,1440, 35,4879,3742,1296,4228,2280, - 160,5063,1599,2013, 166, 520,3479,1646,3345,3012, 490,1937,1545,1264,2182,2505, -1096,1188,1369,1436,2421,1667,2792,2460,1270,2122, 727,3167,2143, 806,1706,1012, -1800,3037, 960,2218,1882, 805, 139,2456,1139,1521, 851,1052,3093,3089, 342,2039, - 744,5097,1468,1502,1585,2087, 223, 939, 326,2140,2577, 892,2481,1623,4077, 982, -3708, 135,2131, 87,2503,3114,2326,1106, 876,1616, 547,2997,2831,2093,3441,4530, -4314, 9,3256,4229,4148, 659,1462,1986,1710,2046,2913,2231,4090,4880,5255,3392, -3274,1368,3689,4645,1477, 705,3384,3635,1068,1529,2941,1458,3782,1509, 100,1656, -2548, 718,2339, 408,1590,2780,3548,1838,4117,3719,1345,3530, 717,3442,2778,3220, -2898,1892,4590,3614,3371,2043,1998,1224,3483, 891, 635, 584,2559,3355, 733,1766, -1729,1172,3789,1891,2307, 781,2982,2271,1957,1580,5773,2633,2005,4195,3097,1535, -3213,1189,1934,5693,3262, 586,3118,1324,1598, 517,1564,2217,1868,1893,4445,3728, -2703,3139,1526,1787,1992,3882,2875,1549,1199,1056,2224,1904,2711,5098,4287, 338, -1993,3129,3489,2689,1809,2815,1997, 957,1855,3898,2550,3275,3057,1105,1319, 627, -1505,1911,1883,3526, 698,3629,3456,1833,1431, 746, 77,1261,2017,2296,1977,1885, - 125,1334,1600, 525,1798,1109,2222,1470,1945, 559,2236,1186,3443,2476,1929,1411, -2411,3135,1777,3372,2621,1841,1613,3229, 668,1430,1839,2643,2916, 195,1989,2671, -2358,1387, 629,3205,2293,5256,4439, 123,1310, 888,1879,4300,3021,3605,1003,1162, -3192,2910,2010, 140,2395,2859, 55,1082,2012,2901, 662, 419,2081,1438, 680,2774, -4654,3912,1620,1731,1625,5035,4065,2328, 512,1344, 802,5443,2163,2311,2537, 524, -3399, 98,1155,2103,1918,2606,3925,2816,1393,2465,1504,3773,2177,3963,1478,4346, - 180,1113,4655,3461,2028,1698, 833,2696,1235,1322,1594,4408,3623,3013,3225,2040, -3022, 541,2881, 607,3632,2029,1665,1219, 639,1385,1686,1099,2803,3231,1938,3188, -2858, 427, 676,2772,1168,2025, 454,3253,2486,3556, 230,1950, 580, 791,1991,1280, -1086,1974,2034, 630, 257,3338,2788,4903,1017, 86,4790, 966,2789,1995,1696,1131, - 259,3095,4188,1308, 179,1463,5257, 289,4107,1248, 42,3413,1725,2288, 896,1947, - 774,4474,4254, 604,3430,4264, 392,2514,2588, 452, 237,1408,3018, 988,4531,1970, -3034,3310, 540,2370,1562,1288,2990, 502,4765,1147, 4,1853,2708, 207, 294,2814, -4078,2902,2509, 684, 34,3105,3532,2551, 644, 709,2801,2344, 573,1727,3573,3557, -2021,1081,3100,4315,2100,3681, 199,2263,1837,2385, 146,3484,1195,2776,3949, 997, -1939,3973,1008,1091,1202,1962,1847,1149,4209,5444,1076, 493, 117,5400,2521, 972, -1490,2934,1796,4542,2374,1512,2933,2657, 413,2888,1135,2762,2314,2156,1355,2369, - 766,2007,2527,2170,3124,2491,2593,2632,4757,2437, 234,3125,3591,1898,1750,1376, -1942,3468,3138, 570,2127,2145,3276,4131, 962, 132,1445,4196, 19, 941,3624,3480, -3366,1973,1374,4461,3431,2629, 283,2415,2275, 808,2887,3620,2112,2563,1353,3610, - 955,1089,3103,1053, 96, 88,4097, 823,3808,1583, 399, 292,4091,3313, 421,1128, - 642,4006, 903,2539,1877,2082, 596, 29,4066,1790, 722,2157, 130, 995,1569, 769, -1485, 464, 513,2213, 288,1923,1101,2453,4316, 133, 486,2445, 50, 625, 487,2207, - 57, 423, 481,2962, 159,3729,1558, 491, 303, 482, 501, 240,2837, 112,3648,2392, -1783, 362, 8,3433,3422, 610,2793,3277,1390,1284,1654, 21,3823, 734, 367, 623, - 193, 287, 374,1009,1483, 816, 476, 313,2255,2340,1262,2150,2899,1146,2581, 782, -2116,1659,2018,1880, 255,3586,3314,1110,2867,2137,2564, 986,2767,5185,2006, 650, - 158, 926, 762, 881,3157,2717,2362,3587, 306,3690,3245,1542,3077,2427,1691,2478, -2118,2985,3490,2438, 539,2305, 983, 129,1754, 355,4201,2386, 827,2923, 104,1773, -2838,2771, 411,2905,3919, 376, 767, 122,1114, 828,2422,1817,3506, 266,3460,1007, -1609,4998, 945,2612,4429,2274, 726,1247,1964,2914,2199,2070,4002,4108, 657,3323, -1422, 579, 455,2764,4737,1222,2895,1670, 824,1223,1487,2525, 558, 861,3080, 598, -2659,2515,1967, 752,2583,2376,2214,4180, 977, 704,2464,4999,2622,4109,1210,2961, - 819,1541, 142,2284, 44, 418, 457,1126,3730,4347,4626,1644,1876,3671,1864, 302, -1063,5694, 624, 723,1984,3745,1314,1676,2488,1610,1449,3558,3569,2166,2098, 409, -1011,2325,3704,2306, 818,1732,1383,1824,1844,3757, 999,2705,3497,1216,1423,2683, -2426,2954,2501,2726,2229,1475,2554,5064,1971,1794,1666,2014,1343, 783, 724, 191, -2434,1354,2220,5065,1763,2752,2472,4152, 131, 175,2885,3434, 92,1466,4920,2616, -3871,3872,3866, 128,1551,1632, 669,1854,3682,4691,4125,1230, 188,2973,3290,1302, -1213, 560,3266, 917, 763,3909,3249,1760, 868,1958, 764,1782,2097, 145,2277,3774, -4462, 64,1491,3062, 971,2132,3606,2442, 221,1226,1617, 218, 323,1185,3207,3147, - 571, 619,1473,1005,1744,2281, 449,1887,2396,3685, 275, 375,3816,1743,3844,3731, - 845,1983,2350,4210,1377, 773, 967,3499,3052,3743,2725,4007,1697,1022,3943,1464, -3264,2855,2722,1952,1029,2839,2467, 84,4383,2215, 820,1391,2015,2448,3672, 377, -1948,2168, 797,2545,3536,2578,2645, 94,2874,1678, 405,1259,3071, 771, 546,1315, - 470,1243,3083, 895,2468, 981, 969,2037, 846,4181, 653,1276,2928, 14,2594, 557, -3007,2474, 156, 902,1338,1740,2574, 537,2518, 973,2282,2216,2433,1928, 138,2903, -1293,2631,1612, 646,3457, 839,2935, 111, 496,2191,2847, 589,3186, 149,3994,2060, -4031,2641,4067,3145,1870, 37,3597,2136,1025,2051,3009,3383,3549,1121,1016,3261, -1301, 251,2446,2599,2153, 872,3246, 637, 334,3705, 831, 884, 921,3065,3140,4092, -2198,1944, 246,2964, 108,2045,1152,1921,2308,1031, 203,3173,4170,1907,3890, 810, -1401,2003,1690, 506, 647,1242,2828,1761,1649,3208,2249,1589,3709,2931,5156,1708, - 498, 666,2613, 834,3817,1231, 184,2851,1124, 883,3197,2261,3710,1765,1553,2658, -1178,2639,2351, 93,1193, 942,2538,2141,4402, 235,1821, 870,1591,2192,1709,1871, -3341,1618,4126,2595,2334, 603, 651, 69, 701, 268,2662,3411,2555,1380,1606, 503, - 448, 254,2371,2646, 574,1187,2309,1770, 322,2235,1292,1801, 305, 566,1133, 229, -2067,2057, 706, 167, 483,2002,2672,3295,1820,3561,3067, 316, 378,2746,3452,1112, - 136,1981, 507,1651,2917,1117, 285,4591, 182,2580,3522,1304, 335,3303,1835,2504, -1795,1792,2248, 674,1018,2106,2449,1857,2292,2845, 976,3047,1781,2600,2727,1389, -1281, 52,3152, 153, 265,3950, 672,3485,3951,4463, 430,1183, 365, 278,2169, 27, -1407,1336,2304, 209,1340,1730,2202,1852,2403,2883, 979,1737,1062, 631,2829,2542, -3876,2592, 825,2086,2226,3048,3625, 352,1417,3724, 542, 991, 431,1351,3938,1861, -2294, 826,1361,2927,3142,3503,1738, 463,2462,2723, 582,1916,1595,2808, 400,3845, -3891,2868,3621,2254, 58,2492,1123, 910,2160,2614,1372,1603,1196,1072,3385,1700, -3267,1980, 696, 480,2430, 920, 799,1570,2920,1951,2041,4047,2540,1321,4223,2469, -3562,2228,1271,2602, 401,2833,3351,2575,5157, 907,2312,1256, 410, 263,3507,1582, - 996, 678,1849,2316,1480, 908,3545,2237, 703,2322, 667,1826,2849,1531,2604,2999, -2407,3146,2151,2630,1786,3711, 469,3542, 497,3899,2409, 858, 837,4446,3393,1274, - 786, 620,1845,2001,3311, 484, 308,3367,1204,1815,3691,2332,1532,2557,1842,2020, -2724,1927,2333,4440, 567, 22,1673,2728,4475,1987,1858,1144,1597, 101,1832,3601, - 12, 974,3783,4391, 951,1412, 1,3720, 453,4608,4041, 528,1041,1027,3230,2628, -1129, 875,1051,3291,1203,2262,1069,2860,2799,2149,2615,3278, 144,1758,3040, 31, - 475,1680, 366,2685,3184, 311,1642,4008,2466,5036,1593,1493,2809, 216,1420,1668, - 233, 304,2128,3284, 232,1429,1768,1040,2008,3407,2740,2967,2543, 242,2133, 778, -1565,2022,2620, 505,2189,2756,1098,2273, 372,1614, 708, 553,2846,2094,2278, 169, -3626,2835,4161, 228,2674,3165, 809,1454,1309, 466,1705,1095, 900,3423, 880,2667, -3751,5258,2317,3109,2571,4317,2766,1503,1342, 866,4447,1118, 63,2076, 314,1881, -1348,1061, 172, 978,3515,1747, 532, 511,3970, 6, 601, 905,2699,3300,1751, 276, -1467,3725,2668, 65,4239,2544,2779,2556,1604, 578,2451,1802, 992,2331,2624,1320, -3446, 713,1513,1013, 103,2786,2447,1661, 886,1702, 916, 654,3574,2031,1556, 751, -2178,2821,2179,1498,1538,2176, 271, 914,2251,2080,1325, 638,1953,2937,3877,2432, -2754, 95,3265,1716, 260,1227,4083, 775, 106,1357,3254, 426,1607, 555,2480, 772, -1985, 244,2546, 474, 495,1046,2611,1851,2061, 71,2089,1675,2590, 742,3758,2843, -3222,1433, 267,2180,2576,2826,2233,2092,3913,2435, 956,1745,3075, 856,2113,1116, - 451, 3,1988,2896,1398, 993,2463,1878,2049,1341,2718,2721,2870,2108, 712,2904, -4363,2753,2324, 277,2872,2349,2649, 384, 987, 435, 691,3000, 922, 164,3939, 652, -1500,1184,4153,2482,3373,2165,4848,2335,3775,3508,3154,2806,2830,1554,2102,1664, -2530,1434,2408, 893,1547,2623,3447,2832,2242,2532,3169,2856,3223,2078, 49,3770, -3469, 462, 318, 656,2259,3250,3069, 679,1629,2758, 344,1138,1104,3120,1836,1283, -3115,2154,1437,4448, 934, 759,1999, 794,2862,1038, 533,2560,1722,2342, 855,2626, -1197,1663,4476,3127, 85,4240,2528, 25,1111,1181,3673, 407,3470,4561,2679,2713, - 768,1925,2841,3986,1544,1165, 932, 373,1240,2146,1930,2673, 721,4766, 354,4333, - 391,2963, 187, 61,3364,1442,1102, 330,1940,1767, 341,3809,4118, 393,2496,2062, -2211, 105, 331, 300, 439, 913,1332, 626, 379,3304,1557, 328, 689,3952, 309,1555, - 931, 317,2517,3027, 325, 569, 686,2107,3084, 60,1042,1333,2794, 264,3177,4014, -1628, 258,3712, 7,4464,1176,1043,1778, 683, 114,1975, 78,1492, 383,1886, 510, - 386, 645,5291,2891,2069,3305,4138,3867,2939,2603,2493,1935,1066,1848,3588,1015, -1282,1289,4609, 697,1453,3044,2666,3611,1856,2412, 54, 719,1330, 568,3778,2459, -1748, 788, 492, 551,1191,1000, 488,3394,3763, 282,1799, 348,2016,1523,3155,2390, -1049, 382,2019,1788,1170, 729,2968,3523, 897,3926,2785,2938,3292, 350,2319,3238, -1718,1717,2655,3453,3143,4465, 161,2889,2980,2009,1421, 56,1908,1640,2387,2232, -1917,1874,2477,4921, 148, 83,3438, 592,4245,2882,1822,1055, 741, 115,1496,1624, - 381,1638,4592,1020, 516,3214, 458, 947,4575,1432, 211,1514,2926,1865,2142, 189, - 852,1221,1400,1486, 882,2299,4036, 351, 28,1122, 700,6479,6480,6481,6482,6483, #last 512 -) - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312prober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312prober.py deleted file mode 100644 index 8446d2d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312prober.py +++ /dev/null @@ -1,46 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import GB2312DistributionAnalysis -from .mbcssm import GB2312_SM_MODEL - -class GB2312Prober(MultiByteCharSetProber): - def __init__(self): - super(GB2312Prober, self).__init__() - self.coding_sm = CodingStateMachine(GB2312_SM_MODEL) - self.distribution_analyzer = GB2312DistributionAnalysis() - self.reset() - - @property - def charset_name(self): - return "GB2312" - - @property - def language(self): - return "Chinese" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/hebrewprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/hebrewprober.py deleted file mode 100644 index b0e1bf4..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/hebrewprober.py +++ /dev/null @@ -1,292 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Shy Shalom -# Portions created by the Initial Developer are Copyright (C) 2005 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .enums import ProbingState - -# This prober doesn't actually recognize a language or a charset. -# It is a helper prober for the use of the Hebrew model probers - -### General ideas of the Hebrew charset recognition ### -# -# Four main charsets exist in Hebrew: -# "ISO-8859-8" - Visual Hebrew -# "windows-1255" - Logical Hebrew -# "ISO-8859-8-I" - Logical Hebrew -# "x-mac-hebrew" - ?? Logical Hebrew ?? -# -# Both "ISO" charsets use a completely identical set of code points, whereas -# "windows-1255" and "x-mac-hebrew" are two different proper supersets of -# these code points. windows-1255 defines additional characters in the range -# 0x80-0x9F as some misc punctuation marks as well as some Hebrew-specific -# diacritics and additional 'Yiddish' ligature letters in the range 0xc0-0xd6. -# x-mac-hebrew defines similar additional code points but with a different -# mapping. -# -# As far as an average Hebrew text with no diacritics is concerned, all four -# charsets are identical with respect to code points. Meaning that for the -# main Hebrew alphabet, all four map the same values to all 27 Hebrew letters -# (including final letters). -# -# The dominant difference between these charsets is their directionality. -# "Visual" directionality means that the text is ordered as if the renderer is -# not aware of a BIDI rendering algorithm. The renderer sees the text and -# draws it from left to right. The text itself when ordered naturally is read -# backwards. A buffer of Visual Hebrew generally looks like so: -# "[last word of first line spelled backwards] [whole line ordered backwards -# and spelled backwards] [first word of first line spelled backwards] -# [end of line] [last word of second line] ... etc' " -# adding punctuation marks, numbers and English text to visual text is -# naturally also "visual" and from left to right. -# -# "Logical" directionality means the text is ordered "naturally" according to -# the order it is read. It is the responsibility of the renderer to display -# the text from right to left. A BIDI algorithm is used to place general -# punctuation marks, numbers and English text in the text. -# -# Texts in x-mac-hebrew are almost impossible to find on the Internet. From -# what little evidence I could find, it seems that its general directionality -# is Logical. -# -# To sum up all of the above, the Hebrew probing mechanism knows about two -# charsets: -# Visual Hebrew - "ISO-8859-8" - backwards text - Words and sentences are -# backwards while line order is natural. For charset recognition purposes -# the line order is unimportant (In fact, for this implementation, even -# word order is unimportant). -# Logical Hebrew - "windows-1255" - normal, naturally ordered text. -# -# "ISO-8859-8-I" is a subset of windows-1255 and doesn't need to be -# specifically identified. -# "x-mac-hebrew" is also identified as windows-1255. A text in x-mac-hebrew -# that contain special punctuation marks or diacritics is displayed with -# some unconverted characters showing as question marks. This problem might -# be corrected using another model prober for x-mac-hebrew. Due to the fact -# that x-mac-hebrew texts are so rare, writing another model prober isn't -# worth the effort and performance hit. -# -#### The Prober #### -# -# The prober is divided between two SBCharSetProbers and a HebrewProber, -# all of which are managed, created, fed data, inquired and deleted by the -# SBCSGroupProber. The two SBCharSetProbers identify that the text is in -# fact some kind of Hebrew, Logical or Visual. The final decision about which -# one is it is made by the HebrewProber by combining final-letter scores -# with the scores of the two SBCharSetProbers to produce a final answer. -# -# The SBCSGroupProber is responsible for stripping the original text of HTML -# tags, English characters, numbers, low-ASCII punctuation characters, spaces -# and new lines. It reduces any sequence of such characters to a single space. -# The buffer fed to each prober in the SBCS group prober is pure text in -# high-ASCII. -# The two SBCharSetProbers (model probers) share the same language model: -# Win1255Model. -# The first SBCharSetProber uses the model normally as any other -# SBCharSetProber does, to recognize windows-1255, upon which this model was -# built. The second SBCharSetProber is told to make the pair-of-letter -# lookup in the language model backwards. This in practice exactly simulates -# a visual Hebrew model using the windows-1255 logical Hebrew model. -# -# The HebrewProber is not using any language model. All it does is look for -# final-letter evidence suggesting the text is either logical Hebrew or visual -# Hebrew. Disjointed from the model probers, the results of the HebrewProber -# alone are meaningless. HebrewProber always returns 0.00 as confidence -# since it never identifies a charset by itself. Instead, the pointer to the -# HebrewProber is passed to the model probers as a helper "Name Prober". -# When the Group prober receives a positive identification from any prober, -# it asks for the name of the charset identified. If the prober queried is a -# Hebrew model prober, the model prober forwards the call to the -# HebrewProber to make the final decision. In the HebrewProber, the -# decision is made according to the final-letters scores maintained and Both -# model probers scores. The answer is returned in the form of the name of the -# charset identified, either "windows-1255" or "ISO-8859-8". - -class HebrewProber(CharSetProber): - # windows-1255 / ISO-8859-8 code points of interest - FINAL_KAF = 0xea - NORMAL_KAF = 0xeb - FINAL_MEM = 0xed - NORMAL_MEM = 0xee - FINAL_NUN = 0xef - NORMAL_NUN = 0xf0 - FINAL_PE = 0xf3 - NORMAL_PE = 0xf4 - FINAL_TSADI = 0xf5 - NORMAL_TSADI = 0xf6 - - # Minimum Visual vs Logical final letter score difference. - # If the difference is below this, don't rely solely on the final letter score - # distance. - MIN_FINAL_CHAR_DISTANCE = 5 - - # Minimum Visual vs Logical model score difference. - # If the difference is below this, don't rely at all on the model score - # distance. - MIN_MODEL_DISTANCE = 0.01 - - VISUAL_HEBREW_NAME = "ISO-8859-8" - LOGICAL_HEBREW_NAME = "windows-1255" - - def __init__(self): - super(HebrewProber, self).__init__() - self._final_char_logical_score = None - self._final_char_visual_score = None - self._prev = None - self._before_prev = None - self._logical_prober = None - self._visual_prober = None - self.reset() - - def reset(self): - self._final_char_logical_score = 0 - self._final_char_visual_score = 0 - # The two last characters seen in the previous buffer, - # mPrev and mBeforePrev are initialized to space in order to simulate - # a word delimiter at the beginning of the data - self._prev = ' ' - self._before_prev = ' ' - # These probers are owned by the group prober. - - def set_model_probers(self, logicalProber, visualProber): - self._logical_prober = logicalProber - self._visual_prober = visualProber - - def is_final(self, c): - return c in [self.FINAL_KAF, self.FINAL_MEM, self.FINAL_NUN, - self.FINAL_PE, self.FINAL_TSADI] - - def is_non_final(self, c): - # The normal Tsadi is not a good Non-Final letter due to words like - # 'lechotet' (to chat) containing an apostrophe after the tsadi. This - # apostrophe is converted to a space in FilterWithoutEnglishLetters - # causing the Non-Final tsadi to appear at an end of a word even - # though this is not the case in the original text. - # The letters Pe and Kaf rarely display a related behavior of not being - # a good Non-Final letter. Words like 'Pop', 'Winamp' and 'Mubarak' - # for example legally end with a Non-Final Pe or Kaf. However, the - # benefit of these letters as Non-Final letters outweighs the damage - # since these words are quite rare. - return c in [self.NORMAL_KAF, self.NORMAL_MEM, - self.NORMAL_NUN, self.NORMAL_PE] - - def feed(self, byte_str): - # Final letter analysis for logical-visual decision. - # Look for evidence that the received buffer is either logical Hebrew - # or visual Hebrew. - # The following cases are checked: - # 1) A word longer than 1 letter, ending with a final letter. This is - # an indication that the text is laid out "naturally" since the - # final letter really appears at the end. +1 for logical score. - # 2) A word longer than 1 letter, ending with a Non-Final letter. In - # normal Hebrew, words ending with Kaf, Mem, Nun, Pe or Tsadi, - # should not end with the Non-Final form of that letter. Exceptions - # to this rule are mentioned above in isNonFinal(). This is an - # indication that the text is laid out backwards. +1 for visual - # score - # 3) A word longer than 1 letter, starting with a final letter. Final - # letters should not appear at the beginning of a word. This is an - # indication that the text is laid out backwards. +1 for visual - # score. - # - # The visual score and logical score are accumulated throughout the - # text and are finally checked against each other in GetCharSetName(). - # No checking for final letters in the middle of words is done since - # that case is not an indication for either Logical or Visual text. - # - # We automatically filter out all 7-bit characters (replace them with - # spaces) so the word boundary detection works properly. [MAP] - - if self.state == ProbingState.NOT_ME: - # Both model probers say it's not them. No reason to continue. - return ProbingState.NOT_ME - - byte_str = self.filter_high_byte_only(byte_str) - - for cur in byte_str: - if cur == ' ': - # We stand on a space - a word just ended - if self._before_prev != ' ': - # next-to-last char was not a space so self._prev is not a - # 1 letter word - if self.is_final(self._prev): - # case (1) [-2:not space][-1:final letter][cur:space] - self._final_char_logical_score += 1 - elif self.is_non_final(self._prev): - # case (2) [-2:not space][-1:Non-Final letter][ - # cur:space] - self._final_char_visual_score += 1 - else: - # Not standing on a space - if ((self._before_prev == ' ') and - (self.is_final(self._prev)) and (cur != ' ')): - # case (3) [-2:space][-1:final letter][cur:not space] - self._final_char_visual_score += 1 - self._before_prev = self._prev - self._prev = cur - - # Forever detecting, till the end or until both model probers return - # ProbingState.NOT_ME (handled above) - return ProbingState.DETECTING - - @property - def charset_name(self): - # Make the decision: is it Logical or Visual? - # If the final letter score distance is dominant enough, rely on it. - finalsub = self._final_char_logical_score - self._final_char_visual_score - if finalsub >= self.MIN_FINAL_CHAR_DISTANCE: - return self.LOGICAL_HEBREW_NAME - if finalsub <= -self.MIN_FINAL_CHAR_DISTANCE: - return self.VISUAL_HEBREW_NAME - - # It's not dominant enough, try to rely on the model scores instead. - modelsub = (self._logical_prober.get_confidence() - - self._visual_prober.get_confidence()) - if modelsub > self.MIN_MODEL_DISTANCE: - return self.LOGICAL_HEBREW_NAME - if modelsub < -self.MIN_MODEL_DISTANCE: - return self.VISUAL_HEBREW_NAME - - # Still no good, back to final letter distance, maybe it'll save the - # day. - if finalsub < 0.0: - return self.VISUAL_HEBREW_NAME - - # (finalsub > 0 - Logical) or (don't know what to do) default to - # Logical. - return self.LOGICAL_HEBREW_NAME - - @property - def language(self): - return 'Hebrew' - - @property - def state(self): - # Remain active as long as any of the model probers are active. - if (self._logical_prober.state == ProbingState.NOT_ME) and \ - (self._visual_prober.state == ProbingState.NOT_ME): - return ProbingState.NOT_ME - return ProbingState.DETECTING diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jisfreq.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jisfreq.py deleted file mode 100644 index 83fc082..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jisfreq.py +++ /dev/null @@ -1,325 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# Sampling from about 20M text materials include literature and computer technology -# -# Japanese frequency table, applied to both S-JIS and EUC-JP -# They are sorted in order. - -# 128 --> 0.77094 -# 256 --> 0.85710 -# 512 --> 0.92635 -# 1024 --> 0.97130 -# 2048 --> 0.99431 -# -# Ideal Distribution Ratio = 0.92635 / (1-0.92635) = 12.58 -# Random Distribution Ration = 512 / (2965+62+83+86-512) = 0.191 -# -# Typical Distribution Ratio, 25% of IDR - -JIS_TYPICAL_DISTRIBUTION_RATIO = 3.0 - -# Char to FreqOrder table , -JIS_TABLE_SIZE = 4368 - -JIS_CHAR_TO_FREQ_ORDER = ( - 40, 1, 6, 182, 152, 180, 295,2127, 285, 381,3295,4304,3068,4606,3165,3510, # 16 -3511,1822,2785,4607,1193,2226,5070,4608, 171,2996,1247, 18, 179,5071, 856,1661, # 32 -1262,5072, 619, 127,3431,3512,3230,1899,1700, 232, 228,1294,1298, 284, 283,2041, # 48 -2042,1061,1062, 48, 49, 44, 45, 433, 434,1040,1041, 996, 787,2997,1255,4305, # 64 -2108,4609,1684,1648,5073,5074,5075,5076,5077,5078,3687,5079,4610,5080,3927,3928, # 80 -5081,3296,3432, 290,2285,1471,2187,5082,2580,2825,1303,2140,1739,1445,2691,3375, # 96 -1691,3297,4306,4307,4611, 452,3376,1182,2713,3688,3069,4308,5083,5084,5085,5086, # 112 -5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5101,5102, # 128 -5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,4097,5113,5114,5115,5116,5117, # 144 -5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133, # 160 -5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149, # 176 -5150,5151,5152,4612,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164, # 192 -5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,1472, 598, 618, 820,1205, # 208 -1309,1412,1858,1307,1692,5176,5177,5178,5179,5180,5181,5182,1142,1452,1234,1172, # 224 -1875,2043,2149,1793,1382,2973, 925,2404,1067,1241, 960,1377,2935,1491, 919,1217, # 240 -1865,2030,1406,1499,2749,4098,5183,5184,5185,5186,5187,5188,2561,4099,3117,1804, # 256 -2049,3689,4309,3513,1663,5189,3166,3118,3298,1587,1561,3433,5190,3119,1625,2998, # 272 -3299,4613,1766,3690,2786,4614,5191,5192,5193,5194,2161, 26,3377, 2,3929, 20, # 288 -3691, 47,4100, 50, 17, 16, 35, 268, 27, 243, 42, 155, 24, 154, 29, 184, # 304 - 4, 91, 14, 92, 53, 396, 33, 289, 9, 37, 64, 620, 21, 39, 321, 5, # 320 - 12, 11, 52, 13, 3, 208, 138, 0, 7, 60, 526, 141, 151,1069, 181, 275, # 336 -1591, 83, 132,1475, 126, 331, 829, 15, 69, 160, 59, 22, 157, 55,1079, 312, # 352 - 109, 38, 23, 25, 10, 19, 79,5195, 61, 382,1124, 8, 30,5196,5197,5198, # 368 -5199,5200,5201,5202,5203,5204,5205,5206, 89, 62, 74, 34,2416, 112, 139, 196, # 384 - 271, 149, 84, 607, 131, 765, 46, 88, 153, 683, 76, 874, 101, 258, 57, 80, # 400 - 32, 364, 121,1508, 169,1547, 68, 235, 145,2999, 41, 360,3027, 70, 63, 31, # 416 - 43, 259, 262,1383, 99, 533, 194, 66, 93, 846, 217, 192, 56, 106, 58, 565, # 432 - 280, 272, 311, 256, 146, 82, 308, 71, 100, 128, 214, 655, 110, 261, 104,1140, # 448 - 54, 51, 36, 87, 67,3070, 185,2618,2936,2020, 28,1066,2390,2059,5207,5208, # 464 -5209,5210,5211,5212,5213,5214,5215,5216,4615,5217,5218,5219,5220,5221,5222,5223, # 480 -5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,3514,5237,5238, # 496 -5239,5240,5241,5242,5243,5244,2297,2031,4616,4310,3692,5245,3071,5246,3598,5247, # 512 -4617,3231,3515,5248,4101,4311,4618,3808,4312,4102,5249,4103,4104,3599,5250,5251, # 528 -5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267, # 544 -5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283, # 560 -5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299, # 576 -5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315, # 592 -5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331, # 608 -5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347, # 624 -5348,5349,5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363, # 640 -5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379, # 656 -5380,5381, 363, 642,2787,2878,2788,2789,2316,3232,2317,3434,2011, 165,1942,3930, # 672 -3931,3932,3933,5382,4619,5383,4620,5384,5385,5386,5387,5388,5389,5390,5391,5392, # 688 -5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408, # 704 -5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424, # 720 -5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440, # 736 -5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456, # 752 -5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472, # 768 -5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488, # 784 -5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,5502,5503,5504, # 800 -5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520, # 816 -5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536, # 832 -5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,5550,5551,5552, # 848 -5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568, # 864 -5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584, # 880 -5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600, # 896 -5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616, # 912 -5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632, # 928 -5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648, # 944 -5649,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664, # 960 -5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680, # 976 -5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696, # 992 -5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712, # 1008 -5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728, # 1024 -5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744, # 1040 -5745,5746,5747,5748,5749,5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760, # 1056 -5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776, # 1072 -5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792, # 1088 -5793,5794,5795,5796,5797,5798,5799,5800,5801,5802,5803,5804,5805,5806,5807,5808, # 1104 -5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824, # 1120 -5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840, # 1136 -5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856, # 1152 -5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872, # 1168 -5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888, # 1184 -5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904, # 1200 -5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920, # 1216 -5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936, # 1232 -5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,5952, # 1248 -5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968, # 1264 -5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984, # 1280 -5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,6000, # 1296 -6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016, # 1312 -6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032, # 1328 -6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048, # 1344 -6049,6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064, # 1360 -6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080, # 1376 -6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096, # 1392 -6097,6098,6099,6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112, # 1408 -6113,6114,2044,2060,4621, 997,1235, 473,1186,4622, 920,3378,6115,6116, 379,1108, # 1424 -4313,2657,2735,3934,6117,3809, 636,3233, 573,1026,3693,3435,2974,3300,2298,4105, # 1440 - 854,2937,2463, 393,2581,2417, 539, 752,1280,2750,2480, 140,1161, 440, 708,1569, # 1456 - 665,2497,1746,1291,1523,3000, 164,1603, 847,1331, 537,1997, 486, 508,1693,2418, # 1472 -1970,2227, 878,1220, 299,1030, 969, 652,2751, 624,1137,3301,2619, 65,3302,2045, # 1488 -1761,1859,3120,1930,3694,3516, 663,1767, 852, 835,3695, 269, 767,2826,2339,1305, # 1504 - 896,1150, 770,1616,6118, 506,1502,2075,1012,2519, 775,2520,2975,2340,2938,4314, # 1520 -3028,2086,1224,1943,2286,6119,3072,4315,2240,1273,1987,3935,1557, 175, 597, 985, # 1536 -3517,2419,2521,1416,3029, 585, 938,1931,1007,1052,1932,1685,6120,3379,4316,4623, # 1552 - 804, 599,3121,1333,2128,2539,1159,1554,2032,3810, 687,2033,2904, 952, 675,1467, # 1568 -3436,6121,2241,1096,1786,2440,1543,1924, 980,1813,2228, 781,2692,1879, 728,1918, # 1584 -3696,4624, 548,1950,4625,1809,1088,1356,3303,2522,1944, 502, 972, 373, 513,2827, # 1600 - 586,2377,2391,1003,1976,1631,6122,2464,1084, 648,1776,4626,2141, 324, 962,2012, # 1616 -2177,2076,1384, 742,2178,1448,1173,1810, 222, 102, 301, 445, 125,2420, 662,2498, # 1632 - 277, 200,1476,1165,1068, 224,2562,1378,1446, 450,1880, 659, 791, 582,4627,2939, # 1648 -3936,1516,1274, 555,2099,3697,1020,1389,1526,3380,1762,1723,1787,2229, 412,2114, # 1664 -1900,2392,3518, 512,2597, 427,1925,2341,3122,1653,1686,2465,2499, 697, 330, 273, # 1680 - 380,2162, 951, 832, 780, 991,1301,3073, 965,2270,3519, 668,2523,2636,1286, 535, # 1696 -1407, 518, 671, 957,2658,2378, 267, 611,2197,3030,6123, 248,2299, 967,1799,2356, # 1712 - 850,1418,3437,1876,1256,1480,2828,1718,6124,6125,1755,1664,2405,6126,4628,2879, # 1728 -2829, 499,2179, 676,4629, 557,2329,2214,2090, 325,3234, 464, 811,3001, 992,2342, # 1744 -2481,1232,1469, 303,2242, 466,1070,2163, 603,1777,2091,4630,2752,4631,2714, 322, # 1760 -2659,1964,1768, 481,2188,1463,2330,2857,3600,2092,3031,2421,4632,2318,2070,1849, # 1776 -2598,4633,1302,2254,1668,1701,2422,3811,2905,3032,3123,2046,4106,1763,1694,4634, # 1792 -1604, 943,1724,1454, 917, 868,2215,1169,2940, 552,1145,1800,1228,1823,1955, 316, # 1808 -1080,2510, 361,1807,2830,4107,2660,3381,1346,1423,1134,4108,6127, 541,1263,1229, # 1824 -1148,2540, 545, 465,1833,2880,3438,1901,3074,2482, 816,3937, 713,1788,2500, 122, # 1840 -1575, 195,1451,2501,1111,6128, 859, 374,1225,2243,2483,4317, 390,1033,3439,3075, # 1856 -2524,1687, 266, 793,1440,2599, 946, 779, 802, 507, 897,1081, 528,2189,1292, 711, # 1872 -1866,1725,1167,1640, 753, 398,2661,1053, 246, 348,4318, 137,1024,3440,1600,2077, # 1888 -2129, 825,4319, 698, 238, 521, 187,2300,1157,2423,1641,1605,1464,1610,1097,2541, # 1904 -1260,1436, 759,2255,1814,2150, 705,3235, 409,2563,3304, 561,3033,2005,2564, 726, # 1920 -1956,2343,3698,4109, 949,3812,3813,3520,1669, 653,1379,2525, 881,2198, 632,2256, # 1936 -1027, 778,1074, 733,1957, 514,1481,2466, 554,2180, 702,3938,1606,1017,1398,6129, # 1952 -1380,3521, 921, 993,1313, 594, 449,1489,1617,1166, 768,1426,1360, 495,1794,3601, # 1968 -1177,3602,1170,4320,2344, 476, 425,3167,4635,3168,1424, 401,2662,1171,3382,1998, # 1984 -1089,4110, 477,3169, 474,6130,1909, 596,2831,1842, 494, 693,1051,1028,1207,3076, # 2000 - 606,2115, 727,2790,1473,1115, 743,3522, 630, 805,1532,4321,2021, 366,1057, 838, # 2016 - 684,1114,2142,4322,2050,1492,1892,1808,2271,3814,2424,1971,1447,1373,3305,1090, # 2032 -1536,3939,3523,3306,1455,2199, 336, 369,2331,1035, 584,2393, 902, 718,2600,6131, # 2048 -2753, 463,2151,1149,1611,2467, 715,1308,3124,1268, 343,1413,3236,1517,1347,2663, # 2064 -2093,3940,2022,1131,1553,2100,2941,1427,3441,2942,1323,2484,6132,1980, 872,2368, # 2080 -2441,2943, 320,2369,2116,1082, 679,1933,3941,2791,3815, 625,1143,2023, 422,2200, # 2096 -3816,6133, 730,1695, 356,2257,1626,2301,2858,2637,1627,1778, 937, 883,2906,2693, # 2112 -3002,1769,1086, 400,1063,1325,3307,2792,4111,3077, 456,2345,1046, 747,6134,1524, # 2128 - 884,1094,3383,1474,2164,1059, 974,1688,2181,2258,1047, 345,1665,1187, 358, 875, # 2144 -3170, 305, 660,3524,2190,1334,1135,3171,1540,1649,2542,1527, 927, 968,2793, 885, # 2160 -1972,1850, 482, 500,2638,1218,1109,1085,2543,1654,2034, 876, 78,2287,1482,1277, # 2176 - 861,1675,1083,1779, 724,2754, 454, 397,1132,1612,2332, 893, 672,1237, 257,2259, # 2192 -2370, 135,3384, 337,2244, 547, 352, 340, 709,2485,1400, 788,1138,2511, 540, 772, # 2208 -1682,2260,2272,2544,2013,1843,1902,4636,1999,1562,2288,4637,2201,1403,1533, 407, # 2224 - 576,3308,1254,2071, 978,3385, 170, 136,1201,3125,2664,3172,2394, 213, 912, 873, # 2240 -3603,1713,2202, 699,3604,3699, 813,3442, 493, 531,1054, 468,2907,1483, 304, 281, # 2256 -4112,1726,1252,2094, 339,2319,2130,2639, 756,1563,2944, 748, 571,2976,1588,2425, # 2272 -2715,1851,1460,2426,1528,1392,1973,3237, 288,3309, 685,3386, 296, 892,2716,2216, # 2288 -1570,2245, 722,1747,2217, 905,3238,1103,6135,1893,1441,1965, 251,1805,2371,3700, # 2304 -2601,1919,1078, 75,2182,1509,1592,1270,2640,4638,2152,6136,3310,3817, 524, 706, # 2320 -1075, 292,3818,1756,2602, 317, 98,3173,3605,3525,1844,2218,3819,2502, 814, 567, # 2336 - 385,2908,1534,6137, 534,1642,3239, 797,6138,1670,1529, 953,4323, 188,1071, 538, # 2352 - 178, 729,3240,2109,1226,1374,2000,2357,2977, 731,2468,1116,2014,2051,6139,1261, # 2368 -1593, 803,2859,2736,3443, 556, 682, 823,1541,6140,1369,2289,1706,2794, 845, 462, # 2384 -2603,2665,1361, 387, 162,2358,1740, 739,1770,1720,1304,1401,3241,1049, 627,1571, # 2400 -2427,3526,1877,3942,1852,1500, 431,1910,1503, 677, 297,2795, 286,1433,1038,1198, # 2416 -2290,1133,1596,4113,4639,2469,1510,1484,3943,6141,2442, 108, 712,4640,2372, 866, # 2432 -3701,2755,3242,1348, 834,1945,1408,3527,2395,3243,1811, 824, 994,1179,2110,1548, # 2448 -1453, 790,3003, 690,4324,4325,2832,2909,3820,1860,3821, 225,1748, 310, 346,1780, # 2464 -2470, 821,1993,2717,2796, 828, 877,3528,2860,2471,1702,2165,2910,2486,1789, 453, # 2480 - 359,2291,1676, 73,1164,1461,1127,3311, 421, 604, 314,1037, 589, 116,2487, 737, # 2496 - 837,1180, 111, 244, 735,6142,2261,1861,1362, 986, 523, 418, 581,2666,3822, 103, # 2512 - 855, 503,1414,1867,2488,1091, 657,1597, 979, 605,1316,4641,1021,2443,2078,2001, # 2528 -1209, 96, 587,2166,1032, 260,1072,2153, 173, 94, 226,3244, 819,2006,4642,4114, # 2544 -2203, 231,1744, 782, 97,2667, 786,3387, 887, 391, 442,2219,4326,1425,6143,2694, # 2560 - 633,1544,1202, 483,2015, 592,2052,1958,2472,1655, 419, 129,4327,3444,3312,1714, # 2576 -1257,3078,4328,1518,1098, 865,1310,1019,1885,1512,1734, 469,2444, 148, 773, 436, # 2592 -1815,1868,1128,1055,4329,1245,2756,3445,2154,1934,1039,4643, 579,1238, 932,2320, # 2608 - 353, 205, 801, 115,2428, 944,2321,1881, 399,2565,1211, 678, 766,3944, 335,2101, # 2624 -1459,1781,1402,3945,2737,2131,1010, 844, 981,1326,1013, 550,1816,1545,2620,1335, # 2640 -1008, 371,2881, 936,1419,1613,3529,1456,1395,2273,1834,2604,1317,2738,2503, 416, # 2656 -1643,4330, 806,1126, 229, 591,3946,1314,1981,1576,1837,1666, 347,1790, 977,3313, # 2672 - 764,2861,1853, 688,2429,1920,1462, 77, 595, 415,2002,3034, 798,1192,4115,6144, # 2688 -2978,4331,3035,2695,2582,2072,2566, 430,2430,1727, 842,1396,3947,3702, 613, 377, # 2704 - 278, 236,1417,3388,3314,3174, 757,1869, 107,3530,6145,1194, 623,2262, 207,1253, # 2720 -2167,3446,3948, 492,1117,1935, 536,1838,2757,1246,4332, 696,2095,2406,1393,1572, # 2736 -3175,1782, 583, 190, 253,1390,2230, 830,3126,3389, 934,3245,1703,1749,2979,1870, # 2752 -2545,1656,2204, 869,2346,4116,3176,1817, 496,1764,4644, 942,1504, 404,1903,1122, # 2768 -1580,3606,2945,1022, 515, 372,1735, 955,2431,3036,6146,2797,1110,2302,2798, 617, # 2784 -6147, 441, 762,1771,3447,3607,3608,1904, 840,3037, 86, 939,1385, 572,1370,2445, # 2800 -1336, 114,3703, 898, 294, 203,3315, 703,1583,2274, 429, 961,4333,1854,1951,3390, # 2816 -2373,3704,4334,1318,1381, 966,1911,2322,1006,1155, 309, 989, 458,2718,1795,1372, # 2832 -1203, 252,1689,1363,3177, 517,1936, 168,1490, 562, 193,3823,1042,4117,1835, 551, # 2848 - 470,4645, 395, 489,3448,1871,1465,2583,2641, 417,1493, 279,1295, 511,1236,1119, # 2864 - 72,1231,1982,1812,3004, 871,1564, 984,3449,1667,2696,2096,4646,2347,2833,1673, # 2880 -3609, 695,3246,2668, 807,1183,4647, 890, 388,2333,1801,1457,2911,1765,1477,1031, # 2896 -3316,3317,1278,3391,2799,2292,2526, 163,3450,4335,2669,1404,1802,6148,2323,2407, # 2912 -1584,1728,1494,1824,1269, 298, 909,3318,1034,1632, 375, 776,1683,2061, 291, 210, # 2928 -1123, 809,1249,1002,2642,3038, 206,1011,2132, 144, 975, 882,1565, 342, 667, 754, # 2944 -1442,2143,1299,2303,2062, 447, 626,2205,1221,2739,2912,1144,1214,2206,2584, 760, # 2960 -1715, 614, 950,1281,2670,2621, 810, 577,1287,2546,4648, 242,2168, 250,2643, 691, # 2976 - 123,2644, 647, 313,1029, 689,1357,2946,1650, 216, 771,1339,1306, 808,2063, 549, # 2992 - 913,1371,2913,2914,6149,1466,1092,1174,1196,1311,2605,2396,1783,1796,3079, 406, # 3008 -2671,2117,3949,4649, 487,1825,2220,6150,2915, 448,2348,1073,6151,2397,1707, 130, # 3024 - 900,1598, 329, 176,1959,2527,1620,6152,2275,4336,3319,1983,2191,3705,3610,2155, # 3040 -3706,1912,1513,1614,6153,1988, 646, 392,2304,1589,3320,3039,1826,1239,1352,1340, # 3056 -2916, 505,2567,1709,1437,2408,2547, 906,6154,2672, 384,1458,1594,1100,1329, 710, # 3072 - 423,3531,2064,2231,2622,1989,2673,1087,1882, 333, 841,3005,1296,2882,2379, 580, # 3088 -1937,1827,1293,2585, 601, 574, 249,1772,4118,2079,1120, 645, 901,1176,1690, 795, # 3104 -2207, 478,1434, 516,1190,1530, 761,2080, 930,1264, 355, 435,1552, 644,1791, 987, # 3120 - 220,1364,1163,1121,1538, 306,2169,1327,1222, 546,2645, 218, 241, 610,1704,3321, # 3136 -1984,1839,1966,2528, 451,6155,2586,3707,2568, 907,3178, 254,2947, 186,1845,4650, # 3152 - 745, 432,1757, 428,1633, 888,2246,2221,2489,3611,2118,1258,1265, 956,3127,1784, # 3168 -4337,2490, 319, 510, 119, 457,3612, 274,2035,2007,4651,1409,3128, 970,2758, 590, # 3184 -2800, 661,2247,4652,2008,3950,1420,1549,3080,3322,3951,1651,1375,2111, 485,2491, # 3200 -1429,1156,6156,2548,2183,1495, 831,1840,2529,2446, 501,1657, 307,1894,3247,1341, # 3216 - 666, 899,2156,1539,2549,1559, 886, 349,2208,3081,2305,1736,3824,2170,2759,1014, # 3232 -1913,1386, 542,1397,2948, 490, 368, 716, 362, 159, 282,2569,1129,1658,1288,1750, # 3248 -2674, 276, 649,2016, 751,1496, 658,1818,1284,1862,2209,2087,2512,3451, 622,2834, # 3264 - 376, 117,1060,2053,1208,1721,1101,1443, 247,1250,3179,1792,3952,2760,2398,3953, # 3280 -6157,2144,3708, 446,2432,1151,2570,3452,2447,2761,2835,1210,2448,3082, 424,2222, # 3296 -1251,2449,2119,2836, 504,1581,4338, 602, 817, 857,3825,2349,2306, 357,3826,1470, # 3312 -1883,2883, 255, 958, 929,2917,3248, 302,4653,1050,1271,1751,2307,1952,1430,2697, # 3328 -2719,2359, 354,3180, 777, 158,2036,4339,1659,4340,4654,2308,2949,2248,1146,2232, # 3344 -3532,2720,1696,2623,3827,6158,3129,1550,2698,1485,1297,1428, 637, 931,2721,2145, # 3360 - 914,2550,2587, 81,2450, 612, 827,2646,1242,4655,1118,2884, 472,1855,3181,3533, # 3376 -3534, 569,1353,2699,1244,1758,2588,4119,2009,2762,2171,3709,1312,1531,6159,1152, # 3392 -1938, 134,1830, 471,3710,2276,1112,1535,3323,3453,3535, 982,1337,2950, 488, 826, # 3408 - 674,1058,1628,4120,2017, 522,2399, 211, 568,1367,3454, 350, 293,1872,1139,3249, # 3424 -1399,1946,3006,1300,2360,3324, 588, 736,6160,2606, 744, 669,3536,3828,6161,1358, # 3440 - 199, 723, 848, 933, 851,1939,1505,1514,1338,1618,1831,4656,1634,3613, 443,2740, # 3456 -3829, 717,1947, 491,1914,6162,2551,1542,4121,1025,6163,1099,1223, 198,3040,2722, # 3472 - 370, 410,1905,2589, 998,1248,3182,2380, 519,1449,4122,1710, 947, 928,1153,4341, # 3488 -2277, 344,2624,1511, 615, 105, 161,1212,1076,1960,3130,2054,1926,1175,1906,2473, # 3504 - 414,1873,2801,6164,2309, 315,1319,3325, 318,2018,2146,2157, 963, 631, 223,4342, # 3520 -4343,2675, 479,3711,1197,2625,3712,2676,2361,6165,4344,4123,6166,2451,3183,1886, # 3536 -2184,1674,1330,1711,1635,1506, 799, 219,3250,3083,3954,1677,3713,3326,2081,3614, # 3552 -1652,2073,4657,1147,3041,1752, 643,1961, 147,1974,3955,6167,1716,2037, 918,3007, # 3568 -1994, 120,1537, 118, 609,3184,4345, 740,3455,1219, 332,1615,3830,6168,1621,2980, # 3584 -1582, 783, 212, 553,2350,3714,1349,2433,2082,4124, 889,6169,2310,1275,1410, 973, # 3600 - 166,1320,3456,1797,1215,3185,2885,1846,2590,2763,4658, 629, 822,3008, 763, 940, # 3616 -1990,2862, 439,2409,1566,1240,1622, 926,1282,1907,2764, 654,2210,1607, 327,1130, # 3632 -3956,1678,1623,6170,2434,2192, 686, 608,3831,3715, 903,3957,3042,6171,2741,1522, # 3648 -1915,1105,1555,2552,1359, 323,3251,4346,3457, 738,1354,2553,2311,2334,1828,2003, # 3664 -3832,1753,2351,1227,6172,1887,4125,1478,6173,2410,1874,1712,1847, 520,1204,2607, # 3680 - 264,4659, 836,2677,2102, 600,4660,3833,2278,3084,6174,4347,3615,1342, 640, 532, # 3696 - 543,2608,1888,2400,2591,1009,4348,1497, 341,1737,3616,2723,1394, 529,3252,1321, # 3712 - 983,4661,1515,2120, 971,2592, 924, 287,1662,3186,4349,2700,4350,1519, 908,1948, # 3728 -2452, 156, 796,1629,1486,2223,2055, 694,4126,1259,1036,3392,1213,2249,2742,1889, # 3744 -1230,3958,1015, 910, 408, 559,3617,4662, 746, 725, 935,4663,3959,3009,1289, 563, # 3760 - 867,4664,3960,1567,2981,2038,2626, 988,2263,2381,4351, 143,2374, 704,1895,6175, # 3776 -1188,3716,2088, 673,3085,2362,4352, 484,1608,1921,2765,2918, 215, 904,3618,3537, # 3792 - 894, 509, 976,3043,2701,3961,4353,2837,2982, 498,6176,6177,1102,3538,1332,3393, # 3808 -1487,1636,1637, 233, 245,3962, 383, 650, 995,3044, 460,1520,1206,2352, 749,3327, # 3824 - 530, 700, 389,1438,1560,1773,3963,2264, 719,2951,2724,3834, 870,1832,1644,1000, # 3840 - 839,2474,3717, 197,1630,3394, 365,2886,3964,1285,2133, 734, 922, 818,1106, 732, # 3856 - 480,2083,1774,3458, 923,2279,1350, 221,3086, 85,2233,2234,3835,1585,3010,2147, # 3872 -1387,1705,2382,1619,2475, 133, 239,2802,1991,1016,2084,2383, 411,2838,1113, 651, # 3888 -1985,1160,3328, 990,1863,3087,1048,1276,2647, 265,2627,1599,3253,2056, 150, 638, # 3904 -2019, 656, 853, 326,1479, 680,1439,4354,1001,1759, 413,3459,3395,2492,1431, 459, # 3920 -4355,1125,3329,2265,1953,1450,2065,2863, 849, 351,2678,3131,3254,3255,1104,1577, # 3936 - 227,1351,1645,2453,2193,1421,2887, 812,2121, 634, 95,2435, 201,2312,4665,1646, # 3952 -1671,2743,1601,2554,2702,2648,2280,1315,1366,2089,3132,1573,3718,3965,1729,1189, # 3968 - 328,2679,1077,1940,1136, 558,1283, 964,1195, 621,2074,1199,1743,3460,3619,1896, # 3984 -1916,1890,3836,2952,1154,2112,1064, 862, 378,3011,2066,2113,2803,1568,2839,6178, # 4000 -3088,2919,1941,1660,2004,1992,2194, 142, 707,1590,1708,1624,1922,1023,1836,1233, # 4016 -1004,2313, 789, 741,3620,6179,1609,2411,1200,4127,3719,3720,4666,2057,3721, 593, # 4032 -2840, 367,2920,1878,6180,3461,1521, 628,1168, 692,2211,2649, 300, 720,2067,2571, # 4048 -2953,3396, 959,2504,3966,3539,3462,1977, 701,6181, 954,1043, 800, 681, 183,3722, # 4064 -1803,1730,3540,4128,2103, 815,2314, 174, 467, 230,2454,1093,2134, 755,3541,3397, # 4080 -1141,1162,6182,1738,2039, 270,3256,2513,1005,1647,2185,3837, 858,1679,1897,1719, # 4096 -2954,2324,1806, 402, 670, 167,4129,1498,2158,2104, 750,6183, 915, 189,1680,1551, # 4112 - 455,4356,1501,2455, 405,1095,2955, 338,1586,1266,1819, 570, 641,1324, 237,1556, # 4128 -2650,1388,3723,6184,1368,2384,1343,1978,3089,2436, 879,3724, 792,1191, 758,3012, # 4144 -1411,2135,1322,4357, 240,4667,1848,3725,1574,6185, 420,3045,1546,1391, 714,4358, # 4160 -1967, 941,1864, 863, 664, 426, 560,1731,2680,1785,2864,1949,2363, 403,3330,1415, # 4176 -1279,2136,1697,2335, 204, 721,2097,3838, 90,6186,2085,2505, 191,3967, 124,2148, # 4192 -1376,1798,1178,1107,1898,1405, 860,4359,1243,1272,2375,2983,1558,2456,1638, 113, # 4208 -3621, 578,1923,2609, 880, 386,4130, 784,2186,2266,1422,2956,2172,1722, 497, 263, # 4224 -2514,1267,2412,2610, 177,2703,3542, 774,1927,1344, 616,1432,1595,1018, 172,4360, # 4240 -2325, 911,4361, 438,1468,3622, 794,3968,2024,2173,1681,1829,2957, 945, 895,3090, # 4256 - 575,2212,2476, 475,2401,2681, 785,2744,1745,2293,2555,1975,3133,2865, 394,4668, # 4272 -3839, 635,4131, 639, 202,1507,2195,2766,1345,1435,2572,3726,1908,1184,1181,2457, # 4288 -3727,3134,4362, 843,2611, 437, 916,4669, 234, 769,1884,3046,3047,3623, 833,6187, # 4304 -1639,2250,2402,1355,1185,2010,2047, 999, 525,1732,1290,1488,2612, 948,1578,3728, # 4320 -2413,2477,1216,2725,2159, 334,3840,1328,3624,2921,1525,4132, 564,1056, 891,4363, # 4336 -1444,1698,2385,2251,3729,1365,2281,2235,1717,6188, 864,3841,2515, 444, 527,2767, # 4352 -2922,3625, 544, 461,6189, 566, 209,2437,3398,2098,1065,2068,3331,3626,3257,2137, # 4368 #last 512 -) - - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jpcntx.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jpcntx.py deleted file mode 100644 index 20044e4..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jpcntx.py +++ /dev/null @@ -1,233 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - - -# This is hiragana 2-char sequence table, the number in each cell represents its frequency category -jp2CharContext = ( -(0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1), -(2,4,0,4,0,3,0,4,0,3,4,4,4,2,4,3,3,4,3,2,3,3,4,2,3,3,3,2,4,1,4,3,3,1,5,4,3,4,3,4,3,5,3,0,3,5,4,2,0,3,1,0,3,3,0,3,3,0,1,1,0,4,3,0,3,3,0,4,0,2,0,3,5,5,5,5,4,0,4,1,0,3,4), -(0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2), -(0,4,0,5,0,5,0,4,0,4,5,4,4,3,5,3,5,1,5,3,4,3,4,4,3,4,3,3,4,3,5,4,4,3,5,5,3,5,5,5,3,5,5,3,4,5,5,3,1,3,2,0,3,4,0,4,2,0,4,2,1,5,3,2,3,5,0,4,0,2,0,5,4,4,5,4,5,0,4,0,0,4,4), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), -(0,3,0,4,0,3,0,3,0,4,5,4,3,3,3,3,4,3,5,4,4,3,5,4,4,3,4,3,4,4,4,4,5,3,4,4,3,4,5,5,4,5,5,1,4,5,4,3,0,3,3,1,3,3,0,4,4,0,3,3,1,5,3,3,3,5,0,4,0,3,0,4,4,3,4,3,3,0,4,1,1,3,4), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), -(0,4,0,3,0,3,0,4,0,3,4,4,3,2,2,1,2,1,3,1,3,3,3,3,3,4,3,1,3,3,5,3,3,0,4,3,0,5,4,3,3,5,4,4,3,4,4,5,0,1,2,0,1,2,0,2,2,0,1,0,0,5,2,2,1,4,0,3,0,1,0,4,4,3,5,4,3,0,2,1,0,4,3), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), -(0,3,0,5,0,4,0,2,1,4,4,2,4,1,4,2,4,2,4,3,3,3,4,3,3,3,3,1,4,2,3,3,3,1,4,4,1,1,1,4,3,3,2,0,2,4,3,2,0,3,3,0,3,1,1,0,0,0,3,3,0,4,2,2,3,4,0,4,0,3,0,4,4,5,3,4,4,0,3,0,0,1,4), -(1,4,0,4,0,4,0,4,0,3,5,4,4,3,4,3,5,4,3,3,4,3,5,4,4,4,4,3,4,2,4,3,3,1,5,4,3,2,4,5,4,5,5,4,4,5,4,4,0,3,2,2,3,3,0,4,3,1,3,2,1,4,3,3,4,5,0,3,0,2,0,4,5,5,4,5,4,0,4,0,0,5,4), -(0,5,0,5,0,4,0,3,0,4,4,3,4,3,3,3,4,0,4,4,4,3,4,3,4,3,3,1,4,2,4,3,4,0,5,4,1,4,5,4,4,5,3,2,4,3,4,3,2,4,1,3,3,3,2,3,2,0,4,3,3,4,3,3,3,4,0,4,0,3,0,4,5,4,4,4,3,0,4,1,0,1,3), -(0,3,1,4,0,3,0,2,0,3,4,4,3,1,4,2,3,3,4,3,4,3,4,3,4,4,3,2,3,1,5,4,4,1,4,4,3,5,4,4,3,5,5,4,3,4,4,3,1,2,3,1,2,2,0,3,2,0,3,1,0,5,3,3,3,4,3,3,3,3,4,4,4,4,5,4,2,0,3,3,2,4,3), -(0,2,0,3,0,1,0,1,0,0,3,2,0,0,2,0,1,0,2,1,3,3,3,1,2,3,1,0,1,0,4,2,1,1,3,3,0,4,3,3,1,4,3,3,0,3,3,2,0,0,0,0,1,0,0,2,0,0,0,0,0,4,1,0,2,3,2,2,2,1,3,3,3,4,4,3,2,0,3,1,0,3,3), -(0,4,0,4,0,3,0,3,0,4,4,4,3,3,3,3,3,3,4,3,4,2,4,3,4,3,3,2,4,3,4,5,4,1,4,5,3,5,4,5,3,5,4,0,3,5,5,3,1,3,3,2,2,3,0,3,4,1,3,3,2,4,3,3,3,4,0,4,0,3,0,4,5,4,4,5,3,0,4,1,0,3,4), -(0,2,0,3,0,3,0,0,0,2,2,2,1,0,1,0,0,0,3,0,3,0,3,0,1,3,1,0,3,1,3,3,3,1,3,3,3,0,1,3,1,3,4,0,0,3,1,1,0,3,2,0,0,0,0,1,3,0,1,0,0,3,3,2,0,3,0,0,0,0,0,3,4,3,4,3,3,0,3,0,0,2,3), -(2,3,0,3,0,2,0,1,0,3,3,4,3,1,3,1,1,1,3,1,4,3,4,3,3,3,0,0,3,1,5,4,3,1,4,3,2,5,5,4,4,4,4,3,3,4,4,4,0,2,1,1,3,2,0,1,2,0,0,1,0,4,1,3,3,3,0,3,0,1,0,4,4,4,5,5,3,0,2,0,0,4,4), -(0,2,0,1,0,3,1,3,0,2,3,3,3,0,3,1,0,0,3,0,3,2,3,1,3,2,1,1,0,0,4,2,1,0,2,3,1,4,3,2,0,4,4,3,1,3,1,3,0,1,0,0,1,0,0,0,1,0,0,0,0,4,1,1,1,2,0,3,0,0,0,3,4,2,4,3,2,0,1,0,0,3,3), -(0,1,0,4,0,5,0,4,0,2,4,4,2,3,3,2,3,3,5,3,3,3,4,3,4,2,3,0,4,3,3,3,4,1,4,3,2,1,5,5,3,4,5,1,3,5,4,2,0,3,3,0,1,3,0,4,2,0,1,3,1,4,3,3,3,3,0,3,0,1,0,3,4,4,4,5,5,0,3,0,1,4,5), -(0,2,0,3,0,3,0,0,0,2,3,1,3,0,4,0,1,1,3,0,3,4,3,2,3,1,0,3,3,2,3,1,3,0,2,3,0,2,1,4,1,2,2,0,0,3,3,0,0,2,0,0,0,1,0,0,0,0,2,2,0,3,2,1,3,3,0,2,0,2,0,0,3,3,1,2,4,0,3,0,2,2,3), -(2,4,0,5,0,4,0,4,0,2,4,4,4,3,4,3,3,3,1,2,4,3,4,3,4,4,5,0,3,3,3,3,2,0,4,3,1,4,3,4,1,4,4,3,3,4,4,3,1,2,3,0,4,2,0,4,1,0,3,3,0,4,3,3,3,4,0,4,0,2,0,3,5,3,4,5,2,0,3,0,0,4,5), -(0,3,0,4,0,1,0,1,0,1,3,2,2,1,3,0,3,0,2,0,2,0,3,0,2,0,0,0,1,0,1,1,0,0,3,1,0,0,0,4,0,3,1,0,2,1,3,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,2,2,3,1,0,3,0,0,0,1,4,4,4,3,0,0,4,0,0,1,4), -(1,4,1,5,0,3,0,3,0,4,5,4,4,3,5,3,3,4,4,3,4,1,3,3,3,3,2,1,4,1,5,4,3,1,4,4,3,5,4,4,3,5,4,3,3,4,4,4,0,3,3,1,2,3,0,3,1,0,3,3,0,5,4,4,4,4,4,4,3,3,5,4,4,3,3,5,4,0,3,2,0,4,4), -(0,2,0,3,0,1,0,0,0,1,3,3,3,2,4,1,3,0,3,1,3,0,2,2,1,1,0,0,2,0,4,3,1,0,4,3,0,4,4,4,1,4,3,1,1,3,3,1,0,2,0,0,1,3,0,0,0,0,2,0,0,4,3,2,4,3,5,4,3,3,3,4,3,3,4,3,3,0,2,1,0,3,3), -(0,2,0,4,0,3,0,2,0,2,5,5,3,4,4,4,4,1,4,3,3,0,4,3,4,3,1,3,3,2,4,3,0,3,4,3,0,3,4,4,2,4,4,0,4,5,3,3,2,2,1,1,1,2,0,1,5,0,3,3,2,4,3,3,3,4,0,3,0,2,0,4,4,3,5,5,0,0,3,0,2,3,3), -(0,3,0,4,0,3,0,1,0,3,4,3,3,1,3,3,3,0,3,1,3,0,4,3,3,1,1,0,3,0,3,3,0,0,4,4,0,1,5,4,3,3,5,0,3,3,4,3,0,2,0,1,1,1,0,1,3,0,1,2,1,3,3,2,3,3,0,3,0,1,0,1,3,3,4,4,1,0,1,2,2,1,3), -(0,1,0,4,0,4,0,3,0,1,3,3,3,2,3,1,1,0,3,0,3,3,4,3,2,4,2,0,1,0,4,3,2,0,4,3,0,5,3,3,2,4,4,4,3,3,3,4,0,1,3,0,0,1,0,0,1,0,0,0,0,4,2,3,3,3,0,3,0,0,0,4,4,4,5,3,2,0,3,3,0,3,5), -(0,2,0,3,0,0,0,3,0,1,3,0,2,0,0,0,1,0,3,1,1,3,3,0,0,3,0,0,3,0,2,3,1,0,3,1,0,3,3,2,0,4,2,2,0,2,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,2,1,2,0,1,0,1,0,0,0,1,3,1,2,0,0,0,1,0,0,1,4), -(0,3,0,3,0,5,0,1,0,2,4,3,1,3,3,2,1,1,5,2,1,0,5,1,2,0,0,0,3,3,2,2,3,2,4,3,0,0,3,3,1,3,3,0,2,5,3,4,0,3,3,0,1,2,0,2,2,0,3,2,0,2,2,3,3,3,0,2,0,1,0,3,4,4,2,5,4,0,3,0,0,3,5), -(0,3,0,3,0,3,0,1,0,3,3,3,3,0,3,0,2,0,2,1,1,0,2,0,1,0,0,0,2,1,0,0,1,0,3,2,0,0,3,3,1,2,3,1,0,3,3,0,0,1,0,0,0,0,0,2,0,0,0,0,0,2,3,1,2,3,0,3,0,1,0,3,2,1,0,4,3,0,1,1,0,3,3), -(0,4,0,5,0,3,0,3,0,4,5,5,4,3,5,3,4,3,5,3,3,2,5,3,4,4,4,3,4,3,4,5,5,3,4,4,3,4,4,5,4,4,4,3,4,5,5,4,2,3,4,2,3,4,0,3,3,1,4,3,2,4,3,3,5,5,0,3,0,3,0,5,5,5,5,4,4,0,4,0,1,4,4), -(0,4,0,4,0,3,0,3,0,3,5,4,4,2,3,2,5,1,3,2,5,1,4,2,3,2,3,3,4,3,3,3,3,2,5,4,1,3,3,5,3,4,4,0,4,4,3,1,1,3,1,0,2,3,0,2,3,0,3,0,0,4,3,1,3,4,0,3,0,2,0,4,4,4,3,4,5,0,4,0,0,3,4), -(0,3,0,3,0,3,1,2,0,3,4,4,3,3,3,0,2,2,4,3,3,1,3,3,3,1,1,0,3,1,4,3,2,3,4,4,2,4,4,4,3,4,4,3,2,4,4,3,1,3,3,1,3,3,0,4,1,0,2,2,1,4,3,2,3,3,5,4,3,3,5,4,4,3,3,0,4,0,3,2,2,4,4), -(0,2,0,1,0,0,0,0,0,1,2,1,3,0,0,0,0,0,2,0,1,2,1,0,0,1,0,0,0,0,3,0,0,1,0,1,1,3,1,0,0,0,1,1,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,1,2,2,0,3,4,0,0,0,1,1,0,0,1,0,0,0,0,0,1,1), -(0,1,0,0,0,1,0,0,0,0,4,0,4,1,4,0,3,0,4,0,3,0,4,0,3,0,3,0,4,1,5,1,4,0,0,3,0,5,0,5,2,0,1,0,0,0,2,1,4,0,1,3,0,0,3,0,0,3,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0), -(1,4,0,5,0,3,0,2,0,3,5,4,4,3,4,3,5,3,4,3,3,0,4,3,3,3,3,3,3,2,4,4,3,1,3,4,4,5,4,4,3,4,4,1,3,5,4,3,3,3,1,2,2,3,3,1,3,1,3,3,3,5,3,3,4,5,0,3,0,3,0,3,4,3,4,4,3,0,3,0,2,4,3), -(0,1,0,4,0,0,0,0,0,1,4,0,4,1,4,2,4,0,3,0,1,0,1,0,0,0,0,0,2,0,3,1,1,1,0,3,0,0,0,1,2,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,3,0,0,0,0,3,2,0,2,2,0,1,0,0,0,2,3,2,3,3,0,0,0,0,2,1,0), -(0,5,1,5,0,3,0,3,0,5,4,4,5,1,5,3,3,0,4,3,4,3,5,3,4,3,3,2,4,3,4,3,3,0,3,3,1,4,4,3,4,4,4,3,4,5,5,3,2,3,1,1,3,3,1,3,1,1,3,3,2,4,5,3,3,5,0,4,0,3,0,4,4,3,5,3,3,0,3,4,0,4,3), -(0,5,0,5,0,3,0,2,0,4,4,3,5,2,4,3,3,3,4,4,4,3,5,3,5,3,3,1,4,0,4,3,3,0,3,3,0,4,4,4,4,5,4,3,3,5,5,3,2,3,1,2,3,2,0,1,0,0,3,2,2,4,4,3,1,5,0,4,0,3,0,4,3,1,3,2,1,0,3,3,0,3,3), -(0,4,0,5,0,5,0,4,0,4,5,5,5,3,4,3,3,2,5,4,4,3,5,3,5,3,4,0,4,3,4,4,3,2,4,4,3,4,5,4,4,5,5,0,3,5,5,4,1,3,3,2,3,3,1,3,1,0,4,3,1,4,4,3,4,5,0,4,0,2,0,4,3,4,4,3,3,0,4,0,0,5,5), -(0,4,0,4,0,5,0,1,1,3,3,4,4,3,4,1,3,0,5,1,3,0,3,1,3,1,1,0,3,0,3,3,4,0,4,3,0,4,4,4,3,4,4,0,3,5,4,1,0,3,0,0,2,3,0,3,1,0,3,1,0,3,2,1,3,5,0,3,0,1,0,3,2,3,3,4,4,0,2,2,0,4,4), -(2,4,0,5,0,4,0,3,0,4,5,5,4,3,5,3,5,3,5,3,5,2,5,3,4,3,3,4,3,4,5,3,2,1,5,4,3,2,3,4,5,3,4,1,2,5,4,3,0,3,3,0,3,2,0,2,3,0,4,1,0,3,4,3,3,5,0,3,0,1,0,4,5,5,5,4,3,0,4,2,0,3,5), -(0,5,0,4,0,4,0,2,0,5,4,3,4,3,4,3,3,3,4,3,4,2,5,3,5,3,4,1,4,3,4,4,4,0,3,5,0,4,4,4,4,5,3,1,3,4,5,3,3,3,3,3,3,3,0,2,2,0,3,3,2,4,3,3,3,5,3,4,1,3,3,5,3,2,0,0,0,0,4,3,1,3,3), -(0,1,0,3,0,3,0,1,0,1,3,3,3,2,3,3,3,0,3,0,0,0,3,1,3,0,0,0,2,2,2,3,0,0,3,2,0,1,2,4,1,3,3,0,0,3,3,3,0,1,0,0,2,1,0,0,3,0,3,1,0,3,0,0,1,3,0,2,0,1,0,3,3,1,3,3,0,0,1,1,0,3,3), -(0,2,0,3,0,2,1,4,0,2,2,3,1,1,3,1,1,0,2,0,3,1,2,3,1,3,0,0,1,0,4,3,2,3,3,3,1,4,2,3,3,3,3,1,0,3,1,4,0,1,1,0,1,2,0,1,1,0,1,1,0,3,1,3,2,2,0,1,0,0,0,2,3,3,3,1,0,0,0,0,0,2,3), -(0,5,0,4,0,5,0,2,0,4,5,5,3,3,4,3,3,1,5,4,4,2,4,4,4,3,4,2,4,3,5,5,4,3,3,4,3,3,5,5,4,5,5,1,3,4,5,3,1,4,3,1,3,3,0,3,3,1,4,3,1,4,5,3,3,5,0,4,0,3,0,5,3,3,1,4,3,0,4,0,1,5,3), -(0,5,0,5,0,4,0,2,0,4,4,3,4,3,3,3,3,3,5,4,4,4,4,4,4,5,3,3,5,2,4,4,4,3,4,4,3,3,4,4,5,5,3,3,4,3,4,3,3,4,3,3,3,3,1,2,2,1,4,3,3,5,4,4,3,4,0,4,0,3,0,4,4,4,4,4,1,0,4,2,0,2,4), -(0,4,0,4,0,3,0,1,0,3,5,2,3,0,3,0,2,1,4,2,3,3,4,1,4,3,3,2,4,1,3,3,3,0,3,3,0,0,3,3,3,5,3,3,3,3,3,2,0,2,0,0,2,0,0,2,0,0,1,0,0,3,1,2,2,3,0,3,0,2,0,4,4,3,3,4,1,0,3,0,0,2,4), -(0,0,0,4,0,0,0,0,0,0,1,0,1,0,2,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,3,1,3,0,3,2,0,0,0,1,0,3,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,0,2,0,0,0,0,0,0,2), -(0,2,1,3,0,2,0,2,0,3,3,3,3,1,3,1,3,3,3,3,3,3,4,2,2,1,2,1,4,0,4,3,1,3,3,3,2,4,3,5,4,3,3,3,3,3,3,3,0,1,3,0,2,0,0,1,0,0,1,0,0,4,2,0,2,3,0,3,3,0,3,3,4,2,3,1,4,0,1,2,0,2,3), -(0,3,0,3,0,1,0,3,0,2,3,3,3,0,3,1,2,0,3,3,2,3,3,2,3,2,3,1,3,0,4,3,2,0,3,3,1,4,3,3,2,3,4,3,1,3,3,1,1,0,1,1,0,1,0,1,0,1,0,0,0,4,1,1,0,3,0,3,1,0,2,3,3,3,3,3,1,0,0,2,0,3,3), -(0,0,0,0,0,0,0,0,0,0,3,0,2,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,3,0,3,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,2,0,2,3,0,0,0,0,0,0,0,0,3), -(0,2,0,3,1,3,0,3,0,2,3,3,3,1,3,1,3,1,3,1,3,3,3,1,3,0,2,3,1,1,4,3,3,2,3,3,1,2,2,4,1,3,3,0,1,4,2,3,0,1,3,0,3,0,0,1,3,0,2,0,0,3,3,2,1,3,0,3,0,2,0,3,4,4,4,3,1,0,3,0,0,3,3), -(0,2,0,1,0,2,0,0,0,1,3,2,2,1,3,0,1,1,3,0,3,2,3,1,2,0,2,0,1,1,3,3,3,0,3,3,1,1,2,3,2,3,3,1,2,3,2,0,0,1,0,0,0,0,0,0,3,0,1,0,0,2,1,2,1,3,0,3,0,0,0,3,4,4,4,3,2,0,2,0,0,2,4), -(0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,2,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,3,1,0,0,0,0,0,0,0,3), -(0,3,0,3,0,2,0,3,0,3,3,3,2,3,2,2,2,0,3,1,3,3,3,2,3,3,0,0,3,0,3,2,2,0,2,3,1,4,3,4,3,3,2,3,1,5,4,4,0,3,1,2,1,3,0,3,1,1,2,0,2,3,1,3,1,3,0,3,0,1,0,3,3,4,4,2,1,0,2,1,0,2,4), -(0,1,0,3,0,1,0,2,0,1,4,2,5,1,4,0,2,0,2,1,3,1,4,0,2,1,0,0,2,1,4,1,1,0,3,3,0,5,1,3,2,3,3,1,0,3,2,3,0,1,0,0,0,0,0,0,1,0,0,0,0,4,0,1,0,3,0,2,0,1,0,3,3,3,4,3,3,0,0,0,0,2,3), -(0,0,0,1,0,0,0,0,0,0,2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,1,0,0,0,0,0,3), -(0,1,0,3,0,4,0,3,0,2,4,3,1,0,3,2,2,1,3,1,2,2,3,1,1,1,2,1,3,0,1,2,0,1,3,2,1,3,0,5,5,1,0,0,1,3,2,1,0,3,0,0,1,0,0,0,0,0,3,4,0,1,1,1,3,2,0,2,0,1,0,2,3,3,1,2,3,0,1,0,1,0,4), -(0,0,0,1,0,3,0,3,0,2,2,1,0,0,4,0,3,0,3,1,3,0,3,0,3,0,1,0,3,0,3,1,3,0,3,3,0,0,1,2,1,1,1,0,1,2,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,2,2,1,2,0,0,2,0,0,0,0,2,3,3,3,3,0,0,0,0,1,4), -(0,0,0,3,0,3,0,0,0,0,3,1,1,0,3,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,3,0,2,0,2,3,0,0,2,2,3,1,2,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,2,3), -(2,4,0,5,0,5,0,4,0,3,4,3,3,3,4,3,3,3,4,3,4,4,5,4,5,5,5,2,3,0,5,5,4,1,5,4,3,1,5,4,3,4,4,3,3,4,3,3,0,3,2,0,2,3,0,3,0,0,3,3,0,5,3,2,3,3,0,3,0,3,0,3,4,5,4,5,3,0,4,3,0,3,4), -(0,3,0,3,0,3,0,3,0,3,3,4,3,2,3,2,3,0,4,3,3,3,3,3,3,3,3,0,3,2,4,3,3,1,3,4,3,4,4,4,3,4,4,3,2,4,4,1,0,2,0,0,1,1,0,2,0,0,3,1,0,5,3,2,1,3,0,3,0,1,2,4,3,2,4,3,3,0,3,2,0,4,4), -(0,3,0,3,0,1,0,0,0,1,4,3,3,2,3,1,3,1,4,2,3,2,4,2,3,4,3,0,2,2,3,3,3,0,3,3,3,0,3,4,1,3,3,0,3,4,3,3,0,1,1,0,1,0,0,0,4,0,3,0,0,3,1,2,1,3,0,4,0,1,0,4,3,3,4,3,3,0,2,0,0,3,3), -(0,3,0,4,0,1,0,3,0,3,4,3,3,0,3,3,3,1,3,1,3,3,4,3,3,3,0,0,3,1,5,3,3,1,3,3,2,5,4,3,3,4,5,3,2,5,3,4,0,1,0,0,0,0,0,2,0,0,1,1,0,4,2,2,1,3,0,3,0,2,0,4,4,3,5,3,2,0,1,1,0,3,4), -(0,5,0,4,0,5,0,2,0,4,4,3,3,2,3,3,3,1,4,3,4,1,5,3,4,3,4,0,4,2,4,3,4,1,5,4,0,4,4,4,4,5,4,1,3,5,4,2,1,4,1,1,3,2,0,3,1,0,3,2,1,4,3,3,3,4,0,4,0,3,0,4,4,4,3,3,3,0,4,2,0,3,4), -(1,4,0,4,0,3,0,1,0,3,3,3,1,1,3,3,2,2,3,3,1,0,3,2,2,1,2,0,3,1,2,1,2,0,3,2,0,2,2,3,3,4,3,0,3,3,1,2,0,1,1,3,1,2,0,0,3,0,1,1,0,3,2,2,3,3,0,3,0,0,0,2,3,3,4,3,3,0,1,0,0,1,4), -(0,4,0,4,0,4,0,0,0,3,4,4,3,1,4,2,3,2,3,3,3,1,4,3,4,0,3,0,4,2,3,3,2,2,5,4,2,1,3,4,3,4,3,1,3,3,4,2,0,2,1,0,3,3,0,0,2,0,3,1,0,4,4,3,4,3,0,4,0,1,0,2,4,4,4,4,4,0,3,2,0,3,3), -(0,0,0,1,0,4,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,3,2,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2), -(0,2,0,3,0,4,0,4,0,1,3,3,3,0,4,0,2,1,2,1,1,1,2,0,3,1,1,0,1,0,3,1,0,0,3,3,2,0,1,1,0,0,0,0,0,1,0,2,0,2,2,0,3,1,0,0,1,0,1,1,0,1,2,0,3,0,0,0,0,1,0,0,3,3,4,3,1,0,1,0,3,0,2), -(0,0,0,3,0,5,0,0,0,0,1,0,2,0,3,1,0,1,3,0,0,0,2,0,0,0,1,0,0,0,1,1,0,0,4,0,0,0,2,3,0,1,4,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,3,0,0,0,0,0,3), -(0,2,0,5,0,5,0,1,0,2,4,3,3,2,5,1,3,2,3,3,3,0,4,1,2,0,3,0,4,0,2,2,1,1,5,3,0,0,1,4,2,3,2,0,3,3,3,2,0,2,4,1,1,2,0,1,1,0,3,1,0,1,3,1,2,3,0,2,0,0,0,1,3,5,4,4,4,0,3,0,0,1,3), -(0,4,0,5,0,4,0,4,0,4,5,4,3,3,4,3,3,3,4,3,4,4,5,3,4,5,4,2,4,2,3,4,3,1,4,4,1,3,5,4,4,5,5,4,4,5,5,5,2,3,3,1,4,3,1,3,3,0,3,3,1,4,3,4,4,4,0,3,0,4,0,3,3,4,4,5,0,0,4,3,0,4,5), -(0,4,0,4,0,3,0,3,0,3,4,4,4,3,3,2,4,3,4,3,4,3,5,3,4,3,2,1,4,2,4,4,3,1,3,4,2,4,5,5,3,4,5,4,1,5,4,3,0,3,2,2,3,2,1,3,1,0,3,3,3,5,3,3,3,5,4,4,2,3,3,4,3,3,3,2,1,0,3,2,1,4,3), -(0,4,0,5,0,4,0,3,0,3,5,5,3,2,4,3,4,0,5,4,4,1,4,4,4,3,3,3,4,3,5,5,2,3,3,4,1,2,5,5,3,5,5,2,3,5,5,4,0,3,2,0,3,3,1,1,5,1,4,1,0,4,3,2,3,5,0,4,0,3,0,5,4,3,4,3,0,0,4,1,0,4,4), -(1,3,0,4,0,2,0,2,0,2,5,5,3,3,3,3,3,0,4,2,3,4,4,4,3,4,0,0,3,4,5,4,3,3,3,3,2,5,5,4,5,5,5,4,3,5,5,5,1,3,1,0,1,0,0,3,2,0,4,2,0,5,2,3,2,4,1,3,0,3,0,4,5,4,5,4,3,0,4,2,0,5,4), -(0,3,0,4,0,5,0,3,0,3,4,4,3,2,3,2,3,3,3,3,3,2,4,3,3,2,2,0,3,3,3,3,3,1,3,3,3,0,4,4,3,4,4,1,1,4,4,2,0,3,1,0,1,1,0,4,1,0,2,3,1,3,3,1,3,4,0,3,0,1,0,3,1,3,0,0,1,0,2,0,0,4,4), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), -(0,3,0,3,0,2,0,3,0,1,5,4,3,3,3,1,4,2,1,2,3,4,4,2,4,4,5,0,3,1,4,3,4,0,4,3,3,3,2,3,2,5,3,4,3,2,2,3,0,0,3,0,2,1,0,1,2,0,0,0,0,2,1,1,3,1,0,2,0,4,0,3,4,4,4,5,2,0,2,0,0,1,3), -(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,4,2,1,1,0,1,0,3,2,0,0,3,1,1,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,0,2,0,0,0,1,4,0,4,2,1,0,0,0,0,0,1), -(0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,3,1,0,0,0,2,0,2,1,0,0,1,2,1,0,1,1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,1,0,0,2,1,0,0,0,0,0,0,0,0,2), -(0,4,0,4,0,4,0,3,0,4,4,3,4,2,4,3,2,0,4,4,4,3,5,3,5,3,3,2,4,2,4,3,4,3,1,4,0,2,3,4,4,4,3,3,3,4,4,4,3,4,1,3,4,3,2,1,2,1,3,3,3,4,4,3,3,5,0,4,0,3,0,4,3,3,3,2,1,0,3,0,0,3,3), -(0,4,0,3,0,3,0,3,0,3,5,5,3,3,3,3,4,3,4,3,3,3,4,4,4,3,3,3,3,4,3,5,3,3,1,3,2,4,5,5,5,5,4,3,4,5,5,3,2,2,3,3,3,3,2,3,3,1,2,3,2,4,3,3,3,4,0,4,0,2,0,4,3,2,2,1,2,0,3,0,0,4,1), -) - -class JapaneseContextAnalysis(object): - NUM_OF_CATEGORY = 6 - DONT_KNOW = -1 - ENOUGH_REL_THRESHOLD = 100 - MAX_REL_THRESHOLD = 1000 - MINIMUM_DATA_THRESHOLD = 4 - - def __init__(self): - self._total_rel = None - self._rel_sample = None - self._need_to_skip_char_num = None - self._last_char_order = None - self._done = None - self.reset() - - def reset(self): - self._total_rel = 0 # total sequence received - # category counters, each integer counts sequence in its category - self._rel_sample = [0] * self.NUM_OF_CATEGORY - # if last byte in current buffer is not the last byte of a character, - # we need to know how many bytes to skip in next buffer - self._need_to_skip_char_num = 0 - self._last_char_order = -1 # The order of previous char - # If this flag is set to True, detection is done and conclusion has - # been made - self._done = False - - def feed(self, byte_str, num_bytes): - if self._done: - return - - # The buffer we got is byte oriented, and a character may span in more than one - # buffers. In case the last one or two byte in last buffer is not - # complete, we record how many byte needed to complete that character - # and skip these bytes here. We can choose to record those bytes as - # well and analyse the character once it is complete, but since a - # character will not make much difference, by simply skipping - # this character will simply our logic and improve performance. - i = self._need_to_skip_char_num - while i < num_bytes: - order, char_len = self.get_order(byte_str[i:i + 2]) - i += char_len - if i > num_bytes: - self._need_to_skip_char_num = i - num_bytes - self._last_char_order = -1 - else: - if (order != -1) and (self._last_char_order != -1): - self._total_rel += 1 - if self._total_rel > self.MAX_REL_THRESHOLD: - self._done = True - break - self._rel_sample[jp2CharContext[self._last_char_order][order]] += 1 - self._last_char_order = order - - def got_enough_data(self): - return self._total_rel > self.ENOUGH_REL_THRESHOLD - - def get_confidence(self): - # This is just one way to calculate confidence. It works well for me. - if self._total_rel > self.MINIMUM_DATA_THRESHOLD: - return (self._total_rel - self._rel_sample[0]) / self._total_rel - else: - return self.DONT_KNOW - - def get_order(self, byte_str): - return -1, 1 - -class SJISContextAnalysis(JapaneseContextAnalysis): - def __init__(self): - super(SJISContextAnalysis, self).__init__() - self._charset_name = "SHIFT_JIS" - - @property - def charset_name(self): - return self._charset_name - - def get_order(self, byte_str): - if not byte_str: - return -1, 1 - # find out current char's byte length - first_char = byte_str[0] - if (0x81 <= first_char <= 0x9F) or (0xE0 <= first_char <= 0xFC): - char_len = 2 - if (first_char == 0x87) or (0xFA <= first_char <= 0xFC): - self._charset_name = "CP932" - else: - char_len = 1 - - # return its order if it is hiragana - if len(byte_str) > 1: - second_char = byte_str[1] - if (first_char == 202) and (0x9F <= second_char <= 0xF1): - return second_char - 0x9F, char_len - - return -1, char_len - -class EUCJPContextAnalysis(JapaneseContextAnalysis): - def get_order(self, byte_str): - if not byte_str: - return -1, 1 - # find out current char's byte length - first_char = byte_str[0] - if (first_char == 0x8E) or (0xA1 <= first_char <= 0xFE): - char_len = 2 - elif first_char == 0x8F: - char_len = 3 - else: - char_len = 1 - - # return its order if it is hiragana - if len(byte_str) > 1: - second_char = byte_str[1] - if (first_char == 0xA4) and (0xA1 <= second_char <= 0xF3): - return second_char - 0xA1, char_len - - return -1, char_len - - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langbulgarianmodel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langbulgarianmodel.py deleted file mode 100644 index 2aa4fb2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langbulgarianmodel.py +++ /dev/null @@ -1,228 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# 255: Control characters that usually does not exist in any text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 - -# Character Mapping Table: -# this table is modified base on win1251BulgarianCharToOrderMap, so -# only number <64 is sure valid - -Latin5_BulgarianCharToOrderMap = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253, 77, 90, 99,100, 72,109,107,101, 79,185, 81,102, 76, 94, 82, # 40 -110,186,108, 91, 74,119, 84, 96,111,187,115,253,253,253,253,253, # 50 -253, 65, 69, 70, 66, 63, 68,112,103, 92,194,104, 95, 86, 87, 71, # 60 -116,195, 85, 93, 97,113,196,197,198,199,200,253,253,253,253,253, # 70 -194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209, # 80 -210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225, # 90 - 81,226,227,228,229,230,105,231,232,233,234,235,236, 45,237,238, # a0 - 31, 32, 35, 43, 37, 44, 55, 47, 40, 59, 33, 46, 38, 36, 41, 30, # b0 - 39, 28, 34, 51, 48, 49, 53, 50, 54, 57, 61,239, 67,240, 60, 56, # c0 - 1, 18, 9, 20, 11, 3, 23, 15, 2, 26, 12, 10, 14, 6, 4, 13, # d0 - 7, 8, 5, 19, 29, 25, 22, 21, 27, 24, 17, 75, 52,241, 42, 16, # e0 - 62,242,243,244, 58,245, 98,246,247,248,249,250,251, 91,252,253, # f0 -) - -win1251BulgarianCharToOrderMap = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253, 77, 90, 99,100, 72,109,107,101, 79,185, 81,102, 76, 94, 82, # 40 -110,186,108, 91, 74,119, 84, 96,111,187,115,253,253,253,253,253, # 50 -253, 65, 69, 70, 66, 63, 68,112,103, 92,194,104, 95, 86, 87, 71, # 60 -116,195, 85, 93, 97,113,196,197,198,199,200,253,253,253,253,253, # 70 -206,207,208,209,210,211,212,213,120,214,215,216,217,218,219,220, # 80 -221, 78, 64, 83,121, 98,117,105,222,223,224,225,226,227,228,229, # 90 - 88,230,231,232,233,122, 89,106,234,235,236,237,238, 45,239,240, # a0 - 73, 80,118,114,241,242,243,244,245, 62, 58,246,247,248,249,250, # b0 - 31, 32, 35, 43, 37, 44, 55, 47, 40, 59, 33, 46, 38, 36, 41, 30, # c0 - 39, 28, 34, 51, 48, 49, 53, 50, 54, 57, 61,251, 67,252, 60, 56, # d0 - 1, 18, 9, 20, 11, 3, 23, 15, 2, 26, 12, 10, 14, 6, 4, 13, # e0 - 7, 8, 5, 19, 29, 25, 22, 21, 27, 24, 17, 75, 52,253, 42, 16, # f0 -) - -# Model Table: -# total sequences: 100% -# first 512 sequences: 96.9392% -# first 1024 sequences:3.0618% -# rest sequences: 0.2992% -# negative sequences: 0.0020% -BulgarianLangModel = ( -0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,3,3,3,3,3, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,2,2,3,2,2,1,2,2, -3,1,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,0,3,0,1, -0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,3,3,3,0,3,1,0, -0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,3,3,3,0,3,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,3,3,3,0,3,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,1,3,3,3,3,2,2,2,1,1,2,0,1,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,3,3,2,3,2,2,3,3,1,1,2,3,3,2,3,3,3,3,2,1,2,0,2,0,3,0,0, -0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,3,3,1,3,3,3,3,3,2,3,2,3,3,3,3,3,2,3,3,1,3,0,3,0,2,0,0, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,3,3,3,1,3,3,2,3,3,3,1,3,3,2,3,2,2,2,0,0,2,0,2,0,2,0,0, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,3,3,3,3,0,3,3,3,2,2,3,3,3,1,2,2,3,2,1,1,2,0,2,0,0,0,0, -1,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,3,3,2,3,3,1,2,3,2,2,2,3,3,3,3,3,2,2,3,1,2,0,2,1,2,0,0, -0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,1,3,3,3,3,3,2,3,3,3,2,3,3,2,3,2,2,2,3,1,2,0,1,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,3,3,3,3,3,3,1,1,1,2,2,1,3,1,3,2,2,3,0,0,1,0,1,0,1,0,0, -0,0,0,1,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,2,2,3,2,2,3,1,2,1,1,1,2,3,1,3,1,2,2,0,1,1,1,1,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,1,3,2,2,3,3,1,2,3,1,1,3,3,3,3,1,2,2,1,1,1,0,2,0,2,0,1, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,3,3,3,2,2,1,1,2,0,2,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,0,1,2,1,3,3,2,3,3,3,3,3,2,3,2,1,0,3,1,2,1,2,1,2,3,2,1,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,1,1,2,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,1,3,3,2,3,3,2,2,2,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,3,3,3,3,0,3,3,3,3,3,2,1,1,2,1,3,3,0,3,1,1,1,1,3,2,0,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,1,1,3,1,3,3,2,3,2,2,2,3,0,2,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,2,3,3,2,2,3,2,1,1,1,1,1,3,1,3,1,1,0,0,0,1,0,0,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,2,3,2,0,3,2,0,3,0,2,0,0,2,1,3,1,0,0,1,0,0,0,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,2,1,1,1,1,2,1,1,2,1,1,1,2,2,1,2,1,1,1,0,1,1,0,1,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,2,1,3,1,1,2,1,3,2,1,1,0,1,2,3,2,1,1,1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,3,3,3,3,2,2,1,0,1,0,0,1,0,0,0,2,1,0,3,0,0,1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,2,3,2,3,3,1,3,2,1,1,1,2,1,1,2,1,3,0,1,0,0,0,1,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,1,1,2,2,3,3,2,3,2,2,2,3,1,2,2,1,1,2,1,1,2,2,0,1,1,0,1,0,2,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,2,1,3,1,0,2,2,1,3,2,1,0,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,3,1,2,0,2,3,1,2,3,2,0,1,3,1,2,1,1,1,0,0,1,0,0,2,2,2,3, -2,2,2,2,1,2,1,1,2,2,1,1,2,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,1, -3,3,3,3,3,2,1,2,2,1,2,0,2,0,1,0,1,2,1,2,1,1,0,0,0,1,0,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, -3,3,2,3,3,1,1,3,1,0,3,2,1,0,0,0,1,2,0,2,0,1,0,0,0,1,0,1,2,1,2,2, -1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,0,1,2,1,1,1,0,0,0,0,0,1,1,0,0, -3,1,0,1,0,2,3,2,2,2,3,2,2,2,2,2,1,0,2,1,2,1,1,1,0,1,2,1,2,2,2,1, -1,1,2,2,2,2,1,2,1,1,0,1,2,1,2,2,2,1,1,1,0,1,1,1,1,2,0,1,0,0,0,0, -2,3,2,3,3,0,0,2,1,0,2,1,0,0,0,0,2,3,0,2,0,0,0,0,0,1,0,0,2,0,1,2, -2,1,2,1,2,2,1,1,1,2,1,1,1,0,1,2,2,1,1,1,1,1,0,1,1,1,0,0,1,2,0,0, -3,3,2,2,3,0,2,3,1,1,2,0,0,0,1,0,0,2,0,2,0,0,0,1,0,1,0,1,2,0,2,2, -1,1,1,1,2,1,0,1,2,2,2,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0, -2,3,2,3,3,0,0,3,0,1,1,0,1,0,0,0,2,2,1,2,0,0,0,0,0,0,0,0,2,0,1,2, -2,2,1,1,1,1,1,2,2,2,1,0,2,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0, -3,3,3,3,2,2,2,2,2,0,2,1,1,1,1,2,1,2,1,1,0,2,0,1,0,1,0,0,2,0,1,2, -1,1,1,1,1,1,1,2,2,1,1,0,2,0,1,0,2,0,0,1,1,1,0,0,2,0,0,0,1,1,0,0, -2,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,2,0,0,1,1,0,0,0,0,0,0,1,2,0,1,2, -2,2,2,1,1,2,1,1,2,2,2,1,2,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,0,0, -2,3,3,3,3,0,2,2,0,2,1,0,0,0,1,1,1,2,0,2,0,0,0,3,0,0,0,0,2,0,2,2, -1,1,1,2,1,2,1,1,2,2,2,1,2,0,1,1,1,0,1,1,1,1,0,2,1,0,0,0,1,1,0,0, -2,3,3,3,3,0,2,1,0,0,2,0,0,0,0,0,1,2,0,2,0,0,0,0,0,0,0,0,2,0,1,2, -1,1,1,2,1,1,1,1,2,2,2,0,1,0,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,1,0,0, -3,3,2,2,3,0,1,0,1,0,0,0,0,0,0,0,1,1,0,3,0,0,0,0,0,0,0,0,1,0,2,2, -1,1,1,1,1,2,1,1,2,2,1,2,2,1,0,1,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0, -3,1,0,1,0,2,2,2,2,3,2,1,1,1,2,3,0,0,1,0,2,1,1,0,1,1,1,1,2,1,1,1, -1,2,2,1,2,1,2,2,1,1,0,1,2,1,2,2,1,1,1,0,0,1,1,1,2,1,0,1,0,0,0,0, -2,1,0,1,0,3,1,2,2,2,2,1,2,2,1,1,1,0,2,1,2,2,1,1,2,1,1,0,2,1,1,1, -1,2,2,2,2,2,2,2,1,2,0,1,1,0,2,1,1,1,1,1,0,0,1,1,1,1,0,1,0,0,0,0, -2,1,1,1,1,2,2,2,2,1,2,2,2,1,2,2,1,1,2,1,2,3,2,2,1,1,1,1,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,3,2,0,1,2,0,1,2,1,1,0,1,0,1,2,1,2,0,0,0,1,1,0,0,0,1,0,0,2, -1,1,0,0,1,1,0,1,1,1,1,0,2,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0, -2,0,0,0,0,1,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,0,1,1,1,1,1,2,1,1,1, -1,2,2,2,2,1,1,2,1,2,1,1,1,0,2,1,2,1,1,1,0,2,1,1,1,1,0,1,0,0,0,0, -3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, -1,1,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,3,2,0,0,0,0,1,0,0,0,0,0,0,1,1,0,2,0,0,0,0,0,0,0,0,1,0,1,2, -1,1,1,1,1,1,0,0,2,2,2,2,2,0,1,1,0,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1, -2,3,1,2,1,0,1,1,0,2,2,2,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,1,2, -1,1,1,1,2,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0, -2,2,2,2,2,0,0,2,0,0,2,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,2,0,2,2, -1,1,1,1,1,0,0,1,2,1,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, -1,2,2,2,2,0,0,2,0,1,1,0,0,0,1,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,1,1, -0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, -1,2,2,3,2,0,0,1,0,0,1,0,0,0,0,0,0,1,0,2,0,0,0,1,0,0,0,0,0,0,0,2, -1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, -2,1,2,2,2,1,2,1,2,2,1,1,2,1,1,1,0,1,1,1,1,2,0,1,0,1,1,1,1,0,1,1, -1,1,2,1,1,1,1,1,1,0,0,1,2,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0, -1,0,0,1,3,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,2,1,0,0,1,0,2,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,1, -0,2,0,1,0,0,1,1,2,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, -1,2,2,2,2,0,1,1,0,2,1,0,1,1,1,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,1, -0,1,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,2,2,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1, -0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, -2,0,1,0,0,1,2,1,1,1,1,1,1,2,2,1,0,0,1,0,1,0,0,0,0,1,1,1,1,0,0,0, -1,1,2,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,2,1,2,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1, -0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0, -0,1,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, -1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,2,0,0,2,0,1,0,0,1,0,0,1, -1,1,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, -1,1,1,1,1,1,1,2,0,0,0,0,0,0,2,1,0,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -) - -Latin5BulgarianModel = { - 'char_to_order_map': Latin5_BulgarianCharToOrderMap, - 'precedence_matrix': BulgarianLangModel, - 'typical_positive_ratio': 0.969392, - 'keep_english_letter': False, - 'charset_name': "ISO-8859-5", - 'language': 'Bulgairan', -} - -Win1251BulgarianModel = { - 'char_to_order_map': win1251BulgarianCharToOrderMap, - 'precedence_matrix': BulgarianLangModel, - 'typical_positive_ratio': 0.969392, - 'keep_english_letter': False, - 'charset_name': "windows-1251", - 'language': 'Bulgarian', -} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langcyrillicmodel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langcyrillicmodel.py deleted file mode 100644 index e5f9a1f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langcyrillicmodel.py +++ /dev/null @@ -1,333 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# KOI8-R language model -# Character Mapping Table: -KOI8R_char_to_order_map = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 -155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 -253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 - 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 -191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, # 80 -207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, # 90 -223,224,225, 68,226,227,228,229,230,231,232,233,234,235,236,237, # a0 -238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253, # b0 - 27, 3, 21, 28, 13, 2, 39, 19, 26, 4, 23, 11, 8, 12, 5, 1, # c0 - 15, 16, 9, 7, 6, 14, 24, 10, 17, 18, 20, 25, 30, 29, 22, 54, # d0 - 59, 37, 44, 58, 41, 48, 53, 46, 55, 42, 60, 36, 49, 38, 31, 34, # e0 - 35, 43, 45, 32, 40, 52, 56, 33, 61, 62, 51, 57, 47, 63, 50, 70, # f0 -) - -win1251_char_to_order_map = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 -155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 -253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 - 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 -191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, -207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, -223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238, -239,240,241,242,243,244,245,246, 68,247,248,249,250,251,252,253, - 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35, - 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43, - 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15, - 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27, 16, -) - -latin5_char_to_order_map = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 -155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 -253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 - 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 -191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, -207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, -223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238, - 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35, - 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43, - 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15, - 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27, 16, -239, 68,240,241,242,243,244,245,246,247,248,249,250,251,252,255, -) - -macCyrillic_char_to_order_map = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 -155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 -253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 - 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 - 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35, - 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43, -191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, -207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, -223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238, -239,240,241,242,243,244,245,246,247,248,249,250,251,252, 68, 16, - 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15, - 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27,255, -) - -IBM855_char_to_order_map = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 -155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 -253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 - 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 -191,192,193,194, 68,195,196,197,198,199,200,201,202,203,204,205, -206,207,208,209,210,211,212,213,214,215,216,217, 27, 59, 54, 70, - 3, 37, 21, 44, 28, 58, 13, 41, 2, 48, 39, 53, 19, 46,218,219, -220,221,222,223,224, 26, 55, 4, 42,225,226,227,228, 23, 60,229, -230,231,232,233,234,235, 11, 36,236,237,238,239,240,241,242,243, - 8, 49, 12, 38, 5, 31, 1, 34, 15,244,245,246,247, 35, 16,248, - 43, 9, 45, 7, 32, 6, 40, 14, 52, 24, 56, 10, 33, 17, 61,249, -250, 18, 62, 20, 51, 25, 57, 30, 47, 29, 63, 22, 50,251,252,255, -) - -IBM866_char_to_order_map = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 -155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 -253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 - 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 - 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35, - 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43, - 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15, -191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, -207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, -223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238, - 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27, 16, -239, 68,240,241,242,243,244,245,246,247,248,249,250,251,252,255, -) - -# Model Table: -# total sequences: 100% -# first 512 sequences: 97.6601% -# first 1024 sequences: 2.3389% -# rest sequences: 0.1237% -# negative sequences: 0.0009% -RussianLangModel = ( -0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,1,3,3,3,2,3,2,3,3, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,2,2,2,2,0,0,2, -3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,3,3,0,0,3,3,3,3,3,3,3,3,3,2,3,2,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,2,2,3,3,3,3,3,3,3,3,3,2,3,3,0,0,3,3,3,3,3,3,3,3,2,3,3,1,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,2,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,2,1, -0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,2,1, -0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,2,2,2,3,1,3,3,1,3,3,3,3,2,2,3,0,2,2,2,3,3,2,1,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,2,3,3,3,3,3,2,2,3,2,3,3,3,2,1,2,2,0,1,2,2,2,2,2,2,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,0,2,2,3,3,2,1,2,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,2,3,3,1,2,3,2,2,3,2,3,3,3,3,2,2,3,0,3,2,2,3,1,1,1,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,2,3,3,3,3,2,2,2,0,3,3,3,2,2,2,2,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,3,2,3,2,2,0,1,3,2,1,2,2,1,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,3,2,1,1,3,0,1,1,1,1,2,1,1,0,2,2,2,1,2,0,1,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,2,3,3,2,2,2,2,1,3,2,3,2,3,2,1,2,2,0,1,1,2,1,2,1,2,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,3,2,2,2,2,0,2,2,2,2,3,1,1,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, -3,2,3,2,2,3,3,3,3,3,3,3,3,3,1,3,2,0,0,3,3,3,3,2,3,3,3,3,2,3,2,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,3,3,3,3,3,2,2,3,3,0,2,1,0,3,2,3,2,3,0,0,1,2,0,0,1,0,1,2,1,1,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,3,0,2,3,3,3,3,2,3,3,3,3,1,2,2,0,0,2,3,2,2,2,3,2,3,2,2,3,0,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,2,3,0,2,3,2,3,0,1,2,3,3,2,0,2,3,0,0,2,3,2,2,0,1,3,1,3,2,2,1,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,1,3,0,2,3,3,3,3,3,3,3,3,2,1,3,2,0,0,2,2,3,3,3,2,3,3,0,2,2,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,2,2,3,3,2,2,2,3,3,0,0,1,1,1,1,1,2,0,0,1,1,1,1,0,1,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,0,3,2,3,3,2,3,2,0,2,1,0,1,1,0,1,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,2,3,3,3,2,2,2,2,3,1,3,2,3,1,1,2,1,0,2,2,2,2,1,3,1,0, -0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, -2,2,3,3,3,3,3,1,2,2,1,3,1,0,3,0,0,3,0,0,0,1,1,0,1,2,1,0,0,0,0,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,2,2,1,1,3,3,3,2,2,1,2,2,3,1,1,2,0,0,2,2,1,3,0,0,2,1,1,2,1,1,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,2,3,3,3,3,1,2,2,2,1,2,1,3,3,1,1,2,1,2,1,2,2,0,2,0,0,1,1,0,1,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,3,3,3,3,3,2,1,3,2,2,3,2,0,3,2,0,3,0,1,0,1,1,0,0,1,1,1,1,0,1,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,2,3,3,3,2,2,2,3,3,1,2,1,2,1,0,1,0,1,1,0,1,0,0,2,1,1,1,0,1,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, -3,1,1,2,1,2,3,3,2,2,1,2,2,3,0,2,1,0,0,2,2,3,2,1,2,2,2,2,2,3,1,0, -0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,1,1,0,1,1,2,2,1,1,3,0,0,1,3,1,1,1,0,0,0,1,0,1,1,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,1,3,3,3,2,0,0,0,2,1,0,1,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,0,1,0,0,2,3,2,2,2,1,2,2,2,1,2,1,0,0,1,1,1,0,2,0,1,1,1,0,0,1,1, -1,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, -2,3,3,3,3,0,0,0,0,1,0,0,0,0,3,0,1,2,1,0,0,0,0,0,0,0,1,1,0,0,1,1, -1,0,1,0,1,2,0,0,1,1,2,1,0,1,1,1,1,0,1,1,1,1,0,1,0,0,1,0,0,1,1,0, -2,2,3,2,2,2,3,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,0,1,0,1,1,1,0,2,1, -1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,0,1,1,0, -3,3,3,2,2,2,2,3,2,2,1,1,2,2,2,2,1,1,3,1,2,1,2,0,0,1,1,0,1,0,2,1, -1,1,1,1,1,2,1,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,1,1,0, -2,0,0,1,0,3,2,2,2,2,1,2,1,2,1,2,0,0,0,2,1,2,2,1,1,2,2,0,1,1,0,2, -1,1,1,1,1,0,1,1,1,2,1,1,1,2,1,0,1,2,1,1,1,1,0,1,1,1,0,0,1,0,0,1, -1,3,2,2,2,1,1,1,2,3,0,0,0,0,2,0,2,2,1,0,0,0,0,0,0,1,0,0,0,0,1,1, -1,0,1,1,0,1,0,1,1,0,1,1,0,2,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0, -2,3,2,3,2,1,2,2,2,2,1,0,0,0,2,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,2,1, -1,1,2,1,0,2,0,0,1,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0, -3,0,0,1,0,2,2,2,3,2,2,2,2,2,2,2,0,0,0,2,1,2,1,1,1,2,2,0,0,0,1,2, -1,1,1,1,1,0,1,2,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1, -2,3,2,3,3,2,0,1,1,1,0,0,1,0,2,0,1,1,3,1,0,0,0,0,0,0,0,1,0,0,2,1, -1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0, -2,3,3,3,3,1,2,2,2,2,0,1,1,0,2,1,1,1,2,1,0,1,1,0,0,1,0,1,0,0,2,0, -0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,3,3,3,2,0,0,1,1,2,2,1,0,0,2,0,1,1,3,0,0,1,0,0,0,0,0,1,0,1,2,1, -1,1,2,0,1,1,1,0,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,0,0,0,0,1,0,1,1,0, -1,3,2,3,2,1,0,0,2,2,2,0,1,0,2,0,1,1,1,0,1,0,0,0,3,0,1,1,0,0,2,1, -1,1,1,0,1,1,0,0,0,0,1,1,0,1,0,0,2,1,1,0,1,0,0,0,1,0,1,0,0,1,1,0, -3,1,2,1,1,2,2,2,2,2,2,1,2,2,1,1,0,0,0,2,2,2,0,0,0,1,2,1,0,1,0,1, -2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1, -3,0,0,0,0,2,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,0,1,0,1,1,0,0,1,0,1, -1,1,0,0,1,0,0,0,1,0,1,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1, -1,3,3,2,2,0,0,0,2,2,0,0,0,1,2,0,1,1,2,0,0,0,0,0,0,0,0,1,0,0,2,1, -0,1,1,0,0,1,1,0,0,0,1,1,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0, -2,3,2,3,2,0,0,0,0,1,1,0,0,0,2,0,2,0,2,0,0,0,0,0,1,0,0,1,0,0,1,1, -1,1,2,0,1,2,1,0,1,1,2,1,1,1,1,1,2,1,1,0,1,0,0,1,1,1,1,1,0,1,1,0, -1,3,2,2,2,1,0,0,2,2,1,0,1,2,2,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1, -0,0,1,1,0,1,1,0,0,1,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, -1,0,0,1,0,2,3,1,2,2,2,2,2,2,1,1,0,0,0,1,0,1,0,2,1,1,1,0,0,0,0,1, -1,1,0,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0, -2,0,2,0,0,1,0,3,2,1,2,1,2,2,0,1,0,0,0,2,1,0,0,2,1,1,1,1,0,2,0,2, -2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,0,1, -1,2,2,2,2,1,0,0,1,0,0,0,0,0,2,0,1,1,1,1,0,0,0,0,1,0,1,2,0,0,2,0, -1,0,1,1,1,2,1,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,1,0, -2,1,2,2,2,0,3,0,1,1,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0, -1,2,2,3,2,2,0,0,1,1,2,0,1,2,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1, -0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0, -2,2,1,1,2,1,2,2,2,2,2,1,2,2,0,1,0,0,0,1,2,2,2,1,2,1,1,1,1,1,2,1, -1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,1,1,0,0,1, -1,2,2,2,2,0,1,0,2,2,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0, -0,0,1,0,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, -0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,2,2,2,2,0,0,0,2,2,2,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1, -0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,2,2,2,2,0,0,0,0,1,0,0,1,1,2,0,0,0,0,1,0,1,0,0,1,0,0,2,0,0,0,1, -0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, -1,2,2,2,1,1,2,0,2,1,1,1,1,0,2,2,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1, -0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, -1,0,2,1,2,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0, -0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, -1,0,0,0,0,2,0,1,2,1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1, -0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1, -2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -1,1,1,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0, -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -1,1,0,1,1,0,1,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0, -0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, -) - -Koi8rModel = { - 'char_to_order_map': KOI8R_char_to_order_map, - 'precedence_matrix': RussianLangModel, - 'typical_positive_ratio': 0.976601, - 'keep_english_letter': False, - 'charset_name': "KOI8-R", - 'language': 'Russian', -} - -Win1251CyrillicModel = { - 'char_to_order_map': win1251_char_to_order_map, - 'precedence_matrix': RussianLangModel, - 'typical_positive_ratio': 0.976601, - 'keep_english_letter': False, - 'charset_name': "windows-1251", - 'language': 'Russian', -} - -Latin5CyrillicModel = { - 'char_to_order_map': latin5_char_to_order_map, - 'precedence_matrix': RussianLangModel, - 'typical_positive_ratio': 0.976601, - 'keep_english_letter': False, - 'charset_name': "ISO-8859-5", - 'language': 'Russian', -} - -MacCyrillicModel = { - 'char_to_order_map': macCyrillic_char_to_order_map, - 'precedence_matrix': RussianLangModel, - 'typical_positive_ratio': 0.976601, - 'keep_english_letter': False, - 'charset_name': "MacCyrillic", - 'language': 'Russian', -} - -Ibm866Model = { - 'char_to_order_map': IBM866_char_to_order_map, - 'precedence_matrix': RussianLangModel, - 'typical_positive_ratio': 0.976601, - 'keep_english_letter': False, - 'charset_name': "IBM866", - 'language': 'Russian', -} - -Ibm855Model = { - 'char_to_order_map': IBM855_char_to_order_map, - 'precedence_matrix': RussianLangModel, - 'typical_positive_ratio': 0.976601, - 'keep_english_letter': False, - 'charset_name': "IBM855", - 'language': 'Russian', -} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langgreekmodel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langgreekmodel.py deleted file mode 100644 index 5332221..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langgreekmodel.py +++ /dev/null @@ -1,225 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# 255: Control characters that usually does not exist in any text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 - -# Character Mapping Table: -Latin7_char_to_order_map = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253, 82,100,104, 94, 98,101,116,102,111,187,117, 92, 88,113, 85, # 40 - 79,118,105, 83, 67,114,119, 95, 99,109,188,253,253,253,253,253, # 50 -253, 72, 70, 80, 81, 60, 96, 93, 89, 68,120, 97, 77, 86, 69, 55, # 60 - 78,115, 65, 66, 58, 76,106,103, 87,107,112,253,253,253,253,253, # 70 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 80 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 90 -253,233, 90,253,253,253,253,253,253,253,253,253,253, 74,253,253, # a0 -253,253,253,253,247,248, 61, 36, 46, 71, 73,253, 54,253,108,123, # b0 -110, 31, 51, 43, 41, 34, 91, 40, 52, 47, 44, 53, 38, 49, 59, 39, # c0 - 35, 48,250, 37, 33, 45, 56, 50, 84, 57,120,121, 17, 18, 22, 15, # d0 -124, 1, 29, 20, 21, 3, 32, 13, 25, 5, 11, 16, 10, 6, 30, 4, # e0 - 9, 8, 14, 7, 2, 12, 28, 23, 42, 24, 64, 75, 19, 26, 27,253, # f0 -) - -win1253_char_to_order_map = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253, 82,100,104, 94, 98,101,116,102,111,187,117, 92, 88,113, 85, # 40 - 79,118,105, 83, 67,114,119, 95, 99,109,188,253,253,253,253,253, # 50 -253, 72, 70, 80, 81, 60, 96, 93, 89, 68,120, 97, 77, 86, 69, 55, # 60 - 78,115, 65, 66, 58, 76,106,103, 87,107,112,253,253,253,253,253, # 70 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 80 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 90 -253,233, 61,253,253,253,253,253,253,253,253,253,253, 74,253,253, # a0 -253,253,253,253,247,253,253, 36, 46, 71, 73,253, 54,253,108,123, # b0 -110, 31, 51, 43, 41, 34, 91, 40, 52, 47, 44, 53, 38, 49, 59, 39, # c0 - 35, 48,250, 37, 33, 45, 56, 50, 84, 57,120,121, 17, 18, 22, 15, # d0 -124, 1, 29, 20, 21, 3, 32, 13, 25, 5, 11, 16, 10, 6, 30, 4, # e0 - 9, 8, 14, 7, 2, 12, 28, 23, 42, 24, 64, 75, 19, 26, 27,253, # f0 -) - -# Model Table: -# total sequences: 100% -# first 512 sequences: 98.2851% -# first 1024 sequences:1.7001% -# rest sequences: 0.0359% -# negative sequences: 0.0148% -GreekLangModel = ( -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,3,2,2,3,3,3,3,3,3,3,3,1,3,3,3,0,2,2,3,3,0,3,0,3,2,0,3,3,3,0, -3,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,3,0,3,3,0,3,2,3,3,0,3,2,3,3,3,0,0,3,0,3,0,3,3,2,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, -0,2,3,2,2,3,3,3,3,3,3,3,3,0,3,3,3,3,0,2,3,3,0,3,3,3,3,2,3,3,3,0, -2,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,0,2,1,3,3,3,3,2,3,3,2,3,3,2,0, -0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,0,3,3,3,3,3,3,3,3,3,3,0,3,2,3,3,0, -2,0,1,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, -0,3,3,3,3,3,2,3,0,0,0,0,3,3,0,3,1,3,3,3,0,3,3,0,3,3,3,3,0,0,0,0, -2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,3,0,3,0,3,3,3,3,3,0,3,2,2,2,3,0,2,3,3,3,3,3,2,3,3,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,3,3,2,2,2,3,3,3,3,0,3,1,3,3,3,3,2,3,3,3,3,3,3,3,2,2,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,3,2,0,3,0,0,0,3,3,2,3,3,3,3,3,0,0,3,2,3,0,2,3,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,0,3,3,3,3,0,0,3,3,0,2,3,0,3,0,3,3,3,0,0,3,0,3,0,2,2,3,3,0,0, -0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,3,2,0,3,2,3,3,3,3,0,3,3,3,3,3,0,3,3,2,3,2,3,3,2,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,2,3,2,3,3,3,3,3,3,0,2,3,2,3,2,2,2,3,2,3,3,2,3,0,2,2,2,3,0, -2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,3,0,0,0,3,3,3,2,3,3,0,0,3,0,3,0,0,0,3,2,0,3,0,3,0,0,2,0,2,0, -0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,0,3,0,0,0,3,3,0,3,3,3,0,0,1,2,3,0, -3,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,3,2,0,0,3,2,2,3,3,0,3,3,3,3,3,2,1,3,0,3,2,3,3,2,1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,3,3,0,2,3,3,3,3,3,3,0,0,3,0,3,0,0,0,3,3,0,3,2,3,0,0,3,3,3,0, -3,0,0,0,2,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,0,3,3,3,3,3,3,0,0,3,0,3,0,0,0,3,2,0,3,2,3,0,0,3,2,3,0, -2,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,3,1,2,2,3,3,3,3,3,3,0,2,3,0,3,0,0,0,3,3,0,3,0,2,0,0,2,3,1,0, -2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,0,3,3,3,3,0,3,0,3,3,2,3,0,3,3,3,3,3,3,0,3,3,3,0,2,3,0,0,3,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,0,3,3,3,0,0,3,0,0,0,3,3,0,3,0,2,3,3,0,0,3,0,3,0,3,3,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,3,0,0,0,3,3,3,3,3,3,0,0,3,0,2,0,0,0,3,3,0,3,0,3,0,0,2,0,2,0, -0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,3,3,0,3,0,2,0,3,2,0,3,2,3,2,3,0,0,3,2,3,2,3,3,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,3,0,0,2,3,3,3,3,3,0,0,0,3,0,2,1,0,0,3,2,2,2,0,3,0,0,2,2,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,0,3,3,3,2,0,3,0,3,0,3,3,0,2,1,2,3,3,0,0,3,0,3,0,3,3,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,2,3,3,3,0,3,3,3,3,3,3,0,2,3,0,3,0,0,0,2,1,0,2,2,3,0,0,2,2,2,0, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,3,0,0,2,3,3,3,2,3,0,0,1,3,0,2,0,0,0,0,3,0,1,0,2,0,0,1,1,1,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,3,1,0,3,0,0,0,3,2,0,3,2,3,3,3,0,0,3,0,3,2,2,2,1,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,0,3,3,3,0,0,3,0,0,0,0,2,0,2,3,3,2,2,2,2,3,0,2,0,2,2,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,3,3,3,2,0,0,0,0,0,0,2,3,0,2,0,2,3,2,0,0,3,0,3,0,3,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,3,2,3,3,2,2,3,0,2,0,3,0,0,0,2,0,0,0,0,1,2,0,2,0,2,0, -0,2,0,2,0,2,2,0,0,1,0,2,2,2,0,2,2,2,0,2,2,2,0,0,2,0,0,1,0,0,0,0, -0,2,0,3,3,2,0,0,0,0,0,0,1,3,0,2,0,2,2,2,0,0,2,0,3,0,0,2,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,0,2,3,2,0,2,2,0,2,0,2,2,0,2,0,2,2,2,0,0,0,0,0,0,2,3,0,0,0,2, -0,1,2,0,0,0,0,2,2,0,0,0,2,1,0,2,2,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0, -0,0,2,1,0,2,3,2,2,3,2,3,2,0,0,3,3,3,0,0,3,2,0,0,0,1,1,0,2,0,2,2, -0,2,0,2,0,2,2,0,0,2,0,2,2,2,0,2,2,2,2,0,0,2,0,0,0,2,0,1,0,0,0,0, -0,3,0,3,3,2,2,0,3,0,0,0,2,2,0,2,2,2,1,2,0,0,1,2,2,0,0,3,0,0,0,2, -0,1,2,0,0,0,1,2,0,0,0,0,0,0,0,2,2,0,1,0,0,2,0,0,0,2,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,2,3,3,2,2,0,0,0,2,0,2,3,3,0,2,0,0,0,0,0,0,2,2,2,0,2,2,0,2,0,2, -0,2,2,0,0,2,2,2,2,1,0,0,2,2,0,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0, -0,2,0,3,2,3,0,0,0,3,0,0,2,2,0,2,0,2,2,2,0,0,2,0,0,0,0,0,0,0,0,2, -0,0,2,2,0,0,2,2,2,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,2,0,0,3,2,0,2,2,2,2,2,0,0,0,2,0,0,0,0,2,0,1,0,0,2,0,1,0,0,0, -0,2,2,2,0,2,2,0,1,2,0,2,2,2,0,2,2,2,2,1,2,2,0,0,2,0,0,0,0,0,0,0, -0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, -0,2,0,2,0,2,2,0,0,0,0,1,2,1,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,3,2,3,0,0,2,0,0,0,2,2,0,2,0,0,0,1,0,0,2,0,2,0,2,2,0,0,0,0, -0,0,2,0,0,0,0,2,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, -0,2,2,3,2,2,0,0,0,0,0,0,1,3,0,2,0,2,2,0,0,0,1,0,2,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,2,0,2,0,3,2,0,2,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -0,0,2,0,0,0,0,1,1,0,0,2,1,2,0,2,2,0,1,0,0,1,0,0,0,2,0,0,0,0,0,0, -0,3,0,2,2,2,0,0,2,0,0,0,2,0,0,0,2,3,0,2,0,0,0,0,0,0,2,2,0,0,0,2, -0,1,2,0,0,0,1,2,2,1,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,2,1,2,0,2,2,0,2,0,0,2,0,0,0,0,1,2,1,0,2,1,0,0,0,0,0,0,0,0,0,0, -0,0,2,0,0,0,3,1,2,2,0,2,0,0,0,0,2,0,0,0,2,0,0,3,0,0,0,0,2,2,2,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,2,1,0,2,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,2, -0,2,2,0,0,2,2,2,2,2,0,1,2,0,0,0,2,2,0,1,0,2,0,0,2,2,0,0,0,0,0,0, -0,0,0,0,1,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,2, -0,1,2,0,0,0,0,2,2,1,0,1,0,1,0,2,2,2,1,0,0,0,0,0,0,1,0,0,0,0,0,0, -0,2,0,1,2,0,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,1,0,0,0,0,0,0,2, -0,2,2,0,0,0,0,2,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0, -0,2,2,2,2,0,0,0,3,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,1, -0,0,2,0,0,0,0,1,2,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0, -0,2,0,2,2,2,0,0,2,0,0,0,0,0,0,0,2,2,2,0,0,0,2,0,0,0,0,0,0,0,0,2, -0,0,1,0,0,0,0,2,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, -0,3,0,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,2, -0,0,2,0,0,0,0,2,2,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,2,0,2,2,1,0,0,0,0,0,0,2,0,0,2,0,2,2,2,0,0,0,0,0,0,2,0,0,0,0,2, -0,0,2,0,0,2,0,2,2,0,0,0,0,2,0,2,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0, -0,0,3,0,0,0,2,2,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0, -0,2,2,2,2,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1, -0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, -0,2,0,0,0,2,0,0,0,0,0,1,0,0,0,0,2,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,2,0,0,0, -0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,2,0,2,0,0,0, -0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,2,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -) - -Latin7GreekModel = { - 'char_to_order_map': Latin7_char_to_order_map, - 'precedence_matrix': GreekLangModel, - 'typical_positive_ratio': 0.982851, - 'keep_english_letter': False, - 'charset_name': "ISO-8859-7", - 'language': 'Greek', -} - -Win1253GreekModel = { - 'char_to_order_map': win1253_char_to_order_map, - 'precedence_matrix': GreekLangModel, - 'typical_positive_ratio': 0.982851, - 'keep_english_letter': False, - 'charset_name': "windows-1253", - 'language': 'Greek', -} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhebrewmodel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhebrewmodel.py deleted file mode 100644 index 58f4c87..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhebrewmodel.py +++ /dev/null @@ -1,200 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Simon Montagu -# Portions created by the Initial Developer are Copyright (C) 2005 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# Shoshannah Forbes - original C code (?) -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# 255: Control characters that usually does not exist in any text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 - -# Windows-1255 language model -# Character Mapping Table: -WIN1255_CHAR_TO_ORDER_MAP = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253, 69, 91, 79, 80, 92, 89, 97, 90, 68,111,112, 82, 73, 95, 85, # 40 - 78,121, 86, 71, 67,102,107, 84,114,103,115,253,253,253,253,253, # 50 -253, 50, 74, 60, 61, 42, 76, 70, 64, 53,105, 93, 56, 65, 54, 49, # 60 - 66,110, 51, 43, 44, 63, 81, 77, 98, 75,108,253,253,253,253,253, # 70 -124,202,203,204,205, 40, 58,206,207,208,209,210,211,212,213,214, -215, 83, 52, 47, 46, 72, 32, 94,216,113,217,109,218,219,220,221, - 34,116,222,118,100,223,224,117,119,104,125,225,226, 87, 99,227, -106,122,123,228, 55,229,230,101,231,232,120,233, 48, 39, 57,234, - 30, 59, 41, 88, 33, 37, 36, 31, 29, 35,235, 62, 28,236,126,237, -238, 38, 45,239,240,241,242,243,127,244,245,246,247,248,249,250, - 9, 8, 20, 16, 3, 2, 24, 14, 22, 1, 25, 15, 4, 11, 6, 23, - 12, 19, 13, 26, 18, 27, 21, 17, 7, 10, 5,251,252,128, 96,253, -) - -# Model Table: -# total sequences: 100% -# first 512 sequences: 98.4004% -# first 1024 sequences: 1.5981% -# rest sequences: 0.087% -# negative sequences: 0.0015% -HEBREW_LANG_MODEL = ( -0,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,3,2,1,2,0,1,0,0, -3,0,3,1,0,0,1,3,2,0,1,1,2,0,2,2,2,1,1,1,1,2,1,1,1,2,0,0,2,2,0,1, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2, -1,2,1,2,1,2,0,0,2,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2, -1,2,1,3,1,1,0,0,2,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,1,2,2,1,3, -1,2,1,1,2,2,0,0,2,2,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,2,2,3,2, -1,2,1,2,2,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,2,2,3,2,2,2,1,2,2,2,2, -1,2,1,1,2,2,0,1,2,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,2,2,2,2,2, -0,2,0,2,2,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,2,2,2, -0,2,1,2,2,2,0,0,2,1,0,0,0,0,1,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2,3,2,2,2, -1,2,1,2,2,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0, -3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,2,0,2, -0,2,1,2,2,2,0,0,1,2,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,2,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,2,3,2,1,2,1,1,1, -0,1,1,1,1,1,3,0,1,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,0,0,0,0, -0,0,1,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2, -0,2,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,2,3,3,3,2,1,2,3,3,2,3,3,3,3,2,3,2,1,2,0,2,1,2, -0,2,0,2,2,2,0,0,1,2,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0, -3,3,3,3,3,3,3,3,3,2,3,3,3,1,2,2,3,3,2,3,2,3,2,2,3,1,2,2,0,2,2,2, -0,2,1,2,2,2,0,0,1,2,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,2,2,2,3,3,3,3,1,3,2,2,2, -0,2,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,3,2,2,2,1,2,2,0,2,2,2,2, -0,2,0,2,2,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,1,3,2,3,3,2,3,3,2,2,1,2,2,2,2,2,2, -0,2,1,2,1,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,2,3,2,3,3,2,3,3,3,3,2,3,2,3,3,3,3,3,2,2,2,2,2,2,2,1, -0,2,0,1,2,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,2,1,2,3,3,3,3,3,3,3,2,3,2,3,2,1,2,3,0,2,1,2,2, -0,2,1,1,2,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0, -3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,1,3,1,2,2,2,1,2,3,3,1,2,1,2,2,2,2, -0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,0,2,3,3,3,1,3,3,3,1,2,2,2,2,1,1,2,2,2,2,2,2, -0,2,0,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,2,3,3,3,2,2,3,3,3,2,1,2,3,2,3,2,2,2,2,1,2,1,1,1,2,2, -0,2,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,0,0, -1,0,1,0,0,0,0,0,2,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,2,3,3,2,3,1,2,2,2,2,3,2,3,1,1,2,2,1,2,2,1,1,0,2,2,2,2, -0,1,0,1,2,2,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, -3,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,0, -0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,1,0,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, -3,2,2,1,2,2,2,2,2,2,2,1,2,2,1,2,2,1,1,1,1,1,1,1,1,2,1,1,0,3,3,3, -0,3,0,2,2,2,2,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,1,2,2,2,1,1,1,2,0,1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,0,2,2,0,0,0,0,0,0, -0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,3,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,0,2,1,0, -0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, -0,3,1,1,2,2,2,2,2,1,2,2,2,1,1,2,2,2,2,2,2,2,1,2,2,1,0,1,1,1,1,0, -0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,2,1,1,1,1,2,1,1,2,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0, -0,0,2,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,0, -2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,1,2,1,1,1,1,0,0,0,0, -0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,2,1,2,2,2,2,2,2,2,2,2,2,1,2,1,2,1,1,2,1,1,1,2,1,2,1,2,0,1,0,1, -0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,3,1,2,2,2,1,2,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,2,1,2,1,1,0,1,0,1, -0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,1,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2, -0,2,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,1,1,1,1,1,1,1,0,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0,0, -0,1,1,1,2,1,2,2,2,0,2,0,2,0,1,1,2,1,1,1,1,2,1,0,1,1,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,1,0,0,0,0,0,1,0,1,2,2,0,1,0,0,1,1,2,2,1,2,0,2,0,0,0,1,2,0,1, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2,0,2,1,2,0,2,0,0,1,1,1,1,1,1,0,1,0,0,0,1,0,0,1, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,1,0,2,1,1,0,1,0,0,1,1,1,2,2,0,0,1,0,0,0,1,0,0,1, -1,1,2,1,0,1,1,1,0,1,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,2,2,1, -0,2,0,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,1,0,0,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,1,1,1,1,1,1,1,1,2,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,1,0,1, -2,0,1,0,1,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,1,1,2,1,1,2,0,1,0,0,0,1,1,0,1, -1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,0,1,1,2,0,1,0,0,0,0,2,1,1,2,0,2,0,0,0,1,1,0,1, -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,0,2,1,1,0,1,0,0,2,2,1,2,1,1,0,1,0,0,0,1,1,0,1, -2,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,1,0,1, -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,1,2,2,0,0,0,0,2,1,1,1,0,2,1,1,0,0,0,2,1,0,1, -1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,0,1,1,2,0,1,0,0,1,1,0,2,1,1,0,1,0,0,0,1,1,0,1, -2,2,1,1,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,0,2,1,1,0,1,0,0,1,1,0,1,2,1,0,2,0,0,0,1,1,0,1, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, -0,1,0,0,2,0,2,1,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,0,1,1,2,0,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,1, -1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,0,0,0,0,0,0,1,0,1,1,0,0,1,0,0,2,1,1,1,1,1,0,1,0,0,0,0,1,0,1, -0,1,1,1,2,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,1,2,1,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,1,1,0,0, -) - -Win1255HebrewModel = { - 'char_to_order_map': WIN1255_CHAR_TO_ORDER_MAP, - 'precedence_matrix': HEBREW_LANG_MODEL, - 'typical_positive_ratio': 0.984004, - 'keep_english_letter': False, - 'charset_name': "windows-1255", - 'language': 'Hebrew', -} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhungarianmodel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhungarianmodel.py deleted file mode 100644 index bb7c095..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhungarianmodel.py +++ /dev/null @@ -1,225 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# 255: Control characters that usually does not exist in any text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 - -# Character Mapping Table: -Latin2_HungarianCharToOrderMap = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253, 28, 40, 54, 45, 32, 50, 49, 38, 39, 53, 36, 41, 34, 35, 47, - 46, 71, 43, 33, 37, 57, 48, 64, 68, 55, 52,253,253,253,253,253, -253, 2, 18, 26, 17, 1, 27, 12, 20, 9, 22, 7, 6, 13, 4, 8, - 23, 67, 10, 5, 3, 21, 19, 65, 62, 16, 11,253,253,253,253,253, -159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174, -175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190, -191,192,193,194,195,196,197, 75,198,199,200,201,202,203,204,205, - 79,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220, -221, 51, 81,222, 78,223,224,225,226, 44,227,228,229, 61,230,231, -232,233,234, 58,235, 66, 59,236,237,238, 60, 69, 63,239,240,241, - 82, 14, 74,242, 70, 80,243, 72,244, 15, 83, 77, 84, 30, 76, 85, -245,246,247, 25, 73, 42, 24,248,249,250, 31, 56, 29,251,252,253, -) - -win1250HungarianCharToOrderMap = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253, 28, 40, 54, 45, 32, 50, 49, 38, 39, 53, 36, 41, 34, 35, 47, - 46, 72, 43, 33, 37, 57, 48, 64, 68, 55, 52,253,253,253,253,253, -253, 2, 18, 26, 17, 1, 27, 12, 20, 9, 22, 7, 6, 13, 4, 8, - 23, 67, 10, 5, 3, 21, 19, 65, 62, 16, 11,253,253,253,253,253, -161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, -177,178,179,180, 78,181, 69,182,183,184,185,186,187,188,189,190, -191,192,193,194,195,196,197, 76,198,199,200,201,202,203,204,205, - 81,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220, -221, 51, 83,222, 80,223,224,225,226, 44,227,228,229, 61,230,231, -232,233,234, 58,235, 66, 59,236,237,238, 60, 70, 63,239,240,241, - 84, 14, 75,242, 71, 82,243, 73,244, 15, 85, 79, 86, 30, 77, 87, -245,246,247, 25, 74, 42, 24,248,249,250, 31, 56, 29,251,252,253, -) - -# Model Table: -# total sequences: 100% -# first 512 sequences: 94.7368% -# first 1024 sequences:5.2623% -# rest sequences: 0.8894% -# negative sequences: 0.0009% -HungarianLangModel = ( -0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, -3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,2,3,3,1,1,2,2,2,2,2,1,2, -3,2,2,3,3,3,3,3,2,3,3,3,3,3,3,1,2,3,3,3,3,2,3,3,1,1,3,3,0,1,1,1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0, -3,2,1,3,3,3,3,3,2,3,3,3,3,3,1,1,2,3,3,3,3,3,3,3,1,1,3,2,0,1,1,1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,1,1,2,3,3,3,1,3,3,3,3,3,1,3,3,2,2,0,3,2,3, -0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, -3,3,3,3,3,3,2,3,3,3,2,3,3,2,3,3,3,3,3,2,3,3,2,2,3,2,3,2,0,3,2,2, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, -3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,1,2,3,2,2,3,1,2,3,3,2,2,0,3,3,3, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,0,2,3,2, -0,0,0,1,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,2,1,3,2,2,3,2,1,3,2,2,1,0,3,3,1, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,2,2,3,3,3,3,3,1,2,3,3,3,3,1,2,1,3,3,3,3,2,2,3,1,1,3,2,0,1,1,1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,2,1,3,3,3,3,3,2,2,1,3,3,3,0,1,1,2, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,2,3,3,3,2,0,3,2,3, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0, -3,3,3,3,3,3,2,3,3,3,2,3,2,3,3,3,1,3,2,2,2,3,1,1,3,3,1,1,0,3,3,2, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,2,3,3,3,2,3,2,3,3,3,2,3,3,3,3,3,1,2,3,2,2,0,2,2,2, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,3,3,2,2,2,3,1,3,3,2,2,1,3,3,3,1,1,3,1,2,3,2,3,2,2,2,1,0,2,2,2, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, -3,1,1,3,3,3,3,3,1,2,3,3,3,3,1,2,1,3,3,3,2,2,3,2,1,0,3,2,0,1,1,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,1,1,3,3,3,3,3,1,2,3,3,3,3,1,1,0,3,3,3,3,0,2,3,0,0,2,1,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,2,2,3,3,2,2,2,2,3,3,0,1,2,3,2,3,2,2,3,2,1,2,0,2,2,2, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, -3,3,3,3,3,3,1,2,3,3,3,2,1,2,3,3,2,2,2,3,2,3,3,1,3,3,1,1,0,2,3,2, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,3,3,1,2,2,2,2,3,3,3,1,1,1,3,3,1,1,3,1,1,3,2,1,2,3,1,1,0,2,2,2, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,3,3,2,1,2,1,1,3,3,1,1,1,1,3,3,1,1,2,2,1,2,1,1,2,2,1,1,0,2,2,1, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,3,3,1,1,2,1,1,3,3,1,0,1,1,3,3,2,0,1,1,2,3,1,0,2,2,1,0,0,1,3,2, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,2,1,3,3,3,3,3,1,2,3,2,3,3,2,1,1,3,2,3,2,1,2,2,0,1,2,1,0,0,1,1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, -3,3,3,3,2,2,2,2,3,1,2,2,1,1,3,3,0,3,2,1,2,3,2,1,3,3,1,1,0,2,1,3, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,3,3,2,2,2,3,2,3,3,3,2,1,1,3,3,1,1,1,2,2,3,2,3,2,2,2,1,0,2,2,1, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -1,0,0,3,3,3,3,3,0,0,3,3,2,3,0,0,0,2,3,3,1,0,1,2,0,0,1,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,1,2,3,3,3,3,3,1,2,3,3,2,2,1,1,0,3,3,2,2,1,2,2,1,0,2,2,0,1,1,1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,2,2,1,3,1,2,3,3,2,2,1,1,2,2,1,1,1,1,3,2,1,1,1,1,2,1,0,1,2,1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0, -2,3,3,1,1,1,1,1,3,3,3,0,1,1,3,3,1,1,1,1,1,2,2,0,3,1,1,2,0,2,1,1, -0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, -3,1,0,1,2,1,2,2,0,1,2,3,1,2,0,0,0,2,1,1,1,1,1,2,0,0,1,1,0,0,0,0, -1,2,1,2,2,2,1,2,1,2,0,2,0,2,2,1,1,2,1,1,2,1,1,1,0,1,0,0,0,1,1,0, -1,1,1,2,3,2,3,3,0,1,2,2,3,1,0,1,0,2,1,2,2,0,1,1,0,0,1,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,0,3,3,2,2,1,0,0,3,2,3,2,0,0,0,1,1,3,0,0,1,1,0,0,2,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,1,1,2,2,3,3,1,0,1,3,2,3,1,1,1,0,1,1,1,1,1,3,1,0,0,2,2,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,1,1,1,2,2,2,1,0,1,2,3,3,2,0,0,0,2,1,1,1,2,1,1,1,0,1,1,1,0,0,0, -1,2,2,2,2,2,1,1,1,2,0,2,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,0,0,1,1, -3,2,2,1,0,0,1,1,2,2,0,3,0,1,2,1,1,0,0,1,1,1,0,1,1,1,1,0,2,1,1,1, -2,2,1,1,1,2,1,2,1,1,1,1,1,1,1,2,1,1,1,2,3,1,1,1,1,1,1,1,1,1,0,1, -2,3,3,0,1,0,0,0,3,3,1,0,0,1,2,2,1,0,0,0,0,2,0,0,1,1,1,0,2,1,1,1, -2,1,1,1,1,1,1,2,1,1,0,1,1,0,1,1,1,0,1,2,1,1,0,1,1,1,1,1,1,1,0,1, -2,3,3,0,1,0,0,0,2,2,0,0,0,0,1,2,2,0,0,0,0,1,0,0,1,1,0,0,2,0,1,0, -2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,0,1, -3,2,2,0,1,0,1,0,2,3,2,0,0,1,2,2,1,0,0,1,1,1,0,0,2,1,0,1,2,2,1,1, -2,1,1,1,1,1,1,2,1,1,1,1,1,1,0,2,1,0,1,1,0,1,1,1,0,1,1,2,1,1,0,1, -2,2,2,0,0,1,0,0,2,2,1,1,0,0,2,1,1,0,0,0,1,2,0,0,2,1,0,0,2,1,1,1, -2,1,1,1,1,2,1,2,1,1,1,2,2,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,0,1, -1,2,3,0,0,0,1,0,3,2,1,0,0,1,2,1,1,0,0,0,0,2,1,0,1,1,0,0,2,1,2,1, -1,1,0,0,0,1,0,1,1,1,1,1,2,0,0,1,0,0,0,2,0,0,1,1,1,1,1,1,1,1,0,1, -3,0,0,2,1,2,2,1,0,0,2,1,2,2,0,0,0,2,1,1,1,0,1,1,0,0,1,1,2,0,0,0, -1,2,1,2,2,1,1,2,1,2,0,1,1,1,1,1,1,1,1,1,2,1,1,0,0,1,1,1,1,0,0,1, -1,3,2,0,0,0,1,0,2,2,2,0,0,0,2,2,1,0,0,0,0,3,1,1,1,1,0,0,2,1,1,1, -2,1,0,1,1,1,0,1,1,1,1,1,1,1,0,2,1,0,0,1,0,1,1,0,1,1,1,1,1,1,0,1, -2,3,2,0,0,0,1,0,2,2,0,0,0,0,2,1,1,0,0,0,0,2,1,0,1,1,0,0,2,1,1,0, -2,1,1,1,1,2,1,2,1,2,0,1,1,1,0,2,1,1,1,2,1,1,1,1,0,1,1,1,1,1,0,1, -3,1,1,2,2,2,3,2,1,1,2,2,1,1,0,1,0,2,2,1,1,1,1,1,0,0,1,1,0,1,1,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,0,0,0,0,0,2,2,0,0,0,0,2,2,1,0,0,0,1,1,0,0,1,2,0,0,2,1,1,1, -2,2,1,1,1,2,1,2,1,1,0,1,1,1,1,2,1,1,1,2,1,1,1,1,0,1,2,1,1,1,0,1, -1,0,0,1,2,3,2,1,0,0,2,0,1,1,0,0,0,1,1,1,1,0,1,1,0,0,1,0,0,0,0,0, -1,2,1,2,1,2,1,1,1,2,0,2,1,1,1,0,1,2,0,0,1,1,1,0,0,0,0,0,0,0,0,0, -2,3,2,0,0,0,0,0,1,1,2,1,0,0,1,1,1,0,0,0,0,2,0,0,1,1,0,0,2,1,1,1, -2,1,1,1,1,1,1,2,1,0,1,1,1,1,0,2,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0,1, -1,2,2,0,1,1,1,0,2,2,2,0,0,0,3,2,1,0,0,0,1,1,0,0,1,1,0,1,1,1,0,0, -1,1,0,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,0,0,1,1,1,0,1,0,1, -2,1,0,2,1,1,2,2,1,1,2,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,1,0,0,0, -1,2,2,2,2,2,1,1,1,2,0,2,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,0, -1,2,3,0,0,0,1,0,2,2,0,0,0,0,2,2,0,0,0,0,0,1,0,0,1,0,0,0,2,0,1,0, -2,1,1,1,1,1,0,2,0,0,0,1,2,1,1,1,1,0,1,2,0,1,0,1,0,1,1,1,0,1,0,1, -2,2,2,0,0,0,1,0,2,1,2,0,0,0,1,1,2,0,0,0,0,1,0,0,1,1,0,0,2,1,0,1, -2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,0,1, -1,2,2,0,0,0,1,0,2,2,2,0,0,0,1,1,0,0,0,0,0,1,1,0,2,0,0,1,1,1,0,1, -1,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,0,0,1,1,0,1,0,1,1,1,1,1,0,0,0,1, -1,0,0,1,0,1,2,1,0,0,1,1,1,2,0,0,0,1,1,0,1,0,1,1,0,0,1,0,0,0,0,0, -0,2,1,2,1,1,1,1,1,2,0,2,0,1,1,0,1,2,1,0,1,1,1,0,0,0,0,0,0,1,0,0, -2,1,1,0,1,2,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,2,1,0,1, -2,2,1,1,1,1,1,2,1,1,0,1,1,1,1,2,1,1,1,2,1,1,0,1,0,1,1,1,1,1,0,1, -1,2,2,0,0,0,0,0,1,1,0,0,0,0,2,1,0,0,0,0,0,2,0,0,2,2,0,0,2,0,0,1, -2,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1, -1,1,2,0,0,3,1,0,2,1,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0, -1,2,1,0,1,1,1,2,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1,0,0, -2,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,2,0,0,0, -2,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,2,1,1,0,0,1,1,1,1,1,0,1, -2,1,1,1,2,1,1,1,0,1,1,2,1,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,1,0,1,1,1,1,1,0,0,1,1,2,1,0,0,0,1,1,0,0,0,1,1,0,0,1,0,1,0,0,0, -1,2,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0, -2,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,2,0,0,1,0,0,1,0,1,0,0,0, -0,1,1,1,1,1,1,1,1,2,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0, -1,0,0,1,1,1,1,1,0,0,2,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0, -0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0, -1,0,0,1,1,1,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, -0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0, -0,0,0,1,0,0,0,0,0,0,1,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0, -2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, -0,1,1,1,1,1,1,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0, -) - -Latin2HungarianModel = { - 'char_to_order_map': Latin2_HungarianCharToOrderMap, - 'precedence_matrix': HungarianLangModel, - 'typical_positive_ratio': 0.947368, - 'keep_english_letter': True, - 'charset_name': "ISO-8859-2", - 'language': 'Hungarian', -} - -Win1250HungarianModel = { - 'char_to_order_map': win1250HungarianCharToOrderMap, - 'precedence_matrix': HungarianLangModel, - 'typical_positive_ratio': 0.947368, - 'keep_english_letter': True, - 'charset_name': "windows-1250", - 'language': 'Hungarian', -} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langthaimodel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langthaimodel.py deleted file mode 100644 index 15f94c2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langthaimodel.py +++ /dev/null @@ -1,199 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# 255: Control characters that usually does not exist in any text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 - -# The following result for thai was collected from a limited sample (1M). - -# Character Mapping Table: -TIS620CharToOrderMap = ( -255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 -253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 -252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 -253,182,106,107,100,183,184,185,101, 94,186,187,108,109,110,111, # 40 -188,189,190, 89, 95,112,113,191,192,193,194,253,253,253,253,253, # 50 -253, 64, 72, 73,114, 74,115,116,102, 81,201,117, 90,103, 78, 82, # 60 - 96,202, 91, 79, 84,104,105, 97, 98, 92,203,253,253,253,253,253, # 70 -209,210,211,212,213, 88,214,215,216,217,218,219,220,118,221,222, -223,224, 99, 85, 83,225,226,227,228,229,230,231,232,233,234,235, -236, 5, 30,237, 24,238, 75, 8, 26, 52, 34, 51,119, 47, 58, 57, - 49, 53, 55, 43, 20, 19, 44, 14, 48, 3, 17, 25, 39, 62, 31, 54, - 45, 9, 16, 2, 61, 15,239, 12, 42, 46, 18, 21, 76, 4, 66, 63, - 22, 10, 1, 36, 23, 13, 40, 27, 32, 35, 86,240,241,242,243,244, - 11, 28, 41, 29, 33,245, 50, 37, 6, 7, 67, 77, 38, 93,246,247, - 68, 56, 59, 65, 69, 60, 70, 80, 71, 87,248,249,250,251,252,253, -) - -# Model Table: -# total sequences: 100% -# first 512 sequences: 92.6386% -# first 1024 sequences:7.3177% -# rest sequences: 1.0230% -# negative sequences: 0.0436% -ThaiLangModel = ( -0,1,3,3,3,3,0,0,3,3,0,3,3,0,3,3,3,3,3,3,3,3,0,0,3,3,3,0,3,3,3,3, -0,3,3,0,0,0,1,3,0,3,3,2,3,3,0,1,2,3,3,3,3,0,2,0,2,0,0,3,2,1,2,2, -3,0,3,3,2,3,0,0,3,3,0,3,3,0,3,3,3,3,3,3,3,3,3,0,3,2,3,0,2,2,2,3, -0,2,3,0,0,0,0,1,0,1,2,3,1,1,3,2,2,0,1,1,0,0,1,0,0,0,0,0,0,0,1,1, -3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,3,3,2,3,2,3,3,2,2,2, -3,1,2,3,0,3,3,2,2,1,2,3,3,1,2,0,1,3,0,1,0,0,1,0,0,0,0,0,0,0,1,1, -3,3,2,2,3,3,3,3,1,2,3,3,3,3,3,2,2,2,2,3,3,2,2,3,3,2,2,3,2,3,2,2, -3,3,1,2,3,1,2,2,3,3,1,0,2,1,0,0,3,1,2,1,0,0,1,0,0,0,0,0,0,1,0,1, -3,3,3,3,3,3,2,2,3,3,3,3,2,3,2,2,3,3,2,2,3,2,2,2,2,1,1,3,1,2,1,1, -3,2,1,0,2,1,0,1,0,1,1,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0, -3,3,3,2,3,2,3,3,2,2,3,2,3,3,2,3,1,1,2,3,2,2,2,3,2,2,2,2,2,1,2,1, -2,2,1,1,3,3,2,1,0,1,2,2,0,1,3,0,0,0,1,1,0,0,0,0,0,2,3,0,0,2,1,1, -3,3,2,3,3,2,0,0,3,3,0,3,3,0,2,2,3,1,2,2,1,1,1,0,2,2,2,0,2,2,1,1, -0,2,1,0,2,0,0,2,0,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0, -3,3,2,3,3,2,0,0,3,3,0,2,3,0,2,1,2,2,2,2,1,2,0,0,2,2,2,0,2,2,1,1, -0,2,1,0,2,0,0,2,0,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0, -3,3,2,3,2,3,2,0,2,2,1,3,2,1,3,2,1,2,3,2,2,3,0,2,3,2,2,1,2,2,2,2, -1,2,2,0,0,0,0,2,0,1,2,0,1,1,1,0,1,0,3,1,1,0,0,0,0,0,0,0,0,0,1,0, -3,3,2,3,3,2,3,2,2,2,3,2,2,3,2,2,1,2,3,2,2,3,1,3,2,2,2,3,2,2,2,3, -3,2,1,3,0,1,1,1,0,2,1,1,1,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,2,0,0, -1,0,0,3,0,3,3,3,3,3,0,0,3,0,2,2,3,3,3,3,3,0,0,0,1,1,3,0,0,0,0,2, -0,0,1,0,0,0,0,0,0,0,2,3,0,0,0,3,0,2,0,0,0,0,0,3,0,0,0,0,0,0,0,0, -2,0,3,3,3,3,0,0,2,3,0,0,3,0,3,3,2,3,3,3,3,3,0,0,3,3,3,0,0,0,3,3, -0,0,3,0,0,0,0,2,0,0,2,1,1,3,0,0,1,0,0,2,3,0,1,0,0,0,0,0,0,0,1,0, -3,3,3,3,2,3,3,3,3,3,3,3,1,2,1,3,3,2,2,1,2,2,2,3,1,1,2,0,2,1,2,1, -2,2,1,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0, -3,0,2,1,2,3,3,3,0,2,0,2,2,0,2,1,3,2,2,1,2,1,0,0,2,2,1,0,2,1,2,2, -0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,2,1,3,3,1,1,3,0,2,3,1,1,3,2,1,1,2,0,2,2,3,2,1,1,1,1,1,2, -3,0,0,1,3,1,2,1,2,0,3,0,0,0,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, -3,3,1,1,3,2,3,3,3,1,3,2,1,3,2,1,3,2,2,2,2,1,3,3,1,2,1,3,1,2,3,0, -2,1,1,3,2,2,2,1,2,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2, -3,3,2,3,2,3,3,2,3,2,3,2,3,3,2,1,0,3,2,2,2,1,2,2,2,1,2,2,1,2,1,1, -2,2,2,3,0,1,3,1,1,1,1,0,1,1,0,2,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,2,3,2,2,1,1,3,2,3,2,3,2,0,3,2,2,1,2,0,2,2,2,1,2,2,2,2,1, -3,2,1,2,2,1,0,2,0,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1, -3,3,3,3,3,2,3,1,2,3,3,2,2,3,0,1,1,2,0,3,3,2,2,3,0,1,1,3,0,0,0,0, -3,1,0,3,3,0,2,0,2,1,0,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,2,3,2,3,3,0,1,3,1,1,2,1,2,1,1,3,1,1,0,2,3,1,1,1,1,1,1,1,1, -3,1,1,2,2,2,2,1,1,1,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -3,2,2,1,1,2,1,3,3,2,3,2,2,3,2,2,3,1,2,2,1,2,0,3,2,1,2,2,2,2,2,1, -3,2,1,2,2,2,1,1,1,1,0,0,1,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,1,3,3,0,2,1,0,3,2,0,0,3,1,0,1,1,0,1,0,0,0,0,0,1, -1,0,0,1,0,3,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,2,2,2,3,0,0,1,3,0,3,2,0,3,2,2,3,3,3,3,3,1,0,2,2,2,0,2,2,1,2, -0,2,3,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -3,0,2,3,1,3,3,2,3,3,0,3,3,0,3,2,2,3,2,3,3,3,0,0,2,2,3,0,1,1,1,3, -0,0,3,0,0,0,2,2,0,1,3,0,1,2,2,2,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1, -3,2,3,3,2,0,3,3,2,2,3,1,3,2,1,3,2,0,1,2,2,0,2,3,2,1,0,3,0,0,0,0, -3,0,0,2,3,1,3,0,0,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,1,3,2,2,2,1,2,0,1,3,1,1,3,1,3,0,0,2,1,1,1,1,2,1,1,1,0,2,1,0,1, -1,2,0,0,0,3,1,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,3,1,0,0,0,1,0, -3,3,3,3,2,2,2,2,2,1,3,1,1,1,2,0,1,1,2,1,2,1,3,2,0,0,3,1,1,1,1,1, -3,1,0,2,3,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,2,3,0,3,3,0,2,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,2,3,1,3,0,0,1,2,0,0,2,0,3,3,2,3,3,3,2,3,0,0,2,2,2,0,0,0,2,2, -0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, -0,0,0,3,0,2,0,0,0,0,0,0,0,0,0,0,1,2,3,1,3,3,0,0,1,0,3,0,0,0,0,0, -0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,1,2,3,1,2,3,1,0,3,0,2,2,1,0,2,1,1,2,0,1,0,0,1,1,1,1,0,1,0,0, -1,0,0,0,0,1,1,0,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,2,1,0,1,1,1,3,1,2,2,2,2,2,2,1,1,1,1,0,3,1,0,1,3,1,1,1,1, -1,1,0,2,0,1,3,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1, -3,0,2,2,1,3,3,2,3,3,0,1,1,0,2,2,1,2,1,3,3,1,0,0,3,2,0,0,0,0,2,1, -0,1,0,0,0,0,1,2,0,1,1,3,1,1,2,2,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, -0,0,3,0,0,1,0,0,0,3,0,0,3,0,3,1,0,1,1,1,3,2,0,0,0,3,0,0,0,0,2,0, -0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0, -3,3,1,3,2,1,3,3,1,2,2,0,1,2,1,0,1,2,0,0,0,0,0,3,0,0,0,3,0,0,0,0, -3,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,1,2,0,3,3,3,2,2,0,1,1,0,1,3,0,0,0,2,2,0,0,0,0,3,1,0,1,0,0,0, -0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,2,3,1,2,0,0,2,1,0,3,1,0,1,2,0,1,1,1,1,3,0,0,3,1,1,0,2,2,1,1, -0,2,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,0,3,1,2,0,0,2,2,0,1,2,0,1,0,1,3,1,2,1,0,0,0,2,0,3,0,0,0,1,0, -0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,1,1,2,2,0,0,0,2,0,2,1,0,1,1,0,1,1,1,2,1,0,0,1,1,1,0,2,1,1,1, -0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1, -0,0,0,2,0,1,3,1,1,1,1,0,0,0,0,3,2,0,1,0,0,0,1,2,0,0,0,1,0,0,0,0, -0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,0,2,3,2,2,0,0,0,1,0,0,0,0,2,3,2,1,2,2,3,0,0,0,2,3,1,0,0,0,1,1, -0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0, -3,3,2,2,0,1,0,0,0,0,2,0,2,0,1,0,0,0,1,1,0,0,0,2,1,0,1,0,1,1,0,0, -0,1,0,2,0,0,1,0,3,0,1,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,1,0,0,1,0,0,0,0,0,1,1,2,0,0,0,0,1,0,0,1,3,1,0,0,0,0,1,1,0,0, -0,1,0,0,0,0,3,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, -3,3,1,1,1,1,2,3,0,0,2,1,1,1,1,1,0,2,1,1,0,0,0,2,1,0,1,2,1,1,0,1, -2,1,0,3,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,3,1,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1, -0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,2,0,0,0,0,0,0,1,2,1,0,1,1,0,2,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,2,0,0,0,1,3,0,1,0,0,0,2,0,0,0,0,0,0,0,1,2,0,0,0,0,0, -3,3,0,0,1,1,2,0,0,1,2,1,0,1,1,1,0,1,1,0,0,2,1,1,0,1,0,0,1,1,1,0, -0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,1,0,0,0,0,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0, -2,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,3,0,0,1,1,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,1,0,1,2,0,1,2,0,0,1,1,0,2,0,1,0,0,1,0,0,0,0,1,0,0,0,2,0,0,0,0, -1,0,0,1,0,1,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,2,1,3,0,0,0,0,1,1,0,0,0,0,0,0,0,3, -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,0,1,0,1,0,0,2,0,0,2,0,0,1,1,2,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0, -1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, -1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,1,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,3,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0, -1,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,1,0,0,2,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -) - -TIS620ThaiModel = { - 'char_to_order_map': TIS620CharToOrderMap, - 'precedence_matrix': ThaiLangModel, - 'typical_positive_ratio': 0.926386, - 'keep_english_letter': False, - 'charset_name': "TIS-620", - 'language': 'Thai', -} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langturkishmodel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langturkishmodel.py deleted file mode 100644 index a427a45..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langturkishmodel.py +++ /dev/null @@ -1,193 +0,0 @@ -# -*- coding: utf-8 -*- -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Communicator client code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Özgür Baskın - Turkish Language Model -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -# 255: Control characters that usually does not exist in any text -# 254: Carriage/Return -# 253: symbol (punctuation) that does not belong to word -# 252: 0 - 9 - -# Character Mapping Table: -Latin5_TurkishCharToOrderMap = ( -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255, 23, 37, 47, 39, 29, 52, 36, 45, 53, 60, 16, 49, 20, 46, 42, - 48, 69, 44, 35, 31, 51, 38, 62, 65, 43, 56,255,255,255,255,255, -255, 1, 21, 28, 12, 2, 18, 27, 25, 3, 24, 10, 5, 13, 4, 15, - 26, 64, 7, 8, 9, 14, 32, 57, 58, 11, 22,255,255,255,255,255, -180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165, -164,163,162,161,160,159,101,158,157,156,155,154,153,152,151,106, -150,149,148,147,146,145,144,100,143,142,141,140,139,138,137,136, - 94, 80, 93,135,105,134,133, 63,132,131,130,129,128,127,126,125, -124,104, 73, 99, 79, 85,123, 54,122, 98, 92,121,120, 91,103,119, - 68,118,117, 97,116,115, 50, 90,114,113,112,111, 55, 41, 40, 86, - 89, 70, 59, 78, 71, 82, 88, 33, 77, 66, 84, 83,110, 75, 61, 96, - 30, 67,109, 74, 87,102, 34, 95, 81,108, 76, 72, 17, 6, 19,107, -) - -TurkishLangModel = ( -3,2,3,3,3,1,3,3,3,3,3,3,3,3,2,1,1,3,3,1,3,3,0,3,3,3,3,3,0,3,1,3, -3,2,1,0,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,2,2,0,0,1,0,0,1, -3,2,2,3,3,0,3,3,3,3,3,3,3,2,3,1,0,3,3,1,3,3,0,3,3,3,3,3,0,3,0,3, -3,1,1,0,1,0,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,2,2,0,0,0,1,0,1, -3,3,2,3,3,0,3,3,3,3,3,3,3,2,3,1,1,3,3,0,3,3,1,2,3,3,3,3,0,3,0,3, -3,1,1,0,0,0,1,0,0,0,0,1,1,0,1,2,1,0,0,0,1,0,0,0,0,2,0,0,0,0,0,1, -3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1,3,3,2,0,3,2,1,2,2,1,3,3,0,0,0,2, -2,2,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1, -3,3,3,2,3,3,1,2,3,3,3,3,3,3,3,1,3,2,1,0,3,2,0,1,2,3,3,2,1,0,0,2, -2,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0, -1,0,1,3,3,1,3,3,3,3,3,3,3,1,2,0,0,2,3,0,2,3,0,0,2,2,2,3,0,3,0,1, -2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,0,3,2,0,2,3,2,3,3,1,0,0,2, -3,2,0,0,1,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,2,0,0,1, -3,3,3,2,3,3,2,3,3,3,3,2,3,3,3,0,3,3,0,0,2,1,0,0,2,3,2,2,0,0,0,2, -2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,2,0,0,1, -3,3,3,2,3,3,3,3,3,3,3,2,3,3,3,0,3,2,0,1,3,2,1,1,3,2,3,2,1,0,0,2, -2,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, -3,3,3,2,3,3,3,3,3,3,3,2,3,3,3,0,3,2,2,0,2,3,0,0,2,2,2,2,0,0,0,2, -3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0, -3,3,3,3,3,3,3,2,2,2,2,3,2,3,3,0,3,3,1,1,2,2,0,0,2,2,3,2,0,0,1,3, -0,3,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1, -3,3,3,2,3,3,3,2,1,2,2,3,2,3,3,0,3,2,0,0,1,1,0,1,1,2,1,2,0,0,0,1, -0,3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, -3,3,3,2,3,3,2,3,2,2,2,3,3,3,3,1,3,1,1,0,3,2,1,1,3,3,2,3,1,0,0,1, -1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,1, -3,2,2,3,3,0,3,3,3,3,3,3,3,2,2,1,0,3,3,1,3,3,0,1,3,3,2,3,0,3,0,3, -2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, -2,2,2,3,3,0,3,3,3,3,3,3,3,3,3,0,0,3,2,0,3,3,0,3,2,3,3,3,0,3,1,3, -2,0,0,0,0,0,0,0,0,0,0,1,0,1,2,0,1,0,0,0,0,0,0,0,2,2,0,0,1,0,0,1, -3,3,3,1,2,3,3,1,0,0,1,0,0,3,3,2,3,0,0,2,0,0,2,0,2,0,0,0,2,0,2,0, -0,3,1,0,1,0,0,0,2,2,1,0,1,1,2,1,2,2,2,0,2,1,1,0,0,0,2,0,0,0,0,0, -1,2,1,3,3,0,3,3,3,3,3,2,3,0,0,0,0,2,3,0,2,3,1,0,2,3,1,3,0,3,0,2, -3,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,1,3,3,2,2,3,2,2,0,1,2,3,0,1,2,1,0,1,0,0,0,1,0,2,2,0,0,0,1, -1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0, -3,3,3,1,3,3,1,1,3,3,1,1,3,3,1,0,2,1,2,0,2,1,0,0,1,1,2,1,0,0,0,2, -2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,1,0,2,1,3,0,0,2,0,0,3,3,0,3,0,0,1,0,1,2,0,0,1,1,2,2,0,1,0, -0,1,2,1,1,0,1,0,1,1,1,1,1,0,1,1,1,2,2,1,2,0,1,0,0,0,0,0,0,1,0,0, -3,3,3,2,3,2,3,3,0,2,2,2,3,3,3,0,3,0,0,0,2,2,0,1,2,1,1,1,0,0,0,1, -0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, -3,3,3,3,3,3,2,1,2,2,3,3,3,3,2,0,2,0,0,0,2,2,0,0,2,1,3,3,0,0,1,1, -1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, -1,1,2,3,3,0,3,3,3,3,3,3,2,2,0,2,0,2,3,2,3,2,2,2,2,2,2,2,1,3,2,3, -2,0,2,1,2,2,2,2,1,1,2,2,1,2,2,1,2,0,0,2,1,1,0,2,1,0,0,1,0,0,0,1, -2,3,3,1,1,1,0,1,1,1,2,3,2,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0, -0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,2,2,2,3,2,3,2,2,1,3,3,3,0,2,1,2,0,2,1,0,0,1,1,1,1,1,0,0,1, -2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0, -3,3,3,2,3,3,3,3,3,2,3,1,2,3,3,1,2,0,0,0,0,0,0,0,3,2,1,1,0,0,0,0, -2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, -3,3,3,2,2,3,3,2,1,1,1,1,1,3,3,0,3,1,0,0,1,1,0,0,3,1,2,1,0,0,0,0, -0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, -3,3,3,2,2,3,2,2,2,3,2,1,1,3,3,0,3,0,0,0,0,1,0,0,3,1,1,2,0,0,0,1, -1,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, -1,1,1,3,3,0,3,3,3,3,3,2,2,2,1,2,0,2,1,2,2,1,1,0,1,2,2,2,2,2,2,2, -0,0,2,1,2,1,2,1,0,1,1,3,1,2,1,1,2,0,0,2,0,1,0,1,0,1,0,0,0,1,0,1, -3,3,3,1,3,3,3,0,1,1,0,2,2,3,1,0,3,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0, -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,2,0,0,2,2,1,0,0,1,0,0,3,3,1,3,0,0,1,1,0,2,0,3,0,0,0,2,0,1,1, -0,1,2,0,1,2,2,0,2,2,2,2,1,0,2,1,1,0,2,0,2,1,2,0,0,0,0,0,0,0,0,0, -3,3,3,1,3,2,3,2,0,2,2,2,1,3,2,0,2,1,2,0,1,2,0,0,1,0,2,2,0,0,0,2, -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0, -3,3,3,0,3,3,1,1,2,3,1,0,3,2,3,0,3,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0, -1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,3,3,0,3,3,2,3,3,2,2,0,0,0,0,1,2,0,1,3,0,0,0,3,1,1,0,3,0,2, -2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,1,2,2,1,0,3,1,1,1,1,3,3,2,3,0,0,1,0,1,2,0,2,2,0,2,2,0,2,1, -0,2,2,1,1,1,1,0,2,1,1,0,1,1,1,1,2,1,2,1,2,0,1,0,1,0,0,0,0,0,0,0, -3,3,3,0,1,1,3,0,0,1,1,0,0,2,2,0,3,0,0,1,1,0,1,0,0,0,0,0,2,0,0,0, -0,3,1,0,1,0,1,0,2,0,0,1,0,1,0,1,1,1,2,1,1,0,2,0,0,0,0,0,0,0,0,0, -3,3,3,0,2,0,2,0,1,1,1,0,0,3,3,0,2,0,0,1,0,0,2,1,1,0,1,0,1,0,1,0, -0,2,0,1,2,0,2,0,2,1,1,0,1,0,2,1,1,0,2,1,1,0,1,0,0,0,1,1,0,0,0,0, -3,2,3,0,1,0,0,0,0,0,0,0,0,1,2,0,1,0,0,1,0,0,1,0,0,0,0,0,2,0,0,0, -0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,2,1,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,0,0,2,3,0,0,1,0,1,0,2,3,2,3,0,0,1,3,0,2,1,0,0,0,0,2,0,1,0, -0,2,1,0,0,1,1,0,2,1,0,0,1,0,0,1,1,0,1,1,2,0,1,0,0,0,0,1,0,0,0,0, -3,2,2,0,0,1,1,0,0,0,0,0,0,3,1,1,1,0,0,0,0,0,1,0,0,0,0,0,2,0,1,0, -0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, -0,0,0,3,3,0,2,3,2,2,1,2,2,1,1,2,0,1,3,2,2,2,0,0,2,2,0,0,0,1,2,1, -3,0,2,1,1,0,1,1,1,0,1,2,2,2,1,1,2,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0, -0,1,1,2,3,0,3,3,3,2,2,2,2,1,0,1,0,1,0,1,2,2,0,0,2,2,1,3,1,1,2,1, -0,0,1,1,2,0,1,1,0,0,1,2,0,2,1,1,2,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0, -3,3,2,0,0,3,1,0,0,0,0,0,0,3,2,1,2,0,0,1,0,0,2,0,0,0,0,0,2,0,1,0, -0,2,1,1,0,0,1,0,1,2,0,0,1,1,0,0,2,1,1,1,1,0,2,0,0,0,0,0,0,0,0,0, -3,3,2,0,0,1,0,0,0,0,1,0,0,3,3,2,2,0,0,1,0,0,2,0,1,0,0,0,2,0,1,0, -0,0,1,1,0,0,2,0,2,1,0,0,1,1,2,1,2,0,2,1,2,1,1,1,0,0,1,1,0,0,0,0, -3,3,2,0,0,2,2,0,0,0,1,1,0,2,2,1,3,1,0,1,0,1,2,0,0,0,0,0,1,0,1,0, -0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,2,0,0,0,1,0,0,1,0,0,2,3,1,2,0,0,1,0,0,2,0,0,0,1,0,2,0,2,0, -0,1,1,2,2,1,2,0,2,1,1,0,0,1,1,0,1,1,1,1,2,1,1,0,0,0,0,0,0,0,0,0, -3,3,3,0,2,1,2,1,0,0,1,1,0,3,3,1,2,0,0,1,0,0,2,0,2,0,1,1,2,0,0,0, -0,0,1,1,1,1,2,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0, -3,3,3,0,2,2,3,2,0,0,1,0,0,2,3,1,0,0,0,0,0,0,2,0,2,0,0,0,2,0,0,0, -0,1,1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0, -3,2,3,0,0,0,0,0,0,0,1,0,0,2,2,2,2,0,0,1,0,0,2,0,0,0,0,0,2,0,1,0, -0,0,2,1,1,0,1,0,2,1,1,0,0,1,1,2,1,0,2,0,2,0,1,0,0,0,2,0,0,0,0,0, -0,0,0,2,2,0,2,1,1,1,1,2,2,0,0,1,0,1,0,0,1,3,0,0,0,0,1,0,0,2,1,0, -0,0,1,0,1,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, -2,0,0,2,3,0,2,3,1,2,2,0,2,0,0,2,0,2,1,1,1,2,1,0,0,1,2,1,1,2,1,0, -1,0,2,0,1,0,1,1,0,0,2,2,1,2,1,1,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, -3,3,3,0,2,1,2,0,0,0,1,0,0,3,2,0,1,0,0,1,0,0,2,0,0,0,1,2,1,0,1,0, -0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0, -0,0,0,2,2,0,2,2,1,1,0,1,1,1,1,1,0,0,1,2,1,1,1,0,1,0,0,0,1,1,1,1, -0,0,2,1,0,1,1,1,0,1,1,2,1,2,1,1,2,0,1,1,2,1,0,2,0,0,0,0,0,0,0,0, -3,2,2,0,0,2,0,0,0,0,0,0,0,2,2,0,2,0,0,1,0,0,2,0,0,0,0,0,2,0,0,0, -0,2,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, -0,0,0,3,2,0,2,2,0,1,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0, -2,0,1,0,1,0,1,1,0,0,1,2,0,1,0,1,1,0,0,1,0,1,0,2,0,0,0,0,0,0,0,0, -2,2,2,0,1,1,0,0,0,1,0,0,0,1,2,0,1,0,0,1,0,0,1,0,0,0,0,1,2,0,1,0, -0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,2,1,0,1,1,1,0,0,0,0,1,2,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, -1,1,2,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,1, -0,0,1,2,2,0,2,1,2,1,1,2,2,0,0,0,0,1,0,0,1,1,0,0,2,0,0,0,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, -2,2,2,0,0,0,1,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, -0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2,2,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -) - -Latin5TurkishModel = { - 'char_to_order_map': Latin5_TurkishCharToOrderMap, - 'precedence_matrix': TurkishLangModel, - 'typical_positive_ratio': 0.970290, - 'keep_english_letter': True, - 'charset_name': "ISO-8859-9", - 'language': 'Turkish', -} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/latin1prober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/latin1prober.py deleted file mode 100644 index 7d1e8c2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/latin1prober.py +++ /dev/null @@ -1,145 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .enums import ProbingState - -FREQ_CAT_NUM = 4 - -UDF = 0 # undefined -OTH = 1 # other -ASC = 2 # ascii capital letter -ASS = 3 # ascii small letter -ACV = 4 # accent capital vowel -ACO = 5 # accent capital other -ASV = 6 # accent small vowel -ASO = 7 # accent small other -CLASS_NUM = 8 # total classes - -Latin1_CharToClass = ( - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 00 - 07 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 08 - 0F - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 10 - 17 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 18 - 1F - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 20 - 27 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 28 - 2F - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 30 - 37 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 38 - 3F - OTH, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 40 - 47 - ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 48 - 4F - ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 50 - 57 - ASC, ASC, ASC, OTH, OTH, OTH, OTH, OTH, # 58 - 5F - OTH, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 60 - 67 - ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 68 - 6F - ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 70 - 77 - ASS, ASS, ASS, OTH, OTH, OTH, OTH, OTH, # 78 - 7F - OTH, UDF, OTH, ASO, OTH, OTH, OTH, OTH, # 80 - 87 - OTH, OTH, ACO, OTH, ACO, UDF, ACO, UDF, # 88 - 8F - UDF, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 90 - 97 - OTH, OTH, ASO, OTH, ASO, UDF, ASO, ACO, # 98 - 9F - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # A0 - A7 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # A8 - AF - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # B0 - B7 - OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # B8 - BF - ACV, ACV, ACV, ACV, ACV, ACV, ACO, ACO, # C0 - C7 - ACV, ACV, ACV, ACV, ACV, ACV, ACV, ACV, # C8 - CF - ACO, ACO, ACV, ACV, ACV, ACV, ACV, OTH, # D0 - D7 - ACV, ACV, ACV, ACV, ACV, ACO, ACO, ACO, # D8 - DF - ASV, ASV, ASV, ASV, ASV, ASV, ASO, ASO, # E0 - E7 - ASV, ASV, ASV, ASV, ASV, ASV, ASV, ASV, # E8 - EF - ASO, ASO, ASV, ASV, ASV, ASV, ASV, OTH, # F0 - F7 - ASV, ASV, ASV, ASV, ASV, ASO, ASO, ASO, # F8 - FF -) - -# 0 : illegal -# 1 : very unlikely -# 2 : normal -# 3 : very likely -Latin1ClassModel = ( -# UDF OTH ASC ASS ACV ACO ASV ASO - 0, 0, 0, 0, 0, 0, 0, 0, # UDF - 0, 3, 3, 3, 3, 3, 3, 3, # OTH - 0, 3, 3, 3, 3, 3, 3, 3, # ASC - 0, 3, 3, 3, 1, 1, 3, 3, # ASS - 0, 3, 3, 3, 1, 2, 1, 2, # ACV - 0, 3, 3, 3, 3, 3, 3, 3, # ACO - 0, 3, 1, 3, 1, 1, 1, 3, # ASV - 0, 3, 1, 3, 1, 1, 3, 3, # ASO -) - - -class Latin1Prober(CharSetProber): - def __init__(self): - super(Latin1Prober, self).__init__() - self._last_char_class = None - self._freq_counter = None - self.reset() - - def reset(self): - self._last_char_class = OTH - self._freq_counter = [0] * FREQ_CAT_NUM - CharSetProber.reset(self) - - @property - def charset_name(self): - return "ISO-8859-1" - - @property - def language(self): - return "" - - def feed(self, byte_str): - byte_str = self.filter_with_english_letters(byte_str) - for c in byte_str: - char_class = Latin1_CharToClass[c] - freq = Latin1ClassModel[(self._last_char_class * CLASS_NUM) - + char_class] - if freq == 0: - self._state = ProbingState.NOT_ME - break - self._freq_counter[freq] += 1 - self._last_char_class = char_class - - return self.state - - def get_confidence(self): - if self.state == ProbingState.NOT_ME: - return 0.01 - - total = sum(self._freq_counter) - if total < 0.01: - confidence = 0.0 - else: - confidence = ((self._freq_counter[3] - self._freq_counter[1] * 20.0) - / total) - if confidence < 0.0: - confidence = 0.0 - # lower the confidence of latin1 so that other more accurate - # detector can take priority. - confidence = confidence * 0.73 - return confidence diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcharsetprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcharsetprober.py deleted file mode 100644 index 6256ecf..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcharsetprober.py +++ /dev/null @@ -1,91 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# Proofpoint, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .enums import ProbingState, MachineState - - -class MultiByteCharSetProber(CharSetProber): - """ - MultiByteCharSetProber - """ - - def __init__(self, lang_filter=None): - super(MultiByteCharSetProber, self).__init__(lang_filter=lang_filter) - self.distribution_analyzer = None - self.coding_sm = None - self._last_char = [0, 0] - - def reset(self): - super(MultiByteCharSetProber, self).reset() - if self.coding_sm: - self.coding_sm.reset() - if self.distribution_analyzer: - self.distribution_analyzer.reset() - self._last_char = [0, 0] - - @property - def charset_name(self): - raise NotImplementedError - - @property - def language(self): - raise NotImplementedError - - def feed(self, byte_str): - for i in range(len(byte_str)): - coding_state = self.coding_sm.next_state(byte_str[i]) - if coding_state == MachineState.ERROR: - self.logger.debug('%s %s prober hit error at byte %s', - self.charset_name, self.language, i) - self._state = ProbingState.NOT_ME - break - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - break - elif coding_state == MachineState.START: - char_len = self.coding_sm.get_current_charlen() - if i == 0: - self._last_char[1] = byte_str[0] - self.distribution_analyzer.feed(self._last_char, char_len) - else: - self.distribution_analyzer.feed(byte_str[i - 1:i + 1], - char_len) - - self._last_char[0] = byte_str[-1] - - if self.state == ProbingState.DETECTING: - if (self.distribution_analyzer.got_enough_data() and - (self.get_confidence() > self.SHORTCUT_THRESHOLD)): - self._state = ProbingState.FOUND_IT - - return self.state - - def get_confidence(self): - return self.distribution_analyzer.get_confidence() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcsgroupprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcsgroupprober.py deleted file mode 100644 index 530abe7..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcsgroupprober.py +++ /dev/null @@ -1,54 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# Proofpoint, Inc. -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetgroupprober import CharSetGroupProber -from .utf8prober import UTF8Prober -from .sjisprober import SJISProber -from .eucjpprober import EUCJPProber -from .gb2312prober import GB2312Prober -from .euckrprober import EUCKRProber -from .cp949prober import CP949Prober -from .big5prober import Big5Prober -from .euctwprober import EUCTWProber - - -class MBCSGroupProber(CharSetGroupProber): - def __init__(self, lang_filter=None): - super(MBCSGroupProber, self).__init__(lang_filter=lang_filter) - self.probers = [ - UTF8Prober(), - SJISProber(), - EUCJPProber(), - GB2312Prober(), - EUCKRProber(), - CP949Prober(), - Big5Prober(), - EUCTWProber() - ] - self.reset() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcssm.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcssm.py deleted file mode 100644 index 8360d0f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcssm.py +++ /dev/null @@ -1,572 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .enums import MachineState - -# BIG5 - -BIG5_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 #allow 0x00 as legal value - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 1,1,1,1,1,1,1,1, # 30 - 37 - 1,1,1,1,1,1,1,1, # 38 - 3f - 2,2,2,2,2,2,2,2, # 40 - 47 - 2,2,2,2,2,2,2,2, # 48 - 4f - 2,2,2,2,2,2,2,2, # 50 - 57 - 2,2,2,2,2,2,2,2, # 58 - 5f - 2,2,2,2,2,2,2,2, # 60 - 67 - 2,2,2,2,2,2,2,2, # 68 - 6f - 2,2,2,2,2,2,2,2, # 70 - 77 - 2,2,2,2,2,2,2,1, # 78 - 7f - 4,4,4,4,4,4,4,4, # 80 - 87 - 4,4,4,4,4,4,4,4, # 88 - 8f - 4,4,4,4,4,4,4,4, # 90 - 97 - 4,4,4,4,4,4,4,4, # 98 - 9f - 4,3,3,3,3,3,3,3, # a0 - a7 - 3,3,3,3,3,3,3,3, # a8 - af - 3,3,3,3,3,3,3,3, # b0 - b7 - 3,3,3,3,3,3,3,3, # b8 - bf - 3,3,3,3,3,3,3,3, # c0 - c7 - 3,3,3,3,3,3,3,3, # c8 - cf - 3,3,3,3,3,3,3,3, # d0 - d7 - 3,3,3,3,3,3,3,3, # d8 - df - 3,3,3,3,3,3,3,3, # e0 - e7 - 3,3,3,3,3,3,3,3, # e8 - ef - 3,3,3,3,3,3,3,3, # f0 - f7 - 3,3,3,3,3,3,3,0 # f8 - ff -) - -BIG5_ST = ( - MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,#08-0f - MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START#10-17 -) - -BIG5_CHAR_LEN_TABLE = (0, 1, 1, 2, 0) - -BIG5_SM_MODEL = {'class_table': BIG5_CLS, - 'class_factor': 5, - 'state_table': BIG5_ST, - 'char_len_table': BIG5_CHAR_LEN_TABLE, - 'name': 'Big5'} - -# CP949 - -CP949_CLS = ( - 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0, # 00 - 0f - 1,1,1,1,1,1,1,1, 1,1,1,0,1,1,1,1, # 10 - 1f - 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, # 20 - 2f - 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, # 30 - 3f - 1,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4, # 40 - 4f - 4,4,5,5,5,5,5,5, 5,5,5,1,1,1,1,1, # 50 - 5f - 1,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5, # 60 - 6f - 5,5,5,5,5,5,5,5, 5,5,5,1,1,1,1,1, # 70 - 7f - 0,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, # 80 - 8f - 6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, # 90 - 9f - 6,7,7,7,7,7,7,7, 7,7,7,7,7,8,8,8, # a0 - af - 7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7, # b0 - bf - 7,7,7,7,7,7,9,2, 2,3,2,2,2,2,2,2, # c0 - cf - 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, # d0 - df - 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, # e0 - ef - 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,0, # f0 - ff -) - -CP949_ST = ( -#cls= 0 1 2 3 4 5 6 7 8 9 # previous state = - MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START, 4, 5,MachineState.ERROR, 6, # MachineState.START - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, # MachineState.ERROR - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME, # MachineState.ITS_ME - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 3 - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 4 - MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 5 - MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 6 -) - -CP949_CHAR_LEN_TABLE = (0, 1, 2, 0, 1, 1, 2, 2, 0, 2) - -CP949_SM_MODEL = {'class_table': CP949_CLS, - 'class_factor': 10, - 'state_table': CP949_ST, - 'char_len_table': CP949_CHAR_LEN_TABLE, - 'name': 'CP949'} - -# EUC-JP - -EUCJP_CLS = ( - 4,4,4,4,4,4,4,4, # 00 - 07 - 4,4,4,4,4,4,5,5, # 08 - 0f - 4,4,4,4,4,4,4,4, # 10 - 17 - 4,4,4,5,4,4,4,4, # 18 - 1f - 4,4,4,4,4,4,4,4, # 20 - 27 - 4,4,4,4,4,4,4,4, # 28 - 2f - 4,4,4,4,4,4,4,4, # 30 - 37 - 4,4,4,4,4,4,4,4, # 38 - 3f - 4,4,4,4,4,4,4,4, # 40 - 47 - 4,4,4,4,4,4,4,4, # 48 - 4f - 4,4,4,4,4,4,4,4, # 50 - 57 - 4,4,4,4,4,4,4,4, # 58 - 5f - 4,4,4,4,4,4,4,4, # 60 - 67 - 4,4,4,4,4,4,4,4, # 68 - 6f - 4,4,4,4,4,4,4,4, # 70 - 77 - 4,4,4,4,4,4,4,4, # 78 - 7f - 5,5,5,5,5,5,5,5, # 80 - 87 - 5,5,5,5,5,5,1,3, # 88 - 8f - 5,5,5,5,5,5,5,5, # 90 - 97 - 5,5,5,5,5,5,5,5, # 98 - 9f - 5,2,2,2,2,2,2,2, # a0 - a7 - 2,2,2,2,2,2,2,2, # a8 - af - 2,2,2,2,2,2,2,2, # b0 - b7 - 2,2,2,2,2,2,2,2, # b8 - bf - 2,2,2,2,2,2,2,2, # c0 - c7 - 2,2,2,2,2,2,2,2, # c8 - cf - 2,2,2,2,2,2,2,2, # d0 - d7 - 2,2,2,2,2,2,2,2, # d8 - df - 0,0,0,0,0,0,0,0, # e0 - e7 - 0,0,0,0,0,0,0,0, # e8 - ef - 0,0,0,0,0,0,0,0, # f0 - f7 - 0,0,0,0,0,0,0,5 # f8 - ff -) - -EUCJP_ST = ( - 3, 4, 3, 5,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17 - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 3,MachineState.ERROR,#18-1f - 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START#20-27 -) - -EUCJP_CHAR_LEN_TABLE = (2, 2, 2, 3, 1, 0) - -EUCJP_SM_MODEL = {'class_table': EUCJP_CLS, - 'class_factor': 6, - 'state_table': EUCJP_ST, - 'char_len_table': EUCJP_CHAR_LEN_TABLE, - 'name': 'EUC-JP'} - -# EUC-KR - -EUCKR_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 1,1,1,1,1,1,1,1, # 30 - 37 - 1,1,1,1,1,1,1,1, # 38 - 3f - 1,1,1,1,1,1,1,1, # 40 - 47 - 1,1,1,1,1,1,1,1, # 48 - 4f - 1,1,1,1,1,1,1,1, # 50 - 57 - 1,1,1,1,1,1,1,1, # 58 - 5f - 1,1,1,1,1,1,1,1, # 60 - 67 - 1,1,1,1,1,1,1,1, # 68 - 6f - 1,1,1,1,1,1,1,1, # 70 - 77 - 1,1,1,1,1,1,1,1, # 78 - 7f - 0,0,0,0,0,0,0,0, # 80 - 87 - 0,0,0,0,0,0,0,0, # 88 - 8f - 0,0,0,0,0,0,0,0, # 90 - 97 - 0,0,0,0,0,0,0,0, # 98 - 9f - 0,2,2,2,2,2,2,2, # a0 - a7 - 2,2,2,2,2,3,3,3, # a8 - af - 2,2,2,2,2,2,2,2, # b0 - b7 - 2,2,2,2,2,2,2,2, # b8 - bf - 2,2,2,2,2,2,2,2, # c0 - c7 - 2,3,2,2,2,2,2,2, # c8 - cf - 2,2,2,2,2,2,2,2, # d0 - d7 - 2,2,2,2,2,2,2,2, # d8 - df - 2,2,2,2,2,2,2,2, # e0 - e7 - 2,2,2,2,2,2,2,2, # e8 - ef - 2,2,2,2,2,2,2,2, # f0 - f7 - 2,2,2,2,2,2,2,0 # f8 - ff -) - -EUCKR_ST = ( - MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #08-0f -) - -EUCKR_CHAR_LEN_TABLE = (0, 1, 2, 0) - -EUCKR_SM_MODEL = {'class_table': EUCKR_CLS, - 'class_factor': 4, - 'state_table': EUCKR_ST, - 'char_len_table': EUCKR_CHAR_LEN_TABLE, - 'name': 'EUC-KR'} - -# EUC-TW - -EUCTW_CLS = ( - 2,2,2,2,2,2,2,2, # 00 - 07 - 2,2,2,2,2,2,0,0, # 08 - 0f - 2,2,2,2,2,2,2,2, # 10 - 17 - 2,2,2,0,2,2,2,2, # 18 - 1f - 2,2,2,2,2,2,2,2, # 20 - 27 - 2,2,2,2,2,2,2,2, # 28 - 2f - 2,2,2,2,2,2,2,2, # 30 - 37 - 2,2,2,2,2,2,2,2, # 38 - 3f - 2,2,2,2,2,2,2,2, # 40 - 47 - 2,2,2,2,2,2,2,2, # 48 - 4f - 2,2,2,2,2,2,2,2, # 50 - 57 - 2,2,2,2,2,2,2,2, # 58 - 5f - 2,2,2,2,2,2,2,2, # 60 - 67 - 2,2,2,2,2,2,2,2, # 68 - 6f - 2,2,2,2,2,2,2,2, # 70 - 77 - 2,2,2,2,2,2,2,2, # 78 - 7f - 0,0,0,0,0,0,0,0, # 80 - 87 - 0,0,0,0,0,0,6,0, # 88 - 8f - 0,0,0,0,0,0,0,0, # 90 - 97 - 0,0,0,0,0,0,0,0, # 98 - 9f - 0,3,4,4,4,4,4,4, # a0 - a7 - 5,5,1,1,1,1,1,1, # a8 - af - 1,1,1,1,1,1,1,1, # b0 - b7 - 1,1,1,1,1,1,1,1, # b8 - bf - 1,1,3,1,3,3,3,3, # c0 - c7 - 3,3,3,3,3,3,3,3, # c8 - cf - 3,3,3,3,3,3,3,3, # d0 - d7 - 3,3,3,3,3,3,3,3, # d8 - df - 3,3,3,3,3,3,3,3, # e0 - e7 - 3,3,3,3,3,3,3,3, # e8 - ef - 3,3,3,3,3,3,3,3, # f0 - f7 - 3,3,3,3,3,3,3,0 # f8 - ff -) - -EUCTW_ST = ( - MachineState.ERROR,MachineState.ERROR,MachineState.START, 3, 3, 3, 4,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,MachineState.ERROR,#10-17 - MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f - 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,#20-27 - MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f -) - -EUCTW_CHAR_LEN_TABLE = (0, 0, 1, 2, 2, 2, 3) - -EUCTW_SM_MODEL = {'class_table': EUCTW_CLS, - 'class_factor': 7, - 'state_table': EUCTW_ST, - 'char_len_table': EUCTW_CHAR_LEN_TABLE, - 'name': 'x-euc-tw'} - -# GB2312 - -GB2312_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 3,3,3,3,3,3,3,3, # 30 - 37 - 3,3,1,1,1,1,1,1, # 38 - 3f - 2,2,2,2,2,2,2,2, # 40 - 47 - 2,2,2,2,2,2,2,2, # 48 - 4f - 2,2,2,2,2,2,2,2, # 50 - 57 - 2,2,2,2,2,2,2,2, # 58 - 5f - 2,2,2,2,2,2,2,2, # 60 - 67 - 2,2,2,2,2,2,2,2, # 68 - 6f - 2,2,2,2,2,2,2,2, # 70 - 77 - 2,2,2,2,2,2,2,4, # 78 - 7f - 5,6,6,6,6,6,6,6, # 80 - 87 - 6,6,6,6,6,6,6,6, # 88 - 8f - 6,6,6,6,6,6,6,6, # 90 - 97 - 6,6,6,6,6,6,6,6, # 98 - 9f - 6,6,6,6,6,6,6,6, # a0 - a7 - 6,6,6,6,6,6,6,6, # a8 - af - 6,6,6,6,6,6,6,6, # b0 - b7 - 6,6,6,6,6,6,6,6, # b8 - bf - 6,6,6,6,6,6,6,6, # c0 - c7 - 6,6,6,6,6,6,6,6, # c8 - cf - 6,6,6,6,6,6,6,6, # d0 - d7 - 6,6,6,6,6,6,6,6, # d8 - df - 6,6,6,6,6,6,6,6, # e0 - e7 - 6,6,6,6,6,6,6,6, # e8 - ef - 6,6,6,6,6,6,6,6, # f0 - f7 - 6,6,6,6,6,6,6,0 # f8 - ff -) - -GB2312_ST = ( - MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, 3,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,#10-17 - 4,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f - MachineState.ERROR,MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#20-27 - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f -) - -# To be accurate, the length of class 6 can be either 2 or 4. -# But it is not necessary to discriminate between the two since -# it is used for frequency analysis only, and we are validating -# each code range there as well. So it is safe to set it to be -# 2 here. -GB2312_CHAR_LEN_TABLE = (0, 1, 1, 1, 1, 1, 2) - -GB2312_SM_MODEL = {'class_table': GB2312_CLS, - 'class_factor': 7, - 'state_table': GB2312_ST, - 'char_len_table': GB2312_CHAR_LEN_TABLE, - 'name': 'GB2312'} - -# Shift_JIS - -SJIS_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 1,1,1,1,1,1,1,1, # 30 - 37 - 1,1,1,1,1,1,1,1, # 38 - 3f - 2,2,2,2,2,2,2,2, # 40 - 47 - 2,2,2,2,2,2,2,2, # 48 - 4f - 2,2,2,2,2,2,2,2, # 50 - 57 - 2,2,2,2,2,2,2,2, # 58 - 5f - 2,2,2,2,2,2,2,2, # 60 - 67 - 2,2,2,2,2,2,2,2, # 68 - 6f - 2,2,2,2,2,2,2,2, # 70 - 77 - 2,2,2,2,2,2,2,1, # 78 - 7f - 3,3,3,3,3,2,2,3, # 80 - 87 - 3,3,3,3,3,3,3,3, # 88 - 8f - 3,3,3,3,3,3,3,3, # 90 - 97 - 3,3,3,3,3,3,3,3, # 98 - 9f - #0xa0 is illegal in sjis encoding, but some pages does - #contain such byte. We need to be more error forgiven. - 2,2,2,2,2,2,2,2, # a0 - a7 - 2,2,2,2,2,2,2,2, # a8 - af - 2,2,2,2,2,2,2,2, # b0 - b7 - 2,2,2,2,2,2,2,2, # b8 - bf - 2,2,2,2,2,2,2,2, # c0 - c7 - 2,2,2,2,2,2,2,2, # c8 - cf - 2,2,2,2,2,2,2,2, # d0 - d7 - 2,2,2,2,2,2,2,2, # d8 - df - 3,3,3,3,3,3,3,3, # e0 - e7 - 3,3,3,3,3,4,4,4, # e8 - ef - 3,3,3,3,3,3,3,3, # f0 - f7 - 3,3,3,3,3,0,0,0) # f8 - ff - - -SJIS_ST = ( - MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START #10-17 -) - -SJIS_CHAR_LEN_TABLE = (0, 1, 1, 2, 0, 0) - -SJIS_SM_MODEL = {'class_table': SJIS_CLS, - 'class_factor': 6, - 'state_table': SJIS_ST, - 'char_len_table': SJIS_CHAR_LEN_TABLE, - 'name': 'Shift_JIS'} - -# UCS2-BE - -UCS2BE_CLS = ( - 0,0,0,0,0,0,0,0, # 00 - 07 - 0,0,1,0,0,2,0,0, # 08 - 0f - 0,0,0,0,0,0,0,0, # 10 - 17 - 0,0,0,3,0,0,0,0, # 18 - 1f - 0,0,0,0,0,0,0,0, # 20 - 27 - 0,3,3,3,3,3,0,0, # 28 - 2f - 0,0,0,0,0,0,0,0, # 30 - 37 - 0,0,0,0,0,0,0,0, # 38 - 3f - 0,0,0,0,0,0,0,0, # 40 - 47 - 0,0,0,0,0,0,0,0, # 48 - 4f - 0,0,0,0,0,0,0,0, # 50 - 57 - 0,0,0,0,0,0,0,0, # 58 - 5f - 0,0,0,0,0,0,0,0, # 60 - 67 - 0,0,0,0,0,0,0,0, # 68 - 6f - 0,0,0,0,0,0,0,0, # 70 - 77 - 0,0,0,0,0,0,0,0, # 78 - 7f - 0,0,0,0,0,0,0,0, # 80 - 87 - 0,0,0,0,0,0,0,0, # 88 - 8f - 0,0,0,0,0,0,0,0, # 90 - 97 - 0,0,0,0,0,0,0,0, # 98 - 9f - 0,0,0,0,0,0,0,0, # a0 - a7 - 0,0,0,0,0,0,0,0, # a8 - af - 0,0,0,0,0,0,0,0, # b0 - b7 - 0,0,0,0,0,0,0,0, # b8 - bf - 0,0,0,0,0,0,0,0, # c0 - c7 - 0,0,0,0,0,0,0,0, # c8 - cf - 0,0,0,0,0,0,0,0, # d0 - d7 - 0,0,0,0,0,0,0,0, # d8 - df - 0,0,0,0,0,0,0,0, # e0 - e7 - 0,0,0,0,0,0,0,0, # e8 - ef - 0,0,0,0,0,0,0,0, # f0 - f7 - 0,0,0,0,0,0,4,5 # f8 - ff -) - -UCS2BE_ST = ( - 5, 7, 7,MachineState.ERROR, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME, 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,#10-17 - 6, 6, 6, 6, 6,MachineState.ITS_ME, 6, 6,#18-1f - 6, 6, 6, 6, 5, 7, 7,MachineState.ERROR,#20-27 - 5, 8, 6, 6,MachineState.ERROR, 6, 6, 6,#28-2f - 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #30-37 -) - -UCS2BE_CHAR_LEN_TABLE = (2, 2, 2, 0, 2, 2) - -UCS2BE_SM_MODEL = {'class_table': UCS2BE_CLS, - 'class_factor': 6, - 'state_table': UCS2BE_ST, - 'char_len_table': UCS2BE_CHAR_LEN_TABLE, - 'name': 'UTF-16BE'} - -# UCS2-LE - -UCS2LE_CLS = ( - 0,0,0,0,0,0,0,0, # 00 - 07 - 0,0,1,0,0,2,0,0, # 08 - 0f - 0,0,0,0,0,0,0,0, # 10 - 17 - 0,0,0,3,0,0,0,0, # 18 - 1f - 0,0,0,0,0,0,0,0, # 20 - 27 - 0,3,3,3,3,3,0,0, # 28 - 2f - 0,0,0,0,0,0,0,0, # 30 - 37 - 0,0,0,0,0,0,0,0, # 38 - 3f - 0,0,0,0,0,0,0,0, # 40 - 47 - 0,0,0,0,0,0,0,0, # 48 - 4f - 0,0,0,0,0,0,0,0, # 50 - 57 - 0,0,0,0,0,0,0,0, # 58 - 5f - 0,0,0,0,0,0,0,0, # 60 - 67 - 0,0,0,0,0,0,0,0, # 68 - 6f - 0,0,0,0,0,0,0,0, # 70 - 77 - 0,0,0,0,0,0,0,0, # 78 - 7f - 0,0,0,0,0,0,0,0, # 80 - 87 - 0,0,0,0,0,0,0,0, # 88 - 8f - 0,0,0,0,0,0,0,0, # 90 - 97 - 0,0,0,0,0,0,0,0, # 98 - 9f - 0,0,0,0,0,0,0,0, # a0 - a7 - 0,0,0,0,0,0,0,0, # a8 - af - 0,0,0,0,0,0,0,0, # b0 - b7 - 0,0,0,0,0,0,0,0, # b8 - bf - 0,0,0,0,0,0,0,0, # c0 - c7 - 0,0,0,0,0,0,0,0, # c8 - cf - 0,0,0,0,0,0,0,0, # d0 - d7 - 0,0,0,0,0,0,0,0, # d8 - df - 0,0,0,0,0,0,0,0, # e0 - e7 - 0,0,0,0,0,0,0,0, # e8 - ef - 0,0,0,0,0,0,0,0, # f0 - f7 - 0,0,0,0,0,0,4,5 # f8 - ff -) - -UCS2LE_ST = ( - 6, 6, 7, 6, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f - MachineState.ITS_ME,MachineState.ITS_ME, 5, 5, 5,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#10-17 - 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR, 6, 6,#18-1f - 7, 6, 8, 8, 5, 5, 5,MachineState.ERROR,#20-27 - 5, 5, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5,#28-2f - 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR,MachineState.START,MachineState.START #30-37 -) - -UCS2LE_CHAR_LEN_TABLE = (2, 2, 2, 2, 2, 2) - -UCS2LE_SM_MODEL = {'class_table': UCS2LE_CLS, - 'class_factor': 6, - 'state_table': UCS2LE_ST, - 'char_len_table': UCS2LE_CHAR_LEN_TABLE, - 'name': 'UTF-16LE'} - -# UTF-8 - -UTF8_CLS = ( - 1,1,1,1,1,1,1,1, # 00 - 07 #allow 0x00 as a legal value - 1,1,1,1,1,1,0,0, # 08 - 0f - 1,1,1,1,1,1,1,1, # 10 - 17 - 1,1,1,0,1,1,1,1, # 18 - 1f - 1,1,1,1,1,1,1,1, # 20 - 27 - 1,1,1,1,1,1,1,1, # 28 - 2f - 1,1,1,1,1,1,1,1, # 30 - 37 - 1,1,1,1,1,1,1,1, # 38 - 3f - 1,1,1,1,1,1,1,1, # 40 - 47 - 1,1,1,1,1,1,1,1, # 48 - 4f - 1,1,1,1,1,1,1,1, # 50 - 57 - 1,1,1,1,1,1,1,1, # 58 - 5f - 1,1,1,1,1,1,1,1, # 60 - 67 - 1,1,1,1,1,1,1,1, # 68 - 6f - 1,1,1,1,1,1,1,1, # 70 - 77 - 1,1,1,1,1,1,1,1, # 78 - 7f - 2,2,2,2,3,3,3,3, # 80 - 87 - 4,4,4,4,4,4,4,4, # 88 - 8f - 4,4,4,4,4,4,4,4, # 90 - 97 - 4,4,4,4,4,4,4,4, # 98 - 9f - 5,5,5,5,5,5,5,5, # a0 - a7 - 5,5,5,5,5,5,5,5, # a8 - af - 5,5,5,5,5,5,5,5, # b0 - b7 - 5,5,5,5,5,5,5,5, # b8 - bf - 0,0,6,6,6,6,6,6, # c0 - c7 - 6,6,6,6,6,6,6,6, # c8 - cf - 6,6,6,6,6,6,6,6, # d0 - d7 - 6,6,6,6,6,6,6,6, # d8 - df - 7,8,8,8,8,8,8,8, # e0 - e7 - 8,8,8,8,8,9,8,8, # e8 - ef - 10,11,11,11,11,11,11,11, # f0 - f7 - 12,13,13,13,14,15,0,0 # f8 - ff -) - -UTF8_ST = ( - MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12, 10,#00-07 - 9, 11, 8, 7, 6, 5, 4, 3,#08-0f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#20-27 - MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#28-2f - MachineState.ERROR,MachineState.ERROR, 5, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#30-37 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#38-3f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#40-47 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#48-4f - MachineState.ERROR,MachineState.ERROR, 7, 7, 7, 7,MachineState.ERROR,MachineState.ERROR,#50-57 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#58-5f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 7, 7,MachineState.ERROR,MachineState.ERROR,#60-67 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#68-6f - MachineState.ERROR,MachineState.ERROR, 9, 9, 9, 9,MachineState.ERROR,MachineState.ERROR,#70-77 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#78-7f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 9,MachineState.ERROR,MachineState.ERROR,#80-87 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#88-8f - MachineState.ERROR,MachineState.ERROR, 12, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,#90-97 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#98-9f - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12,MachineState.ERROR,MachineState.ERROR,#a0-a7 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#a8-af - MachineState.ERROR,MachineState.ERROR, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b0-b7 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b8-bf - MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,#c0-c7 - MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR #c8-cf -) - -UTF8_CHAR_LEN_TABLE = (0, 1, 0, 0, 0, 0, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6) - -UTF8_SM_MODEL = {'class_table': UTF8_CLS, - 'class_factor': 16, - 'state_table': UTF8_ST, - 'char_len_table': UTF8_CHAR_LEN_TABLE, - 'name': 'UTF-8'} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcharsetprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcharsetprober.py deleted file mode 100644 index 0adb51d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcharsetprober.py +++ /dev/null @@ -1,132 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .enums import CharacterCategory, ProbingState, SequenceLikelihood - - -class SingleByteCharSetProber(CharSetProber): - SAMPLE_SIZE = 64 - SB_ENOUGH_REL_THRESHOLD = 1024 # 0.25 * SAMPLE_SIZE^2 - POSITIVE_SHORTCUT_THRESHOLD = 0.95 - NEGATIVE_SHORTCUT_THRESHOLD = 0.05 - - def __init__(self, model, reversed=False, name_prober=None): - super(SingleByteCharSetProber, self).__init__() - self._model = model - # TRUE if we need to reverse every pair in the model lookup - self._reversed = reversed - # Optional auxiliary prober for name decision - self._name_prober = name_prober - self._last_order = None - self._seq_counters = None - self._total_seqs = None - self._total_char = None - self._freq_char = None - self.reset() - - def reset(self): - super(SingleByteCharSetProber, self).reset() - # char order of last character - self._last_order = 255 - self._seq_counters = [0] * SequenceLikelihood.get_num_categories() - self._total_seqs = 0 - self._total_char = 0 - # characters that fall in our sampling range - self._freq_char = 0 - - @property - def charset_name(self): - if self._name_prober: - return self._name_prober.charset_name - else: - return self._model['charset_name'] - - @property - def language(self): - if self._name_prober: - return self._name_prober.language - else: - return self._model.get('language') - - def feed(self, byte_str): - if not self._model['keep_english_letter']: - byte_str = self.filter_international_words(byte_str) - if not byte_str: - return self.state - char_to_order_map = self._model['char_to_order_map'] - for i, c in enumerate(byte_str): - # XXX: Order is in range 1-64, so one would think we want 0-63 here, - # but that leads to 27 more test failures than before. - order = char_to_order_map[c] - # XXX: This was SYMBOL_CAT_ORDER before, with a value of 250, but - # CharacterCategory.SYMBOL is actually 253, so we use CONTROL - # to make it closer to the original intent. The only difference - # is whether or not we count digits and control characters for - # _total_char purposes. - if order < CharacterCategory.CONTROL: - self._total_char += 1 - if order < self.SAMPLE_SIZE: - self._freq_char += 1 - if self._last_order < self.SAMPLE_SIZE: - self._total_seqs += 1 - if not self._reversed: - i = (self._last_order * self.SAMPLE_SIZE) + order - model = self._model['precedence_matrix'][i] - else: # reverse the order of the letters in the lookup - i = (order * self.SAMPLE_SIZE) + self._last_order - model = self._model['precedence_matrix'][i] - self._seq_counters[model] += 1 - self._last_order = order - - charset_name = self._model['charset_name'] - if self.state == ProbingState.DETECTING: - if self._total_seqs > self.SB_ENOUGH_REL_THRESHOLD: - confidence = self.get_confidence() - if confidence > self.POSITIVE_SHORTCUT_THRESHOLD: - self.logger.debug('%s confidence = %s, we have a winner', - charset_name, confidence) - self._state = ProbingState.FOUND_IT - elif confidence < self.NEGATIVE_SHORTCUT_THRESHOLD: - self.logger.debug('%s confidence = %s, below negative ' - 'shortcut threshhold %s', charset_name, - confidence, - self.NEGATIVE_SHORTCUT_THRESHOLD) - self._state = ProbingState.NOT_ME - - return self.state - - def get_confidence(self): - r = 0.01 - if self._total_seqs > 0: - r = ((1.0 * self._seq_counters[SequenceLikelihood.POSITIVE]) / - self._total_seqs / self._model['typical_positive_ratio']) - r = r * self._freq_char / self._total_char - if r >= 1.0: - r = 0.99 - return r diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcsgroupprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcsgroupprober.py deleted file mode 100644 index 98e95dc..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcsgroupprober.py +++ /dev/null @@ -1,73 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetgroupprober import CharSetGroupProber -from .sbcharsetprober import SingleByteCharSetProber -from .langcyrillicmodel import (Win1251CyrillicModel, Koi8rModel, - Latin5CyrillicModel, MacCyrillicModel, - Ibm866Model, Ibm855Model) -from .langgreekmodel import Latin7GreekModel, Win1253GreekModel -from .langbulgarianmodel import Latin5BulgarianModel, Win1251BulgarianModel -# from .langhungarianmodel import Latin2HungarianModel, Win1250HungarianModel -from .langthaimodel import TIS620ThaiModel -from .langhebrewmodel import Win1255HebrewModel -from .hebrewprober import HebrewProber -from .langturkishmodel import Latin5TurkishModel - - -class SBCSGroupProber(CharSetGroupProber): - def __init__(self): - super(SBCSGroupProber, self).__init__() - self.probers = [ - SingleByteCharSetProber(Win1251CyrillicModel), - SingleByteCharSetProber(Koi8rModel), - SingleByteCharSetProber(Latin5CyrillicModel), - SingleByteCharSetProber(MacCyrillicModel), - SingleByteCharSetProber(Ibm866Model), - SingleByteCharSetProber(Ibm855Model), - SingleByteCharSetProber(Latin7GreekModel), - SingleByteCharSetProber(Win1253GreekModel), - SingleByteCharSetProber(Latin5BulgarianModel), - SingleByteCharSetProber(Win1251BulgarianModel), - # TODO: Restore Hungarian encodings (iso-8859-2 and windows-1250) - # after we retrain model. - # SingleByteCharSetProber(Latin2HungarianModel), - # SingleByteCharSetProber(Win1250HungarianModel), - SingleByteCharSetProber(TIS620ThaiModel), - SingleByteCharSetProber(Latin5TurkishModel), - ] - hebrew_prober = HebrewProber() - logical_hebrew_prober = SingleByteCharSetProber(Win1255HebrewModel, - False, hebrew_prober) - visual_hebrew_prober = SingleByteCharSetProber(Win1255HebrewModel, True, - hebrew_prober) - hebrew_prober.set_model_probers(logical_hebrew_prober, visual_hebrew_prober) - self.probers.extend([hebrew_prober, logical_hebrew_prober, - visual_hebrew_prober]) - - self.reset() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sjisprober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sjisprober.py deleted file mode 100644 index 9e29623..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sjisprober.py +++ /dev/null @@ -1,92 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .mbcharsetprober import MultiByteCharSetProber -from .codingstatemachine import CodingStateMachine -from .chardistribution import SJISDistributionAnalysis -from .jpcntx import SJISContextAnalysis -from .mbcssm import SJIS_SM_MODEL -from .enums import ProbingState, MachineState - - -class SJISProber(MultiByteCharSetProber): - def __init__(self): - super(SJISProber, self).__init__() - self.coding_sm = CodingStateMachine(SJIS_SM_MODEL) - self.distribution_analyzer = SJISDistributionAnalysis() - self.context_analyzer = SJISContextAnalysis() - self.reset() - - def reset(self): - super(SJISProber, self).reset() - self.context_analyzer.reset() - - @property - def charset_name(self): - return self.context_analyzer.charset_name - - @property - def language(self): - return "Japanese" - - def feed(self, byte_str): - for i in range(len(byte_str)): - coding_state = self.coding_sm.next_state(byte_str[i]) - if coding_state == MachineState.ERROR: - self.logger.debug('%s %s prober hit error at byte %s', - self.charset_name, self.language, i) - self._state = ProbingState.NOT_ME - break - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - break - elif coding_state == MachineState.START: - char_len = self.coding_sm.get_current_charlen() - if i == 0: - self._last_char[1] = byte_str[0] - self.context_analyzer.feed(self._last_char[2 - char_len:], - char_len) - self.distribution_analyzer.feed(self._last_char, char_len) - else: - self.context_analyzer.feed(byte_str[i + 1 - char_len:i + 3 - - char_len], char_len) - self.distribution_analyzer.feed(byte_str[i - 1:i + 1], - char_len) - - self._last_char[0] = byte_str[-1] - - if self.state == ProbingState.DETECTING: - if (self.context_analyzer.got_enough_data() and - (self.get_confidence() > self.SHORTCUT_THRESHOLD)): - self._state = ProbingState.FOUND_IT - - return self.state - - def get_confidence(self): - context_conf = self.context_analyzer.get_confidence() - distrib_conf = self.distribution_analyzer.get_confidence() - return max(context_conf, distrib_conf) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/universaldetector.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/universaldetector.py deleted file mode 100644 index 7b4e92d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/universaldetector.py +++ /dev/null @@ -1,286 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is Mozilla Universal charset detector code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 2001 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# Shy Shalom - original C code -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### -""" -Module containing the UniversalDetector detector class, which is the primary -class a user of ``chardet`` should use. - -:author: Mark Pilgrim (initial port to Python) -:author: Shy Shalom (original C code) -:author: Dan Blanchard (major refactoring for 3.0) -:author: Ian Cordasco -""" - - -import codecs -import logging -import re - -from .charsetgroupprober import CharSetGroupProber -from .enums import InputState, LanguageFilter, ProbingState -from .escprober import EscCharSetProber -from .latin1prober import Latin1Prober -from .mbcsgroupprober import MBCSGroupProber -from .sbcsgroupprober import SBCSGroupProber - - -class UniversalDetector(object): - """ - The ``UniversalDetector`` class underlies the ``chardet.detect`` function - and coordinates all of the different charset probers. - - To get a ``dict`` containing an encoding and its confidence, you can simply - run: - - .. code:: - - u = UniversalDetector() - u.feed(some_bytes) - u.close() - detected = u.result - - """ - - MINIMUM_THRESHOLD = 0.20 - HIGH_BYTE_DETECTOR = re.compile(b'[\x80-\xFF]') - ESC_DETECTOR = re.compile(b'(\033|~{)') - WIN_BYTE_DETECTOR = re.compile(b'[\x80-\x9F]') - ISO_WIN_MAP = {'iso-8859-1': 'Windows-1252', - 'iso-8859-2': 'Windows-1250', - 'iso-8859-5': 'Windows-1251', - 'iso-8859-6': 'Windows-1256', - 'iso-8859-7': 'Windows-1253', - 'iso-8859-8': 'Windows-1255', - 'iso-8859-9': 'Windows-1254', - 'iso-8859-13': 'Windows-1257'} - - def __init__(self, lang_filter=LanguageFilter.ALL): - self._esc_charset_prober = None - self._charset_probers = [] - self.result = None - self.done = None - self._got_data = None - self._input_state = None - self._last_char = None - self.lang_filter = lang_filter - self.logger = logging.getLogger(__name__) - self._has_win_bytes = None - self.reset() - - def reset(self): - """ - Reset the UniversalDetector and all of its probers back to their - initial states. This is called by ``__init__``, so you only need to - call this directly in between analyses of different documents. - """ - self.result = {'encoding': None, 'confidence': 0.0, 'language': None} - self.done = False - self._got_data = False - self._has_win_bytes = False - self._input_state = InputState.PURE_ASCII - self._last_char = b'' - if self._esc_charset_prober: - self._esc_charset_prober.reset() - for prober in self._charset_probers: - prober.reset() - - def feed(self, byte_str): - """ - Takes a chunk of a document and feeds it through all of the relevant - charset probers. - - After calling ``feed``, you can check the value of the ``done`` - attribute to see if you need to continue feeding the - ``UniversalDetector`` more data, or if it has made a prediction - (in the ``result`` attribute). - - .. note:: - You should always call ``close`` when you're done feeding in your - document if ``done`` is not already ``True``. - """ - if self.done: - return - - if not len(byte_str): - return - - if not isinstance(byte_str, bytearray): - byte_str = bytearray(byte_str) - - # First check for known BOMs, since these are guaranteed to be correct - if not self._got_data: - # If the data starts with BOM, we know it is UTF - if byte_str.startswith(codecs.BOM_UTF8): - # EF BB BF UTF-8 with BOM - self.result = {'encoding': "UTF-8-SIG", - 'confidence': 1.0, - 'language': ''} - elif byte_str.startswith((codecs.BOM_UTF32_LE, - codecs.BOM_UTF32_BE)): - # FF FE 00 00 UTF-32, little-endian BOM - # 00 00 FE FF UTF-32, big-endian BOM - self.result = {'encoding': "UTF-32", - 'confidence': 1.0, - 'language': ''} - elif byte_str.startswith(b'\xFE\xFF\x00\x00'): - # FE FF 00 00 UCS-4, unusual octet order BOM (3412) - self.result = {'encoding': "X-ISO-10646-UCS-4-3412", - 'confidence': 1.0, - 'language': ''} - elif byte_str.startswith(b'\x00\x00\xFF\xFE'): - # 00 00 FF FE UCS-4, unusual octet order BOM (2143) - self.result = {'encoding': "X-ISO-10646-UCS-4-2143", - 'confidence': 1.0, - 'language': ''} - elif byte_str.startswith((codecs.BOM_LE, codecs.BOM_BE)): - # FF FE UTF-16, little endian BOM - # FE FF UTF-16, big endian BOM - self.result = {'encoding': "UTF-16", - 'confidence': 1.0, - 'language': ''} - - self._got_data = True - if self.result['encoding'] is not None: - self.done = True - return - - # If none of those matched and we've only see ASCII so far, check - # for high bytes and escape sequences - if self._input_state == InputState.PURE_ASCII: - if self.HIGH_BYTE_DETECTOR.search(byte_str): - self._input_state = InputState.HIGH_BYTE - elif self._input_state == InputState.PURE_ASCII and \ - self.ESC_DETECTOR.search(self._last_char + byte_str): - self._input_state = InputState.ESC_ASCII - - self._last_char = byte_str[-1:] - - # If we've seen escape sequences, use the EscCharSetProber, which - # uses a simple state machine to check for known escape sequences in - # HZ and ISO-2022 encodings, since those are the only encodings that - # use such sequences. - if self._input_state == InputState.ESC_ASCII: - if not self._esc_charset_prober: - self._esc_charset_prober = EscCharSetProber(self.lang_filter) - if self._esc_charset_prober.feed(byte_str) == ProbingState.FOUND_IT: - self.result = {'encoding': - self._esc_charset_prober.charset_name, - 'confidence': - self._esc_charset_prober.get_confidence(), - 'language': - self._esc_charset_prober.language} - self.done = True - # If we've seen high bytes (i.e., those with values greater than 127), - # we need to do more complicated checks using all our multi-byte and - # single-byte probers that are left. The single-byte probers - # use character bigram distributions to determine the encoding, whereas - # the multi-byte probers use a combination of character unigram and - # bigram distributions. - elif self._input_state == InputState.HIGH_BYTE: - if not self._charset_probers: - self._charset_probers = [MBCSGroupProber(self.lang_filter)] - # If we're checking non-CJK encodings, use single-byte prober - if self.lang_filter & LanguageFilter.NON_CJK: - self._charset_probers.append(SBCSGroupProber()) - self._charset_probers.append(Latin1Prober()) - for prober in self._charset_probers: - if prober.feed(byte_str) == ProbingState.FOUND_IT: - self.result = {'encoding': prober.charset_name, - 'confidence': prober.get_confidence(), - 'language': prober.language} - self.done = True - break - if self.WIN_BYTE_DETECTOR.search(byte_str): - self._has_win_bytes = True - - def close(self): - """ - Stop analyzing the current document and come up with a final - prediction. - - :returns: The ``result`` attribute, a ``dict`` with the keys - `encoding`, `confidence`, and `language`. - """ - # Don't bother with checks if we're already done - if self.done: - return self.result - self.done = True - - if not self._got_data: - self.logger.debug('no data received!') - - # Default to ASCII if it is all we've seen so far - elif self._input_state == InputState.PURE_ASCII: - self.result = {'encoding': 'ascii', - 'confidence': 1.0, - 'language': ''} - - # If we have seen non-ASCII, return the best that met MINIMUM_THRESHOLD - elif self._input_state == InputState.HIGH_BYTE: - prober_confidence = None - max_prober_confidence = 0.0 - max_prober = None - for prober in self._charset_probers: - if not prober: - continue - prober_confidence = prober.get_confidence() - if prober_confidence > max_prober_confidence: - max_prober_confidence = prober_confidence - max_prober = prober - if max_prober and (max_prober_confidence > self.MINIMUM_THRESHOLD): - charset_name = max_prober.charset_name - lower_charset_name = max_prober.charset_name.lower() - confidence = max_prober.get_confidence() - # Use Windows encoding name instead of ISO-8859 if we saw any - # extra Windows-specific bytes - if lower_charset_name.startswith('iso-8859'): - if self._has_win_bytes: - charset_name = self.ISO_WIN_MAP.get(lower_charset_name, - charset_name) - self.result = {'encoding': charset_name, - 'confidence': confidence, - 'language': max_prober.language} - - # Log all prober confidences if none met MINIMUM_THRESHOLD - if self.logger.getEffectiveLevel() == logging.DEBUG: - if self.result['encoding'] is None: - self.logger.debug('no probers hit minimum threshold') - for group_prober in self._charset_probers: - if not group_prober: - continue - if isinstance(group_prober, CharSetGroupProber): - for prober in group_prober.probers: - self.logger.debug('%s %s confidence = %s', - prober.charset_name, - prober.language, - prober.get_confidence()) - else: - self.logger.debug('%s %s confidence = %s', - prober.charset_name, - prober.language, - prober.get_confidence()) - return self.result diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/utf8prober.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/utf8prober.py deleted file mode 100644 index 6c3196c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/utf8prober.py +++ /dev/null @@ -1,82 +0,0 @@ -######################## BEGIN LICENSE BLOCK ######################## -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Mark Pilgrim - port to Python -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -# 02110-1301 USA -######################### END LICENSE BLOCK ######################### - -from .charsetprober import CharSetProber -from .enums import ProbingState, MachineState -from .codingstatemachine import CodingStateMachine -from .mbcssm import UTF8_SM_MODEL - - - -class UTF8Prober(CharSetProber): - ONE_CHAR_PROB = 0.5 - - def __init__(self): - super(UTF8Prober, self).__init__() - self.coding_sm = CodingStateMachine(UTF8_SM_MODEL) - self._num_mb_chars = None - self.reset() - - def reset(self): - super(UTF8Prober, self).reset() - self.coding_sm.reset() - self._num_mb_chars = 0 - - @property - def charset_name(self): - return "utf-8" - - @property - def language(self): - return "" - - def feed(self, byte_str): - for c in byte_str: - coding_state = self.coding_sm.next_state(c) - if coding_state == MachineState.ERROR: - self._state = ProbingState.NOT_ME - break - elif coding_state == MachineState.ITS_ME: - self._state = ProbingState.FOUND_IT - break - elif coding_state == MachineState.START: - if self.coding_sm.get_current_charlen() >= 2: - self._num_mb_chars += 1 - - if self.state == ProbingState.DETECTING: - if self.get_confidence() > self.SHORTCUT_THRESHOLD: - self._state = ProbingState.FOUND_IT - - return self.state - - def get_confidence(self): - unlike = 0.99 - if self._num_mb_chars < 6: - unlike *= self.ONE_CHAR_PROB ** self._num_mb_chars - return 1.0 - unlike - else: - return unlike diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/version.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/version.py deleted file mode 100644 index bb2a34a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/version.py +++ /dev/null @@ -1,9 +0,0 @@ -""" -This module exists only to simplify retrieving the version number of chardet -from within setup.py and from chardet subpackages. - -:author: Dan Blanchard (dan.blanchard@gmail.com) -""" - -__version__ = "3.0.4" -VERSION = __version__.split('.') diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/__init__.py deleted file mode 100644 index 2a3bf47..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -from .initialise import init, deinit, reinit, colorama_text -from .ansi import Fore, Back, Style, Cursor -from .ansitowin32 import AnsiToWin32 - -__version__ = '0.4.1' diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansi.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansi.py deleted file mode 100644 index 7877658..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansi.py +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -''' -This module generates ANSI character codes to printing colors to terminals. -See: http://en.wikipedia.org/wiki/ANSI_escape_code -''' - -CSI = '\033[' -OSC = '\033]' -BEL = '\007' - - -def code_to_chars(code): - return CSI + str(code) + 'm' - -def set_title(title): - return OSC + '2;' + title + BEL - -def clear_screen(mode=2): - return CSI + str(mode) + 'J' - -def clear_line(mode=2): - return CSI + str(mode) + 'K' - - -class AnsiCodes(object): - def __init__(self): - # the subclasses declare class attributes which are numbers. - # Upon instantiation we define instance attributes, which are the same - # as the class attributes but wrapped with the ANSI escape sequence - for name in dir(self): - if not name.startswith('_'): - value = getattr(self, name) - setattr(self, name, code_to_chars(value)) - - -class AnsiCursor(object): - def UP(self, n=1): - return CSI + str(n) + 'A' - def DOWN(self, n=1): - return CSI + str(n) + 'B' - def FORWARD(self, n=1): - return CSI + str(n) + 'C' - def BACK(self, n=1): - return CSI + str(n) + 'D' - def POS(self, x=1, y=1): - return CSI + str(y) + ';' + str(x) + 'H' - - -class AnsiFore(AnsiCodes): - BLACK = 30 - RED = 31 - GREEN = 32 - YELLOW = 33 - BLUE = 34 - MAGENTA = 35 - CYAN = 36 - WHITE = 37 - RESET = 39 - - # These are fairly well supported, but not part of the standard. - LIGHTBLACK_EX = 90 - LIGHTRED_EX = 91 - LIGHTGREEN_EX = 92 - LIGHTYELLOW_EX = 93 - LIGHTBLUE_EX = 94 - LIGHTMAGENTA_EX = 95 - LIGHTCYAN_EX = 96 - LIGHTWHITE_EX = 97 - - -class AnsiBack(AnsiCodes): - BLACK = 40 - RED = 41 - GREEN = 42 - YELLOW = 43 - BLUE = 44 - MAGENTA = 45 - CYAN = 46 - WHITE = 47 - RESET = 49 - - # These are fairly well supported, but not part of the standard. - LIGHTBLACK_EX = 100 - LIGHTRED_EX = 101 - LIGHTGREEN_EX = 102 - LIGHTYELLOW_EX = 103 - LIGHTBLUE_EX = 104 - LIGHTMAGENTA_EX = 105 - LIGHTCYAN_EX = 106 - LIGHTWHITE_EX = 107 - - -class AnsiStyle(AnsiCodes): - BRIGHT = 1 - DIM = 2 - NORMAL = 22 - RESET_ALL = 0 - -Fore = AnsiFore() -Back = AnsiBack() -Style = AnsiStyle() -Cursor = AnsiCursor() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansitowin32.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansitowin32.py deleted file mode 100644 index 359c92b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansitowin32.py +++ /dev/null @@ -1,257 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -import re -import sys -import os - -from .ansi import AnsiFore, AnsiBack, AnsiStyle, Style -from .winterm import WinTerm, WinColor, WinStyle -from .win32 import windll, winapi_test - - -winterm = None -if windll is not None: - winterm = WinTerm() - - -class StreamWrapper(object): - ''' - Wraps a stream (such as stdout), acting as a transparent proxy for all - attribute access apart from method 'write()', which is delegated to our - Converter instance. - ''' - def __init__(self, wrapped, converter): - # double-underscore everything to prevent clashes with names of - # attributes on the wrapped stream object. - self.__wrapped = wrapped - self.__convertor = converter - - def __getattr__(self, name): - return getattr(self.__wrapped, name) - - def __enter__(self, *args, **kwargs): - # special method lookup bypasses __getattr__/__getattribute__, see - # https://stackoverflow.com/questions/12632894/why-doesnt-getattr-work-with-exit - # thus, contextlib magic methods are not proxied via __getattr__ - return self.__wrapped.__enter__(*args, **kwargs) - - def __exit__(self, *args, **kwargs): - return self.__wrapped.__exit__(*args, **kwargs) - - def write(self, text): - self.__convertor.write(text) - - def isatty(self): - stream = self.__wrapped - if 'PYCHARM_HOSTED' in os.environ: - if stream is not None and (stream is sys.__stdout__ or stream is sys.__stderr__): - return True - try: - stream_isatty = stream.isatty - except AttributeError: - return False - else: - return stream_isatty() - - @property - def closed(self): - stream = self.__wrapped - try: - return stream.closed - except AttributeError: - return True - - -class AnsiToWin32(object): - ''' - Implements a 'write()' method which, on Windows, will strip ANSI character - sequences from the text, and if outputting to a tty, will convert them into - win32 function calls. - ''' - ANSI_CSI_RE = re.compile('\001?\033\\[((?:\\d|;)*)([a-zA-Z])\002?') # Control Sequence Introducer - ANSI_OSC_RE = re.compile('\001?\033\\]((?:.|;)*?)(\x07)\002?') # Operating System Command - - def __init__(self, wrapped, convert=None, strip=None, autoreset=False): - # The wrapped stream (normally sys.stdout or sys.stderr) - self.wrapped = wrapped - - # should we reset colors to defaults after every .write() - self.autoreset = autoreset - - # create the proxy wrapping our output stream - self.stream = StreamWrapper(wrapped, self) - - on_windows = os.name == 'nt' - # We test if the WinAPI works, because even if we are on Windows - # we may be using a terminal that doesn't support the WinAPI - # (e.g. Cygwin Terminal). In this case it's up to the terminal - # to support the ANSI codes. - conversion_supported = on_windows and winapi_test() - - # should we strip ANSI sequences from our output? - if strip is None: - strip = conversion_supported or (not self.stream.closed and not self.stream.isatty()) - self.strip = strip - - # should we should convert ANSI sequences into win32 calls? - if convert is None: - convert = conversion_supported and not self.stream.closed and self.stream.isatty() - self.convert = convert - - # dict of ansi codes to win32 functions and parameters - self.win32_calls = self.get_win32_calls() - - # are we wrapping stderr? - self.on_stderr = self.wrapped is sys.stderr - - def should_wrap(self): - ''' - True if this class is actually needed. If false, then the output - stream will not be affected, nor will win32 calls be issued, so - wrapping stdout is not actually required. This will generally be - False on non-Windows platforms, unless optional functionality like - autoreset has been requested using kwargs to init() - ''' - return self.convert or self.strip or self.autoreset - - def get_win32_calls(self): - if self.convert and winterm: - return { - AnsiStyle.RESET_ALL: (winterm.reset_all, ), - AnsiStyle.BRIGHT: (winterm.style, WinStyle.BRIGHT), - AnsiStyle.DIM: (winterm.style, WinStyle.NORMAL), - AnsiStyle.NORMAL: (winterm.style, WinStyle.NORMAL), - AnsiFore.BLACK: (winterm.fore, WinColor.BLACK), - AnsiFore.RED: (winterm.fore, WinColor.RED), - AnsiFore.GREEN: (winterm.fore, WinColor.GREEN), - AnsiFore.YELLOW: (winterm.fore, WinColor.YELLOW), - AnsiFore.BLUE: (winterm.fore, WinColor.BLUE), - AnsiFore.MAGENTA: (winterm.fore, WinColor.MAGENTA), - AnsiFore.CYAN: (winterm.fore, WinColor.CYAN), - AnsiFore.WHITE: (winterm.fore, WinColor.GREY), - AnsiFore.RESET: (winterm.fore, ), - AnsiFore.LIGHTBLACK_EX: (winterm.fore, WinColor.BLACK, True), - AnsiFore.LIGHTRED_EX: (winterm.fore, WinColor.RED, True), - AnsiFore.LIGHTGREEN_EX: (winterm.fore, WinColor.GREEN, True), - AnsiFore.LIGHTYELLOW_EX: (winterm.fore, WinColor.YELLOW, True), - AnsiFore.LIGHTBLUE_EX: (winterm.fore, WinColor.BLUE, True), - AnsiFore.LIGHTMAGENTA_EX: (winterm.fore, WinColor.MAGENTA, True), - AnsiFore.LIGHTCYAN_EX: (winterm.fore, WinColor.CYAN, True), - AnsiFore.LIGHTWHITE_EX: (winterm.fore, WinColor.GREY, True), - AnsiBack.BLACK: (winterm.back, WinColor.BLACK), - AnsiBack.RED: (winterm.back, WinColor.RED), - AnsiBack.GREEN: (winterm.back, WinColor.GREEN), - AnsiBack.YELLOW: (winterm.back, WinColor.YELLOW), - AnsiBack.BLUE: (winterm.back, WinColor.BLUE), - AnsiBack.MAGENTA: (winterm.back, WinColor.MAGENTA), - AnsiBack.CYAN: (winterm.back, WinColor.CYAN), - AnsiBack.WHITE: (winterm.back, WinColor.GREY), - AnsiBack.RESET: (winterm.back, ), - AnsiBack.LIGHTBLACK_EX: (winterm.back, WinColor.BLACK, True), - AnsiBack.LIGHTRED_EX: (winterm.back, WinColor.RED, True), - AnsiBack.LIGHTGREEN_EX: (winterm.back, WinColor.GREEN, True), - AnsiBack.LIGHTYELLOW_EX: (winterm.back, WinColor.YELLOW, True), - AnsiBack.LIGHTBLUE_EX: (winterm.back, WinColor.BLUE, True), - AnsiBack.LIGHTMAGENTA_EX: (winterm.back, WinColor.MAGENTA, True), - AnsiBack.LIGHTCYAN_EX: (winterm.back, WinColor.CYAN, True), - AnsiBack.LIGHTWHITE_EX: (winterm.back, WinColor.GREY, True), - } - return dict() - - def write(self, text): - if self.strip or self.convert: - self.write_and_convert(text) - else: - self.wrapped.write(text) - self.wrapped.flush() - if self.autoreset: - self.reset_all() - - - def reset_all(self): - if self.convert: - self.call_win32('m', (0,)) - elif not self.strip and not self.stream.closed: - self.wrapped.write(Style.RESET_ALL) - - - def write_and_convert(self, text): - ''' - Write the given text to our wrapped stream, stripping any ANSI - sequences from the text, and optionally converting them into win32 - calls. - ''' - cursor = 0 - text = self.convert_osc(text) - for match in self.ANSI_CSI_RE.finditer(text): - start, end = match.span() - self.write_plain_text(text, cursor, start) - self.convert_ansi(*match.groups()) - cursor = end - self.write_plain_text(text, cursor, len(text)) - - - def write_plain_text(self, text, start, end): - if start < end: - self.wrapped.write(text[start:end]) - self.wrapped.flush() - - - def convert_ansi(self, paramstring, command): - if self.convert: - params = self.extract_params(command, paramstring) - self.call_win32(command, params) - - - def extract_params(self, command, paramstring): - if command in 'Hf': - params = tuple(int(p) if len(p) != 0 else 1 for p in paramstring.split(';')) - while len(params) < 2: - # defaults: - params = params + (1,) - else: - params = tuple(int(p) for p in paramstring.split(';') if len(p) != 0) - if len(params) == 0: - # defaults: - if command in 'JKm': - params = (0,) - elif command in 'ABCD': - params = (1,) - - return params - - - def call_win32(self, command, params): - if command == 'm': - for param in params: - if param in self.win32_calls: - func_args = self.win32_calls[param] - func = func_args[0] - args = func_args[1:] - kwargs = dict(on_stderr=self.on_stderr) - func(*args, **kwargs) - elif command in 'J': - winterm.erase_screen(params[0], on_stderr=self.on_stderr) - elif command in 'K': - winterm.erase_line(params[0], on_stderr=self.on_stderr) - elif command in 'Hf': # cursor position - absolute - winterm.set_cursor_position(params, on_stderr=self.on_stderr) - elif command in 'ABCD': # cursor position - relative - n = params[0] - # A - up, B - down, C - forward, D - back - x, y = {'A': (0, -n), 'B': (0, n), 'C': (n, 0), 'D': (-n, 0)}[command] - winterm.cursor_adjust(x, y, on_stderr=self.on_stderr) - - - def convert_osc(self, text): - for match in self.ANSI_OSC_RE.finditer(text): - start, end = match.span() - text = text[:start] + text[end:] - paramstring, command = match.groups() - if command in '\x07': # \x07 = BEL - params = paramstring.split(";") - # 0 - change title and icon (we will only change title) - # 1 - change icon (we don't support this) - # 2 - change title - if params[0] in '02': - winterm.set_title(params[1]) - return text diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/initialise.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/initialise.py deleted file mode 100644 index 430d066..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/initialise.py +++ /dev/null @@ -1,80 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -import atexit -import contextlib -import sys - -from .ansitowin32 import AnsiToWin32 - - -orig_stdout = None -orig_stderr = None - -wrapped_stdout = None -wrapped_stderr = None - -atexit_done = False - - -def reset_all(): - if AnsiToWin32 is not None: # Issue #74: objects might become None at exit - AnsiToWin32(orig_stdout).reset_all() - - -def init(autoreset=False, convert=None, strip=None, wrap=True): - - if not wrap and any([autoreset, convert, strip]): - raise ValueError('wrap=False conflicts with any other arg=True') - - global wrapped_stdout, wrapped_stderr - global orig_stdout, orig_stderr - - orig_stdout = sys.stdout - orig_stderr = sys.stderr - - if sys.stdout is None: - wrapped_stdout = None - else: - sys.stdout = wrapped_stdout = \ - wrap_stream(orig_stdout, convert, strip, autoreset, wrap) - if sys.stderr is None: - wrapped_stderr = None - else: - sys.stderr = wrapped_stderr = \ - wrap_stream(orig_stderr, convert, strip, autoreset, wrap) - - global atexit_done - if not atexit_done: - atexit.register(reset_all) - atexit_done = True - - -def deinit(): - if orig_stdout is not None: - sys.stdout = orig_stdout - if orig_stderr is not None: - sys.stderr = orig_stderr - - -@contextlib.contextmanager -def colorama_text(*args, **kwargs): - init(*args, **kwargs) - try: - yield - finally: - deinit() - - -def reinit(): - if wrapped_stdout is not None: - sys.stdout = wrapped_stdout - if wrapped_stderr is not None: - sys.stderr = wrapped_stderr - - -def wrap_stream(stream, convert, strip, autoreset, wrap): - if wrap: - wrapper = AnsiToWin32(stream, - convert=convert, strip=strip, autoreset=autoreset) - if wrapper.should_wrap(): - stream = wrapper.stream - return stream diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/win32.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/win32.py deleted file mode 100644 index c2d8360..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/win32.py +++ /dev/null @@ -1,152 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. - -# from winbase.h -STDOUT = -11 -STDERR = -12 - -try: - import ctypes - from ctypes import LibraryLoader - windll = LibraryLoader(ctypes.WinDLL) - from ctypes import wintypes -except (AttributeError, ImportError): - windll = None - SetConsoleTextAttribute = lambda *_: None - winapi_test = lambda *_: None -else: - from ctypes import byref, Structure, c_char, POINTER - - COORD = wintypes._COORD - - class CONSOLE_SCREEN_BUFFER_INFO(Structure): - """struct in wincon.h.""" - _fields_ = [ - ("dwSize", COORD), - ("dwCursorPosition", COORD), - ("wAttributes", wintypes.WORD), - ("srWindow", wintypes.SMALL_RECT), - ("dwMaximumWindowSize", COORD), - ] - def __str__(self): - return '(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)' % ( - self.dwSize.Y, self.dwSize.X - , self.dwCursorPosition.Y, self.dwCursorPosition.X - , self.wAttributes - , self.srWindow.Top, self.srWindow.Left, self.srWindow.Bottom, self.srWindow.Right - , self.dwMaximumWindowSize.Y, self.dwMaximumWindowSize.X - ) - - _GetStdHandle = windll.kernel32.GetStdHandle - _GetStdHandle.argtypes = [ - wintypes.DWORD, - ] - _GetStdHandle.restype = wintypes.HANDLE - - _GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo - _GetConsoleScreenBufferInfo.argtypes = [ - wintypes.HANDLE, - POINTER(CONSOLE_SCREEN_BUFFER_INFO), - ] - _GetConsoleScreenBufferInfo.restype = wintypes.BOOL - - _SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute - _SetConsoleTextAttribute.argtypes = [ - wintypes.HANDLE, - wintypes.WORD, - ] - _SetConsoleTextAttribute.restype = wintypes.BOOL - - _SetConsoleCursorPosition = windll.kernel32.SetConsoleCursorPosition - _SetConsoleCursorPosition.argtypes = [ - wintypes.HANDLE, - COORD, - ] - _SetConsoleCursorPosition.restype = wintypes.BOOL - - _FillConsoleOutputCharacterA = windll.kernel32.FillConsoleOutputCharacterA - _FillConsoleOutputCharacterA.argtypes = [ - wintypes.HANDLE, - c_char, - wintypes.DWORD, - COORD, - POINTER(wintypes.DWORD), - ] - _FillConsoleOutputCharacterA.restype = wintypes.BOOL - - _FillConsoleOutputAttribute = windll.kernel32.FillConsoleOutputAttribute - _FillConsoleOutputAttribute.argtypes = [ - wintypes.HANDLE, - wintypes.WORD, - wintypes.DWORD, - COORD, - POINTER(wintypes.DWORD), - ] - _FillConsoleOutputAttribute.restype = wintypes.BOOL - - _SetConsoleTitleW = windll.kernel32.SetConsoleTitleW - _SetConsoleTitleW.argtypes = [ - wintypes.LPCWSTR - ] - _SetConsoleTitleW.restype = wintypes.BOOL - - def _winapi_test(handle): - csbi = CONSOLE_SCREEN_BUFFER_INFO() - success = _GetConsoleScreenBufferInfo( - handle, byref(csbi)) - return bool(success) - - def winapi_test(): - return any(_winapi_test(h) for h in - (_GetStdHandle(STDOUT), _GetStdHandle(STDERR))) - - def GetConsoleScreenBufferInfo(stream_id=STDOUT): - handle = _GetStdHandle(stream_id) - csbi = CONSOLE_SCREEN_BUFFER_INFO() - success = _GetConsoleScreenBufferInfo( - handle, byref(csbi)) - return csbi - - def SetConsoleTextAttribute(stream_id, attrs): - handle = _GetStdHandle(stream_id) - return _SetConsoleTextAttribute(handle, attrs) - - def SetConsoleCursorPosition(stream_id, position, adjust=True): - position = COORD(*position) - # If the position is out of range, do nothing. - if position.Y <= 0 or position.X <= 0: - return - # Adjust for Windows' SetConsoleCursorPosition: - # 1. being 0-based, while ANSI is 1-based. - # 2. expecting (x,y), while ANSI uses (y,x). - adjusted_position = COORD(position.Y - 1, position.X - 1) - if adjust: - # Adjust for viewport's scroll position - sr = GetConsoleScreenBufferInfo(STDOUT).srWindow - adjusted_position.Y += sr.Top - adjusted_position.X += sr.Left - # Resume normal processing - handle = _GetStdHandle(stream_id) - return _SetConsoleCursorPosition(handle, adjusted_position) - - def FillConsoleOutputCharacter(stream_id, char, length, start): - handle = _GetStdHandle(stream_id) - char = c_char(char.encode()) - length = wintypes.DWORD(length) - num_written = wintypes.DWORD(0) - # Note that this is hard-coded for ANSI (vs wide) bytes. - success = _FillConsoleOutputCharacterA( - handle, char, length, start, byref(num_written)) - return num_written.value - - def FillConsoleOutputAttribute(stream_id, attr, length, start): - ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )''' - handle = _GetStdHandle(stream_id) - attribute = wintypes.WORD(attr) - length = wintypes.DWORD(length) - num_written = wintypes.DWORD(0) - # Note that this is hard-coded for ANSI (vs wide) bytes. - return _FillConsoleOutputAttribute( - handle, attribute, length, start, byref(num_written)) - - def SetConsoleTitle(title): - return _SetConsoleTitleW(title) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/winterm.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/winterm.py deleted file mode 100644 index 0fdb4ec..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/winterm.py +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. -from . import win32 - - -# from wincon.h -class WinColor(object): - BLACK = 0 - BLUE = 1 - GREEN = 2 - CYAN = 3 - RED = 4 - MAGENTA = 5 - YELLOW = 6 - GREY = 7 - -# from wincon.h -class WinStyle(object): - NORMAL = 0x00 # dim text, dim background - BRIGHT = 0x08 # bright text, dim background - BRIGHT_BACKGROUND = 0x80 # dim text, bright background - -class WinTerm(object): - - def __init__(self): - self._default = win32.GetConsoleScreenBufferInfo(win32.STDOUT).wAttributes - self.set_attrs(self._default) - self._default_fore = self._fore - self._default_back = self._back - self._default_style = self._style - # In order to emulate LIGHT_EX in windows, we borrow the BRIGHT style. - # So that LIGHT_EX colors and BRIGHT style do not clobber each other, - # we track them separately, since LIGHT_EX is overwritten by Fore/Back - # and BRIGHT is overwritten by Style codes. - self._light = 0 - - def get_attrs(self): - return self._fore + self._back * 16 + (self._style | self._light) - - def set_attrs(self, value): - self._fore = value & 7 - self._back = (value >> 4) & 7 - self._style = value & (WinStyle.BRIGHT | WinStyle.BRIGHT_BACKGROUND) - - def reset_all(self, on_stderr=None): - self.set_attrs(self._default) - self.set_console(attrs=self._default) - self._light = 0 - - def fore(self, fore=None, light=False, on_stderr=False): - if fore is None: - fore = self._default_fore - self._fore = fore - # Emulate LIGHT_EX with BRIGHT Style - if light: - self._light |= WinStyle.BRIGHT - else: - self._light &= ~WinStyle.BRIGHT - self.set_console(on_stderr=on_stderr) - - def back(self, back=None, light=False, on_stderr=False): - if back is None: - back = self._default_back - self._back = back - # Emulate LIGHT_EX with BRIGHT_BACKGROUND Style - if light: - self._light |= WinStyle.BRIGHT_BACKGROUND - else: - self._light &= ~WinStyle.BRIGHT_BACKGROUND - self.set_console(on_stderr=on_stderr) - - def style(self, style=None, on_stderr=False): - if style is None: - style = self._default_style - self._style = style - self.set_console(on_stderr=on_stderr) - - def set_console(self, attrs=None, on_stderr=False): - if attrs is None: - attrs = self.get_attrs() - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - win32.SetConsoleTextAttribute(handle, attrs) - - def get_position(self, handle): - position = win32.GetConsoleScreenBufferInfo(handle).dwCursorPosition - # Because Windows coordinates are 0-based, - # and win32.SetConsoleCursorPosition expects 1-based. - position.X += 1 - position.Y += 1 - return position - - def set_cursor_position(self, position=None, on_stderr=False): - if position is None: - # I'm not currently tracking the position, so there is no default. - # position = self.get_position() - return - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - win32.SetConsoleCursorPosition(handle, position) - - def cursor_adjust(self, x, y, on_stderr=False): - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - position = self.get_position(handle) - adjusted_position = (position.Y + y, position.X + x) - win32.SetConsoleCursorPosition(handle, adjusted_position, adjust=False) - - def erase_screen(self, mode=0, on_stderr=False): - # 0 should clear from the cursor to the end of the screen. - # 1 should clear from the cursor to the beginning of the screen. - # 2 should clear the entire screen, and move cursor to (1,1) - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - csbi = win32.GetConsoleScreenBufferInfo(handle) - # get the number of character cells in the current buffer - cells_in_screen = csbi.dwSize.X * csbi.dwSize.Y - # get number of character cells before current cursor position - cells_before_cursor = csbi.dwSize.X * csbi.dwCursorPosition.Y + csbi.dwCursorPosition.X - if mode == 0: - from_coord = csbi.dwCursorPosition - cells_to_erase = cells_in_screen - cells_before_cursor - elif mode == 1: - from_coord = win32.COORD(0, 0) - cells_to_erase = cells_before_cursor - elif mode == 2: - from_coord = win32.COORD(0, 0) - cells_to_erase = cells_in_screen - else: - # invalid mode - return - # fill the entire screen with blanks - win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) - # now set the buffer's attributes accordingly - win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) - if mode == 2: - # put the cursor where needed - win32.SetConsoleCursorPosition(handle, (1, 1)) - - def erase_line(self, mode=0, on_stderr=False): - # 0 should clear from the cursor to the end of the line. - # 1 should clear from the cursor to the beginning of the line. - # 2 should clear the entire line. - handle = win32.STDOUT - if on_stderr: - handle = win32.STDERR - csbi = win32.GetConsoleScreenBufferInfo(handle) - if mode == 0: - from_coord = csbi.dwCursorPosition - cells_to_erase = csbi.dwSize.X - csbi.dwCursorPosition.X - elif mode == 1: - from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) - cells_to_erase = csbi.dwCursorPosition.X - elif mode == 2: - from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) - cells_to_erase = csbi.dwSize.X - else: - # invalid mode - return - # fill the entire screen with blanks - win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) - # now set the buffer's attributes accordingly - win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) - - def set_title(self, title): - win32.SetConsoleTitle(title) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/__init__.py deleted file mode 100644 index a786b4d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2017 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -import logging - -__version__ = '0.2.8' - -class DistlibException(Exception): - pass - -try: - from logging import NullHandler -except ImportError: # pragma: no cover - class NullHandler(logging.Handler): - def handle(self, record): pass - def emit(self, record): pass - def createLock(self): self.lock = None - -logger = logging.getLogger(__name__) -logger.addHandler(NullHandler()) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/__init__.py deleted file mode 100644 index f7dbf4c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -"""Modules copied from Python 3 standard libraries, for internal use only. - -Individual classes and functions are found in d2._backport.misc. Intended -usage is to always import things missing from 3.1 from that module: the -built-in/stdlib objects will be used if found. -""" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/misc.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/misc.py deleted file mode 100644 index cfb318d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/misc.py +++ /dev/null @@ -1,41 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Backports for individual classes and functions.""" - -import os -import sys - -__all__ = ['cache_from_source', 'callable', 'fsencode'] - - -try: - from imp import cache_from_source -except ImportError: - def cache_from_source(py_file, debug=__debug__): - ext = debug and 'c' or 'o' - return py_file + ext - - -try: - callable = callable -except NameError: - from collections import Callable - - def callable(obj): - return isinstance(obj, Callable) - - -try: - fsencode = os.fsencode -except AttributeError: - def fsencode(filename): - if isinstance(filename, bytes): - return filename - elif isinstance(filename, str): - return filename.encode(sys.getfilesystemencoding()) - else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/shutil.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/shutil.py deleted file mode 100644 index 159e49e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/shutil.py +++ /dev/null @@ -1,761 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Utility functions for copying and archiving files and directory trees. - -XXX The functions here don't copy the resource fork or other metadata on Mac. - -""" - -import os -import sys -import stat -from os.path import abspath -import fnmatch -import collections -import errno -from . import tarfile - -try: - import bz2 - _BZ2_SUPPORTED = True -except ImportError: - _BZ2_SUPPORTED = False - -try: - from pwd import getpwnam -except ImportError: - getpwnam = None - -try: - from grp import getgrnam -except ImportError: - getgrnam = None - -__all__ = ["copyfileobj", "copyfile", "copymode", "copystat", "copy", "copy2", - "copytree", "move", "rmtree", "Error", "SpecialFileError", - "ExecError", "make_archive", "get_archive_formats", - "register_archive_format", "unregister_archive_format", - "get_unpack_formats", "register_unpack_format", - "unregister_unpack_format", "unpack_archive", "ignore_patterns"] - -class Error(EnvironmentError): - pass - -class SpecialFileError(EnvironmentError): - """Raised when trying to do a kind of operation (e.g. copying) which is - not supported on a special file (e.g. a named pipe)""" - -class ExecError(EnvironmentError): - """Raised when a command could not be executed""" - -class ReadError(EnvironmentError): - """Raised when an archive cannot be read""" - -class RegistryError(Exception): - """Raised when a registry operation with the archiving - and unpacking registries fails""" - - -try: - WindowsError -except NameError: - WindowsError = None - -def copyfileobj(fsrc, fdst, length=16*1024): - """copy data from file-like object fsrc to file-like object fdst""" - while 1: - buf = fsrc.read(length) - if not buf: - break - fdst.write(buf) - -def _samefile(src, dst): - # Macintosh, Unix. - if hasattr(os.path, 'samefile'): - try: - return os.path.samefile(src, dst) - except OSError: - return False - - # All other platforms: check for same pathname. - return (os.path.normcase(os.path.abspath(src)) == - os.path.normcase(os.path.abspath(dst))) - -def copyfile(src, dst): - """Copy data from src to dst""" - if _samefile(src, dst): - raise Error("`%s` and `%s` are the same file" % (src, dst)) - - for fn in [src, dst]: - try: - st = os.stat(fn) - except OSError: - # File most likely does not exist - pass - else: - # XXX What about other special files? (sockets, devices...) - if stat.S_ISFIFO(st.st_mode): - raise SpecialFileError("`%s` is a named pipe" % fn) - - with open(src, 'rb') as fsrc: - with open(dst, 'wb') as fdst: - copyfileobj(fsrc, fdst) - -def copymode(src, dst): - """Copy mode bits from src to dst""" - if hasattr(os, 'chmod'): - st = os.stat(src) - mode = stat.S_IMODE(st.st_mode) - os.chmod(dst, mode) - -def copystat(src, dst): - """Copy all stat info (mode bits, atime, mtime, flags) from src to dst""" - st = os.stat(src) - mode = stat.S_IMODE(st.st_mode) - if hasattr(os, 'utime'): - os.utime(dst, (st.st_atime, st.st_mtime)) - if hasattr(os, 'chmod'): - os.chmod(dst, mode) - if hasattr(os, 'chflags') and hasattr(st, 'st_flags'): - try: - os.chflags(dst, st.st_flags) - except OSError as why: - if (not hasattr(errno, 'EOPNOTSUPP') or - why.errno != errno.EOPNOTSUPP): - raise - -def copy(src, dst): - """Copy data and mode bits ("cp src dst"). - - The destination may be a directory. - - """ - if os.path.isdir(dst): - dst = os.path.join(dst, os.path.basename(src)) - copyfile(src, dst) - copymode(src, dst) - -def copy2(src, dst): - """Copy data and all stat info ("cp -p src dst"). - - The destination may be a directory. - - """ - if os.path.isdir(dst): - dst = os.path.join(dst, os.path.basename(src)) - copyfile(src, dst) - copystat(src, dst) - -def ignore_patterns(*patterns): - """Function that can be used as copytree() ignore parameter. - - Patterns is a sequence of glob-style patterns - that are used to exclude files""" - def _ignore_patterns(path, names): - ignored_names = [] - for pattern in patterns: - ignored_names.extend(fnmatch.filter(names, pattern)) - return set(ignored_names) - return _ignore_patterns - -def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, - ignore_dangling_symlinks=False): - """Recursively copy a directory tree. - - The destination directory must not already exist. - If exception(s) occur, an Error is raised with a list of reasons. - - If the optional symlinks flag is true, symbolic links in the - source tree result in symbolic links in the destination tree; if - it is false, the contents of the files pointed to by symbolic - links are copied. If the file pointed by the symlink doesn't - exist, an exception will be added in the list of errors raised in - an Error exception at the end of the copy process. - - You can set the optional ignore_dangling_symlinks flag to true if you - want to silence this exception. Notice that this has no effect on - platforms that don't support os.symlink. - - The optional ignore argument is a callable. If given, it - is called with the `src` parameter, which is the directory - being visited by copytree(), and `names` which is the list of - `src` contents, as returned by os.listdir(): - - callable(src, names) -> ignored_names - - Since copytree() is called recursively, the callable will be - called once for each directory that is copied. It returns a - list of names relative to the `src` directory that should - not be copied. - - The optional copy_function argument is a callable that will be used - to copy each file. It will be called with the source path and the - destination path as arguments. By default, copy2() is used, but any - function that supports the same signature (like copy()) can be used. - - """ - names = os.listdir(src) - if ignore is not None: - ignored_names = ignore(src, names) - else: - ignored_names = set() - - os.makedirs(dst) - errors = [] - for name in names: - if name in ignored_names: - continue - srcname = os.path.join(src, name) - dstname = os.path.join(dst, name) - try: - if os.path.islink(srcname): - linkto = os.readlink(srcname) - if symlinks: - os.symlink(linkto, dstname) - else: - # ignore dangling symlink if the flag is on - if not os.path.exists(linkto) and ignore_dangling_symlinks: - continue - # otherwise let the copy occurs. copy2 will raise an error - copy_function(srcname, dstname) - elif os.path.isdir(srcname): - copytree(srcname, dstname, symlinks, ignore, copy_function) - else: - # Will raise a SpecialFileError for unsupported file types - copy_function(srcname, dstname) - # catch the Error from the recursive copytree so that we can - # continue with other files - except Error as err: - errors.extend(err.args[0]) - except EnvironmentError as why: - errors.append((srcname, dstname, str(why))) - try: - copystat(src, dst) - except OSError as why: - if WindowsError is not None and isinstance(why, WindowsError): - # Copying file access times may fail on Windows - pass - else: - errors.extend((src, dst, str(why))) - if errors: - raise Error(errors) - -def rmtree(path, ignore_errors=False, onerror=None): - """Recursively delete a directory tree. - - If ignore_errors is set, errors are ignored; otherwise, if onerror - is set, it is called to handle the error with arguments (func, - path, exc_info) where func is os.listdir, os.remove, or os.rmdir; - path is the argument to that function that caused it to fail; and - exc_info is a tuple returned by sys.exc_info(). If ignore_errors - is false and onerror is None, an exception is raised. - - """ - if ignore_errors: - def onerror(*args): - pass - elif onerror is None: - def onerror(*args): - raise - try: - if os.path.islink(path): - # symlinks to directories are forbidden, see bug #1669 - raise OSError("Cannot call rmtree on a symbolic link") - except OSError: - onerror(os.path.islink, path, sys.exc_info()) - # can't continue even if onerror hook returns - return - names = [] - try: - names = os.listdir(path) - except os.error: - onerror(os.listdir, path, sys.exc_info()) - for name in names: - fullname = os.path.join(path, name) - try: - mode = os.lstat(fullname).st_mode - except os.error: - mode = 0 - if stat.S_ISDIR(mode): - rmtree(fullname, ignore_errors, onerror) - else: - try: - os.remove(fullname) - except os.error: - onerror(os.remove, fullname, sys.exc_info()) - try: - os.rmdir(path) - except os.error: - onerror(os.rmdir, path, sys.exc_info()) - - -def _basename(path): - # A basename() variant which first strips the trailing slash, if present. - # Thus we always get the last component of the path, even for directories. - return os.path.basename(path.rstrip(os.path.sep)) - -def move(src, dst): - """Recursively move a file or directory to another location. This is - similar to the Unix "mv" command. - - If the destination is a directory or a symlink to a directory, the source - is moved inside the directory. The destination path must not already - exist. - - If the destination already exists but is not a directory, it may be - overwritten depending on os.rename() semantics. - - If the destination is on our current filesystem, then rename() is used. - Otherwise, src is copied to the destination and then removed. - A lot more could be done here... A look at a mv.c shows a lot of - the issues this implementation glosses over. - - """ - real_dst = dst - if os.path.isdir(dst): - if _samefile(src, dst): - # We might be on a case insensitive filesystem, - # perform the rename anyway. - os.rename(src, dst) - return - - real_dst = os.path.join(dst, _basename(src)) - if os.path.exists(real_dst): - raise Error("Destination path '%s' already exists" % real_dst) - try: - os.rename(src, real_dst) - except OSError: - if os.path.isdir(src): - if _destinsrc(src, dst): - raise Error("Cannot move a directory '%s' into itself '%s'." % (src, dst)) - copytree(src, real_dst, symlinks=True) - rmtree(src) - else: - copy2(src, real_dst) - os.unlink(src) - -def _destinsrc(src, dst): - src = abspath(src) - dst = abspath(dst) - if not src.endswith(os.path.sep): - src += os.path.sep - if not dst.endswith(os.path.sep): - dst += os.path.sep - return dst.startswith(src) - -def _get_gid(name): - """Returns a gid, given a group name.""" - if getgrnam is None or name is None: - return None - try: - result = getgrnam(name) - except KeyError: - result = None - if result is not None: - return result[2] - return None - -def _get_uid(name): - """Returns an uid, given a user name.""" - if getpwnam is None or name is None: - return None - try: - result = getpwnam(name) - except KeyError: - result = None - if result is not None: - return result[2] - return None - -def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0, - owner=None, group=None, logger=None): - """Create a (possibly compressed) tar file from all the files under - 'base_dir'. - - 'compress' must be "gzip" (the default), "bzip2", or None. - - 'owner' and 'group' can be used to define an owner and a group for the - archive that is being built. If not provided, the current owner and group - will be used. - - The output tar file will be named 'base_name' + ".tar", possibly plus - the appropriate compression extension (".gz", or ".bz2"). - - Returns the output filename. - """ - tar_compression = {'gzip': 'gz', None: ''} - compress_ext = {'gzip': '.gz'} - - if _BZ2_SUPPORTED: - tar_compression['bzip2'] = 'bz2' - compress_ext['bzip2'] = '.bz2' - - # flags for compression program, each element of list will be an argument - if compress is not None and compress not in compress_ext: - raise ValueError("bad value for 'compress', or compression format not " - "supported : {0}".format(compress)) - - archive_name = base_name + '.tar' + compress_ext.get(compress, '') - archive_dir = os.path.dirname(archive_name) - - if not os.path.exists(archive_dir): - if logger is not None: - logger.info("creating %s", archive_dir) - if not dry_run: - os.makedirs(archive_dir) - - # creating the tarball - if logger is not None: - logger.info('Creating tar archive') - - uid = _get_uid(owner) - gid = _get_gid(group) - - def _set_uid_gid(tarinfo): - if gid is not None: - tarinfo.gid = gid - tarinfo.gname = group - if uid is not None: - tarinfo.uid = uid - tarinfo.uname = owner - return tarinfo - - if not dry_run: - tar = tarfile.open(archive_name, 'w|%s' % tar_compression[compress]) - try: - tar.add(base_dir, filter=_set_uid_gid) - finally: - tar.close() - - return archive_name - -def _call_external_zip(base_dir, zip_filename, verbose=False, dry_run=False): - # XXX see if we want to keep an external call here - if verbose: - zipoptions = "-r" - else: - zipoptions = "-rq" - from distutils.errors import DistutilsExecError - from distutils.spawn import spawn - try: - spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run) - except DistutilsExecError: - # XXX really should distinguish between "couldn't find - # external 'zip' command" and "zip failed". - raise ExecError("unable to create zip file '%s': " - "could neither import the 'zipfile' module nor " - "find a standalone zip utility") % zip_filename - -def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): - """Create a zip file from all the files under 'base_dir'. - - The output zip file will be named 'base_name' + ".zip". Uses either the - "zipfile" Python module (if available) or the InfoZIP "zip" utility - (if installed and found on the default search path). If neither tool is - available, raises ExecError. Returns the name of the output zip - file. - """ - zip_filename = base_name + ".zip" - archive_dir = os.path.dirname(base_name) - - if not os.path.exists(archive_dir): - if logger is not None: - logger.info("creating %s", archive_dir) - if not dry_run: - os.makedirs(archive_dir) - - # If zipfile module is not available, try spawning an external 'zip' - # command. - try: - import zipfile - except ImportError: - zipfile = None - - if zipfile is None: - _call_external_zip(base_dir, zip_filename, verbose, dry_run) - else: - if logger is not None: - logger.info("creating '%s' and adding '%s' to it", - zip_filename, base_dir) - - if not dry_run: - zip = zipfile.ZipFile(zip_filename, "w", - compression=zipfile.ZIP_DEFLATED) - - for dirpath, dirnames, filenames in os.walk(base_dir): - for name in filenames: - path = os.path.normpath(os.path.join(dirpath, name)) - if os.path.isfile(path): - zip.write(path, path) - if logger is not None: - logger.info("adding '%s'", path) - zip.close() - - return zip_filename - -_ARCHIVE_FORMATS = { - 'gztar': (_make_tarball, [('compress', 'gzip')], "gzip'ed tar-file"), - 'bztar': (_make_tarball, [('compress', 'bzip2')], "bzip2'ed tar-file"), - 'tar': (_make_tarball, [('compress', None)], "uncompressed tar file"), - 'zip': (_make_zipfile, [], "ZIP file"), - } - -if _BZ2_SUPPORTED: - _ARCHIVE_FORMATS['bztar'] = (_make_tarball, [('compress', 'bzip2')], - "bzip2'ed tar-file") - -def get_archive_formats(): - """Returns a list of supported formats for archiving and unarchiving. - - Each element of the returned sequence is a tuple (name, description) - """ - formats = [(name, registry[2]) for name, registry in - _ARCHIVE_FORMATS.items()] - formats.sort() - return formats - -def register_archive_format(name, function, extra_args=None, description=''): - """Registers an archive format. - - name is the name of the format. function is the callable that will be - used to create archives. If provided, extra_args is a sequence of - (name, value) tuples that will be passed as arguments to the callable. - description can be provided to describe the format, and will be returned - by the get_archive_formats() function. - """ - if extra_args is None: - extra_args = [] - if not isinstance(function, collections.Callable): - raise TypeError('The %s object is not callable' % function) - if not isinstance(extra_args, (tuple, list)): - raise TypeError('extra_args needs to be a sequence') - for element in extra_args: - if not isinstance(element, (tuple, list)) or len(element) !=2: - raise TypeError('extra_args elements are : (arg_name, value)') - - _ARCHIVE_FORMATS[name] = (function, extra_args, description) - -def unregister_archive_format(name): - del _ARCHIVE_FORMATS[name] - -def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, - dry_run=0, owner=None, group=None, logger=None): - """Create an archive file (eg. zip or tar). - - 'base_name' is the name of the file to create, minus any format-specific - extension; 'format' is the archive format: one of "zip", "tar", "bztar" - or "gztar". - - 'root_dir' is a directory that will be the root directory of the - archive; ie. we typically chdir into 'root_dir' before creating the - archive. 'base_dir' is the directory where we start archiving from; - ie. 'base_dir' will be the common prefix of all files and - directories in the archive. 'root_dir' and 'base_dir' both default - to the current directory. Returns the name of the archive file. - - 'owner' and 'group' are used when creating a tar archive. By default, - uses the current owner and group. - """ - save_cwd = os.getcwd() - if root_dir is not None: - if logger is not None: - logger.debug("changing into '%s'", root_dir) - base_name = os.path.abspath(base_name) - if not dry_run: - os.chdir(root_dir) - - if base_dir is None: - base_dir = os.curdir - - kwargs = {'dry_run': dry_run, 'logger': logger} - - try: - format_info = _ARCHIVE_FORMATS[format] - except KeyError: - raise ValueError("unknown archive format '%s'" % format) - - func = format_info[0] - for arg, val in format_info[1]: - kwargs[arg] = val - - if format != 'zip': - kwargs['owner'] = owner - kwargs['group'] = group - - try: - filename = func(base_name, base_dir, **kwargs) - finally: - if root_dir is not None: - if logger is not None: - logger.debug("changing back to '%s'", save_cwd) - os.chdir(save_cwd) - - return filename - - -def get_unpack_formats(): - """Returns a list of supported formats for unpacking. - - Each element of the returned sequence is a tuple - (name, extensions, description) - """ - formats = [(name, info[0], info[3]) for name, info in - _UNPACK_FORMATS.items()] - formats.sort() - return formats - -def _check_unpack_options(extensions, function, extra_args): - """Checks what gets registered as an unpacker.""" - # first make sure no other unpacker is registered for this extension - existing_extensions = {} - for name, info in _UNPACK_FORMATS.items(): - for ext in info[0]: - existing_extensions[ext] = name - - for extension in extensions: - if extension in existing_extensions: - msg = '%s is already registered for "%s"' - raise RegistryError(msg % (extension, - existing_extensions[extension])) - - if not isinstance(function, collections.Callable): - raise TypeError('The registered function must be a callable') - - -def register_unpack_format(name, extensions, function, extra_args=None, - description=''): - """Registers an unpack format. - - `name` is the name of the format. `extensions` is a list of extensions - corresponding to the format. - - `function` is the callable that will be - used to unpack archives. The callable will receive archives to unpack. - If it's unable to handle an archive, it needs to raise a ReadError - exception. - - If provided, `extra_args` is a sequence of - (name, value) tuples that will be passed as arguments to the callable. - description can be provided to describe the format, and will be returned - by the get_unpack_formats() function. - """ - if extra_args is None: - extra_args = [] - _check_unpack_options(extensions, function, extra_args) - _UNPACK_FORMATS[name] = extensions, function, extra_args, description - -def unregister_unpack_format(name): - """Removes the pack format from the registry.""" - del _UNPACK_FORMATS[name] - -def _ensure_directory(path): - """Ensure that the parent directory of `path` exists""" - dirname = os.path.dirname(path) - if not os.path.isdir(dirname): - os.makedirs(dirname) - -def _unpack_zipfile(filename, extract_dir): - """Unpack zip `filename` to `extract_dir` - """ - try: - import zipfile - except ImportError: - raise ReadError('zlib not supported, cannot unpack this archive.') - - if not zipfile.is_zipfile(filename): - raise ReadError("%s is not a zip file" % filename) - - zip = zipfile.ZipFile(filename) - try: - for info in zip.infolist(): - name = info.filename - - # don't extract absolute paths or ones with .. in them - if name.startswith('/') or '..' in name: - continue - - target = os.path.join(extract_dir, *name.split('/')) - if not target: - continue - - _ensure_directory(target) - if not name.endswith('/'): - # file - data = zip.read(info.filename) - f = open(target, 'wb') - try: - f.write(data) - finally: - f.close() - del data - finally: - zip.close() - -def _unpack_tarfile(filename, extract_dir): - """Unpack tar/tar.gz/tar.bz2 `filename` to `extract_dir` - """ - try: - tarobj = tarfile.open(filename) - except tarfile.TarError: - raise ReadError( - "%s is not a compressed or uncompressed tar file" % filename) - try: - tarobj.extractall(extract_dir) - finally: - tarobj.close() - -_UNPACK_FORMATS = { - 'gztar': (['.tar.gz', '.tgz'], _unpack_tarfile, [], "gzip'ed tar-file"), - 'tar': (['.tar'], _unpack_tarfile, [], "uncompressed tar file"), - 'zip': (['.zip'], _unpack_zipfile, [], "ZIP file") - } - -if _BZ2_SUPPORTED: - _UNPACK_FORMATS['bztar'] = (['.bz2'], _unpack_tarfile, [], - "bzip2'ed tar-file") - -def _find_unpack_format(filename): - for name, info in _UNPACK_FORMATS.items(): - for extension in info[0]: - if filename.endswith(extension): - return name - return None - -def unpack_archive(filename, extract_dir=None, format=None): - """Unpack an archive. - - `filename` is the name of the archive. - - `extract_dir` is the name of the target directory, where the archive - is unpacked. If not provided, the current working directory is used. - - `format` is the archive format: one of "zip", "tar", or "gztar". Or any - other registered format. If not provided, unpack_archive will use the - filename extension and see if an unpacker was registered for that - extension. - - In case none is found, a ValueError is raised. - """ - if extract_dir is None: - extract_dir = os.getcwd() - - if format is not None: - try: - format_info = _UNPACK_FORMATS[format] - except KeyError: - raise ValueError("Unknown unpack format '{0}'".format(format)) - - func = format_info[1] - func(filename, extract_dir, **dict(format_info[2])) - else: - # we need to look at the registered unpackers supported extensions - format = _find_unpack_format(filename) - if format is None: - raise ReadError("Unknown archive format '{0}'".format(filename)) - - func = _UNPACK_FORMATS[format][1] - kwargs = dict(_UNPACK_FORMATS[format][2]) - func(filename, extract_dir, **kwargs) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.cfg b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.cfg deleted file mode 100644 index 1746bd0..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.cfg +++ /dev/null @@ -1,84 +0,0 @@ -[posix_prefix] -# Configuration directories. Some of these come straight out of the -# configure script. They are for implementing the other variables, not to -# be used directly in [resource_locations]. -confdir = /etc -datadir = /usr/share -libdir = /usr/lib -statedir = /var -# User resource directory -local = ~/.local/{distribution.name} - -stdlib = {base}/lib/python{py_version_short} -platstdlib = {platbase}/lib/python{py_version_short} -purelib = {base}/lib/python{py_version_short}/site-packages -platlib = {platbase}/lib/python{py_version_short}/site-packages -include = {base}/include/python{py_version_short}{abiflags} -platinclude = {platbase}/include/python{py_version_short}{abiflags} -data = {base} - -[posix_home] -stdlib = {base}/lib/python -platstdlib = {base}/lib/python -purelib = {base}/lib/python -platlib = {base}/lib/python -include = {base}/include/python -platinclude = {base}/include/python -scripts = {base}/bin -data = {base} - -[nt] -stdlib = {base}/Lib -platstdlib = {base}/Lib -purelib = {base}/Lib/site-packages -platlib = {base}/Lib/site-packages -include = {base}/Include -platinclude = {base}/Include -scripts = {base}/Scripts -data = {base} - -[os2] -stdlib = {base}/Lib -platstdlib = {base}/Lib -purelib = {base}/Lib/site-packages -platlib = {base}/Lib/site-packages -include = {base}/Include -platinclude = {base}/Include -scripts = {base}/Scripts -data = {base} - -[os2_home] -stdlib = {userbase}/lib/python{py_version_short} -platstdlib = {userbase}/lib/python{py_version_short} -purelib = {userbase}/lib/python{py_version_short}/site-packages -platlib = {userbase}/lib/python{py_version_short}/site-packages -include = {userbase}/include/python{py_version_short} -scripts = {userbase}/bin -data = {userbase} - -[nt_user] -stdlib = {userbase}/Python{py_version_nodot} -platstdlib = {userbase}/Python{py_version_nodot} -purelib = {userbase}/Python{py_version_nodot}/site-packages -platlib = {userbase}/Python{py_version_nodot}/site-packages -include = {userbase}/Python{py_version_nodot}/Include -scripts = {userbase}/Scripts -data = {userbase} - -[posix_user] -stdlib = {userbase}/lib/python{py_version_short} -platstdlib = {userbase}/lib/python{py_version_short} -purelib = {userbase}/lib/python{py_version_short}/site-packages -platlib = {userbase}/lib/python{py_version_short}/site-packages -include = {userbase}/include/python{py_version_short} -scripts = {userbase}/bin -data = {userbase} - -[osx_framework_user] -stdlib = {userbase}/lib/python -platstdlib = {userbase}/lib/python -purelib = {userbase}/lib/python/site-packages -platlib = {userbase}/lib/python/site-packages -include = {userbase}/include -scripts = {userbase}/bin -data = {userbase} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.py deleted file mode 100644 index 1df3aba..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.py +++ /dev/null @@ -1,788 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Access to Python's configuration information.""" - -import codecs -import os -import re -import sys -from os.path import pardir, realpath -try: - import configparser -except ImportError: - import ConfigParser as configparser - - -__all__ = [ - 'get_config_h_filename', - 'get_config_var', - 'get_config_vars', - 'get_makefile_filename', - 'get_path', - 'get_path_names', - 'get_paths', - 'get_platform', - 'get_python_version', - 'get_scheme_names', - 'parse_config_h', -] - - -def _safe_realpath(path): - try: - return realpath(path) - except OSError: - return path - - -if sys.executable: - _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) -else: - # sys.executable can be empty if argv[0] has been changed and Python is - # unable to retrieve the real program name - _PROJECT_BASE = _safe_realpath(os.getcwd()) - -if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir)) -# PC/VS7.1 -if os.name == "nt" and "\\pc\\v" in _PROJECT_BASE[-10:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) -# PC/AMD64 -if os.name == "nt" and "\\pcbuild\\amd64" in _PROJECT_BASE[-14:].lower(): - _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) - - -def is_python_build(): - for fn in ("Setup.dist", "Setup.local"): - if os.path.isfile(os.path.join(_PROJECT_BASE, "Modules", fn)): - return True - return False - -_PYTHON_BUILD = is_python_build() - -_cfg_read = False - -def _ensure_cfg_read(): - global _cfg_read - if not _cfg_read: - from ..resources import finder - backport_package = __name__.rsplit('.', 1)[0] - _finder = finder(backport_package) - _cfgfile = _finder.find('sysconfig.cfg') - assert _cfgfile, 'sysconfig.cfg exists' - with _cfgfile.as_stream() as s: - _SCHEMES.readfp(s) - if _PYTHON_BUILD: - for scheme in ('posix_prefix', 'posix_home'): - _SCHEMES.set(scheme, 'include', '{srcdir}/Include') - _SCHEMES.set(scheme, 'platinclude', '{projectbase}/.') - - _cfg_read = True - - -_SCHEMES = configparser.RawConfigParser() -_VAR_REPL = re.compile(r'\{([^{]*?)\}') - -def _expand_globals(config): - _ensure_cfg_read() - if config.has_section('globals'): - globals = config.items('globals') - else: - globals = tuple() - - sections = config.sections() - for section in sections: - if section == 'globals': - continue - for option, value in globals: - if config.has_option(section, option): - continue - config.set(section, option, value) - config.remove_section('globals') - - # now expanding local variables defined in the cfg file - # - for section in config.sections(): - variables = dict(config.items(section)) - - def _replacer(matchobj): - name = matchobj.group(1) - if name in variables: - return variables[name] - return matchobj.group(0) - - for option, value in config.items(section): - config.set(section, option, _VAR_REPL.sub(_replacer, value)) - -#_expand_globals(_SCHEMES) - - # FIXME don't rely on sys.version here, its format is an implementation detail - # of CPython, use sys.version_info or sys.hexversion -_PY_VERSION = sys.version.split()[0] -_PY_VERSION_SHORT = sys.version[:3] -_PY_VERSION_SHORT_NO_DOT = _PY_VERSION[0] + _PY_VERSION[2] -_PREFIX = os.path.normpath(sys.prefix) -_EXEC_PREFIX = os.path.normpath(sys.exec_prefix) -_CONFIG_VARS = None -_USER_BASE = None - - -def _subst_vars(path, local_vars): - """In the string `path`, replace tokens like {some.thing} with the - corresponding value from the map `local_vars`. - - If there is no corresponding value, leave the token unchanged. - """ - def _replacer(matchobj): - name = matchobj.group(1) - if name in local_vars: - return local_vars[name] - elif name in os.environ: - return os.environ[name] - return matchobj.group(0) - return _VAR_REPL.sub(_replacer, path) - - -def _extend_dict(target_dict, other_dict): - target_keys = target_dict.keys() - for key, value in other_dict.items(): - if key in target_keys: - continue - target_dict[key] = value - - -def _expand_vars(scheme, vars): - res = {} - if vars is None: - vars = {} - _extend_dict(vars, get_config_vars()) - - for key, value in _SCHEMES.items(scheme): - if os.name in ('posix', 'nt'): - value = os.path.expanduser(value) - res[key] = os.path.normpath(_subst_vars(value, vars)) - return res - - -def format_value(value, vars): - def _replacer(matchobj): - name = matchobj.group(1) - if name in vars: - return vars[name] - return matchobj.group(0) - return _VAR_REPL.sub(_replacer, value) - - -def _get_default_scheme(): - if os.name == 'posix': - # the default scheme for posix is posix_prefix - return 'posix_prefix' - return os.name - - -def _getuserbase(): - env_base = os.environ.get("PYTHONUSERBASE", None) - - def joinuser(*args): - return os.path.expanduser(os.path.join(*args)) - - # what about 'os2emx', 'riscos' ? - if os.name == "nt": - base = os.environ.get("APPDATA") or "~" - if env_base: - return env_base - else: - return joinuser(base, "Python") - - if sys.platform == "darwin": - framework = get_config_var("PYTHONFRAMEWORK") - if framework: - if env_base: - return env_base - else: - return joinuser("~", "Library", framework, "%d.%d" % - sys.version_info[:2]) - - if env_base: - return env_base - else: - return joinuser("~", ".local") - - -def _parse_makefile(filename, vars=None): - """Parse a Makefile-style file. - - A dictionary containing name/value pairs is returned. If an - optional dictionary is passed in as the second argument, it is - used instead of a new dictionary. - """ - # Regexes needed for parsing Makefile (and similar syntaxes, - # like old-style Setup files). - _variable_rx = re.compile(r"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)") - _findvar1_rx = re.compile(r"\$\(([A-Za-z][A-Za-z0-9_]*)\)") - _findvar2_rx = re.compile(r"\${([A-Za-z][A-Za-z0-9_]*)}") - - if vars is None: - vars = {} - done = {} - notdone = {} - - with codecs.open(filename, encoding='utf-8', errors="surrogateescape") as f: - lines = f.readlines() - - for line in lines: - if line.startswith('#') or line.strip() == '': - continue - m = _variable_rx.match(line) - if m: - n, v = m.group(1, 2) - v = v.strip() - # `$$' is a literal `$' in make - tmpv = v.replace('$$', '') - - if "$" in tmpv: - notdone[n] = v - else: - try: - v = int(v) - except ValueError: - # insert literal `$' - done[n] = v.replace('$$', '$') - else: - done[n] = v - - # do variable interpolation here - variables = list(notdone.keys()) - - # Variables with a 'PY_' prefix in the makefile. These need to - # be made available without that prefix through sysconfig. - # Special care is needed to ensure that variable expansion works, even - # if the expansion uses the name without a prefix. - renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS') - - while len(variables) > 0: - for name in tuple(variables): - value = notdone[name] - m = _findvar1_rx.search(value) or _findvar2_rx.search(value) - if m is not None: - n = m.group(1) - found = True - if n in done: - item = str(done[n]) - elif n in notdone: - # get it on a subsequent round - found = False - elif n in os.environ: - # do it like make: fall back to environment - item = os.environ[n] - - elif n in renamed_variables: - if (name.startswith('PY_') and - name[3:] in renamed_variables): - item = "" - - elif 'PY_' + n in notdone: - found = False - - else: - item = str(done['PY_' + n]) - - else: - done[n] = item = "" - - if found: - after = value[m.end():] - value = value[:m.start()] + item + after - if "$" in after: - notdone[name] = value - else: - try: - value = int(value) - except ValueError: - done[name] = value.strip() - else: - done[name] = value - variables.remove(name) - - if (name.startswith('PY_') and - name[3:] in renamed_variables): - - name = name[3:] - if name not in done: - done[name] = value - - else: - # bogus variable reference (e.g. "prefix=$/opt/python"); - # just drop it since we can't deal - done[name] = value - variables.remove(name) - - # strip spurious spaces - for k, v in done.items(): - if isinstance(v, str): - done[k] = v.strip() - - # save the results in the global dictionary - vars.update(done) - return vars - - -def get_makefile_filename(): - """Return the path of the Makefile.""" - if _PYTHON_BUILD: - return os.path.join(_PROJECT_BASE, "Makefile") - if hasattr(sys, 'abiflags'): - config_dir_name = 'config-%s%s' % (_PY_VERSION_SHORT, sys.abiflags) - else: - config_dir_name = 'config' - return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile') - - -def _init_posix(vars): - """Initialize the module as appropriate for POSIX systems.""" - # load the installed Makefile: - makefile = get_makefile_filename() - try: - _parse_makefile(makefile, vars) - except IOError as e: - msg = "invalid Python installation: unable to open %s" % makefile - if hasattr(e, "strerror"): - msg = msg + " (%s)" % e.strerror - raise IOError(msg) - # load the installed pyconfig.h: - config_h = get_config_h_filename() - try: - with open(config_h) as f: - parse_config_h(f, vars) - except IOError as e: - msg = "invalid Python installation: unable to open %s" % config_h - if hasattr(e, "strerror"): - msg = msg + " (%s)" % e.strerror - raise IOError(msg) - # On AIX, there are wrong paths to the linker scripts in the Makefile - # -- these paths are relative to the Python source, but when installed - # the scripts are in another directory. - if _PYTHON_BUILD: - vars['LDSHARED'] = vars['BLDSHARED'] - - -def _init_non_posix(vars): - """Initialize the module as appropriate for NT""" - # set basic install directories - vars['LIBDEST'] = get_path('stdlib') - vars['BINLIBDEST'] = get_path('platstdlib') - vars['INCLUDEPY'] = get_path('include') - vars['SO'] = '.pyd' - vars['EXE'] = '.exe' - vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT - vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable)) - -# -# public APIs -# - - -def parse_config_h(fp, vars=None): - """Parse a config.h-style file. - - A dictionary containing name/value pairs is returned. If an - optional dictionary is passed in as the second argument, it is - used instead of a new dictionary. - """ - if vars is None: - vars = {} - define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n") - undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n") - - while True: - line = fp.readline() - if not line: - break - m = define_rx.match(line) - if m: - n, v = m.group(1, 2) - try: - v = int(v) - except ValueError: - pass - vars[n] = v - else: - m = undef_rx.match(line) - if m: - vars[m.group(1)] = 0 - return vars - - -def get_config_h_filename(): - """Return the path of pyconfig.h.""" - if _PYTHON_BUILD: - if os.name == "nt": - inc_dir = os.path.join(_PROJECT_BASE, "PC") - else: - inc_dir = _PROJECT_BASE - else: - inc_dir = get_path('platinclude') - return os.path.join(inc_dir, 'pyconfig.h') - - -def get_scheme_names(): - """Return a tuple containing the schemes names.""" - return tuple(sorted(_SCHEMES.sections())) - - -def get_path_names(): - """Return a tuple containing the paths names.""" - # xxx see if we want a static list - return _SCHEMES.options('posix_prefix') - - -def get_paths(scheme=_get_default_scheme(), vars=None, expand=True): - """Return a mapping containing an install scheme. - - ``scheme`` is the install scheme name. If not provided, it will - return the default scheme for the current platform. - """ - _ensure_cfg_read() - if expand: - return _expand_vars(scheme, vars) - else: - return dict(_SCHEMES.items(scheme)) - - -def get_path(name, scheme=_get_default_scheme(), vars=None, expand=True): - """Return a path corresponding to the scheme. - - ``scheme`` is the install scheme name. - """ - return get_paths(scheme, vars, expand)[name] - - -def get_config_vars(*args): - """With no arguments, return a dictionary of all configuration - variables relevant for the current platform. - - On Unix, this means every variable defined in Python's installed Makefile; - On Windows and Mac OS it's a much smaller set. - - With arguments, return a list of values that result from looking up - each argument in the configuration variable dictionary. - """ - global _CONFIG_VARS - if _CONFIG_VARS is None: - _CONFIG_VARS = {} - # Normalized versions of prefix and exec_prefix are handy to have; - # in fact, these are the standard versions used most places in the - # distutils2 module. - _CONFIG_VARS['prefix'] = _PREFIX - _CONFIG_VARS['exec_prefix'] = _EXEC_PREFIX - _CONFIG_VARS['py_version'] = _PY_VERSION - _CONFIG_VARS['py_version_short'] = _PY_VERSION_SHORT - _CONFIG_VARS['py_version_nodot'] = _PY_VERSION[0] + _PY_VERSION[2] - _CONFIG_VARS['base'] = _PREFIX - _CONFIG_VARS['platbase'] = _EXEC_PREFIX - _CONFIG_VARS['projectbase'] = _PROJECT_BASE - try: - _CONFIG_VARS['abiflags'] = sys.abiflags - except AttributeError: - # sys.abiflags may not be defined on all platforms. - _CONFIG_VARS['abiflags'] = '' - - if os.name in ('nt', 'os2'): - _init_non_posix(_CONFIG_VARS) - if os.name == 'posix': - _init_posix(_CONFIG_VARS) - # Setting 'userbase' is done below the call to the - # init function to enable using 'get_config_var' in - # the init-function. - if sys.version >= '2.6': - _CONFIG_VARS['userbase'] = _getuserbase() - - if 'srcdir' not in _CONFIG_VARS: - _CONFIG_VARS['srcdir'] = _PROJECT_BASE - else: - _CONFIG_VARS['srcdir'] = _safe_realpath(_CONFIG_VARS['srcdir']) - - # Convert srcdir into an absolute path if it appears necessary. - # Normally it is relative to the build directory. However, during - # testing, for example, we might be running a non-installed python - # from a different directory. - if _PYTHON_BUILD and os.name == "posix": - base = _PROJECT_BASE - try: - cwd = os.getcwd() - except OSError: - cwd = None - if (not os.path.isabs(_CONFIG_VARS['srcdir']) and - base != cwd): - # srcdir is relative and we are not in the same directory - # as the executable. Assume executable is in the build - # directory and make srcdir absolute. - srcdir = os.path.join(base, _CONFIG_VARS['srcdir']) - _CONFIG_VARS['srcdir'] = os.path.normpath(srcdir) - - if sys.platform == 'darwin': - kernel_version = os.uname()[2] # Kernel version (8.4.3) - major_version = int(kernel_version.split('.')[0]) - - if major_version < 8: - # On Mac OS X before 10.4, check if -arch and -isysroot - # are in CFLAGS or LDFLAGS and remove them if they are. - # This is needed when building extensions on a 10.3 system - # using a universal build of python. - for key in ('LDFLAGS', 'BASECFLAGS', - # a number of derived variables. These need to be - # patched up as well. - 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - flags = _CONFIG_VARS[key] - flags = re.sub(r'-arch\s+\w+\s', ' ', flags) - flags = re.sub('-isysroot [^ \t]*', ' ', flags) - _CONFIG_VARS[key] = flags - else: - # Allow the user to override the architecture flags using - # an environment variable. - # NOTE: This name was introduced by Apple in OSX 10.5 and - # is used by several scripting languages distributed with - # that OS release. - if 'ARCHFLAGS' in os.environ: - arch = os.environ['ARCHFLAGS'] - for key in ('LDFLAGS', 'BASECFLAGS', - # a number of derived variables. These need to be - # patched up as well. - 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - - flags = _CONFIG_VARS[key] - flags = re.sub(r'-arch\s+\w+\s', ' ', flags) - flags = flags + ' ' + arch - _CONFIG_VARS[key] = flags - - # If we're on OSX 10.5 or later and the user tries to - # compiles an extension using an SDK that is not present - # on the current machine it is better to not use an SDK - # than to fail. - # - # The major usecase for this is users using a Python.org - # binary installer on OSX 10.6: that installer uses - # the 10.4u SDK, but that SDK is not installed by default - # when you install Xcode. - # - CFLAGS = _CONFIG_VARS.get('CFLAGS', '') - m = re.search(r'-isysroot\s+(\S+)', CFLAGS) - if m is not None: - sdk = m.group(1) - if not os.path.exists(sdk): - for key in ('LDFLAGS', 'BASECFLAGS', - # a number of derived variables. These need to be - # patched up as well. - 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): - - flags = _CONFIG_VARS[key] - flags = re.sub(r'-isysroot\s+\S+(\s|$)', ' ', flags) - _CONFIG_VARS[key] = flags - - if args: - vals = [] - for name in args: - vals.append(_CONFIG_VARS.get(name)) - return vals - else: - return _CONFIG_VARS - - -def get_config_var(name): - """Return the value of a single variable using the dictionary returned by - 'get_config_vars()'. - - Equivalent to get_config_vars().get(name) - """ - return get_config_vars().get(name) - - -def get_platform(): - """Return a string that identifies the current platform. - - This is used mainly to distinguish platform-specific build directories and - platform-specific built distributions. Typically includes the OS name - and version and the architecture (as supplied by 'os.uname()'), - although the exact information included depends on the OS; eg. for IRIX - the architecture isn't particularly important (IRIX only runs on SGI - hardware), but for Linux the kernel version isn't particularly - important. - - Examples of returned values: - linux-i586 - linux-alpha (?) - solaris-2.6-sun4u - irix-5.3 - irix64-6.2 - - Windows will return one of: - win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) - win-ia64 (64bit Windows on Itanium) - win32 (all others - specifically, sys.platform is returned) - - For other non-POSIX platforms, currently just returns 'sys.platform'. - """ - if os.name == 'nt': - # sniff sys.version for architecture. - prefix = " bit (" - i = sys.version.find(prefix) - if i == -1: - return sys.platform - j = sys.version.find(")", i) - look = sys.version[i+len(prefix):j].lower() - if look == 'amd64': - return 'win-amd64' - if look == 'itanium': - return 'win-ia64' - return sys.platform - - if os.name != "posix" or not hasattr(os, 'uname'): - # XXX what about the architecture? NT is Intel or Alpha, - # Mac OS is M68k or PPC, etc. - return sys.platform - - # Try to distinguish various flavours of Unix - osname, host, release, version, machine = os.uname() - - # Convert the OS name to lowercase, remove '/' characters - # (to accommodate BSD/OS), and translate spaces (for "Power Macintosh") - osname = osname.lower().replace('/', '') - machine = machine.replace(' ', '_') - machine = machine.replace('/', '-') - - if osname[:5] == "linux": - # At least on Linux/Intel, 'machine' is the processor -- - # i386, etc. - # XXX what about Alpha, SPARC, etc? - return "%s-%s" % (osname, machine) - elif osname[:5] == "sunos": - if release[0] >= "5": # SunOS 5 == Solaris 2 - osname = "solaris" - release = "%d.%s" % (int(release[0]) - 3, release[2:]) - # fall through to standard osname-release-machine representation - elif osname[:4] == "irix": # could be "irix64"! - return "%s-%s" % (osname, release) - elif osname[:3] == "aix": - return "%s-%s.%s" % (osname, version, release) - elif osname[:6] == "cygwin": - osname = "cygwin" - rel_re = re.compile(r'[\d.]+') - m = rel_re.match(release) - if m: - release = m.group() - elif osname[:6] == "darwin": - # - # For our purposes, we'll assume that the system version from - # distutils' perspective is what MACOSX_DEPLOYMENT_TARGET is set - # to. This makes the compatibility story a bit more sane because the - # machine is going to compile and link as if it were - # MACOSX_DEPLOYMENT_TARGET. - cfgvars = get_config_vars() - macver = cfgvars.get('MACOSX_DEPLOYMENT_TARGET') - - if True: - # Always calculate the release of the running machine, - # needed to determine if we can build fat binaries or not. - - macrelease = macver - # Get the system version. Reading this plist is a documented - # way to get the system version (see the documentation for - # the Gestalt Manager) - try: - f = open('/System/Library/CoreServices/SystemVersion.plist') - except IOError: - # We're on a plain darwin box, fall back to the default - # behaviour. - pass - else: - try: - m = re.search(r'<key>ProductUserVisibleVersion</key>\s*' - r'<string>(.*?)</string>', f.read()) - finally: - f.close() - if m is not None: - macrelease = '.'.join(m.group(1).split('.')[:2]) - # else: fall back to the default behaviour - - if not macver: - macver = macrelease - - if macver: - release = macver - osname = "macosx" - - if ((macrelease + '.') >= '10.4.' and - '-arch' in get_config_vars().get('CFLAGS', '').strip()): - # The universal build will build fat binaries, but not on - # systems before 10.4 - # - # Try to detect 4-way universal builds, those have machine-type - # 'universal' instead of 'fat'. - - machine = 'fat' - cflags = get_config_vars().get('CFLAGS') - - archs = re.findall(r'-arch\s+(\S+)', cflags) - archs = tuple(sorted(set(archs))) - - if len(archs) == 1: - machine = archs[0] - elif archs == ('i386', 'ppc'): - machine = 'fat' - elif archs == ('i386', 'x86_64'): - machine = 'intel' - elif archs == ('i386', 'ppc', 'x86_64'): - machine = 'fat3' - elif archs == ('ppc64', 'x86_64'): - machine = 'fat64' - elif archs == ('i386', 'ppc', 'ppc64', 'x86_64'): - machine = 'universal' - else: - raise ValueError( - "Don't know machine value for archs=%r" % (archs,)) - - elif machine == 'i386': - # On OSX the machine type returned by uname is always the - # 32-bit variant, even if the executable architecture is - # the 64-bit variant - if sys.maxsize >= 2**32: - machine = 'x86_64' - - elif machine in ('PowerPC', 'Power_Macintosh'): - # Pick a sane name for the PPC architecture. - # See 'i386' case - if sys.maxsize >= 2**32: - machine = 'ppc64' - else: - machine = 'ppc' - - return "%s-%s-%s" % (osname, release, machine) - - -def get_python_version(): - return _PY_VERSION_SHORT - - -def _print_dict(title, data): - for index, (key, value) in enumerate(sorted(data.items())): - if index == 0: - print('%s: ' % (title)) - print('\t%s = "%s"' % (key, value)) - - -def _main(): - """Display all information sysconfig detains.""" - print('Platform: "%s"' % get_platform()) - print('Python version: "%s"' % get_python_version()) - print('Current installation scheme: "%s"' % _get_default_scheme()) - print() - _print_dict('Paths', get_paths()) - print() - _print_dict('Variables', get_config_vars()) - - -if __name__ == '__main__': - _main() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/tarfile.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/tarfile.py deleted file mode 100644 index d66d856..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/tarfile.py +++ /dev/null @@ -1,2607 +0,0 @@ -#------------------------------------------------------------------- -# tarfile.py -#------------------------------------------------------------------- -# Copyright (C) 2002 Lars Gustaebel <lars@gustaebel.de> -# All rights reserved. -# -# 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. -# -from __future__ import print_function - -"""Read from and write to tar format archives. -""" - -__version__ = "$Revision$" - -version = "0.9.0" -__author__ = "Lars Gust\u00e4bel (lars@gustaebel.de)" -__date__ = "$Date: 2011-02-25 17:42:01 +0200 (Fri, 25 Feb 2011) $" -__cvsid__ = "$Id: tarfile.py 88586 2011-02-25 15:42:01Z marc-andre.lemburg $" -__credits__ = "Gustavo Niemeyer, Niels Gust\u00e4bel, Richard Townsend." - -#--------- -# Imports -#--------- -import sys -import os -import stat -import errno -import time -import struct -import copy -import re - -try: - import grp, pwd -except ImportError: - grp = pwd = None - -# os.symlink on Windows prior to 6.0 raises NotImplementedError -symlink_exception = (AttributeError, NotImplementedError) -try: - # WindowsError (1314) will be raised if the caller does not hold the - # SeCreateSymbolicLinkPrivilege privilege - symlink_exception += (WindowsError,) -except NameError: - pass - -# from tarfile import * -__all__ = ["TarFile", "TarInfo", "is_tarfile", "TarError"] - -if sys.version_info[0] < 3: - import __builtin__ as builtins -else: - import builtins - -_open = builtins.open # Since 'open' is TarFile.open - -#--------------------------------------------------------- -# tar constants -#--------------------------------------------------------- -NUL = b"\0" # the null character -BLOCKSIZE = 512 # length of processing blocks -RECORDSIZE = BLOCKSIZE * 20 # length of records -GNU_MAGIC = b"ustar \0" # magic gnu tar string -POSIX_MAGIC = b"ustar\x0000" # magic posix tar string - -LENGTH_NAME = 100 # maximum length of a filename -LENGTH_LINK = 100 # maximum length of a linkname -LENGTH_PREFIX = 155 # maximum length of the prefix field - -REGTYPE = b"0" # regular file -AREGTYPE = b"\0" # regular file -LNKTYPE = b"1" # link (inside tarfile) -SYMTYPE = b"2" # symbolic link -CHRTYPE = b"3" # character special device -BLKTYPE = b"4" # block special device -DIRTYPE = b"5" # directory -FIFOTYPE = b"6" # fifo special device -CONTTYPE = b"7" # contiguous file - -GNUTYPE_LONGNAME = b"L" # GNU tar longname -GNUTYPE_LONGLINK = b"K" # GNU tar longlink -GNUTYPE_SPARSE = b"S" # GNU tar sparse file - -XHDTYPE = b"x" # POSIX.1-2001 extended header -XGLTYPE = b"g" # POSIX.1-2001 global header -SOLARIS_XHDTYPE = b"X" # Solaris extended header - -USTAR_FORMAT = 0 # POSIX.1-1988 (ustar) format -GNU_FORMAT = 1 # GNU tar format -PAX_FORMAT = 2 # POSIX.1-2001 (pax) format -DEFAULT_FORMAT = GNU_FORMAT - -#--------------------------------------------------------- -# tarfile constants -#--------------------------------------------------------- -# File types that tarfile supports: -SUPPORTED_TYPES = (REGTYPE, AREGTYPE, LNKTYPE, - SYMTYPE, DIRTYPE, FIFOTYPE, - CONTTYPE, CHRTYPE, BLKTYPE, - GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, - GNUTYPE_SPARSE) - -# File types that will be treated as a regular file. -REGULAR_TYPES = (REGTYPE, AREGTYPE, - CONTTYPE, GNUTYPE_SPARSE) - -# File types that are part of the GNU tar format. -GNU_TYPES = (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, - GNUTYPE_SPARSE) - -# Fields from a pax header that override a TarInfo attribute. -PAX_FIELDS = ("path", "linkpath", "size", "mtime", - "uid", "gid", "uname", "gname") - -# Fields from a pax header that are affected by hdrcharset. -PAX_NAME_FIELDS = set(("path", "linkpath", "uname", "gname")) - -# Fields in a pax header that are numbers, all other fields -# are treated as strings. -PAX_NUMBER_FIELDS = { - "atime": float, - "ctime": float, - "mtime": float, - "uid": int, - "gid": int, - "size": int -} - -#--------------------------------------------------------- -# Bits used in the mode field, values in octal. -#--------------------------------------------------------- -S_IFLNK = 0o120000 # symbolic link -S_IFREG = 0o100000 # regular file -S_IFBLK = 0o060000 # block device -S_IFDIR = 0o040000 # directory -S_IFCHR = 0o020000 # character device -S_IFIFO = 0o010000 # fifo - -TSUID = 0o4000 # set UID on execution -TSGID = 0o2000 # set GID on execution -TSVTX = 0o1000 # reserved - -TUREAD = 0o400 # read by owner -TUWRITE = 0o200 # write by owner -TUEXEC = 0o100 # execute/search by owner -TGREAD = 0o040 # read by group -TGWRITE = 0o020 # write by group -TGEXEC = 0o010 # execute/search by group -TOREAD = 0o004 # read by other -TOWRITE = 0o002 # write by other -TOEXEC = 0o001 # execute/search by other - -#--------------------------------------------------------- -# initialization -#--------------------------------------------------------- -if os.name in ("nt", "ce"): - ENCODING = "utf-8" -else: - ENCODING = sys.getfilesystemencoding() - -#--------------------------------------------------------- -# Some useful functions -#--------------------------------------------------------- - -def stn(s, length, encoding, errors): - """Convert a string to a null-terminated bytes object. - """ - s = s.encode(encoding, errors) - return s[:length] + (length - len(s)) * NUL - -def nts(s, encoding, errors): - """Convert a null-terminated bytes object to a string. - """ - p = s.find(b"\0") - if p != -1: - s = s[:p] - return s.decode(encoding, errors) - -def nti(s): - """Convert a number field to a python number. - """ - # There are two possible encodings for a number field, see - # itn() below. - if s[0] != chr(0o200): - try: - n = int(nts(s, "ascii", "strict") or "0", 8) - except ValueError: - raise InvalidHeaderError("invalid header") - else: - n = 0 - for i in range(len(s) - 1): - n <<= 8 - n += ord(s[i + 1]) - return n - -def itn(n, digits=8, format=DEFAULT_FORMAT): - """Convert a python number to a number field. - """ - # POSIX 1003.1-1988 requires numbers to be encoded as a string of - # octal digits followed by a null-byte, this allows values up to - # (8**(digits-1))-1. GNU tar allows storing numbers greater than - # that if necessary. A leading 0o200 byte indicates this particular - # encoding, the following digits-1 bytes are a big-endian - # representation. This allows values up to (256**(digits-1))-1. - if 0 <= n < 8 ** (digits - 1): - s = ("%0*o" % (digits - 1, n)).encode("ascii") + NUL - else: - if format != GNU_FORMAT or n >= 256 ** (digits - 1): - raise ValueError("overflow in number field") - - if n < 0: - # XXX We mimic GNU tar's behaviour with negative numbers, - # this could raise OverflowError. - n = struct.unpack("L", struct.pack("l", n))[0] - - s = bytearray() - for i in range(digits - 1): - s.insert(0, n & 0o377) - n >>= 8 - s.insert(0, 0o200) - return s - -def calc_chksums(buf): - """Calculate the checksum for a member's header by summing up all - characters except for the chksum field which is treated as if - it was filled with spaces. According to the GNU tar sources, - some tars (Sun and NeXT) calculate chksum with signed char, - which will be different if there are chars in the buffer with - the high bit set. So we calculate two checksums, unsigned and - signed. - """ - unsigned_chksum = 256 + sum(struct.unpack("148B", buf[:148]) + struct.unpack("356B", buf[156:512])) - signed_chksum = 256 + sum(struct.unpack("148b", buf[:148]) + struct.unpack("356b", buf[156:512])) - return unsigned_chksum, signed_chksum - -def copyfileobj(src, dst, length=None): - """Copy length bytes from fileobj src to fileobj dst. - If length is None, copy the entire content. - """ - if length == 0: - return - if length is None: - while True: - buf = src.read(16*1024) - if not buf: - break - dst.write(buf) - return - - BUFSIZE = 16 * 1024 - blocks, remainder = divmod(length, BUFSIZE) - for b in range(blocks): - buf = src.read(BUFSIZE) - if len(buf) < BUFSIZE: - raise IOError("end of file reached") - dst.write(buf) - - if remainder != 0: - buf = src.read(remainder) - if len(buf) < remainder: - raise IOError("end of file reached") - dst.write(buf) - return - -filemode_table = ( - ((S_IFLNK, "l"), - (S_IFREG, "-"), - (S_IFBLK, "b"), - (S_IFDIR, "d"), - (S_IFCHR, "c"), - (S_IFIFO, "p")), - - ((TUREAD, "r"),), - ((TUWRITE, "w"),), - ((TUEXEC|TSUID, "s"), - (TSUID, "S"), - (TUEXEC, "x")), - - ((TGREAD, "r"),), - ((TGWRITE, "w"),), - ((TGEXEC|TSGID, "s"), - (TSGID, "S"), - (TGEXEC, "x")), - - ((TOREAD, "r"),), - ((TOWRITE, "w"),), - ((TOEXEC|TSVTX, "t"), - (TSVTX, "T"), - (TOEXEC, "x")) -) - -def filemode(mode): - """Convert a file's mode to a string of the form - -rwxrwxrwx. - Used by TarFile.list() - """ - perm = [] - for table in filemode_table: - for bit, char in table: - if mode & bit == bit: - perm.append(char) - break - else: - perm.append("-") - return "".join(perm) - -class TarError(Exception): - """Base exception.""" - pass -class ExtractError(TarError): - """General exception for extract errors.""" - pass -class ReadError(TarError): - """Exception for unreadable tar archives.""" - pass -class CompressionError(TarError): - """Exception for unavailable compression methods.""" - pass -class StreamError(TarError): - """Exception for unsupported operations on stream-like TarFiles.""" - pass -class HeaderError(TarError): - """Base exception for header errors.""" - pass -class EmptyHeaderError(HeaderError): - """Exception for empty headers.""" - pass -class TruncatedHeaderError(HeaderError): - """Exception for truncated headers.""" - pass -class EOFHeaderError(HeaderError): - """Exception for end of file headers.""" - pass -class InvalidHeaderError(HeaderError): - """Exception for invalid headers.""" - pass -class SubsequentHeaderError(HeaderError): - """Exception for missing and invalid extended headers.""" - pass - -#--------------------------- -# internal stream interface -#--------------------------- -class _LowLevelFile(object): - """Low-level file object. Supports reading and writing. - It is used instead of a regular file object for streaming - access. - """ - - def __init__(self, name, mode): - mode = { - "r": os.O_RDONLY, - "w": os.O_WRONLY | os.O_CREAT | os.O_TRUNC, - }[mode] - if hasattr(os, "O_BINARY"): - mode |= os.O_BINARY - self.fd = os.open(name, mode, 0o666) - - def close(self): - os.close(self.fd) - - def read(self, size): - return os.read(self.fd, size) - - def write(self, s): - os.write(self.fd, s) - -class _Stream(object): - """Class that serves as an adapter between TarFile and - a stream-like object. The stream-like object only - needs to have a read() or write() method and is accessed - blockwise. Use of gzip or bzip2 compression is possible. - A stream-like object could be for example: sys.stdin, - sys.stdout, a socket, a tape device etc. - - _Stream is intended to be used only internally. - """ - - def __init__(self, name, mode, comptype, fileobj, bufsize): - """Construct a _Stream object. - """ - self._extfileobj = True - if fileobj is None: - fileobj = _LowLevelFile(name, mode) - self._extfileobj = False - - if comptype == '*': - # Enable transparent compression detection for the - # stream interface - fileobj = _StreamProxy(fileobj) - comptype = fileobj.getcomptype() - - self.name = name or "" - self.mode = mode - self.comptype = comptype - self.fileobj = fileobj - self.bufsize = bufsize - self.buf = b"" - self.pos = 0 - self.closed = False - - try: - if comptype == "gz": - try: - import zlib - except ImportError: - raise CompressionError("zlib module is not available") - self.zlib = zlib - self.crc = zlib.crc32(b"") - if mode == "r": - self._init_read_gz() - else: - self._init_write_gz() - - if comptype == "bz2": - try: - import bz2 - except ImportError: - raise CompressionError("bz2 module is not available") - if mode == "r": - self.dbuf = b"" - self.cmp = bz2.BZ2Decompressor() - else: - self.cmp = bz2.BZ2Compressor() - except: - if not self._extfileobj: - self.fileobj.close() - self.closed = True - raise - - def __del__(self): - if hasattr(self, "closed") and not self.closed: - self.close() - - def _init_write_gz(self): - """Initialize for writing with gzip compression. - """ - self.cmp = self.zlib.compressobj(9, self.zlib.DEFLATED, - -self.zlib.MAX_WBITS, - self.zlib.DEF_MEM_LEVEL, - 0) - timestamp = struct.pack("<L", int(time.time())) - self.__write(b"\037\213\010\010" + timestamp + b"\002\377") - if self.name.endswith(".gz"): - self.name = self.name[:-3] - # RFC1952 says we must use ISO-8859-1 for the FNAME field. - self.__write(self.name.encode("iso-8859-1", "replace") + NUL) - - def write(self, s): - """Write string s to the stream. - """ - if self.comptype == "gz": - self.crc = self.zlib.crc32(s, self.crc) - self.pos += len(s) - if self.comptype != "tar": - s = self.cmp.compress(s) - self.__write(s) - - def __write(self, s): - """Write string s to the stream if a whole new block - is ready to be written. - """ - self.buf += s - while len(self.buf) > self.bufsize: - self.fileobj.write(self.buf[:self.bufsize]) - self.buf = self.buf[self.bufsize:] - - def close(self): - """Close the _Stream object. No operation should be - done on it afterwards. - """ - if self.closed: - return - - if self.mode == "w" and self.comptype != "tar": - self.buf += self.cmp.flush() - - if self.mode == "w" and self.buf: - self.fileobj.write(self.buf) - self.buf = b"" - if self.comptype == "gz": - # The native zlib crc is an unsigned 32-bit integer, but - # the Python wrapper implicitly casts that to a signed C - # long. So, on a 32-bit box self.crc may "look negative", - # while the same crc on a 64-bit box may "look positive". - # To avoid irksome warnings from the `struct` module, force - # it to look positive on all boxes. - self.fileobj.write(struct.pack("<L", self.crc & 0xffffffff)) - self.fileobj.write(struct.pack("<L", self.pos & 0xffffFFFF)) - - if not self._extfileobj: - self.fileobj.close() - - self.closed = True - - def _init_read_gz(self): - """Initialize for reading a gzip compressed fileobj. - """ - self.cmp = self.zlib.decompressobj(-self.zlib.MAX_WBITS) - self.dbuf = b"" - - # taken from gzip.GzipFile with some alterations - if self.__read(2) != b"\037\213": - raise ReadError("not a gzip file") - if self.__read(1) != b"\010": - raise CompressionError("unsupported compression method") - - flag = ord(self.__read(1)) - self.__read(6) - - if flag & 4: - xlen = ord(self.__read(1)) + 256 * ord(self.__read(1)) - self.read(xlen) - if flag & 8: - while True: - s = self.__read(1) - if not s or s == NUL: - break - if flag & 16: - while True: - s = self.__read(1) - if not s or s == NUL: - break - if flag & 2: - self.__read(2) - - def tell(self): - """Return the stream's file pointer position. - """ - return self.pos - - def seek(self, pos=0): - """Set the stream's file pointer to pos. Negative seeking - is forbidden. - """ - if pos - self.pos >= 0: - blocks, remainder = divmod(pos - self.pos, self.bufsize) - for i in range(blocks): - self.read(self.bufsize) - self.read(remainder) - else: - raise StreamError("seeking backwards is not allowed") - return self.pos - - def read(self, size=None): - """Return the next size number of bytes from the stream. - If size is not defined, return all bytes of the stream - up to EOF. - """ - if size is None: - t = [] - while True: - buf = self._read(self.bufsize) - if not buf: - break - t.append(buf) - buf = "".join(t) - else: - buf = self._read(size) - self.pos += len(buf) - return buf - - def _read(self, size): - """Return size bytes from the stream. - """ - if self.comptype == "tar": - return self.__read(size) - - c = len(self.dbuf) - while c < size: - buf = self.__read(self.bufsize) - if not buf: - break - try: - buf = self.cmp.decompress(buf) - except IOError: - raise ReadError("invalid compressed data") - self.dbuf += buf - c += len(buf) - buf = self.dbuf[:size] - self.dbuf = self.dbuf[size:] - return buf - - def __read(self, size): - """Return size bytes from stream. If internal buffer is empty, - read another block from the stream. - """ - c = len(self.buf) - while c < size: - buf = self.fileobj.read(self.bufsize) - if not buf: - break - self.buf += buf - c += len(buf) - buf = self.buf[:size] - self.buf = self.buf[size:] - return buf -# class _Stream - -class _StreamProxy(object): - """Small proxy class that enables transparent compression - detection for the Stream interface (mode 'r|*'). - """ - - def __init__(self, fileobj): - self.fileobj = fileobj - self.buf = self.fileobj.read(BLOCKSIZE) - - def read(self, size): - self.read = self.fileobj.read - return self.buf - - def getcomptype(self): - if self.buf.startswith(b"\037\213\010"): - return "gz" - if self.buf.startswith(b"BZh91"): - return "bz2" - return "tar" - - def close(self): - self.fileobj.close() -# class StreamProxy - -class _BZ2Proxy(object): - """Small proxy class that enables external file object - support for "r:bz2" and "w:bz2" modes. This is actually - a workaround for a limitation in bz2 module's BZ2File - class which (unlike gzip.GzipFile) has no support for - a file object argument. - """ - - blocksize = 16 * 1024 - - def __init__(self, fileobj, mode): - self.fileobj = fileobj - self.mode = mode - self.name = getattr(self.fileobj, "name", None) - self.init() - - def init(self): - import bz2 - self.pos = 0 - if self.mode == "r": - self.bz2obj = bz2.BZ2Decompressor() - self.fileobj.seek(0) - self.buf = b"" - else: - self.bz2obj = bz2.BZ2Compressor() - - def read(self, size): - x = len(self.buf) - while x < size: - raw = self.fileobj.read(self.blocksize) - if not raw: - break - data = self.bz2obj.decompress(raw) - self.buf += data - x += len(data) - - buf = self.buf[:size] - self.buf = self.buf[size:] - self.pos += len(buf) - return buf - - def seek(self, pos): - if pos < self.pos: - self.init() - self.read(pos - self.pos) - - def tell(self): - return self.pos - - def write(self, data): - self.pos += len(data) - raw = self.bz2obj.compress(data) - self.fileobj.write(raw) - - def close(self): - if self.mode == "w": - raw = self.bz2obj.flush() - self.fileobj.write(raw) -# class _BZ2Proxy - -#------------------------ -# Extraction file object -#------------------------ -class _FileInFile(object): - """A thin wrapper around an existing file object that - provides a part of its data as an individual file - object. - """ - - def __init__(self, fileobj, offset, size, blockinfo=None): - self.fileobj = fileobj - self.offset = offset - self.size = size - self.position = 0 - - if blockinfo is None: - blockinfo = [(0, size)] - - # Construct a map with data and zero blocks. - self.map_index = 0 - self.map = [] - lastpos = 0 - realpos = self.offset - for offset, size in blockinfo: - if offset > lastpos: - self.map.append((False, lastpos, offset, None)) - self.map.append((True, offset, offset + size, realpos)) - realpos += size - lastpos = offset + size - if lastpos < self.size: - self.map.append((False, lastpos, self.size, None)) - - def seekable(self): - if not hasattr(self.fileobj, "seekable"): - # XXX gzip.GzipFile and bz2.BZ2File - return True - return self.fileobj.seekable() - - def tell(self): - """Return the current file position. - """ - return self.position - - def seek(self, position): - """Seek to a position in the file. - """ - self.position = position - - def read(self, size=None): - """Read data from the file. - """ - if size is None: - size = self.size - self.position - else: - size = min(size, self.size - self.position) - - buf = b"" - while size > 0: - while True: - data, start, stop, offset = self.map[self.map_index] - if start <= self.position < stop: - break - else: - self.map_index += 1 - if self.map_index == len(self.map): - self.map_index = 0 - length = min(size, stop - self.position) - if data: - self.fileobj.seek(offset + (self.position - start)) - buf += self.fileobj.read(length) - else: - buf += NUL * length - size -= length - self.position += length - return buf -#class _FileInFile - - -class ExFileObject(object): - """File-like object for reading an archive member. - Is returned by TarFile.extractfile(). - """ - blocksize = 1024 - - def __init__(self, tarfile, tarinfo): - self.fileobj = _FileInFile(tarfile.fileobj, - tarinfo.offset_data, - tarinfo.size, - tarinfo.sparse) - self.name = tarinfo.name - self.mode = "r" - self.closed = False - self.size = tarinfo.size - - self.position = 0 - self.buffer = b"" - - def readable(self): - return True - - def writable(self): - return False - - def seekable(self): - return self.fileobj.seekable() - - def read(self, size=None): - """Read at most size bytes from the file. If size is not - present or None, read all data until EOF is reached. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - buf = b"" - if self.buffer: - if size is None: - buf = self.buffer - self.buffer = b"" - else: - buf = self.buffer[:size] - self.buffer = self.buffer[size:] - - if size is None: - buf += self.fileobj.read() - else: - buf += self.fileobj.read(size - len(buf)) - - self.position += len(buf) - return buf - - # XXX TextIOWrapper uses the read1() method. - read1 = read - - def readline(self, size=-1): - """Read one entire line from the file. If size is present - and non-negative, return a string with at most that - size, which may be an incomplete line. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - pos = self.buffer.find(b"\n") + 1 - if pos == 0: - # no newline found. - while True: - buf = self.fileobj.read(self.blocksize) - self.buffer += buf - if not buf or b"\n" in buf: - pos = self.buffer.find(b"\n") + 1 - if pos == 0: - # no newline found. - pos = len(self.buffer) - break - - if size != -1: - pos = min(size, pos) - - buf = self.buffer[:pos] - self.buffer = self.buffer[pos:] - self.position += len(buf) - return buf - - def readlines(self): - """Return a list with all remaining lines. - """ - result = [] - while True: - line = self.readline() - if not line: break - result.append(line) - return result - - def tell(self): - """Return the current file position. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - return self.position - - def seek(self, pos, whence=os.SEEK_SET): - """Seek to a position in the file. - """ - if self.closed: - raise ValueError("I/O operation on closed file") - - if whence == os.SEEK_SET: - self.position = min(max(pos, 0), self.size) - elif whence == os.SEEK_CUR: - if pos < 0: - self.position = max(self.position + pos, 0) - else: - self.position = min(self.position + pos, self.size) - elif whence == os.SEEK_END: - self.position = max(min(self.size + pos, self.size), 0) - else: - raise ValueError("Invalid argument") - - self.buffer = b"" - self.fileobj.seek(self.position) - - def close(self): - """Close the file object. - """ - self.closed = True - - def __iter__(self): - """Get an iterator over the file's lines. - """ - while True: - line = self.readline() - if not line: - break - yield line -#class ExFileObject - -#------------------ -# Exported Classes -#------------------ -class TarInfo(object): - """Informational class which holds the details about an - archive member given by a tar header block. - TarInfo objects are returned by TarFile.getmember(), - TarFile.getmembers() and TarFile.gettarinfo() and are - usually created internally. - """ - - __slots__ = ("name", "mode", "uid", "gid", "size", "mtime", - "chksum", "type", "linkname", "uname", "gname", - "devmajor", "devminor", - "offset", "offset_data", "pax_headers", "sparse", - "tarfile", "_sparse_structs", "_link_target") - - def __init__(self, name=""): - """Construct a TarInfo object. name is the optional name - of the member. - """ - self.name = name # member name - self.mode = 0o644 # file permissions - self.uid = 0 # user id - self.gid = 0 # group id - self.size = 0 # file size - self.mtime = 0 # modification time - self.chksum = 0 # header checksum - self.type = REGTYPE # member type - self.linkname = "" # link name - self.uname = "" # user name - self.gname = "" # group name - self.devmajor = 0 # device major number - self.devminor = 0 # device minor number - - self.offset = 0 # the tar header starts here - self.offset_data = 0 # the file's data starts here - - self.sparse = None # sparse member information - self.pax_headers = {} # pax header information - - # In pax headers the "name" and "linkname" field are called - # "path" and "linkpath". - def _getpath(self): - return self.name - def _setpath(self, name): - self.name = name - path = property(_getpath, _setpath) - - def _getlinkpath(self): - return self.linkname - def _setlinkpath(self, linkname): - self.linkname = linkname - linkpath = property(_getlinkpath, _setlinkpath) - - def __repr__(self): - return "<%s %r at %#x>" % (self.__class__.__name__,self.name,id(self)) - - def get_info(self): - """Return the TarInfo's attributes as a dictionary. - """ - info = { - "name": self.name, - "mode": self.mode & 0o7777, - "uid": self.uid, - "gid": self.gid, - "size": self.size, - "mtime": self.mtime, - "chksum": self.chksum, - "type": self.type, - "linkname": self.linkname, - "uname": self.uname, - "gname": self.gname, - "devmajor": self.devmajor, - "devminor": self.devminor - } - - if info["type"] == DIRTYPE and not info["name"].endswith("/"): - info["name"] += "/" - - return info - - def tobuf(self, format=DEFAULT_FORMAT, encoding=ENCODING, errors="surrogateescape"): - """Return a tar header as a string of 512 byte blocks. - """ - info = self.get_info() - - if format == USTAR_FORMAT: - return self.create_ustar_header(info, encoding, errors) - elif format == GNU_FORMAT: - return self.create_gnu_header(info, encoding, errors) - elif format == PAX_FORMAT: - return self.create_pax_header(info, encoding) - else: - raise ValueError("invalid format") - - def create_ustar_header(self, info, encoding, errors): - """Return the object as a ustar header block. - """ - info["magic"] = POSIX_MAGIC - - if len(info["linkname"]) > LENGTH_LINK: - raise ValueError("linkname is too long") - - if len(info["name"]) > LENGTH_NAME: - info["prefix"], info["name"] = self._posix_split_name(info["name"]) - - return self._create_header(info, USTAR_FORMAT, encoding, errors) - - def create_gnu_header(self, info, encoding, errors): - """Return the object as a GNU header block sequence. - """ - info["magic"] = GNU_MAGIC - - buf = b"" - if len(info["linkname"]) > LENGTH_LINK: - buf += self._create_gnu_long_header(info["linkname"], GNUTYPE_LONGLINK, encoding, errors) - - if len(info["name"]) > LENGTH_NAME: - buf += self._create_gnu_long_header(info["name"], GNUTYPE_LONGNAME, encoding, errors) - - return buf + self._create_header(info, GNU_FORMAT, encoding, errors) - - def create_pax_header(self, info, encoding): - """Return the object as a ustar header block. If it cannot be - represented this way, prepend a pax extended header sequence - with supplement information. - """ - info["magic"] = POSIX_MAGIC - pax_headers = self.pax_headers.copy() - - # Test string fields for values that exceed the field length or cannot - # be represented in ASCII encoding. - for name, hname, length in ( - ("name", "path", LENGTH_NAME), ("linkname", "linkpath", LENGTH_LINK), - ("uname", "uname", 32), ("gname", "gname", 32)): - - if hname in pax_headers: - # The pax header has priority. - continue - - # Try to encode the string as ASCII. - try: - info[name].encode("ascii", "strict") - except UnicodeEncodeError: - pax_headers[hname] = info[name] - continue - - if len(info[name]) > length: - pax_headers[hname] = info[name] - - # Test number fields for values that exceed the field limit or values - # that like to be stored as float. - for name, digits in (("uid", 8), ("gid", 8), ("size", 12), ("mtime", 12)): - if name in pax_headers: - # The pax header has priority. Avoid overflow. - info[name] = 0 - continue - - val = info[name] - if not 0 <= val < 8 ** (digits - 1) or isinstance(val, float): - pax_headers[name] = str(val) - info[name] = 0 - - # Create a pax extended header if necessary. - if pax_headers: - buf = self._create_pax_generic_header(pax_headers, XHDTYPE, encoding) - else: - buf = b"" - - return buf + self._create_header(info, USTAR_FORMAT, "ascii", "replace") - - @classmethod - def create_pax_global_header(cls, pax_headers): - """Return the object as a pax global header block sequence. - """ - return cls._create_pax_generic_header(pax_headers, XGLTYPE, "utf8") - - def _posix_split_name(self, name): - """Split a name longer than 100 chars into a prefix - and a name part. - """ - prefix = name[:LENGTH_PREFIX + 1] - while prefix and prefix[-1] != "/": - prefix = prefix[:-1] - - name = name[len(prefix):] - prefix = prefix[:-1] - - if not prefix or len(name) > LENGTH_NAME: - raise ValueError("name is too long") - return prefix, name - - @staticmethod - def _create_header(info, format, encoding, errors): - """Return a header block. info is a dictionary with file - information, format must be one of the *_FORMAT constants. - """ - parts = [ - stn(info.get("name", ""), 100, encoding, errors), - itn(info.get("mode", 0) & 0o7777, 8, format), - itn(info.get("uid", 0), 8, format), - itn(info.get("gid", 0), 8, format), - itn(info.get("size", 0), 12, format), - itn(info.get("mtime", 0), 12, format), - b" ", # checksum field - info.get("type", REGTYPE), - stn(info.get("linkname", ""), 100, encoding, errors), - info.get("magic", POSIX_MAGIC), - stn(info.get("uname", ""), 32, encoding, errors), - stn(info.get("gname", ""), 32, encoding, errors), - itn(info.get("devmajor", 0), 8, format), - itn(info.get("devminor", 0), 8, format), - stn(info.get("prefix", ""), 155, encoding, errors) - ] - - buf = struct.pack("%ds" % BLOCKSIZE, b"".join(parts)) - chksum = calc_chksums(buf[-BLOCKSIZE:])[0] - buf = buf[:-364] + ("%06o\0" % chksum).encode("ascii") + buf[-357:] - return buf - - @staticmethod - def _create_payload(payload): - """Return the string payload filled with zero bytes - up to the next 512 byte border. - """ - blocks, remainder = divmod(len(payload), BLOCKSIZE) - if remainder > 0: - payload += (BLOCKSIZE - remainder) * NUL - return payload - - @classmethod - def _create_gnu_long_header(cls, name, type, encoding, errors): - """Return a GNUTYPE_LONGNAME or GNUTYPE_LONGLINK sequence - for name. - """ - name = name.encode(encoding, errors) + NUL - - info = {} - info["name"] = "././@LongLink" - info["type"] = type - info["size"] = len(name) - info["magic"] = GNU_MAGIC - - # create extended header + name blocks. - return cls._create_header(info, USTAR_FORMAT, encoding, errors) + \ - cls._create_payload(name) - - @classmethod - def _create_pax_generic_header(cls, pax_headers, type, encoding): - """Return a POSIX.1-2008 extended or global header sequence - that contains a list of keyword, value pairs. The values - must be strings. - """ - # Check if one of the fields contains surrogate characters and thereby - # forces hdrcharset=BINARY, see _proc_pax() for more information. - binary = False - for keyword, value in pax_headers.items(): - try: - value.encode("utf8", "strict") - except UnicodeEncodeError: - binary = True - break - - records = b"" - if binary: - # Put the hdrcharset field at the beginning of the header. - records += b"21 hdrcharset=BINARY\n" - - for keyword, value in pax_headers.items(): - keyword = keyword.encode("utf8") - if binary: - # Try to restore the original byte representation of `value'. - # Needless to say, that the encoding must match the string. - value = value.encode(encoding, "surrogateescape") - else: - value = value.encode("utf8") - - l = len(keyword) + len(value) + 3 # ' ' + '=' + '\n' - n = p = 0 - while True: - n = l + len(str(p)) - if n == p: - break - p = n - records += bytes(str(p), "ascii") + b" " + keyword + b"=" + value + b"\n" - - # We use a hardcoded "././@PaxHeader" name like star does - # instead of the one that POSIX recommends. - info = {} - info["name"] = "././@PaxHeader" - info["type"] = type - info["size"] = len(records) - info["magic"] = POSIX_MAGIC - - # Create pax header + record blocks. - return cls._create_header(info, USTAR_FORMAT, "ascii", "replace") + \ - cls._create_payload(records) - - @classmethod - def frombuf(cls, buf, encoding, errors): - """Construct a TarInfo object from a 512 byte bytes object. - """ - if len(buf) == 0: - raise EmptyHeaderError("empty header") - if len(buf) != BLOCKSIZE: - raise TruncatedHeaderError("truncated header") - if buf.count(NUL) == BLOCKSIZE: - raise EOFHeaderError("end of file header") - - chksum = nti(buf[148:156]) - if chksum not in calc_chksums(buf): - raise InvalidHeaderError("bad checksum") - - obj = cls() - obj.name = nts(buf[0:100], encoding, errors) - obj.mode = nti(buf[100:108]) - obj.uid = nti(buf[108:116]) - obj.gid = nti(buf[116:124]) - obj.size = nti(buf[124:136]) - obj.mtime = nti(buf[136:148]) - obj.chksum = chksum - obj.type = buf[156:157] - obj.linkname = nts(buf[157:257], encoding, errors) - obj.uname = nts(buf[265:297], encoding, errors) - obj.gname = nts(buf[297:329], encoding, errors) - obj.devmajor = nti(buf[329:337]) - obj.devminor = nti(buf[337:345]) - prefix = nts(buf[345:500], encoding, errors) - - # Old V7 tar format represents a directory as a regular - # file with a trailing slash. - if obj.type == AREGTYPE and obj.name.endswith("/"): - obj.type = DIRTYPE - - # The old GNU sparse format occupies some of the unused - # space in the buffer for up to 4 sparse structures. - # Save the them for later processing in _proc_sparse(). - if obj.type == GNUTYPE_SPARSE: - pos = 386 - structs = [] - for i in range(4): - try: - offset = nti(buf[pos:pos + 12]) - numbytes = nti(buf[pos + 12:pos + 24]) - except ValueError: - break - structs.append((offset, numbytes)) - pos += 24 - isextended = bool(buf[482]) - origsize = nti(buf[483:495]) - obj._sparse_structs = (structs, isextended, origsize) - - # Remove redundant slashes from directories. - if obj.isdir(): - obj.name = obj.name.rstrip("/") - - # Reconstruct a ustar longname. - if prefix and obj.type not in GNU_TYPES: - obj.name = prefix + "/" + obj.name - return obj - - @classmethod - def fromtarfile(cls, tarfile): - """Return the next TarInfo object from TarFile object - tarfile. - """ - buf = tarfile.fileobj.read(BLOCKSIZE) - obj = cls.frombuf(buf, tarfile.encoding, tarfile.errors) - obj.offset = tarfile.fileobj.tell() - BLOCKSIZE - return obj._proc_member(tarfile) - - #-------------------------------------------------------------------------- - # The following are methods that are called depending on the type of a - # member. The entry point is _proc_member() which can be overridden in a - # subclass to add custom _proc_*() methods. A _proc_*() method MUST - # implement the following - # operations: - # 1. Set self.offset_data to the position where the data blocks begin, - # if there is data that follows. - # 2. Set tarfile.offset to the position where the next member's header will - # begin. - # 3. Return self or another valid TarInfo object. - def _proc_member(self, tarfile): - """Choose the right processing method depending on - the type and call it. - """ - if self.type in (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK): - return self._proc_gnulong(tarfile) - elif self.type == GNUTYPE_SPARSE: - return self._proc_sparse(tarfile) - elif self.type in (XHDTYPE, XGLTYPE, SOLARIS_XHDTYPE): - return self._proc_pax(tarfile) - else: - return self._proc_builtin(tarfile) - - def _proc_builtin(self, tarfile): - """Process a builtin type or an unknown type which - will be treated as a regular file. - """ - self.offset_data = tarfile.fileobj.tell() - offset = self.offset_data - if self.isreg() or self.type not in SUPPORTED_TYPES: - # Skip the following data blocks. - offset += self._block(self.size) - tarfile.offset = offset - - # Patch the TarInfo object with saved global - # header information. - self._apply_pax_info(tarfile.pax_headers, tarfile.encoding, tarfile.errors) - - return self - - def _proc_gnulong(self, tarfile): - """Process the blocks that hold a GNU longname - or longlink member. - """ - buf = tarfile.fileobj.read(self._block(self.size)) - - # Fetch the next header and process it. - try: - next = self.fromtarfile(tarfile) - except HeaderError: - raise SubsequentHeaderError("missing or bad subsequent header") - - # Patch the TarInfo object from the next header with - # the longname information. - next.offset = self.offset - if self.type == GNUTYPE_LONGNAME: - next.name = nts(buf, tarfile.encoding, tarfile.errors) - elif self.type == GNUTYPE_LONGLINK: - next.linkname = nts(buf, tarfile.encoding, tarfile.errors) - - return next - - def _proc_sparse(self, tarfile): - """Process a GNU sparse header plus extra headers. - """ - # We already collected some sparse structures in frombuf(). - structs, isextended, origsize = self._sparse_structs - del self._sparse_structs - - # Collect sparse structures from extended header blocks. - while isextended: - buf = tarfile.fileobj.read(BLOCKSIZE) - pos = 0 - for i in range(21): - try: - offset = nti(buf[pos:pos + 12]) - numbytes = nti(buf[pos + 12:pos + 24]) - except ValueError: - break - if offset and numbytes: - structs.append((offset, numbytes)) - pos += 24 - isextended = bool(buf[504]) - self.sparse = structs - - self.offset_data = tarfile.fileobj.tell() - tarfile.offset = self.offset_data + self._block(self.size) - self.size = origsize - return self - - def _proc_pax(self, tarfile): - """Process an extended or global header as described in - POSIX.1-2008. - """ - # Read the header information. - buf = tarfile.fileobj.read(self._block(self.size)) - - # A pax header stores supplemental information for either - # the following file (extended) or all following files - # (global). - if self.type == XGLTYPE: - pax_headers = tarfile.pax_headers - else: - pax_headers = tarfile.pax_headers.copy() - - # Check if the pax header contains a hdrcharset field. This tells us - # the encoding of the path, linkpath, uname and gname fields. Normally, - # these fields are UTF-8 encoded but since POSIX.1-2008 tar - # implementations are allowed to store them as raw binary strings if - # the translation to UTF-8 fails. - match = re.search(br"\d+ hdrcharset=([^\n]+)\n", buf) - if match is not None: - pax_headers["hdrcharset"] = match.group(1).decode("utf8") - - # For the time being, we don't care about anything other than "BINARY". - # The only other value that is currently allowed by the standard is - # "ISO-IR 10646 2000 UTF-8" in other words UTF-8. - hdrcharset = pax_headers.get("hdrcharset") - if hdrcharset == "BINARY": - encoding = tarfile.encoding - else: - encoding = "utf8" - - # Parse pax header information. A record looks like that: - # "%d %s=%s\n" % (length, keyword, value). length is the size - # of the complete record including the length field itself and - # the newline. keyword and value are both UTF-8 encoded strings. - regex = re.compile(br"(\d+) ([^=]+)=") - pos = 0 - while True: - match = regex.match(buf, pos) - if not match: - break - - length, keyword = match.groups() - length = int(length) - value = buf[match.end(2) + 1:match.start(1) + length - 1] - - # Normally, we could just use "utf8" as the encoding and "strict" - # as the error handler, but we better not take the risk. For - # example, GNU tar <= 1.23 is known to store filenames it cannot - # translate to UTF-8 as raw strings (unfortunately without a - # hdrcharset=BINARY header). - # We first try the strict standard encoding, and if that fails we - # fall back on the user's encoding and error handler. - keyword = self._decode_pax_field(keyword, "utf8", "utf8", - tarfile.errors) - if keyword in PAX_NAME_FIELDS: - value = self._decode_pax_field(value, encoding, tarfile.encoding, - tarfile.errors) - else: - value = self._decode_pax_field(value, "utf8", "utf8", - tarfile.errors) - - pax_headers[keyword] = value - pos += length - - # Fetch the next header. - try: - next = self.fromtarfile(tarfile) - except HeaderError: - raise SubsequentHeaderError("missing or bad subsequent header") - - # Process GNU sparse information. - if "GNU.sparse.map" in pax_headers: - # GNU extended sparse format version 0.1. - self._proc_gnusparse_01(next, pax_headers) - - elif "GNU.sparse.size" in pax_headers: - # GNU extended sparse format version 0.0. - self._proc_gnusparse_00(next, pax_headers, buf) - - elif pax_headers.get("GNU.sparse.major") == "1" and pax_headers.get("GNU.sparse.minor") == "0": - # GNU extended sparse format version 1.0. - self._proc_gnusparse_10(next, pax_headers, tarfile) - - if self.type in (XHDTYPE, SOLARIS_XHDTYPE): - # Patch the TarInfo object with the extended header info. - next._apply_pax_info(pax_headers, tarfile.encoding, tarfile.errors) - next.offset = self.offset - - if "size" in pax_headers: - # If the extended header replaces the size field, - # we need to recalculate the offset where the next - # header starts. - offset = next.offset_data - if next.isreg() or next.type not in SUPPORTED_TYPES: - offset += next._block(next.size) - tarfile.offset = offset - - return next - - def _proc_gnusparse_00(self, next, pax_headers, buf): - """Process a GNU tar extended sparse header, version 0.0. - """ - offsets = [] - for match in re.finditer(br"\d+ GNU.sparse.offset=(\d+)\n", buf): - offsets.append(int(match.group(1))) - numbytes = [] - for match in re.finditer(br"\d+ GNU.sparse.numbytes=(\d+)\n", buf): - numbytes.append(int(match.group(1))) - next.sparse = list(zip(offsets, numbytes)) - - def _proc_gnusparse_01(self, next, pax_headers): - """Process a GNU tar extended sparse header, version 0.1. - """ - sparse = [int(x) for x in pax_headers["GNU.sparse.map"].split(",")] - next.sparse = list(zip(sparse[::2], sparse[1::2])) - - def _proc_gnusparse_10(self, next, pax_headers, tarfile): - """Process a GNU tar extended sparse header, version 1.0. - """ - fields = None - sparse = [] - buf = tarfile.fileobj.read(BLOCKSIZE) - fields, buf = buf.split(b"\n", 1) - fields = int(fields) - while len(sparse) < fields * 2: - if b"\n" not in buf: - buf += tarfile.fileobj.read(BLOCKSIZE) - number, buf = buf.split(b"\n", 1) - sparse.append(int(number)) - next.offset_data = tarfile.fileobj.tell() - next.sparse = list(zip(sparse[::2], sparse[1::2])) - - def _apply_pax_info(self, pax_headers, encoding, errors): - """Replace fields with supplemental information from a previous - pax extended or global header. - """ - for keyword, value in pax_headers.items(): - if keyword == "GNU.sparse.name": - setattr(self, "path", value) - elif keyword == "GNU.sparse.size": - setattr(self, "size", int(value)) - elif keyword == "GNU.sparse.realsize": - setattr(self, "size", int(value)) - elif keyword in PAX_FIELDS: - if keyword in PAX_NUMBER_FIELDS: - try: - value = PAX_NUMBER_FIELDS[keyword](value) - except ValueError: - value = 0 - if keyword == "path": - value = value.rstrip("/") - setattr(self, keyword, value) - - self.pax_headers = pax_headers.copy() - - def _decode_pax_field(self, value, encoding, fallback_encoding, fallback_errors): - """Decode a single field from a pax record. - """ - try: - return value.decode(encoding, "strict") - except UnicodeDecodeError: - return value.decode(fallback_encoding, fallback_errors) - - def _block(self, count): - """Round up a byte count by BLOCKSIZE and return it, - e.g. _block(834) => 1024. - """ - blocks, remainder = divmod(count, BLOCKSIZE) - if remainder: - blocks += 1 - return blocks * BLOCKSIZE - - def isreg(self): - return self.type in REGULAR_TYPES - def isfile(self): - return self.isreg() - def isdir(self): - return self.type == DIRTYPE - def issym(self): - return self.type == SYMTYPE - def islnk(self): - return self.type == LNKTYPE - def ischr(self): - return self.type == CHRTYPE - def isblk(self): - return self.type == BLKTYPE - def isfifo(self): - return self.type == FIFOTYPE - def issparse(self): - return self.sparse is not None - def isdev(self): - return self.type in (CHRTYPE, BLKTYPE, FIFOTYPE) -# class TarInfo - -class TarFile(object): - """The TarFile Class provides an interface to tar archives. - """ - - debug = 0 # May be set from 0 (no msgs) to 3 (all msgs) - - dereference = False # If true, add content of linked file to the - # tar file, else the link. - - ignore_zeros = False # If true, skips empty or invalid blocks and - # continues processing. - - errorlevel = 1 # If 0, fatal errors only appear in debug - # messages (if debug >= 0). If > 0, errors - # are passed to the caller as exceptions. - - format = DEFAULT_FORMAT # The format to use when creating an archive. - - encoding = ENCODING # Encoding for 8-bit character strings. - - errors = None # Error handler for unicode conversion. - - tarinfo = TarInfo # The default TarInfo class to use. - - fileobject = ExFileObject # The default ExFileObject class to use. - - def __init__(self, name=None, mode="r", fileobj=None, format=None, - tarinfo=None, dereference=None, ignore_zeros=None, encoding=None, - errors="surrogateescape", pax_headers=None, debug=None, errorlevel=None): - """Open an (uncompressed) tar archive `name'. `mode' is either 'r' to - read from an existing archive, 'a' to append data to an existing - file or 'w' to create a new file overwriting an existing one. `mode' - defaults to 'r'. - If `fileobj' is given, it is used for reading or writing data. If it - can be determined, `mode' is overridden by `fileobj's mode. - `fileobj' is not closed, when TarFile is closed. - """ - if len(mode) > 1 or mode not in "raw": - raise ValueError("mode must be 'r', 'a' or 'w'") - self.mode = mode - self._mode = {"r": "rb", "a": "r+b", "w": "wb"}[mode] - - if not fileobj: - if self.mode == "a" and not os.path.exists(name): - # Create nonexistent files in append mode. - self.mode = "w" - self._mode = "wb" - fileobj = bltn_open(name, self._mode) - self._extfileobj = False - else: - if name is None and hasattr(fileobj, "name"): - name = fileobj.name - if hasattr(fileobj, "mode"): - self._mode = fileobj.mode - self._extfileobj = True - self.name = os.path.abspath(name) if name else None - self.fileobj = fileobj - - # Init attributes. - if format is not None: - self.format = format - if tarinfo is not None: - self.tarinfo = tarinfo - if dereference is not None: - self.dereference = dereference - if ignore_zeros is not None: - self.ignore_zeros = ignore_zeros - if encoding is not None: - self.encoding = encoding - self.errors = errors - - if pax_headers is not None and self.format == PAX_FORMAT: - self.pax_headers = pax_headers - else: - self.pax_headers = {} - - if debug is not None: - self.debug = debug - if errorlevel is not None: - self.errorlevel = errorlevel - - # Init datastructures. - self.closed = False - self.members = [] # list of members as TarInfo objects - self._loaded = False # flag if all members have been read - self.offset = self.fileobj.tell() - # current position in the archive file - self.inodes = {} # dictionary caching the inodes of - # archive members already added - - try: - if self.mode == "r": - self.firstmember = None - self.firstmember = self.next() - - if self.mode == "a": - # Move to the end of the archive, - # before the first empty block. - while True: - self.fileobj.seek(self.offset) - try: - tarinfo = self.tarinfo.fromtarfile(self) - self.members.append(tarinfo) - except EOFHeaderError: - self.fileobj.seek(self.offset) - break - except HeaderError as e: - raise ReadError(str(e)) - - if self.mode in "aw": - self._loaded = True - - if self.pax_headers: - buf = self.tarinfo.create_pax_global_header(self.pax_headers.copy()) - self.fileobj.write(buf) - self.offset += len(buf) - except: - if not self._extfileobj: - self.fileobj.close() - self.closed = True - raise - - #-------------------------------------------------------------------------- - # Below are the classmethods which act as alternate constructors to the - # TarFile class. The open() method is the only one that is needed for - # public use; it is the "super"-constructor and is able to select an - # adequate "sub"-constructor for a particular compression using the mapping - # from OPEN_METH. - # - # This concept allows one to subclass TarFile without losing the comfort of - # the super-constructor. A sub-constructor is registered and made available - # by adding it to the mapping in OPEN_METH. - - @classmethod - def open(cls, name=None, mode="r", fileobj=None, bufsize=RECORDSIZE, **kwargs): - """Open a tar archive for reading, writing or appending. Return - an appropriate TarFile class. - - mode: - 'r' or 'r:*' open for reading with transparent compression - 'r:' open for reading exclusively uncompressed - 'r:gz' open for reading with gzip compression - 'r:bz2' open for reading with bzip2 compression - 'a' or 'a:' open for appending, creating the file if necessary - 'w' or 'w:' open for writing without compression - 'w:gz' open for writing with gzip compression - 'w:bz2' open for writing with bzip2 compression - - 'r|*' open a stream of tar blocks with transparent compression - 'r|' open an uncompressed stream of tar blocks for reading - 'r|gz' open a gzip compressed stream of tar blocks - 'r|bz2' open a bzip2 compressed stream of tar blocks - 'w|' open an uncompressed stream for writing - 'w|gz' open a gzip compressed stream for writing - 'w|bz2' open a bzip2 compressed stream for writing - """ - - if not name and not fileobj: - raise ValueError("nothing to open") - - if mode in ("r", "r:*"): - # Find out which *open() is appropriate for opening the file. - for comptype in cls.OPEN_METH: - func = getattr(cls, cls.OPEN_METH[comptype]) - if fileobj is not None: - saved_pos = fileobj.tell() - try: - return func(name, "r", fileobj, **kwargs) - except (ReadError, CompressionError) as e: - if fileobj is not None: - fileobj.seek(saved_pos) - continue - raise ReadError("file could not be opened successfully") - - elif ":" in mode: - filemode, comptype = mode.split(":", 1) - filemode = filemode or "r" - comptype = comptype or "tar" - - # Select the *open() function according to - # given compression. - if comptype in cls.OPEN_METH: - func = getattr(cls, cls.OPEN_METH[comptype]) - else: - raise CompressionError("unknown compression type %r" % comptype) - return func(name, filemode, fileobj, **kwargs) - - elif "|" in mode: - filemode, comptype = mode.split("|", 1) - filemode = filemode or "r" - comptype = comptype or "tar" - - if filemode not in "rw": - raise ValueError("mode must be 'r' or 'w'") - - stream = _Stream(name, filemode, comptype, fileobj, bufsize) - try: - t = cls(name, filemode, stream, **kwargs) - except: - stream.close() - raise - t._extfileobj = False - return t - - elif mode in "aw": - return cls.taropen(name, mode, fileobj, **kwargs) - - raise ValueError("undiscernible mode") - - @classmethod - def taropen(cls, name, mode="r", fileobj=None, **kwargs): - """Open uncompressed tar archive name for reading or writing. - """ - if len(mode) > 1 or mode not in "raw": - raise ValueError("mode must be 'r', 'a' or 'w'") - return cls(name, mode, fileobj, **kwargs) - - @classmethod - def gzopen(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): - """Open gzip compressed tar archive name for reading or writing. - Appending is not allowed. - """ - if len(mode) > 1 or mode not in "rw": - raise ValueError("mode must be 'r' or 'w'") - - try: - import gzip - gzip.GzipFile - except (ImportError, AttributeError): - raise CompressionError("gzip module is not available") - - extfileobj = fileobj is not None - try: - fileobj = gzip.GzipFile(name, mode + "b", compresslevel, fileobj) - t = cls.taropen(name, mode, fileobj, **kwargs) - except IOError: - if not extfileobj and fileobj is not None: - fileobj.close() - if fileobj is None: - raise - raise ReadError("not a gzip file") - except: - if not extfileobj and fileobj is not None: - fileobj.close() - raise - t._extfileobj = extfileobj - return t - - @classmethod - def bz2open(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): - """Open bzip2 compressed tar archive name for reading or writing. - Appending is not allowed. - """ - if len(mode) > 1 or mode not in "rw": - raise ValueError("mode must be 'r' or 'w'.") - - try: - import bz2 - except ImportError: - raise CompressionError("bz2 module is not available") - - if fileobj is not None: - fileobj = _BZ2Proxy(fileobj, mode) - else: - fileobj = bz2.BZ2File(name, mode, compresslevel=compresslevel) - - try: - t = cls.taropen(name, mode, fileobj, **kwargs) - except (IOError, EOFError): - fileobj.close() - raise ReadError("not a bzip2 file") - t._extfileobj = False - return t - - # All *open() methods are registered here. - OPEN_METH = { - "tar": "taropen", # uncompressed tar - "gz": "gzopen", # gzip compressed tar - "bz2": "bz2open" # bzip2 compressed tar - } - - #-------------------------------------------------------------------------- - # The public methods which TarFile provides: - - def close(self): - """Close the TarFile. In write-mode, two finishing zero blocks are - appended to the archive. - """ - if self.closed: - return - - if self.mode in "aw": - self.fileobj.write(NUL * (BLOCKSIZE * 2)) - self.offset += (BLOCKSIZE * 2) - # fill up the end with zero-blocks - # (like option -b20 for tar does) - blocks, remainder = divmod(self.offset, RECORDSIZE) - if remainder > 0: - self.fileobj.write(NUL * (RECORDSIZE - remainder)) - - if not self._extfileobj: - self.fileobj.close() - self.closed = True - - def getmember(self, name): - """Return a TarInfo object for member `name'. If `name' can not be - found in the archive, KeyError is raised. If a member occurs more - than once in the archive, its last occurrence is assumed to be the - most up-to-date version. - """ - tarinfo = self._getmember(name) - if tarinfo is None: - raise KeyError("filename %r not found" % name) - return tarinfo - - def getmembers(self): - """Return the members of the archive as a list of TarInfo objects. The - list has the same order as the members in the archive. - """ - self._check() - if not self._loaded: # if we want to obtain a list of - self._load() # all members, we first have to - # scan the whole archive. - return self.members - - def getnames(self): - """Return the members of the archive as a list of their names. It has - the same order as the list returned by getmembers(). - """ - return [tarinfo.name for tarinfo in self.getmembers()] - - def gettarinfo(self, name=None, arcname=None, fileobj=None): - """Create a TarInfo object for either the file `name' or the file - object `fileobj' (using os.fstat on its file descriptor). You can - modify some of the TarInfo's attributes before you add it using - addfile(). If given, `arcname' specifies an alternative name for the - file in the archive. - """ - self._check("aw") - - # When fileobj is given, replace name by - # fileobj's real name. - if fileobj is not None: - name = fileobj.name - - # Building the name of the member in the archive. - # Backward slashes are converted to forward slashes, - # Absolute paths are turned to relative paths. - if arcname is None: - arcname = name - drv, arcname = os.path.splitdrive(arcname) - arcname = arcname.replace(os.sep, "/") - arcname = arcname.lstrip("/") - - # Now, fill the TarInfo object with - # information specific for the file. - tarinfo = self.tarinfo() - tarinfo.tarfile = self - - # Use os.stat or os.lstat, depending on platform - # and if symlinks shall be resolved. - if fileobj is None: - if hasattr(os, "lstat") and not self.dereference: - statres = os.lstat(name) - else: - statres = os.stat(name) - else: - statres = os.fstat(fileobj.fileno()) - linkname = "" - - stmd = statres.st_mode - if stat.S_ISREG(stmd): - inode = (statres.st_ino, statres.st_dev) - if not self.dereference and statres.st_nlink > 1 and \ - inode in self.inodes and arcname != self.inodes[inode]: - # Is it a hardlink to an already - # archived file? - type = LNKTYPE - linkname = self.inodes[inode] - else: - # The inode is added only if its valid. - # For win32 it is always 0. - type = REGTYPE - if inode[0]: - self.inodes[inode] = arcname - elif stat.S_ISDIR(stmd): - type = DIRTYPE - elif stat.S_ISFIFO(stmd): - type = FIFOTYPE - elif stat.S_ISLNK(stmd): - type = SYMTYPE - linkname = os.readlink(name) - elif stat.S_ISCHR(stmd): - type = CHRTYPE - elif stat.S_ISBLK(stmd): - type = BLKTYPE - else: - return None - - # Fill the TarInfo object with all - # information we can get. - tarinfo.name = arcname - tarinfo.mode = stmd - tarinfo.uid = statres.st_uid - tarinfo.gid = statres.st_gid - if type == REGTYPE: - tarinfo.size = statres.st_size - else: - tarinfo.size = 0 - tarinfo.mtime = statres.st_mtime - tarinfo.type = type - tarinfo.linkname = linkname - if pwd: - try: - tarinfo.uname = pwd.getpwuid(tarinfo.uid)[0] - except KeyError: - pass - if grp: - try: - tarinfo.gname = grp.getgrgid(tarinfo.gid)[0] - except KeyError: - pass - - if type in (CHRTYPE, BLKTYPE): - if hasattr(os, "major") and hasattr(os, "minor"): - tarinfo.devmajor = os.major(statres.st_rdev) - tarinfo.devminor = os.minor(statres.st_rdev) - return tarinfo - - def list(self, verbose=True): - """Print a table of contents to sys.stdout. If `verbose' is False, only - the names of the members are printed. If it is True, an `ls -l'-like - output is produced. - """ - self._check() - - for tarinfo in self: - if verbose: - print(filemode(tarinfo.mode), end=' ') - print("%s/%s" % (tarinfo.uname or tarinfo.uid, - tarinfo.gname or tarinfo.gid), end=' ') - if tarinfo.ischr() or tarinfo.isblk(): - print("%10s" % ("%d,%d" \ - % (tarinfo.devmajor, tarinfo.devminor)), end=' ') - else: - print("%10d" % tarinfo.size, end=' ') - print("%d-%02d-%02d %02d:%02d:%02d" \ - % time.localtime(tarinfo.mtime)[:6], end=' ') - - print(tarinfo.name + ("/" if tarinfo.isdir() else ""), end=' ') - - if verbose: - if tarinfo.issym(): - print("->", tarinfo.linkname, end=' ') - if tarinfo.islnk(): - print("link to", tarinfo.linkname, end=' ') - print() - - def add(self, name, arcname=None, recursive=True, exclude=None, filter=None): - """Add the file `name' to the archive. `name' may be any type of file - (directory, fifo, symbolic link, etc.). If given, `arcname' - specifies an alternative name for the file in the archive. - Directories are added recursively by default. This can be avoided by - setting `recursive' to False. `exclude' is a function that should - return True for each filename to be excluded. `filter' is a function - that expects a TarInfo object argument and returns the changed - TarInfo object, if it returns None the TarInfo object will be - excluded from the archive. - """ - self._check("aw") - - if arcname is None: - arcname = name - - # Exclude pathnames. - if exclude is not None: - import warnings - warnings.warn("use the filter argument instead", - DeprecationWarning, 2) - if exclude(name): - self._dbg(2, "tarfile: Excluded %r" % name) - return - - # Skip if somebody tries to archive the archive... - if self.name is not None and os.path.abspath(name) == self.name: - self._dbg(2, "tarfile: Skipped %r" % name) - return - - self._dbg(1, name) - - # Create a TarInfo object from the file. - tarinfo = self.gettarinfo(name, arcname) - - if tarinfo is None: - self._dbg(1, "tarfile: Unsupported type %r" % name) - return - - # Change or exclude the TarInfo object. - if filter is not None: - tarinfo = filter(tarinfo) - if tarinfo is None: - self._dbg(2, "tarfile: Excluded %r" % name) - return - - # Append the tar header and data to the archive. - if tarinfo.isreg(): - f = bltn_open(name, "rb") - self.addfile(tarinfo, f) - f.close() - - elif tarinfo.isdir(): - self.addfile(tarinfo) - if recursive: - for f in os.listdir(name): - self.add(os.path.join(name, f), os.path.join(arcname, f), - recursive, exclude, filter=filter) - - else: - self.addfile(tarinfo) - - def addfile(self, tarinfo, fileobj=None): - """Add the TarInfo object `tarinfo' to the archive. If `fileobj' is - given, tarinfo.size bytes are read from it and added to the archive. - You can create TarInfo objects using gettarinfo(). - On Windows platforms, `fileobj' should always be opened with mode - 'rb' to avoid irritation about the file size. - """ - self._check("aw") - - tarinfo = copy.copy(tarinfo) - - buf = tarinfo.tobuf(self.format, self.encoding, self.errors) - self.fileobj.write(buf) - self.offset += len(buf) - - # If there's data to follow, append it. - if fileobj is not None: - copyfileobj(fileobj, self.fileobj, tarinfo.size) - blocks, remainder = divmod(tarinfo.size, BLOCKSIZE) - if remainder > 0: - self.fileobj.write(NUL * (BLOCKSIZE - remainder)) - blocks += 1 - self.offset += blocks * BLOCKSIZE - - self.members.append(tarinfo) - - def extractall(self, path=".", members=None): - """Extract all members from the archive to the current working - directory and set owner, modification time and permissions on - directories afterwards. `path' specifies a different directory - to extract to. `members' is optional and must be a subset of the - list returned by getmembers(). - """ - directories = [] - - if members is None: - members = self - - for tarinfo in members: - if tarinfo.isdir(): - # Extract directories with a safe mode. - directories.append(tarinfo) - tarinfo = copy.copy(tarinfo) - tarinfo.mode = 0o700 - # Do not set_attrs directories, as we will do that further down - self.extract(tarinfo, path, set_attrs=not tarinfo.isdir()) - - # Reverse sort directories. - directories.sort(key=lambda a: a.name) - directories.reverse() - - # Set correct owner, mtime and filemode on directories. - for tarinfo in directories: - dirpath = os.path.join(path, tarinfo.name) - try: - self.chown(tarinfo, dirpath) - self.utime(tarinfo, dirpath) - self.chmod(tarinfo, dirpath) - except ExtractError as e: - if self.errorlevel > 1: - raise - else: - self._dbg(1, "tarfile: %s" % e) - - def extract(self, member, path="", set_attrs=True): - """Extract a member from the archive to the current working directory, - using its full name. Its file information is extracted as accurately - as possible. `member' may be a filename or a TarInfo object. You can - specify a different directory using `path'. File attributes (owner, - mtime, mode) are set unless `set_attrs' is False. - """ - self._check("r") - - if isinstance(member, str): - tarinfo = self.getmember(member) - else: - tarinfo = member - - # Prepare the link target for makelink(). - if tarinfo.islnk(): - tarinfo._link_target = os.path.join(path, tarinfo.linkname) - - try: - self._extract_member(tarinfo, os.path.join(path, tarinfo.name), - set_attrs=set_attrs) - except EnvironmentError as e: - if self.errorlevel > 0: - raise - else: - if e.filename is None: - self._dbg(1, "tarfile: %s" % e.strerror) - else: - self._dbg(1, "tarfile: %s %r" % (e.strerror, e.filename)) - except ExtractError as e: - if self.errorlevel > 1: - raise - else: - self._dbg(1, "tarfile: %s" % e) - - def extractfile(self, member): - """Extract a member from the archive as a file object. `member' may be - a filename or a TarInfo object. If `member' is a regular file, a - file-like object is returned. If `member' is a link, a file-like - object is constructed from the link's target. If `member' is none of - the above, None is returned. - The file-like object is read-only and provides the following - methods: read(), readline(), readlines(), seek() and tell() - """ - self._check("r") - - if isinstance(member, str): - tarinfo = self.getmember(member) - else: - tarinfo = member - - if tarinfo.isreg(): - return self.fileobject(self, tarinfo) - - elif tarinfo.type not in SUPPORTED_TYPES: - # If a member's type is unknown, it is treated as a - # regular file. - return self.fileobject(self, tarinfo) - - elif tarinfo.islnk() or tarinfo.issym(): - if isinstance(self.fileobj, _Stream): - # A small but ugly workaround for the case that someone tries - # to extract a (sym)link as a file-object from a non-seekable - # stream of tar blocks. - raise StreamError("cannot extract (sym)link as file object") - else: - # A (sym)link's file object is its target's file object. - return self.extractfile(self._find_link_target(tarinfo)) - else: - # If there's no data associated with the member (directory, chrdev, - # blkdev, etc.), return None instead of a file object. - return None - - def _extract_member(self, tarinfo, targetpath, set_attrs=True): - """Extract the TarInfo object tarinfo to a physical - file called targetpath. - """ - # Fetch the TarInfo object for the given name - # and build the destination pathname, replacing - # forward slashes to platform specific separators. - targetpath = targetpath.rstrip("/") - targetpath = targetpath.replace("/", os.sep) - - # Create all upper directories. - upperdirs = os.path.dirname(targetpath) - if upperdirs and not os.path.exists(upperdirs): - # Create directories that are not part of the archive with - # default permissions. - os.makedirs(upperdirs) - - if tarinfo.islnk() or tarinfo.issym(): - self._dbg(1, "%s -> %s" % (tarinfo.name, tarinfo.linkname)) - else: - self._dbg(1, tarinfo.name) - - if tarinfo.isreg(): - self.makefile(tarinfo, targetpath) - elif tarinfo.isdir(): - self.makedir(tarinfo, targetpath) - elif tarinfo.isfifo(): - self.makefifo(tarinfo, targetpath) - elif tarinfo.ischr() or tarinfo.isblk(): - self.makedev(tarinfo, targetpath) - elif tarinfo.islnk() or tarinfo.issym(): - self.makelink(tarinfo, targetpath) - elif tarinfo.type not in SUPPORTED_TYPES: - self.makeunknown(tarinfo, targetpath) - else: - self.makefile(tarinfo, targetpath) - - if set_attrs: - self.chown(tarinfo, targetpath) - if not tarinfo.issym(): - self.chmod(tarinfo, targetpath) - self.utime(tarinfo, targetpath) - - #-------------------------------------------------------------------------- - # Below are the different file methods. They are called via - # _extract_member() when extract() is called. They can be replaced in a - # subclass to implement other functionality. - - def makedir(self, tarinfo, targetpath): - """Make a directory called targetpath. - """ - try: - # Use a safe mode for the directory, the real mode is set - # later in _extract_member(). - os.mkdir(targetpath, 0o700) - except EnvironmentError as e: - if e.errno != errno.EEXIST: - raise - - def makefile(self, tarinfo, targetpath): - """Make a file called targetpath. - """ - source = self.fileobj - source.seek(tarinfo.offset_data) - target = bltn_open(targetpath, "wb") - if tarinfo.sparse is not None: - for offset, size in tarinfo.sparse: - target.seek(offset) - copyfileobj(source, target, size) - else: - copyfileobj(source, target, tarinfo.size) - target.seek(tarinfo.size) - target.truncate() - target.close() - - def makeunknown(self, tarinfo, targetpath): - """Make a file from a TarInfo object with an unknown type - at targetpath. - """ - self.makefile(tarinfo, targetpath) - self._dbg(1, "tarfile: Unknown file type %r, " \ - "extracted as regular file." % tarinfo.type) - - def makefifo(self, tarinfo, targetpath): - """Make a fifo called targetpath. - """ - if hasattr(os, "mkfifo"): - os.mkfifo(targetpath) - else: - raise ExtractError("fifo not supported by system") - - def makedev(self, tarinfo, targetpath): - """Make a character or block device called targetpath. - """ - if not hasattr(os, "mknod") or not hasattr(os, "makedev"): - raise ExtractError("special devices not supported by system") - - mode = tarinfo.mode - if tarinfo.isblk(): - mode |= stat.S_IFBLK - else: - mode |= stat.S_IFCHR - - os.mknod(targetpath, mode, - os.makedev(tarinfo.devmajor, tarinfo.devminor)) - - def makelink(self, tarinfo, targetpath): - """Make a (symbolic) link called targetpath. If it cannot be created - (platform limitation), we try to make a copy of the referenced file - instead of a link. - """ - try: - # For systems that support symbolic and hard links. - if tarinfo.issym(): - os.symlink(tarinfo.linkname, targetpath) - else: - # See extract(). - if os.path.exists(tarinfo._link_target): - os.link(tarinfo._link_target, targetpath) - else: - self._extract_member(self._find_link_target(tarinfo), - targetpath) - except symlink_exception: - if tarinfo.issym(): - linkpath = os.path.join(os.path.dirname(tarinfo.name), - tarinfo.linkname) - else: - linkpath = tarinfo.linkname - else: - try: - self._extract_member(self._find_link_target(tarinfo), - targetpath) - except KeyError: - raise ExtractError("unable to resolve link inside archive") - - def chown(self, tarinfo, targetpath): - """Set owner of targetpath according to tarinfo. - """ - if pwd and hasattr(os, "geteuid") and os.geteuid() == 0: - # We have to be root to do so. - try: - g = grp.getgrnam(tarinfo.gname)[2] - except KeyError: - g = tarinfo.gid - try: - u = pwd.getpwnam(tarinfo.uname)[2] - except KeyError: - u = tarinfo.uid - try: - if tarinfo.issym() and hasattr(os, "lchown"): - os.lchown(targetpath, u, g) - else: - if sys.platform != "os2emx": - os.chown(targetpath, u, g) - except EnvironmentError as e: - raise ExtractError("could not change owner") - - def chmod(self, tarinfo, targetpath): - """Set file permissions of targetpath according to tarinfo. - """ - if hasattr(os, 'chmod'): - try: - os.chmod(targetpath, tarinfo.mode) - except EnvironmentError as e: - raise ExtractError("could not change mode") - - def utime(self, tarinfo, targetpath): - """Set modification time of targetpath according to tarinfo. - """ - if not hasattr(os, 'utime'): - return - try: - os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime)) - except EnvironmentError as e: - raise ExtractError("could not change modification time") - - #-------------------------------------------------------------------------- - def next(self): - """Return the next member of the archive as a TarInfo object, when - TarFile is opened for reading. Return None if there is no more - available. - """ - self._check("ra") - if self.firstmember is not None: - m = self.firstmember - self.firstmember = None - return m - - # Read the next block. - self.fileobj.seek(self.offset) - tarinfo = None - while True: - try: - tarinfo = self.tarinfo.fromtarfile(self) - except EOFHeaderError as e: - if self.ignore_zeros: - self._dbg(2, "0x%X: %s" % (self.offset, e)) - self.offset += BLOCKSIZE - continue - except InvalidHeaderError as e: - if self.ignore_zeros: - self._dbg(2, "0x%X: %s" % (self.offset, e)) - self.offset += BLOCKSIZE - continue - elif self.offset == 0: - raise ReadError(str(e)) - except EmptyHeaderError: - if self.offset == 0: - raise ReadError("empty file") - except TruncatedHeaderError as e: - if self.offset == 0: - raise ReadError(str(e)) - except SubsequentHeaderError as e: - raise ReadError(str(e)) - break - - if tarinfo is not None: - self.members.append(tarinfo) - else: - self._loaded = True - - return tarinfo - - #-------------------------------------------------------------------------- - # Little helper methods: - - def _getmember(self, name, tarinfo=None, normalize=False): - """Find an archive member by name from bottom to top. - If tarinfo is given, it is used as the starting point. - """ - # Ensure that all members have been loaded. - members = self.getmembers() - - # Limit the member search list up to tarinfo. - if tarinfo is not None: - members = members[:members.index(tarinfo)] - - if normalize: - name = os.path.normpath(name) - - for member in reversed(members): - if normalize: - member_name = os.path.normpath(member.name) - else: - member_name = member.name - - if name == member_name: - return member - - def _load(self): - """Read through the entire archive file and look for readable - members. - """ - while True: - tarinfo = self.next() - if tarinfo is None: - break - self._loaded = True - - def _check(self, mode=None): - """Check if TarFile is still open, and if the operation's mode - corresponds to TarFile's mode. - """ - if self.closed: - raise IOError("%s is closed" % self.__class__.__name__) - if mode is not None and self.mode not in mode: - raise IOError("bad operation for mode %r" % self.mode) - - def _find_link_target(self, tarinfo): - """Find the target member of a symlink or hardlink member in the - archive. - """ - if tarinfo.issym(): - # Always search the entire archive. - linkname = os.path.dirname(tarinfo.name) + "/" + tarinfo.linkname - limit = None - else: - # Search the archive before the link, because a hard link is - # just a reference to an already archived file. - linkname = tarinfo.linkname - limit = tarinfo - - member = self._getmember(linkname, tarinfo=limit, normalize=True) - if member is None: - raise KeyError("linkname %r not found" % linkname) - return member - - def __iter__(self): - """Provide an iterator object. - """ - if self._loaded: - return iter(self.members) - else: - return TarIter(self) - - def _dbg(self, level, msg): - """Write debugging output to sys.stderr. - """ - if level <= self.debug: - print(msg, file=sys.stderr) - - def __enter__(self): - self._check() - return self - - def __exit__(self, type, value, traceback): - if type is None: - self.close() - else: - # An exception occurred. We must not call close() because - # it would try to write end-of-archive blocks and padding. - if not self._extfileobj: - self.fileobj.close() - self.closed = True -# class TarFile - -class TarIter(object): - """Iterator Class. - - for tarinfo in TarFile(...): - suite... - """ - - def __init__(self, tarfile): - """Construct a TarIter object. - """ - self.tarfile = tarfile - self.index = 0 - def __iter__(self): - """Return iterator object. - """ - return self - - def __next__(self): - """Return the next item using TarFile's next() method. - When all members have been read, set TarFile as _loaded. - """ - # Fix for SF #1100429: Under rare circumstances it can - # happen that getmembers() is called during iteration, - # which will cause TarIter to stop prematurely. - if not self.tarfile._loaded: - tarinfo = self.tarfile.next() - if not tarinfo: - self.tarfile._loaded = True - raise StopIteration - else: - try: - tarinfo = self.tarfile.members[self.index] - except IndexError: - raise StopIteration - self.index += 1 - return tarinfo - - next = __next__ # for Python 2.x - -#-------------------- -# exported functions -#-------------------- -def is_tarfile(name): - """Return True if name points to a tar archive that we - are able to handle, else return False. - """ - try: - t = open(name) - t.close() - return True - except TarError: - return False - -bltn_open = open -open = TarFile.open diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/compat.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/compat.py deleted file mode 100644 index ff328c8..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/compat.py +++ /dev/null @@ -1,1120 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013-2017 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from __future__ import absolute_import - -import os -import re -import sys - -try: - import ssl -except ImportError: # pragma: no cover - ssl = None - -if sys.version_info[0] < 3: # pragma: no cover - from StringIO import StringIO - string_types = basestring, - text_type = unicode - from types import FileType as file_type - import __builtin__ as builtins - import ConfigParser as configparser - from ._backport import shutil - from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit - from urllib import (urlretrieve, quote as _quote, unquote, url2pathname, - pathname2url, ContentTooShortError, splittype) - - def quote(s): - if isinstance(s, unicode): - s = s.encode('utf-8') - return _quote(s) - - import urllib2 - from urllib2 import (Request, urlopen, URLError, HTTPError, - HTTPBasicAuthHandler, HTTPPasswordMgr, - HTTPHandler, HTTPRedirectHandler, - build_opener) - if ssl: - from urllib2 import HTTPSHandler - import httplib - import xmlrpclib - import Queue as queue - from HTMLParser import HTMLParser - import htmlentitydefs - raw_input = raw_input - from itertools import ifilter as filter - from itertools import ifilterfalse as filterfalse - - _userprog = None - def splituser(host): - """splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.""" - global _userprog - if _userprog is None: - import re - _userprog = re.compile('^(.*)@(.*)$') - - match = _userprog.match(host) - if match: return match.group(1, 2) - return None, host - -else: # pragma: no cover - from io import StringIO - string_types = str, - text_type = str - from io import TextIOWrapper as file_type - import builtins - import configparser - import shutil - from urllib.parse import (urlparse, urlunparse, urljoin, splituser, quote, - unquote, urlsplit, urlunsplit, splittype) - from urllib.request import (urlopen, urlretrieve, Request, url2pathname, - pathname2url, - HTTPBasicAuthHandler, HTTPPasswordMgr, - HTTPHandler, HTTPRedirectHandler, - build_opener) - if ssl: - from urllib.request import HTTPSHandler - from urllib.error import HTTPError, URLError, ContentTooShortError - import http.client as httplib - import urllib.request as urllib2 - import xmlrpc.client as xmlrpclib - import queue - from html.parser import HTMLParser - import html.entities as htmlentitydefs - raw_input = input - from itertools import filterfalse - filter = filter - -try: - from ssl import match_hostname, CertificateError -except ImportError: # pragma: no cover - class CertificateError(ValueError): - pass - - - def _dnsname_match(dn, hostname, max_wildcards=1): - """Matching according to RFC 6125, section 6.4.3 - - http://tools.ietf.org/html/rfc6125#section-6.4.3 - """ - pats = [] - if not dn: - return False - - parts = dn.split('.') - leftmost, remainder = parts[0], parts[1:] - - wildcards = leftmost.count('*') - if wildcards > max_wildcards: - # Issue #17980: avoid denials of service by refusing more - # than one wildcard per fragment. A survey of established - # policy among SSL implementations showed it to be a - # reasonable choice. - raise CertificateError( - "too many wildcards in certificate DNS name: " + repr(dn)) - - # speed up common case w/o wildcards - if not wildcards: - return dn.lower() == hostname.lower() - - # RFC 6125, section 6.4.3, subitem 1. - # The client SHOULD NOT attempt to match a presented identifier in which - # the wildcard character comprises a label other than the left-most label. - if leftmost == '*': - # When '*' is a fragment by itself, it matches a non-empty dotless - # fragment. - pats.append('[^.]+') - elif leftmost.startswith('xn--') or hostname.startswith('xn--'): - # RFC 6125, section 6.4.3, subitem 3. - # The client SHOULD NOT attempt to match a presented identifier - # where the wildcard character is embedded within an A-label or - # U-label of an internationalized domain name. - pats.append(re.escape(leftmost)) - else: - # Otherwise, '*' matches any dotless string, e.g. www* - pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) - - # add the remaining fragments, ignore any wildcards - for frag in remainder: - pats.append(re.escape(frag)) - - pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) - return pat.match(hostname) - - - def match_hostname(cert, hostname): - """Verify that *cert* (in decoded format as returned by - SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 - rules are followed, but IP addresses are not accepted for *hostname*. - - CertificateError is raised on failure. On success, the function - returns nothing. - """ - if not cert: - raise ValueError("empty or no certificate, match_hostname needs a " - "SSL socket or SSL context with either " - "CERT_OPTIONAL or CERT_REQUIRED") - dnsnames = [] - san = cert.get('subjectAltName', ()) - for key, value in san: - if key == 'DNS': - if _dnsname_match(value, hostname): - return - dnsnames.append(value) - if not dnsnames: - # The subject is only checked when there is no dNSName entry - # in subjectAltName - for sub in cert.get('subject', ()): - for key, value in sub: - # XXX according to RFC 2818, the most specific Common Name - # must be used. - if key == 'commonName': - if _dnsname_match(value, hostname): - return - dnsnames.append(value) - if len(dnsnames) > 1: - raise CertificateError("hostname %r " - "doesn't match either of %s" - % (hostname, ', '.join(map(repr, dnsnames)))) - elif len(dnsnames) == 1: - raise CertificateError("hostname %r " - "doesn't match %r" - % (hostname, dnsnames[0])) - else: - raise CertificateError("no appropriate commonName or " - "subjectAltName fields were found") - - -try: - from types import SimpleNamespace as Container -except ImportError: # pragma: no cover - class Container(object): - """ - A generic container for when multiple values need to be returned - """ - def __init__(self, **kwargs): - self.__dict__.update(kwargs) - - -try: - from shutil import which -except ImportError: # pragma: no cover - # Implementation from Python 3.3 - def which(cmd, mode=os.F_OK | os.X_OK, path=None): - """Given a command, mode, and a PATH string, return the path which - conforms to the given mode on the PATH, or None if there is no such - file. - - `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result - of os.environ.get("PATH"), or can be overridden with a custom search - path. - - """ - # Check that a given file can be accessed with the correct mode. - # Additionally check that `file` is not a directory, as on Windows - # directories pass the os.access check. - def _access_check(fn, mode): - return (os.path.exists(fn) and os.access(fn, mode) - and not os.path.isdir(fn)) - - # If we're given a path with a directory part, look it up directly rather - # than referring to PATH directories. This includes checking relative to the - # current directory, e.g. ./script - if os.path.dirname(cmd): - if _access_check(cmd, mode): - return cmd - return None - - if path is None: - path = os.environ.get("PATH", os.defpath) - if not path: - return None - path = path.split(os.pathsep) - - if sys.platform == "win32": - # The current directory takes precedence on Windows. - if not os.curdir in path: - path.insert(0, os.curdir) - - # PATHEXT is necessary to check on Windows. - pathext = os.environ.get("PATHEXT", "").split(os.pathsep) - # See if the given file matches any of the expected path extensions. - # This will allow us to short circuit when given "python.exe". - # If it does match, only test that one, otherwise we have to try - # others. - if any(cmd.lower().endswith(ext.lower()) for ext in pathext): - files = [cmd] - else: - files = [cmd + ext for ext in pathext] - else: - # On other platforms you don't have things like PATHEXT to tell you - # what file suffixes are executable, so just pass on cmd as-is. - files = [cmd] - - seen = set() - for dir in path: - normdir = os.path.normcase(dir) - if not normdir in seen: - seen.add(normdir) - for thefile in files: - name = os.path.join(dir, thefile) - if _access_check(name, mode): - return name - return None - - -# ZipFile is a context manager in 2.7, but not in 2.6 - -from zipfile import ZipFile as BaseZipFile - -if hasattr(BaseZipFile, '__enter__'): # pragma: no cover - ZipFile = BaseZipFile -else: # pragma: no cover - from zipfile import ZipExtFile as BaseZipExtFile - - class ZipExtFile(BaseZipExtFile): - def __init__(self, base): - self.__dict__.update(base.__dict__) - - def __enter__(self): - return self - - def __exit__(self, *exc_info): - self.close() - # return None, so if an exception occurred, it will propagate - - class ZipFile(BaseZipFile): - def __enter__(self): - return self - - def __exit__(self, *exc_info): - self.close() - # return None, so if an exception occurred, it will propagate - - def open(self, *args, **kwargs): - base = BaseZipFile.open(self, *args, **kwargs) - return ZipExtFile(base) - -try: - from platform import python_implementation -except ImportError: # pragma: no cover - def python_implementation(): - """Return a string identifying the Python implementation.""" - if 'PyPy' in sys.version: - return 'PyPy' - if os.name == 'java': - return 'Jython' - if sys.version.startswith('IronPython'): - return 'IronPython' - return 'CPython' - -try: - import sysconfig -except ImportError: # pragma: no cover - from ._backport import sysconfig - -try: - callable = callable -except NameError: # pragma: no cover - from collections import Callable - - def callable(obj): - return isinstance(obj, Callable) - - -try: - fsencode = os.fsencode - fsdecode = os.fsdecode -except AttributeError: # pragma: no cover - # Issue #99: on some systems (e.g. containerised), - # sys.getfilesystemencoding() returns None, and we need a real value, - # so fall back to utf-8. From the CPython 2.7 docs relating to Unix and - # sys.getfilesystemencoding(): the return value is "the user’s preference - # according to the result of nl_langinfo(CODESET), or None if the - # nl_langinfo(CODESET) failed." - _fsencoding = sys.getfilesystemencoding() or 'utf-8' - if _fsencoding == 'mbcs': - _fserrors = 'strict' - else: - _fserrors = 'surrogateescape' - - def fsencode(filename): - if isinstance(filename, bytes): - return filename - elif isinstance(filename, text_type): - return filename.encode(_fsencoding, _fserrors) - else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) - - def fsdecode(filename): - if isinstance(filename, text_type): - return filename - elif isinstance(filename, bytes): - return filename.decode(_fsencoding, _fserrors) - else: - raise TypeError("expect bytes or str, not %s" % - type(filename).__name__) - -try: - from tokenize import detect_encoding -except ImportError: # pragma: no cover - from codecs import BOM_UTF8, lookup - import re - - cookie_re = re.compile(r"coding[:=]\s*([-\w.]+)") - - def _get_normal_name(orig_enc): - """Imitates get_normal_name in tokenizer.c.""" - # Only care about the first 12 characters. - enc = orig_enc[:12].lower().replace("_", "-") - if enc == "utf-8" or enc.startswith("utf-8-"): - return "utf-8" - if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or \ - enc.startswith(("latin-1-", "iso-8859-1-", "iso-latin-1-")): - return "iso-8859-1" - return orig_enc - - def detect_encoding(readline): - """ - The detect_encoding() function is used to detect the encoding that should - be used to decode a Python source file. It requires one argument, readline, - in the same way as the tokenize() generator. - - It will call readline a maximum of twice, and return the encoding used - (as a string) and a list of any lines (left as bytes) it has read in. - - It detects the encoding from the presence of a utf-8 bom or an encoding - cookie as specified in pep-0263. If both a bom and a cookie are present, - but disagree, a SyntaxError will be raised. If the encoding cookie is an - invalid charset, raise a SyntaxError. Note that if a utf-8 bom is found, - 'utf-8-sig' is returned. - - If no encoding is specified, then the default of 'utf-8' will be returned. - """ - try: - filename = readline.__self__.name - except AttributeError: - filename = None - bom_found = False - encoding = None - default = 'utf-8' - def read_or_stop(): - try: - return readline() - except StopIteration: - return b'' - - def find_cookie(line): - try: - # Decode as UTF-8. Either the line is an encoding declaration, - # in which case it should be pure ASCII, or it must be UTF-8 - # per default encoding. - line_string = line.decode('utf-8') - except UnicodeDecodeError: - msg = "invalid or missing encoding declaration" - if filename is not None: - msg = '{} for {!r}'.format(msg, filename) - raise SyntaxError(msg) - - matches = cookie_re.findall(line_string) - if not matches: - return None - encoding = _get_normal_name(matches[0]) - try: - codec = lookup(encoding) - except LookupError: - # This behaviour mimics the Python interpreter - if filename is None: - msg = "unknown encoding: " + encoding - else: - msg = "unknown encoding for {!r}: {}".format(filename, - encoding) - raise SyntaxError(msg) - - if bom_found: - if codec.name != 'utf-8': - # This behaviour mimics the Python interpreter - if filename is None: - msg = 'encoding problem: utf-8' - else: - msg = 'encoding problem for {!r}: utf-8'.format(filename) - raise SyntaxError(msg) - encoding += '-sig' - return encoding - - first = read_or_stop() - if first.startswith(BOM_UTF8): - bom_found = True - first = first[3:] - default = 'utf-8-sig' - if not first: - return default, [] - - encoding = find_cookie(first) - if encoding: - return encoding, [first] - - second = read_or_stop() - if not second: - return default, [first] - - encoding = find_cookie(second) - if encoding: - return encoding, [first, second] - - return default, [first, second] - -# For converting & <-> & etc. -try: - from html import escape -except ImportError: - from cgi import escape -if sys.version_info[:2] < (3, 4): - unescape = HTMLParser().unescape -else: - from html import unescape - -try: - from collections import ChainMap -except ImportError: # pragma: no cover - from collections import MutableMapping - - try: - from reprlib import recursive_repr as _recursive_repr - except ImportError: - def _recursive_repr(fillvalue='...'): - ''' - Decorator to make a repr function return fillvalue for a recursive - call - ''' - - def decorating_function(user_function): - repr_running = set() - - def wrapper(self): - key = id(self), get_ident() - if key in repr_running: - return fillvalue - repr_running.add(key) - try: - result = user_function(self) - finally: - repr_running.discard(key) - return result - - # Can't use functools.wraps() here because of bootstrap issues - wrapper.__module__ = getattr(user_function, '__module__') - wrapper.__doc__ = getattr(user_function, '__doc__') - wrapper.__name__ = getattr(user_function, '__name__') - wrapper.__annotations__ = getattr(user_function, '__annotations__', {}) - return wrapper - - return decorating_function - - class ChainMap(MutableMapping): - ''' A ChainMap groups multiple dicts (or other mappings) together - to create a single, updateable view. - - The underlying mappings are stored in a list. That list is public and can - accessed or updated using the *maps* attribute. There is no other state. - - Lookups search the underlying mappings successively until a key is found. - In contrast, writes, updates, and deletions only operate on the first - mapping. - - ''' - - def __init__(self, *maps): - '''Initialize a ChainMap by setting *maps* to the given mappings. - If no mappings are provided, a single empty dictionary is used. - - ''' - self.maps = list(maps) or [{}] # always at least one map - - def __missing__(self, key): - raise KeyError(key) - - def __getitem__(self, key): - for mapping in self.maps: - try: - return mapping[key] # can't use 'key in mapping' with defaultdict - except KeyError: - pass - return self.__missing__(key) # support subclasses that define __missing__ - - def get(self, key, default=None): - return self[key] if key in self else default - - def __len__(self): - return len(set().union(*self.maps)) # reuses stored hash values if possible - - def __iter__(self): - return iter(set().union(*self.maps)) - - def __contains__(self, key): - return any(key in m for m in self.maps) - - def __bool__(self): - return any(self.maps) - - @_recursive_repr() - def __repr__(self): - return '{0.__class__.__name__}({1})'.format( - self, ', '.join(map(repr, self.maps))) - - @classmethod - def fromkeys(cls, iterable, *args): - 'Create a ChainMap with a single dict created from the iterable.' - return cls(dict.fromkeys(iterable, *args)) - - def copy(self): - 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' - return self.__class__(self.maps[0].copy(), *self.maps[1:]) - - __copy__ = copy - - def new_child(self): # like Django's Context.push() - 'New ChainMap with a new dict followed by all previous maps.' - return self.__class__({}, *self.maps) - - @property - def parents(self): # like Django's Context.pop() - 'New ChainMap from maps[1:].' - return self.__class__(*self.maps[1:]) - - def __setitem__(self, key, value): - self.maps[0][key] = value - - def __delitem__(self, key): - try: - del self.maps[0][key] - except KeyError: - raise KeyError('Key not found in the first mapping: {!r}'.format(key)) - - def popitem(self): - 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' - try: - return self.maps[0].popitem() - except KeyError: - raise KeyError('No keys found in the first mapping.') - - def pop(self, key, *args): - 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' - try: - return self.maps[0].pop(key, *args) - except KeyError: - raise KeyError('Key not found in the first mapping: {!r}'.format(key)) - - def clear(self): - 'Clear maps[0], leaving maps[1:] intact.' - self.maps[0].clear() - -try: - from importlib.util import cache_from_source # Python >= 3.4 -except ImportError: # pragma: no cover - try: - from imp import cache_from_source - except ImportError: # pragma: no cover - def cache_from_source(path, debug_override=None): - assert path.endswith('.py') - if debug_override is None: - debug_override = __debug__ - if debug_override: - suffix = 'c' - else: - suffix = 'o' - return path + suffix - -try: - from collections import OrderedDict -except ImportError: # pragma: no cover -## {{{ http://code.activestate.com/recipes/576693/ (r9) -# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. -# Passes Python2.7's test suite and incorporates all the latest updates. - try: - from thread import get_ident as _get_ident - except ImportError: - from dummy_thread import get_ident as _get_ident - - try: - from _abcoll import KeysView, ValuesView, ItemsView - except ImportError: - pass - - - class OrderedDict(dict): - 'Dictionary that remembers insertion order' - # An inherited dict maps keys to values. - # The inherited dict provides __getitem__, __len__, __contains__, and get. - # The remaining methods are order-aware. - # Big-O running times for all methods are the same as for regular dictionaries. - - # The internal self.__map dictionary maps keys to links in a doubly linked list. - # The circular doubly linked list starts and ends with a sentinel element. - # The sentinel element never gets deleted (this simplifies the algorithm). - # Each link is stored as a list of length three: [PREV, NEXT, KEY]. - - def __init__(self, *args, **kwds): - '''Initialize an ordered dictionary. Signature is the same as for - regular dictionaries, but keyword arguments are not recommended - because their insertion order is arbitrary. - - ''' - if len(args) > 1: - raise TypeError('expected at most 1 arguments, got %d' % len(args)) - try: - self.__root - except AttributeError: - self.__root = root = [] # sentinel node - root[:] = [root, root, None] - self.__map = {} - self.__update(*args, **kwds) - - def __setitem__(self, key, value, dict_setitem=dict.__setitem__): - 'od.__setitem__(i, y) <==> od[i]=y' - # Setting a new item creates a new link which goes at the end of the linked - # list, and the inherited dictionary is updated with the new key/value pair. - if key not in self: - root = self.__root - last = root[0] - last[1] = root[0] = self.__map[key] = [last, root, key] - dict_setitem(self, key, value) - - def __delitem__(self, key, dict_delitem=dict.__delitem__): - 'od.__delitem__(y) <==> del od[y]' - # Deleting an existing item uses self.__map to find the link which is - # then removed by updating the links in the predecessor and successor nodes. - dict_delitem(self, key) - link_prev, link_next, key = self.__map.pop(key) - link_prev[1] = link_next - link_next[0] = link_prev - - def __iter__(self): - 'od.__iter__() <==> iter(od)' - root = self.__root - curr = root[1] - while curr is not root: - yield curr[2] - curr = curr[1] - - def __reversed__(self): - 'od.__reversed__() <==> reversed(od)' - root = self.__root - curr = root[0] - while curr is not root: - yield curr[2] - curr = curr[0] - - def clear(self): - 'od.clear() -> None. Remove all items from od.' - try: - for node in self.__map.itervalues(): - del node[:] - root = self.__root - root[:] = [root, root, None] - self.__map.clear() - except AttributeError: - pass - dict.clear(self) - - def popitem(self, last=True): - '''od.popitem() -> (k, v), return and remove a (key, value) pair. - Pairs are returned in LIFO order if last is true or FIFO order if false. - - ''' - if not self: - raise KeyError('dictionary is empty') - root = self.__root - if last: - link = root[0] - link_prev = link[0] - link_prev[1] = root - root[0] = link_prev - else: - link = root[1] - link_next = link[1] - root[1] = link_next - link_next[0] = root - key = link[2] - del self.__map[key] - value = dict.pop(self, key) - return key, value - - # -- the following methods do not depend on the internal structure -- - - def keys(self): - 'od.keys() -> list of keys in od' - return list(self) - - def values(self): - 'od.values() -> list of values in od' - return [self[key] for key in self] - - def items(self): - 'od.items() -> list of (key, value) pairs in od' - return [(key, self[key]) for key in self] - - def iterkeys(self): - 'od.iterkeys() -> an iterator over the keys in od' - return iter(self) - - def itervalues(self): - 'od.itervalues -> an iterator over the values in od' - for k in self: - yield self[k] - - def iteritems(self): - 'od.iteritems -> an iterator over the (key, value) items in od' - for k in self: - yield (k, self[k]) - - def update(*args, **kwds): - '''od.update(E, **F) -> None. Update od from dict/iterable E and F. - - If E is a dict instance, does: for k in E: od[k] = E[k] - If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] - Or if E is an iterable of items, does: for k, v in E: od[k] = v - In either case, this is followed by: for k, v in F.items(): od[k] = v - - ''' - if len(args) > 2: - raise TypeError('update() takes at most 2 positional ' - 'arguments (%d given)' % (len(args),)) - elif not args: - raise TypeError('update() takes at least 1 argument (0 given)') - self = args[0] - # Make progressively weaker assumptions about "other" - other = () - if len(args) == 2: - other = args[1] - if isinstance(other, dict): - for key in other: - self[key] = other[key] - elif hasattr(other, 'keys'): - for key in other.keys(): - self[key] = other[key] - else: - for key, value in other: - self[key] = value - for key, value in kwds.items(): - self[key] = value - - __update = update # let subclasses override update without breaking __init__ - - __marker = object() - - def pop(self, key, default=__marker): - '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. - If key is not found, d is returned if given, otherwise KeyError is raised. - - ''' - if key in self: - result = self[key] - del self[key] - return result - if default is self.__marker: - raise KeyError(key) - return default - - def setdefault(self, key, default=None): - 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' - if key in self: - return self[key] - self[key] = default - return default - - def __repr__(self, _repr_running=None): - 'od.__repr__() <==> repr(od)' - if not _repr_running: _repr_running = {} - call_key = id(self), _get_ident() - if call_key in _repr_running: - return '...' - _repr_running[call_key] = 1 - try: - if not self: - return '%s()' % (self.__class__.__name__,) - return '%s(%r)' % (self.__class__.__name__, self.items()) - finally: - del _repr_running[call_key] - - def __reduce__(self): - 'Return state information for pickling' - items = [[k, self[k]] for k in self] - inst_dict = vars(self).copy() - for k in vars(OrderedDict()): - inst_dict.pop(k, None) - if inst_dict: - return (self.__class__, (items,), inst_dict) - return self.__class__, (items,) - - def copy(self): - 'od.copy() -> a shallow copy of od' - return self.__class__(self) - - @classmethod - def fromkeys(cls, iterable, value=None): - '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S - and values equal to v (which defaults to None). - - ''' - d = cls() - for key in iterable: - d[key] = value - return d - - def __eq__(self, other): - '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive - while comparison to a regular mapping is order-insensitive. - - ''' - if isinstance(other, OrderedDict): - return len(self)==len(other) and self.items() == other.items() - return dict.__eq__(self, other) - - def __ne__(self, other): - return not self == other - - # -- the following methods are only used in Python 2.7 -- - - def viewkeys(self): - "od.viewkeys() -> a set-like object providing a view on od's keys" - return KeysView(self) - - def viewvalues(self): - "od.viewvalues() -> an object providing a view on od's values" - return ValuesView(self) - - def viewitems(self): - "od.viewitems() -> a set-like object providing a view on od's items" - return ItemsView(self) - -try: - from logging.config import BaseConfigurator, valid_ident -except ImportError: # pragma: no cover - IDENTIFIER = re.compile('^[a-z_][a-z0-9_]*$', re.I) - - - def valid_ident(s): - m = IDENTIFIER.match(s) - if not m: - raise ValueError('Not a valid Python identifier: %r' % s) - return True - - - # The ConvertingXXX classes are wrappers around standard Python containers, - # and they serve to convert any suitable values in the container. The - # conversion converts base dicts, lists and tuples to their wrapped - # equivalents, whereas strings which match a conversion format are converted - # appropriately. - # - # Each wrapper should have a configurator attribute holding the actual - # configurator to use for conversion. - - class ConvertingDict(dict): - """A converting dictionary wrapper.""" - - def __getitem__(self, key): - value = dict.__getitem__(self, key) - result = self.configurator.convert(value) - #If the converted value is different, save for next time - if value is not result: - self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - def get(self, key, default=None): - value = dict.get(self, key, default) - result = self.configurator.convert(value) - #If the converted value is different, save for next time - if value is not result: - self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - def pop(self, key, default=None): - value = dict.pop(self, key, default) - result = self.configurator.convert(value) - if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - class ConvertingList(list): - """A converting list wrapper.""" - def __getitem__(self, key): - value = list.__getitem__(self, key) - result = self.configurator.convert(value) - #If the converted value is different, save for next time - if value is not result: - self[key] = result - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - def pop(self, idx=-1): - value = list.pop(self, idx) - result = self.configurator.convert(value) - if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - return result - - class ConvertingTuple(tuple): - """A converting tuple wrapper.""" - def __getitem__(self, key): - value = tuple.__getitem__(self, key) - result = self.configurator.convert(value) - if value is not result: - if type(result) in (ConvertingDict, ConvertingList, - ConvertingTuple): - result.parent = self - result.key = key - return result - - class BaseConfigurator(object): - """ - The configurator base class which defines some useful defaults. - """ - - CONVERT_PATTERN = re.compile(r'^(?P<prefix>[a-z]+)://(?P<suffix>.*)$') - - WORD_PATTERN = re.compile(r'^\s*(\w+)\s*') - DOT_PATTERN = re.compile(r'^\.\s*(\w+)\s*') - INDEX_PATTERN = re.compile(r'^\[\s*(\w+)\s*\]\s*') - DIGIT_PATTERN = re.compile(r'^\d+$') - - value_converters = { - 'ext' : 'ext_convert', - 'cfg' : 'cfg_convert', - } - - # We might want to use a different one, e.g. importlib - importer = staticmethod(__import__) - - def __init__(self, config): - self.config = ConvertingDict(config) - self.config.configurator = self - - def resolve(self, s): - """ - Resolve strings to objects using standard import and attribute - syntax. - """ - name = s.split('.') - used = name.pop(0) - try: - found = self.importer(used) - for frag in name: - used += '.' + frag - try: - found = getattr(found, frag) - except AttributeError: - self.importer(used) - found = getattr(found, frag) - return found - except ImportError: - e, tb = sys.exc_info()[1:] - v = ValueError('Cannot resolve %r: %s' % (s, e)) - v.__cause__, v.__traceback__ = e, tb - raise v - - def ext_convert(self, value): - """Default converter for the ext:// protocol.""" - return self.resolve(value) - - def cfg_convert(self, value): - """Default converter for the cfg:// protocol.""" - rest = value - m = self.WORD_PATTERN.match(rest) - if m is None: - raise ValueError("Unable to convert %r" % value) - else: - rest = rest[m.end():] - d = self.config[m.groups()[0]] - #print d, rest - while rest: - m = self.DOT_PATTERN.match(rest) - if m: - d = d[m.groups()[0]] - else: - m = self.INDEX_PATTERN.match(rest) - if m: - idx = m.groups()[0] - if not self.DIGIT_PATTERN.match(idx): - d = d[idx] - else: - try: - n = int(idx) # try as number first (most likely) - d = d[n] - except TypeError: - d = d[idx] - if m: - rest = rest[m.end():] - else: - raise ValueError('Unable to convert ' - '%r at %r' % (value, rest)) - #rest should be empty - return d - - def convert(self, value): - """ - Convert values to an appropriate type. dicts, lists and tuples are - replaced by their converting alternatives. Strings are checked to - see if they have a conversion format and are converted if they do. - """ - if not isinstance(value, ConvertingDict) and isinstance(value, dict): - value = ConvertingDict(value) - value.configurator = self - elif not isinstance(value, ConvertingList) and isinstance(value, list): - value = ConvertingList(value) - value.configurator = self - elif not isinstance(value, ConvertingTuple) and\ - isinstance(value, tuple): - value = ConvertingTuple(value) - value.configurator = self - elif isinstance(value, string_types): - m = self.CONVERT_PATTERN.match(value) - if m: - d = m.groupdict() - prefix = d['prefix'] - converter = self.value_converters.get(prefix, None) - if converter: - suffix = d['suffix'] - converter = getattr(self, converter) - value = converter(suffix) - return value - - def configure_custom(self, config): - """Configure an object with a user-supplied factory.""" - c = config.pop('()') - if not callable(c): - c = self.resolve(c) - props = config.pop('.', None) - # Check for valid identifiers - kwargs = dict([(k, config[k]) for k in config if valid_ident(k)]) - result = c(**kwargs) - if props: - for name, value in props.items(): - setattr(result, name, value) - return result - - def as_tuple(self, value): - """Utility function which converts lists to tuples.""" - if isinstance(value, list): - value = tuple(value) - return value diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/database.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/database.py deleted file mode 100644 index b13cdac..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/database.py +++ /dev/null @@ -1,1339 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2017 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""PEP 376 implementation.""" - -from __future__ import unicode_literals - -import base64 -import codecs -import contextlib -import hashlib -import logging -import os -import posixpath -import sys -import zipimport - -from . import DistlibException, resources -from .compat import StringIO -from .version import get_scheme, UnsupportedVersionError -from .metadata import (Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME, - LEGACY_METADATA_FILENAME) -from .util import (parse_requirement, cached_property, parse_name_and_version, - read_exports, write_exports, CSVReader, CSVWriter) - - -__all__ = ['Distribution', 'BaseInstalledDistribution', - 'InstalledDistribution', 'EggInfoDistribution', - 'DistributionPath'] - - -logger = logging.getLogger(__name__) - -EXPORTS_FILENAME = 'pydist-exports.json' -COMMANDS_FILENAME = 'pydist-commands.json' - -DIST_FILES = ('INSTALLER', METADATA_FILENAME, 'RECORD', 'REQUESTED', - 'RESOURCES', EXPORTS_FILENAME, 'SHARED') - -DISTINFO_EXT = '.dist-info' - - -class _Cache(object): - """ - A simple cache mapping names and .dist-info paths to distributions - """ - def __init__(self): - """ - Initialise an instance. There is normally one for each DistributionPath. - """ - self.name = {} - self.path = {} - self.generated = False - - def clear(self): - """ - Clear the cache, setting it to its initial state. - """ - self.name.clear() - self.path.clear() - self.generated = False - - def add(self, dist): - """ - Add a distribution to the cache. - :param dist: The distribution to add. - """ - if dist.path not in self.path: - self.path[dist.path] = dist - self.name.setdefault(dist.key, []).append(dist) - - -class DistributionPath(object): - """ - Represents a set of distributions installed on a path (typically sys.path). - """ - def __init__(self, path=None, include_egg=False): - """ - Create an instance from a path, optionally including legacy (distutils/ - setuptools/distribute) distributions. - :param path: The path to use, as a list of directories. If not specified, - sys.path is used. - :param include_egg: If True, this instance will look for and return legacy - distributions as well as those based on PEP 376. - """ - if path is None: - path = sys.path - self.path = path - self._include_dist = True - self._include_egg = include_egg - - self._cache = _Cache() - self._cache_egg = _Cache() - self._cache_enabled = True - self._scheme = get_scheme('default') - - def _get_cache_enabled(self): - return self._cache_enabled - - def _set_cache_enabled(self, value): - self._cache_enabled = value - - cache_enabled = property(_get_cache_enabled, _set_cache_enabled) - - def clear_cache(self): - """ - Clears the internal cache. - """ - self._cache.clear() - self._cache_egg.clear() - - - def _yield_distributions(self): - """ - Yield .dist-info and/or .egg(-info) distributions. - """ - # We need to check if we've seen some resources already, because on - # some Linux systems (e.g. some Debian/Ubuntu variants) there are - # symlinks which alias other files in the environment. - seen = set() - for path in self.path: - finder = resources.finder_for_path(path) - if finder is None: - continue - r = finder.find('') - if not r or not r.is_container: - continue - rset = sorted(r.resources) - for entry in rset: - r = finder.find(entry) - if not r or r.path in seen: - continue - if self._include_dist and entry.endswith(DISTINFO_EXT): - possible_filenames = [METADATA_FILENAME, - WHEEL_METADATA_FILENAME, - LEGACY_METADATA_FILENAME] - for metadata_filename in possible_filenames: - metadata_path = posixpath.join(entry, metadata_filename) - pydist = finder.find(metadata_path) - if pydist: - break - else: - continue - - with contextlib.closing(pydist.as_stream()) as stream: - metadata = Metadata(fileobj=stream, scheme='legacy') - logger.debug('Found %s', r.path) - seen.add(r.path) - yield new_dist_class(r.path, metadata=metadata, - env=self) - elif self._include_egg and entry.endswith(('.egg-info', - '.egg')): - logger.debug('Found %s', r.path) - seen.add(r.path) - yield old_dist_class(r.path, self) - - def _generate_cache(self): - """ - Scan the path for distributions and populate the cache with - those that are found. - """ - gen_dist = not self._cache.generated - gen_egg = self._include_egg and not self._cache_egg.generated - if gen_dist or gen_egg: - for dist in self._yield_distributions(): - if isinstance(dist, InstalledDistribution): - self._cache.add(dist) - else: - self._cache_egg.add(dist) - - if gen_dist: - self._cache.generated = True - if gen_egg: - self._cache_egg.generated = True - - @classmethod - def distinfo_dirname(cls, name, version): - """ - The *name* and *version* parameters are converted into their - filename-escaped form, i.e. any ``'-'`` characters are replaced - with ``'_'`` other than the one in ``'dist-info'`` and the one - separating the name from the version number. - - :parameter name: is converted to a standard distribution name by replacing - any runs of non- alphanumeric characters with a single - ``'-'``. - :type name: string - :parameter version: is converted to a standard version string. Spaces - become dots, and all other non-alphanumeric characters - (except dots) become dashes, with runs of multiple - dashes condensed to a single dash. - :type version: string - :returns: directory name - :rtype: string""" - name = name.replace('-', '_') - return '-'.join([name, version]) + DISTINFO_EXT - - def get_distributions(self): - """ - Provides an iterator that looks for distributions and returns - :class:`InstalledDistribution` or - :class:`EggInfoDistribution` instances for each one of them. - - :rtype: iterator of :class:`InstalledDistribution` and - :class:`EggInfoDistribution` instances - """ - if not self._cache_enabled: - for dist in self._yield_distributions(): - yield dist - else: - self._generate_cache() - - for dist in self._cache.path.values(): - yield dist - - if self._include_egg: - for dist in self._cache_egg.path.values(): - yield dist - - def get_distribution(self, name): - """ - Looks for a named distribution on the path. - - This function only returns the first result found, as no more than one - value is expected. If nothing is found, ``None`` is returned. - - :rtype: :class:`InstalledDistribution`, :class:`EggInfoDistribution` - or ``None`` - """ - result = None - name = name.lower() - if not self._cache_enabled: - for dist in self._yield_distributions(): - if dist.key == name: - result = dist - break - else: - self._generate_cache() - - if name in self._cache.name: - result = self._cache.name[name][0] - elif self._include_egg and name in self._cache_egg.name: - result = self._cache_egg.name[name][0] - return result - - def provides_distribution(self, name, version=None): - """ - Iterates over all distributions to find which distributions provide *name*. - If a *version* is provided, it will be used to filter the results. - - This function only returns the first result found, since no more than - one values are expected. If the directory is not found, returns ``None``. - - :parameter version: a version specifier that indicates the version - required, conforming to the format in ``PEP-345`` - - :type name: string - :type version: string - """ - matcher = None - if version is not None: - try: - matcher = self._scheme.matcher('%s (%s)' % (name, version)) - except ValueError: - raise DistlibException('invalid name or version: %r, %r' % - (name, version)) - - for dist in self.get_distributions(): - # We hit a problem on Travis where enum34 was installed and doesn't - # have a provides attribute ... - if not hasattr(dist, 'provides'): - logger.debug('No "provides": %s', dist) - else: - provided = dist.provides - - for p in provided: - p_name, p_ver = parse_name_and_version(p) - if matcher is None: - if p_name == name: - yield dist - break - else: - if p_name == name and matcher.match(p_ver): - yield dist - break - - def get_file_path(self, name, relative_path): - """ - Return the path to a resource file. - """ - dist = self.get_distribution(name) - if dist is None: - raise LookupError('no distribution named %r found' % name) - return dist.get_resource_path(relative_path) - - def get_exported_entries(self, category, name=None): - """ - Return all of the exported entries in a particular category. - - :param category: The category to search for entries. - :param name: If specified, only entries with that name are returned. - """ - for dist in self.get_distributions(): - r = dist.exports - if category in r: - d = r[category] - if name is not None: - if name in d: - yield d[name] - else: - for v in d.values(): - yield v - - -class Distribution(object): - """ - A base class for distributions, whether installed or from indexes. - Either way, it must have some metadata, so that's all that's needed - for construction. - """ - - build_time_dependency = False - """ - Set to True if it's known to be only a build-time dependency (i.e. - not needed after installation). - """ - - requested = False - """A boolean that indicates whether the ``REQUESTED`` metadata file is - present (in other words, whether the package was installed by user - request or it was installed as a dependency).""" - - def __init__(self, metadata): - """ - Initialise an instance. - :param metadata: The instance of :class:`Metadata` describing this - distribution. - """ - self.metadata = metadata - self.name = metadata.name - self.key = self.name.lower() # for case-insensitive comparisons - self.version = metadata.version - self.locator = None - self.digest = None - self.extras = None # additional features requested - self.context = None # environment marker overrides - self.download_urls = set() - self.digests = {} - - @property - def source_url(self): - """ - The source archive download URL for this distribution. - """ - return self.metadata.source_url - - download_url = source_url # Backward compatibility - - @property - def name_and_version(self): - """ - A utility property which displays the name and version in parentheses. - """ - return '%s (%s)' % (self.name, self.version) - - @property - def provides(self): - """ - A set of distribution names and versions provided by this distribution. - :return: A set of "name (version)" strings. - """ - plist = self.metadata.provides - s = '%s (%s)' % (self.name, self.version) - if s not in plist: - plist.append(s) - return plist - - def _get_requirements(self, req_attr): - md = self.metadata - logger.debug('Getting requirements from metadata %r', md.todict()) - reqts = getattr(md, req_attr) - return set(md.get_requirements(reqts, extras=self.extras, - env=self.context)) - - @property - def run_requires(self): - return self._get_requirements('run_requires') - - @property - def meta_requires(self): - return self._get_requirements('meta_requires') - - @property - def build_requires(self): - return self._get_requirements('build_requires') - - @property - def test_requires(self): - return self._get_requirements('test_requires') - - @property - def dev_requires(self): - return self._get_requirements('dev_requires') - - def matches_requirement(self, req): - """ - Say if this instance matches (fulfills) a requirement. - :param req: The requirement to match. - :rtype req: str - :return: True if it matches, else False. - """ - # Requirement may contain extras - parse to lose those - # from what's passed to the matcher - r = parse_requirement(req) - scheme = get_scheme(self.metadata.scheme) - try: - matcher = scheme.matcher(r.requirement) - except UnsupportedVersionError: - # XXX compat-mode if cannot read the version - logger.warning('could not read version %r - using name only', - req) - name = req.split()[0] - matcher = scheme.matcher(name) - - name = matcher.key # case-insensitive - - result = False - for p in self.provides: - p_name, p_ver = parse_name_and_version(p) - if p_name != name: - continue - try: - result = matcher.match(p_ver) - break - except UnsupportedVersionError: - pass - return result - - def __repr__(self): - """ - Return a textual representation of this instance, - """ - if self.source_url: - suffix = ' [%s]' % self.source_url - else: - suffix = '' - return '<Distribution %s (%s)%s>' % (self.name, self.version, suffix) - - def __eq__(self, other): - """ - See if this distribution is the same as another. - :param other: The distribution to compare with. To be equal to one - another. distributions must have the same type, name, - version and source_url. - :return: True if it is the same, else False. - """ - if type(other) is not type(self): - result = False - else: - result = (self.name == other.name and - self.version == other.version and - self.source_url == other.source_url) - return result - - def __hash__(self): - """ - Compute hash in a way which matches the equality test. - """ - return hash(self.name) + hash(self.version) + hash(self.source_url) - - -class BaseInstalledDistribution(Distribution): - """ - This is the base class for installed distributions (whether PEP 376 or - legacy). - """ - - hasher = None - - def __init__(self, metadata, path, env=None): - """ - Initialise an instance. - :param metadata: An instance of :class:`Metadata` which describes the - distribution. This will normally have been initialised - from a metadata file in the ``path``. - :param path: The path of the ``.dist-info`` or ``.egg-info`` - directory for the distribution. - :param env: This is normally the :class:`DistributionPath` - instance where this distribution was found. - """ - super(BaseInstalledDistribution, self).__init__(metadata) - self.path = path - self.dist_path = env - - def get_hash(self, data, hasher=None): - """ - Get the hash of some data, using a particular hash algorithm, if - specified. - - :param data: The data to be hashed. - :type data: bytes - :param hasher: The name of a hash implementation, supported by hashlib, - or ``None``. Examples of valid values are ``'sha1'``, - ``'sha224'``, ``'sha384'``, '``sha256'``, ``'md5'`` and - ``'sha512'``. If no hasher is specified, the ``hasher`` - attribute of the :class:`InstalledDistribution` instance - is used. If the hasher is determined to be ``None``, MD5 - is used as the hashing algorithm. - :returns: The hash of the data. If a hasher was explicitly specified, - the returned hash will be prefixed with the specified hasher - followed by '='. - :rtype: str - """ - if hasher is None: - hasher = self.hasher - if hasher is None: - hasher = hashlib.md5 - prefix = '' - else: - hasher = getattr(hashlib, hasher) - prefix = '%s=' % self.hasher - digest = hasher(data).digest() - digest = base64.urlsafe_b64encode(digest).rstrip(b'=').decode('ascii') - return '%s%s' % (prefix, digest) - - -class InstalledDistribution(BaseInstalledDistribution): - """ - Created with the *path* of the ``.dist-info`` directory provided to the - constructor. It reads the metadata contained in ``pydist.json`` when it is - instantiated., or uses a passed in Metadata instance (useful for when - dry-run mode is being used). - """ - - hasher = 'sha256' - - def __init__(self, path, metadata=None, env=None): - self.modules = [] - self.finder = finder = resources.finder_for_path(path) - if finder is None: - raise ValueError('finder unavailable for %s' % path) - if env and env._cache_enabled and path in env._cache.path: - metadata = env._cache.path[path].metadata - elif metadata is None: - r = finder.find(METADATA_FILENAME) - # Temporary - for Wheel 0.23 support - if r is None: - r = finder.find(WHEEL_METADATA_FILENAME) - # Temporary - for legacy support - if r is None: - r = finder.find('METADATA') - if r is None: - raise ValueError('no %s found in %s' % (METADATA_FILENAME, - path)) - with contextlib.closing(r.as_stream()) as stream: - metadata = Metadata(fileobj=stream, scheme='legacy') - - super(InstalledDistribution, self).__init__(metadata, path, env) - - if env and env._cache_enabled: - env._cache.add(self) - - r = finder.find('REQUESTED') - self.requested = r is not None - p = os.path.join(path, 'top_level.txt') - if os.path.exists(p): - with open(p, 'rb') as f: - data = f.read() - self.modules = data.splitlines() - - def __repr__(self): - return '<InstalledDistribution %r %s at %r>' % ( - self.name, self.version, self.path) - - def __str__(self): - return "%s %s" % (self.name, self.version) - - def _get_records(self): - """ - Get the list of installed files for the distribution - :return: A list of tuples of path, hash and size. Note that hash and - size might be ``None`` for some entries. The path is exactly - as stored in the file (which is as in PEP 376). - """ - results = [] - r = self.get_distinfo_resource('RECORD') - with contextlib.closing(r.as_stream()) as stream: - with CSVReader(stream=stream) as record_reader: - # Base location is parent dir of .dist-info dir - #base_location = os.path.dirname(self.path) - #base_location = os.path.abspath(base_location) - for row in record_reader: - missing = [None for i in range(len(row), 3)] - path, checksum, size = row + missing - #if not os.path.isabs(path): - # path = path.replace('/', os.sep) - # path = os.path.join(base_location, path) - results.append((path, checksum, size)) - return results - - @cached_property - def exports(self): - """ - Return the information exported by this distribution. - :return: A dictionary of exports, mapping an export category to a dict - of :class:`ExportEntry` instances describing the individual - export entries, and keyed by name. - """ - result = {} - r = self.get_distinfo_resource(EXPORTS_FILENAME) - if r: - result = self.read_exports() - return result - - def read_exports(self): - """ - Read exports data from a file in .ini format. - - :return: A dictionary of exports, mapping an export category to a list - of :class:`ExportEntry` instances describing the individual - export entries. - """ - result = {} - r = self.get_distinfo_resource(EXPORTS_FILENAME) - if r: - with contextlib.closing(r.as_stream()) as stream: - result = read_exports(stream) - return result - - def write_exports(self, exports): - """ - Write a dictionary of exports to a file in .ini format. - :param exports: A dictionary of exports, mapping an export category to - a list of :class:`ExportEntry` instances describing the - individual export entries. - """ - rf = self.get_distinfo_file(EXPORTS_FILENAME) - with open(rf, 'w') as f: - write_exports(exports, f) - - def get_resource_path(self, relative_path): - """ - NOTE: This API may change in the future. - - Return the absolute path to a resource file with the given relative - path. - - :param relative_path: The path, relative to .dist-info, of the resource - of interest. - :return: The absolute path where the resource is to be found. - """ - r = self.get_distinfo_resource('RESOURCES') - with contextlib.closing(r.as_stream()) as stream: - with CSVReader(stream=stream) as resources_reader: - for relative, destination in resources_reader: - if relative == relative_path: - return destination - raise KeyError('no resource file with relative path %r ' - 'is installed' % relative_path) - - def list_installed_files(self): - """ - Iterates over the ``RECORD`` entries and returns a tuple - ``(path, hash, size)`` for each line. - - :returns: iterator of (path, hash, size) - """ - for result in self._get_records(): - yield result - - def write_installed_files(self, paths, prefix, dry_run=False): - """ - Writes the ``RECORD`` file, using the ``paths`` iterable passed in. Any - existing ``RECORD`` file is silently overwritten. - - prefix is used to determine when to write absolute paths. - """ - prefix = os.path.join(prefix, '') - base = os.path.dirname(self.path) - base_under_prefix = base.startswith(prefix) - base = os.path.join(base, '') - record_path = self.get_distinfo_file('RECORD') - logger.info('creating %s', record_path) - if dry_run: - return None - with CSVWriter(record_path) as writer: - for path in paths: - if os.path.isdir(path) or path.endswith(('.pyc', '.pyo')): - # do not put size and hash, as in PEP-376 - hash_value = size = '' - else: - size = '%d' % os.path.getsize(path) - with open(path, 'rb') as fp: - hash_value = self.get_hash(fp.read()) - if path.startswith(base) or (base_under_prefix and - path.startswith(prefix)): - path = os.path.relpath(path, base) - writer.writerow((path, hash_value, size)) - - # add the RECORD file itself - if record_path.startswith(base): - record_path = os.path.relpath(record_path, base) - writer.writerow((record_path, '', '')) - return record_path - - def check_installed_files(self): - """ - Checks that the hashes and sizes of the files in ``RECORD`` are - matched by the files themselves. Returns a (possibly empty) list of - mismatches. Each entry in the mismatch list will be a tuple consisting - of the path, 'exists', 'size' or 'hash' according to what didn't match - (existence is checked first, then size, then hash), the expected - value and the actual value. - """ - mismatches = [] - base = os.path.dirname(self.path) - record_path = self.get_distinfo_file('RECORD') - for path, hash_value, size in self.list_installed_files(): - if not os.path.isabs(path): - path = os.path.join(base, path) - if path == record_path: - continue - if not os.path.exists(path): - mismatches.append((path, 'exists', True, False)) - elif os.path.isfile(path): - actual_size = str(os.path.getsize(path)) - if size and actual_size != size: - mismatches.append((path, 'size', size, actual_size)) - elif hash_value: - if '=' in hash_value: - hasher = hash_value.split('=', 1)[0] - else: - hasher = None - - with open(path, 'rb') as f: - actual_hash = self.get_hash(f.read(), hasher) - if actual_hash != hash_value: - mismatches.append((path, 'hash', hash_value, actual_hash)) - return mismatches - - @cached_property - def shared_locations(self): - """ - A dictionary of shared locations whose keys are in the set 'prefix', - 'purelib', 'platlib', 'scripts', 'headers', 'data' and 'namespace'. - The corresponding value is the absolute path of that category for - this distribution, and takes into account any paths selected by the - user at installation time (e.g. via command-line arguments). In the - case of the 'namespace' key, this would be a list of absolute paths - for the roots of namespace packages in this distribution. - - The first time this property is accessed, the relevant information is - read from the SHARED file in the .dist-info directory. - """ - result = {} - shared_path = os.path.join(self.path, 'SHARED') - if os.path.isfile(shared_path): - with codecs.open(shared_path, 'r', encoding='utf-8') as f: - lines = f.read().splitlines() - for line in lines: - key, value = line.split('=', 1) - if key == 'namespace': - result.setdefault(key, []).append(value) - else: - result[key] = value - return result - - def write_shared_locations(self, paths, dry_run=False): - """ - Write shared location information to the SHARED file in .dist-info. - :param paths: A dictionary as described in the documentation for - :meth:`shared_locations`. - :param dry_run: If True, the action is logged but no file is actually - written. - :return: The path of the file written to. - """ - shared_path = os.path.join(self.path, 'SHARED') - logger.info('creating %s', shared_path) - if dry_run: - return None - lines = [] - for key in ('prefix', 'lib', 'headers', 'scripts', 'data'): - path = paths[key] - if os.path.isdir(paths[key]): - lines.append('%s=%s' % (key, path)) - for ns in paths.get('namespace', ()): - lines.append('namespace=%s' % ns) - - with codecs.open(shared_path, 'w', encoding='utf-8') as f: - f.write('\n'.join(lines)) - return shared_path - - def get_distinfo_resource(self, path): - if path not in DIST_FILES: - raise DistlibException('invalid path for a dist-info file: ' - '%r at %r' % (path, self.path)) - finder = resources.finder_for_path(self.path) - if finder is None: - raise DistlibException('Unable to get a finder for %s' % self.path) - return finder.find(path) - - def get_distinfo_file(self, path): - """ - Returns a path located under the ``.dist-info`` directory. Returns a - string representing the path. - - :parameter path: a ``'/'``-separated path relative to the - ``.dist-info`` directory or an absolute path; - If *path* is an absolute path and doesn't start - with the ``.dist-info`` directory path, - a :class:`DistlibException` is raised - :type path: str - :rtype: str - """ - # Check if it is an absolute path # XXX use relpath, add tests - if path.find(os.sep) >= 0: - # it's an absolute path? - distinfo_dirname, path = path.split(os.sep)[-2:] - if distinfo_dirname != self.path.split(os.sep)[-1]: - raise DistlibException( - 'dist-info file %r does not belong to the %r %s ' - 'distribution' % (path, self.name, self.version)) - - # The file must be relative - if path not in DIST_FILES: - raise DistlibException('invalid path for a dist-info file: ' - '%r at %r' % (path, self.path)) - - return os.path.join(self.path, path) - - def list_distinfo_files(self): - """ - Iterates over the ``RECORD`` entries and returns paths for each line if - the path is pointing to a file located in the ``.dist-info`` directory - or one of its subdirectories. - - :returns: iterator of paths - """ - base = os.path.dirname(self.path) - for path, checksum, size in self._get_records(): - # XXX add separator or use real relpath algo - if not os.path.isabs(path): - path = os.path.join(base, path) - if path.startswith(self.path): - yield path - - def __eq__(self, other): - return (isinstance(other, InstalledDistribution) and - self.path == other.path) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - __hash__ = object.__hash__ - - -class EggInfoDistribution(BaseInstalledDistribution): - """Created with the *path* of the ``.egg-info`` directory or file provided - to the constructor. It reads the metadata contained in the file itself, or - if the given path happens to be a directory, the metadata is read from the - file ``PKG-INFO`` under that directory.""" - - requested = True # as we have no way of knowing, assume it was - shared_locations = {} - - def __init__(self, path, env=None): - def set_name_and_version(s, n, v): - s.name = n - s.key = n.lower() # for case-insensitive comparisons - s.version = v - - self.path = path - self.dist_path = env - if env and env._cache_enabled and path in env._cache_egg.path: - metadata = env._cache_egg.path[path].metadata - set_name_and_version(self, metadata.name, metadata.version) - else: - metadata = self._get_metadata(path) - - # Need to be set before caching - set_name_and_version(self, metadata.name, metadata.version) - - if env and env._cache_enabled: - env._cache_egg.add(self) - super(EggInfoDistribution, self).__init__(metadata, path, env) - - def _get_metadata(self, path): - requires = None - - def parse_requires_data(data): - """Create a list of dependencies from a requires.txt file. - - *data*: the contents of a setuptools-produced requires.txt file. - """ - reqs = [] - lines = data.splitlines() - for line in lines: - line = line.strip() - if line.startswith('['): - logger.warning('Unexpected line: quitting requirement scan: %r', - line) - break - r = parse_requirement(line) - if not r: - logger.warning('Not recognised as a requirement: %r', line) - continue - if r.extras: - logger.warning('extra requirements in requires.txt are ' - 'not supported') - if not r.constraints: - reqs.append(r.name) - else: - cons = ', '.join('%s%s' % c for c in r.constraints) - reqs.append('%s (%s)' % (r.name, cons)) - return reqs - - def parse_requires_path(req_path): - """Create a list of dependencies from a requires.txt file. - - *req_path*: the path to a setuptools-produced requires.txt file. - """ - - reqs = [] - try: - with codecs.open(req_path, 'r', 'utf-8') as fp: - reqs = parse_requires_data(fp.read()) - except IOError: - pass - return reqs - - tl_path = tl_data = None - if path.endswith('.egg'): - if os.path.isdir(path): - p = os.path.join(path, 'EGG-INFO') - meta_path = os.path.join(p, 'PKG-INFO') - metadata = Metadata(path=meta_path, scheme='legacy') - req_path = os.path.join(p, 'requires.txt') - tl_path = os.path.join(p, 'top_level.txt') - requires = parse_requires_path(req_path) - else: - # FIXME handle the case where zipfile is not available - zipf = zipimport.zipimporter(path) - fileobj = StringIO( - zipf.get_data('EGG-INFO/PKG-INFO').decode('utf8')) - metadata = Metadata(fileobj=fileobj, scheme='legacy') - try: - data = zipf.get_data('EGG-INFO/requires.txt') - tl_data = zipf.get_data('EGG-INFO/top_level.txt').decode('utf-8') - requires = parse_requires_data(data.decode('utf-8')) - except IOError: - requires = None - elif path.endswith('.egg-info'): - if os.path.isdir(path): - req_path = os.path.join(path, 'requires.txt') - requires = parse_requires_path(req_path) - path = os.path.join(path, 'PKG-INFO') - tl_path = os.path.join(path, 'top_level.txt') - metadata = Metadata(path=path, scheme='legacy') - else: - raise DistlibException('path must end with .egg-info or .egg, ' - 'got %r' % path) - - if requires: - metadata.add_requirements(requires) - # look for top-level modules in top_level.txt, if present - if tl_data is None: - if tl_path is not None and os.path.exists(tl_path): - with open(tl_path, 'rb') as f: - tl_data = f.read().decode('utf-8') - if not tl_data: - tl_data = [] - else: - tl_data = tl_data.splitlines() - self.modules = tl_data - return metadata - - def __repr__(self): - return '<EggInfoDistribution %r %s at %r>' % ( - self.name, self.version, self.path) - - def __str__(self): - return "%s %s" % (self.name, self.version) - - def check_installed_files(self): - """ - Checks that the hashes and sizes of the files in ``RECORD`` are - matched by the files themselves. Returns a (possibly empty) list of - mismatches. Each entry in the mismatch list will be a tuple consisting - of the path, 'exists', 'size' or 'hash' according to what didn't match - (existence is checked first, then size, then hash), the expected - value and the actual value. - """ - mismatches = [] - record_path = os.path.join(self.path, 'installed-files.txt') - if os.path.exists(record_path): - for path, _, _ in self.list_installed_files(): - if path == record_path: - continue - if not os.path.exists(path): - mismatches.append((path, 'exists', True, False)) - return mismatches - - def list_installed_files(self): - """ - Iterates over the ``installed-files.txt`` entries and returns a tuple - ``(path, hash, size)`` for each line. - - :returns: a list of (path, hash, size) - """ - - def _md5(path): - f = open(path, 'rb') - try: - content = f.read() - finally: - f.close() - return hashlib.md5(content).hexdigest() - - def _size(path): - return os.stat(path).st_size - - record_path = os.path.join(self.path, 'installed-files.txt') - result = [] - if os.path.exists(record_path): - with codecs.open(record_path, 'r', encoding='utf-8') as f: - for line in f: - line = line.strip() - p = os.path.normpath(os.path.join(self.path, line)) - # "./" is present as a marker between installed files - # and installation metadata files - if not os.path.exists(p): - logger.warning('Non-existent file: %s', p) - if p.endswith(('.pyc', '.pyo')): - continue - #otherwise fall through and fail - if not os.path.isdir(p): - result.append((p, _md5(p), _size(p))) - result.append((record_path, None, None)) - return result - - def list_distinfo_files(self, absolute=False): - """ - Iterates over the ``installed-files.txt`` entries and returns paths for - each line if the path is pointing to a file located in the - ``.egg-info`` directory or one of its subdirectories. - - :parameter absolute: If *absolute* is ``True``, each returned path is - transformed into a local absolute path. Otherwise the - raw value from ``installed-files.txt`` is returned. - :type absolute: boolean - :returns: iterator of paths - """ - record_path = os.path.join(self.path, 'installed-files.txt') - if os.path.exists(record_path): - skip = True - with codecs.open(record_path, 'r', encoding='utf-8') as f: - for line in f: - line = line.strip() - if line == './': - skip = False - continue - if not skip: - p = os.path.normpath(os.path.join(self.path, line)) - if p.startswith(self.path): - if absolute: - yield p - else: - yield line - - def __eq__(self, other): - return (isinstance(other, EggInfoDistribution) and - self.path == other.path) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - __hash__ = object.__hash__ - -new_dist_class = InstalledDistribution -old_dist_class = EggInfoDistribution - - -class DependencyGraph(object): - """ - Represents a dependency graph between distributions. - - The dependency relationships are stored in an ``adjacency_list`` that maps - distributions to a list of ``(other, label)`` tuples where ``other`` - is a distribution and the edge is labeled with ``label`` (i.e. the version - specifier, if such was provided). Also, for more efficient traversal, for - every distribution ``x``, a list of predecessors is kept in - ``reverse_list[x]``. An edge from distribution ``a`` to - distribution ``b`` means that ``a`` depends on ``b``. If any missing - dependencies are found, they are stored in ``missing``, which is a - dictionary that maps distributions to a list of requirements that were not - provided by any other distributions. - """ - - def __init__(self): - self.adjacency_list = {} - self.reverse_list = {} - self.missing = {} - - def add_distribution(self, distribution): - """Add the *distribution* to the graph. - - :type distribution: :class:`distutils2.database.InstalledDistribution` - or :class:`distutils2.database.EggInfoDistribution` - """ - self.adjacency_list[distribution] = [] - self.reverse_list[distribution] = [] - #self.missing[distribution] = [] - - def add_edge(self, x, y, label=None): - """Add an edge from distribution *x* to distribution *y* with the given - *label*. - - :type x: :class:`distutils2.database.InstalledDistribution` or - :class:`distutils2.database.EggInfoDistribution` - :type y: :class:`distutils2.database.InstalledDistribution` or - :class:`distutils2.database.EggInfoDistribution` - :type label: ``str`` or ``None`` - """ - self.adjacency_list[x].append((y, label)) - # multiple edges are allowed, so be careful - if x not in self.reverse_list[y]: - self.reverse_list[y].append(x) - - def add_missing(self, distribution, requirement): - """ - Add a missing *requirement* for the given *distribution*. - - :type distribution: :class:`distutils2.database.InstalledDistribution` - or :class:`distutils2.database.EggInfoDistribution` - :type requirement: ``str`` - """ - logger.debug('%s missing %r', distribution, requirement) - self.missing.setdefault(distribution, []).append(requirement) - - def _repr_dist(self, dist): - return '%s %s' % (dist.name, dist.version) - - def repr_node(self, dist, level=1): - """Prints only a subgraph""" - output = [self._repr_dist(dist)] - for other, label in self.adjacency_list[dist]: - dist = self._repr_dist(other) - if label is not None: - dist = '%s [%s]' % (dist, label) - output.append(' ' * level + str(dist)) - suboutput = self.repr_node(other, level + 1) - subs = suboutput.split('\n') - output.extend(subs[1:]) - return '\n'.join(output) - - def to_dot(self, f, skip_disconnected=True): - """Writes a DOT output for the graph to the provided file *f*. - - If *skip_disconnected* is set to ``True``, then all distributions - that are not dependent on any other distribution are skipped. - - :type f: has to support ``file``-like operations - :type skip_disconnected: ``bool`` - """ - disconnected = [] - - f.write("digraph dependencies {\n") - for dist, adjs in self.adjacency_list.items(): - if len(adjs) == 0 and not skip_disconnected: - disconnected.append(dist) - for other, label in adjs: - if not label is None: - f.write('"%s" -> "%s" [label="%s"]\n' % - (dist.name, other.name, label)) - else: - f.write('"%s" -> "%s"\n' % (dist.name, other.name)) - if not skip_disconnected and len(disconnected) > 0: - f.write('subgraph disconnected {\n') - f.write('label = "Disconnected"\n') - f.write('bgcolor = red\n') - - for dist in disconnected: - f.write('"%s"' % dist.name) - f.write('\n') - f.write('}\n') - f.write('}\n') - - def topological_sort(self): - """ - Perform a topological sort of the graph. - :return: A tuple, the first element of which is a topologically sorted - list of distributions, and the second element of which is a - list of distributions that cannot be sorted because they have - circular dependencies and so form a cycle. - """ - result = [] - # Make a shallow copy of the adjacency list - alist = {} - for k, v in self.adjacency_list.items(): - alist[k] = v[:] - while True: - # See what we can remove in this run - to_remove = [] - for k, v in list(alist.items())[:]: - if not v: - to_remove.append(k) - del alist[k] - if not to_remove: - # What's left in alist (if anything) is a cycle. - break - # Remove from the adjacency list of others - for k, v in alist.items(): - alist[k] = [(d, r) for d, r in v if d not in to_remove] - logger.debug('Moving to result: %s', - ['%s (%s)' % (d.name, d.version) for d in to_remove]) - result.extend(to_remove) - return result, list(alist.keys()) - - def __repr__(self): - """Representation of the graph""" - output = [] - for dist, adjs in self.adjacency_list.items(): - output.append(self.repr_node(dist)) - return '\n'.join(output) - - -def make_graph(dists, scheme='default'): - """Makes a dependency graph from the given distributions. - - :parameter dists: a list of distributions - :type dists: list of :class:`distutils2.database.InstalledDistribution` and - :class:`distutils2.database.EggInfoDistribution` instances - :rtype: a :class:`DependencyGraph` instance - """ - scheme = get_scheme(scheme) - graph = DependencyGraph() - provided = {} # maps names to lists of (version, dist) tuples - - # first, build the graph and find out what's provided - for dist in dists: - graph.add_distribution(dist) - - for p in dist.provides: - name, version = parse_name_and_version(p) - logger.debug('Add to provided: %s, %s, %s', name, version, dist) - provided.setdefault(name, []).append((version, dist)) - - # now make the edges - for dist in dists: - requires = (dist.run_requires | dist.meta_requires | - dist.build_requires | dist.dev_requires) - for req in requires: - try: - matcher = scheme.matcher(req) - except UnsupportedVersionError: - # XXX compat-mode if cannot read the version - logger.warning('could not read version %r - using name only', - req) - name = req.split()[0] - matcher = scheme.matcher(name) - - name = matcher.key # case-insensitive - - matched = False - if name in provided: - for version, provider in provided[name]: - try: - match = matcher.match(version) - except UnsupportedVersionError: - match = False - - if match: - graph.add_edge(dist, provider, req) - matched = True - break - if not matched: - graph.add_missing(dist, req) - return graph - - -def get_dependent_dists(dists, dist): - """Recursively generate a list of distributions from *dists* that are - dependent on *dist*. - - :param dists: a list of distributions - :param dist: a distribution, member of *dists* for which we are interested - """ - if dist not in dists: - raise DistlibException('given distribution %r is not a member ' - 'of the list' % dist.name) - graph = make_graph(dists) - - dep = [dist] # dependent distributions - todo = graph.reverse_list[dist] # list of nodes we should inspect - - while todo: - d = todo.pop() - dep.append(d) - for succ in graph.reverse_list[d]: - if succ not in dep: - todo.append(succ) - - dep.pop(0) # remove dist from dep, was there to prevent infinite loops - return dep - - -def get_required_dists(dists, dist): - """Recursively generate a list of distributions from *dists* that are - required by *dist*. - - :param dists: a list of distributions - :param dist: a distribution, member of *dists* for which we are interested - """ - if dist not in dists: - raise DistlibException('given distribution %r is not a member ' - 'of the list' % dist.name) - graph = make_graph(dists) - - req = [] # required distributions - todo = graph.adjacency_list[dist] # list of nodes we should inspect - - while todo: - d = todo.pop()[0] - req.append(d) - for pred in graph.adjacency_list[d]: - if pred not in req: - todo.append(pred) - - return req - - -def make_dist(name, version, **kwargs): - """ - A convenience method for making a dist given just a name and version. - """ - summary = kwargs.pop('summary', 'Placeholder for summary') - md = Metadata(**kwargs) - md.name = name - md.version = version - md.summary = summary or 'Placeholder for summary' - return Distribution(md) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/index.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/index.py deleted file mode 100644 index 2406be2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/index.py +++ /dev/null @@ -1,516 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -import hashlib -import logging -import os -import shutil -import subprocess -import tempfile -try: - from threading import Thread -except ImportError: - from dummy_threading import Thread - -from . import DistlibException -from .compat import (HTTPBasicAuthHandler, Request, HTTPPasswordMgr, - urlparse, build_opener, string_types) -from .util import cached_property, zip_dir, ServerProxy - -logger = logging.getLogger(__name__) - -DEFAULT_INDEX = 'https://pypi.python.org/pypi' -DEFAULT_REALM = 'pypi' - -class PackageIndex(object): - """ - This class represents a package index compatible with PyPI, the Python - Package Index. - """ - - boundary = b'----------ThIs_Is_tHe_distlib_index_bouNdaRY_$' - - def __init__(self, url=None): - """ - Initialise an instance. - - :param url: The URL of the index. If not specified, the URL for PyPI is - used. - """ - self.url = url or DEFAULT_INDEX - self.read_configuration() - scheme, netloc, path, params, query, frag = urlparse(self.url) - if params or query or frag or scheme not in ('http', 'https'): - raise DistlibException('invalid repository: %s' % self.url) - self.password_handler = None - self.ssl_verifier = None - self.gpg = None - self.gpg_home = None - with open(os.devnull, 'w') as sink: - # Use gpg by default rather than gpg2, as gpg2 insists on - # prompting for passwords - for s in ('gpg', 'gpg2'): - try: - rc = subprocess.check_call([s, '--version'], stdout=sink, - stderr=sink) - if rc == 0: - self.gpg = s - break - except OSError: - pass - - def _get_pypirc_command(self): - """ - Get the distutils command for interacting with PyPI configurations. - :return: the command. - """ - from distutils.core import Distribution - from distutils.config import PyPIRCCommand - d = Distribution() - return PyPIRCCommand(d) - - def read_configuration(self): - """ - Read the PyPI access configuration as supported by distutils, getting - PyPI to do the actual work. This populates ``username``, ``password``, - ``realm`` and ``url`` attributes from the configuration. - """ - # get distutils to do the work - c = self._get_pypirc_command() - c.repository = self.url - cfg = c._read_pypirc() - self.username = cfg.get('username') - self.password = cfg.get('password') - self.realm = cfg.get('realm', 'pypi') - self.url = cfg.get('repository', self.url) - - def save_configuration(self): - """ - Save the PyPI access configuration. You must have set ``username`` and - ``password`` attributes before calling this method. - - Again, distutils is used to do the actual work. - """ - self.check_credentials() - # get distutils to do the work - c = self._get_pypirc_command() - c._store_pypirc(self.username, self.password) - - def check_credentials(self): - """ - Check that ``username`` and ``password`` have been set, and raise an - exception if not. - """ - if self.username is None or self.password is None: - raise DistlibException('username and password must be set') - pm = HTTPPasswordMgr() - _, netloc, _, _, _, _ = urlparse(self.url) - pm.add_password(self.realm, netloc, self.username, self.password) - self.password_handler = HTTPBasicAuthHandler(pm) - - def register(self, metadata): - """ - Register a distribution on PyPI, using the provided metadata. - - :param metadata: A :class:`Metadata` instance defining at least a name - and version number for the distribution to be - registered. - :return: The HTTP response received from PyPI upon submission of the - request. - """ - self.check_credentials() - metadata.validate() - d = metadata.todict() - d[':action'] = 'verify' - request = self.encode_request(d.items(), []) - response = self.send_request(request) - d[':action'] = 'submit' - request = self.encode_request(d.items(), []) - return self.send_request(request) - - def _reader(self, name, stream, outbuf): - """ - Thread runner for reading lines of from a subprocess into a buffer. - - :param name: The logical name of the stream (used for logging only). - :param stream: The stream to read from. This will typically a pipe - connected to the output stream of a subprocess. - :param outbuf: The list to append the read lines to. - """ - while True: - s = stream.readline() - if not s: - break - s = s.decode('utf-8').rstrip() - outbuf.append(s) - logger.debug('%s: %s' % (name, s)) - stream.close() - - def get_sign_command(self, filename, signer, sign_password, - keystore=None): - """ - Return a suitable command for signing a file. - - :param filename: The pathname to the file to be signed. - :param signer: The identifier of the signer of the file. - :param sign_password: The passphrase for the signer's - private key used for signing. - :param keystore: The path to a directory which contains the keys - used in verification. If not specified, the - instance's ``gpg_home`` attribute is used instead. - :return: The signing command as a list suitable to be - passed to :class:`subprocess.Popen`. - """ - cmd = [self.gpg, '--status-fd', '2', '--no-tty'] - if keystore is None: - keystore = self.gpg_home - if keystore: - cmd.extend(['--homedir', keystore]) - if sign_password is not None: - cmd.extend(['--batch', '--passphrase-fd', '0']) - td = tempfile.mkdtemp() - sf = os.path.join(td, os.path.basename(filename) + '.asc') - cmd.extend(['--detach-sign', '--armor', '--local-user', - signer, '--output', sf, filename]) - logger.debug('invoking: %s', ' '.join(cmd)) - return cmd, sf - - def run_command(self, cmd, input_data=None): - """ - Run a command in a child process , passing it any input data specified. - - :param cmd: The command to run. - :param input_data: If specified, this must be a byte string containing - data to be sent to the child process. - :return: A tuple consisting of the subprocess' exit code, a list of - lines read from the subprocess' ``stdout``, and a list of - lines read from the subprocess' ``stderr``. - """ - kwargs = { - 'stdout': subprocess.PIPE, - 'stderr': subprocess.PIPE, - } - if input_data is not None: - kwargs['stdin'] = subprocess.PIPE - stdout = [] - stderr = [] - p = subprocess.Popen(cmd, **kwargs) - # We don't use communicate() here because we may need to - # get clever with interacting with the command - t1 = Thread(target=self._reader, args=('stdout', p.stdout, stdout)) - t1.start() - t2 = Thread(target=self._reader, args=('stderr', p.stderr, stderr)) - t2.start() - if input_data is not None: - p.stdin.write(input_data) - p.stdin.close() - - p.wait() - t1.join() - t2.join() - return p.returncode, stdout, stderr - - def sign_file(self, filename, signer, sign_password, keystore=None): - """ - Sign a file. - - :param filename: The pathname to the file to be signed. - :param signer: The identifier of the signer of the file. - :param sign_password: The passphrase for the signer's - private key used for signing. - :param keystore: The path to a directory which contains the keys - used in signing. If not specified, the instance's - ``gpg_home`` attribute is used instead. - :return: The absolute pathname of the file where the signature is - stored. - """ - cmd, sig_file = self.get_sign_command(filename, signer, sign_password, - keystore) - rc, stdout, stderr = self.run_command(cmd, - sign_password.encode('utf-8')) - if rc != 0: - raise DistlibException('sign command failed with error ' - 'code %s' % rc) - return sig_file - - def upload_file(self, metadata, filename, signer=None, sign_password=None, - filetype='sdist', pyversion='source', keystore=None): - """ - Upload a release file to the index. - - :param metadata: A :class:`Metadata` instance defining at least a name - and version number for the file to be uploaded. - :param filename: The pathname of the file to be uploaded. - :param signer: The identifier of the signer of the file. - :param sign_password: The passphrase for the signer's - private key used for signing. - :param filetype: The type of the file being uploaded. This is the - distutils command which produced that file, e.g. - ``sdist`` or ``bdist_wheel``. - :param pyversion: The version of Python which the release relates - to. For code compatible with any Python, this would - be ``source``, otherwise it would be e.g. ``3.2``. - :param keystore: The path to a directory which contains the keys - used in signing. If not specified, the instance's - ``gpg_home`` attribute is used instead. - :return: The HTTP response received from PyPI upon submission of the - request. - """ - self.check_credentials() - if not os.path.exists(filename): - raise DistlibException('not found: %s' % filename) - metadata.validate() - d = metadata.todict() - sig_file = None - if signer: - if not self.gpg: - logger.warning('no signing program available - not signed') - else: - sig_file = self.sign_file(filename, signer, sign_password, - keystore) - with open(filename, 'rb') as f: - file_data = f.read() - md5_digest = hashlib.md5(file_data).hexdigest() - sha256_digest = hashlib.sha256(file_data).hexdigest() - d.update({ - ':action': 'file_upload', - 'protocol_version': '1', - 'filetype': filetype, - 'pyversion': pyversion, - 'md5_digest': md5_digest, - 'sha256_digest': sha256_digest, - }) - files = [('content', os.path.basename(filename), file_data)] - if sig_file: - with open(sig_file, 'rb') as f: - sig_data = f.read() - files.append(('gpg_signature', os.path.basename(sig_file), - sig_data)) - shutil.rmtree(os.path.dirname(sig_file)) - request = self.encode_request(d.items(), files) - return self.send_request(request) - - def upload_documentation(self, metadata, doc_dir): - """ - Upload documentation to the index. - - :param metadata: A :class:`Metadata` instance defining at least a name - and version number for the documentation to be - uploaded. - :param doc_dir: The pathname of the directory which contains the - documentation. This should be the directory that - contains the ``index.html`` for the documentation. - :return: The HTTP response received from PyPI upon submission of the - request. - """ - self.check_credentials() - if not os.path.isdir(doc_dir): - raise DistlibException('not a directory: %r' % doc_dir) - fn = os.path.join(doc_dir, 'index.html') - if not os.path.exists(fn): - raise DistlibException('not found: %r' % fn) - metadata.validate() - name, version = metadata.name, metadata.version - zip_data = zip_dir(doc_dir).getvalue() - fields = [(':action', 'doc_upload'), - ('name', name), ('version', version)] - files = [('content', name, zip_data)] - request = self.encode_request(fields, files) - return self.send_request(request) - - def get_verify_command(self, signature_filename, data_filename, - keystore=None): - """ - Return a suitable command for verifying a file. - - :param signature_filename: The pathname to the file containing the - signature. - :param data_filename: The pathname to the file containing the - signed data. - :param keystore: The path to a directory which contains the keys - used in verification. If not specified, the - instance's ``gpg_home`` attribute is used instead. - :return: The verifying command as a list suitable to be - passed to :class:`subprocess.Popen`. - """ - cmd = [self.gpg, '--status-fd', '2', '--no-tty'] - if keystore is None: - keystore = self.gpg_home - if keystore: - cmd.extend(['--homedir', keystore]) - cmd.extend(['--verify', signature_filename, data_filename]) - logger.debug('invoking: %s', ' '.join(cmd)) - return cmd - - def verify_signature(self, signature_filename, data_filename, - keystore=None): - """ - Verify a signature for a file. - - :param signature_filename: The pathname to the file containing the - signature. - :param data_filename: The pathname to the file containing the - signed data. - :param keystore: The path to a directory which contains the keys - used in verification. If not specified, the - instance's ``gpg_home`` attribute is used instead. - :return: True if the signature was verified, else False. - """ - if not self.gpg: - raise DistlibException('verification unavailable because gpg ' - 'unavailable') - cmd = self.get_verify_command(signature_filename, data_filename, - keystore) - rc, stdout, stderr = self.run_command(cmd) - if rc not in (0, 1): - raise DistlibException('verify command failed with error ' - 'code %s' % rc) - return rc == 0 - - def download_file(self, url, destfile, digest=None, reporthook=None): - """ - This is a convenience method for downloading a file from an URL. - Normally, this will be a file from the index, though currently - no check is made for this (i.e. a file can be downloaded from - anywhere). - - The method is just like the :func:`urlretrieve` function in the - standard library, except that it allows digest computation to be - done during download and checking that the downloaded data - matched any expected value. - - :param url: The URL of the file to be downloaded (assumed to be - available via an HTTP GET request). - :param destfile: The pathname where the downloaded file is to be - saved. - :param digest: If specified, this must be a (hasher, value) - tuple, where hasher is the algorithm used (e.g. - ``'md5'``) and ``value`` is the expected value. - :param reporthook: The same as for :func:`urlretrieve` in the - standard library. - """ - if digest is None: - digester = None - logger.debug('No digest specified') - else: - if isinstance(digest, (list, tuple)): - hasher, digest = digest - else: - hasher = 'md5' - digester = getattr(hashlib, hasher)() - logger.debug('Digest specified: %s' % digest) - # The following code is equivalent to urlretrieve. - # We need to do it this way so that we can compute the - # digest of the file as we go. - with open(destfile, 'wb') as dfp: - # addinfourl is not a context manager on 2.x - # so we have to use try/finally - sfp = self.send_request(Request(url)) - try: - headers = sfp.info() - blocksize = 8192 - size = -1 - read = 0 - blocknum = 0 - if "content-length" in headers: - size = int(headers["Content-Length"]) - if reporthook: - reporthook(blocknum, blocksize, size) - while True: - block = sfp.read(blocksize) - if not block: - break - read += len(block) - dfp.write(block) - if digester: - digester.update(block) - blocknum += 1 - if reporthook: - reporthook(blocknum, blocksize, size) - finally: - sfp.close() - - # check that we got the whole file, if we can - if size >= 0 and read < size: - raise DistlibException( - 'retrieval incomplete: got only %d out of %d bytes' - % (read, size)) - # if we have a digest, it must match. - if digester: - actual = digester.hexdigest() - if digest != actual: - raise DistlibException('%s digest mismatch for %s: expected ' - '%s, got %s' % (hasher, destfile, - digest, actual)) - logger.debug('Digest verified: %s', digest) - - def send_request(self, req): - """ - Send a standard library :class:`Request` to PyPI and return its - response. - - :param req: The request to send. - :return: The HTTP response from PyPI (a standard library HTTPResponse). - """ - handlers = [] - if self.password_handler: - handlers.append(self.password_handler) - if self.ssl_verifier: - handlers.append(self.ssl_verifier) - opener = build_opener(*handlers) - return opener.open(req) - - def encode_request(self, fields, files): - """ - Encode fields and files for posting to an HTTP server. - - :param fields: The fields to send as a list of (fieldname, value) - tuples. - :param files: The files to send as a list of (fieldname, filename, - file_bytes) tuple. - """ - # Adapted from packaging, which in turn was adapted from - # http://code.activestate.com/recipes/146306 - - parts = [] - boundary = self.boundary - for k, values in fields: - if not isinstance(values, (list, tuple)): - values = [values] - - for v in values: - parts.extend(( - b'--' + boundary, - ('Content-Disposition: form-data; name="%s"' % - k).encode('utf-8'), - b'', - v.encode('utf-8'))) - for key, filename, value in files: - parts.extend(( - b'--' + boundary, - ('Content-Disposition: form-data; name="%s"; filename="%s"' % - (key, filename)).encode('utf-8'), - b'', - value)) - - parts.extend((b'--' + boundary + b'--', b'')) - - body = b'\r\n'.join(parts) - ct = b'multipart/form-data; boundary=' + boundary - headers = { - 'Content-type': ct, - 'Content-length': str(len(body)) - } - return Request(self.url, body, headers) - - def search(self, terms, operator=None): - if isinstance(terms, string_types): - terms = {'name': terms} - rpc_proxy = ServerProxy(self.url, timeout=3.0) - try: - return rpc_proxy.search(terms, operator or 'and') - finally: - rpc_proxy('close')() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/locators.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/locators.py deleted file mode 100644 index 5c655c3..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/locators.py +++ /dev/null @@ -1,1295 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2015 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# - -import gzip -from io import BytesIO -import json -import logging -import os -import posixpath -import re -try: - import threading -except ImportError: # pragma: no cover - import dummy_threading as threading -import zlib - -from . import DistlibException -from .compat import (urljoin, urlparse, urlunparse, url2pathname, pathname2url, - queue, quote, unescape, string_types, build_opener, - HTTPRedirectHandler as BaseRedirectHandler, text_type, - Request, HTTPError, URLError) -from .database import Distribution, DistributionPath, make_dist -from .metadata import Metadata, MetadataInvalidError -from .util import (cached_property, parse_credentials, ensure_slash, - split_filename, get_project_data, parse_requirement, - parse_name_and_version, ServerProxy, normalize_name) -from .version import get_scheme, UnsupportedVersionError -from .wheel import Wheel, is_compatible - -logger = logging.getLogger(__name__) - -HASHER_HASH = re.compile(r'^(\w+)=([a-f0-9]+)') -CHARSET = re.compile(r';\s*charset\s*=\s*(.*)\s*$', re.I) -HTML_CONTENT_TYPE = re.compile('text/html|application/x(ht)?ml') -DEFAULT_INDEX = 'https://pypi.python.org/pypi' - -def get_all_distribution_names(url=None): - """ - Return all distribution names known by an index. - :param url: The URL of the index. - :return: A list of all known distribution names. - """ - if url is None: - url = DEFAULT_INDEX - client = ServerProxy(url, timeout=3.0) - try: - return client.list_packages() - finally: - client('close')() - -class RedirectHandler(BaseRedirectHandler): - """ - A class to work around a bug in some Python 3.2.x releases. - """ - # There's a bug in the base version for some 3.2.x - # (e.g. 3.2.2 on Ubuntu Oneiric). If a Location header - # returns e.g. /abc, it bails because it says the scheme '' - # is bogus, when actually it should use the request's - # URL for the scheme. See Python issue #13696. - def http_error_302(self, req, fp, code, msg, headers): - # Some servers (incorrectly) return multiple Location headers - # (so probably same goes for URI). Use first header. - newurl = None - for key in ('location', 'uri'): - if key in headers: - newurl = headers[key] - break - if newurl is None: # pragma: no cover - return - urlparts = urlparse(newurl) - if urlparts.scheme == '': - newurl = urljoin(req.get_full_url(), newurl) - if hasattr(headers, 'replace_header'): - headers.replace_header(key, newurl) - else: - headers[key] = newurl - return BaseRedirectHandler.http_error_302(self, req, fp, code, msg, - headers) - - http_error_301 = http_error_303 = http_error_307 = http_error_302 - -class Locator(object): - """ - A base class for locators - things that locate distributions. - """ - source_extensions = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz') - binary_extensions = ('.egg', '.exe', '.whl') - excluded_extensions = ('.pdf',) - - # A list of tags indicating which wheels you want to match. The default - # value of None matches against the tags compatible with the running - # Python. If you want to match other values, set wheel_tags on a locator - # instance to a list of tuples (pyver, abi, arch) which you want to match. - wheel_tags = None - - downloadable_extensions = source_extensions + ('.whl',) - - def __init__(self, scheme='default'): - """ - Initialise an instance. - :param scheme: Because locators look for most recent versions, they - need to know the version scheme to use. This specifies - the current PEP-recommended scheme - use ``'legacy'`` - if you need to support existing distributions on PyPI. - """ - self._cache = {} - self.scheme = scheme - # Because of bugs in some of the handlers on some of the platforms, - # we use our own opener rather than just using urlopen. - self.opener = build_opener(RedirectHandler()) - # If get_project() is called from locate(), the matcher instance - # is set from the requirement passed to locate(). See issue #18 for - # why this can be useful to know. - self.matcher = None - self.errors = queue.Queue() - - def get_errors(self): - """ - Return any errors which have occurred. - """ - result = [] - while not self.errors.empty(): # pragma: no cover - try: - e = self.errors.get(False) - result.append(e) - except self.errors.Empty: - continue - self.errors.task_done() - return result - - def clear_errors(self): - """ - Clear any errors which may have been logged. - """ - # Just get the errors and throw them away - self.get_errors() - - def clear_cache(self): - self._cache.clear() - - def _get_scheme(self): - return self._scheme - - def _set_scheme(self, value): - self._scheme = value - - scheme = property(_get_scheme, _set_scheme) - - def _get_project(self, name): - """ - For a given project, get a dictionary mapping available versions to Distribution - instances. - - This should be implemented in subclasses. - - If called from a locate() request, self.matcher will be set to a - matcher for the requirement to satisfy, otherwise it will be None. - """ - raise NotImplementedError('Please implement in the subclass') - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - raise NotImplementedError('Please implement in the subclass') - - def get_project(self, name): - """ - For a given project, get a dictionary mapping available versions to Distribution - instances. - - This calls _get_project to do all the work, and just implements a caching layer on top. - """ - if self._cache is None: # pragma: no cover - result = self._get_project(name) - elif name in self._cache: - result = self._cache[name] - else: - self.clear_errors() - result = self._get_project(name) - self._cache[name] = result - return result - - def score_url(self, url): - """ - Give an url a score which can be used to choose preferred URLs - for a given project release. - """ - t = urlparse(url) - basename = posixpath.basename(t.path) - compatible = True - is_wheel = basename.endswith('.whl') - is_downloadable = basename.endswith(self.downloadable_extensions) - if is_wheel: - compatible = is_compatible(Wheel(basename), self.wheel_tags) - return (t.scheme == 'https', 'pypi.python.org' in t.netloc, - is_downloadable, is_wheel, compatible, basename) - - def prefer_url(self, url1, url2): - """ - Choose one of two URLs where both are candidates for distribution - archives for the same version of a distribution (for example, - .tar.gz vs. zip). - - The current implementation favours https:// URLs over http://, archives - from PyPI over those from other locations, wheel compatibility (if a - wheel) and then the archive name. - """ - result = url2 - if url1: - s1 = self.score_url(url1) - s2 = self.score_url(url2) - if s1 > s2: - result = url1 - if result != url2: - logger.debug('Not replacing %r with %r', url1, url2) - else: - logger.debug('Replacing %r with %r', url1, url2) - return result - - def split_filename(self, filename, project_name): - """ - Attempt to split a filename in project name, version and Python version. - """ - return split_filename(filename, project_name) - - def convert_url_to_download_info(self, url, project_name): - """ - See if a URL is a candidate for a download URL for a project (the URL - has typically been scraped from an HTML page). - - If it is, a dictionary is returned with keys "name", "version", - "filename" and "url"; otherwise, None is returned. - """ - def same_project(name1, name2): - return normalize_name(name1) == normalize_name(name2) - - result = None - scheme, netloc, path, params, query, frag = urlparse(url) - if frag.lower().startswith('egg='): # pragma: no cover - logger.debug('%s: version hint in fragment: %r', - project_name, frag) - m = HASHER_HASH.match(frag) - if m: - algo, digest = m.groups() - else: - algo, digest = None, None - origpath = path - if path and path[-1] == '/': # pragma: no cover - path = path[:-1] - if path.endswith('.whl'): - try: - wheel = Wheel(path) - if not is_compatible(wheel, self.wheel_tags): - logger.debug('Wheel not compatible: %s', path) - else: - if project_name is None: - include = True - else: - include = same_project(wheel.name, project_name) - if include: - result = { - 'name': wheel.name, - 'version': wheel.version, - 'filename': wheel.filename, - 'url': urlunparse((scheme, netloc, origpath, - params, query, '')), - 'python-version': ', '.join( - ['.'.join(list(v[2:])) for v in wheel.pyver]), - } - except Exception as e: # pragma: no cover - logger.warning('invalid path for wheel: %s', path) - elif not path.endswith(self.downloadable_extensions): # pragma: no cover - logger.debug('Not downloadable: %s', path) - else: # downloadable extension - path = filename = posixpath.basename(path) - for ext in self.downloadable_extensions: - if path.endswith(ext): - path = path[:-len(ext)] - t = self.split_filename(path, project_name) - if not t: # pragma: no cover - logger.debug('No match for project/version: %s', path) - else: - name, version, pyver = t - if not project_name or same_project(project_name, name): - result = { - 'name': name, - 'version': version, - 'filename': filename, - 'url': urlunparse((scheme, netloc, origpath, - params, query, '')), - #'packagetype': 'sdist', - } - if pyver: # pragma: no cover - result['python-version'] = pyver - break - if result and algo: - result['%s_digest' % algo] = digest - return result - - def _get_digest(self, info): - """ - Get a digest from a dictionary by looking at keys of the form - 'algo_digest'. - - Returns a 2-tuple (algo, digest) if found, else None. Currently - looks only for SHA256, then MD5. - """ - result = None - for algo in ('sha256', 'md5'): - key = '%s_digest' % algo - if key in info: - result = (algo, info[key]) - break - return result - - def _update_version_data(self, result, info): - """ - Update a result dictionary (the final result from _get_project) with a - dictionary for a specific version, which typically holds information - gleaned from a filename or URL for an archive for the distribution. - """ - name = info.pop('name') - version = info.pop('version') - if version in result: - dist = result[version] - md = dist.metadata - else: - dist = make_dist(name, version, scheme=self.scheme) - md = dist.metadata - dist.digest = digest = self._get_digest(info) - url = info['url'] - result['digests'][url] = digest - if md.source_url != info['url']: - md.source_url = self.prefer_url(md.source_url, url) - result['urls'].setdefault(version, set()).add(url) - dist.locator = self - result[version] = dist - - def locate(self, requirement, prereleases=False): - """ - Find the most recent distribution which matches the given - requirement. - - :param requirement: A requirement of the form 'foo (1.0)' or perhaps - 'foo (>= 1.0, < 2.0, != 1.3)' - :param prereleases: If ``True``, allow pre-release versions - to be located. Otherwise, pre-release versions - are not returned. - :return: A :class:`Distribution` instance, or ``None`` if no such - distribution could be located. - """ - result = None - r = parse_requirement(requirement) - if r is None: # pragma: no cover - raise DistlibException('Not a valid requirement: %r' % requirement) - scheme = get_scheme(self.scheme) - self.matcher = matcher = scheme.matcher(r.requirement) - logger.debug('matcher: %s (%s)', matcher, type(matcher).__name__) - versions = self.get_project(r.name) - if len(versions) > 2: # urls and digests keys are present - # sometimes, versions are invalid - slist = [] - vcls = matcher.version_class - for k in versions: - if k in ('urls', 'digests'): - continue - try: - if not matcher.match(k): - logger.debug('%s did not match %r', matcher, k) - else: - if prereleases or not vcls(k).is_prerelease: - slist.append(k) - else: - logger.debug('skipping pre-release ' - 'version %s of %s', k, matcher.name) - except Exception: # pragma: no cover - logger.warning('error matching %s with %r', matcher, k) - pass # slist.append(k) - if len(slist) > 1: - slist = sorted(slist, key=scheme.key) - if slist: - logger.debug('sorted list: %s', slist) - version = slist[-1] - result = versions[version] - if result: - if r.extras: - result.extras = r.extras - result.download_urls = versions.get('urls', {}).get(version, set()) - d = {} - sd = versions.get('digests', {}) - for url in result.download_urls: - if url in sd: # pragma: no cover - d[url] = sd[url] - result.digests = d - self.matcher = None - return result - - -class PyPIRPCLocator(Locator): - """ - This locator uses XML-RPC to locate distributions. It therefore - cannot be used with simple mirrors (that only mirror file content). - """ - def __init__(self, url, **kwargs): - """ - Initialise an instance. - - :param url: The URL to use for XML-RPC. - :param kwargs: Passed to the superclass constructor. - """ - super(PyPIRPCLocator, self).__init__(**kwargs) - self.base_url = url - self.client = ServerProxy(url, timeout=3.0) - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - return set(self.client.list_packages()) - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - versions = self.client.package_releases(name, True) - for v in versions: - urls = self.client.release_urls(name, v) - data = self.client.release_data(name, v) - metadata = Metadata(scheme=self.scheme) - metadata.name = data['name'] - metadata.version = data['version'] - metadata.license = data.get('license') - metadata.keywords = data.get('keywords', []) - metadata.summary = data.get('summary') - dist = Distribution(metadata) - if urls: - info = urls[0] - metadata.source_url = info['url'] - dist.digest = self._get_digest(info) - dist.locator = self - result[v] = dist - for info in urls: - url = info['url'] - digest = self._get_digest(info) - result['urls'].setdefault(v, set()).add(url) - result['digests'][url] = digest - return result - -class PyPIJSONLocator(Locator): - """ - This locator uses PyPI's JSON interface. It's very limited in functionality - and probably not worth using. - """ - def __init__(self, url, **kwargs): - super(PyPIJSONLocator, self).__init__(**kwargs) - self.base_url = ensure_slash(url) - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - raise NotImplementedError('Not available from this locator') - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - url = urljoin(self.base_url, '%s/json' % quote(name)) - try: - resp = self.opener.open(url) - data = resp.read().decode() # for now - d = json.loads(data) - md = Metadata(scheme=self.scheme) - data = d['info'] - md.name = data['name'] - md.version = data['version'] - md.license = data.get('license') - md.keywords = data.get('keywords', []) - md.summary = data.get('summary') - dist = Distribution(md) - dist.locator = self - urls = d['urls'] - result[md.version] = dist - for info in d['urls']: - url = info['url'] - dist.download_urls.add(url) - dist.digests[url] = self._get_digest(info) - result['urls'].setdefault(md.version, set()).add(url) - result['digests'][url] = self._get_digest(info) - # Now get other releases - for version, infos in d['releases'].items(): - if version == md.version: - continue # already done - omd = Metadata(scheme=self.scheme) - omd.name = md.name - omd.version = version - odist = Distribution(omd) - odist.locator = self - result[version] = odist - for info in infos: - url = info['url'] - odist.download_urls.add(url) - odist.digests[url] = self._get_digest(info) - result['urls'].setdefault(version, set()).add(url) - result['digests'][url] = self._get_digest(info) -# for info in urls: -# md.source_url = info['url'] -# dist.digest = self._get_digest(info) -# dist.locator = self -# for info in urls: -# url = info['url'] -# result['urls'].setdefault(md.version, set()).add(url) -# result['digests'][url] = self._get_digest(info) - except Exception as e: - self.errors.put(text_type(e)) - logger.exception('JSON fetch failed: %s', e) - return result - - -class Page(object): - """ - This class represents a scraped HTML page. - """ - # The following slightly hairy-looking regex just looks for the contents of - # an anchor link, which has an attribute "href" either immediately preceded - # or immediately followed by a "rel" attribute. The attribute values can be - # declared with double quotes, single quotes or no quotes - which leads to - # the length of the expression. - _href = re.compile(""" -(rel\\s*=\\s*(?:"(?P<rel1>[^"]*)"|'(?P<rel2>[^']*)'|(?P<rel3>[^>\\s\n]*))\\s+)? -href\\s*=\\s*(?:"(?P<url1>[^"]*)"|'(?P<url2>[^']*)'|(?P<url3>[^>\\s\n]*)) -(\\s+rel\\s*=\\s*(?:"(?P<rel4>[^"]*)"|'(?P<rel5>[^']*)'|(?P<rel6>[^>\\s\n]*)))? -""", re.I | re.S | re.X) - _base = re.compile(r"""<base\s+href\s*=\s*['"]?([^'">]+)""", re.I | re.S) - - def __init__(self, data, url): - """ - Initialise an instance with the Unicode page contents and the URL they - came from. - """ - self.data = data - self.base_url = self.url = url - m = self._base.search(self.data) - if m: - self.base_url = m.group(1) - - _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I) - - @cached_property - def links(self): - """ - Return the URLs of all the links on a page together with information - about their "rel" attribute, for determining which ones to treat as - downloads and which ones to queue for further scraping. - """ - def clean(url): - "Tidy up an URL." - scheme, netloc, path, params, query, frag = urlparse(url) - return urlunparse((scheme, netloc, quote(path), - params, query, frag)) - - result = set() - for match in self._href.finditer(self.data): - d = match.groupdict('') - rel = (d['rel1'] or d['rel2'] or d['rel3'] or - d['rel4'] or d['rel5'] or d['rel6']) - url = d['url1'] or d['url2'] or d['url3'] - url = urljoin(self.base_url, url) - url = unescape(url) - url = self._clean_re.sub(lambda m: '%%%2x' % ord(m.group(0)), url) - result.add((url, rel)) - # We sort the result, hoping to bring the most recent versions - # to the front - result = sorted(result, key=lambda t: t[0], reverse=True) - return result - - -class SimpleScrapingLocator(Locator): - """ - A locator which scrapes HTML pages to locate downloads for a distribution. - This runs multiple threads to do the I/O; performance is at least as good - as pip's PackageFinder, which works in an analogous fashion. - """ - - # These are used to deal with various Content-Encoding schemes. - decoders = { - 'deflate': zlib.decompress, - 'gzip': lambda b: gzip.GzipFile(fileobj=BytesIO(d)).read(), - 'none': lambda b: b, - } - - def __init__(self, url, timeout=None, num_workers=10, **kwargs): - """ - Initialise an instance. - :param url: The root URL to use for scraping. - :param timeout: The timeout, in seconds, to be applied to requests. - This defaults to ``None`` (no timeout specified). - :param num_workers: The number of worker threads you want to do I/O, - This defaults to 10. - :param kwargs: Passed to the superclass. - """ - super(SimpleScrapingLocator, self).__init__(**kwargs) - self.base_url = ensure_slash(url) - self.timeout = timeout - self._page_cache = {} - self._seen = set() - self._to_fetch = queue.Queue() - self._bad_hosts = set() - self.skip_externals = False - self.num_workers = num_workers - self._lock = threading.RLock() - # See issue #45: we need to be resilient when the locator is used - # in a thread, e.g. with concurrent.futures. We can't use self._lock - # as it is for coordinating our internal threads - the ones created - # in _prepare_threads. - self._gplock = threading.RLock() - self.platform_check = False # See issue #112 - - def _prepare_threads(self): - """ - Threads are created only when get_project is called, and terminate - before it returns. They are there primarily to parallelise I/O (i.e. - fetching web pages). - """ - self._threads = [] - for i in range(self.num_workers): - t = threading.Thread(target=self._fetch) - t.setDaemon(True) - t.start() - self._threads.append(t) - - def _wait_threads(self): - """ - Tell all the threads to terminate (by sending a sentinel value) and - wait for them to do so. - """ - # Note that you need two loops, since you can't say which - # thread will get each sentinel - for t in self._threads: - self._to_fetch.put(None) # sentinel - for t in self._threads: - t.join() - self._threads = [] - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - with self._gplock: - self.result = result - self.project_name = name - url = urljoin(self.base_url, '%s/' % quote(name)) - self._seen.clear() - self._page_cache.clear() - self._prepare_threads() - try: - logger.debug('Queueing %s', url) - self._to_fetch.put(url) - self._to_fetch.join() - finally: - self._wait_threads() - del self.result - return result - - platform_dependent = re.compile(r'\b(linux_(i\d86|x86_64|arm\w+)|' - r'win(32|_amd64)|macosx_?\d+)\b', re.I) - - def _is_platform_dependent(self, url): - """ - Does an URL refer to a platform-specific download? - """ - return self.platform_dependent.search(url) - - def _process_download(self, url): - """ - See if an URL is a suitable download for a project. - - If it is, register information in the result dictionary (for - _get_project) about the specific version it's for. - - Note that the return value isn't actually used other than as a boolean - value. - """ - if self.platform_check and self._is_platform_dependent(url): - info = None - else: - info = self.convert_url_to_download_info(url, self.project_name) - logger.debug('process_download: %s -> %s', url, info) - if info: - with self._lock: # needed because self.result is shared - self._update_version_data(self.result, info) - return info - - def _should_queue(self, link, referrer, rel): - """ - Determine whether a link URL from a referring page and with a - particular "rel" attribute should be queued for scraping. - """ - scheme, netloc, path, _, _, _ = urlparse(link) - if path.endswith(self.source_extensions + self.binary_extensions + - self.excluded_extensions): - result = False - elif self.skip_externals and not link.startswith(self.base_url): - result = False - elif not referrer.startswith(self.base_url): - result = False - elif rel not in ('homepage', 'download'): - result = False - elif scheme not in ('http', 'https', 'ftp'): - result = False - elif self._is_platform_dependent(link): - result = False - else: - host = netloc.split(':', 1)[0] - if host.lower() == 'localhost': - result = False - else: - result = True - logger.debug('should_queue: %s (%s) from %s -> %s', link, rel, - referrer, result) - return result - - def _fetch(self): - """ - Get a URL to fetch from the work queue, get the HTML page, examine its - links for download candidates and candidates for further scraping. - - This is a handy method to run in a thread. - """ - while True: - url = self._to_fetch.get() - try: - if url: - page = self.get_page(url) - if page is None: # e.g. after an error - continue - for link, rel in page.links: - if link not in self._seen: - try: - self._seen.add(link) - if (not self._process_download(link) and - self._should_queue(link, url, rel)): - logger.debug('Queueing %s from %s', link, url) - self._to_fetch.put(link) - except MetadataInvalidError: # e.g. invalid versions - pass - except Exception as e: # pragma: no cover - self.errors.put(text_type(e)) - finally: - # always do this, to avoid hangs :-) - self._to_fetch.task_done() - if not url: - #logger.debug('Sentinel seen, quitting.') - break - - def get_page(self, url): - """ - Get the HTML for an URL, possibly from an in-memory cache. - - XXX TODO Note: this cache is never actually cleared. It's assumed that - the data won't get stale over the lifetime of a locator instance (not - necessarily true for the default_locator). - """ - # http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api - scheme, netloc, path, _, _, _ = urlparse(url) - if scheme == 'file' and os.path.isdir(url2pathname(path)): - url = urljoin(ensure_slash(url), 'index.html') - - if url in self._page_cache: - result = self._page_cache[url] - logger.debug('Returning %s from cache: %s', url, result) - else: - host = netloc.split(':', 1)[0] - result = None - if host in self._bad_hosts: - logger.debug('Skipping %s due to bad host %s', url, host) - else: - req = Request(url, headers={'Accept-encoding': 'identity'}) - try: - logger.debug('Fetching %s', url) - resp = self.opener.open(req, timeout=self.timeout) - logger.debug('Fetched %s', url) - headers = resp.info() - content_type = headers.get('Content-Type', '') - if HTML_CONTENT_TYPE.match(content_type): - final_url = resp.geturl() - data = resp.read() - encoding = headers.get('Content-Encoding') - if encoding: - decoder = self.decoders[encoding] # fail if not found - data = decoder(data) - encoding = 'utf-8' - m = CHARSET.search(content_type) - if m: - encoding = m.group(1) - try: - data = data.decode(encoding) - except UnicodeError: # pragma: no cover - data = data.decode('latin-1') # fallback - result = Page(data, final_url) - self._page_cache[final_url] = result - except HTTPError as e: - if e.code != 404: - logger.exception('Fetch failed: %s: %s', url, e) - except URLError as e: # pragma: no cover - logger.exception('Fetch failed: %s: %s', url, e) - with self._lock: - self._bad_hosts.add(host) - except Exception as e: # pragma: no cover - logger.exception('Fetch failed: %s: %s', url, e) - finally: - self._page_cache[url] = result # even if None (failure) - return result - - _distname_re = re.compile('<a href=[^>]*>([^<]+)<') - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - result = set() - page = self.get_page(self.base_url) - if not page: - raise DistlibException('Unable to get %s' % self.base_url) - for match in self._distname_re.finditer(page.data): - result.add(match.group(1)) - return result - -class DirectoryLocator(Locator): - """ - This class locates distributions in a directory tree. - """ - - def __init__(self, path, **kwargs): - """ - Initialise an instance. - :param path: The root of the directory tree to search. - :param kwargs: Passed to the superclass constructor, - except for: - * recursive - if True (the default), subdirectories are - recursed into. If False, only the top-level directory - is searched, - """ - self.recursive = kwargs.pop('recursive', True) - super(DirectoryLocator, self).__init__(**kwargs) - path = os.path.abspath(path) - if not os.path.isdir(path): # pragma: no cover - raise DistlibException('Not a directory: %r' % path) - self.base_dir = path - - def should_include(self, filename, parent): - """ - Should a filename be considered as a candidate for a distribution - archive? As well as the filename, the directory which contains it - is provided, though not used by the current implementation. - """ - return filename.endswith(self.downloadable_extensions) - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - for root, dirs, files in os.walk(self.base_dir): - for fn in files: - if self.should_include(fn, root): - fn = os.path.join(root, fn) - url = urlunparse(('file', '', - pathname2url(os.path.abspath(fn)), - '', '', '')) - info = self.convert_url_to_download_info(url, name) - if info: - self._update_version_data(result, info) - if not self.recursive: - break - return result - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - result = set() - for root, dirs, files in os.walk(self.base_dir): - for fn in files: - if self.should_include(fn, root): - fn = os.path.join(root, fn) - url = urlunparse(('file', '', - pathname2url(os.path.abspath(fn)), - '', '', '')) - info = self.convert_url_to_download_info(url, None) - if info: - result.add(info['name']) - if not self.recursive: - break - return result - -class JSONLocator(Locator): - """ - This locator uses special extended metadata (not available on PyPI) and is - the basis of performant dependency resolution in distlib. Other locators - require archive downloads before dependencies can be determined! As you - might imagine, that can be slow. - """ - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - raise NotImplementedError('Not available from this locator') - - def _get_project(self, name): - result = {'urls': {}, 'digests': {}} - data = get_project_data(name) - if data: - for info in data.get('files', []): - if info['ptype'] != 'sdist' or info['pyversion'] != 'source': - continue - # We don't store summary in project metadata as it makes - # the data bigger for no benefit during dependency - # resolution - dist = make_dist(data['name'], info['version'], - summary=data.get('summary', - 'Placeholder for summary'), - scheme=self.scheme) - md = dist.metadata - md.source_url = info['url'] - # TODO SHA256 digest - if 'digest' in info and info['digest']: - dist.digest = ('md5', info['digest']) - md.dependencies = info.get('requirements', {}) - dist.exports = info.get('exports', {}) - result[dist.version] = dist - result['urls'].setdefault(dist.version, set()).add(info['url']) - return result - -class DistPathLocator(Locator): - """ - This locator finds installed distributions in a path. It can be useful for - adding to an :class:`AggregatingLocator`. - """ - def __init__(self, distpath, **kwargs): - """ - Initialise an instance. - - :param distpath: A :class:`DistributionPath` instance to search. - """ - super(DistPathLocator, self).__init__(**kwargs) - assert isinstance(distpath, DistributionPath) - self.distpath = distpath - - def _get_project(self, name): - dist = self.distpath.get_distribution(name) - if dist is None: - result = {'urls': {}, 'digests': {}} - else: - result = { - dist.version: dist, - 'urls': {dist.version: set([dist.source_url])}, - 'digests': {dist.version: set([None])} - } - return result - - -class AggregatingLocator(Locator): - """ - This class allows you to chain and/or merge a list of locators. - """ - def __init__(self, *locators, **kwargs): - """ - Initialise an instance. - - :param locators: The list of locators to search. - :param kwargs: Passed to the superclass constructor, - except for: - * merge - if False (the default), the first successful - search from any of the locators is returned. If True, - the results from all locators are merged (this can be - slow). - """ - self.merge = kwargs.pop('merge', False) - self.locators = locators - super(AggregatingLocator, self).__init__(**kwargs) - - def clear_cache(self): - super(AggregatingLocator, self).clear_cache() - for locator in self.locators: - locator.clear_cache() - - def _set_scheme(self, value): - self._scheme = value - for locator in self.locators: - locator.scheme = value - - scheme = property(Locator.scheme.fget, _set_scheme) - - def _get_project(self, name): - result = {} - for locator in self.locators: - d = locator.get_project(name) - if d: - if self.merge: - files = result.get('urls', {}) - digests = result.get('digests', {}) - # next line could overwrite result['urls'], result['digests'] - result.update(d) - df = result.get('urls') - if files and df: - for k, v in files.items(): - if k in df: - df[k] |= v - else: - df[k] = v - dd = result.get('digests') - if digests and dd: - dd.update(digests) - else: - # See issue #18. If any dists are found and we're looking - # for specific constraints, we only return something if - # a match is found. For example, if a DirectoryLocator - # returns just foo (1.0) while we're looking for - # foo (>= 2.0), we'll pretend there was nothing there so - # that subsequent locators can be queried. Otherwise we - # would just return foo (1.0) which would then lead to a - # failure to find foo (>= 2.0), because other locators - # weren't searched. Note that this only matters when - # merge=False. - if self.matcher is None: - found = True - else: - found = False - for k in d: - if self.matcher.match(k): - found = True - break - if found: - result = d - break - return result - - def get_distribution_names(self): - """ - Return all the distribution names known to this locator. - """ - result = set() - for locator in self.locators: - try: - result |= locator.get_distribution_names() - except NotImplementedError: - pass - return result - - -# We use a legacy scheme simply because most of the dists on PyPI use legacy -# versions which don't conform to PEP 426 / PEP 440. -default_locator = AggregatingLocator( - JSONLocator(), - SimpleScrapingLocator('https://pypi.python.org/simple/', - timeout=3.0), - scheme='legacy') - -locate = default_locator.locate - -NAME_VERSION_RE = re.compile(r'(?P<name>[\w-]+)\s*' - r'\(\s*(==\s*)?(?P<ver>[^)]+)\)$') - -class DependencyFinder(object): - """ - Locate dependencies for distributions. - """ - - def __init__(self, locator=None): - """ - Initialise an instance, using the specified locator - to locate distributions. - """ - self.locator = locator or default_locator - self.scheme = get_scheme(self.locator.scheme) - - def add_distribution(self, dist): - """ - Add a distribution to the finder. This will update internal information - about who provides what. - :param dist: The distribution to add. - """ - logger.debug('adding distribution %s', dist) - name = dist.key - self.dists_by_name[name] = dist - self.dists[(name, dist.version)] = dist - for p in dist.provides: - name, version = parse_name_and_version(p) - logger.debug('Add to provided: %s, %s, %s', name, version, dist) - self.provided.setdefault(name, set()).add((version, dist)) - - def remove_distribution(self, dist): - """ - Remove a distribution from the finder. This will update internal - information about who provides what. - :param dist: The distribution to remove. - """ - logger.debug('removing distribution %s', dist) - name = dist.key - del self.dists_by_name[name] - del self.dists[(name, dist.version)] - for p in dist.provides: - name, version = parse_name_and_version(p) - logger.debug('Remove from provided: %s, %s, %s', name, version, dist) - s = self.provided[name] - s.remove((version, dist)) - if not s: - del self.provided[name] - - def get_matcher(self, reqt): - """ - Get a version matcher for a requirement. - :param reqt: The requirement - :type reqt: str - :return: A version matcher (an instance of - :class:`distlib.version.Matcher`). - """ - try: - matcher = self.scheme.matcher(reqt) - except UnsupportedVersionError: # pragma: no cover - # XXX compat-mode if cannot read the version - name = reqt.split()[0] - matcher = self.scheme.matcher(name) - return matcher - - def find_providers(self, reqt): - """ - Find the distributions which can fulfill a requirement. - - :param reqt: The requirement. - :type reqt: str - :return: A set of distribution which can fulfill the requirement. - """ - matcher = self.get_matcher(reqt) - name = matcher.key # case-insensitive - result = set() - provided = self.provided - if name in provided: - for version, provider in provided[name]: - try: - match = matcher.match(version) - except UnsupportedVersionError: - match = False - - if match: - result.add(provider) - break - return result - - def try_to_replace(self, provider, other, problems): - """ - Attempt to replace one provider with another. This is typically used - when resolving dependencies from multiple sources, e.g. A requires - (B >= 1.0) while C requires (B >= 1.1). - - For successful replacement, ``provider`` must meet all the requirements - which ``other`` fulfills. - - :param provider: The provider we are trying to replace with. - :param other: The provider we're trying to replace. - :param problems: If False is returned, this will contain what - problems prevented replacement. This is currently - a tuple of the literal string 'cantreplace', - ``provider``, ``other`` and the set of requirements - that ``provider`` couldn't fulfill. - :return: True if we can replace ``other`` with ``provider``, else - False. - """ - rlist = self.reqts[other] - unmatched = set() - for s in rlist: - matcher = self.get_matcher(s) - if not matcher.match(provider.version): - unmatched.add(s) - if unmatched: - # can't replace other with provider - problems.add(('cantreplace', provider, other, - frozenset(unmatched))) - result = False - else: - # can replace other with provider - self.remove_distribution(other) - del self.reqts[other] - for s in rlist: - self.reqts.setdefault(provider, set()).add(s) - self.add_distribution(provider) - result = True - return result - - def find(self, requirement, meta_extras=None, prereleases=False): - """ - Find a distribution and all distributions it depends on. - - :param requirement: The requirement specifying the distribution to - find, or a Distribution instance. - :param meta_extras: A list of meta extras such as :test:, :build: and - so on. - :param prereleases: If ``True``, allow pre-release versions to be - returned - otherwise, don't return prereleases - unless they're all that's available. - - Return a set of :class:`Distribution` instances and a set of - problems. - - The distributions returned should be such that they have the - :attr:`required` attribute set to ``True`` if they were - from the ``requirement`` passed to ``find()``, and they have the - :attr:`build_time_dependency` attribute set to ``True`` unless they - are post-installation dependencies of the ``requirement``. - - The problems should be a tuple consisting of the string - ``'unsatisfied'`` and the requirement which couldn't be satisfied - by any distribution known to the locator. - """ - - self.provided = {} - self.dists = {} - self.dists_by_name = {} - self.reqts = {} - - meta_extras = set(meta_extras or []) - if ':*:' in meta_extras: - meta_extras.remove(':*:') - # :meta: and :run: are implicitly included - meta_extras |= set([':test:', ':build:', ':dev:']) - - if isinstance(requirement, Distribution): - dist = odist = requirement - logger.debug('passed %s as requirement', odist) - else: - dist = odist = self.locator.locate(requirement, - prereleases=prereleases) - if dist is None: - raise DistlibException('Unable to locate %r' % requirement) - logger.debug('located %s', odist) - dist.requested = True - problems = set() - todo = set([dist]) - install_dists = set([odist]) - while todo: - dist = todo.pop() - name = dist.key # case-insensitive - if name not in self.dists_by_name: - self.add_distribution(dist) - else: - #import pdb; pdb.set_trace() - other = self.dists_by_name[name] - if other != dist: - self.try_to_replace(dist, other, problems) - - ireqts = dist.run_requires | dist.meta_requires - sreqts = dist.build_requires - ereqts = set() - if meta_extras and dist in install_dists: - for key in ('test', 'build', 'dev'): - e = ':%s:' % key - if e in meta_extras: - ereqts |= getattr(dist, '%s_requires' % key) - all_reqts = ireqts | sreqts | ereqts - for r in all_reqts: - providers = self.find_providers(r) - if not providers: - logger.debug('No providers found for %r', r) - provider = self.locator.locate(r, prereleases=prereleases) - # If no provider is found and we didn't consider - # prereleases, consider them now. - if provider is None and not prereleases: - provider = self.locator.locate(r, prereleases=True) - if provider is None: - logger.debug('Cannot satisfy %r', r) - problems.add(('unsatisfied', r)) - else: - n, v = provider.key, provider.version - if (n, v) not in self.dists: - todo.add(provider) - providers.add(provider) - if r in ireqts and dist in install_dists: - install_dists.add(provider) - logger.debug('Adding %s to install_dists', - provider.name_and_version) - for p in providers: - name = p.key - if name not in self.dists_by_name: - self.reqts.setdefault(p, set()).add(r) - else: - other = self.dists_by_name[name] - if other != p: - # see if other can be replaced by p - self.try_to_replace(p, other, problems) - - dists = set(self.dists.values()) - for dist in dists: - dist.build_time_dependency = dist not in install_dists - if dist.build_time_dependency: - logger.debug('%s is a build-time dependency only.', - dist.name_and_version) - logger.debug('find done for %s', odist) - return dists, problems diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/manifest.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/manifest.py deleted file mode 100644 index ca0fe44..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/manifest.py +++ /dev/null @@ -1,393 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2013 Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -""" -Class representing the list of files in a distribution. - -Equivalent to distutils.filelist, but fixes some problems. -""" -import fnmatch -import logging -import os -import re -import sys - -from . import DistlibException -from .compat import fsdecode -from .util import convert_path - - -__all__ = ['Manifest'] - -logger = logging.getLogger(__name__) - -# a \ followed by some spaces + EOL -_COLLAPSE_PATTERN = re.compile('\\\\w*\n', re.M) -_COMMENTED_LINE = re.compile('#.*?(?=\n)|\n(?=$)', re.M | re.S) - -# -# Due to the different results returned by fnmatch.translate, we need -# to do slightly different processing for Python 2.7 and 3.2 ... this needed -# to be brought in for Python 3.6 onwards. -# -_PYTHON_VERSION = sys.version_info[:2] - -class Manifest(object): - """A list of files built by on exploring the filesystem and filtered by - applying various patterns to what we find there. - """ - - def __init__(self, base=None): - """ - Initialise an instance. - - :param base: The base directory to explore under. - """ - self.base = os.path.abspath(os.path.normpath(base or os.getcwd())) - self.prefix = self.base + os.sep - self.allfiles = None - self.files = set() - - # - # Public API - # - - def findall(self): - """Find all files under the base and set ``allfiles`` to the absolute - pathnames of files found. - """ - from stat import S_ISREG, S_ISDIR, S_ISLNK - - self.allfiles = allfiles = [] - root = self.base - stack = [root] - pop = stack.pop - push = stack.append - - while stack: - root = pop() - names = os.listdir(root) - - for name in names: - fullname = os.path.join(root, name) - - # Avoid excess stat calls -- just one will do, thank you! - stat = os.stat(fullname) - mode = stat.st_mode - if S_ISREG(mode): - allfiles.append(fsdecode(fullname)) - elif S_ISDIR(mode) and not S_ISLNK(mode): - push(fullname) - - def add(self, item): - """ - Add a file to the manifest. - - :param item: The pathname to add. This can be relative to the base. - """ - if not item.startswith(self.prefix): - item = os.path.join(self.base, item) - self.files.add(os.path.normpath(item)) - - def add_many(self, items): - """ - Add a list of files to the manifest. - - :param items: The pathnames to add. These can be relative to the base. - """ - for item in items: - self.add(item) - - def sorted(self, wantdirs=False): - """ - Return sorted files in directory order - """ - - def add_dir(dirs, d): - dirs.add(d) - logger.debug('add_dir added %s', d) - if d != self.base: - parent, _ = os.path.split(d) - assert parent not in ('', '/') - add_dir(dirs, parent) - - result = set(self.files) # make a copy! - if wantdirs: - dirs = set() - for f in result: - add_dir(dirs, os.path.dirname(f)) - result |= dirs - return [os.path.join(*path_tuple) for path_tuple in - sorted(os.path.split(path) for path in result)] - - def clear(self): - """Clear all collected files.""" - self.files = set() - self.allfiles = [] - - def process_directive(self, directive): - """ - Process a directive which either adds some files from ``allfiles`` to - ``files``, or removes some files from ``files``. - - :param directive: The directive to process. This should be in a format - compatible with distutils ``MANIFEST.in`` files: - - http://docs.python.org/distutils/sourcedist.html#commands - """ - # Parse the line: split it up, make sure the right number of words - # is there, and return the relevant words. 'action' is always - # defined: it's the first word of the line. Which of the other - # three are defined depends on the action; it'll be either - # patterns, (dir and patterns), or (dirpattern). - action, patterns, thedir, dirpattern = self._parse_directive(directive) - - # OK, now we know that the action is valid and we have the - # right number of words on the line for that action -- so we - # can proceed with minimal error-checking. - if action == 'include': - for pattern in patterns: - if not self._include_pattern(pattern, anchor=True): - logger.warning('no files found matching %r', pattern) - - elif action == 'exclude': - for pattern in patterns: - found = self._exclude_pattern(pattern, anchor=True) - #if not found: - # logger.warning('no previously-included files ' - # 'found matching %r', pattern) - - elif action == 'global-include': - for pattern in patterns: - if not self._include_pattern(pattern, anchor=False): - logger.warning('no files found matching %r ' - 'anywhere in distribution', pattern) - - elif action == 'global-exclude': - for pattern in patterns: - found = self._exclude_pattern(pattern, anchor=False) - #if not found: - # logger.warning('no previously-included files ' - # 'matching %r found anywhere in ' - # 'distribution', pattern) - - elif action == 'recursive-include': - for pattern in patterns: - if not self._include_pattern(pattern, prefix=thedir): - logger.warning('no files found matching %r ' - 'under directory %r', pattern, thedir) - - elif action == 'recursive-exclude': - for pattern in patterns: - found = self._exclude_pattern(pattern, prefix=thedir) - #if not found: - # logger.warning('no previously-included files ' - # 'matching %r found under directory %r', - # pattern, thedir) - - elif action == 'graft': - if not self._include_pattern(None, prefix=dirpattern): - logger.warning('no directories found matching %r', - dirpattern) - - elif action == 'prune': - if not self._exclude_pattern(None, prefix=dirpattern): - logger.warning('no previously-included directories found ' - 'matching %r', dirpattern) - else: # pragma: no cover - # This should never happen, as it should be caught in - # _parse_template_line - raise DistlibException( - 'invalid action %r' % action) - - # - # Private API - # - - def _parse_directive(self, directive): - """ - Validate a directive. - :param directive: The directive to validate. - :return: A tuple of action, patterns, thedir, dir_patterns - """ - words = directive.split() - if len(words) == 1 and words[0] not in ('include', 'exclude', - 'global-include', - 'global-exclude', - 'recursive-include', - 'recursive-exclude', - 'graft', 'prune'): - # no action given, let's use the default 'include' - words.insert(0, 'include') - - action = words[0] - patterns = thedir = dir_pattern = None - - if action in ('include', 'exclude', - 'global-include', 'global-exclude'): - if len(words) < 2: - raise DistlibException( - '%r expects <pattern1> <pattern2> ...' % action) - - patterns = [convert_path(word) for word in words[1:]] - - elif action in ('recursive-include', 'recursive-exclude'): - if len(words) < 3: - raise DistlibException( - '%r expects <dir> <pattern1> <pattern2> ...' % action) - - thedir = convert_path(words[1]) - patterns = [convert_path(word) for word in words[2:]] - - elif action in ('graft', 'prune'): - if len(words) != 2: - raise DistlibException( - '%r expects a single <dir_pattern>' % action) - - dir_pattern = convert_path(words[1]) - - else: - raise DistlibException('unknown action %r' % action) - - return action, patterns, thedir, dir_pattern - - def _include_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): - """Select strings (presumably filenames) from 'self.files' that - match 'pattern', a Unix-style wildcard (glob) pattern. - - Patterns are not quite the same as implemented by the 'fnmatch' - module: '*' and '?' match non-special characters, where "special" - is platform-dependent: slash on Unix; colon, slash, and backslash on - DOS/Windows; and colon on Mac OS. - - If 'anchor' is true (the default), then the pattern match is more - stringent: "*.py" will match "foo.py" but not "foo/bar.py". If - 'anchor' is false, both of these will match. - - If 'prefix' is supplied, then only filenames starting with 'prefix' - (itself a pattern) and ending with 'pattern', with anything in between - them, will match. 'anchor' is ignored in this case. - - If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and - 'pattern' is assumed to be either a string containing a regex or a - regex object -- no translation is done, the regex is just compiled - and used as-is. - - Selected strings will be added to self.files. - - Return True if files are found. - """ - # XXX docstring lying about what the special chars are? - found = False - pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) - - # delayed loading of allfiles list - if self.allfiles is None: - self.findall() - - for name in self.allfiles: - if pattern_re.search(name): - self.files.add(name) - found = True - return found - - def _exclude_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): - """Remove strings (presumably filenames) from 'files' that match - 'pattern'. - - Other parameters are the same as for 'include_pattern()', above. - The list 'self.files' is modified in place. Return True if files are - found. - - This API is public to allow e.g. exclusion of SCM subdirs, e.g. when - packaging source distributions - """ - found = False - pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) - for f in list(self.files): - if pattern_re.search(f): - self.files.remove(f) - found = True - return found - - def _translate_pattern(self, pattern, anchor=True, prefix=None, - is_regex=False): - """Translate a shell-like wildcard pattern to a compiled regular - expression. - - Return the compiled regex. If 'is_regex' true, - then 'pattern' is directly compiled to a regex (if it's a string) - or just returned as-is (assumes it's a regex object). - """ - if is_regex: - if isinstance(pattern, str): - return re.compile(pattern) - else: - return pattern - - if _PYTHON_VERSION > (3, 2): - # ditch start and end characters - start, _, end = self._glob_to_re('_').partition('_') - - if pattern: - pattern_re = self._glob_to_re(pattern) - if _PYTHON_VERSION > (3, 2): - assert pattern_re.startswith(start) and pattern_re.endswith(end) - else: - pattern_re = '' - - base = re.escape(os.path.join(self.base, '')) - if prefix is not None: - # ditch end of pattern character - if _PYTHON_VERSION <= (3, 2): - empty_pattern = self._glob_to_re('') - prefix_re = self._glob_to_re(prefix)[:-len(empty_pattern)] - else: - prefix_re = self._glob_to_re(prefix) - assert prefix_re.startswith(start) and prefix_re.endswith(end) - prefix_re = prefix_re[len(start): len(prefix_re) - len(end)] - sep = os.sep - if os.sep == '\\': - sep = r'\\' - if _PYTHON_VERSION <= (3, 2): - pattern_re = '^' + base + sep.join((prefix_re, - '.*' + pattern_re)) - else: - pattern_re = pattern_re[len(start): len(pattern_re) - len(end)] - pattern_re = r'%s%s%s%s.*%s%s' % (start, base, prefix_re, sep, - pattern_re, end) - else: # no prefix -- respect anchor flag - if anchor: - if _PYTHON_VERSION <= (3, 2): - pattern_re = '^' + base + pattern_re - else: - pattern_re = r'%s%s%s' % (start, base, pattern_re[len(start):]) - - return re.compile(pattern_re) - - def _glob_to_re(self, pattern): - """Translate a shell-like glob pattern to a regular expression. - - Return a string containing the regex. Differs from - 'fnmatch.translate()' in that '*' does not match "special characters" - (which are platform-specific). - """ - pattern_re = fnmatch.translate(pattern) - - # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which - # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix, - # and by extension they shouldn't match such "special characters" under - # any OS. So change all non-escaped dots in the RE to match any - # character except the special characters (currently: just os.sep). - sep = os.sep - if os.sep == '\\': - # we're using a regex to manipulate a regex, so we need - # to escape the backslash twice - sep = r'\\\\' - escaped = r'\1[^%s]' % sep - pattern_re = re.sub(r'((?<!\\)(\\\\)*)\.', escaped, pattern_re) - return pattern_re diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/markers.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/markers.py deleted file mode 100644 index ee1f3e2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/markers.py +++ /dev/null @@ -1,131 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2017 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -""" -Parser for the environment markers micro-language defined in PEP 508. -""" - -# Note: In PEP 345, the micro-language was Python compatible, so the ast -# module could be used to parse it. However, PEP 508 introduced operators such -# as ~= and === which aren't in Python, necessitating a different approach. - -import os -import sys -import platform -import re - -from .compat import python_implementation, urlparse, string_types -from .util import in_venv, parse_marker - -__all__ = ['interpret'] - -def _is_literal(o): - if not isinstance(o, string_types) or not o: - return False - return o[0] in '\'"' - -class Evaluator(object): - """ - This class is used to evaluate marker expessions. - """ - - operations = { - '==': lambda x, y: x == y, - '===': lambda x, y: x == y, - '~=': lambda x, y: x == y or x > y, - '!=': lambda x, y: x != y, - '<': lambda x, y: x < y, - '<=': lambda x, y: x == y or x < y, - '>': lambda x, y: x > y, - '>=': lambda x, y: x == y or x > y, - 'and': lambda x, y: x and y, - 'or': lambda x, y: x or y, - 'in': lambda x, y: x in y, - 'not in': lambda x, y: x not in y, - } - - def evaluate(self, expr, context): - """ - Evaluate a marker expression returned by the :func:`parse_requirement` - function in the specified context. - """ - if isinstance(expr, string_types): - if expr[0] in '\'"': - result = expr[1:-1] - else: - if expr not in context: - raise SyntaxError('unknown variable: %s' % expr) - result = context[expr] - else: - assert isinstance(expr, dict) - op = expr['op'] - if op not in self.operations: - raise NotImplementedError('op not implemented: %s' % op) - elhs = expr['lhs'] - erhs = expr['rhs'] - if _is_literal(expr['lhs']) and _is_literal(expr['rhs']): - raise SyntaxError('invalid comparison: %s %s %s' % (elhs, op, erhs)) - - lhs = self.evaluate(elhs, context) - rhs = self.evaluate(erhs, context) - result = self.operations[op](lhs, rhs) - return result - -def default_context(): - def format_full_version(info): - version = '%s.%s.%s' % (info.major, info.minor, info.micro) - kind = info.releaselevel - if kind != 'final': - version += kind[0] + str(info.serial) - return version - - if hasattr(sys, 'implementation'): - implementation_version = format_full_version(sys.implementation.version) - implementation_name = sys.implementation.name - else: - implementation_version = '0' - implementation_name = '' - - result = { - 'implementation_name': implementation_name, - 'implementation_version': implementation_version, - 'os_name': os.name, - 'platform_machine': platform.machine(), - 'platform_python_implementation': platform.python_implementation(), - 'platform_release': platform.release(), - 'platform_system': platform.system(), - 'platform_version': platform.version(), - 'platform_in_venv': str(in_venv()), - 'python_full_version': platform.python_version(), - 'python_version': platform.python_version()[:3], - 'sys_platform': sys.platform, - } - return result - -DEFAULT_CONTEXT = default_context() -del default_context - -evaluator = Evaluator() - -def interpret(marker, execution_context=None): - """ - Interpret a marker and return a result depending on environment. - - :param marker: The marker to interpret. - :type marker: str - :param execution_context: The context used for name lookup. - :type execution_context: mapping - """ - try: - expr, rest = parse_marker(marker) - except Exception as e: - raise SyntaxError('Unable to interpret marker syntax: %s: %s' % (marker, e)) - if rest and rest[0] != '#': - raise SyntaxError('unexpected trailing data in marker: %s: %s' % (marker, rest)) - context = dict(DEFAULT_CONTEXT) - if execution_context: - context.update(execution_context) - return evaluator.evaluate(expr, context) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/metadata.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/metadata.py deleted file mode 100644 index 77eed7f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/metadata.py +++ /dev/null @@ -1,1094 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -"""Implementation of the Metadata for Python packages PEPs. - -Supports all metadata formats (1.0, 1.1, 1.2, and 2.0 experimental). -""" -from __future__ import unicode_literals - -import codecs -from email import message_from_file -import json -import logging -import re - - -from . import DistlibException, __version__ -from .compat import StringIO, string_types, text_type -from .markers import interpret -from .util import extract_by_key, get_extras -from .version import get_scheme, PEP440_VERSION_RE - -logger = logging.getLogger(__name__) - - -class MetadataMissingError(DistlibException): - """A required metadata is missing""" - - -class MetadataConflictError(DistlibException): - """Attempt to read or write metadata fields that are conflictual.""" - - -class MetadataUnrecognizedVersionError(DistlibException): - """Unknown metadata version number.""" - - -class MetadataInvalidError(DistlibException): - """A metadata value is invalid""" - -# public API of this module -__all__ = ['Metadata', 'PKG_INFO_ENCODING', 'PKG_INFO_PREFERRED_VERSION'] - -# Encoding used for the PKG-INFO files -PKG_INFO_ENCODING = 'utf-8' - -# preferred version. Hopefully will be changed -# to 1.2 once PEP 345 is supported everywhere -PKG_INFO_PREFERRED_VERSION = '1.1' - -_LINE_PREFIX_1_2 = re.compile('\n \\|') -_LINE_PREFIX_PRE_1_2 = re.compile('\n ') -_241_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'License') - -_314_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'License', 'Classifier', 'Download-URL', 'Obsoletes', - 'Provides', 'Requires') - -_314_MARKERS = ('Obsoletes', 'Provides', 'Requires', 'Classifier', - 'Download-URL') - -_345_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'Maintainer', 'Maintainer-email', 'License', - 'Classifier', 'Download-URL', 'Obsoletes-Dist', - 'Project-URL', 'Provides-Dist', 'Requires-Dist', - 'Requires-Python', 'Requires-External') - -_345_MARKERS = ('Provides-Dist', 'Requires-Dist', 'Requires-Python', - 'Obsoletes-Dist', 'Requires-External', 'Maintainer', - 'Maintainer-email', 'Project-URL') - -_426_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', - 'Supported-Platform', 'Summary', 'Description', - 'Keywords', 'Home-page', 'Author', 'Author-email', - 'Maintainer', 'Maintainer-email', 'License', - 'Classifier', 'Download-URL', 'Obsoletes-Dist', - 'Project-URL', 'Provides-Dist', 'Requires-Dist', - 'Requires-Python', 'Requires-External', 'Private-Version', - 'Obsoleted-By', 'Setup-Requires-Dist', 'Extension', - 'Provides-Extra') - -_426_MARKERS = ('Private-Version', 'Provides-Extra', 'Obsoleted-By', - 'Setup-Requires-Dist', 'Extension') - -# See issue #106: Sometimes 'Requires' occurs wrongly in the metadata. Include -# it in the tuple literal below to allow it (for now) -_566_FIELDS = _426_FIELDS + ('Description-Content-Type', 'Requires') - -_566_MARKERS = ('Description-Content-Type',) - -_ALL_FIELDS = set() -_ALL_FIELDS.update(_241_FIELDS) -_ALL_FIELDS.update(_314_FIELDS) -_ALL_FIELDS.update(_345_FIELDS) -_ALL_FIELDS.update(_426_FIELDS) -_ALL_FIELDS.update(_566_FIELDS) - -EXTRA_RE = re.compile(r'''extra\s*==\s*("([^"]+)"|'([^']+)')''') - - -def _version2fieldlist(version): - if version == '1.0': - return _241_FIELDS - elif version == '1.1': - return _314_FIELDS - elif version == '1.2': - return _345_FIELDS - elif version in ('1.3', '2.1'): - return _345_FIELDS + _566_FIELDS - elif version == '2.0': - return _426_FIELDS - raise MetadataUnrecognizedVersionError(version) - - -def _best_version(fields): - """Detect the best version depending on the fields used.""" - def _has_marker(keys, markers): - for marker in markers: - if marker in keys: - return True - return False - - keys = [] - for key, value in fields.items(): - if value in ([], 'UNKNOWN', None): - continue - keys.append(key) - - possible_versions = ['1.0', '1.1', '1.2', '1.3', '2.0', '2.1'] - - # first let's try to see if a field is not part of one of the version - for key in keys: - if key not in _241_FIELDS and '1.0' in possible_versions: - possible_versions.remove('1.0') - logger.debug('Removed 1.0 due to %s', key) - if key not in _314_FIELDS and '1.1' in possible_versions: - possible_versions.remove('1.1') - logger.debug('Removed 1.1 due to %s', key) - if key not in _345_FIELDS and '1.2' in possible_versions: - possible_versions.remove('1.2') - logger.debug('Removed 1.2 due to %s', key) - if key not in _566_FIELDS and '1.3' in possible_versions: - possible_versions.remove('1.3') - logger.debug('Removed 1.3 due to %s', key) - if key not in _566_FIELDS and '2.1' in possible_versions: - if key != 'Description': # In 2.1, description allowed after headers - possible_versions.remove('2.1') - logger.debug('Removed 2.1 due to %s', key) - if key not in _426_FIELDS and '2.0' in possible_versions: - possible_versions.remove('2.0') - logger.debug('Removed 2.0 due to %s', key) - - # possible_version contains qualified versions - if len(possible_versions) == 1: - return possible_versions[0] # found ! - elif len(possible_versions) == 0: - logger.debug('Out of options - unknown metadata set: %s', fields) - raise MetadataConflictError('Unknown metadata set') - - # let's see if one unique marker is found - is_1_1 = '1.1' in possible_versions and _has_marker(keys, _314_MARKERS) - is_1_2 = '1.2' in possible_versions and _has_marker(keys, _345_MARKERS) - is_2_1 = '2.1' in possible_versions and _has_marker(keys, _566_MARKERS) - is_2_0 = '2.0' in possible_versions and _has_marker(keys, _426_MARKERS) - if int(is_1_1) + int(is_1_2) + int(is_2_1) + int(is_2_0) > 1: - raise MetadataConflictError('You used incompatible 1.1/1.2/2.0/2.1 fields') - - # we have the choice, 1.0, or 1.2, or 2.0 - # - 1.0 has a broken Summary field but works with all tools - # - 1.1 is to avoid - # - 1.2 fixes Summary but has little adoption - # - 2.0 adds more features and is very new - if not is_1_1 and not is_1_2 and not is_2_1 and not is_2_0: - # we couldn't find any specific marker - if PKG_INFO_PREFERRED_VERSION in possible_versions: - return PKG_INFO_PREFERRED_VERSION - if is_1_1: - return '1.1' - if is_1_2: - return '1.2' - if is_2_1: - return '2.1' - - return '2.0' - -_ATTR2FIELD = { - 'metadata_version': 'Metadata-Version', - 'name': 'Name', - 'version': 'Version', - 'platform': 'Platform', - 'supported_platform': 'Supported-Platform', - 'summary': 'Summary', - 'description': 'Description', - 'keywords': 'Keywords', - 'home_page': 'Home-page', - 'author': 'Author', - 'author_email': 'Author-email', - 'maintainer': 'Maintainer', - 'maintainer_email': 'Maintainer-email', - 'license': 'License', - 'classifier': 'Classifier', - 'download_url': 'Download-URL', - 'obsoletes_dist': 'Obsoletes-Dist', - 'provides_dist': 'Provides-Dist', - 'requires_dist': 'Requires-Dist', - 'setup_requires_dist': 'Setup-Requires-Dist', - 'requires_python': 'Requires-Python', - 'requires_external': 'Requires-External', - 'requires': 'Requires', - 'provides': 'Provides', - 'obsoletes': 'Obsoletes', - 'project_url': 'Project-URL', - 'private_version': 'Private-Version', - 'obsoleted_by': 'Obsoleted-By', - 'extension': 'Extension', - 'provides_extra': 'Provides-Extra', -} - -_PREDICATE_FIELDS = ('Requires-Dist', 'Obsoletes-Dist', 'Provides-Dist') -_VERSIONS_FIELDS = ('Requires-Python',) -_VERSION_FIELDS = ('Version',) -_LISTFIELDS = ('Platform', 'Classifier', 'Obsoletes', - 'Requires', 'Provides', 'Obsoletes-Dist', - 'Provides-Dist', 'Requires-Dist', 'Requires-External', - 'Project-URL', 'Supported-Platform', 'Setup-Requires-Dist', - 'Provides-Extra', 'Extension') -_LISTTUPLEFIELDS = ('Project-URL',) - -_ELEMENTSFIELD = ('Keywords',) - -_UNICODEFIELDS = ('Author', 'Maintainer', 'Summary', 'Description') - -_MISSING = object() - -_FILESAFE = re.compile('[^A-Za-z0-9.]+') - - -def _get_name_and_version(name, version, for_filename=False): - """Return the distribution name with version. - - If for_filename is true, return a filename-escaped form.""" - if for_filename: - # For both name and version any runs of non-alphanumeric or '.' - # characters are replaced with a single '-'. Additionally any - # spaces in the version string become '.' - name = _FILESAFE.sub('-', name) - version = _FILESAFE.sub('-', version.replace(' ', '.')) - return '%s-%s' % (name, version) - - -class LegacyMetadata(object): - """The legacy metadata of a release. - - Supports versions 1.0, 1.1 and 1.2 (auto-detected). You can - instantiate the class with one of these arguments (or none): - - *path*, the path to a metadata file - - *fileobj* give a file-like object with metadata as content - - *mapping* is a dict-like object - - *scheme* is a version scheme name - """ - # TODO document the mapping API and UNKNOWN default key - - def __init__(self, path=None, fileobj=None, mapping=None, - scheme='default'): - if [path, fileobj, mapping].count(None) < 2: - raise TypeError('path, fileobj and mapping are exclusive') - self._fields = {} - self.requires_files = [] - self._dependencies = None - self.scheme = scheme - if path is not None: - self.read(path) - elif fileobj is not None: - self.read_file(fileobj) - elif mapping is not None: - self.update(mapping) - self.set_metadata_version() - - def set_metadata_version(self): - self._fields['Metadata-Version'] = _best_version(self._fields) - - def _write_field(self, fileobj, name, value): - fileobj.write('%s: %s\n' % (name, value)) - - def __getitem__(self, name): - return self.get(name) - - def __setitem__(self, name, value): - return self.set(name, value) - - def __delitem__(self, name): - field_name = self._convert_name(name) - try: - del self._fields[field_name] - except KeyError: - raise KeyError(name) - - def __contains__(self, name): - return (name in self._fields or - self._convert_name(name) in self._fields) - - def _convert_name(self, name): - if name in _ALL_FIELDS: - return name - name = name.replace('-', '_').lower() - return _ATTR2FIELD.get(name, name) - - def _default_value(self, name): - if name in _LISTFIELDS or name in _ELEMENTSFIELD: - return [] - return 'UNKNOWN' - - def _remove_line_prefix(self, value): - if self.metadata_version in ('1.0', '1.1'): - return _LINE_PREFIX_PRE_1_2.sub('\n', value) - else: - return _LINE_PREFIX_1_2.sub('\n', value) - - def __getattr__(self, name): - if name in _ATTR2FIELD: - return self[name] - raise AttributeError(name) - - # - # Public API - # - -# dependencies = property(_get_dependencies, _set_dependencies) - - def get_fullname(self, filesafe=False): - """Return the distribution name with version. - - If filesafe is true, return a filename-escaped form.""" - return _get_name_and_version(self['Name'], self['Version'], filesafe) - - def is_field(self, name): - """return True if name is a valid metadata key""" - name = self._convert_name(name) - return name in _ALL_FIELDS - - def is_multi_field(self, name): - name = self._convert_name(name) - return name in _LISTFIELDS - - def read(self, filepath): - """Read the metadata values from a file path.""" - fp = codecs.open(filepath, 'r', encoding='utf-8') - try: - self.read_file(fp) - finally: - fp.close() - - def read_file(self, fileob): - """Read the metadata values from a file object.""" - msg = message_from_file(fileob) - self._fields['Metadata-Version'] = msg['metadata-version'] - - # When reading, get all the fields we can - for field in _ALL_FIELDS: - if field not in msg: - continue - if field in _LISTFIELDS: - # we can have multiple lines - values = msg.get_all(field) - if field in _LISTTUPLEFIELDS and values is not None: - values = [tuple(value.split(',')) for value in values] - self.set(field, values) - else: - # single line - value = msg[field] - if value is not None and value != 'UNKNOWN': - self.set(field, value) - # logger.debug('Attempting to set metadata for %s', self) - # self.set_metadata_version() - - def write(self, filepath, skip_unknown=False): - """Write the metadata fields to filepath.""" - fp = codecs.open(filepath, 'w', encoding='utf-8') - try: - self.write_file(fp, skip_unknown) - finally: - fp.close() - - def write_file(self, fileobject, skip_unknown=False): - """Write the PKG-INFO format data to a file object.""" - self.set_metadata_version() - - for field in _version2fieldlist(self['Metadata-Version']): - values = self.get(field) - if skip_unknown and values in ('UNKNOWN', [], ['UNKNOWN']): - continue - if field in _ELEMENTSFIELD: - self._write_field(fileobject, field, ','.join(values)) - continue - if field not in _LISTFIELDS: - if field == 'Description': - if self.metadata_version in ('1.0', '1.1'): - values = values.replace('\n', '\n ') - else: - values = values.replace('\n', '\n |') - values = [values] - - if field in _LISTTUPLEFIELDS: - values = [','.join(value) for value in values] - - for value in values: - self._write_field(fileobject, field, value) - - def update(self, other=None, **kwargs): - """Set metadata values from the given iterable `other` and kwargs. - - Behavior is like `dict.update`: If `other` has a ``keys`` method, - they are looped over and ``self[key]`` is assigned ``other[key]``. - Else, ``other`` is an iterable of ``(key, value)`` iterables. - - Keys that don't match a metadata field or that have an empty value are - dropped. - """ - def _set(key, value): - if key in _ATTR2FIELD and value: - self.set(self._convert_name(key), value) - - if not other: - # other is None or empty container - pass - elif hasattr(other, 'keys'): - for k in other.keys(): - _set(k, other[k]) - else: - for k, v in other: - _set(k, v) - - if kwargs: - for k, v in kwargs.items(): - _set(k, v) - - def set(self, name, value): - """Control then set a metadata field.""" - name = self._convert_name(name) - - if ((name in _ELEMENTSFIELD or name == 'Platform') and - not isinstance(value, (list, tuple))): - if isinstance(value, string_types): - value = [v.strip() for v in value.split(',')] - else: - value = [] - elif (name in _LISTFIELDS and - not isinstance(value, (list, tuple))): - if isinstance(value, string_types): - value = [value] - else: - value = [] - - if logger.isEnabledFor(logging.WARNING): - project_name = self['Name'] - - scheme = get_scheme(self.scheme) - if name in _PREDICATE_FIELDS and value is not None: - for v in value: - # check that the values are valid - if not scheme.is_valid_matcher(v.split(';')[0]): - logger.warning( - "'%s': '%s' is not valid (field '%s')", - project_name, v, name) - # FIXME this rejects UNKNOWN, is that right? - elif name in _VERSIONS_FIELDS and value is not None: - if not scheme.is_valid_constraint_list(value): - logger.warning("'%s': '%s' is not a valid version (field '%s')", - project_name, value, name) - elif name in _VERSION_FIELDS and value is not None: - if not scheme.is_valid_version(value): - logger.warning("'%s': '%s' is not a valid version (field '%s')", - project_name, value, name) - - if name in _UNICODEFIELDS: - if name == 'Description': - value = self._remove_line_prefix(value) - - self._fields[name] = value - - def get(self, name, default=_MISSING): - """Get a metadata field.""" - name = self._convert_name(name) - if name not in self._fields: - if default is _MISSING: - default = self._default_value(name) - return default - if name in _UNICODEFIELDS: - value = self._fields[name] - return value - elif name in _LISTFIELDS: - value = self._fields[name] - if value is None: - return [] - res = [] - for val in value: - if name not in _LISTTUPLEFIELDS: - res.append(val) - else: - # That's for Project-URL - res.append((val[0], val[1])) - return res - - elif name in _ELEMENTSFIELD: - value = self._fields[name] - if isinstance(value, string_types): - return value.split(',') - return self._fields[name] - - def check(self, strict=False): - """Check if the metadata is compliant. If strict is True then raise if - no Name or Version are provided""" - self.set_metadata_version() - - # XXX should check the versions (if the file was loaded) - missing, warnings = [], [] - - for attr in ('Name', 'Version'): # required by PEP 345 - if attr not in self: - missing.append(attr) - - if strict and missing != []: - msg = 'missing required metadata: %s' % ', '.join(missing) - raise MetadataMissingError(msg) - - for attr in ('Home-page', 'Author'): - if attr not in self: - missing.append(attr) - - # checking metadata 1.2 (XXX needs to check 1.1, 1.0) - if self['Metadata-Version'] != '1.2': - return missing, warnings - - scheme = get_scheme(self.scheme) - - def are_valid_constraints(value): - for v in value: - if not scheme.is_valid_matcher(v.split(';')[0]): - return False - return True - - for fields, controller in ((_PREDICATE_FIELDS, are_valid_constraints), - (_VERSIONS_FIELDS, - scheme.is_valid_constraint_list), - (_VERSION_FIELDS, - scheme.is_valid_version)): - for field in fields: - value = self.get(field, None) - if value is not None and not controller(value): - warnings.append("Wrong value for '%s': %s" % (field, value)) - - return missing, warnings - - def todict(self, skip_missing=False): - """Return fields as a dict. - - Field names will be converted to use the underscore-lowercase style - instead of hyphen-mixed case (i.e. home_page instead of Home-page). - """ - self.set_metadata_version() - - mapping_1_0 = ( - ('metadata_version', 'Metadata-Version'), - ('name', 'Name'), - ('version', 'Version'), - ('summary', 'Summary'), - ('home_page', 'Home-page'), - ('author', 'Author'), - ('author_email', 'Author-email'), - ('license', 'License'), - ('description', 'Description'), - ('keywords', 'Keywords'), - ('platform', 'Platform'), - ('classifiers', 'Classifier'), - ('download_url', 'Download-URL'), - ) - - data = {} - for key, field_name in mapping_1_0: - if not skip_missing or field_name in self._fields: - data[key] = self[field_name] - - if self['Metadata-Version'] == '1.2': - mapping_1_2 = ( - ('requires_dist', 'Requires-Dist'), - ('requires_python', 'Requires-Python'), - ('requires_external', 'Requires-External'), - ('provides_dist', 'Provides-Dist'), - ('obsoletes_dist', 'Obsoletes-Dist'), - ('project_url', 'Project-URL'), - ('maintainer', 'Maintainer'), - ('maintainer_email', 'Maintainer-email'), - ) - for key, field_name in mapping_1_2: - if not skip_missing or field_name in self._fields: - if key != 'project_url': - data[key] = self[field_name] - else: - data[key] = [','.join(u) for u in self[field_name]] - - elif self['Metadata-Version'] == '1.1': - mapping_1_1 = ( - ('provides', 'Provides'), - ('requires', 'Requires'), - ('obsoletes', 'Obsoletes'), - ) - for key, field_name in mapping_1_1: - if not skip_missing or field_name in self._fields: - data[key] = self[field_name] - - return data - - def add_requirements(self, requirements): - if self['Metadata-Version'] == '1.1': - # we can't have 1.1 metadata *and* Setuptools requires - for field in ('Obsoletes', 'Requires', 'Provides'): - if field in self: - del self[field] - self['Requires-Dist'] += requirements - - # Mapping API - # TODO could add iter* variants - - def keys(self): - return list(_version2fieldlist(self['Metadata-Version'])) - - def __iter__(self): - for key in self.keys(): - yield key - - def values(self): - return [self[key] for key in self.keys()] - - def items(self): - return [(key, self[key]) for key in self.keys()] - - def __repr__(self): - return '<%s %s %s>' % (self.__class__.__name__, self.name, - self.version) - - -METADATA_FILENAME = 'pydist.json' -WHEEL_METADATA_FILENAME = 'metadata.json' -LEGACY_METADATA_FILENAME = 'METADATA' - - -class Metadata(object): - """ - The metadata of a release. This implementation uses 2.0 (JSON) - metadata where possible. If not possible, it wraps a LegacyMetadata - instance which handles the key-value metadata format. - """ - - METADATA_VERSION_MATCHER = re.compile(r'^\d+(\.\d+)*$') - - NAME_MATCHER = re.compile('^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$', re.I) - - VERSION_MATCHER = PEP440_VERSION_RE - - SUMMARY_MATCHER = re.compile('.{1,2047}') - - METADATA_VERSION = '2.0' - - GENERATOR = 'distlib (%s)' % __version__ - - MANDATORY_KEYS = { - 'name': (), - 'version': (), - 'summary': ('legacy',), - } - - INDEX_KEYS = ('name version license summary description author ' - 'author_email keywords platform home_page classifiers ' - 'download_url') - - DEPENDENCY_KEYS = ('extras run_requires test_requires build_requires ' - 'dev_requires provides meta_requires obsoleted_by ' - 'supports_environments') - - SYNTAX_VALIDATORS = { - 'metadata_version': (METADATA_VERSION_MATCHER, ()), - 'name': (NAME_MATCHER, ('legacy',)), - 'version': (VERSION_MATCHER, ('legacy',)), - 'summary': (SUMMARY_MATCHER, ('legacy',)), - } - - __slots__ = ('_legacy', '_data', 'scheme') - - def __init__(self, path=None, fileobj=None, mapping=None, - scheme='default'): - if [path, fileobj, mapping].count(None) < 2: - raise TypeError('path, fileobj and mapping are exclusive') - self._legacy = None - self._data = None - self.scheme = scheme - #import pdb; pdb.set_trace() - if mapping is not None: - try: - self._validate_mapping(mapping, scheme) - self._data = mapping - except MetadataUnrecognizedVersionError: - self._legacy = LegacyMetadata(mapping=mapping, scheme=scheme) - self.validate() - else: - data = None - if path: - with open(path, 'rb') as f: - data = f.read() - elif fileobj: - data = fileobj.read() - if data is None: - # Initialised with no args - to be added - self._data = { - 'metadata_version': self.METADATA_VERSION, - 'generator': self.GENERATOR, - } - else: - if not isinstance(data, text_type): - data = data.decode('utf-8') - try: - self._data = json.loads(data) - self._validate_mapping(self._data, scheme) - except ValueError: - # Note: MetadataUnrecognizedVersionError does not - # inherit from ValueError (it's a DistlibException, - # which should not inherit from ValueError). - # The ValueError comes from the json.load - if that - # succeeds and we get a validation error, we want - # that to propagate - self._legacy = LegacyMetadata(fileobj=StringIO(data), - scheme=scheme) - self.validate() - - common_keys = set(('name', 'version', 'license', 'keywords', 'summary')) - - none_list = (None, list) - none_dict = (None, dict) - - mapped_keys = { - 'run_requires': ('Requires-Dist', list), - 'build_requires': ('Setup-Requires-Dist', list), - 'dev_requires': none_list, - 'test_requires': none_list, - 'meta_requires': none_list, - 'extras': ('Provides-Extra', list), - 'modules': none_list, - 'namespaces': none_list, - 'exports': none_dict, - 'commands': none_dict, - 'classifiers': ('Classifier', list), - 'source_url': ('Download-URL', None), - 'metadata_version': ('Metadata-Version', None), - } - - del none_list, none_dict - - def __getattribute__(self, key): - common = object.__getattribute__(self, 'common_keys') - mapped = object.__getattribute__(self, 'mapped_keys') - if key in mapped: - lk, maker = mapped[key] - if self._legacy: - if lk is None: - result = None if maker is None else maker() - else: - result = self._legacy.get(lk) - else: - value = None if maker is None else maker() - if key not in ('commands', 'exports', 'modules', 'namespaces', - 'classifiers'): - result = self._data.get(key, value) - else: - # special cases for PEP 459 - sentinel = object() - result = sentinel - d = self._data.get('extensions') - if d: - if key == 'commands': - result = d.get('python.commands', value) - elif key == 'classifiers': - d = d.get('python.details') - if d: - result = d.get(key, value) - else: - d = d.get('python.exports') - if not d: - d = self._data.get('python.exports') - if d: - result = d.get(key, value) - if result is sentinel: - result = value - elif key not in common: - result = object.__getattribute__(self, key) - elif self._legacy: - result = self._legacy.get(key) - else: - result = self._data.get(key) - return result - - def _validate_value(self, key, value, scheme=None): - if key in self.SYNTAX_VALIDATORS: - pattern, exclusions = self.SYNTAX_VALIDATORS[key] - if (scheme or self.scheme) not in exclusions: - m = pattern.match(value) - if not m: - raise MetadataInvalidError("'%s' is an invalid value for " - "the '%s' property" % (value, - key)) - - def __setattr__(self, key, value): - self._validate_value(key, value) - common = object.__getattribute__(self, 'common_keys') - mapped = object.__getattribute__(self, 'mapped_keys') - if key in mapped: - lk, _ = mapped[key] - if self._legacy: - if lk is None: - raise NotImplementedError - self._legacy[lk] = value - elif key not in ('commands', 'exports', 'modules', 'namespaces', - 'classifiers'): - self._data[key] = value - else: - # special cases for PEP 459 - d = self._data.setdefault('extensions', {}) - if key == 'commands': - d['python.commands'] = value - elif key == 'classifiers': - d = d.setdefault('python.details', {}) - d[key] = value - else: - d = d.setdefault('python.exports', {}) - d[key] = value - elif key not in common: - object.__setattr__(self, key, value) - else: - if key == 'keywords': - if isinstance(value, string_types): - value = value.strip() - if value: - value = value.split() - else: - value = [] - if self._legacy: - self._legacy[key] = value - else: - self._data[key] = value - - @property - def name_and_version(self): - return _get_name_and_version(self.name, self.version, True) - - @property - def provides(self): - if self._legacy: - result = self._legacy['Provides-Dist'] - else: - result = self._data.setdefault('provides', []) - s = '%s (%s)' % (self.name, self.version) - if s not in result: - result.append(s) - return result - - @provides.setter - def provides(self, value): - if self._legacy: - self._legacy['Provides-Dist'] = value - else: - self._data['provides'] = value - - def get_requirements(self, reqts, extras=None, env=None): - """ - Base method to get dependencies, given a set of extras - to satisfy and an optional environment context. - :param reqts: A list of sometimes-wanted dependencies, - perhaps dependent on extras and environment. - :param extras: A list of optional components being requested. - :param env: An optional environment for marker evaluation. - """ - if self._legacy: - result = reqts - else: - result = [] - extras = get_extras(extras or [], self.extras) - for d in reqts: - if 'extra' not in d and 'environment' not in d: - # unconditional - include = True - else: - if 'extra' not in d: - # Not extra-dependent - only environment-dependent - include = True - else: - include = d.get('extra') in extras - if include: - # Not excluded because of extras, check environment - marker = d.get('environment') - if marker: - include = interpret(marker, env) - if include: - result.extend(d['requires']) - for key in ('build', 'dev', 'test'): - e = ':%s:' % key - if e in extras: - extras.remove(e) - # A recursive call, but it should terminate since 'test' - # has been removed from the extras - reqts = self._data.get('%s_requires' % key, []) - result.extend(self.get_requirements(reqts, extras=extras, - env=env)) - return result - - @property - def dictionary(self): - if self._legacy: - return self._from_legacy() - return self._data - - @property - def dependencies(self): - if self._legacy: - raise NotImplementedError - else: - return extract_by_key(self._data, self.DEPENDENCY_KEYS) - - @dependencies.setter - def dependencies(self, value): - if self._legacy: - raise NotImplementedError - else: - self._data.update(value) - - def _validate_mapping(self, mapping, scheme): - if mapping.get('metadata_version') != self.METADATA_VERSION: - raise MetadataUnrecognizedVersionError() - missing = [] - for key, exclusions in self.MANDATORY_KEYS.items(): - if key not in mapping: - if scheme not in exclusions: - missing.append(key) - if missing: - msg = 'Missing metadata items: %s' % ', '.join(missing) - raise MetadataMissingError(msg) - for k, v in mapping.items(): - self._validate_value(k, v, scheme) - - def validate(self): - if self._legacy: - missing, warnings = self._legacy.check(True) - if missing or warnings: - logger.warning('Metadata: missing: %s, warnings: %s', - missing, warnings) - else: - self._validate_mapping(self._data, self.scheme) - - def todict(self): - if self._legacy: - return self._legacy.todict(True) - else: - result = extract_by_key(self._data, self.INDEX_KEYS) - return result - - def _from_legacy(self): - assert self._legacy and not self._data - result = { - 'metadata_version': self.METADATA_VERSION, - 'generator': self.GENERATOR, - } - lmd = self._legacy.todict(True) # skip missing ones - for k in ('name', 'version', 'license', 'summary', 'description', - 'classifier'): - if k in lmd: - if k == 'classifier': - nk = 'classifiers' - else: - nk = k - result[nk] = lmd[k] - kw = lmd.get('Keywords', []) - if kw == ['']: - kw = [] - result['keywords'] = kw - keys = (('requires_dist', 'run_requires'), - ('setup_requires_dist', 'build_requires')) - for ok, nk in keys: - if ok in lmd and lmd[ok]: - result[nk] = [{'requires': lmd[ok]}] - result['provides'] = self.provides - author = {} - maintainer = {} - return result - - LEGACY_MAPPING = { - 'name': 'Name', - 'version': 'Version', - 'license': 'License', - 'summary': 'Summary', - 'description': 'Description', - 'classifiers': 'Classifier', - } - - def _to_legacy(self): - def process_entries(entries): - reqts = set() - for e in entries: - extra = e.get('extra') - env = e.get('environment') - rlist = e['requires'] - for r in rlist: - if not env and not extra: - reqts.add(r) - else: - marker = '' - if extra: - marker = 'extra == "%s"' % extra - if env: - if marker: - marker = '(%s) and %s' % (env, marker) - else: - marker = env - reqts.add(';'.join((r, marker))) - return reqts - - assert self._data and not self._legacy - result = LegacyMetadata() - nmd = self._data - for nk, ok in self.LEGACY_MAPPING.items(): - if nk in nmd: - result[ok] = nmd[nk] - r1 = process_entries(self.run_requires + self.meta_requires) - r2 = process_entries(self.build_requires + self.dev_requires) - if self.extras: - result['Provides-Extra'] = sorted(self.extras) - result['Requires-Dist'] = sorted(r1) - result['Setup-Requires-Dist'] = sorted(r2) - # TODO: other fields such as contacts - return result - - def write(self, path=None, fileobj=None, legacy=False, skip_unknown=True): - if [path, fileobj].count(None) != 1: - raise ValueError('Exactly one of path and fileobj is needed') - self.validate() - if legacy: - if self._legacy: - legacy_md = self._legacy - else: - legacy_md = self._to_legacy() - if path: - legacy_md.write(path, skip_unknown=skip_unknown) - else: - legacy_md.write_file(fileobj, skip_unknown=skip_unknown) - else: - if self._legacy: - d = self._from_legacy() - else: - d = self._data - if fileobj: - json.dump(d, fileobj, ensure_ascii=True, indent=2, - sort_keys=True) - else: - with codecs.open(path, 'w', 'utf-8') as f: - json.dump(d, f, ensure_ascii=True, indent=2, - sort_keys=True) - - def add_requirements(self, requirements): - if self._legacy: - self._legacy.add_requirements(requirements) - else: - run_requires = self._data.setdefault('run_requires', []) - always = None - for entry in run_requires: - if 'environment' not in entry and 'extra' not in entry: - always = entry - break - if always is None: - always = { 'requires': requirements } - run_requires.insert(0, always) - else: - rset = set(always['requires']) | set(requirements) - always['requires'] = sorted(rset) - - def __repr__(self): - name = self.name or '(no name)' - version = self.version or 'no version' - return '<%s %s %s (%s)>' % (self.__class__.__name__, - self.metadata_version, name, version) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/resources.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/resources.py deleted file mode 100644 index 1884016..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/resources.py +++ /dev/null @@ -1,355 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013-2017 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from __future__ import unicode_literals - -import bisect -import io -import logging -import os -import pkgutil -import shutil -import sys -import types -import zipimport - -from . import DistlibException -from .util import cached_property, get_cache_base, path_to_cache_dir, Cache - -logger = logging.getLogger(__name__) - - -cache = None # created when needed - - -class ResourceCache(Cache): - def __init__(self, base=None): - if base is None: - # Use native string to avoid issues on 2.x: see Python #20140. - base = os.path.join(get_cache_base(), str('resource-cache')) - super(ResourceCache, self).__init__(base) - - def is_stale(self, resource, path): - """ - Is the cache stale for the given resource? - - :param resource: The :class:`Resource` being cached. - :param path: The path of the resource in the cache. - :return: True if the cache is stale. - """ - # Cache invalidation is a hard problem :-) - return True - - def get(self, resource): - """ - Get a resource into the cache, - - :param resource: A :class:`Resource` instance. - :return: The pathname of the resource in the cache. - """ - prefix, path = resource.finder.get_cache_info(resource) - if prefix is None: - result = path - else: - result = os.path.join(self.base, self.prefix_to_dir(prefix), path) - dirname = os.path.dirname(result) - if not os.path.isdir(dirname): - os.makedirs(dirname) - if not os.path.exists(result): - stale = True - else: - stale = self.is_stale(resource, path) - if stale: - # write the bytes of the resource to the cache location - with open(result, 'wb') as f: - f.write(resource.bytes) - return result - - -class ResourceBase(object): - def __init__(self, finder, name): - self.finder = finder - self.name = name - - -class Resource(ResourceBase): - """ - A class representing an in-package resource, such as a data file. This is - not normally instantiated by user code, but rather by a - :class:`ResourceFinder` which manages the resource. - """ - is_container = False # Backwards compatibility - - def as_stream(self): - """ - Get the resource as a stream. - - This is not a property to make it obvious that it returns a new stream - each time. - """ - return self.finder.get_stream(self) - - @cached_property - def file_path(self): - global cache - if cache is None: - cache = ResourceCache() - return cache.get(self) - - @cached_property - def bytes(self): - return self.finder.get_bytes(self) - - @cached_property - def size(self): - return self.finder.get_size(self) - - -class ResourceContainer(ResourceBase): - is_container = True # Backwards compatibility - - @cached_property - def resources(self): - return self.finder.get_resources(self) - - -class ResourceFinder(object): - """ - Resource finder for file system resources. - """ - - if sys.platform.startswith('java'): - skipped_extensions = ('.pyc', '.pyo', '.class') - else: - skipped_extensions = ('.pyc', '.pyo') - - def __init__(self, module): - self.module = module - self.loader = getattr(module, '__loader__', None) - self.base = os.path.dirname(getattr(module, '__file__', '')) - - def _adjust_path(self, path): - return os.path.realpath(path) - - def _make_path(self, resource_name): - # Issue #50: need to preserve type of path on Python 2.x - # like os.path._get_sep - if isinstance(resource_name, bytes): # should only happen on 2.x - sep = b'/' - else: - sep = '/' - parts = resource_name.split(sep) - parts.insert(0, self.base) - result = os.path.join(*parts) - return self._adjust_path(result) - - def _find(self, path): - return os.path.exists(path) - - def get_cache_info(self, resource): - return None, resource.path - - def find(self, resource_name): - path = self._make_path(resource_name) - if not self._find(path): - result = None - else: - if self._is_directory(path): - result = ResourceContainer(self, resource_name) - else: - result = Resource(self, resource_name) - result.path = path - return result - - def get_stream(self, resource): - return open(resource.path, 'rb') - - def get_bytes(self, resource): - with open(resource.path, 'rb') as f: - return f.read() - - def get_size(self, resource): - return os.path.getsize(resource.path) - - def get_resources(self, resource): - def allowed(f): - return (f != '__pycache__' and not - f.endswith(self.skipped_extensions)) - return set([f for f in os.listdir(resource.path) if allowed(f)]) - - def is_container(self, resource): - return self._is_directory(resource.path) - - _is_directory = staticmethod(os.path.isdir) - - def iterator(self, resource_name): - resource = self.find(resource_name) - if resource is not None: - todo = [resource] - while todo: - resource = todo.pop(0) - yield resource - if resource.is_container: - rname = resource.name - for name in resource.resources: - if not rname: - new_name = name - else: - new_name = '/'.join([rname, name]) - child = self.find(new_name) - if child.is_container: - todo.append(child) - else: - yield child - - -class ZipResourceFinder(ResourceFinder): - """ - Resource finder for resources in .zip files. - """ - def __init__(self, module): - super(ZipResourceFinder, self).__init__(module) - archive = self.loader.archive - self.prefix_len = 1 + len(archive) - # PyPy doesn't have a _files attr on zipimporter, and you can't set one - if hasattr(self.loader, '_files'): - self._files = self.loader._files - else: - self._files = zipimport._zip_directory_cache[archive] - self.index = sorted(self._files) - - def _adjust_path(self, path): - return path - - def _find(self, path): - path = path[self.prefix_len:] - if path in self._files: - result = True - else: - if path and path[-1] != os.sep: - path = path + os.sep - i = bisect.bisect(self.index, path) - try: - result = self.index[i].startswith(path) - except IndexError: - result = False - if not result: - logger.debug('_find failed: %r %r', path, self.loader.prefix) - else: - logger.debug('_find worked: %r %r', path, self.loader.prefix) - return result - - def get_cache_info(self, resource): - prefix = self.loader.archive - path = resource.path[1 + len(prefix):] - return prefix, path - - def get_bytes(self, resource): - return self.loader.get_data(resource.path) - - def get_stream(self, resource): - return io.BytesIO(self.get_bytes(resource)) - - def get_size(self, resource): - path = resource.path[self.prefix_len:] - return self._files[path][3] - - def get_resources(self, resource): - path = resource.path[self.prefix_len:] - if path and path[-1] != os.sep: - path += os.sep - plen = len(path) - result = set() - i = bisect.bisect(self.index, path) - while i < len(self.index): - if not self.index[i].startswith(path): - break - s = self.index[i][plen:] - result.add(s.split(os.sep, 1)[0]) # only immediate children - i += 1 - return result - - def _is_directory(self, path): - path = path[self.prefix_len:] - if path and path[-1] != os.sep: - path += os.sep - i = bisect.bisect(self.index, path) - try: - result = self.index[i].startswith(path) - except IndexError: - result = False - return result - -_finder_registry = { - type(None): ResourceFinder, - zipimport.zipimporter: ZipResourceFinder -} - -try: - # In Python 3.6, _frozen_importlib -> _frozen_importlib_external - try: - import _frozen_importlib_external as _fi - except ImportError: - import _frozen_importlib as _fi - _finder_registry[_fi.SourceFileLoader] = ResourceFinder - _finder_registry[_fi.FileFinder] = ResourceFinder - del _fi -except (ImportError, AttributeError): - pass - - -def register_finder(loader, finder_maker): - _finder_registry[type(loader)] = finder_maker - -_finder_cache = {} - - -def finder(package): - """ - Return a resource finder for a package. - :param package: The name of the package. - :return: A :class:`ResourceFinder` instance for the package. - """ - if package in _finder_cache: - result = _finder_cache[package] - else: - if package not in sys.modules: - __import__(package) - module = sys.modules[package] - path = getattr(module, '__path__', None) - if path is None: - raise DistlibException('You cannot get a finder for a module, ' - 'only for a package') - loader = getattr(module, '__loader__', None) - finder_maker = _finder_registry.get(type(loader)) - if finder_maker is None: - raise DistlibException('Unable to locate finder for %r' % package) - result = finder_maker(module) - _finder_cache[package] = result - return result - - -_dummy_module = types.ModuleType(str('__dummy__')) - - -def finder_for_path(path): - """ - Return a resource finder for a path, which should represent a container. - - :param path: The path. - :return: A :class:`ResourceFinder` instance for the path. - """ - result = None - # calls any path hooks, gets importer into cache - pkgutil.get_importer(path) - loader = sys.path_importer_cache.get(path) - finder = _finder_registry.get(type(loader)) - if finder: - module = _dummy_module - module.__file__ = os.path.join(path, '') - module.__loader__ = loader - result = finder(module) - return result diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/scripts.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/scripts.py deleted file mode 100644 index 8e22cb9..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/scripts.py +++ /dev/null @@ -1,417 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013-2015 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from io import BytesIO -import logging -import os -import re -import struct -import sys - -from .compat import sysconfig, detect_encoding, ZipFile -from .resources import finder -from .util import (FileOperator, get_export_entry, convert_path, - get_executable, in_venv) - -logger = logging.getLogger(__name__) - -_DEFAULT_MANIFEST = ''' -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> - <assemblyIdentity version="1.0.0.0" - processorArchitecture="X86" - name="%s" - type="win32"/> - - <!-- Identify the application security requirements. --> - <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> - <security> - <requestedPrivileges> - <requestedExecutionLevel level="asInvoker" uiAccess="false"/> - </requestedPrivileges> - </security> - </trustInfo> -</assembly>'''.strip() - -# check if Python is called on the first line with this expression -FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$') -SCRIPT_TEMPLATE = r'''# -*- coding: utf-8 -*- -if __name__ == '__main__': - import sys, re - - def _resolve(module, func): - __import__(module) - mod = sys.modules[module] - parts = func.split('.') - result = getattr(mod, parts.pop(0)) - for p in parts: - result = getattr(result, p) - return result - - try: - sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) - - func = _resolve('%(module)s', '%(func)s') - rc = func() # None interpreted as 0 - except Exception as e: # only supporting Python >= 2.6 - sys.stderr.write('%%s\n' %% e) - rc = 1 - sys.exit(rc) -''' - - -def _enquote_executable(executable): - if ' ' in executable: - # make sure we quote only the executable in case of env - # for example /usr/bin/env "/dir with spaces/bin/jython" - # instead of "/usr/bin/env /dir with spaces/bin/jython" - # otherwise whole - if executable.startswith('/usr/bin/env '): - env, _executable = executable.split(' ', 1) - if ' ' in _executable and not _executable.startswith('"'): - executable = '%s "%s"' % (env, _executable) - else: - if not executable.startswith('"'): - executable = '"%s"' % executable - return executable - - -class ScriptMaker(object): - """ - A class to copy or create scripts from source scripts or callable - specifications. - """ - script_template = SCRIPT_TEMPLATE - - executable = None # for shebangs - - def __init__(self, source_dir, target_dir, add_launchers=True, - dry_run=False, fileop=None): - self.source_dir = source_dir - self.target_dir = target_dir - self.add_launchers = add_launchers - self.force = False - self.clobber = False - # It only makes sense to set mode bits on POSIX. - self.set_mode = (os.name == 'posix') or (os.name == 'java' and - os._name == 'posix') - self.variants = set(('', 'X.Y')) - self._fileop = fileop or FileOperator(dry_run) - - self._is_nt = os.name == 'nt' or ( - os.name == 'java' and os._name == 'nt') - - def _get_alternate_executable(self, executable, options): - if options.get('gui', False) and self._is_nt: # pragma: no cover - dn, fn = os.path.split(executable) - fn = fn.replace('python', 'pythonw') - executable = os.path.join(dn, fn) - return executable - - if sys.platform.startswith('java'): # pragma: no cover - def _is_shell(self, executable): - """ - Determine if the specified executable is a script - (contains a #! line) - """ - try: - with open(executable) as fp: - return fp.read(2) == '#!' - except (OSError, IOError): - logger.warning('Failed to open %s', executable) - return False - - def _fix_jython_executable(self, executable): - if self._is_shell(executable): - # Workaround for Jython is not needed on Linux systems. - import java - - if java.lang.System.getProperty('os.name') == 'Linux': - return executable - elif executable.lower().endswith('jython.exe'): - # Use wrapper exe for Jython on Windows - return executable - return '/usr/bin/env %s' % executable - - def _build_shebang(self, executable, post_interp): - """ - Build a shebang line. In the simple case (on Windows, or a shebang line - which is not too long or contains spaces) use a simple formulation for - the shebang. Otherwise, use /bin/sh as the executable, with a contrived - shebang which allows the script to run either under Python or sh, using - suitable quoting. Thanks to Harald Nordgren for his input. - - See also: http://www.in-ulm.de/~mascheck/various/shebang/#length - https://hg.mozilla.org/mozilla-central/file/tip/mach - """ - if os.name != 'posix': - simple_shebang = True - else: - # Add 3 for '#!' prefix and newline suffix. - shebang_length = len(executable) + len(post_interp) + 3 - if sys.platform == 'darwin': - max_shebang_length = 512 - else: - max_shebang_length = 127 - simple_shebang = ((b' ' not in executable) and - (shebang_length <= max_shebang_length)) - - if simple_shebang: - result = b'#!' + executable + post_interp + b'\n' - else: - result = b'#!/bin/sh\n' - result += b"'''exec' " + executable + post_interp + b' "$0" "$@"\n' - result += b"' '''" - return result - - def _get_shebang(self, encoding, post_interp=b'', options=None): - enquote = True - if self.executable: - executable = self.executable - enquote = False # assume this will be taken care of - elif not sysconfig.is_python_build(): - executable = get_executable() - elif in_venv(): # pragma: no cover - executable = os.path.join(sysconfig.get_path('scripts'), - 'python%s' % sysconfig.get_config_var('EXE')) - else: # pragma: no cover - executable = os.path.join( - sysconfig.get_config_var('BINDIR'), - 'python%s%s' % (sysconfig.get_config_var('VERSION'), - sysconfig.get_config_var('EXE'))) - if options: - executable = self._get_alternate_executable(executable, options) - - if sys.platform.startswith('java'): # pragma: no cover - executable = self._fix_jython_executable(executable) - # Normalise case for Windows - executable = os.path.normcase(executable) - # If the user didn't specify an executable, it may be necessary to - # cater for executable paths with spaces (not uncommon on Windows) - if enquote: - executable = _enquote_executable(executable) - # Issue #51: don't use fsencode, since we later try to - # check that the shebang is decodable using utf-8. - executable = executable.encode('utf-8') - # in case of IronPython, play safe and enable frames support - if (sys.platform == 'cli' and '-X:Frames' not in post_interp - and '-X:FullFrames' not in post_interp): # pragma: no cover - post_interp += b' -X:Frames' - shebang = self._build_shebang(executable, post_interp) - # Python parser starts to read a script using UTF-8 until - # it gets a #coding:xxx cookie. The shebang has to be the - # first line of a file, the #coding:xxx cookie cannot be - # written before. So the shebang has to be decodable from - # UTF-8. - try: - shebang.decode('utf-8') - except UnicodeDecodeError: # pragma: no cover - raise ValueError( - 'The shebang (%r) is not decodable from utf-8' % shebang) - # If the script is encoded to a custom encoding (use a - # #coding:xxx cookie), the shebang has to be decodable from - # the script encoding too. - if encoding != 'utf-8': - try: - shebang.decode(encoding) - except UnicodeDecodeError: # pragma: no cover - raise ValueError( - 'The shebang (%r) is not decodable ' - 'from the script encoding (%r)' % (shebang, encoding)) - return shebang - - def _get_script_text(self, entry): - return self.script_template % dict(module=entry.prefix, - func=entry.suffix) - - manifest = _DEFAULT_MANIFEST - - def get_manifest(self, exename): - base = os.path.basename(exename) - return self.manifest % base - - def _write_script(self, names, shebang, script_bytes, filenames, ext): - use_launcher = self.add_launchers and self._is_nt - linesep = os.linesep.encode('utf-8') - if not shebang.endswith(linesep): - shebang += linesep - if not use_launcher: - script_bytes = shebang + script_bytes - else: # pragma: no cover - if ext == 'py': - launcher = self._get_launcher('t') - else: - launcher = self._get_launcher('w') - stream = BytesIO() - with ZipFile(stream, 'w') as zf: - zf.writestr('__main__.py', script_bytes) - zip_data = stream.getvalue() - script_bytes = launcher + shebang + zip_data - for name in names: - outname = os.path.join(self.target_dir, name) - if use_launcher: # pragma: no cover - n, e = os.path.splitext(outname) - if e.startswith('.py'): - outname = n - outname = '%s.exe' % outname - try: - self._fileop.write_binary_file(outname, script_bytes) - except Exception: - # Failed writing an executable - it might be in use. - logger.warning('Failed to write executable - trying to ' - 'use .deleteme logic') - dfname = '%s.deleteme' % outname - if os.path.exists(dfname): - os.remove(dfname) # Not allowed to fail here - os.rename(outname, dfname) # nor here - self._fileop.write_binary_file(outname, script_bytes) - logger.debug('Able to replace executable using ' - '.deleteme logic') - try: - os.remove(dfname) - except Exception: - pass # still in use - ignore error - else: - if self._is_nt and not outname.endswith('.' + ext): # pragma: no cover - outname = '%s.%s' % (outname, ext) - if os.path.exists(outname) and not self.clobber: - logger.warning('Skipping existing file %s', outname) - continue - self._fileop.write_binary_file(outname, script_bytes) - if self.set_mode: - self._fileop.set_executable_mode([outname]) - filenames.append(outname) - - def _make_script(self, entry, filenames, options=None): - post_interp = b'' - if options: - args = options.get('interpreter_args', []) - if args: - args = ' %s' % ' '.join(args) - post_interp = args.encode('utf-8') - shebang = self._get_shebang('utf-8', post_interp, options=options) - script = self._get_script_text(entry).encode('utf-8') - name = entry.name - scriptnames = set() - if '' in self.variants: - scriptnames.add(name) - if 'X' in self.variants: - scriptnames.add('%s%s' % (name, sys.version[0])) - if 'X.Y' in self.variants: - scriptnames.add('%s-%s' % (name, sys.version[:3])) - if options and options.get('gui', False): - ext = 'pyw' - else: - ext = 'py' - self._write_script(scriptnames, shebang, script, filenames, ext) - - def _copy_script(self, script, filenames): - adjust = False - script = os.path.join(self.source_dir, convert_path(script)) - outname = os.path.join(self.target_dir, os.path.basename(script)) - if not self.force and not self._fileop.newer(script, outname): - logger.debug('not copying %s (up-to-date)', script) - return - - # Always open the file, but ignore failures in dry-run mode -- - # that way, we'll get accurate feedback if we can read the - # script. - try: - f = open(script, 'rb') - except IOError: # pragma: no cover - if not self.dry_run: - raise - f = None - else: - first_line = f.readline() - if not first_line: # pragma: no cover - logger.warning('%s: %s is an empty file (skipping)', - self.get_command_name(), script) - return - - match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) - if match: - adjust = True - post_interp = match.group(1) or b'' - - if not adjust: - if f: - f.close() - self._fileop.copy_file(script, outname) - if self.set_mode: - self._fileop.set_executable_mode([outname]) - filenames.append(outname) - else: - logger.info('copying and adjusting %s -> %s', script, - self.target_dir) - if not self._fileop.dry_run: - encoding, lines = detect_encoding(f.readline) - f.seek(0) - shebang = self._get_shebang(encoding, post_interp) - if b'pythonw' in first_line: # pragma: no cover - ext = 'pyw' - else: - ext = 'py' - n = os.path.basename(outname) - self._write_script([n], shebang, f.read(), filenames, ext) - if f: - f.close() - - @property - def dry_run(self): - return self._fileop.dry_run - - @dry_run.setter - def dry_run(self, value): - self._fileop.dry_run = value - - if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): # pragma: no cover - # Executable launcher support. - # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/ - - def _get_launcher(self, kind): - if struct.calcsize('P') == 8: # 64-bit - bits = '64' - else: - bits = '32' - name = '%s%s.exe' % (kind, bits) - # Issue 31: don't hardcode an absolute package name, but - # determine it relative to the current package - distlib_package = __name__.rsplit('.', 1)[0] - result = finder(distlib_package).find(name).bytes - return result - - # Public API follows - - def make(self, specification, options=None): - """ - Make a script. - - :param specification: The specification, which is either a valid export - entry specification (to make a script from a - callable) or a filename (to make a script by - copying from a source location). - :param options: A dictionary of options controlling script generation. - :return: A list of all absolute pathnames written to. - """ - filenames = [] - entry = get_export_entry(specification) - if entry is None: - self._copy_script(specification, filenames) - else: - self._make_script(entry, filenames, options=options) - return filenames - - def make_multiple(self, specifications, options=None): - """ - Take a list of specifications and make scripts from them, - :param specifications: A list of specifications. - :return: A list of all absolute pathnames written to, - """ - filenames = [] - for specification in specifications: - filenames.extend(self.make(specification, options)) - return filenames diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t32.exe b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t32.exe deleted file mode 100644 index a09d926872d84ae22a617dfe9ebb560d420b37de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92672 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 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t64.exe b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t64.exe deleted file mode 100644 index 9da9b40de922fb203df6b9a1d0ad4139af536850..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102400 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�vlnW`{LoXpTySn$@;x8yoz96jn?+Kk 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�?dYNUd4WaURX_A__M4W}D0!0n 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 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/util.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/util.py deleted file mode 100644 index 9d4bfd3..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/util.py +++ /dev/null @@ -1,1756 +0,0 @@ -# -# Copyright (C) 2012-2017 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -import codecs -from collections import deque -import contextlib -import csv -from glob import iglob as std_iglob -import io -import json -import logging -import os -import py_compile -import re -import socket -try: - import ssl -except ImportError: # pragma: no cover - ssl = None -import subprocess -import sys -import tarfile -import tempfile -import textwrap - -try: - import threading -except ImportError: # pragma: no cover - import dummy_threading as threading -import time - -from . import DistlibException -from .compat import (string_types, text_type, shutil, raw_input, StringIO, - cache_from_source, urlopen, urljoin, httplib, xmlrpclib, - splittype, HTTPHandler, BaseConfigurator, valid_ident, - Container, configparser, URLError, ZipFile, fsdecode, - unquote, urlparse) - -logger = logging.getLogger(__name__) - -# -# Requirement parsing code as per PEP 508 -# - -IDENTIFIER = re.compile(r'^([\w\.-]+)\s*') -VERSION_IDENTIFIER = re.compile(r'^([\w\.*+-]+)\s*') -COMPARE_OP = re.compile(r'^(<=?|>=?|={2,3}|[~!]=)\s*') -MARKER_OP = re.compile(r'^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*') -OR = re.compile(r'^or\b\s*') -AND = re.compile(r'^and\b\s*') -NON_SPACE = re.compile(r'(\S+)\s*') -STRING_CHUNK = re.compile(r'([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)') - - -def parse_marker(marker_string): - """ - Parse a marker string and return a dictionary containing a marker expression. - - The dictionary will contain keys "op", "lhs" and "rhs" for non-terminals in - the expression grammar, or strings. A string contained in quotes is to be - interpreted as a literal string, and a string not contained in quotes is a - variable (such as os_name). - """ - def marker_var(remaining): - # either identifier, or literal string - m = IDENTIFIER.match(remaining) - if m: - result = m.groups()[0] - remaining = remaining[m.end():] - elif not remaining: - raise SyntaxError('unexpected end of input') - else: - q = remaining[0] - if q not in '\'"': - raise SyntaxError('invalid expression: %s' % remaining) - oq = '\'"'.replace(q, '') - remaining = remaining[1:] - parts = [q] - while remaining: - # either a string chunk, or oq, or q to terminate - if remaining[0] == q: - break - elif remaining[0] == oq: - parts.append(oq) - remaining = remaining[1:] - else: - m = STRING_CHUNK.match(remaining) - if not m: - raise SyntaxError('error in string literal: %s' % remaining) - parts.append(m.groups()[0]) - remaining = remaining[m.end():] - else: - s = ''.join(parts) - raise SyntaxError('unterminated string: %s' % s) - parts.append(q) - result = ''.join(parts) - remaining = remaining[1:].lstrip() # skip past closing quote - return result, remaining - - def marker_expr(remaining): - if remaining and remaining[0] == '(': - result, remaining = marker(remaining[1:].lstrip()) - if remaining[0] != ')': - raise SyntaxError('unterminated parenthesis: %s' % remaining) - remaining = remaining[1:].lstrip() - else: - lhs, remaining = marker_var(remaining) - while remaining: - m = MARKER_OP.match(remaining) - if not m: - break - op = m.groups()[0] - remaining = remaining[m.end():] - rhs, remaining = marker_var(remaining) - lhs = {'op': op, 'lhs': lhs, 'rhs': rhs} - result = lhs - return result, remaining - - def marker_and(remaining): - lhs, remaining = marker_expr(remaining) - while remaining: - m = AND.match(remaining) - if not m: - break - remaining = remaining[m.end():] - rhs, remaining = marker_expr(remaining) - lhs = {'op': 'and', 'lhs': lhs, 'rhs': rhs} - return lhs, remaining - - def marker(remaining): - lhs, remaining = marker_and(remaining) - while remaining: - m = OR.match(remaining) - if not m: - break - remaining = remaining[m.end():] - rhs, remaining = marker_and(remaining) - lhs = {'op': 'or', 'lhs': lhs, 'rhs': rhs} - return lhs, remaining - - return marker(marker_string) - - -def parse_requirement(req): - """ - Parse a requirement passed in as a string. Return a Container - whose attributes contain the various parts of the requirement. - """ - remaining = req.strip() - if not remaining or remaining.startswith('#'): - return None - m = IDENTIFIER.match(remaining) - if not m: - raise SyntaxError('name expected: %s' % remaining) - distname = m.groups()[0] - remaining = remaining[m.end():] - extras = mark_expr = versions = uri = None - if remaining and remaining[0] == '[': - i = remaining.find(']', 1) - if i < 0: - raise SyntaxError('unterminated extra: %s' % remaining) - s = remaining[1:i] - remaining = remaining[i + 1:].lstrip() - extras = [] - while s: - m = IDENTIFIER.match(s) - if not m: - raise SyntaxError('malformed extra: %s' % s) - extras.append(m.groups()[0]) - s = s[m.end():] - if not s: - break - if s[0] != ',': - raise SyntaxError('comma expected in extras: %s' % s) - s = s[1:].lstrip() - if not extras: - extras = None - if remaining: - if remaining[0] == '@': - # it's a URI - remaining = remaining[1:].lstrip() - m = NON_SPACE.match(remaining) - if not m: - raise SyntaxError('invalid URI: %s' % remaining) - uri = m.groups()[0] - t = urlparse(uri) - # there are issues with Python and URL parsing, so this test - # is a bit crude. See bpo-20271, bpo-23505. Python doesn't - # always parse invalid URLs correctly - it should raise - # exceptions for malformed URLs - if not (t.scheme and t.netloc): - raise SyntaxError('Invalid URL: %s' % uri) - remaining = remaining[m.end():].lstrip() - else: - - def get_versions(ver_remaining): - """ - Return a list of operator, version tuples if any are - specified, else None. - """ - m = COMPARE_OP.match(ver_remaining) - versions = None - if m: - versions = [] - while True: - op = m.groups()[0] - ver_remaining = ver_remaining[m.end():] - m = VERSION_IDENTIFIER.match(ver_remaining) - if not m: - raise SyntaxError('invalid version: %s' % ver_remaining) - v = m.groups()[0] - versions.append((op, v)) - ver_remaining = ver_remaining[m.end():] - if not ver_remaining or ver_remaining[0] != ',': - break - ver_remaining = ver_remaining[1:].lstrip() - m = COMPARE_OP.match(ver_remaining) - if not m: - raise SyntaxError('invalid constraint: %s' % ver_remaining) - if not versions: - versions = None - return versions, ver_remaining - - if remaining[0] != '(': - versions, remaining = get_versions(remaining) - else: - i = remaining.find(')', 1) - if i < 0: - raise SyntaxError('unterminated parenthesis: %s' % remaining) - s = remaining[1:i] - remaining = remaining[i + 1:].lstrip() - # As a special diversion from PEP 508, allow a version number - # a.b.c in parentheses as a synonym for ~= a.b.c (because this - # is allowed in earlier PEPs) - if COMPARE_OP.match(s): - versions, _ = get_versions(s) - else: - m = VERSION_IDENTIFIER.match(s) - if not m: - raise SyntaxError('invalid constraint: %s' % s) - v = m.groups()[0] - s = s[m.end():].lstrip() - if s: - raise SyntaxError('invalid constraint: %s' % s) - versions = [('~=', v)] - - if remaining: - if remaining[0] != ';': - raise SyntaxError('invalid requirement: %s' % remaining) - remaining = remaining[1:].lstrip() - - mark_expr, remaining = parse_marker(remaining) - - if remaining and remaining[0] != '#': - raise SyntaxError('unexpected trailing data: %s' % remaining) - - if not versions: - rs = distname - else: - rs = '%s %s' % (distname, ', '.join(['%s %s' % con for con in versions])) - return Container(name=distname, extras=extras, constraints=versions, - marker=mark_expr, url=uri, requirement=rs) - - -def get_resources_dests(resources_root, rules): - """Find destinations for resources files""" - - def get_rel_path(root, path): - # normalizes and returns a lstripped-/-separated path - root = root.replace(os.path.sep, '/') - path = path.replace(os.path.sep, '/') - assert path.startswith(root) - return path[len(root):].lstrip('/') - - destinations = {} - for base, suffix, dest in rules: - prefix = os.path.join(resources_root, base) - for abs_base in iglob(prefix): - abs_glob = os.path.join(abs_base, suffix) - for abs_path in iglob(abs_glob): - resource_file = get_rel_path(resources_root, abs_path) - if dest is None: # remove the entry if it was here - destinations.pop(resource_file, None) - else: - rel_path = get_rel_path(abs_base, abs_path) - rel_dest = dest.replace(os.path.sep, '/').rstrip('/') - destinations[resource_file] = rel_dest + '/' + rel_path - return destinations - - -def in_venv(): - if hasattr(sys, 'real_prefix'): - # virtualenv venvs - result = True - else: - # PEP 405 venvs - result = sys.prefix != getattr(sys, 'base_prefix', sys.prefix) - return result - - -def get_executable(): -# The __PYVENV_LAUNCHER__ dance is apparently no longer needed, as -# changes to the stub launcher mean that sys.executable always points -# to the stub on OS X -# if sys.platform == 'darwin' and ('__PYVENV_LAUNCHER__' -# in os.environ): -# result = os.environ['__PYVENV_LAUNCHER__'] -# else: -# result = sys.executable -# return result - result = os.path.normcase(sys.executable) - if not isinstance(result, text_type): - result = fsdecode(result) - return result - - -def proceed(prompt, allowed_chars, error_prompt=None, default=None): - p = prompt - while True: - s = raw_input(p) - p = prompt - if not s and default: - s = default - if s: - c = s[0].lower() - if c in allowed_chars: - break - if error_prompt: - p = '%c: %s\n%s' % (c, error_prompt, prompt) - return c - - -def extract_by_key(d, keys): - if isinstance(keys, string_types): - keys = keys.split() - result = {} - for key in keys: - if key in d: - result[key] = d[key] - return result - -def read_exports(stream): - if sys.version_info[0] >= 3: - # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) - # Try to load as JSON, falling back on legacy format - data = stream.read() - stream = StringIO(data) - try: - jdata = json.load(stream) - result = jdata['extensions']['python.exports']['exports'] - for group, entries in result.items(): - for k, v in entries.items(): - s = '%s = %s' % (k, v) - entry = get_export_entry(s) - assert entry is not None - entries[k] = entry - return result - except Exception: - stream.seek(0, 0) - - def read_stream(cp, stream): - if hasattr(cp, 'read_file'): - cp.read_file(stream) - else: - cp.readfp(stream) - - cp = configparser.ConfigParser() - try: - read_stream(cp, stream) - except configparser.MissingSectionHeaderError: - stream.close() - data = textwrap.dedent(data) - stream = StringIO(data) - read_stream(cp, stream) - - result = {} - for key in cp.sections(): - result[key] = entries = {} - for name, value in cp.items(key): - s = '%s = %s' % (name, value) - entry = get_export_entry(s) - assert entry is not None - #entry.dist = self - entries[name] = entry - return result - - -def write_exports(exports, stream): - if sys.version_info[0] >= 3: - # needs to be a text stream - stream = codecs.getwriter('utf-8')(stream) - cp = configparser.ConfigParser() - for k, v in exports.items(): - # TODO check k, v for valid values - cp.add_section(k) - for entry in v.values(): - if entry.suffix is None: - s = entry.prefix - else: - s = '%s:%s' % (entry.prefix, entry.suffix) - if entry.flags: - s = '%s [%s]' % (s, ', '.join(entry.flags)) - cp.set(k, entry.name, s) - cp.write(stream) - - -@contextlib.contextmanager -def tempdir(): - td = tempfile.mkdtemp() - try: - yield td - finally: - shutil.rmtree(td) - -@contextlib.contextmanager -def chdir(d): - cwd = os.getcwd() - try: - os.chdir(d) - yield - finally: - os.chdir(cwd) - - -@contextlib.contextmanager -def socket_timeout(seconds=15): - cto = socket.getdefaulttimeout() - try: - socket.setdefaulttimeout(seconds) - yield - finally: - socket.setdefaulttimeout(cto) - - -class cached_property(object): - def __init__(self, func): - self.func = func - #for attr in ('__name__', '__module__', '__doc__'): - # setattr(self, attr, getattr(func, attr, None)) - - def __get__(self, obj, cls=None): - if obj is None: - return self - value = self.func(obj) - object.__setattr__(obj, self.func.__name__, value) - #obj.__dict__[self.func.__name__] = value = self.func(obj) - return value - -def convert_path(pathname): - """Return 'pathname' as a name that will work on the native filesystem. - - The path is split on '/' and put back together again using the current - directory separator. Needed because filenames in the setup script are - always supplied in Unix style, and have to be converted to the local - convention before we can actually use them in the filesystem. Raises - ValueError on non-Unix-ish systems if 'pathname' either starts or - ends with a slash. - """ - if os.sep == '/': - return pathname - if not pathname: - return pathname - if pathname[0] == '/': - raise ValueError("path '%s' cannot be absolute" % pathname) - if pathname[-1] == '/': - raise ValueError("path '%s' cannot end with '/'" % pathname) - - paths = pathname.split('/') - while os.curdir in paths: - paths.remove(os.curdir) - if not paths: - return os.curdir - return os.path.join(*paths) - - -class FileOperator(object): - def __init__(self, dry_run=False): - self.dry_run = dry_run - self.ensured = set() - self._init_record() - - def _init_record(self): - self.record = False - self.files_written = set() - self.dirs_created = set() - - def record_as_written(self, path): - if self.record: - self.files_written.add(path) - - def newer(self, source, target): - """Tell if the target is newer than the source. - - Returns true if 'source' exists and is more recently modified than - 'target', or if 'source' exists and 'target' doesn't. - - Returns false if both exist and 'target' is the same age or younger - than 'source'. Raise PackagingFileError if 'source' does not exist. - - Note that this test is not very accurate: files created in the same - second will have the same "age". - """ - if not os.path.exists(source): - raise DistlibException("file '%r' does not exist" % - os.path.abspath(source)) - if not os.path.exists(target): - return True - - return os.stat(source).st_mtime > os.stat(target).st_mtime - - def copy_file(self, infile, outfile, check=True): - """Copy a file respecting dry-run and force flags. - """ - self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying %s to %s', infile, outfile) - if not self.dry_run: - msg = None - if check: - if os.path.islink(outfile): - msg = '%s is a symlink' % outfile - elif os.path.exists(outfile) and not os.path.isfile(outfile): - msg = '%s is a non-regular file' % outfile - if msg: - raise ValueError(msg + ' which would be overwritten') - shutil.copyfile(infile, outfile) - self.record_as_written(outfile) - - def copy_stream(self, instream, outfile, encoding=None): - assert not os.path.isdir(outfile) - self.ensure_dir(os.path.dirname(outfile)) - logger.info('Copying stream %s to %s', instream, outfile) - if not self.dry_run: - if encoding is None: - outstream = open(outfile, 'wb') - else: - outstream = codecs.open(outfile, 'w', encoding=encoding) - try: - shutil.copyfileobj(instream, outstream) - finally: - outstream.close() - self.record_as_written(outfile) - - def write_binary_file(self, path, data): - self.ensure_dir(os.path.dirname(path)) - if not self.dry_run: - if os.path.exists(path): - os.remove(path) - with open(path, 'wb') as f: - f.write(data) - self.record_as_written(path) - - def write_text_file(self, path, data, encoding): - self.write_binary_file(path, data.encode(encoding)) - - def set_mode(self, bits, mask, files): - if os.name == 'posix' or (os.name == 'java' and os._name == 'posix'): - # Set the executable bits (owner, group, and world) on - # all the files specified. - for f in files: - if self.dry_run: - logger.info("changing mode of %s", f) - else: - mode = (os.stat(f).st_mode | bits) & mask - logger.info("changing mode of %s to %o", f, mode) - os.chmod(f, mode) - - set_executable_mode = lambda s, f: s.set_mode(0o555, 0o7777, f) - - def ensure_dir(self, path): - path = os.path.abspath(path) - if path not in self.ensured and not os.path.exists(path): - self.ensured.add(path) - d, f = os.path.split(path) - self.ensure_dir(d) - logger.info('Creating %s' % path) - if not self.dry_run: - os.mkdir(path) - if self.record: - self.dirs_created.add(path) - - def byte_compile(self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False): - dpath = cache_from_source(path, not optimize) - logger.info('Byte-compiling %s to %s', path, dpath) - if not self.dry_run: - if force or self.newer(path, dpath): - if not prefix: - diagpath = None - else: - assert path.startswith(prefix) - diagpath = path[len(prefix):] - compile_kwargs = {} - if hashed_invalidation and hasattr(py_compile, 'PycInvalidationMode'): - compile_kwargs['invalidation_mode'] = py_compile.PycInvalidationMode.CHECKED_HASH - py_compile.compile(path, dpath, diagpath, True, **compile_kwargs) # raise error - self.record_as_written(dpath) - return dpath - - def ensure_removed(self, path): - if os.path.exists(path): - if os.path.isdir(path) and not os.path.islink(path): - logger.debug('Removing directory tree at %s', path) - if not self.dry_run: - shutil.rmtree(path) - if self.record: - if path in self.dirs_created: - self.dirs_created.remove(path) - else: - if os.path.islink(path): - s = 'link' - else: - s = 'file' - logger.debug('Removing %s %s', s, path) - if not self.dry_run: - os.remove(path) - if self.record: - if path in self.files_written: - self.files_written.remove(path) - - def is_writable(self, path): - result = False - while not result: - if os.path.exists(path): - result = os.access(path, os.W_OK) - break - parent = os.path.dirname(path) - if parent == path: - break - path = parent - return result - - def commit(self): - """ - Commit recorded changes, turn off recording, return - changes. - """ - assert self.record - result = self.files_written, self.dirs_created - self._init_record() - return result - - def rollback(self): - if not self.dry_run: - for f in list(self.files_written): - if os.path.exists(f): - os.remove(f) - # dirs should all be empty now, except perhaps for - # __pycache__ subdirs - # reverse so that subdirs appear before their parents - dirs = sorted(self.dirs_created, reverse=True) - for d in dirs: - flist = os.listdir(d) - if flist: - assert flist == ['__pycache__'] - sd = os.path.join(d, flist[0]) - os.rmdir(sd) - os.rmdir(d) # should fail if non-empty - self._init_record() - -def resolve(module_name, dotted_path): - if module_name in sys.modules: - mod = sys.modules[module_name] - else: - mod = __import__(module_name) - if dotted_path is None: - result = mod - else: - parts = dotted_path.split('.') - result = getattr(mod, parts.pop(0)) - for p in parts: - result = getattr(result, p) - return result - - -class ExportEntry(object): - def __init__(self, name, prefix, suffix, flags): - self.name = name - self.prefix = prefix - self.suffix = suffix - self.flags = flags - - @cached_property - def value(self): - return resolve(self.prefix, self.suffix) - - def __repr__(self): # pragma: no cover - return '<ExportEntry %s = %s:%s %s>' % (self.name, self.prefix, - self.suffix, self.flags) - - def __eq__(self, other): - if not isinstance(other, ExportEntry): - result = False - else: - result = (self.name == other.name and - self.prefix == other.prefix and - self.suffix == other.suffix and - self.flags == other.flags) - return result - - __hash__ = object.__hash__ - - -ENTRY_RE = re.compile(r'''(?P<name>(\w|[-.+])+) - \s*=\s*(?P<callable>(\w+)([:\.]\w+)*) - \s*(\[\s*(?P<flags>\w+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])? - ''', re.VERBOSE) - -def get_export_entry(specification): - m = ENTRY_RE.search(specification) - if not m: - result = None - if '[' in specification or ']' in specification: - raise DistlibException("Invalid specification " - "'%s'" % specification) - else: - d = m.groupdict() - name = d['name'] - path = d['callable'] - colons = path.count(':') - if colons == 0: - prefix, suffix = path, None - else: - if colons != 1: - raise DistlibException("Invalid specification " - "'%s'" % specification) - prefix, suffix = path.split(':') - flags = d['flags'] - if flags is None: - if '[' in specification or ']' in specification: - raise DistlibException("Invalid specification " - "'%s'" % specification) - flags = [] - else: - flags = [f.strip() for f in flags.split(',')] - result = ExportEntry(name, prefix, suffix, flags) - return result - - -def get_cache_base(suffix=None): - """ - Return the default base location for distlib caches. If the directory does - not exist, it is created. Use the suffix provided for the base directory, - and default to '.distlib' if it isn't provided. - - On Windows, if LOCALAPPDATA is defined in the environment, then it is - assumed to be a directory, and will be the parent directory of the result. - On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home - directory - using os.expanduser('~') - will be the parent directory of - the result. - - The result is just the directory '.distlib' in the parent directory as - determined above, or with the name specified with ``suffix``. - """ - if suffix is None: - suffix = '.distlib' - if os.name == 'nt' and 'LOCALAPPDATA' in os.environ: - result = os.path.expandvars('$localappdata') - else: - # Assume posix, or old Windows - result = os.path.expanduser('~') - # we use 'isdir' instead of 'exists', because we want to - # fail if there's a file with that name - if os.path.isdir(result): - usable = os.access(result, os.W_OK) - if not usable: - logger.warning('Directory exists but is not writable: %s', result) - else: - try: - os.makedirs(result) - usable = True - except OSError: - logger.warning('Unable to create %s', result, exc_info=True) - usable = False - if not usable: - result = tempfile.mkdtemp() - logger.warning('Default location unusable, using %s', result) - return os.path.join(result, suffix) - - -def path_to_cache_dir(path): - """ - Convert an absolute path to a directory name for use in a cache. - - The algorithm used is: - - #. On Windows, any ``':'`` in the drive is replaced with ``'---'``. - #. Any occurrence of ``os.sep`` is replaced with ``'--'``. - #. ``'.cache'`` is appended. - """ - d, p = os.path.splitdrive(os.path.abspath(path)) - if d: - d = d.replace(':', '---') - p = p.replace(os.sep, '--') - return d + p + '.cache' - - -def ensure_slash(s): - if not s.endswith('/'): - return s + '/' - return s - - -def parse_credentials(netloc): - username = password = None - if '@' in netloc: - prefix, netloc = netloc.split('@', 1) - if ':' not in prefix: - username = prefix - else: - username, password = prefix.split(':', 1) - return username, password, netloc - - -def get_process_umask(): - result = os.umask(0o22) - os.umask(result) - return result - -def is_string_sequence(seq): - result = True - i = None - for i, s in enumerate(seq): - if not isinstance(s, string_types): - result = False - break - assert i is not None - return result - -PROJECT_NAME_AND_VERSION = re.compile('([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-' - '([a-z0-9_.+-]+)', re.I) -PYTHON_VERSION = re.compile(r'-py(\d\.?\d?)') - - -def split_filename(filename, project_name=None): - """ - Extract name, version, python version from a filename (no extension) - - Return name, version, pyver or None - """ - result = None - pyver = None - filename = unquote(filename).replace(' ', '-') - m = PYTHON_VERSION.search(filename) - if m: - pyver = m.group(1) - filename = filename[:m.start()] - if project_name and len(filename) > len(project_name) + 1: - m = re.match(re.escape(project_name) + r'\b', filename) - if m: - n = m.end() - result = filename[:n], filename[n + 1:], pyver - if result is None: - m = PROJECT_NAME_AND_VERSION.match(filename) - if m: - result = m.group(1), m.group(3), pyver - return result - -# Allow spaces in name because of legacy dists like "Twisted Core" -NAME_VERSION_RE = re.compile(r'(?P<name>[\w .-]+)\s*' - r'\(\s*(?P<ver>[^\s)]+)\)$') - -def parse_name_and_version(p): - """ - A utility method used to get name and version from a string. - - From e.g. a Provides-Dist value. - - :param p: A value in a form 'foo (1.0)' - :return: The name and version as a tuple. - """ - m = NAME_VERSION_RE.match(p) - if not m: - raise DistlibException('Ill-formed name/version string: \'%s\'' % p) - d = m.groupdict() - return d['name'].strip().lower(), d['ver'] - -def get_extras(requested, available): - result = set() - requested = set(requested or []) - available = set(available or []) - if '*' in requested: - requested.remove('*') - result |= available - for r in requested: - if r == '-': - result.add(r) - elif r.startswith('-'): - unwanted = r[1:] - if unwanted not in available: - logger.warning('undeclared extra: %s' % unwanted) - if unwanted in result: - result.remove(unwanted) - else: - if r not in available: - logger.warning('undeclared extra: %s' % r) - result.add(r) - return result -# -# Extended metadata functionality -# - -def _get_external_data(url): - result = {} - try: - # urlopen might fail if it runs into redirections, - # because of Python issue #13696. Fixed in locators - # using a custom redirect handler. - resp = urlopen(url) - headers = resp.info() - ct = headers.get('Content-Type') - if not ct.startswith('application/json'): - logger.debug('Unexpected response for JSON request: %s', ct) - else: - reader = codecs.getreader('utf-8')(resp) - #data = reader.read().decode('utf-8') - #result = json.loads(data) - result = json.load(reader) - except Exception as e: - logger.exception('Failed to get external data for %s: %s', url, e) - return result - -_external_data_base_url = 'https://www.red-dove.com/pypi/projects/' - -def get_project_data(name): - url = '%s/%s/project.json' % (name[0].upper(), name) - url = urljoin(_external_data_base_url, url) - result = _get_external_data(url) - return result - -def get_package_data(name, version): - url = '%s/%s/package-%s.json' % (name[0].upper(), name, version) - url = urljoin(_external_data_base_url, url) - return _get_external_data(url) - - -class Cache(object): - """ - A class implementing a cache for resources that need to live in the file system - e.g. shared libraries. This class was moved from resources to here because it - could be used by other modules, e.g. the wheel module. - """ - - def __init__(self, base): - """ - Initialise an instance. - - :param base: The base directory where the cache should be located. - """ - # we use 'isdir' instead of 'exists', because we want to - # fail if there's a file with that name - if not os.path.isdir(base): # pragma: no cover - os.makedirs(base) - if (os.stat(base).st_mode & 0o77) != 0: - logger.warning('Directory \'%s\' is not private', base) - self.base = os.path.abspath(os.path.normpath(base)) - - def prefix_to_dir(self, prefix): - """ - Converts a resource prefix to a directory name in the cache. - """ - return path_to_cache_dir(prefix) - - def clear(self): - """ - Clear the cache. - """ - not_removed = [] - for fn in os.listdir(self.base): - fn = os.path.join(self.base, fn) - try: - if os.path.islink(fn) or os.path.isfile(fn): - os.remove(fn) - elif os.path.isdir(fn): - shutil.rmtree(fn) - except Exception: - not_removed.append(fn) - return not_removed - - -class EventMixin(object): - """ - A very simple publish/subscribe system. - """ - def __init__(self): - self._subscribers = {} - - def add(self, event, subscriber, append=True): - """ - Add a subscriber for an event. - - :param event: The name of an event. - :param subscriber: The subscriber to be added (and called when the - event is published). - :param append: Whether to append or prepend the subscriber to an - existing subscriber list for the event. - """ - subs = self._subscribers - if event not in subs: - subs[event] = deque([subscriber]) - else: - sq = subs[event] - if append: - sq.append(subscriber) - else: - sq.appendleft(subscriber) - - def remove(self, event, subscriber): - """ - Remove a subscriber for an event. - - :param event: The name of an event. - :param subscriber: The subscriber to be removed. - """ - subs = self._subscribers - if event not in subs: - raise ValueError('No subscribers: %r' % event) - subs[event].remove(subscriber) - - def get_subscribers(self, event): - """ - Return an iterator for the subscribers for an event. - :param event: The event to return subscribers for. - """ - return iter(self._subscribers.get(event, ())) - - def publish(self, event, *args, **kwargs): - """ - Publish a event and return a list of values returned by its - subscribers. - - :param event: The event to publish. - :param args: The positional arguments to pass to the event's - subscribers. - :param kwargs: The keyword arguments to pass to the event's - subscribers. - """ - result = [] - for subscriber in self.get_subscribers(event): - try: - value = subscriber(event, *args, **kwargs) - except Exception: - logger.exception('Exception during event publication') - value = None - result.append(value) - logger.debug('publish %s: args = %s, kwargs = %s, result = %s', - event, args, kwargs, result) - return result - -# -# Simple sequencing -# -class Sequencer(object): - def __init__(self): - self._preds = {} - self._succs = {} - self._nodes = set() # nodes with no preds/succs - - def add_node(self, node): - self._nodes.add(node) - - def remove_node(self, node, edges=False): - if node in self._nodes: - self._nodes.remove(node) - if edges: - for p in set(self._preds.get(node, ())): - self.remove(p, node) - for s in set(self._succs.get(node, ())): - self.remove(node, s) - # Remove empties - for k, v in list(self._preds.items()): - if not v: - del self._preds[k] - for k, v in list(self._succs.items()): - if not v: - del self._succs[k] - - def add(self, pred, succ): - assert pred != succ - self._preds.setdefault(succ, set()).add(pred) - self._succs.setdefault(pred, set()).add(succ) - - def remove(self, pred, succ): - assert pred != succ - try: - preds = self._preds[succ] - succs = self._succs[pred] - except KeyError: # pragma: no cover - raise ValueError('%r not a successor of anything' % succ) - try: - preds.remove(pred) - succs.remove(succ) - except KeyError: # pragma: no cover - raise ValueError('%r not a successor of %r' % (succ, pred)) - - def is_step(self, step): - return (step in self._preds or step in self._succs or - step in self._nodes) - - def get_steps(self, final): - if not self.is_step(final): - raise ValueError('Unknown: %r' % final) - result = [] - todo = [] - seen = set() - todo.append(final) - while todo: - step = todo.pop(0) - if step in seen: - # if a step was already seen, - # move it to the end (so it will appear earlier - # when reversed on return) ... but not for the - # final step, as that would be confusing for - # users - if step != final: - result.remove(step) - result.append(step) - else: - seen.add(step) - result.append(step) - preds = self._preds.get(step, ()) - todo.extend(preds) - return reversed(result) - - @property - def strong_connections(self): - #http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm - index_counter = [0] - stack = [] - lowlinks = {} - index = {} - result = [] - - graph = self._succs - - def strongconnect(node): - # set the depth index for this node to the smallest unused index - index[node] = index_counter[0] - lowlinks[node] = index_counter[0] - index_counter[0] += 1 - stack.append(node) - - # Consider successors - try: - successors = graph[node] - except Exception: - successors = [] - for successor in successors: - if successor not in lowlinks: - # Successor has not yet been visited - strongconnect(successor) - lowlinks[node] = min(lowlinks[node],lowlinks[successor]) - elif successor in stack: - # the successor is in the stack and hence in the current - # strongly connected component (SCC) - lowlinks[node] = min(lowlinks[node],index[successor]) - - # If `node` is a root node, pop the stack and generate an SCC - if lowlinks[node] == index[node]: - connected_component = [] - - while True: - successor = stack.pop() - connected_component.append(successor) - if successor == node: break - component = tuple(connected_component) - # storing the result - result.append(component) - - for node in graph: - if node not in lowlinks: - strongconnect(node) - - return result - - @property - def dot(self): - result = ['digraph G {'] - for succ in self._preds: - preds = self._preds[succ] - for pred in preds: - result.append(' %s -> %s;' % (pred, succ)) - for node in self._nodes: - result.append(' %s;' % node) - result.append('}') - return '\n'.join(result) - -# -# Unarchiving functionality for zip, tar, tgz, tbz, whl -# - -ARCHIVE_EXTENSIONS = ('.tar.gz', '.tar.bz2', '.tar', '.zip', - '.tgz', '.tbz', '.whl') - -def unarchive(archive_filename, dest_dir, format=None, check=True): - - def check_path(path): - if not isinstance(path, text_type): - path = path.decode('utf-8') - p = os.path.abspath(os.path.join(dest_dir, path)) - if not p.startswith(dest_dir) or p[plen] != os.sep: - raise ValueError('path outside destination: %r' % p) - - dest_dir = os.path.abspath(dest_dir) - plen = len(dest_dir) - archive = None - if format is None: - if archive_filename.endswith(('.zip', '.whl')): - format = 'zip' - elif archive_filename.endswith(('.tar.gz', '.tgz')): - format = 'tgz' - mode = 'r:gz' - elif archive_filename.endswith(('.tar.bz2', '.tbz')): - format = 'tbz' - mode = 'r:bz2' - elif archive_filename.endswith('.tar'): - format = 'tar' - mode = 'r' - else: # pragma: no cover - raise ValueError('Unknown format for %r' % archive_filename) - try: - if format == 'zip': - archive = ZipFile(archive_filename, 'r') - if check: - names = archive.namelist() - for name in names: - check_path(name) - else: - archive = tarfile.open(archive_filename, mode) - if check: - names = archive.getnames() - for name in names: - check_path(name) - if format != 'zip' and sys.version_info[0] < 3: - # See Python issue 17153. If the dest path contains Unicode, - # tarfile extraction fails on Python 2.x if a member path name - # contains non-ASCII characters - it leads to an implicit - # bytes -> unicode conversion using ASCII to decode. - for tarinfo in archive.getmembers(): - if not isinstance(tarinfo.name, text_type): - tarinfo.name = tarinfo.name.decode('utf-8') - archive.extractall(dest_dir) - - finally: - if archive: - archive.close() - - -def zip_dir(directory): - """zip a directory tree into a BytesIO object""" - result = io.BytesIO() - dlen = len(directory) - with ZipFile(result, "w") as zf: - for root, dirs, files in os.walk(directory): - for name in files: - full = os.path.join(root, name) - rel = root[dlen:] - dest = os.path.join(rel, name) - zf.write(full, dest) - return result - -# -# Simple progress bar -# - -UNITS = ('', 'K', 'M', 'G','T','P') - - -class Progress(object): - unknown = 'UNKNOWN' - - def __init__(self, minval=0, maxval=100): - assert maxval is None or maxval >= minval - self.min = self.cur = minval - self.max = maxval - self.started = None - self.elapsed = 0 - self.done = False - - def update(self, curval): - assert self.min <= curval - assert self.max is None or curval <= self.max - self.cur = curval - now = time.time() - if self.started is None: - self.started = now - else: - self.elapsed = now - self.started - - def increment(self, incr): - assert incr >= 0 - self.update(self.cur + incr) - - def start(self): - self.update(self.min) - return self - - def stop(self): - if self.max is not None: - self.update(self.max) - self.done = True - - @property - def maximum(self): - return self.unknown if self.max is None else self.max - - @property - def percentage(self): - if self.done: - result = '100 %' - elif self.max is None: - result = ' ?? %' - else: - v = 100.0 * (self.cur - self.min) / (self.max - self.min) - result = '%3d %%' % v - return result - - def format_duration(self, duration): - if (duration <= 0) and self.max is None or self.cur == self.min: - result = '??:??:??' - #elif duration < 1: - # result = '--:--:--' - else: - result = time.strftime('%H:%M:%S', time.gmtime(duration)) - return result - - @property - def ETA(self): - if self.done: - prefix = 'Done' - t = self.elapsed - #import pdb; pdb.set_trace() - else: - prefix = 'ETA ' - if self.max is None: - t = -1 - elif self.elapsed == 0 or (self.cur == self.min): - t = 0 - else: - #import pdb; pdb.set_trace() - t = float(self.max - self.min) - t /= self.cur - self.min - t = (t - 1) * self.elapsed - return '%s: %s' % (prefix, self.format_duration(t)) - - @property - def speed(self): - if self.elapsed == 0: - result = 0.0 - else: - result = (self.cur - self.min) / self.elapsed - for unit in UNITS: - if result < 1000: - break - result /= 1000.0 - return '%d %sB/s' % (result, unit) - -# -# Glob functionality -# - -RICH_GLOB = re.compile(r'\{([^}]*)\}') -_CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]') -_CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$') - - -def iglob(path_glob): - """Extended globbing function that supports ** and {opt1,opt2,opt3}.""" - if _CHECK_RECURSIVE_GLOB.search(path_glob): - msg = """invalid glob %r: recursive glob "**" must be used alone""" - raise ValueError(msg % path_glob) - if _CHECK_MISMATCH_SET.search(path_glob): - msg = """invalid glob %r: mismatching set marker '{' or '}'""" - raise ValueError(msg % path_glob) - return _iglob(path_glob) - - -def _iglob(path_glob): - rich_path_glob = RICH_GLOB.split(path_glob, 1) - if len(rich_path_glob) > 1: - assert len(rich_path_glob) == 3, rich_path_glob - prefix, set, suffix = rich_path_glob - for item in set.split(','): - for path in _iglob(''.join((prefix, item, suffix))): - yield path - else: - if '**' not in path_glob: - for item in std_iglob(path_glob): - yield item - else: - prefix, radical = path_glob.split('**', 1) - if prefix == '': - prefix = '.' - if radical == '': - radical = '*' - else: - # we support both - radical = radical.lstrip('/') - radical = radical.lstrip('\\') - for path, dir, files in os.walk(prefix): - path = os.path.normpath(path) - for fn in _iglob(os.path.join(path, radical)): - yield fn - -if ssl: - from .compat import (HTTPSHandler as BaseHTTPSHandler, match_hostname, - CertificateError) - - -# -# HTTPSConnection which verifies certificates/matches domains -# - - class HTTPSConnection(httplib.HTTPSConnection): - ca_certs = None # set this to the path to the certs file (.pem) - check_domain = True # only used if ca_certs is not None - - # noinspection PyPropertyAccess - def connect(self): - sock = socket.create_connection((self.host, self.port), self.timeout) - if getattr(self, '_tunnel_host', False): - self.sock = sock - self._tunnel() - - if not hasattr(ssl, 'SSLContext'): - # For 2.x - if self.ca_certs: - cert_reqs = ssl.CERT_REQUIRED - else: - cert_reqs = ssl.CERT_NONE - self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, - cert_reqs=cert_reqs, - ssl_version=ssl.PROTOCOL_SSLv23, - ca_certs=self.ca_certs) - else: # pragma: no cover - context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) - context.options |= ssl.OP_NO_SSLv2 - if self.cert_file: - context.load_cert_chain(self.cert_file, self.key_file) - kwargs = {} - if self.ca_certs: - context.verify_mode = ssl.CERT_REQUIRED - context.load_verify_locations(cafile=self.ca_certs) - if getattr(ssl, 'HAS_SNI', False): - kwargs['server_hostname'] = self.host - self.sock = context.wrap_socket(sock, **kwargs) - if self.ca_certs and self.check_domain: - try: - match_hostname(self.sock.getpeercert(), self.host) - logger.debug('Host verified: %s', self.host) - except CertificateError: # pragma: no cover - self.sock.shutdown(socket.SHUT_RDWR) - self.sock.close() - raise - - class HTTPSHandler(BaseHTTPSHandler): - def __init__(self, ca_certs, check_domain=True): - BaseHTTPSHandler.__init__(self) - self.ca_certs = ca_certs - self.check_domain = check_domain - - def _conn_maker(self, *args, **kwargs): - """ - This is called to create a connection instance. Normally you'd - pass a connection class to do_open, but it doesn't actually check for - a class, and just expects a callable. As long as we behave just as a - constructor would have, we should be OK. If it ever changes so that - we *must* pass a class, we'll create an UnsafeHTTPSConnection class - which just sets check_domain to False in the class definition, and - choose which one to pass to do_open. - """ - result = HTTPSConnection(*args, **kwargs) - if self.ca_certs: - result.ca_certs = self.ca_certs - result.check_domain = self.check_domain - return result - - def https_open(self, req): - try: - return self.do_open(self._conn_maker, req) - except URLError as e: - if 'certificate verify failed' in str(e.reason): - raise CertificateError('Unable to verify server certificate ' - 'for %s' % req.host) - else: - raise - - # - # To prevent against mixing HTTP traffic with HTTPS (examples: A Man-In-The- - # Middle proxy using HTTP listens on port 443, or an index mistakenly serves - # HTML containing a http://xyz link when it should be https://xyz), - # you can use the following handler class, which does not allow HTTP traffic. - # - # It works by inheriting from HTTPHandler - so build_opener won't add a - # handler for HTTP itself. - # - class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): - def http_open(self, req): - raise URLError('Unexpected HTTP request on what should be a secure ' - 'connection: %s' % req) - -# -# XML-RPC with timeouts -# - -_ver_info = sys.version_info[:2] - -if _ver_info == (2, 6): - class HTTP(httplib.HTTP): - def __init__(self, host='', port=None, **kwargs): - if port == 0: # 0 means use port 0, not the default port - port = None - self._setup(self._connection_class(host, port, **kwargs)) - - - if ssl: - class HTTPS(httplib.HTTPS): - def __init__(self, host='', port=None, **kwargs): - if port == 0: # 0 means use port 0, not the default port - port = None - self._setup(self._connection_class(host, port, **kwargs)) - - -class Transport(xmlrpclib.Transport): - def __init__(self, timeout, use_datetime=0): - self.timeout = timeout - xmlrpclib.Transport.__init__(self, use_datetime) - - def make_connection(self, host): - h, eh, x509 = self.get_host_info(host) - if _ver_info == (2, 6): - result = HTTP(h, timeout=self.timeout) - else: - if not self._connection or host != self._connection[0]: - self._extra_headers = eh - self._connection = host, httplib.HTTPConnection(h) - result = self._connection[1] - return result - -if ssl: - class SafeTransport(xmlrpclib.SafeTransport): - def __init__(self, timeout, use_datetime=0): - self.timeout = timeout - xmlrpclib.SafeTransport.__init__(self, use_datetime) - - def make_connection(self, host): - h, eh, kwargs = self.get_host_info(host) - if not kwargs: - kwargs = {} - kwargs['timeout'] = self.timeout - if _ver_info == (2, 6): - result = HTTPS(host, None, **kwargs) - else: - if not self._connection or host != self._connection[0]: - self._extra_headers = eh - self._connection = host, httplib.HTTPSConnection(h, None, - **kwargs) - result = self._connection[1] - return result - - -class ServerProxy(xmlrpclib.ServerProxy): - def __init__(self, uri, **kwargs): - self.timeout = timeout = kwargs.pop('timeout', None) - # The above classes only come into play if a timeout - # is specified - if timeout is not None: - scheme, _ = splittype(uri) - use_datetime = kwargs.get('use_datetime', 0) - if scheme == 'https': - tcls = SafeTransport - else: - tcls = Transport - kwargs['transport'] = t = tcls(timeout, use_datetime=use_datetime) - self.transport = t - xmlrpclib.ServerProxy.__init__(self, uri, **kwargs) - -# -# CSV functionality. This is provided because on 2.x, the csv module can't -# handle Unicode. However, we need to deal with Unicode in e.g. RECORD files. -# - -def _csv_open(fn, mode, **kwargs): - if sys.version_info[0] < 3: - mode += 'b' - else: - kwargs['newline'] = '' - # Python 3 determines encoding from locale. Force 'utf-8' - # file encoding to match other forced utf-8 encoding - kwargs['encoding'] = 'utf-8' - return open(fn, mode, **kwargs) - - -class CSVBase(object): - defaults = { - 'delimiter': str(','), # The strs are used because we need native - 'quotechar': str('"'), # str in the csv API (2.x won't take - 'lineterminator': str('\n') # Unicode) - } - - def __enter__(self): - return self - - def __exit__(self, *exc_info): - self.stream.close() - - -class CSVReader(CSVBase): - def __init__(self, **kwargs): - if 'stream' in kwargs: - stream = kwargs['stream'] - if sys.version_info[0] >= 3: - # needs to be a text stream - stream = codecs.getreader('utf-8')(stream) - self.stream = stream - else: - self.stream = _csv_open(kwargs['path'], 'r') - self.reader = csv.reader(self.stream, **self.defaults) - - def __iter__(self): - return self - - def next(self): - result = next(self.reader) - if sys.version_info[0] < 3: - for i, item in enumerate(result): - if not isinstance(item, text_type): - result[i] = item.decode('utf-8') - return result - - __next__ = next - -class CSVWriter(CSVBase): - def __init__(self, fn, **kwargs): - self.stream = _csv_open(fn, 'w') - self.writer = csv.writer(self.stream, **self.defaults) - - def writerow(self, row): - if sys.version_info[0] < 3: - r = [] - for item in row: - if isinstance(item, text_type): - item = item.encode('utf-8') - r.append(item) - row = r - self.writer.writerow(row) - -# -# Configurator functionality -# - -class Configurator(BaseConfigurator): - - value_converters = dict(BaseConfigurator.value_converters) - value_converters['inc'] = 'inc_convert' - - def __init__(self, config, base=None): - super(Configurator, self).__init__(config) - self.base = base or os.getcwd() - - def configure_custom(self, config): - def convert(o): - if isinstance(o, (list, tuple)): - result = type(o)([convert(i) for i in o]) - elif isinstance(o, dict): - if '()' in o: - result = self.configure_custom(o) - else: - result = {} - for k in o: - result[k] = convert(o[k]) - else: - result = self.convert(o) - return result - - c = config.pop('()') - if not callable(c): - c = self.resolve(c) - props = config.pop('.', None) - # Check for valid identifiers - args = config.pop('[]', ()) - if args: - args = tuple([convert(o) for o in args]) - items = [(k, convert(config[k])) for k in config if valid_ident(k)] - kwargs = dict(items) - result = c(*args, **kwargs) - if props: - for n, v in props.items(): - setattr(result, n, convert(v)) - return result - - def __getitem__(self, key): - result = self.config[key] - if isinstance(result, dict) and '()' in result: - self.config[key] = result = self.configure_custom(result) - return result - - def inc_convert(self, value): - """Default converter for the inc:// protocol.""" - if not os.path.isabs(value): - value = os.path.join(self.base, value) - with codecs.open(value, 'r', encoding='utf-8') as f: - result = json.load(f) - return result - - -class SubprocessMixin(object): - """ - Mixin for running subprocesses and capturing their output - """ - def __init__(self, verbose=False, progress=None): - self.verbose = verbose - self.progress = progress - - def reader(self, stream, context): - """ - Read lines from a subprocess' output stream and either pass to a progress - callable (if specified) or write progress information to sys.stderr. - """ - progress = self.progress - verbose = self.verbose - while True: - s = stream.readline() - if not s: - break - if progress is not None: - progress(s, context) - else: - if not verbose: - sys.stderr.write('.') - else: - sys.stderr.write(s.decode('utf-8')) - sys.stderr.flush() - stream.close() - - def run_command(self, cmd, **kwargs): - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.PIPE, **kwargs) - t1 = threading.Thread(target=self.reader, args=(p.stdout, 'stdout')) - t1.start() - t2 = threading.Thread(target=self.reader, args=(p.stderr, 'stderr')) - t2.start() - p.wait() - t1.join() - t2.join() - if self.progress is not None: - self.progress('done.', 'main') - elif self.verbose: - sys.stderr.write('done.\n') - return p - - -def normalize_name(name): - """Normalize a python package name a la PEP 503""" - # https://www.python.org/dev/peps/pep-0503/#normalized-names - return re.sub('[-_.]+', '-', name).lower() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/version.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/version.py deleted file mode 100644 index 3eebe18..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/version.py +++ /dev/null @@ -1,736 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2012-2017 The Python Software Foundation. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -""" -Implementation of a flexible versioning scheme providing support for PEP-440, -setuptools-compatible and semantic versioning. -""" - -import logging -import re - -from .compat import string_types -from .util import parse_requirement - -__all__ = ['NormalizedVersion', 'NormalizedMatcher', - 'LegacyVersion', 'LegacyMatcher', - 'SemanticVersion', 'SemanticMatcher', - 'UnsupportedVersionError', 'get_scheme'] - -logger = logging.getLogger(__name__) - - -class UnsupportedVersionError(ValueError): - """This is an unsupported version.""" - pass - - -class Version(object): - def __init__(self, s): - self._string = s = s.strip() - self._parts = parts = self.parse(s) - assert isinstance(parts, tuple) - assert len(parts) > 0 - - def parse(self, s): - raise NotImplementedError('please implement in a subclass') - - def _check_compatible(self, other): - if type(self) != type(other): - raise TypeError('cannot compare %r and %r' % (self, other)) - - def __eq__(self, other): - self._check_compatible(other) - return self._parts == other._parts - - def __ne__(self, other): - return not self.__eq__(other) - - def __lt__(self, other): - self._check_compatible(other) - return self._parts < other._parts - - def __gt__(self, other): - return not (self.__lt__(other) or self.__eq__(other)) - - def __le__(self, other): - return self.__lt__(other) or self.__eq__(other) - - def __ge__(self, other): - return self.__gt__(other) or self.__eq__(other) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - def __hash__(self): - return hash(self._parts) - - def __repr__(self): - return "%s('%s')" % (self.__class__.__name__, self._string) - - def __str__(self): - return self._string - - @property - def is_prerelease(self): - raise NotImplementedError('Please implement in subclasses.') - - -class Matcher(object): - version_class = None - - # value is either a callable or the name of a method - _operators = { - '<': lambda v, c, p: v < c, - '>': lambda v, c, p: v > c, - '<=': lambda v, c, p: v == c or v < c, - '>=': lambda v, c, p: v == c or v > c, - '==': lambda v, c, p: v == c, - '===': lambda v, c, p: v == c, - # by default, compatible => >=. - '~=': lambda v, c, p: v == c or v > c, - '!=': lambda v, c, p: v != c, - } - - # this is a method only to support alternative implementations - # via overriding - def parse_requirement(self, s): - return parse_requirement(s) - - def __init__(self, s): - if self.version_class is None: - raise ValueError('Please specify a version class') - self._string = s = s.strip() - r = self.parse_requirement(s) - if not r: - raise ValueError('Not valid: %r' % s) - self.name = r.name - self.key = self.name.lower() # for case-insensitive comparisons - clist = [] - if r.constraints: - # import pdb; pdb.set_trace() - for op, s in r.constraints: - if s.endswith('.*'): - if op not in ('==', '!='): - raise ValueError('\'.*\' not allowed for ' - '%r constraints' % op) - # Could be a partial version (e.g. for '2.*') which - # won't parse as a version, so keep it as a string - vn, prefix = s[:-2], True - # Just to check that vn is a valid version - self.version_class(vn) - else: - # Should parse as a version, so we can create an - # instance for the comparison - vn, prefix = self.version_class(s), False - clist.append((op, vn, prefix)) - self._parts = tuple(clist) - - def match(self, version): - """ - Check if the provided version matches the constraints. - - :param version: The version to match against this instance. - :type version: String or :class:`Version` instance. - """ - if isinstance(version, string_types): - version = self.version_class(version) - for operator, constraint, prefix in self._parts: - f = self._operators.get(operator) - if isinstance(f, string_types): - f = getattr(self, f) - if not f: - msg = ('%r not implemented ' - 'for %s' % (operator, self.__class__.__name__)) - raise NotImplementedError(msg) - if not f(version, constraint, prefix): - return False - return True - - @property - def exact_version(self): - result = None - if len(self._parts) == 1 and self._parts[0][0] in ('==', '==='): - result = self._parts[0][1] - return result - - def _check_compatible(self, other): - if type(self) != type(other) or self.name != other.name: - raise TypeError('cannot compare %s and %s' % (self, other)) - - def __eq__(self, other): - self._check_compatible(other) - return self.key == other.key and self._parts == other._parts - - def __ne__(self, other): - return not self.__eq__(other) - - # See http://docs.python.org/reference/datamodel#object.__hash__ - def __hash__(self): - return hash(self.key) + hash(self._parts) - - def __repr__(self): - return "%s(%r)" % (self.__class__.__name__, self._string) - - def __str__(self): - return self._string - - -PEP440_VERSION_RE = re.compile(r'^v?(\d+!)?(\d+(\.\d+)*)((a|b|c|rc)(\d+))?' - r'(\.(post)(\d+))?(\.(dev)(\d+))?' - r'(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$') - - -def _pep_440_key(s): - s = s.strip() - m = PEP440_VERSION_RE.match(s) - if not m: - raise UnsupportedVersionError('Not a valid version: %s' % s) - groups = m.groups() - nums = tuple(int(v) for v in groups[1].split('.')) - while len(nums) > 1 and nums[-1] == 0: - nums = nums[:-1] - - if not groups[0]: - epoch = 0 - else: - epoch = int(groups[0]) - pre = groups[4:6] - post = groups[7:9] - dev = groups[10:12] - local = groups[13] - if pre == (None, None): - pre = () - else: - pre = pre[0], int(pre[1]) - if post == (None, None): - post = () - else: - post = post[0], int(post[1]) - if dev == (None, None): - dev = () - else: - dev = dev[0], int(dev[1]) - if local is None: - local = () - else: - parts = [] - for part in local.split('.'): - # to ensure that numeric compares as > lexicographic, avoid - # comparing them directly, but encode a tuple which ensures - # correct sorting - if part.isdigit(): - part = (1, int(part)) - else: - part = (0, part) - parts.append(part) - local = tuple(parts) - if not pre: - # either before pre-release, or final release and after - if not post and dev: - # before pre-release - pre = ('a', -1) # to sort before a0 - else: - pre = ('z',) # to sort after all pre-releases - # now look at the state of post and dev. - if not post: - post = ('_',) # sort before 'a' - if not dev: - dev = ('final',) - - #print('%s -> %s' % (s, m.groups())) - return epoch, nums, pre, post, dev, local - - -_normalized_key = _pep_440_key - - -class NormalizedVersion(Version): - """A rational version. - - Good: - 1.2 # equivalent to "1.2.0" - 1.2.0 - 1.2a1 - 1.2.3a2 - 1.2.3b1 - 1.2.3c1 - 1.2.3.4 - TODO: fill this out - - Bad: - 1 # minimum two numbers - 1.2a # release level must have a release serial - 1.2.3b - """ - def parse(self, s): - result = _normalized_key(s) - # _normalized_key loses trailing zeroes in the release - # clause, since that's needed to ensure that X.Y == X.Y.0 == X.Y.0.0 - # However, PEP 440 prefix matching needs it: for example, - # (~= 1.4.5.0) matches differently to (~= 1.4.5.0.0). - m = PEP440_VERSION_RE.match(s) # must succeed - groups = m.groups() - self._release_clause = tuple(int(v) for v in groups[1].split('.')) - return result - - PREREL_TAGS = set(['a', 'b', 'c', 'rc', 'dev']) - - @property - def is_prerelease(self): - return any(t[0] in self.PREREL_TAGS for t in self._parts if t) - - -def _match_prefix(x, y): - x = str(x) - y = str(y) - if x == y: - return True - if not x.startswith(y): - return False - n = len(y) - return x[n] == '.' - - -class NormalizedMatcher(Matcher): - version_class = NormalizedVersion - - # value is either a callable or the name of a method - _operators = { - '~=': '_match_compatible', - '<': '_match_lt', - '>': '_match_gt', - '<=': '_match_le', - '>=': '_match_ge', - '==': '_match_eq', - '===': '_match_arbitrary', - '!=': '_match_ne', - } - - def _adjust_local(self, version, constraint, prefix): - if prefix: - strip_local = '+' not in constraint and version._parts[-1] - else: - # both constraint and version are - # NormalizedVersion instances. - # If constraint does not have a local component, - # ensure the version doesn't, either. - strip_local = not constraint._parts[-1] and version._parts[-1] - if strip_local: - s = version._string.split('+', 1)[0] - version = self.version_class(s) - return version, constraint - - def _match_lt(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if version >= constraint: - return False - release_clause = constraint._release_clause - pfx = '.'.join([str(i) for i in release_clause]) - return not _match_prefix(version, pfx) - - def _match_gt(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if version <= constraint: - return False - release_clause = constraint._release_clause - pfx = '.'.join([str(i) for i in release_clause]) - return not _match_prefix(version, pfx) - - def _match_le(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - return version <= constraint - - def _match_ge(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - return version >= constraint - - def _match_eq(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if not prefix: - result = (version == constraint) - else: - result = _match_prefix(version, constraint) - return result - - def _match_arbitrary(self, version, constraint, prefix): - return str(version) == str(constraint) - - def _match_ne(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if not prefix: - result = (version != constraint) - else: - result = not _match_prefix(version, constraint) - return result - - def _match_compatible(self, version, constraint, prefix): - version, constraint = self._adjust_local(version, constraint, prefix) - if version == constraint: - return True - if version < constraint: - return False -# if not prefix: -# return True - release_clause = constraint._release_clause - if len(release_clause) > 1: - release_clause = release_clause[:-1] - pfx = '.'.join([str(i) for i in release_clause]) - return _match_prefix(version, pfx) - -_REPLACEMENTS = ( - (re.compile('[.+-]$'), ''), # remove trailing puncts - (re.compile(r'^[.](\d)'), r'0.\1'), # .N -> 0.N at start - (re.compile('^[.-]'), ''), # remove leading puncts - (re.compile(r'^\((.*)\)$'), r'\1'), # remove parentheses - (re.compile(r'^v(ersion)?\s*(\d+)'), r'\2'), # remove leading v(ersion) - (re.compile(r'^r(ev)?\s*(\d+)'), r'\2'), # remove leading v(ersion) - (re.compile('[.]{2,}'), '.'), # multiple runs of '.' - (re.compile(r'\b(alfa|apha)\b'), 'alpha'), # misspelt alpha - (re.compile(r'\b(pre-alpha|prealpha)\b'), - 'pre.alpha'), # standardise - (re.compile(r'\(beta\)$'), 'beta'), # remove parentheses -) - -_SUFFIX_REPLACEMENTS = ( - (re.compile('^[:~._+-]+'), ''), # remove leading puncts - (re.compile('[,*")([\\]]'), ''), # remove unwanted chars - (re.compile('[~:+_ -]'), '.'), # replace illegal chars - (re.compile('[.]{2,}'), '.'), # multiple runs of '.' - (re.compile(r'\.$'), ''), # trailing '.' -) - -_NUMERIC_PREFIX = re.compile(r'(\d+(\.\d+)*)') - - -def _suggest_semantic_version(s): - """ - Try to suggest a semantic form for a version for which - _suggest_normalized_version couldn't come up with anything. - """ - result = s.strip().lower() - for pat, repl in _REPLACEMENTS: - result = pat.sub(repl, result) - if not result: - result = '0.0.0' - - # Now look for numeric prefix, and separate it out from - # the rest. - #import pdb; pdb.set_trace() - m = _NUMERIC_PREFIX.match(result) - if not m: - prefix = '0.0.0' - suffix = result - else: - prefix = m.groups()[0].split('.') - prefix = [int(i) for i in prefix] - while len(prefix) < 3: - prefix.append(0) - if len(prefix) == 3: - suffix = result[m.end():] - else: - suffix = '.'.join([str(i) for i in prefix[3:]]) + result[m.end():] - prefix = prefix[:3] - prefix = '.'.join([str(i) for i in prefix]) - suffix = suffix.strip() - if suffix: - #import pdb; pdb.set_trace() - # massage the suffix. - for pat, repl in _SUFFIX_REPLACEMENTS: - suffix = pat.sub(repl, suffix) - - if not suffix: - result = prefix - else: - sep = '-' if 'dev' in suffix else '+' - result = prefix + sep + suffix - if not is_semver(result): - result = None - return result - - -def _suggest_normalized_version(s): - """Suggest a normalized version close to the given version string. - - If you have a version string that isn't rational (i.e. NormalizedVersion - doesn't like it) then you might be able to get an equivalent (or close) - rational version from this function. - - This does a number of simple normalizations to the given string, based - on observation of versions currently in use on PyPI. Given a dump of - those version during PyCon 2009, 4287 of them: - - 2312 (53.93%) match NormalizedVersion without change - with the automatic suggestion - - 3474 (81.04%) match when using this suggestion method - - @param s {str} An irrational version string. - @returns A rational version string, or None, if couldn't determine one. - """ - try: - _normalized_key(s) - return s # already rational - except UnsupportedVersionError: - pass - - rs = s.lower() - - # part of this could use maketrans - for orig, repl in (('-alpha', 'a'), ('-beta', 'b'), ('alpha', 'a'), - ('beta', 'b'), ('rc', 'c'), ('-final', ''), - ('-pre', 'c'), - ('-release', ''), ('.release', ''), ('-stable', ''), - ('+', '.'), ('_', '.'), (' ', ''), ('.final', ''), - ('final', '')): - rs = rs.replace(orig, repl) - - # if something ends with dev or pre, we add a 0 - rs = re.sub(r"pre$", r"pre0", rs) - rs = re.sub(r"dev$", r"dev0", rs) - - # if we have something like "b-2" or "a.2" at the end of the - # version, that is probably beta, alpha, etc - # let's remove the dash or dot - rs = re.sub(r"([abc]|rc)[\-\.](\d+)$", r"\1\2", rs) - - # 1.0-dev-r371 -> 1.0.dev371 - # 0.1-dev-r79 -> 0.1.dev79 - rs = re.sub(r"[\-\.](dev)[\-\.]?r?(\d+)$", r".\1\2", rs) - - # Clean: 2.0.a.3, 2.0.b1, 0.9.0~c1 - rs = re.sub(r"[.~]?([abc])\.?", r"\1", rs) - - # Clean: v0.3, v1.0 - if rs.startswith('v'): - rs = rs[1:] - - # Clean leading '0's on numbers. - #TODO: unintended side-effect on, e.g., "2003.05.09" - # PyPI stats: 77 (~2%) better - rs = re.sub(r"\b0+(\d+)(?!\d)", r"\1", rs) - - # Clean a/b/c with no version. E.g. "1.0a" -> "1.0a0". Setuptools infers - # zero. - # PyPI stats: 245 (7.56%) better - rs = re.sub(r"(\d+[abc])$", r"\g<1>0", rs) - - # the 'dev-rNNN' tag is a dev tag - rs = re.sub(r"\.?(dev-r|dev\.r)\.?(\d+)$", r".dev\2", rs) - - # clean the - when used as a pre delimiter - rs = re.sub(r"-(a|b|c)(\d+)$", r"\1\2", rs) - - # a terminal "dev" or "devel" can be changed into ".dev0" - rs = re.sub(r"[\.\-](dev|devel)$", r".dev0", rs) - - # a terminal "dev" can be changed into ".dev0" - rs = re.sub(r"(?![\.\-])dev$", r".dev0", rs) - - # a terminal "final" or "stable" can be removed - rs = re.sub(r"(final|stable)$", "", rs) - - # The 'r' and the '-' tags are post release tags - # 0.4a1.r10 -> 0.4a1.post10 - # 0.9.33-17222 -> 0.9.33.post17222 - # 0.9.33-r17222 -> 0.9.33.post17222 - rs = re.sub(r"\.?(r|-|-r)\.?(\d+)$", r".post\2", rs) - - # Clean 'r' instead of 'dev' usage: - # 0.9.33+r17222 -> 0.9.33.dev17222 - # 1.0dev123 -> 1.0.dev123 - # 1.0.git123 -> 1.0.dev123 - # 1.0.bzr123 -> 1.0.dev123 - # 0.1a0dev.123 -> 0.1a0.dev123 - # PyPI stats: ~150 (~4%) better - rs = re.sub(r"\.?(dev|git|bzr)\.?(\d+)$", r".dev\2", rs) - - # Clean '.pre' (normalized from '-pre' above) instead of 'c' usage: - # 0.2.pre1 -> 0.2c1 - # 0.2-c1 -> 0.2c1 - # 1.0preview123 -> 1.0c123 - # PyPI stats: ~21 (0.62%) better - rs = re.sub(r"\.?(pre|preview|-c)(\d+)$", r"c\g<2>", rs) - - # Tcl/Tk uses "px" for their post release markers - rs = re.sub(r"p(\d+)$", r".post\1", rs) - - try: - _normalized_key(rs) - except UnsupportedVersionError: - rs = None - return rs - -# -# Legacy version processing (distribute-compatible) -# - -_VERSION_PART = re.compile(r'([a-z]+|\d+|[\.-])', re.I) -_VERSION_REPLACE = { - 'pre': 'c', - 'preview': 'c', - '-': 'final-', - 'rc': 'c', - 'dev': '@', - '': None, - '.': None, -} - - -def _legacy_key(s): - def get_parts(s): - result = [] - for p in _VERSION_PART.split(s.lower()): - p = _VERSION_REPLACE.get(p, p) - if p: - if '0' <= p[:1] <= '9': - p = p.zfill(8) - else: - p = '*' + p - result.append(p) - result.append('*final') - return result - - result = [] - for p in get_parts(s): - if p.startswith('*'): - if p < '*final': - while result and result[-1] == '*final-': - result.pop() - while result and result[-1] == '00000000': - result.pop() - result.append(p) - return tuple(result) - - -class LegacyVersion(Version): - def parse(self, s): - return _legacy_key(s) - - @property - def is_prerelease(self): - result = False - for x in self._parts: - if (isinstance(x, string_types) and x.startswith('*') and - x < '*final'): - result = True - break - return result - - -class LegacyMatcher(Matcher): - version_class = LegacyVersion - - _operators = dict(Matcher._operators) - _operators['~='] = '_match_compatible' - - numeric_re = re.compile(r'^(\d+(\.\d+)*)') - - def _match_compatible(self, version, constraint, prefix): - if version < constraint: - return False - m = self.numeric_re.match(str(constraint)) - if not m: - logger.warning('Cannot compute compatible match for version %s ' - ' and constraint %s', version, constraint) - return True - s = m.groups()[0] - if '.' in s: - s = s.rsplit('.', 1)[0] - return _match_prefix(version, s) - -# -# Semantic versioning -# - -_SEMVER_RE = re.compile(r'^(\d+)\.(\d+)\.(\d+)' - r'(-[a-z0-9]+(\.[a-z0-9-]+)*)?' - r'(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$', re.I) - - -def is_semver(s): - return _SEMVER_RE.match(s) - - -def _semantic_key(s): - def make_tuple(s, absent): - if s is None: - result = (absent,) - else: - parts = s[1:].split('.') - # We can't compare ints and strings on Python 3, so fudge it - # by zero-filling numeric values so simulate a numeric comparison - result = tuple([p.zfill(8) if p.isdigit() else p for p in parts]) - return result - - m = is_semver(s) - if not m: - raise UnsupportedVersionError(s) - groups = m.groups() - major, minor, patch = [int(i) for i in groups[:3]] - # choose the '|' and '*' so that versions sort correctly - pre, build = make_tuple(groups[3], '|'), make_tuple(groups[5], '*') - return (major, minor, patch), pre, build - - -class SemanticVersion(Version): - def parse(self, s): - return _semantic_key(s) - - @property - def is_prerelease(self): - return self._parts[1][0] != '|' - - -class SemanticMatcher(Matcher): - version_class = SemanticVersion - - -class VersionScheme(object): - def __init__(self, key, matcher, suggester=None): - self.key = key - self.matcher = matcher - self.suggester = suggester - - def is_valid_version(self, s): - try: - self.matcher.version_class(s) - result = True - except UnsupportedVersionError: - result = False - return result - - def is_valid_matcher(self, s): - try: - self.matcher(s) - result = True - except UnsupportedVersionError: - result = False - return result - - def is_valid_constraint_list(self, s): - """ - Used for processing some metadata fields - """ - return self.is_valid_matcher('dummy_name (%s)' % s) - - def suggest(self, s): - if self.suggester is None: - result = None - else: - result = self.suggester(s) - return result - -_SCHEMES = { - 'normalized': VersionScheme(_normalized_key, NormalizedMatcher, - _suggest_normalized_version), - 'legacy': VersionScheme(_legacy_key, LegacyMatcher, lambda self, s: s), - 'semantic': VersionScheme(_semantic_key, SemanticMatcher, - _suggest_semantic_version), -} - -_SCHEMES['default'] = _SCHEMES['normalized'] - - -def get_scheme(name): - if name not in _SCHEMES: - raise ValueError('unknown scheme name: %r' % name) - return _SCHEMES[name] diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w32.exe b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w32.exe deleted file mode 100644 index 732215a9d34ccb7b417d637a7646d9b843ecafa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89088 zcmeFae|S?>wm*FGqitH!CO`{C3REl(SahnPNDYM`O{q#T7)Xdvz$<hz5gjb&0FD$| zPs=nt#$jgk-tk`NUb*PJIy$3wMg@OiORy=5PEkZ0P^;6cyPm2=Y8#~Xyq~pC(iU~@ z_dd`2ywCg3TS)e=wSTX@_S$Q$y;FJf9>F9Cf*Bu86NCeB>CeT#|L3nblC!40kR?2m z{>H@z3`^g*ct!B1Tk<#8{Ol(+x7?n8>n(TO@iQ_1pEl;#NO$D_^p5<p8@>6r|7^p? zD>5@P3KB)%InlPUc<U{5lb_$uJ2!U@!dIxT&CTYnHuoCtzCL#`-1%8w%`JjkymkHD zpYr&>Cg9H}+(GW%^wV2|ROUbGfyXTfOART)i?<!WISJD#7!6|#8G`TvV*Xu^z32+K zc6>T0?9%;4K}Zn{6fx`yPa}*$9C+R!7zI~72c&$InY+UdMGBkF3c`HyxD3K09`bzW z?_q;rO&5ec#{?noJ4vI19bbHBt~vx^h2FH$V8i|^#EsiUg#JboP3@w-(&Uf&%NK<8 zSJZ5{MZ852W)~s>WeT(LIf&1wKNqULLI)GN_(-E-D)X~ZK=1;t<%*guHMhdg`-(mb zHzDv1KBN9zR9?--O+N$ReOXAr81V9z!X5SJ5`=3<1^<8V|AP@&sr2}Qvp;hQT24iW zOHg|EiZd1ojV;oo#(r^ba2`^8T22{~_UQ@YMZp7O1R*2@?SerFE~TuJB_wDaYC0h8 zfONF1t%{=H`W`bdYp+>YBsg9Ty9ec3iy+O3xa}TIvPK#Q&udyx1MvwG0(#iaGC|N| zJ#3?<Y4YLRkU`54s9BYRjyISA>){9$tW;Y34lPnX=&>D4X~|k7c$TwEfOzs@Yh#Nz z`FV;`(w!E`sKg@`2E}bDY>ku^4XS@tV(WO*<eu67;0Clk;vRHp!Qf<+5w0B!*Y>g? zYH=KK#%%Yu1~&m>IlB^#2^syGG|2AB1(}4aOcaC%!)}%`I7AIC2(Ro3yW`GSttng^ z_xb=ECor!L{-PNO>_ulJ3%fm=O0X!s%)$GZ?~I94l-^KEAX0n$?4wGpr7&i4#~)OB zQD%2NrWUKtZuYT1Vnu}AeF`cSgx>Rkk@}Lg{WltgT76VeA2aic`cTnpXrt2WXmJkM z9%u<Rp-*9{$HQ)>Xm?McyDyZ28Ux7mpxy?mnmvzMMr-85vkRrJLaDRx>|I7je+cM+ zj{RJ(3Vrgke;W@#D!y%U%fQLtlPKTAzWtVuOQdXpwsy6eRjt^cZ%0D4bF7$F;f!th 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ð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 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w64.exe b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w64.exe deleted file mode 100644 index c41bd0a011fd760ce20ba795d9e535e0d2c39876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99328 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 B=L-M; diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/wheel.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/wheel.py deleted file mode 100644 index b04bfae..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/wheel.py +++ /dev/null @@ -1,988 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2013-2017 Vinay Sajip. -# Licensed to the Python Software Foundation under a contributor agreement. -# See LICENSE.txt and CONTRIBUTORS.txt. -# -from __future__ import unicode_literals - -import base64 -import codecs -import datetime -import distutils.util -from email import message_from_file -import hashlib -import imp -import json -import logging -import os -import posixpath -import re -import shutil -import sys -import tempfile -import zipfile - -from . import __version__, DistlibException -from .compat import sysconfig, ZipFile, fsdecode, text_type, filter -from .database import InstalledDistribution -from .metadata import Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME -from .util import (FileOperator, convert_path, CSVReader, CSVWriter, Cache, - cached_property, get_cache_base, read_exports, tempdir) -from .version import NormalizedVersion, UnsupportedVersionError - -logger = logging.getLogger(__name__) - -cache = None # created when needed - -if hasattr(sys, 'pypy_version_info'): # pragma: no cover - IMP_PREFIX = 'pp' -elif sys.platform.startswith('java'): # pragma: no cover - IMP_PREFIX = 'jy' -elif sys.platform == 'cli': # pragma: no cover - IMP_PREFIX = 'ip' -else: - IMP_PREFIX = 'cp' - -VER_SUFFIX = sysconfig.get_config_var('py_version_nodot') -if not VER_SUFFIX: # pragma: no cover - VER_SUFFIX = '%s%s' % sys.version_info[:2] -PYVER = 'py' + VER_SUFFIX -IMPVER = IMP_PREFIX + VER_SUFFIX - -ARCH = distutils.util.get_platform().replace('-', '_').replace('.', '_') - -ABI = sysconfig.get_config_var('SOABI') -if ABI and ABI.startswith('cpython-'): - ABI = ABI.replace('cpython-', 'cp') -else: - def _derive_abi(): - parts = ['cp', VER_SUFFIX] - if sysconfig.get_config_var('Py_DEBUG'): - parts.append('d') - if sysconfig.get_config_var('WITH_PYMALLOC'): - parts.append('m') - if sysconfig.get_config_var('Py_UNICODE_SIZE') == 4: - parts.append('u') - return ''.join(parts) - ABI = _derive_abi() - del _derive_abi - -FILENAME_RE = re.compile(r''' -(?P<nm>[^-]+) --(?P<vn>\d+[^-]*) -(-(?P<bn>\d+[^-]*))? --(?P<py>\w+\d+(\.\w+\d+)*) --(?P<bi>\w+) --(?P<ar>\w+(\.\w+)*) -\.whl$ -''', re.IGNORECASE | re.VERBOSE) - -NAME_VERSION_RE = re.compile(r''' -(?P<nm>[^-]+) --(?P<vn>\d+[^-]*) -(-(?P<bn>\d+[^-]*))?$ -''', re.IGNORECASE | re.VERBOSE) - -SHEBANG_RE = re.compile(br'\s*#![^\r\n]*') -SHEBANG_DETAIL_RE = re.compile(br'^(\s*#!("[^"]+"|\S+))\s+(.*)$') -SHEBANG_PYTHON = b'#!python' -SHEBANG_PYTHONW = b'#!pythonw' - -if os.sep == '/': - to_posix = lambda o: o -else: - to_posix = lambda o: o.replace(os.sep, '/') - - -class Mounter(object): - def __init__(self): - self.impure_wheels = {} - self.libs = {} - - def add(self, pathname, extensions): - self.impure_wheels[pathname] = extensions - self.libs.update(extensions) - - def remove(self, pathname): - extensions = self.impure_wheels.pop(pathname) - for k, v in extensions: - if k in self.libs: - del self.libs[k] - - def find_module(self, fullname, path=None): - if fullname in self.libs: - result = self - else: - result = None - return result - - def load_module(self, fullname): - if fullname in sys.modules: - result = sys.modules[fullname] - else: - if fullname not in self.libs: - raise ImportError('unable to find extension for %s' % fullname) - result = imp.load_dynamic(fullname, self.libs[fullname]) - result.__loader__ = self - parts = fullname.rsplit('.', 1) - if len(parts) > 1: - result.__package__ = parts[0] - return result - -_hook = Mounter() - - -class Wheel(object): - """ - Class to build and install from Wheel files (PEP 427). - """ - - wheel_version = (1, 1) - hash_kind = 'sha256' - - def __init__(self, filename=None, sign=False, verify=False): - """ - Initialise an instance using a (valid) filename. - """ - self.sign = sign - self.should_verify = verify - self.buildver = '' - self.pyver = [PYVER] - self.abi = ['none'] - self.arch = ['any'] - self.dirname = os.getcwd() - if filename is None: - self.name = 'dummy' - self.version = '0.1' - self._filename = self.filename - else: - m = NAME_VERSION_RE.match(filename) - if m: - info = m.groupdict('') - self.name = info['nm'] - # Reinstate the local version separator - self.version = info['vn'].replace('_', '-') - self.buildver = info['bn'] - self._filename = self.filename - else: - dirname, filename = os.path.split(filename) - m = FILENAME_RE.match(filename) - if not m: - raise DistlibException('Invalid name or ' - 'filename: %r' % filename) - if dirname: - self.dirname = os.path.abspath(dirname) - self._filename = filename - info = m.groupdict('') - self.name = info['nm'] - self.version = info['vn'] - self.buildver = info['bn'] - self.pyver = info['py'].split('.') - self.abi = info['bi'].split('.') - self.arch = info['ar'].split('.') - - @property - def filename(self): - """ - Build and return a filename from the various components. - """ - if self.buildver: - buildver = '-' + self.buildver - else: - buildver = '' - pyver = '.'.join(self.pyver) - abi = '.'.join(self.abi) - arch = '.'.join(self.arch) - # replace - with _ as a local version separator - version = self.version.replace('-', '_') - return '%s-%s%s-%s-%s-%s.whl' % (self.name, version, buildver, - pyver, abi, arch) - - @property - def exists(self): - path = os.path.join(self.dirname, self.filename) - return os.path.isfile(path) - - @property - def tags(self): - for pyver in self.pyver: - for abi in self.abi: - for arch in self.arch: - yield pyver, abi, arch - - @cached_property - def metadata(self): - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - wrapper = codecs.getreader('utf-8') - with ZipFile(pathname, 'r') as zf: - wheel_metadata = self.get_wheel_metadata(zf) - wv = wheel_metadata['Wheel-Version'].split('.', 1) - file_version = tuple([int(i) for i in wv]) - if file_version < (1, 1): - fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME, 'METADATA'] - else: - fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME] - result = None - for fn in fns: - try: - metadata_filename = posixpath.join(info_dir, fn) - with zf.open(metadata_filename) as bf: - wf = wrapper(bf) - result = Metadata(fileobj=wf) - if result: - break - except KeyError: - pass - if not result: - raise ValueError('Invalid wheel, because metadata is ' - 'missing: looked in %s' % ', '.join(fns)) - return result - - def get_wheel_metadata(self, zf): - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - metadata_filename = posixpath.join(info_dir, 'WHEEL') - with zf.open(metadata_filename) as bf: - wf = codecs.getreader('utf-8')(bf) - message = message_from_file(wf) - return dict(message) - - @cached_property - def info(self): - pathname = os.path.join(self.dirname, self.filename) - with ZipFile(pathname, 'r') as zf: - result = self.get_wheel_metadata(zf) - return result - - def process_shebang(self, data): - m = SHEBANG_RE.match(data) - if m: - end = m.end() - shebang, data_after_shebang = data[:end], data[end:] - # Preserve any arguments after the interpreter - if b'pythonw' in shebang.lower(): - shebang_python = SHEBANG_PYTHONW - else: - shebang_python = SHEBANG_PYTHON - m = SHEBANG_DETAIL_RE.match(shebang) - if m: - args = b' ' + m.groups()[-1] - else: - args = b'' - shebang = shebang_python + args - data = shebang + data_after_shebang - else: - cr = data.find(b'\r') - lf = data.find(b'\n') - if cr < 0 or cr > lf: - term = b'\n' - else: - if data[cr:cr + 2] == b'\r\n': - term = b'\r\n' - else: - term = b'\r' - data = SHEBANG_PYTHON + term + data - return data - - def get_hash(self, data, hash_kind=None): - if hash_kind is None: - hash_kind = self.hash_kind - try: - hasher = getattr(hashlib, hash_kind) - except AttributeError: - raise DistlibException('Unsupported hash algorithm: %r' % hash_kind) - result = hasher(data).digest() - result = base64.urlsafe_b64encode(result).rstrip(b'=').decode('ascii') - return hash_kind, result - - def write_record(self, records, record_path, base): - records = list(records) # make a copy for sorting - p = to_posix(os.path.relpath(record_path, base)) - records.append((p, '', '')) - records.sort() - with CSVWriter(record_path) as writer: - for row in records: - writer.writerow(row) - - def write_records(self, info, libdir, archive_paths): - records = [] - distinfo, info_dir = info - hasher = getattr(hashlib, self.hash_kind) - for ap, p in archive_paths: - with open(p, 'rb') as f: - data = f.read() - digest = '%s=%s' % self.get_hash(data) - size = os.path.getsize(p) - records.append((ap, digest, size)) - - p = os.path.join(distinfo, 'RECORD') - self.write_record(records, p, libdir) - ap = to_posix(os.path.join(info_dir, 'RECORD')) - archive_paths.append((ap, p)) - - def build_zip(self, pathname, archive_paths): - with ZipFile(pathname, 'w', zipfile.ZIP_DEFLATED) as zf: - for ap, p in archive_paths: - logger.debug('Wrote %s to %s in wheel', p, ap) - zf.write(p, ap) - - def build(self, paths, tags=None, wheel_version=None): - """ - Build a wheel from files in specified paths, and use any specified tags - when determining the name of the wheel. - """ - if tags is None: - tags = {} - - libkey = list(filter(lambda o: o in paths, ('purelib', 'platlib')))[0] - if libkey == 'platlib': - is_pure = 'false' - default_pyver = [IMPVER] - default_abi = [ABI] - default_arch = [ARCH] - else: - is_pure = 'true' - default_pyver = [PYVER] - default_abi = ['none'] - default_arch = ['any'] - - self.pyver = tags.get('pyver', default_pyver) - self.abi = tags.get('abi', default_abi) - self.arch = tags.get('arch', default_arch) - - libdir = paths[libkey] - - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver - - archive_paths = [] - - # First, stuff which is not in site-packages - for key in ('data', 'headers', 'scripts'): - if key not in paths: - continue - path = paths[key] - if os.path.isdir(path): - for root, dirs, files in os.walk(path): - for fn in files: - p = fsdecode(os.path.join(root, fn)) - rp = os.path.relpath(p, path) - ap = to_posix(os.path.join(data_dir, key, rp)) - archive_paths.append((ap, p)) - if key == 'scripts' and not p.endswith('.exe'): - with open(p, 'rb') as f: - data = f.read() - data = self.process_shebang(data) - with open(p, 'wb') as f: - f.write(data) - - # Now, stuff which is in site-packages, other than the - # distinfo stuff. - path = libdir - distinfo = None - for root, dirs, files in os.walk(path): - if root == path: - # At the top level only, save distinfo for later - # and skip it for now - for i, dn in enumerate(dirs): - dn = fsdecode(dn) - if dn.endswith('.dist-info'): - distinfo = os.path.join(root, dn) - del dirs[i] - break - assert distinfo, '.dist-info directory expected, not found' - - for fn in files: - # comment out next suite to leave .pyc files in - if fsdecode(fn).endswith(('.pyc', '.pyo')): - continue - p = os.path.join(root, fn) - rp = to_posix(os.path.relpath(p, path)) - archive_paths.append((rp, p)) - - # Now distinfo. Assumed to be flat, i.e. os.listdir is enough. - files = os.listdir(distinfo) - for fn in files: - if fn not in ('RECORD', 'INSTALLER', 'SHARED', 'WHEEL'): - p = fsdecode(os.path.join(distinfo, fn)) - ap = to_posix(os.path.join(info_dir, fn)) - archive_paths.append((ap, p)) - - wheel_metadata = [ - 'Wheel-Version: %d.%d' % (wheel_version or self.wheel_version), - 'Generator: distlib %s' % __version__, - 'Root-Is-Purelib: %s' % is_pure, - ] - for pyver, abi, arch in self.tags: - wheel_metadata.append('Tag: %s-%s-%s' % (pyver, abi, arch)) - p = os.path.join(distinfo, 'WHEEL') - with open(p, 'w') as f: - f.write('\n'.join(wheel_metadata)) - ap = to_posix(os.path.join(info_dir, 'WHEEL')) - archive_paths.append((ap, p)) - - # Now, at last, RECORD. - # Paths in here are archive paths - nothing else makes sense. - self.write_records((distinfo, info_dir), libdir, archive_paths) - # Now, ready to build the zip file - pathname = os.path.join(self.dirname, self.filename) - self.build_zip(pathname, archive_paths) - return pathname - - def install(self, paths, maker, **kwargs): - """ - Install a wheel to the specified paths. If kwarg ``warner`` is - specified, it should be a callable, which will be called with two - tuples indicating the wheel version of this software and the wheel - version in the file, if there is a discrepancy in the versions. - This can be used to issue any warnings to raise any exceptions. - If kwarg ``lib_only`` is True, only the purelib/platlib files are - installed, and the headers, scripts, data and dist-info metadata are - not written. If kwarg ``bytecode_hashed_invalidation`` is True, written - bytecode will try to use file-hash based invalidation (PEP-552) on - supported interpreter versions (CPython 2.7+). - - The return value is a :class:`InstalledDistribution` instance unless - ``options.lib_only`` is True, in which case the return value is ``None``. - """ - - dry_run = maker.dry_run - warner = kwargs.get('warner') - lib_only = kwargs.get('lib_only', False) - bc_hashed_invalidation = kwargs.get('bytecode_hashed_invalidation', False) - - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver - - metadata_name = posixpath.join(info_dir, METADATA_FILENAME) - wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') - record_name = posixpath.join(info_dir, 'RECORD') - - wrapper = codecs.getreader('utf-8') - - with ZipFile(pathname, 'r') as zf: - with zf.open(wheel_metadata_name) as bwf: - wf = wrapper(bwf) - message = message_from_file(wf) - wv = message['Wheel-Version'].split('.', 1) - file_version = tuple([int(i) for i in wv]) - if (file_version != self.wheel_version) and warner: - warner(self.wheel_version, file_version) - - if message['Root-Is-Purelib'] == 'true': - libdir = paths['purelib'] - else: - libdir = paths['platlib'] - - records = {} - with zf.open(record_name) as bf: - with CSVReader(stream=bf) as reader: - for row in reader: - p = row[0] - records[p] = row - - data_pfx = posixpath.join(data_dir, '') - info_pfx = posixpath.join(info_dir, '') - script_pfx = posixpath.join(data_dir, 'scripts', '') - - # make a new instance rather than a copy of maker's, - # as we mutate it - fileop = FileOperator(dry_run=dry_run) - fileop.record = True # so we can rollback if needed - - bc = not sys.dont_write_bytecode # Double negatives. Lovely! - - outfiles = [] # for RECORD writing - - # for script copying/shebang processing - workdir = tempfile.mkdtemp() - # set target dir later - # we default add_launchers to False, as the - # Python Launcher should be used instead - maker.source_dir = workdir - maker.target_dir = None - try: - for zinfo in zf.infolist(): - arcname = zinfo.filename - if isinstance(arcname, text_type): - u_arcname = arcname - else: - u_arcname = arcname.decode('utf-8') - # The signature file won't be in RECORD, - # and we don't currently don't do anything with it - if u_arcname.endswith('/RECORD.jws'): - continue - row = records[u_arcname] - if row[2] and str(zinfo.file_size) != row[2]: - raise DistlibException('size mismatch for ' - '%s' % u_arcname) - if row[1]: - kind, value = row[1].split('=', 1) - with zf.open(arcname) as bf: - data = bf.read() - _, digest = self.get_hash(data, kind) - if digest != value: - raise DistlibException('digest mismatch for ' - '%s' % arcname) - - if lib_only and u_arcname.startswith((info_pfx, data_pfx)): - logger.debug('lib_only: skipping %s', u_arcname) - continue - is_script = (u_arcname.startswith(script_pfx) - and not u_arcname.endswith('.exe')) - - if u_arcname.startswith(data_pfx): - _, where, rp = u_arcname.split('/', 2) - outfile = os.path.join(paths[where], convert_path(rp)) - else: - # meant for site-packages. - if u_arcname in (wheel_metadata_name, record_name): - continue - outfile = os.path.join(libdir, convert_path(u_arcname)) - if not is_script: - with zf.open(arcname) as bf: - fileop.copy_stream(bf, outfile) - outfiles.append(outfile) - # Double check the digest of the written file - if not dry_run and row[1]: - with open(outfile, 'rb') as bf: - data = bf.read() - _, newdigest = self.get_hash(data, kind) - if newdigest != digest: - raise DistlibException('digest mismatch ' - 'on write for ' - '%s' % outfile) - if bc and outfile.endswith('.py'): - try: - pyc = fileop.byte_compile(outfile, - hashed_invalidation=bc_hashed_invalidation) - outfiles.append(pyc) - except Exception: - # Don't give up if byte-compilation fails, - # but log it and perhaps warn the user - logger.warning('Byte-compilation failed', - exc_info=True) - else: - fn = os.path.basename(convert_path(arcname)) - workname = os.path.join(workdir, fn) - with zf.open(arcname) as bf: - fileop.copy_stream(bf, workname) - - dn, fn = os.path.split(outfile) - maker.target_dir = dn - filenames = maker.make(fn) - fileop.set_executable_mode(filenames) - outfiles.extend(filenames) - - if lib_only: - logger.debug('lib_only: returning None') - dist = None - else: - # Generate scripts - - # Try to get pydist.json so we can see if there are - # any commands to generate. If this fails (e.g. because - # of a legacy wheel), log a warning but don't give up. - commands = None - file_version = self.info['Wheel-Version'] - if file_version == '1.0': - # Use legacy info - ep = posixpath.join(info_dir, 'entry_points.txt') - try: - with zf.open(ep) as bwf: - epdata = read_exports(bwf) - commands = {} - for key in ('console', 'gui'): - k = '%s_scripts' % key - if k in epdata: - commands['wrap_%s' % key] = d = {} - for v in epdata[k].values(): - s = '%s:%s' % (v.prefix, v.suffix) - if v.flags: - s += ' %s' % v.flags - d[v.name] = s - except Exception: - logger.warning('Unable to read legacy script ' - 'metadata, so cannot generate ' - 'scripts') - else: - try: - with zf.open(metadata_name) as bwf: - wf = wrapper(bwf) - commands = json.load(wf).get('extensions') - if commands: - commands = commands.get('python.commands') - except Exception: - logger.warning('Unable to read JSON metadata, so ' - 'cannot generate scripts') - if commands: - console_scripts = commands.get('wrap_console', {}) - gui_scripts = commands.get('wrap_gui', {}) - if console_scripts or gui_scripts: - script_dir = paths.get('scripts', '') - if not os.path.isdir(script_dir): - raise ValueError('Valid script path not ' - 'specified') - maker.target_dir = script_dir - for k, v in console_scripts.items(): - script = '%s = %s' % (k, v) - filenames = maker.make(script) - fileop.set_executable_mode(filenames) - - if gui_scripts: - options = {'gui': True } - for k, v in gui_scripts.items(): - script = '%s = %s' % (k, v) - filenames = maker.make(script, options) - fileop.set_executable_mode(filenames) - - p = os.path.join(libdir, info_dir) - dist = InstalledDistribution(p) - - # Write SHARED - paths = dict(paths) # don't change passed in dict - del paths['purelib'] - del paths['platlib'] - paths['lib'] = libdir - p = dist.write_shared_locations(paths, dry_run) - if p: - outfiles.append(p) - - # Write RECORD - dist.write_installed_files(outfiles, paths['prefix'], - dry_run) - return dist - except Exception: # pragma: no cover - logger.exception('installation failed.') - fileop.rollback() - raise - finally: - shutil.rmtree(workdir) - - def _get_dylib_cache(self): - global cache - if cache is None: - # Use native string to avoid issues on 2.x: see Python #20140. - base = os.path.join(get_cache_base(), str('dylib-cache'), - sys.version[:3]) - cache = Cache(base) - return cache - - def _get_extensions(self): - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - arcname = posixpath.join(info_dir, 'EXTENSIONS') - wrapper = codecs.getreader('utf-8') - result = [] - with ZipFile(pathname, 'r') as zf: - try: - with zf.open(arcname) as bf: - wf = wrapper(bf) - extensions = json.load(wf) - cache = self._get_dylib_cache() - prefix = cache.prefix_to_dir(pathname) - cache_base = os.path.join(cache.base, prefix) - if not os.path.isdir(cache_base): - os.makedirs(cache_base) - for name, relpath in extensions.items(): - dest = os.path.join(cache_base, convert_path(relpath)) - if not os.path.exists(dest): - extract = True - else: - file_time = os.stat(dest).st_mtime - file_time = datetime.datetime.fromtimestamp(file_time) - info = zf.getinfo(relpath) - wheel_time = datetime.datetime(*info.date_time) - extract = wheel_time > file_time - if extract: - zf.extract(relpath, cache_base) - result.append((name, dest)) - except KeyError: - pass - return result - - def is_compatible(self): - """ - Determine if a wheel is compatible with the running system. - """ - return is_compatible(self) - - def is_mountable(self): - """ - Determine if a wheel is asserted as mountable by its metadata. - """ - return True # for now - metadata details TBD - - def mount(self, append=False): - pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) - if not self.is_compatible(): - msg = 'Wheel %s not compatible with this Python.' % pathname - raise DistlibException(msg) - if not self.is_mountable(): - msg = 'Wheel %s is marked as not mountable.' % pathname - raise DistlibException(msg) - if pathname in sys.path: - logger.debug('%s already in path', pathname) - else: - if append: - sys.path.append(pathname) - else: - sys.path.insert(0, pathname) - extensions = self._get_extensions() - if extensions: - if _hook not in sys.meta_path: - sys.meta_path.append(_hook) - _hook.add(pathname, extensions) - - def unmount(self): - pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) - if pathname not in sys.path: - logger.debug('%s not in path', pathname) - else: - sys.path.remove(pathname) - if pathname in _hook.impure_wheels: - _hook.remove(pathname) - if not _hook.impure_wheels: - if _hook in sys.meta_path: - sys.meta_path.remove(_hook) - - def verify(self): - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - data_dir = '%s.data' % name_ver - info_dir = '%s.dist-info' % name_ver - - metadata_name = posixpath.join(info_dir, METADATA_FILENAME) - wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') - record_name = posixpath.join(info_dir, 'RECORD') - - wrapper = codecs.getreader('utf-8') - - with ZipFile(pathname, 'r') as zf: - with zf.open(wheel_metadata_name) as bwf: - wf = wrapper(bwf) - message = message_from_file(wf) - wv = message['Wheel-Version'].split('.', 1) - file_version = tuple([int(i) for i in wv]) - # TODO version verification - - records = {} - with zf.open(record_name) as bf: - with CSVReader(stream=bf) as reader: - for row in reader: - p = row[0] - records[p] = row - - for zinfo in zf.infolist(): - arcname = zinfo.filename - if isinstance(arcname, text_type): - u_arcname = arcname - else: - u_arcname = arcname.decode('utf-8') - if '..' in u_arcname: - raise DistlibException('invalid entry in ' - 'wheel: %r' % u_arcname) - - # The signature file won't be in RECORD, - # and we don't currently don't do anything with it - if u_arcname.endswith('/RECORD.jws'): - continue - row = records[u_arcname] - if row[2] and str(zinfo.file_size) != row[2]: - raise DistlibException('size mismatch for ' - '%s' % u_arcname) - if row[1]: - kind, value = row[1].split('=', 1) - with zf.open(arcname) as bf: - data = bf.read() - _, digest = self.get_hash(data, kind) - if digest != value: - raise DistlibException('digest mismatch for ' - '%s' % arcname) - - def update(self, modifier, dest_dir=None, **kwargs): - """ - Update the contents of a wheel in a generic way. The modifier should - be a callable which expects a dictionary argument: its keys are - archive-entry paths, and its values are absolute filesystem paths - where the contents the corresponding archive entries can be found. The - modifier is free to change the contents of the files pointed to, add - new entries and remove entries, before returning. This method will - extract the entire contents of the wheel to a temporary location, call - the modifier, and then use the passed (and possibly updated) - dictionary to write a new wheel. If ``dest_dir`` is specified, the new - wheel is written there -- otherwise, the original wheel is overwritten. - - The modifier should return True if it updated the wheel, else False. - This method returns the same value the modifier returns. - """ - - def get_version(path_map, info_dir): - version = path = None - key = '%s/%s' % (info_dir, METADATA_FILENAME) - if key not in path_map: - key = '%s/PKG-INFO' % info_dir - if key in path_map: - path = path_map[key] - version = Metadata(path=path).version - return version, path - - def update_version(version, path): - updated = None - try: - v = NormalizedVersion(version) - i = version.find('-') - if i < 0: - updated = '%s+1' % version - else: - parts = [int(s) for s in version[i + 1:].split('.')] - parts[-1] += 1 - updated = '%s+%s' % (version[:i], - '.'.join(str(i) for i in parts)) - except UnsupportedVersionError: - logger.debug('Cannot update non-compliant (PEP-440) ' - 'version %r', version) - if updated: - md = Metadata(path=path) - md.version = updated - legacy = not path.endswith(METADATA_FILENAME) - md.write(path=path, legacy=legacy) - logger.debug('Version updated from %r to %r', version, - updated) - - pathname = os.path.join(self.dirname, self.filename) - name_ver = '%s-%s' % (self.name, self.version) - info_dir = '%s.dist-info' % name_ver - record_name = posixpath.join(info_dir, 'RECORD') - with tempdir() as workdir: - with ZipFile(pathname, 'r') as zf: - path_map = {} - for zinfo in zf.infolist(): - arcname = zinfo.filename - if isinstance(arcname, text_type): - u_arcname = arcname - else: - u_arcname = arcname.decode('utf-8') - if u_arcname == record_name: - continue - if '..' in u_arcname: - raise DistlibException('invalid entry in ' - 'wheel: %r' % u_arcname) - zf.extract(zinfo, workdir) - path = os.path.join(workdir, convert_path(u_arcname)) - path_map[u_arcname] = path - - # Remember the version. - original_version, _ = get_version(path_map, info_dir) - # Files extracted. Call the modifier. - modified = modifier(path_map, **kwargs) - if modified: - # Something changed - need to build a new wheel. - current_version, path = get_version(path_map, info_dir) - if current_version and (current_version == original_version): - # Add or update local version to signify changes. - update_version(current_version, path) - # Decide where the new wheel goes. - if dest_dir is None: - fd, newpath = tempfile.mkstemp(suffix='.whl', - prefix='wheel-update-', - dir=workdir) - os.close(fd) - else: - if not os.path.isdir(dest_dir): - raise DistlibException('Not a directory: %r' % dest_dir) - newpath = os.path.join(dest_dir, self.filename) - archive_paths = list(path_map.items()) - distinfo = os.path.join(workdir, info_dir) - info = distinfo, info_dir - self.write_records(info, workdir, archive_paths) - self.build_zip(newpath, archive_paths) - if dest_dir is None: - shutil.copyfile(newpath, pathname) - return modified - -def compatible_tags(): - """ - Return (pyver, abi, arch) tuples compatible with this Python. - """ - versions = [VER_SUFFIX] - major = VER_SUFFIX[0] - for minor in range(sys.version_info[1] - 1, - 1, -1): - versions.append(''.join([major, str(minor)])) - - abis = [] - for suffix, _, _ in imp.get_suffixes(): - if suffix.startswith('.abi'): - abis.append(suffix.split('.', 2)[1]) - abis.sort() - if ABI != 'none': - abis.insert(0, ABI) - abis.append('none') - result = [] - - arches = [ARCH] - if sys.platform == 'darwin': - m = re.match(r'(\w+)_(\d+)_(\d+)_(\w+)$', ARCH) - if m: - name, major, minor, arch = m.groups() - minor = int(minor) - matches = [arch] - if arch in ('i386', 'ppc'): - matches.append('fat') - if arch in ('i386', 'ppc', 'x86_64'): - matches.append('fat3') - if arch in ('ppc64', 'x86_64'): - matches.append('fat64') - if arch in ('i386', 'x86_64'): - matches.append('intel') - if arch in ('i386', 'x86_64', 'intel', 'ppc', 'ppc64'): - matches.append('universal') - while minor >= 0: - for match in matches: - s = '%s_%s_%s_%s' % (name, major, minor, match) - if s != ARCH: # already there - arches.append(s) - minor -= 1 - - # Most specific - our Python version, ABI and arch - for abi in abis: - for arch in arches: - result.append((''.join((IMP_PREFIX, versions[0])), abi, arch)) - - # where no ABI / arch dependency, but IMP_PREFIX dependency - for i, version in enumerate(versions): - result.append((''.join((IMP_PREFIX, version)), 'none', 'any')) - if i == 0: - result.append((''.join((IMP_PREFIX, version[0])), 'none', 'any')) - - # no IMP_PREFIX, ABI or arch dependency - for i, version in enumerate(versions): - result.append((''.join(('py', version)), 'none', 'any')) - if i == 0: - result.append((''.join(('py', version[0])), 'none', 'any')) - return set(result) - - -COMPATIBLE_TAGS = compatible_tags() - -del compatible_tags - - -def is_compatible(wheel, tags=None): - if not isinstance(wheel, Wheel): - wheel = Wheel(wheel) # assume it's a filename - result = False - if tags is None: - tags = COMPATIBLE_TAGS - for ver, abi, arch in tags: - if ver in wheel.pyver and abi in wheel.abi and arch in wheel.arch: - result = True - break - return result diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distro.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distro.py deleted file mode 100644 index aa4defc..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distro.py +++ /dev/null @@ -1,1197 +0,0 @@ -# Copyright 2015,2016,2017 Nir Cohen -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -The ``distro`` package (``distro`` stands for Linux Distribution) provides -information about the Linux distribution it runs on, such as a reliable -machine-readable distro ID, or version information. - -It is a renewed alternative implementation for Python's original -:py:func:`platform.linux_distribution` function, but it provides much more -functionality. An alternative implementation became necessary because Python -3.5 deprecated this function, and Python 3.7 is expected to remove it -altogether. Its predecessor function :py:func:`platform.dist` was already -deprecated since Python 2.6 and is also expected to be removed in Python 3.7. -Still, there are many cases in which access to OS distribution information -is needed. See `Python issue 1322 <https://bugs.python.org/issue1322>`_ for -more information. -""" - -import os -import re -import sys -import json -import shlex -import logging -import argparse -import subprocess - - -_UNIXCONFDIR = os.environ.get('UNIXCONFDIR', '/etc') -_OS_RELEASE_BASENAME = 'os-release' - -#: Translation table for normalizing the "ID" attribute defined in os-release -#: files, for use by the :func:`distro.id` method. -#: -#: * Key: Value as defined in the os-release file, translated to lower case, -#: with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_OS_ID = {} - -#: Translation table for normalizing the "Distributor ID" attribute returned by -#: the lsb_release command, for use by the :func:`distro.id` method. -#: -#: * Key: Value as returned by the lsb_release command, translated to lower -#: case, with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_LSB_ID = { - 'enterpriseenterprise': 'oracle', # Oracle Enterprise Linux - 'redhatenterpriseworkstation': 'rhel', # RHEL 6, 7 Workstation - 'redhatenterpriseserver': 'rhel', # RHEL 6, 7 Server -} - -#: Translation table for normalizing the distro ID derived from the file name -#: of distro release files, for use by the :func:`distro.id` method. -#: -#: * Key: Value as derived from the file name of a distro release file, -#: translated to lower case, with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_DISTRO_ID = { - 'redhat': 'rhel', # RHEL 6.x, 7.x -} - -# Pattern for content of distro release file (reversed) -_DISTRO_RELEASE_CONTENT_REVERSED_PATTERN = re.compile( - r'(?:[^)]*\)(.*)\()? *(?:STL )?([\d.+\-a-z]*\d) *(?:esaeler *)?(.+)') - -# Pattern for base file name of distro release file -_DISTRO_RELEASE_BASENAME_PATTERN = re.compile( - r'(\w+)[-_](release|version)$') - -# Base file names to be ignored when searching for distro release file -_DISTRO_RELEASE_IGNORE_BASENAMES = ( - 'debian_version', - 'lsb-release', - 'oem-release', - _OS_RELEASE_BASENAME, - 'system-release' -) - - -def linux_distribution(full_distribution_name=True): - """ - Return information about the current OS distribution as a tuple - ``(id_name, version, codename)`` with items as follows: - - * ``id_name``: If *full_distribution_name* is false, the result of - :func:`distro.id`. Otherwise, the result of :func:`distro.name`. - - * ``version``: The result of :func:`distro.version`. - - * ``codename``: The result of :func:`distro.codename`. - - The interface of this function is compatible with the original - :py:func:`platform.linux_distribution` function, supporting a subset of - its parameters. - - The data it returns may not exactly be the same, because it uses more data - sources than the original function, and that may lead to different data if - the OS distribution is not consistent across multiple data sources it - provides (there are indeed such distributions ...). - - Another reason for differences is the fact that the :func:`distro.id` - method normalizes the distro ID string to a reliable machine-readable value - for a number of popular OS distributions. - """ - return _distro.linux_distribution(full_distribution_name) - - -def id(): - """ - Return the distro ID of the current distribution, as a - machine-readable string. - - For a number of OS distributions, the returned distro ID value is - *reliable*, in the sense that it is documented and that it does not change - across releases of the distribution. - - This package maintains the following reliable distro ID values: - - ============== ========================================= - Distro ID Distribution - ============== ========================================= - "ubuntu" Ubuntu - "debian" Debian - "rhel" RedHat Enterprise Linux - "centos" CentOS - "fedora" Fedora - "sles" SUSE Linux Enterprise Server - "opensuse" openSUSE - "amazon" Amazon Linux - "arch" Arch Linux - "cloudlinux" CloudLinux OS - "exherbo" Exherbo Linux - "gentoo" GenToo Linux - "ibm_powerkvm" IBM PowerKVM - "kvmibm" KVM for IBM z Systems - "linuxmint" Linux Mint - "mageia" Mageia - "mandriva" Mandriva Linux - "parallels" Parallels - "pidora" Pidora - "raspbian" Raspbian - "oracle" Oracle Linux (and Oracle Enterprise Linux) - "scientific" Scientific Linux - "slackware" Slackware - "xenserver" XenServer - "openbsd" OpenBSD - "netbsd" NetBSD - "freebsd" FreeBSD - ============== ========================================= - - If you have a need to get distros for reliable IDs added into this set, - or if you find that the :func:`distro.id` function returns a different - distro ID for one of the listed distros, please create an issue in the - `distro issue tracker`_. - - **Lookup hierarchy and transformations:** - - First, the ID is obtained from the following sources, in the specified - order. The first available and non-empty value is used: - - * the value of the "ID" attribute of the os-release file, - - * the value of the "Distributor ID" attribute returned by the lsb_release - command, - - * the first part of the file name of the distro release file, - - The so determined ID value then passes the following transformations, - before it is returned by this method: - - * it is translated to lower case, - - * blanks (which should not be there anyway) are translated to underscores, - - * a normalization of the ID is performed, based upon - `normalization tables`_. The purpose of this normalization is to ensure - that the ID is as reliable as possible, even across incompatible changes - in the OS distributions. A common reason for an incompatible change is - the addition of an os-release file, or the addition of the lsb_release - command, with ID values that differ from what was previously determined - from the distro release file name. - """ - return _distro.id() - - -def name(pretty=False): - """ - Return the name of the current OS distribution, as a human-readable - string. - - If *pretty* is false, the name is returned without version or codename. - (e.g. "CentOS Linux") - - If *pretty* is true, the version and codename are appended. - (e.g. "CentOS Linux 7.1.1503 (Core)") - - **Lookup hierarchy:** - - The name is obtained from the following sources, in the specified order. - The first available and non-empty value is used: - - * If *pretty* is false: - - - the value of the "NAME" attribute of the os-release file, - - - the value of the "Distributor ID" attribute returned by the lsb_release - command, - - - the value of the "<name>" field of the distro release file. - - * If *pretty* is true: - - - the value of the "PRETTY_NAME" attribute of the os-release file, - - - the value of the "Description" attribute returned by the lsb_release - command, - - - the value of the "<name>" field of the distro release file, appended - with the value of the pretty version ("<version_id>" and "<codename>" - fields) of the distro release file, if available. - """ - return _distro.name(pretty) - - -def version(pretty=False, best=False): - """ - Return the version of the current OS distribution, as a human-readable - string. - - If *pretty* is false, the version is returned without codename (e.g. - "7.0"). - - If *pretty* is true, the codename in parenthesis is appended, if the - codename is non-empty (e.g. "7.0 (Maipo)"). - - Some distributions provide version numbers with different precisions in - the different sources of distribution information. Examining the different - sources in a fixed priority order does not always yield the most precise - version (e.g. for Debian 8.2, or CentOS 7.1). - - The *best* parameter can be used to control the approach for the returned - version: - - If *best* is false, the first non-empty version number in priority order of - the examined sources is returned. - - If *best* is true, the most precise version number out of all examined - sources is returned. - - **Lookup hierarchy:** - - In all cases, the version number is obtained from the following sources. - If *best* is false, this order represents the priority order: - - * the value of the "VERSION_ID" attribute of the os-release file, - * the value of the "Release" attribute returned by the lsb_release - command, - * the version number parsed from the "<version_id>" field of the first line - of the distro release file, - * the version number parsed from the "PRETTY_NAME" attribute of the - os-release file, if it follows the format of the distro release files. - * the version number parsed from the "Description" attribute returned by - the lsb_release command, if it follows the format of the distro release - files. - """ - return _distro.version(pretty, best) - - -def version_parts(best=False): - """ - Return the version of the current OS distribution as a tuple - ``(major, minor, build_number)`` with items as follows: - - * ``major``: The result of :func:`distro.major_version`. - - * ``minor``: The result of :func:`distro.minor_version`. - - * ``build_number``: The result of :func:`distro.build_number`. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.version_parts(best) - - -def major_version(best=False): - """ - Return the major version of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The major version is the first - part of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.major_version(best) - - -def minor_version(best=False): - """ - Return the minor version of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The minor version is the second - part of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.minor_version(best) - - -def build_number(best=False): - """ - Return the build number of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The build number is the third part - of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.build_number(best) - - -def like(): - """ - Return a space-separated list of distro IDs of distributions that are - closely related to the current OS distribution in regards to packaging - and programming interfaces, for example distributions the current - distribution is a derivative from. - - **Lookup hierarchy:** - - This information item is only provided by the os-release file. - For details, see the description of the "ID_LIKE" attribute in the - `os-release man page - <http://www.freedesktop.org/software/systemd/man/os-release.html>`_. - """ - return _distro.like() - - -def codename(): - """ - Return the codename for the release of the current OS distribution, - as a string. - - If the distribution does not have a codename, an empty string is returned. - - Note that the returned codename is not always really a codename. For - example, openSUSE returns "x86_64". This function does not handle such - cases in any special way and just returns the string it finds, if any. - - **Lookup hierarchy:** - - * the codename within the "VERSION" attribute of the os-release file, if - provided, - - * the value of the "Codename" attribute returned by the lsb_release - command, - - * the value of the "<codename>" field of the distro release file. - """ - return _distro.codename() - - -def info(pretty=False, best=False): - """ - Return certain machine-readable information items about the current OS - distribution in a dictionary, as shown in the following example: - - .. sourcecode:: python - - { - 'id': 'rhel', - 'version': '7.0', - 'version_parts': { - 'major': '7', - 'minor': '0', - 'build_number': '' - }, - 'like': 'fedora', - 'codename': 'Maipo' - } - - The dictionary structure and keys are always the same, regardless of which - information items are available in the underlying data sources. The values - for the various keys are as follows: - - * ``id``: The result of :func:`distro.id`. - - * ``version``: The result of :func:`distro.version`. - - * ``version_parts -> major``: The result of :func:`distro.major_version`. - - * ``version_parts -> minor``: The result of :func:`distro.minor_version`. - - * ``version_parts -> build_number``: The result of - :func:`distro.build_number`. - - * ``like``: The result of :func:`distro.like`. - - * ``codename``: The result of :func:`distro.codename`. - - For a description of the *pretty* and *best* parameters, see the - :func:`distro.version` method. - """ - return _distro.info(pretty, best) - - -def os_release_info(): - """ - Return a dictionary containing key-value pairs for the information items - from the os-release file data source of the current OS distribution. - - See `os-release file`_ for details about these information items. - """ - return _distro.os_release_info() - - -def lsb_release_info(): - """ - Return a dictionary containing key-value pairs for the information items - from the lsb_release command data source of the current OS distribution. - - See `lsb_release command output`_ for details about these information - items. - """ - return _distro.lsb_release_info() - - -def distro_release_info(): - """ - Return a dictionary containing key-value pairs for the information items - from the distro release file data source of the current OS distribution. - - See `distro release file`_ for details about these information items. - """ - return _distro.distro_release_info() - - -def uname_info(): - """ - Return a dictionary containing key-value pairs for the information items - from the distro release file data source of the current OS distribution. - """ - return _distro.uname_info() - - -def os_release_attr(attribute): - """ - Return a single named information item from the os-release file data source - of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `os-release file`_ for details about these information items. - """ - return _distro.os_release_attr(attribute) - - -def lsb_release_attr(attribute): - """ - Return a single named information item from the lsb_release command output - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `lsb_release command output`_ for details about these information - items. - """ - return _distro.lsb_release_attr(attribute) - - -def distro_release_attr(attribute): - """ - Return a single named information item from the distro release file - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `distro release file`_ for details about these information items. - """ - return _distro.distro_release_attr(attribute) - - -def uname_attr(attribute): - """ - Return a single named information item from the distro release file - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - """ - return _distro.uname_attr(attribute) - - -class cached_property(object): - """A version of @property which caches the value. On access, it calls the - underlying function and sets the value in `__dict__` so future accesses - will not re-call the property. - """ - def __init__(self, f): - self._fname = f.__name__ - self._f = f - - def __get__(self, obj, owner): - assert obj is not None, 'call {} on an instance'.format(self._fname) - ret = obj.__dict__[self._fname] = self._f(obj) - return ret - - -class LinuxDistribution(object): - """ - Provides information about a OS distribution. - - This package creates a private module-global instance of this class with - default initialization arguments, that is used by the - `consolidated accessor functions`_ and `single source accessor functions`_. - By using default initialization arguments, that module-global instance - returns data about the current OS distribution (i.e. the distro this - package runs on). - - Normally, it is not necessary to create additional instances of this class. - However, in situations where control is needed over the exact data sources - that are used, instances of this class can be created with a specific - distro release file, or a specific os-release file, or without invoking the - lsb_release command. - """ - - def __init__(self, - include_lsb=True, - os_release_file='', - distro_release_file='', - include_uname=True): - """ - The initialization method of this class gathers information from the - available data sources, and stores that in private instance attributes. - Subsequent access to the information items uses these private instance - attributes, so that the data sources are read only once. - - Parameters: - - * ``include_lsb`` (bool): Controls whether the - `lsb_release command output`_ is included as a data source. - - If the lsb_release command is not available in the program execution - path, the data source for the lsb_release command will be empty. - - * ``os_release_file`` (string): The path name of the - `os-release file`_ that is to be used as a data source. - - An empty string (the default) will cause the default path name to - be used (see `os-release file`_ for details). - - If the specified or defaulted os-release file does not exist, the - data source for the os-release file will be empty. - - * ``distro_release_file`` (string): The path name of the - `distro release file`_ that is to be used as a data source. - - An empty string (the default) will cause a default search algorithm - to be used (see `distro release file`_ for details). - - If the specified distro release file does not exist, or if no default - distro release file can be found, the data source for the distro - release file will be empty. - - * ``include_name`` (bool): Controls whether uname command output is - included as a data source. If the uname command is not available in - the program execution path the data source for the uname command will - be empty. - - Public instance attributes: - - * ``os_release_file`` (string): The path name of the - `os-release file`_ that is actually used as a data source. The - empty string if no distro release file is used as a data source. - - * ``distro_release_file`` (string): The path name of the - `distro release file`_ that is actually used as a data source. The - empty string if no distro release file is used as a data source. - - * ``include_lsb`` (bool): The result of the ``include_lsb`` parameter. - This controls whether the lsb information will be loaded. - - * ``include_uname`` (bool): The result of the ``include_uname`` - parameter. This controls whether the uname information will - be loaded. - - Raises: - - * :py:exc:`IOError`: Some I/O issue with an os-release file or distro - release file. - - * :py:exc:`subprocess.CalledProcessError`: The lsb_release command had - some issue (other than not being available in the program execution - path). - - * :py:exc:`UnicodeError`: A data source has unexpected characters or - uses an unexpected encoding. - """ - self.os_release_file = os_release_file or \ - os.path.join(_UNIXCONFDIR, _OS_RELEASE_BASENAME) - self.distro_release_file = distro_release_file or '' # updated later - self.include_lsb = include_lsb - self.include_uname = include_uname - - def __repr__(self): - """Return repr of all info - """ - return \ - "LinuxDistribution(" \ - "os_release_file={self.os_release_file!r}, " \ - "distro_release_file={self.distro_release_file!r}, " \ - "include_lsb={self.include_lsb!r}, " \ - "include_uname={self.include_uname!r}, " \ - "_os_release_info={self._os_release_info!r}, " \ - "_lsb_release_info={self._lsb_release_info!r}, " \ - "_distro_release_info={self._distro_release_info!r}, " \ - "_uname_info={self._uname_info!r})".format( - self=self) - - def linux_distribution(self, full_distribution_name=True): - """ - Return information about the OS distribution that is compatible - with Python's :func:`platform.linux_distribution`, supporting a subset - of its parameters. - - For details, see :func:`distro.linux_distribution`. - """ - return ( - self.name() if full_distribution_name else self.id(), - self.version(), - self.codename() - ) - - def id(self): - """Return the distro ID of the OS distribution, as a string. - - For details, see :func:`distro.id`. - """ - def normalize(distro_id, table): - distro_id = distro_id.lower().replace(' ', '_') - return table.get(distro_id, distro_id) - - distro_id = self.os_release_attr('id') - if distro_id: - return normalize(distro_id, NORMALIZED_OS_ID) - - distro_id = self.lsb_release_attr('distributor_id') - if distro_id: - return normalize(distro_id, NORMALIZED_LSB_ID) - - distro_id = self.distro_release_attr('id') - if distro_id: - return normalize(distro_id, NORMALIZED_DISTRO_ID) - - distro_id = self.uname_attr('id') - if distro_id: - return normalize(distro_id, NORMALIZED_DISTRO_ID) - - return '' - - def name(self, pretty=False): - """ - Return the name of the OS distribution, as a string. - - For details, see :func:`distro.name`. - """ - name = self.os_release_attr('name') \ - or self.lsb_release_attr('distributor_id') \ - or self.distro_release_attr('name') \ - or self.uname_attr('name') - if pretty: - name = self.os_release_attr('pretty_name') \ - or self.lsb_release_attr('description') - if not name: - name = self.distro_release_attr('name') \ - or self.uname_attr('name') - version = self.version(pretty=True) - if version: - name = name + ' ' + version - return name or '' - - def version(self, pretty=False, best=False): - """ - Return the version of the OS distribution, as a string. - - For details, see :func:`distro.version`. - """ - versions = [ - self.os_release_attr('version_id'), - self.lsb_release_attr('release'), - self.distro_release_attr('version_id'), - self._parse_distro_release_content( - self.os_release_attr('pretty_name')).get('version_id', ''), - self._parse_distro_release_content( - self.lsb_release_attr('description')).get('version_id', ''), - self.uname_attr('release') - ] - version = '' - if best: - # This algorithm uses the last version in priority order that has - # the best precision. If the versions are not in conflict, that - # does not matter; otherwise, using the last one instead of the - # first one might be considered a surprise. - for v in versions: - if v.count(".") > version.count(".") or version == '': - version = v - else: - for v in versions: - if v != '': - version = v - break - if pretty and version and self.codename(): - version = u'{0} ({1})'.format(version, self.codename()) - return version - - def version_parts(self, best=False): - """ - Return the version of the OS distribution, as a tuple of version - numbers. - - For details, see :func:`distro.version_parts`. - """ - version_str = self.version(best=best) - if version_str: - version_regex = re.compile(r'(\d+)\.?(\d+)?\.?(\d+)?') - matches = version_regex.match(version_str) - if matches: - major, minor, build_number = matches.groups() - return major, minor or '', build_number or '' - return '', '', '' - - def major_version(self, best=False): - """ - Return the major version number of the current distribution. - - For details, see :func:`distro.major_version`. - """ - return self.version_parts(best)[0] - - def minor_version(self, best=False): - """ - Return the minor version number of the current distribution. - - For details, see :func:`distro.minor_version`. - """ - return self.version_parts(best)[1] - - def build_number(self, best=False): - """ - Return the build number of the current distribution. - - For details, see :func:`distro.build_number`. - """ - return self.version_parts(best)[2] - - def like(self): - """ - Return the IDs of distributions that are like the OS distribution. - - For details, see :func:`distro.like`. - """ - return self.os_release_attr('id_like') or '' - - def codename(self): - """ - Return the codename of the OS distribution. - - For details, see :func:`distro.codename`. - """ - return self.os_release_attr('codename') \ - or self.lsb_release_attr('codename') \ - or self.distro_release_attr('codename') \ - or '' - - def info(self, pretty=False, best=False): - """ - Return certain machine-readable information about the OS - distribution. - - For details, see :func:`distro.info`. - """ - return dict( - id=self.id(), - version=self.version(pretty, best), - version_parts=dict( - major=self.major_version(best), - minor=self.minor_version(best), - build_number=self.build_number(best) - ), - like=self.like(), - codename=self.codename(), - ) - - def os_release_info(self): - """ - Return a dictionary containing key-value pairs for the information - items from the os-release file data source of the OS distribution. - - For details, see :func:`distro.os_release_info`. - """ - return self._os_release_info - - def lsb_release_info(self): - """ - Return a dictionary containing key-value pairs for the information - items from the lsb_release command data source of the OS - distribution. - - For details, see :func:`distro.lsb_release_info`. - """ - return self._lsb_release_info - - def distro_release_info(self): - """ - Return a dictionary containing key-value pairs for the information - items from the distro release file data source of the OS - distribution. - - For details, see :func:`distro.distro_release_info`. - """ - return self._distro_release_info - - def uname_info(self): - """ - Return a dictionary containing key-value pairs for the information - items from the uname command data source of the OS distribution. - - For details, see :func:`distro.uname_info`. - """ - - def os_release_attr(self, attribute): - """ - Return a single named information item from the os-release file data - source of the OS distribution. - - For details, see :func:`distro.os_release_attr`. - """ - return self._os_release_info.get(attribute, '') - - def lsb_release_attr(self, attribute): - """ - Return a single named information item from the lsb_release command - output data source of the OS distribution. - - For details, see :func:`distro.lsb_release_attr`. - """ - return self._lsb_release_info.get(attribute, '') - - def distro_release_attr(self, attribute): - """ - Return a single named information item from the distro release file - data source of the OS distribution. - - For details, see :func:`distro.distro_release_attr`. - """ - return self._distro_release_info.get(attribute, '') - - def uname_attr(self, attribute): - """ - Return a single named information item from the uname command - output data source of the OS distribution. - - For details, see :func:`distro.uname_release_attr`. - """ - return self._uname_info.get(attribute, '') - - @cached_property - def _os_release_info(self): - """ - Get the information items from the specified os-release file. - - Returns: - A dictionary containing all information items. - """ - if os.path.isfile(self.os_release_file): - with open(self.os_release_file) as release_file: - return self._parse_os_release_content(release_file) - return {} - - @staticmethod - def _parse_os_release_content(lines): - """ - Parse the lines of an os-release file. - - Parameters: - - * lines: Iterable through the lines in the os-release file. - Each line must be a unicode string or a UTF-8 encoded byte - string. - - Returns: - A dictionary containing all information items. - """ - props = {} - lexer = shlex.shlex(lines, posix=True) - lexer.whitespace_split = True - - # The shlex module defines its `wordchars` variable using literals, - # making it dependent on the encoding of the Python source file. - # In Python 2.6 and 2.7, the shlex source file is encoded in - # 'iso-8859-1', and the `wordchars` variable is defined as a byte - # string. This causes a UnicodeDecodeError to be raised when the - # parsed content is a unicode object. The following fix resolves that - # (... but it should be fixed in shlex...): - if sys.version_info[0] == 2 and isinstance(lexer.wordchars, bytes): - lexer.wordchars = lexer.wordchars.decode('iso-8859-1') - - tokens = list(lexer) - for token in tokens: - # At this point, all shell-like parsing has been done (i.e. - # comments processed, quotes and backslash escape sequences - # processed, multi-line values assembled, trailing newlines - # stripped, etc.), so the tokens are now either: - # * variable assignments: var=value - # * commands or their arguments (not allowed in os-release) - if '=' in token: - k, v = token.split('=', 1) - if isinstance(v, bytes): - v = v.decode('utf-8') - props[k.lower()] = v - if k == 'VERSION': - # this handles cases in which the codename is in - # the `(CODENAME)` (rhel, centos, fedora) format - # or in the `, CODENAME` format (Ubuntu). - codename = re.search(r'(\(\D+\))|,(\s+)?\D+', v) - if codename: - codename = codename.group() - codename = codename.strip('()') - codename = codename.strip(',') - codename = codename.strip() - # codename appears within paranthese. - props['codename'] = codename - else: - props['codename'] = '' - else: - # Ignore any tokens that are not variable assignments - pass - return props - - @cached_property - def _lsb_release_info(self): - """ - Get the information items from the lsb_release command output. - - Returns: - A dictionary containing all information items. - """ - if not self.include_lsb: - return {} - with open(os.devnull, 'w') as devnull: - try: - cmd = ('lsb_release', '-a') - stdout = subprocess.check_output(cmd, stderr=devnull) - except OSError: # Command not found - return {} - content = stdout.decode(sys.getfilesystemencoding()).splitlines() - return self._parse_lsb_release_content(content) - - @staticmethod - def _parse_lsb_release_content(lines): - """ - Parse the output of the lsb_release command. - - Parameters: - - * lines: Iterable through the lines of the lsb_release output. - Each line must be a unicode string or a UTF-8 encoded byte - string. - - Returns: - A dictionary containing all information items. - """ - props = {} - for line in lines: - kv = line.strip('\n').split(':', 1) - if len(kv) != 2: - # Ignore lines without colon. - continue - k, v = kv - props.update({k.replace(' ', '_').lower(): v.strip()}) - return props - - @cached_property - def _uname_info(self): - with open(os.devnull, 'w') as devnull: - try: - cmd = ('uname', '-rs') - stdout = subprocess.check_output(cmd, stderr=devnull) - except OSError: - return {} - content = stdout.decode(sys.getfilesystemencoding()).splitlines() - return self._parse_uname_content(content) - - @staticmethod - def _parse_uname_content(lines): - props = {} - match = re.search(r'^([^\s]+)\s+([\d\.]+)', lines[0].strip()) - if match: - name, version = match.groups() - - # This is to prevent the Linux kernel version from - # appearing as the 'best' version on otherwise - # identifiable distributions. - if name == 'Linux': - return {} - props['id'] = name.lower() - props['name'] = name - props['release'] = version - return props - - @cached_property - def _distro_release_info(self): - """ - Get the information items from the specified distro release file. - - Returns: - A dictionary containing all information items. - """ - if self.distro_release_file: - # If it was specified, we use it and parse what we can, even if - # its file name or content does not match the expected pattern. - distro_info = self._parse_distro_release_file( - self.distro_release_file) - basename = os.path.basename(self.distro_release_file) - # The file name pattern for user-specified distro release files - # is somewhat more tolerant (compared to when searching for the - # file), because we want to use what was specified as best as - # possible. - match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) - if match: - distro_info['id'] = match.group(1) - return distro_info - else: - try: - basenames = os.listdir(_UNIXCONFDIR) - # We sort for repeatability in cases where there are multiple - # distro specific files; e.g. CentOS, Oracle, Enterprise all - # containing `redhat-release` on top of their own. - basenames.sort() - except OSError: - # This may occur when /etc is not readable but we can't be - # sure about the *-release files. Check common entries of - # /etc for information. If they turn out to not be there the - # error is handled in `_parse_distro_release_file()`. - basenames = ['SuSE-release', - 'arch-release', - 'base-release', - 'centos-release', - 'fedora-release', - 'gentoo-release', - 'mageia-release', - 'mandrake-release', - 'mandriva-release', - 'mandrivalinux-release', - 'manjaro-release', - 'oracle-release', - 'redhat-release', - 'sl-release', - 'slackware-version'] - for basename in basenames: - if basename in _DISTRO_RELEASE_IGNORE_BASENAMES: - continue - match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) - if match: - filepath = os.path.join(_UNIXCONFDIR, basename) - distro_info = self._parse_distro_release_file(filepath) - if 'name' in distro_info: - # The name is always present if the pattern matches - self.distro_release_file = filepath - distro_info['id'] = match.group(1) - return distro_info - return {} - - def _parse_distro_release_file(self, filepath): - """ - Parse a distro release file. - - Parameters: - - * filepath: Path name of the distro release file. - - Returns: - A dictionary containing all information items. - """ - try: - with open(filepath) as fp: - # Only parse the first line. For instance, on SLES there - # are multiple lines. We don't want them... - return self._parse_distro_release_content(fp.readline()) - except (OSError, IOError): - # Ignore not being able to read a specific, seemingly version - # related file. - # See https://github.com/nir0s/distro/issues/162 - return {} - - @staticmethod - def _parse_distro_release_content(line): - """ - Parse a line from a distro release file. - - Parameters: - * line: Line from the distro release file. Must be a unicode string - or a UTF-8 encoded byte string. - - Returns: - A dictionary containing all information items. - """ - if isinstance(line, bytes): - line = line.decode('utf-8') - matches = _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match( - line.strip()[::-1]) - distro_info = {} - if matches: - # regexp ensures non-None - distro_info['name'] = matches.group(3)[::-1] - if matches.group(2): - distro_info['version_id'] = matches.group(2)[::-1] - if matches.group(1): - distro_info['codename'] = matches.group(1)[::-1] - elif line: - distro_info['name'] = line.strip() - return distro_info - - -_distro = LinuxDistribution() - - -def main(): - logger = logging.getLogger(__name__) - logger.setLevel(logging.DEBUG) - logger.addHandler(logging.StreamHandler(sys.stdout)) - - parser = argparse.ArgumentParser(description="OS distro info tool") - parser.add_argument( - '--json', - '-j', - help="Output in machine readable format", - action="store_true") - args = parser.parse_args() - - if args.json: - logger.info(json.dumps(info(), indent=4, sort_keys=True)) - else: - logger.info('Name: %s', name(pretty=True)) - distribution_version = version(pretty=True) - logger.info('Version: %s', distribution_version) - distribution_codename = codename() - logger.info('Codename: %s', distribution_codename) - - -if __name__ == '__main__': - main() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/__init__.py deleted file mode 100644 index 0491234..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -""" -HTML parsing library based on the `WHATWG HTML specification -<https://whatwg.org/html>`_. The parser is designed to be compatible with -existing HTML found in the wild and implements well-defined error recovery that -is largely compatible with modern desktop web browsers. - -Example usage:: - - from pip._vendor import html5lib - with open("my_document.html", "rb") as f: - tree = html5lib.parse(f) - -For convenience, this module re-exports the following names: - -* :func:`~.html5parser.parse` -* :func:`~.html5parser.parseFragment` -* :class:`~.html5parser.HTMLParser` -* :func:`~.treebuilders.getTreeBuilder` -* :func:`~.treewalkers.getTreeWalker` -* :func:`~.serializer.serialize` -""" - -from __future__ import absolute_import, division, unicode_literals - -from .html5parser import HTMLParser, parse, parseFragment -from .treebuilders import getTreeBuilder -from .treewalkers import getTreeWalker -from .serializer import serialize - -__all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder", - "getTreeWalker", "serialize"] - -# this has to be at the top level, see how setup.py parses this -#: Distribution version number. -__version__ = "1.0.1" diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_ihatexml.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_ihatexml.py deleted file mode 100644 index 4c77717..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_ihatexml.py +++ /dev/null @@ -1,288 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import re -import warnings - -from .constants import DataLossWarning - -baseChar = """ -[#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6] | [#x00D8-#x00F6] | -[#x00F8-#x00FF] | [#x0100-#x0131] | [#x0134-#x013E] | [#x0141-#x0148] | -[#x014A-#x017E] | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5] | -[#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386 | -[#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE] | -[#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0 | [#x03E2-#x03F3] | -[#x0401-#x040C] | [#x040E-#x044F] | [#x0451-#x045C] | [#x045E-#x0481] | -[#x0490-#x04C4] | [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB] | -[#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559 | -[#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2] | [#x0621-#x063A] | -[#x0641-#x064A] | [#x0671-#x06B7] | [#x06BA-#x06BE] | [#x06C0-#x06CE] | -[#x06D0-#x06D3] | #x06D5 | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D | -[#x0958-#x0961] | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8] | -[#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD] | -[#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A] | [#x0A0F-#x0A10] | -[#x0A13-#x0A28] | [#x0A2A-#x0A30] | [#x0A32-#x0A33] | [#x0A35-#x0A36] | -[#x0A38-#x0A39] | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74] | -[#x0A85-#x0A8B] | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | -[#x0AAA-#x0AB0] | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD | #x0AE0 | -[#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28] | [#x0B2A-#x0B30] | -[#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D | [#x0B5C-#x0B5D] | -[#x0B5F-#x0B61] | [#x0B85-#x0B8A] | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | -[#x0B99-#x0B9A] | #x0B9C | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | -[#x0BA8-#x0BAA] | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C] | -[#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33] | [#x0C35-#x0C39] | -[#x0C60-#x0C61] | [#x0C85-#x0C8C] | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | -[#x0CAA-#x0CB3] | [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | -[#x0D05-#x0D0C] | [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39] | -[#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33] | -[#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88] | #x0E8A | -#x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F] | [#x0EA1-#x0EA3] | #x0EA5 | -#x0EA7 | [#x0EAA-#x0EAB] | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3] | -#x0EBD | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69] | -[#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103] | -[#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112] | #x113C | -#x113E | #x1140 | #x114C | #x114E | #x1150 | [#x1154-#x1155] | #x1159 | -[#x115F-#x1161] | #x1163 | #x1165 | #x1167 | #x1169 | [#x116D-#x116E] | -[#x1172-#x1173] | #x1175 | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | -[#x11B7-#x11B8] | #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9 | -[#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15] | [#x1F18-#x1F1D] | -[#x1F20-#x1F45] | [#x1F48-#x1F4D] | [#x1F50-#x1F57] | #x1F59 | #x1F5B | -#x1F5D | [#x1F5F-#x1F7D] | [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | -[#x1FC2-#x1FC4] | [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB] | -[#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126 | -[#x212A-#x212B] | #x212E | [#x2180-#x2182] | [#x3041-#x3094] | -[#x30A1-#x30FA] | [#x3105-#x312C] | [#xAC00-#xD7A3]""" - -ideographic = """[#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]""" - -combiningCharacter = """ -[#x0300-#x0345] | [#x0360-#x0361] | [#x0483-#x0486] | [#x0591-#x05A1] | -[#x05A3-#x05B9] | [#x05BB-#x05BD] | #x05BF | [#x05C1-#x05C2] | #x05C4 | -[#x064B-#x0652] | #x0670 | [#x06D6-#x06DC] | [#x06DD-#x06DF] | -[#x06E0-#x06E4] | [#x06E7-#x06E8] | [#x06EA-#x06ED] | [#x0901-#x0903] | -#x093C | [#x093E-#x094C] | #x094D | [#x0951-#x0954] | [#x0962-#x0963] | -[#x0981-#x0983] | #x09BC | #x09BE | #x09BF | [#x09C0-#x09C4] | -[#x09C7-#x09C8] | [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02 | -#x0A3C | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48] | -[#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC | -[#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD] | [#x0B01-#x0B03] | -#x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48] | [#x0B4B-#x0B4D] | -[#x0B56-#x0B57] | [#x0B82-#x0B83] | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8] | -[#x0BCA-#x0BCD] | #x0BD7 | [#x0C01-#x0C03] | [#x0C3E-#x0C44] | -[#x0C46-#x0C48] | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83] | -[#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD] | [#x0CD5-#x0CD6] | -[#x0D02-#x0D03] | [#x0D3E-#x0D43] | [#x0D46-#x0D48] | [#x0D4A-#x0D4D] | -#x0D57 | #x0E31 | [#x0E34-#x0E3A] | [#x0E47-#x0E4E] | #x0EB1 | -[#x0EB4-#x0EB9] | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD] | [#x0F18-#x0F19] | -#x0F35 | #x0F37 | #x0F39 | #x0F3E | #x0F3F | [#x0F71-#x0F84] | -[#x0F86-#x0F8B] | [#x0F90-#x0F95] | #x0F97 | [#x0F99-#x0FAD] | -[#x0FB1-#x0FB7] | #x0FB9 | [#x20D0-#x20DC] | #x20E1 | [#x302A-#x302F] | -#x3099 | #x309A""" - -digit = """ -[#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9] | [#x0966-#x096F] | -[#x09E6-#x09EF] | [#x0A66-#x0A6F] | [#x0AE6-#x0AEF] | [#x0B66-#x0B6F] | -[#x0BE7-#x0BEF] | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF] | [#x0D66-#x0D6F] | -[#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29]""" - -extender = """ -#x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 | #x0EC6 | #x3005 | -#[#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]""" - -letter = " | ".join([baseChar, ideographic]) - -# Without the -name = " | ".join([letter, digit, ".", "-", "_", combiningCharacter, - extender]) -nameFirst = " | ".join([letter, "_"]) - -reChar = re.compile(r"#x([\d|A-F]{4,4})") -reCharRange = re.compile(r"\[#x([\d|A-F]{4,4})-#x([\d|A-F]{4,4})\]") - - -def charStringToList(chars): - charRanges = [item.strip() for item in chars.split(" | ")] - rv = [] - for item in charRanges: - foundMatch = False - for regexp in (reChar, reCharRange): - match = regexp.match(item) - if match is not None: - rv.append([hexToInt(item) for item in match.groups()]) - if len(rv[-1]) == 1: - rv[-1] = rv[-1] * 2 - foundMatch = True - break - if not foundMatch: - assert len(item) == 1 - - rv.append([ord(item)] * 2) - rv = normaliseCharList(rv) - return rv - - -def normaliseCharList(charList): - charList = sorted(charList) - for item in charList: - assert item[1] >= item[0] - rv = [] - i = 0 - while i < len(charList): - j = 1 - rv.append(charList[i]) - while i + j < len(charList) and charList[i + j][0] <= rv[-1][1] + 1: - rv[-1][1] = charList[i + j][1] - j += 1 - i += j - return rv - -# We don't really support characters above the BMP :( -max_unicode = int("FFFF", 16) - - -def missingRanges(charList): - rv = [] - if charList[0] != 0: - rv.append([0, charList[0][0] - 1]) - for i, item in enumerate(charList[:-1]): - rv.append([item[1] + 1, charList[i + 1][0] - 1]) - if charList[-1][1] != max_unicode: - rv.append([charList[-1][1] + 1, max_unicode]) - return rv - - -def listToRegexpStr(charList): - rv = [] - for item in charList: - if item[0] == item[1]: - rv.append(escapeRegexp(chr(item[0]))) - else: - rv.append(escapeRegexp(chr(item[0])) + "-" + - escapeRegexp(chr(item[1]))) - return "[%s]" % "".join(rv) - - -def hexToInt(hex_str): - return int(hex_str, 16) - - -def escapeRegexp(string): - specialCharacters = (".", "^", "$", "*", "+", "?", "{", "}", - "[", "]", "|", "(", ")", "-") - for char in specialCharacters: - string = string.replace(char, "\\" + char) - - return string - -# output from the above -nonXmlNameBMPRegexp = re.compile('[\x00-,/:-@\\[-\\^`\\{-\xb6\xb8-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u02cf\u02d2-\u02ff\u0346-\u035f\u0362-\u0385\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482\u0487-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u0590\u05a2\u05ba\u05be\u05c0\u05c3\u05c5-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u063f\u0653-\u065f\u066a-\u066f\u06b8-\u06b9\u06bf\u06cf\u06d4\u06e9\u06ee-\u06ef\u06fa-\u0900\u0904\u093a-\u093b\u094e-\u0950\u0955-\u0957\u0964-\u0965\u0970-\u0980\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09bd\u09c5-\u09c6\u09c9-\u09ca\u09ce-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09f2-\u0a01\u0a03-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a58\u0a5d\u0a5f-\u0a65\u0a75-\u0a80\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0adf\u0ae1-\u0ae5\u0af0-\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3b\u0b44-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b62-\u0b65\u0b70-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bd6\u0bd8-\u0be6\u0bf0-\u0c00\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c3d\u0c45\u0c49\u0c4e-\u0c54\u0c57-\u0c5f\u0c62-\u0c65\u0c70-\u0c81\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbd\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce2-\u0ce5\u0cf0-\u0d01\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d3d\u0d44-\u0d45\u0d49\u0d4e-\u0d56\u0d58-\u0d5f\u0d62-\u0d65\u0d70-\u0e00\u0e2f\u0e3b-\u0e3f\u0e4f\u0e5a-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0f17\u0f1a-\u0f1f\u0f2a-\u0f34\u0f36\u0f38\u0f3a-\u0f3d\u0f48\u0f6a-\u0f70\u0f85\u0f8c-\u0f8f\u0f96\u0f98\u0fae-\u0fb0\u0fb8\u0fba-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u20cf\u20dd-\u20e0\u20e2-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3004\u3006\u3008-\u3020\u3030\u3036-\u3040\u3095-\u3098\u309b-\u309c\u309f-\u30a0\u30fb\u30ff-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa - -nonXmlNameFirstBMPRegexp = re.compile('[\x00-@\\[-\\^`\\{-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u0385\u0387\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u0640\u064b-\u0670\u06b8-\u06b9\u06bf\u06cf\u06d4\u06d6-\u06e4\u06e7-\u0904\u093a-\u093c\u093e-\u0957\u0962-\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09db\u09de\u09e2-\u09ef\u09f2-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a58\u0a5d\u0a5f-\u0a71\u0a75-\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abc\u0abe-\u0adf\u0ae1-\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3c\u0b3e-\u0b5b\u0b5e\u0b62-\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c5f\u0c62-\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cdd\u0cdf\u0ce2-\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d5f\u0d62-\u0e00\u0e2f\u0e31\u0e34-\u0e3f\u0e46-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eb1\u0eb4-\u0ebc\u0ebe-\u0ebf\u0ec5-\u0f3f\u0f48\u0f6a-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3006\u3008-\u3020\u302a-\u3040\u3095-\u30a0\u30fb-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa - -# Simpler things -nonPubidCharRegexp = re.compile("[^\x20\x0D\x0Aa-zA-Z0-9\\-'()+,./:=?;!*#@$_%]") - - -class InfosetFilter(object): - replacementRegexp = re.compile(r"U[\dA-F]{5,5}") - - def __init__(self, - dropXmlnsLocalName=False, - dropXmlnsAttrNs=False, - preventDoubleDashComments=False, - preventDashAtCommentEnd=False, - replaceFormFeedCharacters=True, - preventSingleQuotePubid=False): - - self.dropXmlnsLocalName = dropXmlnsLocalName - self.dropXmlnsAttrNs = dropXmlnsAttrNs - - self.preventDoubleDashComments = preventDoubleDashComments - self.preventDashAtCommentEnd = preventDashAtCommentEnd - - self.replaceFormFeedCharacters = replaceFormFeedCharacters - - self.preventSingleQuotePubid = preventSingleQuotePubid - - self.replaceCache = {} - - def coerceAttribute(self, name, namespace=None): - if self.dropXmlnsLocalName and name.startswith("xmlns:"): - warnings.warn("Attributes cannot begin with xmlns", DataLossWarning) - return None - elif (self.dropXmlnsAttrNs and - namespace == "http://www.w3.org/2000/xmlns/"): - warnings.warn("Attributes cannot be in the xml namespace", DataLossWarning) - return None - else: - return self.toXmlName(name) - - def coerceElement(self, name): - return self.toXmlName(name) - - def coerceComment(self, data): - if self.preventDoubleDashComments: - while "--" in data: - warnings.warn("Comments cannot contain adjacent dashes", DataLossWarning) - data = data.replace("--", "- -") - if data.endswith("-"): - warnings.warn("Comments cannot end in a dash", DataLossWarning) - data += " " - return data - - def coerceCharacters(self, data): - if self.replaceFormFeedCharacters: - for _ in range(data.count("\x0C")): - warnings.warn("Text cannot contain U+000C", DataLossWarning) - data = data.replace("\x0C", " ") - # Other non-xml characters - return data - - def coercePubid(self, data): - dataOutput = data - for char in nonPubidCharRegexp.findall(data): - warnings.warn("Coercing non-XML pubid", DataLossWarning) - replacement = self.getReplacementCharacter(char) - dataOutput = dataOutput.replace(char, replacement) - if self.preventSingleQuotePubid and dataOutput.find("'") >= 0: - warnings.warn("Pubid cannot contain single quote", DataLossWarning) - dataOutput = dataOutput.replace("'", self.getReplacementCharacter("'")) - return dataOutput - - def toXmlName(self, name): - nameFirst = name[0] - nameRest = name[1:] - m = nonXmlNameFirstBMPRegexp.match(nameFirst) - if m: - warnings.warn("Coercing non-XML name", DataLossWarning) - nameFirstOutput = self.getReplacementCharacter(nameFirst) - else: - nameFirstOutput = nameFirst - - nameRestOutput = nameRest - replaceChars = set(nonXmlNameBMPRegexp.findall(nameRest)) - for char in replaceChars: - warnings.warn("Coercing non-XML name", DataLossWarning) - replacement = self.getReplacementCharacter(char) - nameRestOutput = nameRestOutput.replace(char, replacement) - return nameFirstOutput + nameRestOutput - - def getReplacementCharacter(self, char): - if char in self.replaceCache: - replacement = self.replaceCache[char] - else: - replacement = self.escapeChar(char) - return replacement - - def fromXmlName(self, name): - for item in set(self.replacementRegexp.findall(name)): - name = name.replace(item, self.unescapeChar(item)) - return name - - def escapeChar(self, char): - replacement = "U%05X" % ord(char) - self.replaceCache[char] = replacement - return replacement - - def unescapeChar(self, charcode): - return chr(int(charcode[1:], 16)) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_inputstream.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_inputstream.py deleted file mode 100644 index a65e55f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_inputstream.py +++ /dev/null @@ -1,923 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from pip._vendor.six import text_type, binary_type -from pip._vendor.six.moves import http_client, urllib - -import codecs -import re - -from pip._vendor import webencodings - -from .constants import EOF, spaceCharacters, asciiLetters, asciiUppercase -from .constants import _ReparseException -from . import _utils - -from io import StringIO - -try: - from io import BytesIO -except ImportError: - BytesIO = StringIO - -# Non-unicode versions of constants for use in the pre-parser -spaceCharactersBytes = frozenset([item.encode("ascii") for item in spaceCharacters]) -asciiLettersBytes = frozenset([item.encode("ascii") for item in asciiLetters]) -asciiUppercaseBytes = frozenset([item.encode("ascii") for item in asciiUppercase]) -spacesAngleBrackets = spaceCharactersBytes | frozenset([b">", b"<"]) - - -invalid_unicode_no_surrogate = "[\u0001-\u0008\u000B\u000E-\u001F\u007F-\u009F\uFDD0-\uFDEF\uFFFE\uFFFF\U0001FFFE\U0001FFFF\U0002FFFE\U0002FFFF\U0003FFFE\U0003FFFF\U0004FFFE\U0004FFFF\U0005FFFE\U0005FFFF\U0006FFFE\U0006FFFF\U0007FFFE\U0007FFFF\U0008FFFE\U0008FFFF\U0009FFFE\U0009FFFF\U000AFFFE\U000AFFFF\U000BFFFE\U000BFFFF\U000CFFFE\U000CFFFF\U000DFFFE\U000DFFFF\U000EFFFE\U000EFFFF\U000FFFFE\U000FFFFF\U0010FFFE\U0010FFFF]" # noqa - -if _utils.supports_lone_surrogates: - # Use one extra step of indirection and create surrogates with - # eval. Not using this indirection would introduce an illegal - # unicode literal on platforms not supporting such lone - # surrogates. - assert invalid_unicode_no_surrogate[-1] == "]" and invalid_unicode_no_surrogate.count("]") == 1 - invalid_unicode_re = re.compile(invalid_unicode_no_surrogate[:-1] + - eval('"\\uD800-\\uDFFF"') + # pylint:disable=eval-used - "]") -else: - invalid_unicode_re = re.compile(invalid_unicode_no_surrogate) - -non_bmp_invalid_codepoints = set([0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, - 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, - 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, - 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, - 0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, - 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, - 0x10FFFE, 0x10FFFF]) - -ascii_punctuation_re = re.compile("[\u0009-\u000D\u0020-\u002F\u003A-\u0040\u005C\u005B-\u0060\u007B-\u007E]") - -# Cache for charsUntil() -charsUntilRegEx = {} - - -class BufferedStream(object): - """Buffering for streams that do not have buffering of their own - - The buffer is implemented as a list of chunks on the assumption that - joining many strings will be slow since it is O(n**2) - """ - - def __init__(self, stream): - self.stream = stream - self.buffer = [] - self.position = [-1, 0] # chunk number, offset - - def tell(self): - pos = 0 - for chunk in self.buffer[:self.position[0]]: - pos += len(chunk) - pos += self.position[1] - return pos - - def seek(self, pos): - assert pos <= self._bufferedBytes() - offset = pos - i = 0 - while len(self.buffer[i]) < offset: - offset -= len(self.buffer[i]) - i += 1 - self.position = [i, offset] - - def read(self, bytes): - if not self.buffer: - return self._readStream(bytes) - elif (self.position[0] == len(self.buffer) and - self.position[1] == len(self.buffer[-1])): - return self._readStream(bytes) - else: - return self._readFromBuffer(bytes) - - def _bufferedBytes(self): - return sum([len(item) for item in self.buffer]) - - def _readStream(self, bytes): - data = self.stream.read(bytes) - self.buffer.append(data) - self.position[0] += 1 - self.position[1] = len(data) - return data - - def _readFromBuffer(self, bytes): - remainingBytes = bytes - rv = [] - bufferIndex = self.position[0] - bufferOffset = self.position[1] - while bufferIndex < len(self.buffer) and remainingBytes != 0: - assert remainingBytes > 0 - bufferedData = self.buffer[bufferIndex] - - if remainingBytes <= len(bufferedData) - bufferOffset: - bytesToRead = remainingBytes - self.position = [bufferIndex, bufferOffset + bytesToRead] - else: - bytesToRead = len(bufferedData) - bufferOffset - self.position = [bufferIndex, len(bufferedData)] - bufferIndex += 1 - rv.append(bufferedData[bufferOffset:bufferOffset + bytesToRead]) - remainingBytes -= bytesToRead - - bufferOffset = 0 - - if remainingBytes: - rv.append(self._readStream(remainingBytes)) - - return b"".join(rv) - - -def HTMLInputStream(source, **kwargs): - # Work around Python bug #20007: read(0) closes the connection. - # http://bugs.python.org/issue20007 - if (isinstance(source, http_client.HTTPResponse) or - # Also check for addinfourl wrapping HTTPResponse - (isinstance(source, urllib.response.addbase) and - isinstance(source.fp, http_client.HTTPResponse))): - isUnicode = False - elif hasattr(source, "read"): - isUnicode = isinstance(source.read(0), text_type) - else: - isUnicode = isinstance(source, text_type) - - if isUnicode: - encodings = [x for x in kwargs if x.endswith("_encoding")] - if encodings: - raise TypeError("Cannot set an encoding with a unicode input, set %r" % encodings) - - return HTMLUnicodeInputStream(source, **kwargs) - else: - return HTMLBinaryInputStream(source, **kwargs) - - -class HTMLUnicodeInputStream(object): - """Provides a unicode stream of characters to the HTMLTokenizer. - - This class takes care of character encoding and removing or replacing - incorrect byte-sequences and also provides column and line tracking. - - """ - - _defaultChunkSize = 10240 - - def __init__(self, source): - """Initialises the HTMLInputStream. - - HTMLInputStream(source, [encoding]) -> Normalized stream from source - for use by html5lib. - - source can be either a file-object, local filename or a string. - - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element) - - """ - - if not _utils.supports_lone_surrogates: - # Such platforms will have already checked for such - # surrogate errors, so no need to do this checking. - self.reportCharacterErrors = None - elif len("\U0010FFFF") == 1: - self.reportCharacterErrors = self.characterErrorsUCS4 - else: - self.reportCharacterErrors = self.characterErrorsUCS2 - - # List of where new lines occur - self.newLines = [0] - - self.charEncoding = (lookupEncoding("utf-8"), "certain") - self.dataStream = self.openStream(source) - - self.reset() - - def reset(self): - self.chunk = "" - self.chunkSize = 0 - self.chunkOffset = 0 - self.errors = [] - - # number of (complete) lines in previous chunks - self.prevNumLines = 0 - # number of columns in the last line of the previous chunk - self.prevNumCols = 0 - - # Deal with CR LF and surrogates split over chunk boundaries - self._bufferedCharacter = None - - def openStream(self, source): - """Produces a file object from source. - - source can be either a file object, local filename or a string. - - """ - # Already a file object - if hasattr(source, 'read'): - stream = source - else: - stream = StringIO(source) - - return stream - - def _position(self, offset): - chunk = self.chunk - nLines = chunk.count('\n', 0, offset) - positionLine = self.prevNumLines + nLines - lastLinePos = chunk.rfind('\n', 0, offset) - if lastLinePos == -1: - positionColumn = self.prevNumCols + offset - else: - positionColumn = offset - (lastLinePos + 1) - return (positionLine, positionColumn) - - def position(self): - """Returns (line, col) of the current position in the stream.""" - line, col = self._position(self.chunkOffset) - return (line + 1, col) - - def char(self): - """ Read one character from the stream or queue if available. Return - EOF when EOF is reached. - """ - # Read a new chunk from the input stream if necessary - if self.chunkOffset >= self.chunkSize: - if not self.readChunk(): - return EOF - - chunkOffset = self.chunkOffset - char = self.chunk[chunkOffset] - self.chunkOffset = chunkOffset + 1 - - return char - - def readChunk(self, chunkSize=None): - if chunkSize is None: - chunkSize = self._defaultChunkSize - - self.prevNumLines, self.prevNumCols = self._position(self.chunkSize) - - self.chunk = "" - self.chunkSize = 0 - self.chunkOffset = 0 - - data = self.dataStream.read(chunkSize) - - # Deal with CR LF and surrogates broken across chunks - if self._bufferedCharacter: - data = self._bufferedCharacter + data - self._bufferedCharacter = None - elif not data: - # We have no more data, bye-bye stream - return False - - if len(data) > 1: - lastv = ord(data[-1]) - if lastv == 0x0D or 0xD800 <= lastv <= 0xDBFF: - self._bufferedCharacter = data[-1] - data = data[:-1] - - if self.reportCharacterErrors: - self.reportCharacterErrors(data) - - # Replace invalid characters - data = data.replace("\r\n", "\n") - data = data.replace("\r", "\n") - - self.chunk = data - self.chunkSize = len(data) - - return True - - def characterErrorsUCS4(self, data): - for _ in range(len(invalid_unicode_re.findall(data))): - self.errors.append("invalid-codepoint") - - def characterErrorsUCS2(self, data): - # Someone picked the wrong compile option - # You lose - skip = False - for match in invalid_unicode_re.finditer(data): - if skip: - continue - codepoint = ord(match.group()) - pos = match.start() - # Pretty sure there should be endianness issues here - if _utils.isSurrogatePair(data[pos:pos + 2]): - # We have a surrogate pair! - char_val = _utils.surrogatePairToCodepoint(data[pos:pos + 2]) - if char_val in non_bmp_invalid_codepoints: - self.errors.append("invalid-codepoint") - skip = True - elif (codepoint >= 0xD800 and codepoint <= 0xDFFF and - pos == len(data) - 1): - self.errors.append("invalid-codepoint") - else: - skip = False - self.errors.append("invalid-codepoint") - - def charsUntil(self, characters, opposite=False): - """ Returns a string of characters from the stream up to but not - including any character in 'characters' or EOF. 'characters' must be - a container that supports the 'in' method and iteration over its - characters. - """ - - # Use a cache of regexps to find the required characters - try: - chars = charsUntilRegEx[(characters, opposite)] - except KeyError: - if __debug__: - for c in characters: - assert(ord(c) < 128) - regex = "".join(["\\x%02x" % ord(c) for c in characters]) - if not opposite: - regex = "^%s" % regex - chars = charsUntilRegEx[(characters, opposite)] = re.compile("[%s]+" % regex) - - rv = [] - - while True: - # Find the longest matching prefix - m = chars.match(self.chunk, self.chunkOffset) - if m is None: - # If nothing matched, and it wasn't because we ran out of chunk, - # then stop - if self.chunkOffset != self.chunkSize: - break - else: - end = m.end() - # If not the whole chunk matched, return everything - # up to the part that didn't match - if end != self.chunkSize: - rv.append(self.chunk[self.chunkOffset:end]) - self.chunkOffset = end - break - # If the whole remainder of the chunk matched, - # use it all and read the next chunk - rv.append(self.chunk[self.chunkOffset:]) - if not self.readChunk(): - # Reached EOF - break - - r = "".join(rv) - return r - - def unget(self, char): - # Only one character is allowed to be ungotten at once - it must - # be consumed again before any further call to unget - if char is not None: - if self.chunkOffset == 0: - # unget is called quite rarely, so it's a good idea to do - # more work here if it saves a bit of work in the frequently - # called char and charsUntil. - # So, just prepend the ungotten character onto the current - # chunk: - self.chunk = char + self.chunk - self.chunkSize += 1 - else: - self.chunkOffset -= 1 - assert self.chunk[self.chunkOffset] == char - - -class HTMLBinaryInputStream(HTMLUnicodeInputStream): - """Provides a unicode stream of characters to the HTMLTokenizer. - - This class takes care of character encoding and removing or replacing - incorrect byte-sequences and also provides column and line tracking. - - """ - - def __init__(self, source, override_encoding=None, transport_encoding=None, - same_origin_parent_encoding=None, likely_encoding=None, - default_encoding="windows-1252", useChardet=True): - """Initialises the HTMLInputStream. - - HTMLInputStream(source, [encoding]) -> Normalized stream from source - for use by html5lib. - - source can be either a file-object, local filename or a string. - - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element) - - """ - # Raw Stream - for unicode objects this will encode to utf-8 and set - # self.charEncoding as appropriate - self.rawStream = self.openStream(source) - - HTMLUnicodeInputStream.__init__(self, self.rawStream) - - # Encoding Information - # Number of bytes to use when looking for a meta element with - # encoding information - self.numBytesMeta = 1024 - # Number of bytes to use when using detecting encoding using chardet - self.numBytesChardet = 100 - # Things from args - self.override_encoding = override_encoding - self.transport_encoding = transport_encoding - self.same_origin_parent_encoding = same_origin_parent_encoding - self.likely_encoding = likely_encoding - self.default_encoding = default_encoding - - # Determine encoding - self.charEncoding = self.determineEncoding(useChardet) - assert self.charEncoding[0] is not None - - # Call superclass - self.reset() - - def reset(self): - self.dataStream = self.charEncoding[0].codec_info.streamreader(self.rawStream, 'replace') - HTMLUnicodeInputStream.reset(self) - - def openStream(self, source): - """Produces a file object from source. - - source can be either a file object, local filename or a string. - - """ - # Already a file object - if hasattr(source, 'read'): - stream = source - else: - stream = BytesIO(source) - - try: - stream.seek(stream.tell()) - except: # pylint:disable=bare-except - stream = BufferedStream(stream) - - return stream - - def determineEncoding(self, chardet=True): - # BOMs take precedence over everything - # This will also read past the BOM if present - charEncoding = self.detectBOM(), "certain" - if charEncoding[0] is not None: - return charEncoding - - # If we've been overriden, we've been overriden - charEncoding = lookupEncoding(self.override_encoding), "certain" - if charEncoding[0] is not None: - return charEncoding - - # Now check the transport layer - charEncoding = lookupEncoding(self.transport_encoding), "certain" - if charEncoding[0] is not None: - return charEncoding - - # Look for meta elements with encoding information - charEncoding = self.detectEncodingMeta(), "tentative" - if charEncoding[0] is not None: - return charEncoding - - # Parent document encoding - charEncoding = lookupEncoding(self.same_origin_parent_encoding), "tentative" - if charEncoding[0] is not None and not charEncoding[0].name.startswith("utf-16"): - return charEncoding - - # "likely" encoding - charEncoding = lookupEncoding(self.likely_encoding), "tentative" - if charEncoding[0] is not None: - return charEncoding - - # Guess with chardet, if available - if chardet: - try: - from pip._vendor.chardet.universaldetector import UniversalDetector - except ImportError: - pass - else: - buffers = [] - detector = UniversalDetector() - while not detector.done: - buffer = self.rawStream.read(self.numBytesChardet) - assert isinstance(buffer, bytes) - if not buffer: - break - buffers.append(buffer) - detector.feed(buffer) - detector.close() - encoding = lookupEncoding(detector.result['encoding']) - self.rawStream.seek(0) - if encoding is not None: - return encoding, "tentative" - - # Try the default encoding - charEncoding = lookupEncoding(self.default_encoding), "tentative" - if charEncoding[0] is not None: - return charEncoding - - # Fallback to html5lib's default if even that hasn't worked - return lookupEncoding("windows-1252"), "tentative" - - def changeEncoding(self, newEncoding): - assert self.charEncoding[1] != "certain" - newEncoding = lookupEncoding(newEncoding) - if newEncoding is None: - return - if newEncoding.name in ("utf-16be", "utf-16le"): - newEncoding = lookupEncoding("utf-8") - assert newEncoding is not None - elif newEncoding == self.charEncoding[0]: - self.charEncoding = (self.charEncoding[0], "certain") - else: - self.rawStream.seek(0) - self.charEncoding = (newEncoding, "certain") - self.reset() - raise _ReparseException("Encoding changed from %s to %s" % (self.charEncoding[0], newEncoding)) - - def detectBOM(self): - """Attempts to detect at BOM at the start of the stream. If - an encoding can be determined from the BOM return the name of the - encoding otherwise return None""" - bomDict = { - codecs.BOM_UTF8: 'utf-8', - codecs.BOM_UTF16_LE: 'utf-16le', codecs.BOM_UTF16_BE: 'utf-16be', - codecs.BOM_UTF32_LE: 'utf-32le', codecs.BOM_UTF32_BE: 'utf-32be' - } - - # Go to beginning of file and read in 4 bytes - string = self.rawStream.read(4) - assert isinstance(string, bytes) - - # Try detecting the BOM using bytes from the string - encoding = bomDict.get(string[:3]) # UTF-8 - seek = 3 - if not encoding: - # Need to detect UTF-32 before UTF-16 - encoding = bomDict.get(string) # UTF-32 - seek = 4 - if not encoding: - encoding = bomDict.get(string[:2]) # UTF-16 - seek = 2 - - # Set the read position past the BOM if one was found, otherwise - # set it to the start of the stream - if encoding: - self.rawStream.seek(seek) - return lookupEncoding(encoding) - else: - self.rawStream.seek(0) - return None - - def detectEncodingMeta(self): - """Report the encoding declared by the meta element - """ - buffer = self.rawStream.read(self.numBytesMeta) - assert isinstance(buffer, bytes) - parser = EncodingParser(buffer) - self.rawStream.seek(0) - encoding = parser.getEncoding() - - if encoding is not None and encoding.name in ("utf-16be", "utf-16le"): - encoding = lookupEncoding("utf-8") - - return encoding - - -class EncodingBytes(bytes): - """String-like object with an associated position and various extra methods - If the position is ever greater than the string length then an exception is - raised""" - def __new__(self, value): - assert isinstance(value, bytes) - return bytes.__new__(self, value.lower()) - - def __init__(self, value): - # pylint:disable=unused-argument - self._position = -1 - - def __iter__(self): - return self - - def __next__(self): - p = self._position = self._position + 1 - if p >= len(self): - raise StopIteration - elif p < 0: - raise TypeError - return self[p:p + 1] - - def next(self): - # Py2 compat - return self.__next__() - - def previous(self): - p = self._position - if p >= len(self): - raise StopIteration - elif p < 0: - raise TypeError - self._position = p = p - 1 - return self[p:p + 1] - - def setPosition(self, position): - if self._position >= len(self): - raise StopIteration - self._position = position - - def getPosition(self): - if self._position >= len(self): - raise StopIteration - if self._position >= 0: - return self._position - else: - return None - - position = property(getPosition, setPosition) - - def getCurrentByte(self): - return self[self.position:self.position + 1] - - currentByte = property(getCurrentByte) - - def skip(self, chars=spaceCharactersBytes): - """Skip past a list of characters""" - p = self.position # use property for the error-checking - while p < len(self): - c = self[p:p + 1] - if c not in chars: - self._position = p - return c - p += 1 - self._position = p - return None - - def skipUntil(self, chars): - p = self.position - while p < len(self): - c = self[p:p + 1] - if c in chars: - self._position = p - return c - p += 1 - self._position = p - return None - - def matchBytes(self, bytes): - """Look for a sequence of bytes at the start of a string. If the bytes - are found return True and advance the position to the byte after the - match. Otherwise return False and leave the position alone""" - p = self.position - data = self[p:p + len(bytes)] - rv = data.startswith(bytes) - if rv: - self.position += len(bytes) - return rv - - def jumpTo(self, bytes): - """Look for the next sequence of bytes matching a given sequence. If - a match is found advance the position to the last byte of the match""" - newPosition = self[self.position:].find(bytes) - if newPosition > -1: - # XXX: This is ugly, but I can't see a nicer way to fix this. - if self._position == -1: - self._position = 0 - self._position += (newPosition + len(bytes) - 1) - return True - else: - raise StopIteration - - -class EncodingParser(object): - """Mini parser for detecting character encoding from meta elements""" - - def __init__(self, data): - """string - the data to work on for encoding detection""" - self.data = EncodingBytes(data) - self.encoding = None - - def getEncoding(self): - methodDispatch = ( - (b"<!--", self.handleComment), - (b"<meta", self.handleMeta), - (b"</", self.handlePossibleEndTag), - (b"<!", self.handleOther), - (b"<?", self.handleOther), - (b"<", self.handlePossibleStartTag)) - for _ in self.data: - keepParsing = True - for key, method in methodDispatch: - if self.data.matchBytes(key): - try: - keepParsing = method() - break - except StopIteration: - keepParsing = False - break - if not keepParsing: - break - - return self.encoding - - def handleComment(self): - """Skip over comments""" - return self.data.jumpTo(b"-->") - - def handleMeta(self): - if self.data.currentByte not in spaceCharactersBytes: - # if we have <meta not followed by a space so just keep going - return True - # We have a valid meta element we want to search for attributes - hasPragma = False - pendingEncoding = None - while True: - # Try to find the next attribute after the current position - attr = self.getAttribute() - if attr is None: - return True - else: - if attr[0] == b"http-equiv": - hasPragma = attr[1] == b"content-type" - if hasPragma and pendingEncoding is not None: - self.encoding = pendingEncoding - return False - elif attr[0] == b"charset": - tentativeEncoding = attr[1] - codec = lookupEncoding(tentativeEncoding) - if codec is not None: - self.encoding = codec - return False - elif attr[0] == b"content": - contentParser = ContentAttrParser(EncodingBytes(attr[1])) - tentativeEncoding = contentParser.parse() - if tentativeEncoding is not None: - codec = lookupEncoding(tentativeEncoding) - if codec is not None: - if hasPragma: - self.encoding = codec - return False - else: - pendingEncoding = codec - - def handlePossibleStartTag(self): - return self.handlePossibleTag(False) - - def handlePossibleEndTag(self): - next(self.data) - return self.handlePossibleTag(True) - - def handlePossibleTag(self, endTag): - data = self.data - if data.currentByte not in asciiLettersBytes: - # If the next byte is not an ascii letter either ignore this - # fragment (possible start tag case) or treat it according to - # handleOther - if endTag: - data.previous() - self.handleOther() - return True - - c = data.skipUntil(spacesAngleBrackets) - if c == b"<": - # return to the first step in the overall "two step" algorithm - # reprocessing the < byte - data.previous() - else: - # Read all attributes - attr = self.getAttribute() - while attr is not None: - attr = self.getAttribute() - return True - - def handleOther(self): - return self.data.jumpTo(b">") - - def getAttribute(self): - """Return a name,value pair for the next attribute in the stream, - if one is found, or None""" - data = self.data - # Step 1 (skip chars) - c = data.skip(spaceCharactersBytes | frozenset([b"/"])) - assert c is None or len(c) == 1 - # Step 2 - if c in (b">", None): - return None - # Step 3 - attrName = [] - attrValue = [] - # Step 4 attribute name - while True: - if c == b"=" and attrName: - break - elif c in spaceCharactersBytes: - # Step 6! - c = data.skip() - break - elif c in (b"/", b">"): - return b"".join(attrName), b"" - elif c in asciiUppercaseBytes: - attrName.append(c.lower()) - elif c is None: - return None - else: - attrName.append(c) - # Step 5 - c = next(data) - # Step 7 - if c != b"=": - data.previous() - return b"".join(attrName), b"" - # Step 8 - next(data) - # Step 9 - c = data.skip() - # Step 10 - if c in (b"'", b'"'): - # 10.1 - quoteChar = c - while True: - # 10.2 - c = next(data) - # 10.3 - if c == quoteChar: - next(data) - return b"".join(attrName), b"".join(attrValue) - # 10.4 - elif c in asciiUppercaseBytes: - attrValue.append(c.lower()) - # 10.5 - else: - attrValue.append(c) - elif c == b">": - return b"".join(attrName), b"" - elif c in asciiUppercaseBytes: - attrValue.append(c.lower()) - elif c is None: - return None - else: - attrValue.append(c) - # Step 11 - while True: - c = next(data) - if c in spacesAngleBrackets: - return b"".join(attrName), b"".join(attrValue) - elif c in asciiUppercaseBytes: - attrValue.append(c.lower()) - elif c is None: - return None - else: - attrValue.append(c) - - -class ContentAttrParser(object): - def __init__(self, data): - assert isinstance(data, bytes) - self.data = data - - def parse(self): - try: - # Check if the attr name is charset - # otherwise return - self.data.jumpTo(b"charset") - self.data.position += 1 - self.data.skip() - if not self.data.currentByte == b"=": - # If there is no = sign keep looking for attrs - return None - self.data.position += 1 - self.data.skip() - # Look for an encoding between matching quote marks - if self.data.currentByte in (b'"', b"'"): - quoteMark = self.data.currentByte - self.data.position += 1 - oldPosition = self.data.position - if self.data.jumpTo(quoteMark): - return self.data[oldPosition:self.data.position] - else: - return None - else: - # Unquoted value - oldPosition = self.data.position - try: - self.data.skipUntil(spaceCharactersBytes) - return self.data[oldPosition:self.data.position] - except StopIteration: - # Return the whole remaining value - return self.data[oldPosition:] - except StopIteration: - return None - - -def lookupEncoding(encoding): - """Return the python codec name corresponding to an encoding or None if the - string doesn't correspond to a valid encoding.""" - if isinstance(encoding, binary_type): - try: - encoding = encoding.decode("ascii") - except UnicodeDecodeError: - return None - - if encoding is not None: - try: - return webencodings.lookup(encoding) - except AttributeError: - return None - else: - return None diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_tokenizer.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_tokenizer.py deleted file mode 100644 index 178f6e7..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_tokenizer.py +++ /dev/null @@ -1,1721 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from pip._vendor.six import unichr as chr - -from collections import deque - -from .constants import spaceCharacters -from .constants import entities -from .constants import asciiLetters, asciiUpper2Lower -from .constants import digits, hexDigits, EOF -from .constants import tokenTypes, tagTokenTypes -from .constants import replacementCharacters - -from ._inputstream import HTMLInputStream - -from ._trie import Trie - -entitiesTrie = Trie(entities) - - -class HTMLTokenizer(object): - """ This class takes care of tokenizing HTML. - - * self.currentToken - Holds the token that is currently being processed. - - * self.state - Holds a reference to the method to be invoked... XXX - - * self.stream - Points to HTMLInputStream object. - """ - - def __init__(self, stream, parser=None, **kwargs): - - self.stream = HTMLInputStream(stream, **kwargs) - self.parser = parser - - # Setup the initial tokenizer state - self.escapeFlag = False - self.lastFourChars = [] - self.state = self.dataState - self.escape = False - - # The current token being created - self.currentToken = None - super(HTMLTokenizer, self).__init__() - - def __iter__(self): - """ This is where the magic happens. - - We do our usually processing through the states and when we have a token - to return we yield the token which pauses processing until the next token - is requested. - """ - self.tokenQueue = deque([]) - # Start processing. When EOF is reached self.state will return False - # instead of True and the loop will terminate. - while self.state(): - while self.stream.errors: - yield {"type": tokenTypes["ParseError"], "data": self.stream.errors.pop(0)} - while self.tokenQueue: - yield self.tokenQueue.popleft() - - def consumeNumberEntity(self, isHex): - """This function returns either U+FFFD or the character based on the - decimal or hexadecimal representation. It also discards ";" if present. - If not present self.tokenQueue.append({"type": tokenTypes["ParseError"]}) is invoked. - """ - - allowed = digits - radix = 10 - if isHex: - allowed = hexDigits - radix = 16 - - charStack = [] - - # Consume all the characters that are in range while making sure we - # don't hit an EOF. - c = self.stream.char() - while c in allowed and c is not EOF: - charStack.append(c) - c = self.stream.char() - - # Convert the set of characters consumed to an int. - charAsInt = int("".join(charStack), radix) - - # Certain characters get replaced with others - if charAsInt in replacementCharacters: - char = replacementCharacters[charAsInt] - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "illegal-codepoint-for-numeric-entity", - "datavars": {"charAsInt": charAsInt}}) - elif ((0xD800 <= charAsInt <= 0xDFFF) or - (charAsInt > 0x10FFFF)): - char = "\uFFFD" - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "illegal-codepoint-for-numeric-entity", - "datavars": {"charAsInt": charAsInt}}) - else: - # Should speed up this check somehow (e.g. move the set to a constant) - if ((0x0001 <= charAsInt <= 0x0008) or - (0x000E <= charAsInt <= 0x001F) or - (0x007F <= charAsInt <= 0x009F) or - (0xFDD0 <= charAsInt <= 0xFDEF) or - charAsInt in frozenset([0x000B, 0xFFFE, 0xFFFF, 0x1FFFE, - 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, - 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, - 0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE, - 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, - 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, - 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, - 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, - 0xFFFFF, 0x10FFFE, 0x10FFFF])): - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": - "illegal-codepoint-for-numeric-entity", - "datavars": {"charAsInt": charAsInt}}) - try: - # Try/except needed as UCS-2 Python builds' unichar only works - # within the BMP. - char = chr(charAsInt) - except ValueError: - v = charAsInt - 0x10000 - char = chr(0xD800 | (v >> 10)) + chr(0xDC00 | (v & 0x3FF)) - - # Discard the ; if present. Otherwise, put it back on the queue and - # invoke parseError on parser. - if c != ";": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "numeric-entity-without-semicolon"}) - self.stream.unget(c) - - return char - - def consumeEntity(self, allowedChar=None, fromAttribute=False): - # Initialise to the default output for when no entity is matched - output = "&" - - charStack = [self.stream.char()] - if (charStack[0] in spaceCharacters or charStack[0] in (EOF, "<", "&") or - (allowedChar is not None and allowedChar == charStack[0])): - self.stream.unget(charStack[0]) - - elif charStack[0] == "#": - # Read the next character to see if it's hex or decimal - hex = False - charStack.append(self.stream.char()) - if charStack[-1] in ("x", "X"): - hex = True - charStack.append(self.stream.char()) - - # charStack[-1] should be the first digit - if (hex and charStack[-1] in hexDigits) \ - or (not hex and charStack[-1] in digits): - # At least one digit found, so consume the whole number - self.stream.unget(charStack[-1]) - output = self.consumeNumberEntity(hex) - else: - # No digits found - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "expected-numeric-entity"}) - self.stream.unget(charStack.pop()) - output = "&" + "".join(charStack) - - else: - # At this point in the process might have named entity. Entities - # are stored in the global variable "entities". - # - # Consume characters and compare to these to a substring of the - # entity names in the list until the substring no longer matches. - while (charStack[-1] is not EOF): - if not entitiesTrie.has_keys_with_prefix("".join(charStack)): - break - charStack.append(self.stream.char()) - - # At this point we have a string that starts with some characters - # that may match an entity - # Try to find the longest entity the string will match to take care - # of ¬i for instance. - try: - entityName = entitiesTrie.longest_prefix("".join(charStack[:-1])) - entityLength = len(entityName) - except KeyError: - entityName = None - - if entityName is not None: - if entityName[-1] != ";": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "named-entity-without-semicolon"}) - if (entityName[-1] != ";" and fromAttribute and - (charStack[entityLength] in asciiLetters or - charStack[entityLength] in digits or - charStack[entityLength] == "=")): - self.stream.unget(charStack.pop()) - output = "&" + "".join(charStack) - else: - output = entities[entityName] - self.stream.unget(charStack.pop()) - output += "".join(charStack[entityLength:]) - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-named-entity"}) - self.stream.unget(charStack.pop()) - output = "&" + "".join(charStack) - - if fromAttribute: - self.currentToken["data"][-1][1] += output - else: - if output in spaceCharacters: - tokenType = "SpaceCharacters" - else: - tokenType = "Characters" - self.tokenQueue.append({"type": tokenTypes[tokenType], "data": output}) - - def processEntityInAttribute(self, allowedChar): - """This method replaces the need for "entityInAttributeValueState". - """ - self.consumeEntity(allowedChar=allowedChar, fromAttribute=True) - - def emitCurrentToken(self): - """This method is a generic handler for emitting the tags. It also sets - the state to "data" because that's what's needed after a token has been - emitted. - """ - token = self.currentToken - # Add token to the queue to be yielded - if (token["type"] in tagTokenTypes): - token["name"] = token["name"].translate(asciiUpper2Lower) - if token["type"] == tokenTypes["EndTag"]: - if token["data"]: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "attributes-in-end-tag"}) - if token["selfClosing"]: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "self-closing-flag-on-end-tag"}) - self.tokenQueue.append(token) - self.state = self.dataState - - # Below are the various tokenizer states worked out. - def dataState(self): - data = self.stream.char() - if data == "&": - self.state = self.entityDataState - elif data == "<": - self.state = self.tagOpenState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\u0000"}) - elif data is EOF: - # Tokenization ends. - return False - elif data in spaceCharacters: - # Directly after emitting a token you switch back to the "data - # state". At that point spaceCharacters are important so they are - # emitted separately. - self.tokenQueue.append({"type": tokenTypes["SpaceCharacters"], "data": - data + self.stream.charsUntil(spaceCharacters, True)}) - # No need to update lastFourChars here, since the first space will - # have already been appended to lastFourChars and will have broken - # any <!-- or --> sequences - else: - chars = self.stream.charsUntil(("&", "<", "\u0000")) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + chars}) - return True - - def entityDataState(self): - self.consumeEntity() - self.state = self.dataState - return True - - def rcdataState(self): - data = self.stream.char() - if data == "&": - self.state = self.characterReferenceInRcdata - elif data == "<": - self.state = self.rcdataLessThanSignState - elif data == EOF: - # Tokenization ends. - return False - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - elif data in spaceCharacters: - # Directly after emitting a token you switch back to the "data - # state". At that point spaceCharacters are important so they are - # emitted separately. - self.tokenQueue.append({"type": tokenTypes["SpaceCharacters"], "data": - data + self.stream.charsUntil(spaceCharacters, True)}) - # No need to update lastFourChars here, since the first space will - # have already been appended to lastFourChars and will have broken - # any <!-- or --> sequences - else: - chars = self.stream.charsUntil(("&", "<", "\u0000")) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + chars}) - return True - - def characterReferenceInRcdata(self): - self.consumeEntity() - self.state = self.rcdataState - return True - - def rawtextState(self): - data = self.stream.char() - if data == "<": - self.state = self.rawtextLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - elif data == EOF: - # Tokenization ends. - return False - else: - chars = self.stream.charsUntil(("<", "\u0000")) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + chars}) - return True - - def scriptDataState(self): - data = self.stream.char() - if data == "<": - self.state = self.scriptDataLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - elif data == EOF: - # Tokenization ends. - return False - else: - chars = self.stream.charsUntil(("<", "\u0000")) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + chars}) - return True - - def plaintextState(self): - data = self.stream.char() - if data == EOF: - # Tokenization ends. - return False - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + self.stream.charsUntil("\u0000")}) - return True - - def tagOpenState(self): - data = self.stream.char() - if data == "!": - self.state = self.markupDeclarationOpenState - elif data == "/": - self.state = self.closeTagOpenState - elif data in asciiLetters: - self.currentToken = {"type": tokenTypes["StartTag"], - "name": data, "data": [], - "selfClosing": False, - "selfClosingAcknowledged": False} - self.state = self.tagNameState - elif data == ">": - # XXX In theory it could be something besides a tag name. But - # do we really care? - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-tag-name-but-got-right-bracket"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<>"}) - self.state = self.dataState - elif data == "?": - # XXX In theory it could be something besides a tag name. But - # do we really care? - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-tag-name-but-got-question-mark"}) - self.stream.unget(data) - self.state = self.bogusCommentState - else: - # XXX - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-tag-name"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.stream.unget(data) - self.state = self.dataState - return True - - def closeTagOpenState(self): - data = self.stream.char() - if data in asciiLetters: - self.currentToken = {"type": tokenTypes["EndTag"], "name": data, - "data": [], "selfClosing": False} - self.state = self.tagNameState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-closing-tag-but-got-right-bracket"}) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-closing-tag-but-got-eof"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) - self.state = self.dataState - else: - # XXX data can be _'_... - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-closing-tag-but-got-char", - "datavars": {"data": data}}) - self.stream.unget(data) - self.state = self.bogusCommentState - return True - - def tagNameState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeAttributeNameState - elif data == ">": - self.emitCurrentToken() - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-tag-name"}) - self.state = self.dataState - elif data == "/": - self.state = self.selfClosingStartTagState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["name"] += "\uFFFD" - else: - self.currentToken["name"] += data - # (Don't use charsUntil here, because tag names are - # very short and it's faster to not do anything fancy) - return True - - def rcdataLessThanSignState(self): - data = self.stream.char() - if data == "/": - self.temporaryBuffer = "" - self.state = self.rcdataEndTagOpenState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.stream.unget(data) - self.state = self.rcdataState - return True - - def rcdataEndTagOpenState(self): - data = self.stream.char() - if data in asciiLetters: - self.temporaryBuffer += data - self.state = self.rcdataEndTagNameState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) - self.stream.unget(data) - self.state = self.rcdataState - return True - - def rcdataEndTagNameState(self): - appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower() - data = self.stream.char() - if data in spaceCharacters and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.state = self.beforeAttributeNameState - elif data == "/" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.state = self.selfClosingStartTagState - elif data == ">" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.emitCurrentToken() - self.state = self.dataState - elif data in asciiLetters: - self.temporaryBuffer += data - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "</" + self.temporaryBuffer}) - self.stream.unget(data) - self.state = self.rcdataState - return True - - def rawtextLessThanSignState(self): - data = self.stream.char() - if data == "/": - self.temporaryBuffer = "" - self.state = self.rawtextEndTagOpenState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.stream.unget(data) - self.state = self.rawtextState - return True - - def rawtextEndTagOpenState(self): - data = self.stream.char() - if data in asciiLetters: - self.temporaryBuffer += data - self.state = self.rawtextEndTagNameState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) - self.stream.unget(data) - self.state = self.rawtextState - return True - - def rawtextEndTagNameState(self): - appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower() - data = self.stream.char() - if data in spaceCharacters and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.state = self.beforeAttributeNameState - elif data == "/" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.state = self.selfClosingStartTagState - elif data == ">" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.emitCurrentToken() - self.state = self.dataState - elif data in asciiLetters: - self.temporaryBuffer += data - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "</" + self.temporaryBuffer}) - self.stream.unget(data) - self.state = self.rawtextState - return True - - def scriptDataLessThanSignState(self): - data = self.stream.char() - if data == "/": - self.temporaryBuffer = "" - self.state = self.scriptDataEndTagOpenState - elif data == "!": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<!"}) - self.state = self.scriptDataEscapeStartState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.stream.unget(data) - self.state = self.scriptDataState - return True - - def scriptDataEndTagOpenState(self): - data = self.stream.char() - if data in asciiLetters: - self.temporaryBuffer += data - self.state = self.scriptDataEndTagNameState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) - self.stream.unget(data) - self.state = self.scriptDataState - return True - - def scriptDataEndTagNameState(self): - appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower() - data = self.stream.char() - if data in spaceCharacters and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.state = self.beforeAttributeNameState - elif data == "/" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.state = self.selfClosingStartTagState - elif data == ">" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.emitCurrentToken() - self.state = self.dataState - elif data in asciiLetters: - self.temporaryBuffer += data - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "</" + self.temporaryBuffer}) - self.stream.unget(data) - self.state = self.scriptDataState - return True - - def scriptDataEscapeStartState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - self.state = self.scriptDataEscapeStartDashState - else: - self.stream.unget(data) - self.state = self.scriptDataState - return True - - def scriptDataEscapeStartDashState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - self.state = self.scriptDataEscapedDashDashState - else: - self.stream.unget(data) - self.state = self.scriptDataState - return True - - def scriptDataEscapedState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - self.state = self.scriptDataEscapedDashState - elif data == "<": - self.state = self.scriptDataEscapedLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - elif data == EOF: - self.state = self.dataState - else: - chars = self.stream.charsUntil(("<", "-", "\u0000")) - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": - data + chars}) - return True - - def scriptDataEscapedDashState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - self.state = self.scriptDataEscapedDashDashState - elif data == "<": - self.state = self.scriptDataEscapedLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - self.state = self.scriptDataEscapedState - elif data == EOF: - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.state = self.scriptDataEscapedState - return True - - def scriptDataEscapedDashDashState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - elif data == "<": - self.state = self.scriptDataEscapedLessThanSignState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": ">"}) - self.state = self.scriptDataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - self.state = self.scriptDataEscapedState - elif data == EOF: - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.state = self.scriptDataEscapedState - return True - - def scriptDataEscapedLessThanSignState(self): - data = self.stream.char() - if data == "/": - self.temporaryBuffer = "" - self.state = self.scriptDataEscapedEndTagOpenState - elif data in asciiLetters: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<" + data}) - self.temporaryBuffer = data - self.state = self.scriptDataDoubleEscapeStartState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.stream.unget(data) - self.state = self.scriptDataEscapedState - return True - - def scriptDataEscapedEndTagOpenState(self): - data = self.stream.char() - if data in asciiLetters: - self.temporaryBuffer = data - self.state = self.scriptDataEscapedEndTagNameState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) - self.stream.unget(data) - self.state = self.scriptDataEscapedState - return True - - def scriptDataEscapedEndTagNameState(self): - appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower() - data = self.stream.char() - if data in spaceCharacters and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.state = self.beforeAttributeNameState - elif data == "/" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.state = self.selfClosingStartTagState - elif data == ">" and appropriate: - self.currentToken = {"type": tokenTypes["EndTag"], - "name": self.temporaryBuffer, - "data": [], "selfClosing": False} - self.emitCurrentToken() - self.state = self.dataState - elif data in asciiLetters: - self.temporaryBuffer += data - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "</" + self.temporaryBuffer}) - self.stream.unget(data) - self.state = self.scriptDataEscapedState - return True - - def scriptDataDoubleEscapeStartState(self): - data = self.stream.char() - if data in (spaceCharacters | frozenset(("/", ">"))): - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - if self.temporaryBuffer.lower() == "script": - self.state = self.scriptDataDoubleEscapedState - else: - self.state = self.scriptDataEscapedState - elif data in asciiLetters: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.temporaryBuffer += data - else: - self.stream.unget(data) - self.state = self.scriptDataEscapedState - return True - - def scriptDataDoubleEscapedState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - self.state = self.scriptDataDoubleEscapedDashState - elif data == "<": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.state = self.scriptDataDoubleEscapedLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - elif data == EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-script-in-script"}) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - return True - - def scriptDataDoubleEscapedDashState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - self.state = self.scriptDataDoubleEscapedDashDashState - elif data == "<": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.state = self.scriptDataDoubleEscapedLessThanSignState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - self.state = self.scriptDataDoubleEscapedState - elif data == EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-script-in-script"}) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.state = self.scriptDataDoubleEscapedState - return True - - def scriptDataDoubleEscapedDashDashState(self): - data = self.stream.char() - if data == "-": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) - elif data == "<": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) - self.state = self.scriptDataDoubleEscapedLessThanSignState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": ">"}) - self.state = self.scriptDataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": "\uFFFD"}) - self.state = self.scriptDataDoubleEscapedState - elif data == EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-script-in-script"}) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.state = self.scriptDataDoubleEscapedState - return True - - def scriptDataDoubleEscapedLessThanSignState(self): - data = self.stream.char() - if data == "/": - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "/"}) - self.temporaryBuffer = "" - self.state = self.scriptDataDoubleEscapeEndState - else: - self.stream.unget(data) - self.state = self.scriptDataDoubleEscapedState - return True - - def scriptDataDoubleEscapeEndState(self): - data = self.stream.char() - if data in (spaceCharacters | frozenset(("/", ">"))): - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - if self.temporaryBuffer.lower() == "script": - self.state = self.scriptDataEscapedState - else: - self.state = self.scriptDataDoubleEscapedState - elif data in asciiLetters: - self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) - self.temporaryBuffer += data - else: - self.stream.unget(data) - self.state = self.scriptDataDoubleEscapedState - return True - - def beforeAttributeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - self.stream.charsUntil(spaceCharacters, True) - elif data in asciiLetters: - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - elif data == ">": - self.emitCurrentToken() - elif data == "/": - self.state = self.selfClosingStartTagState - elif data in ("'", '"', "=", "<"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "invalid-character-in-attribute-name"}) - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"].append(["\uFFFD", ""]) - self.state = self.attributeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-attribute-name-but-got-eof"}) - self.state = self.dataState - else: - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - return True - - def attributeNameState(self): - data = self.stream.char() - leavingThisState = True - emitToken = False - if data == "=": - self.state = self.beforeAttributeValueState - elif data in asciiLetters: - self.currentToken["data"][-1][0] += data +\ - self.stream.charsUntil(asciiLetters, True) - leavingThisState = False - elif data == ">": - # XXX If we emit here the attributes are converted to a dict - # without being checked and when the code below runs we error - # because data is a dict not a list - emitToken = True - elif data in spaceCharacters: - self.state = self.afterAttributeNameState - elif data == "/": - self.state = self.selfClosingStartTagState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][0] += "\uFFFD" - leavingThisState = False - elif data in ("'", '"', "<"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": - "invalid-character-in-attribute-name"}) - self.currentToken["data"][-1][0] += data - leavingThisState = False - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "eof-in-attribute-name"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][0] += data - leavingThisState = False - - if leavingThisState: - # Attributes are not dropped at this stage. That happens when the - # start tag token is emitted so values can still be safely appended - # to attributes, but we do want to report the parse error in time. - self.currentToken["data"][-1][0] = ( - self.currentToken["data"][-1][0].translate(asciiUpper2Lower)) - for name, _ in self.currentToken["data"][:-1]: - if self.currentToken["data"][-1][0] == name: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "duplicate-attribute"}) - break - # XXX Fix for above XXX - if emitToken: - self.emitCurrentToken() - return True - - def afterAttributeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - self.stream.charsUntil(spaceCharacters, True) - elif data == "=": - self.state = self.beforeAttributeValueState - elif data == ">": - self.emitCurrentToken() - elif data in asciiLetters: - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - elif data == "/": - self.state = self.selfClosingStartTagState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"].append(["\uFFFD", ""]) - self.state = self.attributeNameState - elif data in ("'", '"', "<"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "invalid-character-after-attribute-name"}) - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-end-of-tag-but-got-eof"}) - self.state = self.dataState - else: - self.currentToken["data"].append([data, ""]) - self.state = self.attributeNameState - return True - - def beforeAttributeValueState(self): - data = self.stream.char() - if data in spaceCharacters: - self.stream.charsUntil(spaceCharacters, True) - elif data == "\"": - self.state = self.attributeValueDoubleQuotedState - elif data == "&": - self.state = self.attributeValueUnQuotedState - self.stream.unget(data) - elif data == "'": - self.state = self.attributeValueSingleQuotedState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-attribute-value-but-got-right-bracket"}) - self.emitCurrentToken() - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][1] += "\uFFFD" - self.state = self.attributeValueUnQuotedState - elif data in ("=", "<", "`"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "equals-in-unquoted-attribute-value"}) - self.currentToken["data"][-1][1] += data - self.state = self.attributeValueUnQuotedState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-attribute-value-but-got-eof"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][1] += data - self.state = self.attributeValueUnQuotedState - return True - - def attributeValueDoubleQuotedState(self): - data = self.stream.char() - if data == "\"": - self.state = self.afterAttributeValueState - elif data == "&": - self.processEntityInAttribute('"') - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][1] += "\uFFFD" - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-attribute-value-double-quote"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][1] += data +\ - self.stream.charsUntil(("\"", "&", "\u0000")) - return True - - def attributeValueSingleQuotedState(self): - data = self.stream.char() - if data == "'": - self.state = self.afterAttributeValueState - elif data == "&": - self.processEntityInAttribute("'") - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][1] += "\uFFFD" - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-attribute-value-single-quote"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][1] += data +\ - self.stream.charsUntil(("'", "&", "\u0000")) - return True - - def attributeValueUnQuotedState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeAttributeNameState - elif data == "&": - self.processEntityInAttribute(">") - elif data == ">": - self.emitCurrentToken() - elif data in ('"', "'", "=", "<", "`"): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-character-in-unquoted-attribute-value"}) - self.currentToken["data"][-1][1] += data - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"][-1][1] += "\uFFFD" - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-attribute-value-no-quotes"}) - self.state = self.dataState - else: - self.currentToken["data"][-1][1] += data + self.stream.charsUntil( - frozenset(("&", ">", '"', "'", "=", "<", "`", "\u0000")) | spaceCharacters) - return True - - def afterAttributeValueState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeAttributeNameState - elif data == ">": - self.emitCurrentToken() - elif data == "/": - self.state = self.selfClosingStartTagState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-EOF-after-attribute-value"}) - self.stream.unget(data) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-character-after-attribute-value"}) - self.stream.unget(data) - self.state = self.beforeAttributeNameState - return True - - def selfClosingStartTagState(self): - data = self.stream.char() - if data == ">": - self.currentToken["selfClosing"] = True - self.emitCurrentToken() - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": - "unexpected-EOF-after-solidus-in-tag"}) - self.stream.unget(data) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-character-after-solidus-in-tag"}) - self.stream.unget(data) - self.state = self.beforeAttributeNameState - return True - - def bogusCommentState(self): - # Make a new comment token and give it as value all the characters - # until the first > or EOF (charsUntil checks for EOF automatically) - # and emit it. - data = self.stream.charsUntil(">") - data = data.replace("\u0000", "\uFFFD") - self.tokenQueue.append( - {"type": tokenTypes["Comment"], "data": data}) - - # Eat the character directly after the bogus comment which is either a - # ">" or an EOF. - self.stream.char() - self.state = self.dataState - return True - - def markupDeclarationOpenState(self): - charStack = [self.stream.char()] - if charStack[-1] == "-": - charStack.append(self.stream.char()) - if charStack[-1] == "-": - self.currentToken = {"type": tokenTypes["Comment"], "data": ""} - self.state = self.commentStartState - return True - elif charStack[-1] in ('d', 'D'): - matched = True - for expected in (('o', 'O'), ('c', 'C'), ('t', 'T'), - ('y', 'Y'), ('p', 'P'), ('e', 'E')): - charStack.append(self.stream.char()) - if charStack[-1] not in expected: - matched = False - break - if matched: - self.currentToken = {"type": tokenTypes["Doctype"], - "name": "", - "publicId": None, "systemId": None, - "correct": True} - self.state = self.doctypeState - return True - elif (charStack[-1] == "[" and - self.parser is not None and - self.parser.tree.openElements and - self.parser.tree.openElements[-1].namespace != self.parser.tree.defaultNamespace): - matched = True - for expected in ["C", "D", "A", "T", "A", "["]: - charStack.append(self.stream.char()) - if charStack[-1] != expected: - matched = False - break - if matched: - self.state = self.cdataSectionState - return True - - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-dashes-or-doctype"}) - - while charStack: - self.stream.unget(charStack.pop()) - self.state = self.bogusCommentState - return True - - def commentStartState(self): - data = self.stream.char() - if data == "-": - self.state = self.commentStartDashState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "incorrect-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += data - self.state = self.commentState - return True - - def commentStartDashState(self): - data = self.stream.char() - if data == "-": - self.state = self.commentEndState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "-\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "incorrect-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += "-" + data - self.state = self.commentState - return True - - def commentState(self): - data = self.stream.char() - if data == "-": - self.state = self.commentEndDashState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "\uFFFD" - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "eof-in-comment"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += data + \ - self.stream.charsUntil(("-", "\u0000")) - return True - - def commentEndDashState(self): - data = self.stream.char() - if data == "-": - self.state = self.commentEndState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "-\uFFFD" - self.state = self.commentState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment-end-dash"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += "-" + data - self.state = self.commentState - return True - - def commentEndState(self): - data = self.stream.char() - if data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "--\uFFFD" - self.state = self.commentState - elif data == "!": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-bang-after-double-dash-in-comment"}) - self.state = self.commentEndBangState - elif data == "-": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-dash-after-double-dash-in-comment"}) - self.currentToken["data"] += data - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment-double-dash"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - # XXX - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-comment"}) - self.currentToken["data"] += "--" + data - self.state = self.commentState - return True - - def commentEndBangState(self): - data = self.stream.char() - if data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == "-": - self.currentToken["data"] += "--!" - self.state = self.commentEndDashState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["data"] += "--!\uFFFD" - self.state = self.commentState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-comment-end-bang-state"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["data"] += "--!" + data - self.state = self.commentState - return True - - def doctypeState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeDoctypeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-doctype-name-but-got-eof"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "need-space-after-doctype"}) - self.stream.unget(data) - self.state = self.beforeDoctypeNameState - return True - - def beforeDoctypeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-doctype-name-but-got-right-bracket"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["name"] = "\uFFFD" - self.state = self.doctypeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-doctype-name-but-got-eof"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["name"] = data - self.state = self.doctypeNameState - return True - - def doctypeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower) - self.state = self.afterDoctypeNameState - elif data == ">": - self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["name"] += "\uFFFD" - self.state = self.doctypeNameState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype-name"}) - self.currentToken["correct"] = False - self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["name"] += data - return True - - def afterDoctypeNameState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.currentToken["correct"] = False - self.stream.unget(data) - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - if data in ("p", "P"): - matched = True - for expected in (("u", "U"), ("b", "B"), ("l", "L"), - ("i", "I"), ("c", "C")): - data = self.stream.char() - if data not in expected: - matched = False - break - if matched: - self.state = self.afterDoctypePublicKeywordState - return True - elif data in ("s", "S"): - matched = True - for expected in (("y", "Y"), ("s", "S"), ("t", "T"), - ("e", "E"), ("m", "M")): - data = self.stream.char() - if data not in expected: - matched = False - break - if matched: - self.state = self.afterDoctypeSystemKeywordState - return True - - # All the characters read before the current 'data' will be - # [a-zA-Z], so they're garbage in the bogus doctype and can be - # discarded; only the latest character might be '>' or EOF - # and needs to be ungetted - self.stream.unget(data) - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "expected-space-or-right-bracket-in-doctype", "datavars": - {"data": data}}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - - return True - - def afterDoctypePublicKeywordState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeDoctypePublicIdentifierState - elif data in ("'", '"'): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.stream.unget(data) - self.state = self.beforeDoctypePublicIdentifierState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.stream.unget(data) - self.state = self.beforeDoctypePublicIdentifierState - return True - - def beforeDoctypePublicIdentifierState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == "\"": - self.currentToken["publicId"] = "" - self.state = self.doctypePublicIdentifierDoubleQuotedState - elif data == "'": - self.currentToken["publicId"] = "" - self.state = self.doctypePublicIdentifierSingleQuotedState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - return True - - def doctypePublicIdentifierDoubleQuotedState(self): - data = self.stream.char() - if data == "\"": - self.state = self.afterDoctypePublicIdentifierState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["publicId"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["publicId"] += data - return True - - def doctypePublicIdentifierSingleQuotedState(self): - data = self.stream.char() - if data == "'": - self.state = self.afterDoctypePublicIdentifierState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["publicId"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["publicId"] += data - return True - - def afterDoctypePublicIdentifierState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.betweenDoctypePublicAndSystemIdentifiersState - elif data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == '"': - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierDoubleQuotedState - elif data == "'": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierSingleQuotedState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - return True - - def betweenDoctypePublicAndSystemIdentifiersState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data == '"': - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierDoubleQuotedState - elif data == "'": - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierSingleQuotedState - elif data == EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - return True - - def afterDoctypeSystemKeywordState(self): - data = self.stream.char() - if data in spaceCharacters: - self.state = self.beforeDoctypeSystemIdentifierState - elif data in ("'", '"'): - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.stream.unget(data) - self.state = self.beforeDoctypeSystemIdentifierState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.stream.unget(data) - self.state = self.beforeDoctypeSystemIdentifierState - return True - - def beforeDoctypeSystemIdentifierState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == "\"": - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierDoubleQuotedState - elif data == "'": - self.currentToken["systemId"] = "" - self.state = self.doctypeSystemIdentifierSingleQuotedState - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.currentToken["correct"] = False - self.state = self.bogusDoctypeState - return True - - def doctypeSystemIdentifierDoubleQuotedState(self): - data = self.stream.char() - if data == "\"": - self.state = self.afterDoctypeSystemIdentifierState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["systemId"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["systemId"] += data - return True - - def doctypeSystemIdentifierSingleQuotedState(self): - data = self.stream.char() - if data == "'": - self.state = self.afterDoctypeSystemIdentifierState - elif data == "\u0000": - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - self.currentToken["systemId"] += "\uFFFD" - elif data == ">": - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-end-of-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.currentToken["systemId"] += data - return True - - def afterDoctypeSystemIdentifierState(self): - data = self.stream.char() - if data in spaceCharacters: - pass - elif data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "eof-in-doctype"}) - self.currentToken["correct"] = False - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": - "unexpected-char-in-doctype"}) - self.state = self.bogusDoctypeState - return True - - def bogusDoctypeState(self): - data = self.stream.char() - if data == ">": - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - elif data is EOF: - # XXX EMIT - self.stream.unget(data) - self.tokenQueue.append(self.currentToken) - self.state = self.dataState - else: - pass - return True - - def cdataSectionState(self): - data = [] - while True: - data.append(self.stream.charsUntil("]")) - data.append(self.stream.charsUntil(">")) - char = self.stream.char() - if char == EOF: - break - else: - assert char == ">" - if data[-1][-2:] == "]]": - data[-1] = data[-1][:-2] - break - else: - data.append(char) - - data = "".join(data) # pylint:disable=redefined-variable-type - # Deal with null here rather than in the parser - nullCount = data.count("\u0000") - if nullCount > 0: - for _ in range(nullCount): - self.tokenQueue.append({"type": tokenTypes["ParseError"], - "data": "invalid-codepoint"}) - data = data.replace("\u0000", "\uFFFD") - if data: - self.tokenQueue.append({"type": tokenTypes["Characters"], - "data": data}) - self.state = self.dataState - return True diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/__init__.py deleted file mode 100644 index a5ba4bf..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from .py import Trie as PyTrie - -Trie = PyTrie - -# pylint:disable=wrong-import-position -try: - from .datrie import Trie as DATrie -except ImportError: - pass -else: - Trie = DATrie -# pylint:enable=wrong-import-position diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/_base.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/_base.py deleted file mode 100644 index a1158bb..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/_base.py +++ /dev/null @@ -1,37 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from collections import Mapping - - -class Trie(Mapping): - """Abstract base class for tries""" - - def keys(self, prefix=None): - # pylint:disable=arguments-differ - keys = super(Trie, self).keys() - - if prefix is None: - return set(keys) - - return {x for x in keys if x.startswith(prefix)} - - def has_keys_with_prefix(self, prefix): - for key in self.keys(): - if key.startswith(prefix): - return True - - return False - - def longest_prefix(self, prefix): - if prefix in self: - return prefix - - for i in range(1, len(prefix) + 1): - if prefix[:-i] in self: - return prefix[:-i] - - raise KeyError(prefix) - - def longest_prefix_item(self, prefix): - lprefix = self.longest_prefix(prefix) - return (lprefix, self[lprefix]) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/datrie.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/datrie.py deleted file mode 100644 index e2e5f86..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/datrie.py +++ /dev/null @@ -1,44 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from datrie import Trie as DATrie -from pip._vendor.six import text_type - -from ._base import Trie as ABCTrie - - -class Trie(ABCTrie): - def __init__(self, data): - chars = set() - for key in data.keys(): - if not isinstance(key, text_type): - raise TypeError("All keys must be strings") - for char in key: - chars.add(char) - - self._data = DATrie("".join(chars)) - for key, value in data.items(): - self._data[key] = value - - def __contains__(self, key): - return key in self._data - - def __len__(self): - return len(self._data) - - def __iter__(self): - raise NotImplementedError() - - def __getitem__(self, key): - return self._data[key] - - def keys(self, prefix=None): - return self._data.keys(prefix) - - def has_keys_with_prefix(self, prefix): - return self._data.has_keys_with_prefix(prefix) - - def longest_prefix(self, prefix): - return self._data.longest_prefix(prefix) - - def longest_prefix_item(self, prefix): - return self._data.longest_prefix_item(prefix) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/py.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/py.py deleted file mode 100644 index c178b21..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/py.py +++ /dev/null @@ -1,67 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals -from pip._vendor.six import text_type - -from bisect import bisect_left - -from ._base import Trie as ABCTrie - - -class Trie(ABCTrie): - def __init__(self, data): - if not all(isinstance(x, text_type) for x in data.keys()): - raise TypeError("All keys must be strings") - - self._data = data - self._keys = sorted(data.keys()) - self._cachestr = "" - self._cachepoints = (0, len(data)) - - def __contains__(self, key): - return key in self._data - - def __len__(self): - return len(self._data) - - def __iter__(self): - return iter(self._data) - - def __getitem__(self, key): - return self._data[key] - - def keys(self, prefix=None): - if prefix is None or prefix == "" or not self._keys: - return set(self._keys) - - if prefix.startswith(self._cachestr): - lo, hi = self._cachepoints - start = i = bisect_left(self._keys, prefix, lo, hi) - else: - start = i = bisect_left(self._keys, prefix) - - keys = set() - if start == len(self._keys): - return keys - - while self._keys[i].startswith(prefix): - keys.add(self._keys[i]) - i += 1 - - self._cachestr = prefix - self._cachepoints = (start, i) - - return keys - - def has_keys_with_prefix(self, prefix): - if prefix in self._data: - return True - - if prefix.startswith(self._cachestr): - lo, hi = self._cachepoints - i = bisect_left(self._keys, prefix, lo, hi) - else: - i = bisect_left(self._keys, prefix) - - if i == len(self._keys): - return False - - return self._keys[i].startswith(prefix) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_utils.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_utils.py deleted file mode 100644 index 0703afb..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_utils.py +++ /dev/null @@ -1,124 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from types import ModuleType - -from pip._vendor.six import text_type - -try: - import xml.etree.cElementTree as default_etree -except ImportError: - import xml.etree.ElementTree as default_etree - - -__all__ = ["default_etree", "MethodDispatcher", "isSurrogatePair", - "surrogatePairToCodepoint", "moduleFactoryFactory", - "supports_lone_surrogates"] - - -# Platforms not supporting lone surrogates (\uD800-\uDFFF) should be -# caught by the below test. In general this would be any platform -# using UTF-16 as its encoding of unicode strings, such as -# Jython. This is because UTF-16 itself is based on the use of such -# surrogates, and there is no mechanism to further escape such -# escapes. -try: - _x = eval('"\\uD800"') # pylint:disable=eval-used - if not isinstance(_x, text_type): - # We need this with u"" because of http://bugs.jython.org/issue2039 - _x = eval('u"\\uD800"') # pylint:disable=eval-used - assert isinstance(_x, text_type) -except: # pylint:disable=bare-except - supports_lone_surrogates = False -else: - supports_lone_surrogates = True - - -class MethodDispatcher(dict): - """Dict with 2 special properties: - - On initiation, keys that are lists, sets or tuples are converted to - multiple keys so accessing any one of the items in the original - list-like object returns the matching value - - md = MethodDispatcher({("foo", "bar"):"baz"}) - md["foo"] == "baz" - - A default value which can be set through the default attribute. - """ - - def __init__(self, items=()): - # Using _dictEntries instead of directly assigning to self is about - # twice as fast. Please do careful performance testing before changing - # anything here. - _dictEntries = [] - for name, value in items: - if isinstance(name, (list, tuple, frozenset, set)): - for item in name: - _dictEntries.append((item, value)) - else: - _dictEntries.append((name, value)) - dict.__init__(self, _dictEntries) - assert len(self) == len(_dictEntries) - self.default = None - - def __getitem__(self, key): - return dict.get(self, key, self.default) - - -# Some utility functions to deal with weirdness around UCS2 vs UCS4 -# python builds - -def isSurrogatePair(data): - return (len(data) == 2 and - ord(data[0]) >= 0xD800 and ord(data[0]) <= 0xDBFF and - ord(data[1]) >= 0xDC00 and ord(data[1]) <= 0xDFFF) - - -def surrogatePairToCodepoint(data): - char_val = (0x10000 + (ord(data[0]) - 0xD800) * 0x400 + - (ord(data[1]) - 0xDC00)) - return char_val - -# Module Factory Factory (no, this isn't Java, I know) -# Here to stop this being duplicated all over the place. - - -def moduleFactoryFactory(factory): - moduleCache = {} - - def moduleFactory(baseModule, *args, **kwargs): - if isinstance(ModuleType.__name__, type("")): - name = "_%s_factory" % baseModule.__name__ - else: - name = b"_%s_factory" % baseModule.__name__ - - kwargs_tuple = tuple(kwargs.items()) - - try: - return moduleCache[name][args][kwargs_tuple] - except KeyError: - mod = ModuleType(name) - objs = factory(baseModule, *args, **kwargs) - mod.__dict__.update(objs) - if "name" not in moduleCache: - moduleCache[name] = {} - if "args" not in moduleCache[name]: - moduleCache[name][args] = {} - if "kwargs" not in moduleCache[name][args]: - moduleCache[name][args][kwargs_tuple] = {} - moduleCache[name][args][kwargs_tuple] = mod - return mod - - return moduleFactory - - -def memoize(func): - cache = {} - - def wrapped(*args, **kwargs): - key = (tuple(args), tuple(kwargs.items())) - if key not in cache: - cache[key] = func(*args, **kwargs) - return cache[key] - - return wrapped diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/constants.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/constants.py deleted file mode 100644 index 1ff8041..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/constants.py +++ /dev/null @@ -1,2947 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import string - -EOF = None - -E = { - "null-character": - "Null character in input stream, replaced with U+FFFD.", - "invalid-codepoint": - "Invalid codepoint in stream.", - "incorrectly-placed-solidus": - "Solidus (/) incorrectly placed in tag.", - "incorrect-cr-newline-entity": - "Incorrect CR newline entity, replaced with LF.", - "illegal-windows-1252-entity": - "Entity used with illegal number (windows-1252 reference).", - "cant-convert-numeric-entity": - "Numeric entity couldn't be converted to character " - "(codepoint U+%(charAsInt)08x).", - "illegal-codepoint-for-numeric-entity": - "Numeric entity represents an illegal codepoint: " - "U+%(charAsInt)08x.", - "numeric-entity-without-semicolon": - "Numeric entity didn't end with ';'.", - "expected-numeric-entity-but-got-eof": - "Numeric entity expected. Got end of file instead.", - "expected-numeric-entity": - "Numeric entity expected but none found.", - "named-entity-without-semicolon": - "Named entity didn't end with ';'.", - "expected-named-entity": - "Named entity expected. Got none.", - "attributes-in-end-tag": - "End tag contains unexpected attributes.", - 'self-closing-flag-on-end-tag': - "End tag contains unexpected self-closing flag.", - "expected-tag-name-but-got-right-bracket": - "Expected tag name. Got '>' instead.", - "expected-tag-name-but-got-question-mark": - "Expected tag name. Got '?' instead. (HTML doesn't " - "support processing instructions.)", - "expected-tag-name": - "Expected tag name. Got something else instead", - "expected-closing-tag-but-got-right-bracket": - "Expected closing tag. Got '>' instead. Ignoring '</>'.", - "expected-closing-tag-but-got-eof": - "Expected closing tag. Unexpected end of file.", - "expected-closing-tag-but-got-char": - "Expected closing tag. Unexpected character '%(data)s' found.", - "eof-in-tag-name": - "Unexpected end of file in the tag name.", - "expected-attribute-name-but-got-eof": - "Unexpected end of file. Expected attribute name instead.", - "eof-in-attribute-name": - "Unexpected end of file in attribute name.", - "invalid-character-in-attribute-name": - "Invalid character in attribute name", - "duplicate-attribute": - "Dropped duplicate attribute on tag.", - "expected-end-of-tag-name-but-got-eof": - "Unexpected end of file. Expected = or end of tag.", - "expected-attribute-value-but-got-eof": - "Unexpected end of file. Expected attribute value.", - "expected-attribute-value-but-got-right-bracket": - "Expected attribute value. Got '>' instead.", - 'equals-in-unquoted-attribute-value': - "Unexpected = in unquoted attribute", - 'unexpected-character-in-unquoted-attribute-value': - "Unexpected character in unquoted attribute", - "invalid-character-after-attribute-name": - "Unexpected character after attribute name.", - "unexpected-character-after-attribute-value": - "Unexpected character after attribute value.", - "eof-in-attribute-value-double-quote": - "Unexpected end of file in attribute value (\").", - "eof-in-attribute-value-single-quote": - "Unexpected end of file in attribute value (').", - "eof-in-attribute-value-no-quotes": - "Unexpected end of file in attribute value.", - "unexpected-EOF-after-solidus-in-tag": - "Unexpected end of file in tag. Expected >", - "unexpected-character-after-solidus-in-tag": - "Unexpected character after / in tag. Expected >", - "expected-dashes-or-doctype": - "Expected '--' or 'DOCTYPE'. Not found.", - "unexpected-bang-after-double-dash-in-comment": - "Unexpected ! after -- in comment", - "unexpected-space-after-double-dash-in-comment": - "Unexpected space after -- in comment", - "incorrect-comment": - "Incorrect comment.", - "eof-in-comment": - "Unexpected end of file in comment.", - "eof-in-comment-end-dash": - "Unexpected end of file in comment (-)", - "unexpected-dash-after-double-dash-in-comment": - "Unexpected '-' after '--' found in comment.", - "eof-in-comment-double-dash": - "Unexpected end of file in comment (--).", - "eof-in-comment-end-space-state": - "Unexpected end of file in comment.", - "eof-in-comment-end-bang-state": - "Unexpected end of file in comment.", - "unexpected-char-in-comment": - "Unexpected character in comment found.", - "need-space-after-doctype": - "No space after literal string 'DOCTYPE'.", - "expected-doctype-name-but-got-right-bracket": - "Unexpected > character. Expected DOCTYPE name.", - "expected-doctype-name-but-got-eof": - "Unexpected end of file. Expected DOCTYPE name.", - "eof-in-doctype-name": - "Unexpected end of file in DOCTYPE name.", - "eof-in-doctype": - "Unexpected end of file in DOCTYPE.", - "expected-space-or-right-bracket-in-doctype": - "Expected space or '>'. Got '%(data)s'", - "unexpected-end-of-doctype": - "Unexpected end of DOCTYPE.", - "unexpected-char-in-doctype": - "Unexpected character in DOCTYPE.", - "eof-in-innerhtml": - "XXX innerHTML EOF", - "unexpected-doctype": - "Unexpected DOCTYPE. Ignored.", - "non-html-root": - "html needs to be the first start tag.", - "expected-doctype-but-got-eof": - "Unexpected End of file. Expected DOCTYPE.", - "unknown-doctype": - "Erroneous DOCTYPE.", - "expected-doctype-but-got-chars": - "Unexpected non-space characters. Expected DOCTYPE.", - "expected-doctype-but-got-start-tag": - "Unexpected start tag (%(name)s). Expected DOCTYPE.", - "expected-doctype-but-got-end-tag": - "Unexpected end tag (%(name)s). Expected DOCTYPE.", - "end-tag-after-implied-root": - "Unexpected end tag (%(name)s) after the (implied) root element.", - "expected-named-closing-tag-but-got-eof": - "Unexpected end of file. Expected end tag (%(name)s).", - "two-heads-are-not-better-than-one": - "Unexpected start tag head in existing head. Ignored.", - "unexpected-end-tag": - "Unexpected end tag (%(name)s). Ignored.", - "unexpected-start-tag-out-of-my-head": - "Unexpected start tag (%(name)s) that can be in head. Moved.", - "unexpected-start-tag": - "Unexpected start tag (%(name)s).", - "missing-end-tag": - "Missing end tag (%(name)s).", - "missing-end-tags": - "Missing end tags (%(name)s).", - "unexpected-start-tag-implies-end-tag": - "Unexpected start tag (%(startName)s) " - "implies end tag (%(endName)s).", - "unexpected-start-tag-treated-as": - "Unexpected start tag (%(originalName)s). Treated as %(newName)s.", - "deprecated-tag": - "Unexpected start tag %(name)s. Don't use it!", - "unexpected-start-tag-ignored": - "Unexpected start tag %(name)s. Ignored.", - "expected-one-end-tag-but-got-another": - "Unexpected end tag (%(gotName)s). " - "Missing end tag (%(expectedName)s).", - "end-tag-too-early": - "End tag (%(name)s) seen too early. Expected other end tag.", - "end-tag-too-early-named": - "Unexpected end tag (%(gotName)s). Expected end tag (%(expectedName)s).", - "end-tag-too-early-ignored": - "End tag (%(name)s) seen too early. Ignored.", - "adoption-agency-1.1": - "End tag (%(name)s) violates step 1, " - "paragraph 1 of the adoption agency algorithm.", - "adoption-agency-1.2": - "End tag (%(name)s) violates step 1, " - "paragraph 2 of the adoption agency algorithm.", - "adoption-agency-1.3": - "End tag (%(name)s) violates step 1, " - "paragraph 3 of the adoption agency algorithm.", - "adoption-agency-4.4": - "End tag (%(name)s) violates step 4, " - "paragraph 4 of the adoption agency algorithm.", - "unexpected-end-tag-treated-as": - "Unexpected end tag (%(originalName)s). Treated as %(newName)s.", - "no-end-tag": - "This element (%(name)s) has no end tag.", - "unexpected-implied-end-tag-in-table": - "Unexpected implied end tag (%(name)s) in the table phase.", - "unexpected-implied-end-tag-in-table-body": - "Unexpected implied end tag (%(name)s) in the table body phase.", - "unexpected-char-implies-table-voodoo": - "Unexpected non-space characters in " - "table context caused voodoo mode.", - "unexpected-hidden-input-in-table": - "Unexpected input with type hidden in table context.", - "unexpected-form-in-table": - "Unexpected form in table context.", - "unexpected-start-tag-implies-table-voodoo": - "Unexpected start tag (%(name)s) in " - "table context caused voodoo mode.", - "unexpected-end-tag-implies-table-voodoo": - "Unexpected end tag (%(name)s) in " - "table context caused voodoo mode.", - "unexpected-cell-in-table-body": - "Unexpected table cell start tag (%(name)s) " - "in the table body phase.", - "unexpected-cell-end-tag": - "Got table cell end tag (%(name)s) " - "while required end tags are missing.", - "unexpected-end-tag-in-table-body": - "Unexpected end tag (%(name)s) in the table body phase. Ignored.", - "unexpected-implied-end-tag-in-table-row": - "Unexpected implied end tag (%(name)s) in the table row phase.", - "unexpected-end-tag-in-table-row": - "Unexpected end tag (%(name)s) in the table row phase. Ignored.", - "unexpected-select-in-select": - "Unexpected select start tag in the select phase " - "treated as select end tag.", - "unexpected-input-in-select": - "Unexpected input start tag in the select phase.", - "unexpected-start-tag-in-select": - "Unexpected start tag token (%(name)s in the select phase. " - "Ignored.", - "unexpected-end-tag-in-select": - "Unexpected end tag (%(name)s) in the select phase. Ignored.", - "unexpected-table-element-start-tag-in-select-in-table": - "Unexpected table element start tag (%(name)s) in the select in table phase.", - "unexpected-table-element-end-tag-in-select-in-table": - "Unexpected table element end tag (%(name)s) in the select in table phase.", - "unexpected-char-after-body": - "Unexpected non-space characters in the after body phase.", - "unexpected-start-tag-after-body": - "Unexpected start tag token (%(name)s)" - " in the after body phase.", - "unexpected-end-tag-after-body": - "Unexpected end tag token (%(name)s)" - " in the after body phase.", - "unexpected-char-in-frameset": - "Unexpected characters in the frameset phase. Characters ignored.", - "unexpected-start-tag-in-frameset": - "Unexpected start tag token (%(name)s)" - " in the frameset phase. Ignored.", - "unexpected-frameset-in-frameset-innerhtml": - "Unexpected end tag token (frameset) " - "in the frameset phase (innerHTML).", - "unexpected-end-tag-in-frameset": - "Unexpected end tag token (%(name)s)" - " in the frameset phase. Ignored.", - "unexpected-char-after-frameset": - "Unexpected non-space characters in the " - "after frameset phase. Ignored.", - "unexpected-start-tag-after-frameset": - "Unexpected start tag (%(name)s)" - " in the after frameset phase. Ignored.", - "unexpected-end-tag-after-frameset": - "Unexpected end tag (%(name)s)" - " in the after frameset phase. Ignored.", - "unexpected-end-tag-after-body-innerhtml": - "Unexpected end tag after body(innerHtml)", - "expected-eof-but-got-char": - "Unexpected non-space characters. Expected end of file.", - "expected-eof-but-got-start-tag": - "Unexpected start tag (%(name)s)" - ". Expected end of file.", - "expected-eof-but-got-end-tag": - "Unexpected end tag (%(name)s)" - ". Expected end of file.", - "eof-in-table": - "Unexpected end of file. Expected table content.", - "eof-in-select": - "Unexpected end of file. Expected select content.", - "eof-in-frameset": - "Unexpected end of file. Expected frameset content.", - "eof-in-script-in-script": - "Unexpected end of file. Expected script content.", - "eof-in-foreign-lands": - "Unexpected end of file. Expected foreign content", - "non-void-element-with-trailing-solidus": - "Trailing solidus not allowed on element %(name)s", - "unexpected-html-element-in-foreign-content": - "Element %(name)s not allowed in a non-html context", - "unexpected-end-tag-before-html": - "Unexpected end tag (%(name)s) before html.", - "unexpected-inhead-noscript-tag": - "Element %(name)s not allowed in a inhead-noscript context", - "eof-in-head-noscript": - "Unexpected end of file. Expected inhead-noscript content", - "char-in-head-noscript": - "Unexpected non-space character. Expected inhead-noscript content", - "XXX-undefined-error": - "Undefined error (this sucks and should be fixed)", -} - -namespaces = { - "html": "http://www.w3.org/1999/xhtml", - "mathml": "http://www.w3.org/1998/Math/MathML", - "svg": "http://www.w3.org/2000/svg", - "xlink": "http://www.w3.org/1999/xlink", - "xml": "http://www.w3.org/XML/1998/namespace", - "xmlns": "http://www.w3.org/2000/xmlns/" -} - -scopingElements = frozenset([ - (namespaces["html"], "applet"), - (namespaces["html"], "caption"), - (namespaces["html"], "html"), - (namespaces["html"], "marquee"), - (namespaces["html"], "object"), - (namespaces["html"], "table"), - (namespaces["html"], "td"), - (namespaces["html"], "th"), - (namespaces["mathml"], "mi"), - (namespaces["mathml"], "mo"), - (namespaces["mathml"], "mn"), - (namespaces["mathml"], "ms"), - (namespaces["mathml"], "mtext"), - (namespaces["mathml"], "annotation-xml"), - (namespaces["svg"], "foreignObject"), - (namespaces["svg"], "desc"), - (namespaces["svg"], "title"), -]) - -formattingElements = frozenset([ - (namespaces["html"], "a"), - (namespaces["html"], "b"), - (namespaces["html"], "big"), - (namespaces["html"], "code"), - (namespaces["html"], "em"), - (namespaces["html"], "font"), - (namespaces["html"], "i"), - (namespaces["html"], "nobr"), - (namespaces["html"], "s"), - (namespaces["html"], "small"), - (namespaces["html"], "strike"), - (namespaces["html"], "strong"), - (namespaces["html"], "tt"), - (namespaces["html"], "u") -]) - -specialElements = frozenset([ - (namespaces["html"], "address"), - (namespaces["html"], "applet"), - (namespaces["html"], "area"), - (namespaces["html"], "article"), - (namespaces["html"], "aside"), - (namespaces["html"], "base"), - (namespaces["html"], "basefont"), - (namespaces["html"], "bgsound"), - (namespaces["html"], "blockquote"), - (namespaces["html"], "body"), - (namespaces["html"], "br"), - (namespaces["html"], "button"), - (namespaces["html"], "caption"), - (namespaces["html"], "center"), - (namespaces["html"], "col"), - (namespaces["html"], "colgroup"), - (namespaces["html"], "command"), - (namespaces["html"], "dd"), - (namespaces["html"], "details"), - (namespaces["html"], "dir"), - (namespaces["html"], "div"), - (namespaces["html"], "dl"), - (namespaces["html"], "dt"), - (namespaces["html"], "embed"), - (namespaces["html"], "fieldset"), - (namespaces["html"], "figure"), - (namespaces["html"], "footer"), - (namespaces["html"], "form"), - (namespaces["html"], "frame"), - (namespaces["html"], "frameset"), - (namespaces["html"], "h1"), - (namespaces["html"], "h2"), - (namespaces["html"], "h3"), - (namespaces["html"], "h4"), - (namespaces["html"], "h5"), - (namespaces["html"], "h6"), - (namespaces["html"], "head"), - (namespaces["html"], "header"), - (namespaces["html"], "hr"), - (namespaces["html"], "html"), - (namespaces["html"], "iframe"), - # Note that image is commented out in the spec as "this isn't an - # element that can end up on the stack, so it doesn't matter," - (namespaces["html"], "image"), - (namespaces["html"], "img"), - (namespaces["html"], "input"), - (namespaces["html"], "isindex"), - (namespaces["html"], "li"), - (namespaces["html"], "link"), - (namespaces["html"], "listing"), - (namespaces["html"], "marquee"), - (namespaces["html"], "menu"), - (namespaces["html"], "meta"), - (namespaces["html"], "nav"), - (namespaces["html"], "noembed"), - (namespaces["html"], "noframes"), - (namespaces["html"], "noscript"), - (namespaces["html"], "object"), - (namespaces["html"], "ol"), - (namespaces["html"], "p"), - (namespaces["html"], "param"), - (namespaces["html"], "plaintext"), - (namespaces["html"], "pre"), - (namespaces["html"], "script"), - (namespaces["html"], "section"), - (namespaces["html"], "select"), - (namespaces["html"], "style"), - (namespaces["html"], "table"), - (namespaces["html"], "tbody"), - (namespaces["html"], "td"), - (namespaces["html"], "textarea"), - (namespaces["html"], "tfoot"), - (namespaces["html"], "th"), - (namespaces["html"], "thead"), - (namespaces["html"], "title"), - (namespaces["html"], "tr"), - (namespaces["html"], "ul"), - (namespaces["html"], "wbr"), - (namespaces["html"], "xmp"), - (namespaces["svg"], "foreignObject") -]) - -htmlIntegrationPointElements = frozenset([ - (namespaces["mathml"], "annotation-xml"), - (namespaces["svg"], "foreignObject"), - (namespaces["svg"], "desc"), - (namespaces["svg"], "title") -]) - -mathmlTextIntegrationPointElements = frozenset([ - (namespaces["mathml"], "mi"), - (namespaces["mathml"], "mo"), - (namespaces["mathml"], "mn"), - (namespaces["mathml"], "ms"), - (namespaces["mathml"], "mtext") -]) - -adjustSVGAttributes = { - "attributename": "attributeName", - "attributetype": "attributeType", - "basefrequency": "baseFrequency", - "baseprofile": "baseProfile", - "calcmode": "calcMode", - "clippathunits": "clipPathUnits", - "contentscripttype": "contentScriptType", - "contentstyletype": "contentStyleType", - "diffuseconstant": "diffuseConstant", - "edgemode": "edgeMode", - "externalresourcesrequired": "externalResourcesRequired", - "filterres": "filterRes", - "filterunits": "filterUnits", - "glyphref": "glyphRef", - "gradienttransform": "gradientTransform", - "gradientunits": "gradientUnits", - "kernelmatrix": "kernelMatrix", - "kernelunitlength": "kernelUnitLength", - "keypoints": "keyPoints", - "keysplines": "keySplines", - "keytimes": "keyTimes", - "lengthadjust": "lengthAdjust", - "limitingconeangle": "limitingConeAngle", - "markerheight": "markerHeight", - "markerunits": "markerUnits", - "markerwidth": "markerWidth", - "maskcontentunits": "maskContentUnits", - "maskunits": "maskUnits", - "numoctaves": "numOctaves", - "pathlength": "pathLength", - "patterncontentunits": "patternContentUnits", - "patterntransform": "patternTransform", - "patternunits": "patternUnits", - "pointsatx": "pointsAtX", - "pointsaty": "pointsAtY", - "pointsatz": "pointsAtZ", - "preservealpha": "preserveAlpha", - "preserveaspectratio": "preserveAspectRatio", - "primitiveunits": "primitiveUnits", - "refx": "refX", - "refy": "refY", - "repeatcount": "repeatCount", - "repeatdur": "repeatDur", - "requiredextensions": "requiredExtensions", - "requiredfeatures": "requiredFeatures", - "specularconstant": "specularConstant", - "specularexponent": "specularExponent", - "spreadmethod": "spreadMethod", - "startoffset": "startOffset", - "stddeviation": "stdDeviation", - "stitchtiles": "stitchTiles", - "surfacescale": "surfaceScale", - "systemlanguage": "systemLanguage", - "tablevalues": "tableValues", - "targetx": "targetX", - "targety": "targetY", - "textlength": "textLength", - "viewbox": "viewBox", - "viewtarget": "viewTarget", - "xchannelselector": "xChannelSelector", - "ychannelselector": "yChannelSelector", - "zoomandpan": "zoomAndPan" -} - -adjustMathMLAttributes = {"definitionurl": "definitionURL"} - -adjustForeignAttributes = { - "xlink:actuate": ("xlink", "actuate", namespaces["xlink"]), - "xlink:arcrole": ("xlink", "arcrole", namespaces["xlink"]), - "xlink:href": ("xlink", "href", namespaces["xlink"]), - "xlink:role": ("xlink", "role", namespaces["xlink"]), - "xlink:show": ("xlink", "show", namespaces["xlink"]), - "xlink:title": ("xlink", "title", namespaces["xlink"]), - "xlink:type": ("xlink", "type", namespaces["xlink"]), - "xml:base": ("xml", "base", namespaces["xml"]), - "xml:lang": ("xml", "lang", namespaces["xml"]), - "xml:space": ("xml", "space", namespaces["xml"]), - "xmlns": (None, "xmlns", namespaces["xmlns"]), - "xmlns:xlink": ("xmlns", "xlink", namespaces["xmlns"]) -} - -unadjustForeignAttributes = dict([((ns, local), qname) for qname, (prefix, local, ns) in - adjustForeignAttributes.items()]) - -spaceCharacters = frozenset([ - "\t", - "\n", - "\u000C", - " ", - "\r" -]) - -tableInsertModeElements = frozenset([ - "table", - "tbody", - "tfoot", - "thead", - "tr" -]) - -asciiLowercase = frozenset(string.ascii_lowercase) -asciiUppercase = frozenset(string.ascii_uppercase) -asciiLetters = frozenset(string.ascii_letters) -digits = frozenset(string.digits) -hexDigits = frozenset(string.hexdigits) - -asciiUpper2Lower = dict([(ord(c), ord(c.lower())) - for c in string.ascii_uppercase]) - -# Heading elements need to be ordered -headingElements = ( - "h1", - "h2", - "h3", - "h4", - "h5", - "h6" -) - -voidElements = frozenset([ - "base", - "command", - "event-source", - "link", - "meta", - "hr", - "br", - "img", - "embed", - "param", - "area", - "col", - "input", - "source", - "track" -]) - -cdataElements = frozenset(['title', 'textarea']) - -rcdataElements = frozenset([ - 'style', - 'script', - 'xmp', - 'iframe', - 'noembed', - 'noframes', - 'noscript' -]) - -booleanAttributes = { - "": frozenset(["irrelevant", "itemscope"]), - "style": frozenset(["scoped"]), - "img": frozenset(["ismap"]), - "audio": frozenset(["autoplay", "controls"]), - "video": frozenset(["autoplay", "controls"]), - "script": frozenset(["defer", "async"]), - "details": frozenset(["open"]), - "datagrid": frozenset(["multiple", "disabled"]), - "command": frozenset(["hidden", "disabled", "checked", "default"]), - "hr": frozenset(["noshade"]), - "menu": frozenset(["autosubmit"]), - "fieldset": frozenset(["disabled", "readonly"]), - "option": frozenset(["disabled", "readonly", "selected"]), - "optgroup": frozenset(["disabled", "readonly"]), - "button": frozenset(["disabled", "autofocus"]), - "input": frozenset(["disabled", "readonly", "required", "autofocus", "checked", "ismap"]), - "select": frozenset(["disabled", "readonly", "autofocus", "multiple"]), - "output": frozenset(["disabled", "readonly"]), - "iframe": frozenset(["seamless"]), -} - -# entitiesWindows1252 has to be _ordered_ and needs to have an index. It -# therefore can't be a frozenset. -entitiesWindows1252 = ( - 8364, # 0x80 0x20AC EURO SIGN - 65533, # 0x81 UNDEFINED - 8218, # 0x82 0x201A SINGLE LOW-9 QUOTATION MARK - 402, # 0x83 0x0192 LATIN SMALL LETTER F WITH HOOK - 8222, # 0x84 0x201E DOUBLE LOW-9 QUOTATION MARK - 8230, # 0x85 0x2026 HORIZONTAL ELLIPSIS - 8224, # 0x86 0x2020 DAGGER - 8225, # 0x87 0x2021 DOUBLE DAGGER - 710, # 0x88 0x02C6 MODIFIER LETTER CIRCUMFLEX ACCENT - 8240, # 0x89 0x2030 PER MILLE SIGN - 352, # 0x8A 0x0160 LATIN CAPITAL LETTER S WITH CARON - 8249, # 0x8B 0x2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK - 338, # 0x8C 0x0152 LATIN CAPITAL LIGATURE OE - 65533, # 0x8D UNDEFINED - 381, # 0x8E 0x017D LATIN CAPITAL LETTER Z WITH CARON - 65533, # 0x8F UNDEFINED - 65533, # 0x90 UNDEFINED - 8216, # 0x91 0x2018 LEFT SINGLE QUOTATION MARK - 8217, # 0x92 0x2019 RIGHT SINGLE QUOTATION MARK - 8220, # 0x93 0x201C LEFT DOUBLE QUOTATION MARK - 8221, # 0x94 0x201D RIGHT DOUBLE QUOTATION MARK - 8226, # 0x95 0x2022 BULLET - 8211, # 0x96 0x2013 EN DASH - 8212, # 0x97 0x2014 EM DASH - 732, # 0x98 0x02DC SMALL TILDE - 8482, # 0x99 0x2122 TRADE MARK SIGN - 353, # 0x9A 0x0161 LATIN SMALL LETTER S WITH CARON - 8250, # 0x9B 0x203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - 339, # 0x9C 0x0153 LATIN SMALL LIGATURE OE - 65533, # 0x9D UNDEFINED - 382, # 0x9E 0x017E LATIN SMALL LETTER Z WITH CARON - 376 # 0x9F 0x0178 LATIN CAPITAL LETTER Y WITH DIAERESIS -) - -xmlEntities = frozenset(['lt;', 'gt;', 'amp;', 'apos;', 'quot;']) - -entities = { - "AElig": "\xc6", - "AElig;": "\xc6", - "AMP": "&", - "AMP;": "&", - "Aacute": "\xc1", - "Aacute;": "\xc1", - "Abreve;": "\u0102", - "Acirc": "\xc2", - "Acirc;": "\xc2", - "Acy;": "\u0410", - "Afr;": "\U0001d504", - "Agrave": "\xc0", - "Agrave;": "\xc0", - "Alpha;": "\u0391", - "Amacr;": "\u0100", - "And;": "\u2a53", - "Aogon;": "\u0104", - "Aopf;": "\U0001d538", - "ApplyFunction;": "\u2061", - "Aring": "\xc5", - "Aring;": "\xc5", - "Ascr;": "\U0001d49c", - "Assign;": "\u2254", - "Atilde": "\xc3", - "Atilde;": "\xc3", - "Auml": "\xc4", - "Auml;": "\xc4", - "Backslash;": "\u2216", - "Barv;": "\u2ae7", - "Barwed;": "\u2306", - "Bcy;": "\u0411", - "Because;": "\u2235", - "Bernoullis;": "\u212c", - "Beta;": "\u0392", - "Bfr;": "\U0001d505", - "Bopf;": "\U0001d539", - "Breve;": "\u02d8", - "Bscr;": "\u212c", - "Bumpeq;": "\u224e", - "CHcy;": "\u0427", - "COPY": "\xa9", - "COPY;": "\xa9", - "Cacute;": "\u0106", - "Cap;": "\u22d2", - "CapitalDifferentialD;": "\u2145", - "Cayleys;": "\u212d", - "Ccaron;": "\u010c", - "Ccedil": "\xc7", - "Ccedil;": "\xc7", - "Ccirc;": "\u0108", - "Cconint;": "\u2230", - "Cdot;": "\u010a", - "Cedilla;": "\xb8", - "CenterDot;": "\xb7", - "Cfr;": "\u212d", - "Chi;": "\u03a7", - "CircleDot;": "\u2299", - "CircleMinus;": "\u2296", - "CirclePlus;": "\u2295", - "CircleTimes;": "\u2297", - "ClockwiseContourIntegral;": "\u2232", - "CloseCurlyDoubleQuote;": "\u201d", - "CloseCurlyQuote;": "\u2019", - "Colon;": "\u2237", - "Colone;": "\u2a74", - "Congruent;": "\u2261", - "Conint;": "\u222f", - "ContourIntegral;": "\u222e", - "Copf;": "\u2102", - "Coproduct;": "\u2210", - "CounterClockwiseContourIntegral;": "\u2233", - "Cross;": "\u2a2f", - "Cscr;": "\U0001d49e", - "Cup;": "\u22d3", - "CupCap;": "\u224d", - "DD;": "\u2145", - "DDotrahd;": "\u2911", - "DJcy;": "\u0402", - "DScy;": "\u0405", - "DZcy;": "\u040f", - "Dagger;": "\u2021", - "Darr;": "\u21a1", - "Dashv;": "\u2ae4", - "Dcaron;": "\u010e", - "Dcy;": "\u0414", - "Del;": "\u2207", - "Delta;": "\u0394", - "Dfr;": "\U0001d507", - "DiacriticalAcute;": "\xb4", - "DiacriticalDot;": "\u02d9", - "DiacriticalDoubleAcute;": "\u02dd", - "DiacriticalGrave;": "`", - "DiacriticalTilde;": "\u02dc", - "Diamond;": "\u22c4", - "DifferentialD;": "\u2146", - "Dopf;": "\U0001d53b", - "Dot;": "\xa8", - "DotDot;": "\u20dc", - "DotEqual;": "\u2250", - "DoubleContourIntegral;": "\u222f", - "DoubleDot;": "\xa8", - "DoubleDownArrow;": "\u21d3", - "DoubleLeftArrow;": "\u21d0", - "DoubleLeftRightArrow;": "\u21d4", - "DoubleLeftTee;": "\u2ae4", - "DoubleLongLeftArrow;": "\u27f8", - "DoubleLongLeftRightArrow;": "\u27fa", - "DoubleLongRightArrow;": "\u27f9", - "DoubleRightArrow;": "\u21d2", - "DoubleRightTee;": "\u22a8", - "DoubleUpArrow;": "\u21d1", - "DoubleUpDownArrow;": "\u21d5", - "DoubleVerticalBar;": "\u2225", - "DownArrow;": "\u2193", - "DownArrowBar;": "\u2913", - "DownArrowUpArrow;": "\u21f5", - "DownBreve;": "\u0311", - "DownLeftRightVector;": "\u2950", - "DownLeftTeeVector;": "\u295e", - "DownLeftVector;": "\u21bd", - "DownLeftVectorBar;": "\u2956", - "DownRightTeeVector;": "\u295f", - "DownRightVector;": "\u21c1", - "DownRightVectorBar;": "\u2957", - "DownTee;": "\u22a4", - "DownTeeArrow;": "\u21a7", - "Downarrow;": "\u21d3", - "Dscr;": "\U0001d49f", - "Dstrok;": "\u0110", - "ENG;": "\u014a", - "ETH": "\xd0", - "ETH;": "\xd0", - "Eacute": "\xc9", - "Eacute;": "\xc9", - "Ecaron;": "\u011a", - "Ecirc": "\xca", - "Ecirc;": "\xca", - "Ecy;": "\u042d", - "Edot;": "\u0116", - "Efr;": "\U0001d508", - "Egrave": "\xc8", - "Egrave;": "\xc8", - "Element;": "\u2208", - "Emacr;": "\u0112", - "EmptySmallSquare;": "\u25fb", - "EmptyVerySmallSquare;": "\u25ab", - "Eogon;": "\u0118", - "Eopf;": "\U0001d53c", - "Epsilon;": "\u0395", - "Equal;": "\u2a75", - "EqualTilde;": "\u2242", - "Equilibrium;": "\u21cc", - "Escr;": "\u2130", - "Esim;": "\u2a73", - "Eta;": "\u0397", - "Euml": "\xcb", - "Euml;": "\xcb", - "Exists;": "\u2203", - "ExponentialE;": "\u2147", - "Fcy;": "\u0424", - "Ffr;": "\U0001d509", - "FilledSmallSquare;": "\u25fc", - "FilledVerySmallSquare;": "\u25aa", - "Fopf;": "\U0001d53d", - "ForAll;": "\u2200", - "Fouriertrf;": "\u2131", - "Fscr;": "\u2131", - "GJcy;": "\u0403", - "GT": ">", - "GT;": ">", - "Gamma;": "\u0393", - "Gammad;": "\u03dc", - "Gbreve;": "\u011e", - "Gcedil;": "\u0122", - "Gcirc;": "\u011c", - "Gcy;": "\u0413", - "Gdot;": "\u0120", - "Gfr;": "\U0001d50a", - "Gg;": "\u22d9", - "Gopf;": "\U0001d53e", - "GreaterEqual;": "\u2265", - "GreaterEqualLess;": "\u22db", - "GreaterFullEqual;": "\u2267", - "GreaterGreater;": "\u2aa2", - "GreaterLess;": "\u2277", - "GreaterSlantEqual;": "\u2a7e", - "GreaterTilde;": "\u2273", - "Gscr;": "\U0001d4a2", - "Gt;": "\u226b", - "HARDcy;": "\u042a", - "Hacek;": "\u02c7", - "Hat;": "^", - "Hcirc;": "\u0124", - "Hfr;": "\u210c", - "HilbertSpace;": "\u210b", - "Hopf;": "\u210d", - "HorizontalLine;": "\u2500", - "Hscr;": "\u210b", - "Hstrok;": "\u0126", - "HumpDownHump;": "\u224e", - "HumpEqual;": "\u224f", - "IEcy;": "\u0415", - "IJlig;": "\u0132", - "IOcy;": "\u0401", - "Iacute": "\xcd", - "Iacute;": "\xcd", - "Icirc": "\xce", - "Icirc;": "\xce", - "Icy;": "\u0418", - "Idot;": "\u0130", - "Ifr;": "\u2111", - "Igrave": "\xcc", - "Igrave;": "\xcc", - "Im;": "\u2111", - "Imacr;": "\u012a", - "ImaginaryI;": "\u2148", - "Implies;": "\u21d2", - "Int;": "\u222c", - "Integral;": "\u222b", - "Intersection;": "\u22c2", - "InvisibleComma;": "\u2063", - "InvisibleTimes;": "\u2062", - "Iogon;": "\u012e", - "Iopf;": "\U0001d540", - "Iota;": "\u0399", - "Iscr;": "\u2110", - "Itilde;": "\u0128", - "Iukcy;": "\u0406", - "Iuml": "\xcf", - "Iuml;": "\xcf", - "Jcirc;": "\u0134", - "Jcy;": "\u0419", - "Jfr;": "\U0001d50d", - "Jopf;": "\U0001d541", - "Jscr;": "\U0001d4a5", - "Jsercy;": "\u0408", - "Jukcy;": "\u0404", - "KHcy;": "\u0425", - "KJcy;": "\u040c", - "Kappa;": "\u039a", - "Kcedil;": "\u0136", - "Kcy;": "\u041a", - "Kfr;": "\U0001d50e", - "Kopf;": "\U0001d542", - "Kscr;": "\U0001d4a6", - "LJcy;": "\u0409", - "LT": "<", - "LT;": "<", - "Lacute;": "\u0139", - "Lambda;": "\u039b", - "Lang;": "\u27ea", - "Laplacetrf;": "\u2112", - "Larr;": "\u219e", - "Lcaron;": "\u013d", - "Lcedil;": "\u013b", - "Lcy;": "\u041b", - "LeftAngleBracket;": "\u27e8", - "LeftArrow;": "\u2190", - "LeftArrowBar;": "\u21e4", - "LeftArrowRightArrow;": "\u21c6", - "LeftCeiling;": "\u2308", - "LeftDoubleBracket;": "\u27e6", - "LeftDownTeeVector;": "\u2961", - "LeftDownVector;": "\u21c3", - "LeftDownVectorBar;": "\u2959", - "LeftFloor;": "\u230a", - "LeftRightArrow;": "\u2194", - "LeftRightVector;": "\u294e", - "LeftTee;": "\u22a3", - "LeftTeeArrow;": "\u21a4", - "LeftTeeVector;": "\u295a", - "LeftTriangle;": "\u22b2", - "LeftTriangleBar;": "\u29cf", - "LeftTriangleEqual;": "\u22b4", - "LeftUpDownVector;": "\u2951", - "LeftUpTeeVector;": "\u2960", - "LeftUpVector;": "\u21bf", - "LeftUpVectorBar;": "\u2958", - "LeftVector;": "\u21bc", - "LeftVectorBar;": "\u2952", - "Leftarrow;": "\u21d0", - "Leftrightarrow;": "\u21d4", - "LessEqualGreater;": "\u22da", - "LessFullEqual;": "\u2266", - "LessGreater;": "\u2276", - "LessLess;": "\u2aa1", - "LessSlantEqual;": "\u2a7d", - "LessTilde;": "\u2272", - "Lfr;": "\U0001d50f", - "Ll;": "\u22d8", - "Lleftarrow;": "\u21da", - "Lmidot;": "\u013f", - "LongLeftArrow;": "\u27f5", - "LongLeftRightArrow;": "\u27f7", - "LongRightArrow;": "\u27f6", - "Longleftarrow;": "\u27f8", - "Longleftrightarrow;": "\u27fa", - "Longrightarrow;": "\u27f9", - "Lopf;": "\U0001d543", - "LowerLeftArrow;": "\u2199", - "LowerRightArrow;": "\u2198", - "Lscr;": "\u2112", - "Lsh;": "\u21b0", - "Lstrok;": "\u0141", - "Lt;": "\u226a", - "Map;": "\u2905", - "Mcy;": "\u041c", - "MediumSpace;": "\u205f", - "Mellintrf;": "\u2133", - "Mfr;": "\U0001d510", - "MinusPlus;": "\u2213", - "Mopf;": "\U0001d544", - "Mscr;": "\u2133", - "Mu;": "\u039c", - "NJcy;": "\u040a", - "Nacute;": "\u0143", - "Ncaron;": "\u0147", - "Ncedil;": "\u0145", - "Ncy;": "\u041d", - "NegativeMediumSpace;": "\u200b", - "NegativeThickSpace;": "\u200b", - "NegativeThinSpace;": "\u200b", - "NegativeVeryThinSpace;": "\u200b", - "NestedGreaterGreater;": "\u226b", - "NestedLessLess;": "\u226a", - "NewLine;": "\n", - "Nfr;": "\U0001d511", - "NoBreak;": "\u2060", - "NonBreakingSpace;": "\xa0", - "Nopf;": "\u2115", - "Not;": "\u2aec", - "NotCongruent;": "\u2262", - "NotCupCap;": "\u226d", - "NotDoubleVerticalBar;": "\u2226", - "NotElement;": "\u2209", - "NotEqual;": "\u2260", - "NotEqualTilde;": "\u2242\u0338", - "NotExists;": "\u2204", - "NotGreater;": "\u226f", - "NotGreaterEqual;": "\u2271", - "NotGreaterFullEqual;": "\u2267\u0338", - "NotGreaterGreater;": "\u226b\u0338", - "NotGreaterLess;": "\u2279", - "NotGreaterSlantEqual;": "\u2a7e\u0338", - "NotGreaterTilde;": "\u2275", - "NotHumpDownHump;": "\u224e\u0338", - "NotHumpEqual;": "\u224f\u0338", - "NotLeftTriangle;": "\u22ea", - "NotLeftTriangleBar;": "\u29cf\u0338", - "NotLeftTriangleEqual;": "\u22ec", - "NotLess;": "\u226e", - "NotLessEqual;": "\u2270", - "NotLessGreater;": "\u2278", - "NotLessLess;": "\u226a\u0338", - "NotLessSlantEqual;": "\u2a7d\u0338", - "NotLessTilde;": "\u2274", - "NotNestedGreaterGreater;": "\u2aa2\u0338", - "NotNestedLessLess;": "\u2aa1\u0338", - "NotPrecedes;": "\u2280", - "NotPrecedesEqual;": "\u2aaf\u0338", - "NotPrecedesSlantEqual;": "\u22e0", - "NotReverseElement;": "\u220c", - "NotRightTriangle;": "\u22eb", - "NotRightTriangleBar;": "\u29d0\u0338", - "NotRightTriangleEqual;": "\u22ed", - "NotSquareSubset;": "\u228f\u0338", - "NotSquareSubsetEqual;": "\u22e2", - "NotSquareSuperset;": "\u2290\u0338", - "NotSquareSupersetEqual;": "\u22e3", - "NotSubset;": "\u2282\u20d2", - "NotSubsetEqual;": "\u2288", - "NotSucceeds;": "\u2281", - "NotSucceedsEqual;": "\u2ab0\u0338", - "NotSucceedsSlantEqual;": "\u22e1", - "NotSucceedsTilde;": "\u227f\u0338", - "NotSuperset;": "\u2283\u20d2", - "NotSupersetEqual;": "\u2289", - "NotTilde;": "\u2241", - "NotTildeEqual;": "\u2244", - "NotTildeFullEqual;": "\u2247", - "NotTildeTilde;": "\u2249", - "NotVerticalBar;": "\u2224", - "Nscr;": "\U0001d4a9", - "Ntilde": "\xd1", - "Ntilde;": "\xd1", - "Nu;": "\u039d", - "OElig;": "\u0152", - "Oacute": "\xd3", - "Oacute;": "\xd3", - "Ocirc": "\xd4", - "Ocirc;": "\xd4", - "Ocy;": "\u041e", - "Odblac;": "\u0150", - "Ofr;": "\U0001d512", - "Ograve": "\xd2", - "Ograve;": "\xd2", - "Omacr;": "\u014c", - "Omega;": "\u03a9", - "Omicron;": "\u039f", - "Oopf;": "\U0001d546", - "OpenCurlyDoubleQuote;": "\u201c", - "OpenCurlyQuote;": "\u2018", - "Or;": "\u2a54", - "Oscr;": "\U0001d4aa", - "Oslash": "\xd8", - "Oslash;": "\xd8", - "Otilde": "\xd5", - "Otilde;": "\xd5", - "Otimes;": "\u2a37", - "Ouml": "\xd6", - "Ouml;": "\xd6", - "OverBar;": "\u203e", - "OverBrace;": "\u23de", - "OverBracket;": "\u23b4", - "OverParenthesis;": "\u23dc", - "PartialD;": "\u2202", - "Pcy;": "\u041f", - "Pfr;": "\U0001d513", - "Phi;": "\u03a6", - "Pi;": "\u03a0", - "PlusMinus;": "\xb1", - "Poincareplane;": "\u210c", - "Popf;": "\u2119", - "Pr;": "\u2abb", - "Precedes;": "\u227a", - "PrecedesEqual;": "\u2aaf", - "PrecedesSlantEqual;": "\u227c", - "PrecedesTilde;": "\u227e", - "Prime;": "\u2033", - "Product;": "\u220f", - "Proportion;": "\u2237", - "Proportional;": "\u221d", - "Pscr;": "\U0001d4ab", - "Psi;": "\u03a8", - "QUOT": "\"", - "QUOT;": "\"", - "Qfr;": "\U0001d514", - "Qopf;": "\u211a", - "Qscr;": "\U0001d4ac", - "RBarr;": "\u2910", - "REG": "\xae", - "REG;": "\xae", - "Racute;": "\u0154", - "Rang;": "\u27eb", - "Rarr;": "\u21a0", - "Rarrtl;": "\u2916", - "Rcaron;": "\u0158", - "Rcedil;": "\u0156", - "Rcy;": "\u0420", - "Re;": "\u211c", - "ReverseElement;": "\u220b", - "ReverseEquilibrium;": "\u21cb", - "ReverseUpEquilibrium;": "\u296f", - "Rfr;": "\u211c", - "Rho;": "\u03a1", - "RightAngleBracket;": "\u27e9", - "RightArrow;": "\u2192", - "RightArrowBar;": "\u21e5", - "RightArrowLeftArrow;": "\u21c4", - "RightCeiling;": "\u2309", - "RightDoubleBracket;": "\u27e7", - "RightDownTeeVector;": "\u295d", - "RightDownVector;": "\u21c2", - "RightDownVectorBar;": "\u2955", - "RightFloor;": "\u230b", - "RightTee;": "\u22a2", - "RightTeeArrow;": "\u21a6", - "RightTeeVector;": "\u295b", - "RightTriangle;": "\u22b3", - "RightTriangleBar;": "\u29d0", - "RightTriangleEqual;": "\u22b5", - "RightUpDownVector;": "\u294f", - "RightUpTeeVector;": "\u295c", - "RightUpVector;": "\u21be", - "RightUpVectorBar;": "\u2954", - "RightVector;": "\u21c0", - "RightVectorBar;": "\u2953", - "Rightarrow;": "\u21d2", - "Ropf;": "\u211d", - "RoundImplies;": "\u2970", - "Rrightarrow;": "\u21db", - "Rscr;": "\u211b", - "Rsh;": "\u21b1", - "RuleDelayed;": "\u29f4", - "SHCHcy;": "\u0429", - "SHcy;": "\u0428", - "SOFTcy;": "\u042c", - "Sacute;": "\u015a", - "Sc;": "\u2abc", - "Scaron;": "\u0160", - "Scedil;": "\u015e", - "Scirc;": "\u015c", - "Scy;": "\u0421", - "Sfr;": "\U0001d516", - "ShortDownArrow;": "\u2193", - "ShortLeftArrow;": "\u2190", - "ShortRightArrow;": "\u2192", - "ShortUpArrow;": "\u2191", - "Sigma;": "\u03a3", - "SmallCircle;": "\u2218", - "Sopf;": "\U0001d54a", - "Sqrt;": "\u221a", - "Square;": "\u25a1", - "SquareIntersection;": "\u2293", - "SquareSubset;": "\u228f", - "SquareSubsetEqual;": "\u2291", - "SquareSuperset;": "\u2290", - "SquareSupersetEqual;": "\u2292", - "SquareUnion;": "\u2294", - "Sscr;": "\U0001d4ae", - "Star;": "\u22c6", - "Sub;": "\u22d0", - "Subset;": "\u22d0", - "SubsetEqual;": "\u2286", - "Succeeds;": "\u227b", - "SucceedsEqual;": "\u2ab0", - "SucceedsSlantEqual;": "\u227d", - "SucceedsTilde;": "\u227f", - "SuchThat;": "\u220b", - "Sum;": "\u2211", - "Sup;": "\u22d1", - "Superset;": "\u2283", - "SupersetEqual;": "\u2287", - "Supset;": "\u22d1", - "THORN": "\xde", - "THORN;": "\xde", - "TRADE;": "\u2122", - "TSHcy;": "\u040b", - "TScy;": "\u0426", - "Tab;": "\t", - "Tau;": "\u03a4", - "Tcaron;": "\u0164", - "Tcedil;": "\u0162", - "Tcy;": "\u0422", - "Tfr;": "\U0001d517", - "Therefore;": "\u2234", - "Theta;": "\u0398", - "ThickSpace;": "\u205f\u200a", - "ThinSpace;": "\u2009", - "Tilde;": "\u223c", - "TildeEqual;": "\u2243", - "TildeFullEqual;": "\u2245", - "TildeTilde;": "\u2248", - "Topf;": "\U0001d54b", - "TripleDot;": "\u20db", - "Tscr;": "\U0001d4af", - "Tstrok;": "\u0166", - "Uacute": "\xda", - "Uacute;": "\xda", - "Uarr;": "\u219f", - "Uarrocir;": "\u2949", - "Ubrcy;": "\u040e", - "Ubreve;": "\u016c", - "Ucirc": "\xdb", - "Ucirc;": "\xdb", - "Ucy;": "\u0423", - "Udblac;": "\u0170", - "Ufr;": "\U0001d518", - "Ugrave": "\xd9", - "Ugrave;": "\xd9", - "Umacr;": "\u016a", - "UnderBar;": "_", - "UnderBrace;": "\u23df", - "UnderBracket;": "\u23b5", - "UnderParenthesis;": "\u23dd", - "Union;": "\u22c3", - "UnionPlus;": "\u228e", - "Uogon;": "\u0172", - "Uopf;": "\U0001d54c", - "UpArrow;": "\u2191", - "UpArrowBar;": "\u2912", - "UpArrowDownArrow;": "\u21c5", - "UpDownArrow;": "\u2195", - "UpEquilibrium;": "\u296e", - "UpTee;": "\u22a5", - "UpTeeArrow;": "\u21a5", - "Uparrow;": "\u21d1", - "Updownarrow;": "\u21d5", - "UpperLeftArrow;": "\u2196", - "UpperRightArrow;": "\u2197", - "Upsi;": "\u03d2", - "Upsilon;": "\u03a5", - "Uring;": "\u016e", - "Uscr;": "\U0001d4b0", - "Utilde;": "\u0168", - "Uuml": "\xdc", - "Uuml;": "\xdc", - "VDash;": "\u22ab", - "Vbar;": "\u2aeb", - "Vcy;": "\u0412", - "Vdash;": "\u22a9", - "Vdashl;": "\u2ae6", - "Vee;": "\u22c1", - "Verbar;": "\u2016", - "Vert;": "\u2016", - "VerticalBar;": "\u2223", - "VerticalLine;": "|", - "VerticalSeparator;": "\u2758", - "VerticalTilde;": "\u2240", - "VeryThinSpace;": "\u200a", - "Vfr;": "\U0001d519", - "Vopf;": "\U0001d54d", - "Vscr;": "\U0001d4b1", - "Vvdash;": "\u22aa", - "Wcirc;": "\u0174", - "Wedge;": "\u22c0", - "Wfr;": "\U0001d51a", - "Wopf;": "\U0001d54e", - "Wscr;": "\U0001d4b2", - "Xfr;": "\U0001d51b", - "Xi;": "\u039e", - "Xopf;": "\U0001d54f", - "Xscr;": "\U0001d4b3", - "YAcy;": "\u042f", - "YIcy;": "\u0407", - "YUcy;": "\u042e", - "Yacute": "\xdd", - "Yacute;": "\xdd", - "Ycirc;": "\u0176", - "Ycy;": "\u042b", - "Yfr;": "\U0001d51c", - "Yopf;": "\U0001d550", - "Yscr;": "\U0001d4b4", - "Yuml;": "\u0178", - "ZHcy;": "\u0416", - "Zacute;": "\u0179", - "Zcaron;": "\u017d", - "Zcy;": "\u0417", - "Zdot;": "\u017b", - "ZeroWidthSpace;": "\u200b", - "Zeta;": "\u0396", - "Zfr;": "\u2128", - "Zopf;": "\u2124", - "Zscr;": "\U0001d4b5", - "aacute": "\xe1", - "aacute;": "\xe1", - "abreve;": "\u0103", - "ac;": "\u223e", - "acE;": "\u223e\u0333", - "acd;": "\u223f", - "acirc": "\xe2", - "acirc;": "\xe2", - "acute": "\xb4", - "acute;": "\xb4", - "acy;": "\u0430", - "aelig": "\xe6", - "aelig;": "\xe6", - "af;": "\u2061", - "afr;": "\U0001d51e", - "agrave": "\xe0", - "agrave;": "\xe0", - "alefsym;": "\u2135", - "aleph;": "\u2135", - "alpha;": "\u03b1", - "amacr;": "\u0101", - "amalg;": "\u2a3f", - "amp": "&", - "amp;": "&", - "and;": "\u2227", - "andand;": "\u2a55", - "andd;": "\u2a5c", - "andslope;": "\u2a58", - "andv;": "\u2a5a", - "ang;": "\u2220", - "ange;": "\u29a4", - "angle;": "\u2220", - "angmsd;": "\u2221", - "angmsdaa;": "\u29a8", - "angmsdab;": "\u29a9", - "angmsdac;": "\u29aa", - "angmsdad;": "\u29ab", - "angmsdae;": "\u29ac", - "angmsdaf;": "\u29ad", - "angmsdag;": "\u29ae", - "angmsdah;": "\u29af", - "angrt;": "\u221f", - "angrtvb;": "\u22be", - "angrtvbd;": "\u299d", - "angsph;": "\u2222", - "angst;": "\xc5", - "angzarr;": "\u237c", - "aogon;": "\u0105", - "aopf;": "\U0001d552", - "ap;": "\u2248", - "apE;": "\u2a70", - "apacir;": "\u2a6f", - "ape;": "\u224a", - "apid;": "\u224b", - "apos;": "'", - "approx;": "\u2248", - "approxeq;": "\u224a", - "aring": "\xe5", - "aring;": "\xe5", - "ascr;": "\U0001d4b6", - "ast;": "*", - "asymp;": "\u2248", - "asympeq;": "\u224d", - "atilde": "\xe3", - "atilde;": "\xe3", - "auml": "\xe4", - "auml;": "\xe4", - "awconint;": "\u2233", - "awint;": "\u2a11", - "bNot;": "\u2aed", - "backcong;": "\u224c", - "backepsilon;": "\u03f6", - "backprime;": "\u2035", - "backsim;": "\u223d", - "backsimeq;": "\u22cd", - "barvee;": "\u22bd", - "barwed;": "\u2305", - "barwedge;": "\u2305", - "bbrk;": "\u23b5", - "bbrktbrk;": "\u23b6", - "bcong;": "\u224c", - "bcy;": "\u0431", - "bdquo;": "\u201e", - "becaus;": "\u2235", - "because;": "\u2235", - "bemptyv;": "\u29b0", - "bepsi;": "\u03f6", - "bernou;": "\u212c", - "beta;": "\u03b2", - "beth;": "\u2136", - "between;": "\u226c", - "bfr;": "\U0001d51f", - "bigcap;": "\u22c2", - "bigcirc;": "\u25ef", - "bigcup;": "\u22c3", - "bigodot;": "\u2a00", - "bigoplus;": "\u2a01", - "bigotimes;": "\u2a02", - "bigsqcup;": "\u2a06", - "bigstar;": "\u2605", - "bigtriangledown;": "\u25bd", - "bigtriangleup;": "\u25b3", - "biguplus;": "\u2a04", - "bigvee;": "\u22c1", - "bigwedge;": "\u22c0", - "bkarow;": "\u290d", - "blacklozenge;": "\u29eb", - "blacksquare;": "\u25aa", - "blacktriangle;": "\u25b4", - "blacktriangledown;": "\u25be", - "blacktriangleleft;": "\u25c2", - "blacktriangleright;": "\u25b8", - "blank;": "\u2423", - "blk12;": "\u2592", - "blk14;": "\u2591", - "blk34;": "\u2593", - "block;": "\u2588", - "bne;": "=\u20e5", - "bnequiv;": "\u2261\u20e5", - "bnot;": "\u2310", - "bopf;": "\U0001d553", - "bot;": "\u22a5", - "bottom;": "\u22a5", - "bowtie;": "\u22c8", - "boxDL;": "\u2557", - "boxDR;": "\u2554", - "boxDl;": "\u2556", - "boxDr;": "\u2553", - "boxH;": "\u2550", - "boxHD;": "\u2566", - "boxHU;": "\u2569", - "boxHd;": "\u2564", - "boxHu;": "\u2567", - "boxUL;": "\u255d", - "boxUR;": "\u255a", - "boxUl;": "\u255c", - "boxUr;": "\u2559", - "boxV;": "\u2551", - "boxVH;": "\u256c", - "boxVL;": "\u2563", - "boxVR;": "\u2560", - "boxVh;": "\u256b", - "boxVl;": "\u2562", - "boxVr;": "\u255f", - "boxbox;": "\u29c9", - "boxdL;": "\u2555", - "boxdR;": "\u2552", - "boxdl;": "\u2510", - "boxdr;": "\u250c", - "boxh;": "\u2500", - "boxhD;": "\u2565", - "boxhU;": "\u2568", - "boxhd;": "\u252c", - "boxhu;": "\u2534", - "boxminus;": "\u229f", - "boxplus;": "\u229e", - "boxtimes;": "\u22a0", - "boxuL;": "\u255b", - "boxuR;": "\u2558", - "boxul;": "\u2518", - "boxur;": "\u2514", - "boxv;": "\u2502", - "boxvH;": "\u256a", - "boxvL;": "\u2561", - "boxvR;": "\u255e", - "boxvh;": "\u253c", - "boxvl;": "\u2524", - "boxvr;": "\u251c", - "bprime;": "\u2035", - "breve;": "\u02d8", - "brvbar": "\xa6", - "brvbar;": "\xa6", - "bscr;": "\U0001d4b7", - "bsemi;": "\u204f", - "bsim;": "\u223d", - "bsime;": "\u22cd", - "bsol;": "\\", - "bsolb;": "\u29c5", - "bsolhsub;": "\u27c8", - "bull;": "\u2022", - "bullet;": "\u2022", - "bump;": "\u224e", - "bumpE;": "\u2aae", - "bumpe;": "\u224f", - "bumpeq;": "\u224f", - "cacute;": "\u0107", - "cap;": "\u2229", - "capand;": "\u2a44", - "capbrcup;": "\u2a49", - "capcap;": "\u2a4b", - "capcup;": "\u2a47", - "capdot;": "\u2a40", - "caps;": "\u2229\ufe00", - "caret;": "\u2041", - "caron;": "\u02c7", - "ccaps;": "\u2a4d", - "ccaron;": "\u010d", - "ccedil": "\xe7", - "ccedil;": "\xe7", - "ccirc;": "\u0109", - "ccups;": "\u2a4c", - "ccupssm;": "\u2a50", - "cdot;": "\u010b", - "cedil": "\xb8", - "cedil;": "\xb8", - "cemptyv;": "\u29b2", - "cent": "\xa2", - "cent;": "\xa2", - "centerdot;": "\xb7", - "cfr;": "\U0001d520", - "chcy;": "\u0447", - "check;": "\u2713", - "checkmark;": "\u2713", - "chi;": "\u03c7", - "cir;": "\u25cb", - "cirE;": "\u29c3", - "circ;": "\u02c6", - "circeq;": "\u2257", - "circlearrowleft;": "\u21ba", - "circlearrowright;": "\u21bb", - "circledR;": "\xae", - "circledS;": "\u24c8", - "circledast;": "\u229b", - "circledcirc;": "\u229a", - "circleddash;": "\u229d", - "cire;": "\u2257", - "cirfnint;": "\u2a10", - "cirmid;": "\u2aef", - "cirscir;": "\u29c2", - "clubs;": "\u2663", - "clubsuit;": "\u2663", - "colon;": ":", - "colone;": "\u2254", - "coloneq;": "\u2254", - "comma;": ",", - "commat;": "@", - "comp;": "\u2201", - "compfn;": "\u2218", - "complement;": "\u2201", - "complexes;": "\u2102", - "cong;": "\u2245", - "congdot;": "\u2a6d", - "conint;": "\u222e", - "copf;": "\U0001d554", - "coprod;": "\u2210", - "copy": "\xa9", - "copy;": "\xa9", - "copysr;": "\u2117", - "crarr;": "\u21b5", - "cross;": "\u2717", - "cscr;": "\U0001d4b8", - "csub;": "\u2acf", - "csube;": "\u2ad1", - "csup;": "\u2ad0", - "csupe;": "\u2ad2", - "ctdot;": "\u22ef", - "cudarrl;": "\u2938", - "cudarrr;": "\u2935", - "cuepr;": "\u22de", - "cuesc;": "\u22df", - "cularr;": "\u21b6", - "cularrp;": "\u293d", - "cup;": "\u222a", - "cupbrcap;": "\u2a48", - "cupcap;": "\u2a46", - "cupcup;": "\u2a4a", - "cupdot;": "\u228d", - "cupor;": "\u2a45", - "cups;": "\u222a\ufe00", - "curarr;": "\u21b7", - "curarrm;": "\u293c", - "curlyeqprec;": "\u22de", - "curlyeqsucc;": "\u22df", - "curlyvee;": "\u22ce", - "curlywedge;": "\u22cf", - "curren": "\xa4", - "curren;": "\xa4", - "curvearrowleft;": "\u21b6", - "curvearrowright;": "\u21b7", - "cuvee;": "\u22ce", - "cuwed;": "\u22cf", - "cwconint;": "\u2232", - "cwint;": "\u2231", - "cylcty;": "\u232d", - "dArr;": "\u21d3", - "dHar;": "\u2965", - "dagger;": "\u2020", - "daleth;": "\u2138", - "darr;": "\u2193", - "dash;": "\u2010", - "dashv;": "\u22a3", - "dbkarow;": "\u290f", - "dblac;": "\u02dd", - "dcaron;": "\u010f", - "dcy;": "\u0434", - "dd;": "\u2146", - "ddagger;": "\u2021", - "ddarr;": "\u21ca", - "ddotseq;": "\u2a77", - "deg": "\xb0", - "deg;": "\xb0", - "delta;": "\u03b4", - "demptyv;": "\u29b1", - "dfisht;": "\u297f", - "dfr;": "\U0001d521", - "dharl;": "\u21c3", - "dharr;": "\u21c2", - "diam;": "\u22c4", - "diamond;": "\u22c4", - "diamondsuit;": "\u2666", - "diams;": "\u2666", - "die;": "\xa8", - "digamma;": "\u03dd", - "disin;": "\u22f2", - "div;": "\xf7", - "divide": "\xf7", - "divide;": "\xf7", - "divideontimes;": "\u22c7", - "divonx;": "\u22c7", - "djcy;": "\u0452", - "dlcorn;": "\u231e", - "dlcrop;": "\u230d", - "dollar;": "$", - "dopf;": "\U0001d555", - "dot;": "\u02d9", - "doteq;": "\u2250", - "doteqdot;": "\u2251", - "dotminus;": "\u2238", - "dotplus;": "\u2214", - "dotsquare;": "\u22a1", - "doublebarwedge;": "\u2306", - "downarrow;": "\u2193", - "downdownarrows;": "\u21ca", - "downharpoonleft;": "\u21c3", - "downharpoonright;": "\u21c2", - "drbkarow;": "\u2910", - "drcorn;": "\u231f", - "drcrop;": "\u230c", - "dscr;": "\U0001d4b9", - "dscy;": "\u0455", - "dsol;": "\u29f6", - "dstrok;": "\u0111", - "dtdot;": "\u22f1", - "dtri;": "\u25bf", - "dtrif;": "\u25be", - "duarr;": "\u21f5", - "duhar;": "\u296f", - "dwangle;": "\u29a6", - "dzcy;": "\u045f", - "dzigrarr;": "\u27ff", - "eDDot;": "\u2a77", - "eDot;": "\u2251", - "eacute": "\xe9", - "eacute;": "\xe9", - "easter;": "\u2a6e", - "ecaron;": "\u011b", - "ecir;": "\u2256", - "ecirc": "\xea", - "ecirc;": "\xea", - "ecolon;": "\u2255", - "ecy;": "\u044d", - "edot;": "\u0117", - "ee;": "\u2147", - "efDot;": "\u2252", - "efr;": "\U0001d522", - "eg;": "\u2a9a", - "egrave": "\xe8", - "egrave;": "\xe8", - "egs;": "\u2a96", - "egsdot;": "\u2a98", - "el;": "\u2a99", - "elinters;": "\u23e7", - "ell;": "\u2113", - "els;": "\u2a95", - "elsdot;": "\u2a97", - "emacr;": "\u0113", - "empty;": "\u2205", - "emptyset;": "\u2205", - "emptyv;": "\u2205", - "emsp13;": "\u2004", - "emsp14;": "\u2005", - "emsp;": "\u2003", - "eng;": "\u014b", - "ensp;": "\u2002", - "eogon;": "\u0119", - "eopf;": "\U0001d556", - "epar;": "\u22d5", - "eparsl;": "\u29e3", - "eplus;": "\u2a71", - "epsi;": "\u03b5", - "epsilon;": "\u03b5", - "epsiv;": "\u03f5", - "eqcirc;": "\u2256", - "eqcolon;": "\u2255", - "eqsim;": "\u2242", - "eqslantgtr;": "\u2a96", - "eqslantless;": "\u2a95", - "equals;": "=", - "equest;": "\u225f", - "equiv;": "\u2261", - "equivDD;": "\u2a78", - "eqvparsl;": "\u29e5", - "erDot;": "\u2253", - "erarr;": "\u2971", - "escr;": "\u212f", - "esdot;": "\u2250", - "esim;": "\u2242", - "eta;": "\u03b7", - "eth": "\xf0", - "eth;": "\xf0", - "euml": "\xeb", - "euml;": "\xeb", - "euro;": "\u20ac", - "excl;": "!", - "exist;": "\u2203", - "expectation;": "\u2130", - "exponentiale;": "\u2147", - "fallingdotseq;": "\u2252", - "fcy;": "\u0444", - "female;": "\u2640", - "ffilig;": "\ufb03", - "fflig;": "\ufb00", - "ffllig;": "\ufb04", - "ffr;": "\U0001d523", - "filig;": "\ufb01", - "fjlig;": "fj", - "flat;": "\u266d", - "fllig;": "\ufb02", - "fltns;": "\u25b1", - "fnof;": "\u0192", - "fopf;": "\U0001d557", - "forall;": "\u2200", - "fork;": "\u22d4", - "forkv;": "\u2ad9", - "fpartint;": "\u2a0d", - "frac12": "\xbd", - "frac12;": "\xbd", - "frac13;": "\u2153", - "frac14": "\xbc", - "frac14;": "\xbc", - "frac15;": "\u2155", - "frac16;": "\u2159", - "frac18;": "\u215b", - "frac23;": "\u2154", - "frac25;": "\u2156", - "frac34": "\xbe", - "frac34;": "\xbe", - "frac35;": "\u2157", - "frac38;": "\u215c", - "frac45;": "\u2158", - "frac56;": "\u215a", - "frac58;": "\u215d", - "frac78;": "\u215e", - "frasl;": "\u2044", - "frown;": "\u2322", - "fscr;": "\U0001d4bb", - "gE;": "\u2267", - "gEl;": "\u2a8c", - "gacute;": "\u01f5", - "gamma;": "\u03b3", - "gammad;": "\u03dd", - "gap;": "\u2a86", - "gbreve;": "\u011f", - "gcirc;": "\u011d", - "gcy;": "\u0433", - "gdot;": "\u0121", - "ge;": "\u2265", - "gel;": "\u22db", - "geq;": "\u2265", - "geqq;": "\u2267", - "geqslant;": "\u2a7e", - "ges;": "\u2a7e", - "gescc;": "\u2aa9", - "gesdot;": "\u2a80", - "gesdoto;": "\u2a82", - "gesdotol;": "\u2a84", - "gesl;": "\u22db\ufe00", - "gesles;": "\u2a94", - "gfr;": "\U0001d524", - "gg;": "\u226b", - "ggg;": "\u22d9", - "gimel;": "\u2137", - "gjcy;": "\u0453", - "gl;": "\u2277", - "glE;": "\u2a92", - "gla;": "\u2aa5", - "glj;": "\u2aa4", - "gnE;": "\u2269", - "gnap;": "\u2a8a", - "gnapprox;": "\u2a8a", - "gne;": "\u2a88", - "gneq;": "\u2a88", - "gneqq;": "\u2269", - "gnsim;": "\u22e7", - "gopf;": "\U0001d558", - "grave;": "`", - "gscr;": "\u210a", - "gsim;": "\u2273", - "gsime;": "\u2a8e", - "gsiml;": "\u2a90", - "gt": ">", - "gt;": ">", - "gtcc;": "\u2aa7", - "gtcir;": "\u2a7a", - "gtdot;": "\u22d7", - "gtlPar;": "\u2995", - "gtquest;": "\u2a7c", - "gtrapprox;": "\u2a86", - "gtrarr;": "\u2978", - "gtrdot;": "\u22d7", - "gtreqless;": "\u22db", - "gtreqqless;": "\u2a8c", - "gtrless;": "\u2277", - "gtrsim;": "\u2273", - "gvertneqq;": "\u2269\ufe00", - "gvnE;": "\u2269\ufe00", - "hArr;": "\u21d4", - "hairsp;": "\u200a", - "half;": "\xbd", - "hamilt;": "\u210b", - "hardcy;": "\u044a", - "harr;": "\u2194", - "harrcir;": "\u2948", - "harrw;": "\u21ad", - "hbar;": "\u210f", - "hcirc;": "\u0125", - "hearts;": "\u2665", - "heartsuit;": "\u2665", - "hellip;": "\u2026", - "hercon;": "\u22b9", - "hfr;": "\U0001d525", - "hksearow;": "\u2925", - "hkswarow;": "\u2926", - "hoarr;": "\u21ff", - "homtht;": "\u223b", - "hookleftarrow;": "\u21a9", - "hookrightarrow;": "\u21aa", - "hopf;": "\U0001d559", - "horbar;": "\u2015", - "hscr;": "\U0001d4bd", - "hslash;": "\u210f", - "hstrok;": "\u0127", - "hybull;": "\u2043", - "hyphen;": "\u2010", - "iacute": "\xed", - "iacute;": "\xed", - "ic;": "\u2063", - "icirc": "\xee", - "icirc;": "\xee", - "icy;": "\u0438", - "iecy;": "\u0435", - "iexcl": "\xa1", - "iexcl;": "\xa1", - "iff;": "\u21d4", - "ifr;": "\U0001d526", - "igrave": "\xec", - "igrave;": "\xec", - "ii;": "\u2148", - "iiiint;": "\u2a0c", - "iiint;": "\u222d", - "iinfin;": "\u29dc", - "iiota;": "\u2129", - "ijlig;": "\u0133", - "imacr;": "\u012b", - "image;": "\u2111", - "imagline;": "\u2110", - "imagpart;": "\u2111", - "imath;": "\u0131", - "imof;": "\u22b7", - "imped;": "\u01b5", - "in;": "\u2208", - "incare;": "\u2105", - "infin;": "\u221e", - "infintie;": "\u29dd", - "inodot;": "\u0131", - "int;": "\u222b", - "intcal;": "\u22ba", - "integers;": "\u2124", - "intercal;": "\u22ba", - "intlarhk;": "\u2a17", - "intprod;": "\u2a3c", - "iocy;": "\u0451", - "iogon;": "\u012f", - "iopf;": "\U0001d55a", - "iota;": "\u03b9", - "iprod;": "\u2a3c", - "iquest": "\xbf", - "iquest;": "\xbf", - "iscr;": "\U0001d4be", - "isin;": "\u2208", - "isinE;": "\u22f9", - "isindot;": "\u22f5", - "isins;": "\u22f4", - "isinsv;": "\u22f3", - "isinv;": "\u2208", - "it;": "\u2062", - "itilde;": "\u0129", - "iukcy;": "\u0456", - "iuml": "\xef", - "iuml;": "\xef", - "jcirc;": "\u0135", - "jcy;": "\u0439", - "jfr;": "\U0001d527", - "jmath;": "\u0237", - "jopf;": "\U0001d55b", - "jscr;": "\U0001d4bf", - "jsercy;": "\u0458", - "jukcy;": "\u0454", - "kappa;": "\u03ba", - "kappav;": "\u03f0", - "kcedil;": "\u0137", - "kcy;": "\u043a", - "kfr;": "\U0001d528", - "kgreen;": "\u0138", - "khcy;": "\u0445", - "kjcy;": "\u045c", - "kopf;": "\U0001d55c", - "kscr;": "\U0001d4c0", - "lAarr;": "\u21da", - "lArr;": "\u21d0", - "lAtail;": "\u291b", - "lBarr;": "\u290e", - "lE;": "\u2266", - "lEg;": "\u2a8b", - "lHar;": "\u2962", - "lacute;": "\u013a", - "laemptyv;": "\u29b4", - "lagran;": "\u2112", - "lambda;": "\u03bb", - "lang;": "\u27e8", - "langd;": "\u2991", - "langle;": "\u27e8", - "lap;": "\u2a85", - "laquo": "\xab", - "laquo;": "\xab", - "larr;": "\u2190", - "larrb;": "\u21e4", - "larrbfs;": "\u291f", - "larrfs;": "\u291d", - "larrhk;": "\u21a9", - "larrlp;": "\u21ab", - "larrpl;": "\u2939", - "larrsim;": "\u2973", - "larrtl;": "\u21a2", - "lat;": "\u2aab", - "latail;": "\u2919", - "late;": "\u2aad", - "lates;": "\u2aad\ufe00", - "lbarr;": "\u290c", - "lbbrk;": "\u2772", - "lbrace;": "{", - "lbrack;": "[", - "lbrke;": "\u298b", - "lbrksld;": "\u298f", - "lbrkslu;": "\u298d", - "lcaron;": "\u013e", - "lcedil;": "\u013c", - "lceil;": "\u2308", - "lcub;": "{", - "lcy;": "\u043b", - "ldca;": "\u2936", - "ldquo;": "\u201c", - "ldquor;": "\u201e", - "ldrdhar;": "\u2967", - "ldrushar;": "\u294b", - "ldsh;": "\u21b2", - "le;": "\u2264", - "leftarrow;": "\u2190", - "leftarrowtail;": "\u21a2", - "leftharpoondown;": "\u21bd", - "leftharpoonup;": "\u21bc", - "leftleftarrows;": "\u21c7", - "leftrightarrow;": "\u2194", - "leftrightarrows;": "\u21c6", - "leftrightharpoons;": "\u21cb", - "leftrightsquigarrow;": "\u21ad", - "leftthreetimes;": "\u22cb", - "leg;": "\u22da", - "leq;": "\u2264", - "leqq;": "\u2266", - "leqslant;": "\u2a7d", - "les;": "\u2a7d", - "lescc;": "\u2aa8", - "lesdot;": "\u2a7f", - "lesdoto;": "\u2a81", - "lesdotor;": "\u2a83", - "lesg;": "\u22da\ufe00", - "lesges;": "\u2a93", - "lessapprox;": "\u2a85", - "lessdot;": "\u22d6", - "lesseqgtr;": "\u22da", - "lesseqqgtr;": "\u2a8b", - "lessgtr;": "\u2276", - "lesssim;": "\u2272", - "lfisht;": "\u297c", - "lfloor;": "\u230a", - "lfr;": "\U0001d529", - "lg;": "\u2276", - "lgE;": "\u2a91", - "lhard;": "\u21bd", - "lharu;": "\u21bc", - "lharul;": "\u296a", - "lhblk;": "\u2584", - "ljcy;": "\u0459", - "ll;": "\u226a", - "llarr;": "\u21c7", - "llcorner;": "\u231e", - "llhard;": "\u296b", - "lltri;": "\u25fa", - "lmidot;": "\u0140", - "lmoust;": "\u23b0", - "lmoustache;": "\u23b0", - "lnE;": "\u2268", - "lnap;": "\u2a89", - "lnapprox;": "\u2a89", - "lne;": "\u2a87", - "lneq;": "\u2a87", - "lneqq;": "\u2268", - "lnsim;": "\u22e6", - "loang;": "\u27ec", - "loarr;": "\u21fd", - "lobrk;": "\u27e6", - "longleftarrow;": "\u27f5", - "longleftrightarrow;": "\u27f7", - "longmapsto;": "\u27fc", - "longrightarrow;": "\u27f6", - "looparrowleft;": "\u21ab", - "looparrowright;": "\u21ac", - "lopar;": "\u2985", - "lopf;": "\U0001d55d", - "loplus;": "\u2a2d", - "lotimes;": "\u2a34", - "lowast;": "\u2217", - "lowbar;": "_", - "loz;": "\u25ca", - "lozenge;": "\u25ca", - "lozf;": "\u29eb", - "lpar;": "(", - "lparlt;": "\u2993", - "lrarr;": "\u21c6", - "lrcorner;": "\u231f", - "lrhar;": "\u21cb", - "lrhard;": "\u296d", - "lrm;": "\u200e", - "lrtri;": "\u22bf", - "lsaquo;": "\u2039", - "lscr;": "\U0001d4c1", - "lsh;": "\u21b0", - "lsim;": "\u2272", - "lsime;": "\u2a8d", - "lsimg;": "\u2a8f", - "lsqb;": "[", - "lsquo;": "\u2018", - "lsquor;": "\u201a", - "lstrok;": "\u0142", - "lt": "<", - "lt;": "<", - "ltcc;": "\u2aa6", - "ltcir;": "\u2a79", - "ltdot;": "\u22d6", - "lthree;": "\u22cb", - "ltimes;": "\u22c9", - "ltlarr;": "\u2976", - "ltquest;": "\u2a7b", - "ltrPar;": "\u2996", - "ltri;": "\u25c3", - "ltrie;": "\u22b4", - "ltrif;": "\u25c2", - "lurdshar;": "\u294a", - "luruhar;": "\u2966", - "lvertneqq;": "\u2268\ufe00", - "lvnE;": "\u2268\ufe00", - "mDDot;": "\u223a", - "macr": "\xaf", - "macr;": "\xaf", - "male;": "\u2642", - "malt;": "\u2720", - "maltese;": "\u2720", - "map;": "\u21a6", - "mapsto;": "\u21a6", - "mapstodown;": "\u21a7", - "mapstoleft;": "\u21a4", - "mapstoup;": "\u21a5", - "marker;": "\u25ae", - "mcomma;": "\u2a29", - "mcy;": "\u043c", - "mdash;": "\u2014", - "measuredangle;": "\u2221", - "mfr;": "\U0001d52a", - "mho;": "\u2127", - "micro": "\xb5", - "micro;": "\xb5", - "mid;": "\u2223", - "midast;": "*", - "midcir;": "\u2af0", - "middot": "\xb7", - "middot;": "\xb7", - "minus;": "\u2212", - "minusb;": "\u229f", - "minusd;": "\u2238", - "minusdu;": "\u2a2a", - "mlcp;": "\u2adb", - "mldr;": "\u2026", - "mnplus;": "\u2213", - "models;": "\u22a7", - "mopf;": "\U0001d55e", - "mp;": "\u2213", - "mscr;": "\U0001d4c2", - "mstpos;": "\u223e", - "mu;": "\u03bc", - "multimap;": "\u22b8", - "mumap;": "\u22b8", - "nGg;": "\u22d9\u0338", - "nGt;": "\u226b\u20d2", - "nGtv;": "\u226b\u0338", - "nLeftarrow;": "\u21cd", - "nLeftrightarrow;": "\u21ce", - "nLl;": "\u22d8\u0338", - "nLt;": "\u226a\u20d2", - "nLtv;": "\u226a\u0338", - "nRightarrow;": "\u21cf", - "nVDash;": "\u22af", - "nVdash;": "\u22ae", - "nabla;": "\u2207", - "nacute;": "\u0144", - "nang;": "\u2220\u20d2", - "nap;": "\u2249", - "napE;": "\u2a70\u0338", - "napid;": "\u224b\u0338", - "napos;": "\u0149", - "napprox;": "\u2249", - "natur;": "\u266e", - "natural;": "\u266e", - "naturals;": "\u2115", - "nbsp": "\xa0", - "nbsp;": "\xa0", - "nbump;": "\u224e\u0338", - "nbumpe;": "\u224f\u0338", - "ncap;": "\u2a43", - "ncaron;": "\u0148", - "ncedil;": "\u0146", - "ncong;": "\u2247", - "ncongdot;": "\u2a6d\u0338", - "ncup;": "\u2a42", - "ncy;": "\u043d", - "ndash;": "\u2013", - "ne;": "\u2260", - "neArr;": "\u21d7", - "nearhk;": "\u2924", - "nearr;": "\u2197", - "nearrow;": "\u2197", - "nedot;": "\u2250\u0338", - "nequiv;": "\u2262", - "nesear;": "\u2928", - "nesim;": "\u2242\u0338", - "nexist;": "\u2204", - "nexists;": "\u2204", - "nfr;": "\U0001d52b", - "ngE;": "\u2267\u0338", - "nge;": "\u2271", - "ngeq;": "\u2271", - "ngeqq;": "\u2267\u0338", - "ngeqslant;": "\u2a7e\u0338", - "nges;": "\u2a7e\u0338", - "ngsim;": "\u2275", - "ngt;": "\u226f", - "ngtr;": "\u226f", - "nhArr;": "\u21ce", - "nharr;": "\u21ae", - "nhpar;": "\u2af2", - "ni;": "\u220b", - "nis;": "\u22fc", - "nisd;": "\u22fa", - "niv;": "\u220b", - "njcy;": "\u045a", - "nlArr;": "\u21cd", - "nlE;": "\u2266\u0338", - "nlarr;": "\u219a", - "nldr;": "\u2025", - "nle;": "\u2270", - "nleftarrow;": "\u219a", - "nleftrightarrow;": "\u21ae", - "nleq;": "\u2270", - "nleqq;": "\u2266\u0338", - "nleqslant;": "\u2a7d\u0338", - "nles;": "\u2a7d\u0338", - "nless;": "\u226e", - "nlsim;": "\u2274", - "nlt;": "\u226e", - "nltri;": "\u22ea", - "nltrie;": "\u22ec", - "nmid;": "\u2224", - "nopf;": "\U0001d55f", - "not": "\xac", - "not;": "\xac", - "notin;": "\u2209", - "notinE;": "\u22f9\u0338", - "notindot;": "\u22f5\u0338", - "notinva;": "\u2209", - "notinvb;": "\u22f7", - "notinvc;": "\u22f6", - "notni;": "\u220c", - "notniva;": "\u220c", - "notnivb;": "\u22fe", - "notnivc;": "\u22fd", - "npar;": "\u2226", - "nparallel;": "\u2226", - "nparsl;": "\u2afd\u20e5", - "npart;": "\u2202\u0338", - "npolint;": "\u2a14", - "npr;": "\u2280", - "nprcue;": "\u22e0", - "npre;": "\u2aaf\u0338", - "nprec;": "\u2280", - "npreceq;": "\u2aaf\u0338", - "nrArr;": "\u21cf", - "nrarr;": "\u219b", - "nrarrc;": "\u2933\u0338", - "nrarrw;": "\u219d\u0338", - "nrightarrow;": "\u219b", - "nrtri;": "\u22eb", - "nrtrie;": "\u22ed", - "nsc;": "\u2281", - "nsccue;": "\u22e1", - "nsce;": "\u2ab0\u0338", - "nscr;": "\U0001d4c3", - "nshortmid;": "\u2224", - "nshortparallel;": "\u2226", - "nsim;": "\u2241", - "nsime;": "\u2244", - "nsimeq;": "\u2244", - "nsmid;": "\u2224", - "nspar;": "\u2226", - "nsqsube;": "\u22e2", - "nsqsupe;": "\u22e3", - "nsub;": "\u2284", - "nsubE;": "\u2ac5\u0338", - "nsube;": "\u2288", - "nsubset;": "\u2282\u20d2", - "nsubseteq;": "\u2288", - "nsubseteqq;": "\u2ac5\u0338", - "nsucc;": "\u2281", - "nsucceq;": "\u2ab0\u0338", - "nsup;": "\u2285", - "nsupE;": "\u2ac6\u0338", - "nsupe;": "\u2289", - "nsupset;": "\u2283\u20d2", - "nsupseteq;": "\u2289", - "nsupseteqq;": "\u2ac6\u0338", - "ntgl;": "\u2279", - "ntilde": "\xf1", - "ntilde;": "\xf1", - "ntlg;": "\u2278", - "ntriangleleft;": "\u22ea", - "ntrianglelefteq;": "\u22ec", - "ntriangleright;": "\u22eb", - "ntrianglerighteq;": "\u22ed", - "nu;": "\u03bd", - "num;": "#", - "numero;": "\u2116", - "numsp;": "\u2007", - "nvDash;": "\u22ad", - "nvHarr;": "\u2904", - "nvap;": "\u224d\u20d2", - "nvdash;": "\u22ac", - "nvge;": "\u2265\u20d2", - "nvgt;": ">\u20d2", - "nvinfin;": "\u29de", - "nvlArr;": "\u2902", - "nvle;": "\u2264\u20d2", - "nvlt;": "<\u20d2", - "nvltrie;": "\u22b4\u20d2", - "nvrArr;": "\u2903", - "nvrtrie;": "\u22b5\u20d2", - "nvsim;": "\u223c\u20d2", - "nwArr;": "\u21d6", - "nwarhk;": "\u2923", - "nwarr;": "\u2196", - "nwarrow;": "\u2196", - "nwnear;": "\u2927", - "oS;": "\u24c8", - "oacute": "\xf3", - "oacute;": "\xf3", - "oast;": "\u229b", - "ocir;": "\u229a", - "ocirc": "\xf4", - "ocirc;": "\xf4", - "ocy;": "\u043e", - "odash;": "\u229d", - "odblac;": "\u0151", - "odiv;": "\u2a38", - "odot;": "\u2299", - "odsold;": "\u29bc", - "oelig;": "\u0153", - "ofcir;": "\u29bf", - "ofr;": "\U0001d52c", - "ogon;": "\u02db", - "ograve": "\xf2", - "ograve;": "\xf2", - "ogt;": "\u29c1", - "ohbar;": "\u29b5", - "ohm;": "\u03a9", - "oint;": "\u222e", - "olarr;": "\u21ba", - "olcir;": "\u29be", - "olcross;": "\u29bb", - "oline;": "\u203e", - "olt;": "\u29c0", - "omacr;": "\u014d", - "omega;": "\u03c9", - "omicron;": "\u03bf", - "omid;": "\u29b6", - "ominus;": "\u2296", - "oopf;": "\U0001d560", - "opar;": "\u29b7", - "operp;": "\u29b9", - "oplus;": "\u2295", - "or;": "\u2228", - "orarr;": "\u21bb", - "ord;": "\u2a5d", - "order;": "\u2134", - "orderof;": "\u2134", - "ordf": "\xaa", - "ordf;": "\xaa", - "ordm": "\xba", - "ordm;": "\xba", - "origof;": "\u22b6", - "oror;": "\u2a56", - "orslope;": "\u2a57", - "orv;": "\u2a5b", - "oscr;": "\u2134", - "oslash": "\xf8", - "oslash;": "\xf8", - "osol;": "\u2298", - "otilde": "\xf5", - "otilde;": "\xf5", - "otimes;": "\u2297", - "otimesas;": "\u2a36", - "ouml": "\xf6", - "ouml;": "\xf6", - "ovbar;": "\u233d", - "par;": "\u2225", - "para": "\xb6", - "para;": "\xb6", - "parallel;": "\u2225", - "parsim;": "\u2af3", - "parsl;": "\u2afd", - "part;": "\u2202", - "pcy;": "\u043f", - "percnt;": "%", - "period;": ".", - "permil;": "\u2030", - "perp;": "\u22a5", - "pertenk;": "\u2031", - "pfr;": "\U0001d52d", - "phi;": "\u03c6", - "phiv;": "\u03d5", - "phmmat;": "\u2133", - "phone;": "\u260e", - "pi;": "\u03c0", - "pitchfork;": "\u22d4", - "piv;": "\u03d6", - "planck;": "\u210f", - "planckh;": "\u210e", - "plankv;": "\u210f", - "plus;": "+", - "plusacir;": "\u2a23", - "plusb;": "\u229e", - "pluscir;": "\u2a22", - "plusdo;": "\u2214", - "plusdu;": "\u2a25", - "pluse;": "\u2a72", - "plusmn": "\xb1", - "plusmn;": "\xb1", - "plussim;": "\u2a26", - "plustwo;": "\u2a27", - "pm;": "\xb1", - "pointint;": "\u2a15", - "popf;": "\U0001d561", - "pound": "\xa3", - "pound;": "\xa3", - "pr;": "\u227a", - "prE;": "\u2ab3", - "prap;": "\u2ab7", - "prcue;": "\u227c", - "pre;": "\u2aaf", - "prec;": "\u227a", - "precapprox;": "\u2ab7", - "preccurlyeq;": "\u227c", - "preceq;": "\u2aaf", - "precnapprox;": "\u2ab9", - "precneqq;": "\u2ab5", - "precnsim;": "\u22e8", - "precsim;": "\u227e", - "prime;": "\u2032", - "primes;": "\u2119", - "prnE;": "\u2ab5", - "prnap;": "\u2ab9", - "prnsim;": "\u22e8", - "prod;": "\u220f", - "profalar;": "\u232e", - "profline;": "\u2312", - "profsurf;": "\u2313", - "prop;": "\u221d", - "propto;": "\u221d", - "prsim;": "\u227e", - "prurel;": "\u22b0", - "pscr;": "\U0001d4c5", - "psi;": "\u03c8", - "puncsp;": "\u2008", - "qfr;": "\U0001d52e", - "qint;": "\u2a0c", - "qopf;": "\U0001d562", - "qprime;": "\u2057", - "qscr;": "\U0001d4c6", - "quaternions;": "\u210d", - "quatint;": "\u2a16", - "quest;": "?", - "questeq;": "\u225f", - "quot": "\"", - "quot;": "\"", - "rAarr;": "\u21db", - "rArr;": "\u21d2", - "rAtail;": "\u291c", - "rBarr;": "\u290f", - "rHar;": "\u2964", - "race;": "\u223d\u0331", - "racute;": "\u0155", - "radic;": "\u221a", - "raemptyv;": "\u29b3", - "rang;": "\u27e9", - "rangd;": "\u2992", - "range;": "\u29a5", - "rangle;": "\u27e9", - "raquo": "\xbb", - "raquo;": "\xbb", - "rarr;": "\u2192", - "rarrap;": "\u2975", - "rarrb;": "\u21e5", - "rarrbfs;": "\u2920", - "rarrc;": "\u2933", - "rarrfs;": "\u291e", - "rarrhk;": "\u21aa", - "rarrlp;": "\u21ac", - "rarrpl;": "\u2945", - "rarrsim;": "\u2974", - "rarrtl;": "\u21a3", - "rarrw;": "\u219d", - "ratail;": "\u291a", - "ratio;": "\u2236", - "rationals;": "\u211a", - "rbarr;": "\u290d", - "rbbrk;": "\u2773", - "rbrace;": "}", - "rbrack;": "]", - "rbrke;": "\u298c", - "rbrksld;": "\u298e", - "rbrkslu;": "\u2990", - "rcaron;": "\u0159", - "rcedil;": "\u0157", - "rceil;": "\u2309", - "rcub;": "}", - "rcy;": "\u0440", - "rdca;": "\u2937", - "rdldhar;": "\u2969", - "rdquo;": "\u201d", - "rdquor;": "\u201d", - "rdsh;": "\u21b3", - "real;": "\u211c", - "realine;": "\u211b", - "realpart;": "\u211c", - "reals;": "\u211d", - "rect;": "\u25ad", - "reg": "\xae", - "reg;": "\xae", - "rfisht;": "\u297d", - "rfloor;": "\u230b", - "rfr;": "\U0001d52f", - "rhard;": "\u21c1", - "rharu;": "\u21c0", - "rharul;": "\u296c", - "rho;": "\u03c1", - "rhov;": "\u03f1", - "rightarrow;": "\u2192", - "rightarrowtail;": "\u21a3", - "rightharpoondown;": "\u21c1", - "rightharpoonup;": "\u21c0", - "rightleftarrows;": "\u21c4", - "rightleftharpoons;": "\u21cc", - "rightrightarrows;": "\u21c9", - "rightsquigarrow;": "\u219d", - "rightthreetimes;": "\u22cc", - "ring;": "\u02da", - "risingdotseq;": "\u2253", - "rlarr;": "\u21c4", - "rlhar;": "\u21cc", - "rlm;": "\u200f", - "rmoust;": "\u23b1", - "rmoustache;": "\u23b1", - "rnmid;": "\u2aee", - "roang;": "\u27ed", - "roarr;": "\u21fe", - "robrk;": "\u27e7", - "ropar;": "\u2986", - "ropf;": "\U0001d563", - "roplus;": "\u2a2e", - "rotimes;": "\u2a35", - "rpar;": ")", - "rpargt;": "\u2994", - "rppolint;": "\u2a12", - "rrarr;": "\u21c9", - "rsaquo;": "\u203a", - "rscr;": "\U0001d4c7", - "rsh;": "\u21b1", - "rsqb;": "]", - "rsquo;": "\u2019", - "rsquor;": "\u2019", - "rthree;": "\u22cc", - "rtimes;": "\u22ca", - "rtri;": "\u25b9", - "rtrie;": "\u22b5", - "rtrif;": "\u25b8", - "rtriltri;": "\u29ce", - "ruluhar;": "\u2968", - "rx;": "\u211e", - "sacute;": "\u015b", - "sbquo;": "\u201a", - "sc;": "\u227b", - "scE;": "\u2ab4", - "scap;": "\u2ab8", - "scaron;": "\u0161", - "sccue;": "\u227d", - "sce;": "\u2ab0", - "scedil;": "\u015f", - "scirc;": "\u015d", - "scnE;": "\u2ab6", - "scnap;": "\u2aba", - "scnsim;": "\u22e9", - "scpolint;": "\u2a13", - "scsim;": "\u227f", - "scy;": "\u0441", - "sdot;": "\u22c5", - "sdotb;": "\u22a1", - "sdote;": "\u2a66", - "seArr;": "\u21d8", - "searhk;": "\u2925", - "searr;": "\u2198", - "searrow;": "\u2198", - "sect": "\xa7", - "sect;": "\xa7", - "semi;": ";", - "seswar;": "\u2929", - "setminus;": "\u2216", - "setmn;": "\u2216", - "sext;": "\u2736", - "sfr;": "\U0001d530", - "sfrown;": "\u2322", - "sharp;": "\u266f", - "shchcy;": "\u0449", - "shcy;": "\u0448", - "shortmid;": "\u2223", - "shortparallel;": "\u2225", - "shy": "\xad", - "shy;": "\xad", - "sigma;": "\u03c3", - "sigmaf;": "\u03c2", - "sigmav;": "\u03c2", - "sim;": "\u223c", - "simdot;": "\u2a6a", - "sime;": "\u2243", - "simeq;": "\u2243", - "simg;": "\u2a9e", - "simgE;": "\u2aa0", - "siml;": "\u2a9d", - "simlE;": "\u2a9f", - "simne;": "\u2246", - "simplus;": "\u2a24", - "simrarr;": "\u2972", - "slarr;": "\u2190", - "smallsetminus;": "\u2216", - "smashp;": "\u2a33", - "smeparsl;": "\u29e4", - "smid;": "\u2223", - "smile;": "\u2323", - "smt;": "\u2aaa", - "smte;": "\u2aac", - "smtes;": "\u2aac\ufe00", - "softcy;": "\u044c", - "sol;": "/", - "solb;": "\u29c4", - "solbar;": "\u233f", - "sopf;": "\U0001d564", - "spades;": "\u2660", - "spadesuit;": "\u2660", - "spar;": "\u2225", - "sqcap;": "\u2293", - "sqcaps;": "\u2293\ufe00", - "sqcup;": "\u2294", - "sqcups;": "\u2294\ufe00", - "sqsub;": "\u228f", - "sqsube;": "\u2291", - "sqsubset;": "\u228f", - "sqsubseteq;": "\u2291", - "sqsup;": "\u2290", - "sqsupe;": "\u2292", - "sqsupset;": "\u2290", - "sqsupseteq;": "\u2292", - "squ;": "\u25a1", - "square;": "\u25a1", - "squarf;": "\u25aa", - "squf;": "\u25aa", - "srarr;": "\u2192", - "sscr;": "\U0001d4c8", - "ssetmn;": "\u2216", - "ssmile;": "\u2323", - "sstarf;": "\u22c6", - "star;": "\u2606", - "starf;": "\u2605", - "straightepsilon;": "\u03f5", - "straightphi;": "\u03d5", - "strns;": "\xaf", - "sub;": "\u2282", - "subE;": "\u2ac5", - "subdot;": "\u2abd", - "sube;": "\u2286", - "subedot;": "\u2ac3", - "submult;": "\u2ac1", - "subnE;": "\u2acb", - "subne;": "\u228a", - "subplus;": "\u2abf", - "subrarr;": "\u2979", - "subset;": "\u2282", - "subseteq;": "\u2286", - "subseteqq;": "\u2ac5", - "subsetneq;": "\u228a", - "subsetneqq;": "\u2acb", - "subsim;": "\u2ac7", - "subsub;": "\u2ad5", - "subsup;": "\u2ad3", - "succ;": "\u227b", - "succapprox;": "\u2ab8", - "succcurlyeq;": "\u227d", - "succeq;": "\u2ab0", - "succnapprox;": "\u2aba", - "succneqq;": "\u2ab6", - "succnsim;": "\u22e9", - "succsim;": "\u227f", - "sum;": "\u2211", - "sung;": "\u266a", - "sup1": "\xb9", - "sup1;": "\xb9", - "sup2": "\xb2", - "sup2;": "\xb2", - "sup3": "\xb3", - "sup3;": "\xb3", - "sup;": "\u2283", - "supE;": "\u2ac6", - "supdot;": "\u2abe", - "supdsub;": "\u2ad8", - "supe;": "\u2287", - "supedot;": "\u2ac4", - "suphsol;": "\u27c9", - "suphsub;": "\u2ad7", - "suplarr;": "\u297b", - "supmult;": "\u2ac2", - "supnE;": "\u2acc", - "supne;": "\u228b", - "supplus;": "\u2ac0", - "supset;": "\u2283", - "supseteq;": "\u2287", - "supseteqq;": "\u2ac6", - "supsetneq;": "\u228b", - "supsetneqq;": "\u2acc", - "supsim;": "\u2ac8", - "supsub;": "\u2ad4", - "supsup;": "\u2ad6", - "swArr;": "\u21d9", - "swarhk;": "\u2926", - "swarr;": "\u2199", - "swarrow;": "\u2199", - "swnwar;": "\u292a", - "szlig": "\xdf", - "szlig;": "\xdf", - "target;": "\u2316", - "tau;": "\u03c4", - "tbrk;": "\u23b4", - "tcaron;": "\u0165", - "tcedil;": "\u0163", - "tcy;": "\u0442", - "tdot;": "\u20db", - "telrec;": "\u2315", - "tfr;": "\U0001d531", - "there4;": "\u2234", - "therefore;": "\u2234", - "theta;": "\u03b8", - "thetasym;": "\u03d1", - "thetav;": "\u03d1", - "thickapprox;": "\u2248", - "thicksim;": "\u223c", - "thinsp;": "\u2009", - "thkap;": "\u2248", - "thksim;": "\u223c", - "thorn": "\xfe", - "thorn;": "\xfe", - "tilde;": "\u02dc", - "times": "\xd7", - "times;": "\xd7", - "timesb;": "\u22a0", - "timesbar;": "\u2a31", - "timesd;": "\u2a30", - "tint;": "\u222d", - "toea;": "\u2928", - "top;": "\u22a4", - "topbot;": "\u2336", - "topcir;": "\u2af1", - "topf;": "\U0001d565", - "topfork;": "\u2ada", - "tosa;": "\u2929", - "tprime;": "\u2034", - "trade;": "\u2122", - "triangle;": "\u25b5", - "triangledown;": "\u25bf", - "triangleleft;": "\u25c3", - "trianglelefteq;": "\u22b4", - "triangleq;": "\u225c", - "triangleright;": "\u25b9", - "trianglerighteq;": "\u22b5", - "tridot;": "\u25ec", - "trie;": "\u225c", - "triminus;": "\u2a3a", - "triplus;": "\u2a39", - "trisb;": "\u29cd", - "tritime;": "\u2a3b", - "trpezium;": "\u23e2", - "tscr;": "\U0001d4c9", - "tscy;": "\u0446", - "tshcy;": "\u045b", - "tstrok;": "\u0167", - "twixt;": "\u226c", - "twoheadleftarrow;": "\u219e", - "twoheadrightarrow;": "\u21a0", - "uArr;": "\u21d1", - "uHar;": "\u2963", - "uacute": "\xfa", - "uacute;": "\xfa", - "uarr;": "\u2191", - "ubrcy;": "\u045e", - "ubreve;": "\u016d", - "ucirc": "\xfb", - "ucirc;": "\xfb", - "ucy;": "\u0443", - "udarr;": "\u21c5", - "udblac;": "\u0171", - "udhar;": "\u296e", - "ufisht;": "\u297e", - "ufr;": "\U0001d532", - "ugrave": "\xf9", - "ugrave;": "\xf9", - "uharl;": "\u21bf", - "uharr;": "\u21be", - "uhblk;": "\u2580", - "ulcorn;": "\u231c", - "ulcorner;": "\u231c", - "ulcrop;": "\u230f", - "ultri;": "\u25f8", - "umacr;": "\u016b", - "uml": "\xa8", - "uml;": "\xa8", - "uogon;": "\u0173", - "uopf;": "\U0001d566", - "uparrow;": "\u2191", - "updownarrow;": "\u2195", - "upharpoonleft;": "\u21bf", - "upharpoonright;": "\u21be", - "uplus;": "\u228e", - "upsi;": "\u03c5", - "upsih;": "\u03d2", - "upsilon;": "\u03c5", - "upuparrows;": "\u21c8", - "urcorn;": "\u231d", - "urcorner;": "\u231d", - "urcrop;": "\u230e", - "uring;": "\u016f", - "urtri;": "\u25f9", - "uscr;": "\U0001d4ca", - "utdot;": "\u22f0", - "utilde;": "\u0169", - "utri;": "\u25b5", - "utrif;": "\u25b4", - "uuarr;": "\u21c8", - "uuml": "\xfc", - "uuml;": "\xfc", - "uwangle;": "\u29a7", - "vArr;": "\u21d5", - "vBar;": "\u2ae8", - "vBarv;": "\u2ae9", - "vDash;": "\u22a8", - "vangrt;": "\u299c", - "varepsilon;": "\u03f5", - "varkappa;": "\u03f0", - "varnothing;": "\u2205", - "varphi;": "\u03d5", - "varpi;": "\u03d6", - "varpropto;": "\u221d", - "varr;": "\u2195", - "varrho;": "\u03f1", - "varsigma;": "\u03c2", - "varsubsetneq;": "\u228a\ufe00", - "varsubsetneqq;": "\u2acb\ufe00", - "varsupsetneq;": "\u228b\ufe00", - "varsupsetneqq;": "\u2acc\ufe00", - "vartheta;": "\u03d1", - "vartriangleleft;": "\u22b2", - "vartriangleright;": "\u22b3", - "vcy;": "\u0432", - "vdash;": "\u22a2", - "vee;": "\u2228", - "veebar;": "\u22bb", - "veeeq;": "\u225a", - "vellip;": "\u22ee", - "verbar;": "|", - "vert;": "|", - "vfr;": "\U0001d533", - "vltri;": "\u22b2", - "vnsub;": "\u2282\u20d2", - "vnsup;": "\u2283\u20d2", - "vopf;": "\U0001d567", - "vprop;": "\u221d", - "vrtri;": "\u22b3", - "vscr;": "\U0001d4cb", - "vsubnE;": "\u2acb\ufe00", - "vsubne;": "\u228a\ufe00", - "vsupnE;": "\u2acc\ufe00", - "vsupne;": "\u228b\ufe00", - "vzigzag;": "\u299a", - "wcirc;": "\u0175", - "wedbar;": "\u2a5f", - "wedge;": "\u2227", - "wedgeq;": "\u2259", - "weierp;": "\u2118", - "wfr;": "\U0001d534", - "wopf;": "\U0001d568", - "wp;": "\u2118", - "wr;": "\u2240", - "wreath;": "\u2240", - "wscr;": "\U0001d4cc", - "xcap;": "\u22c2", - "xcirc;": "\u25ef", - "xcup;": "\u22c3", - "xdtri;": "\u25bd", - "xfr;": "\U0001d535", - "xhArr;": "\u27fa", - "xharr;": "\u27f7", - "xi;": "\u03be", - "xlArr;": "\u27f8", - "xlarr;": "\u27f5", - "xmap;": "\u27fc", - "xnis;": "\u22fb", - "xodot;": "\u2a00", - "xopf;": "\U0001d569", - "xoplus;": "\u2a01", - "xotime;": "\u2a02", - "xrArr;": "\u27f9", - "xrarr;": "\u27f6", - "xscr;": "\U0001d4cd", - "xsqcup;": "\u2a06", - "xuplus;": "\u2a04", - "xutri;": "\u25b3", - "xvee;": "\u22c1", - "xwedge;": "\u22c0", - "yacute": "\xfd", - "yacute;": "\xfd", - "yacy;": "\u044f", - "ycirc;": "\u0177", - "ycy;": "\u044b", - "yen": "\xa5", - "yen;": "\xa5", - "yfr;": "\U0001d536", - "yicy;": "\u0457", - "yopf;": "\U0001d56a", - "yscr;": "\U0001d4ce", - "yucy;": "\u044e", - "yuml": "\xff", - "yuml;": "\xff", - "zacute;": "\u017a", - "zcaron;": "\u017e", - "zcy;": "\u0437", - "zdot;": "\u017c", - "zeetrf;": "\u2128", - "zeta;": "\u03b6", - "zfr;": "\U0001d537", - "zhcy;": "\u0436", - "zigrarr;": "\u21dd", - "zopf;": "\U0001d56b", - "zscr;": "\U0001d4cf", - "zwj;": "\u200d", - "zwnj;": "\u200c", -} - -replacementCharacters = { - 0x0: "\uFFFD", - 0x0d: "\u000D", - 0x80: "\u20AC", - 0x81: "\u0081", - 0x82: "\u201A", - 0x83: "\u0192", - 0x84: "\u201E", - 0x85: "\u2026", - 0x86: "\u2020", - 0x87: "\u2021", - 0x88: "\u02C6", - 0x89: "\u2030", - 0x8A: "\u0160", - 0x8B: "\u2039", - 0x8C: "\u0152", - 0x8D: "\u008D", - 0x8E: "\u017D", - 0x8F: "\u008F", - 0x90: "\u0090", - 0x91: "\u2018", - 0x92: "\u2019", - 0x93: "\u201C", - 0x94: "\u201D", - 0x95: "\u2022", - 0x96: "\u2013", - 0x97: "\u2014", - 0x98: "\u02DC", - 0x99: "\u2122", - 0x9A: "\u0161", - 0x9B: "\u203A", - 0x9C: "\u0153", - 0x9D: "\u009D", - 0x9E: "\u017E", - 0x9F: "\u0178", -} - -tokenTypes = { - "Doctype": 0, - "Characters": 1, - "SpaceCharacters": 2, - "StartTag": 3, - "EndTag": 4, - "EmptyTag": 5, - "Comment": 6, - "ParseError": 7 -} - -tagTokenTypes = frozenset([tokenTypes["StartTag"], tokenTypes["EndTag"], - tokenTypes["EmptyTag"]]) - - -prefixes = dict([(v, k) for k, v in namespaces.items()]) -prefixes["http://www.w3.org/1998/Math/MathML"] = "math" - - -class DataLossWarning(UserWarning): - """Raised when the current tree is unable to represent the input data""" - pass - - -class _ReparseException(Exception): - pass diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py deleted file mode 100644 index 5ba926e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py +++ /dev/null @@ -1,29 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from . import base - -from collections import OrderedDict - - -def _attr_key(attr): - """Return an appropriate key for an attribute for sorting - - Attributes have a namespace that can be either ``None`` or a string. We - can't compare the two because they're different types, so we convert - ``None`` to an empty string first. - - """ - return (attr[0][0] or ''), attr[0][1] - - -class Filter(base.Filter): - """Alphabetizes attributes for elements""" - def __iter__(self): - for token in base.Filter.__iter__(self): - if token["type"] in ("StartTag", "EmptyTag"): - attrs = OrderedDict() - for name, value in sorted(token["data"].items(), - key=_attr_key): - attrs[name] = value - token["data"] = attrs - yield token diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/base.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/base.py deleted file mode 100644 index c7dbaed..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/base.py +++ /dev/null @@ -1,12 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - - -class Filter(object): - def __init__(self, source): - self.source = source - - def __iter__(self): - return iter(self.source) - - def __getattr__(self, name): - return getattr(self.source, name) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py deleted file mode 100644 index aefb5c8..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py +++ /dev/null @@ -1,73 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from . import base - - -class Filter(base.Filter): - """Injects ``<meta charset=ENCODING>`` tag into head of document""" - def __init__(self, source, encoding): - """Creates a Filter - - :arg source: the source token stream - - :arg encoding: the encoding to set - - """ - base.Filter.__init__(self, source) - self.encoding = encoding - - def __iter__(self): - state = "pre_head" - meta_found = (self.encoding is None) - pending = [] - - for token in base.Filter.__iter__(self): - type = token["type"] - if type == "StartTag": - if token["name"].lower() == "head": - state = "in_head" - - elif type == "EmptyTag": - if token["name"].lower() == "meta": - # replace charset with actual encoding - has_http_equiv_content_type = False - for (namespace, name), value in token["data"].items(): - if namespace is not None: - continue - elif name.lower() == 'charset': - token["data"][(namespace, name)] = self.encoding - meta_found = True - break - elif name == 'http-equiv' and value.lower() == 'content-type': - has_http_equiv_content_type = True - else: - if has_http_equiv_content_type and (None, "content") in token["data"]: - token["data"][(None, "content")] = 'text/html; charset=%s' % self.encoding - meta_found = True - - elif token["name"].lower() == "head" and not meta_found: - # insert meta into empty head - yield {"type": "StartTag", "name": "head", - "data": token["data"]} - yield {"type": "EmptyTag", "name": "meta", - "data": {(None, "charset"): self.encoding}} - yield {"type": "EndTag", "name": "head"} - meta_found = True - continue - - elif type == "EndTag": - if token["name"].lower() == "head" and pending: - # insert meta into head (if necessary) and flush pending queue - yield pending.pop(0) - if not meta_found: - yield {"type": "EmptyTag", "name": "meta", - "data": {(None, "charset"): self.encoding}} - while pending: - yield pending.pop(0) - meta_found = True - state = "post_head" - - if state == "in_head": - pending.append(token) - else: - yield token diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/lint.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/lint.py deleted file mode 100644 index fcc07ee..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/lint.py +++ /dev/null @@ -1,93 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from pip._vendor.six import text_type - -from . import base -from ..constants import namespaces, voidElements - -from ..constants import spaceCharacters -spaceCharacters = "".join(spaceCharacters) - - -class Filter(base.Filter): - """Lints the token stream for errors - - If it finds any errors, it'll raise an ``AssertionError``. - - """ - def __init__(self, source, require_matching_tags=True): - """Creates a Filter - - :arg source: the source token stream - - :arg require_matching_tags: whether or not to require matching tags - - """ - super(Filter, self).__init__(source) - self.require_matching_tags = require_matching_tags - - def __iter__(self): - open_elements = [] - for token in base.Filter.__iter__(self): - type = token["type"] - if type in ("StartTag", "EmptyTag"): - namespace = token["namespace"] - name = token["name"] - assert namespace is None or isinstance(namespace, text_type) - assert namespace != "" - assert isinstance(name, text_type) - assert name != "" - assert isinstance(token["data"], dict) - if (not namespace or namespace == namespaces["html"]) and name in voidElements: - assert type == "EmptyTag" - else: - assert type == "StartTag" - if type == "StartTag" and self.require_matching_tags: - open_elements.append((namespace, name)) - for (namespace, name), value in token["data"].items(): - assert namespace is None or isinstance(namespace, text_type) - assert namespace != "" - assert isinstance(name, text_type) - assert name != "" - assert isinstance(value, text_type) - - elif type == "EndTag": - namespace = token["namespace"] - name = token["name"] - assert namespace is None or isinstance(namespace, text_type) - assert namespace != "" - assert isinstance(name, text_type) - assert name != "" - if (not namespace or namespace == namespaces["html"]) and name in voidElements: - assert False, "Void element reported as EndTag token: %(tag)s" % {"tag": name} - elif self.require_matching_tags: - start = open_elements.pop() - assert start == (namespace, name) - - elif type == "Comment": - data = token["data"] - assert isinstance(data, text_type) - - elif type in ("Characters", "SpaceCharacters"): - data = token["data"] - assert isinstance(data, text_type) - assert data != "" - if type == "SpaceCharacters": - assert data.strip(spaceCharacters) == "" - - elif type == "Doctype": - name = token["name"] - assert name is None or isinstance(name, text_type) - assert token["publicId"] is None or isinstance(name, text_type) - assert token["systemId"] is None or isinstance(name, text_type) - - elif type == "Entity": - assert isinstance(token["name"], text_type) - - elif type == "SerializerError": - assert isinstance(token["data"], text_type) - - else: - assert False, "Unknown token type: %(type)s" % {"type": type} - - yield token diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/optionaltags.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/optionaltags.py deleted file mode 100644 index 4a86501..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/optionaltags.py +++ /dev/null @@ -1,207 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from . import base - - -class Filter(base.Filter): - """Removes optional tags from the token stream""" - def slider(self): - previous1 = previous2 = None - for token in self.source: - if previous1 is not None: - yield previous2, previous1, token - previous2 = previous1 - previous1 = token - if previous1 is not None: - yield previous2, previous1, None - - def __iter__(self): - for previous, token, next in self.slider(): - type = token["type"] - if type == "StartTag": - if (token["data"] or - not self.is_optional_start(token["name"], previous, next)): - yield token - elif type == "EndTag": - if not self.is_optional_end(token["name"], next): - yield token - else: - yield token - - def is_optional_start(self, tagname, previous, next): - type = next and next["type"] or None - if tagname in 'html': - # An html element's start tag may be omitted if the first thing - # inside the html element is not a space character or a comment. - return type not in ("Comment", "SpaceCharacters") - elif tagname == 'head': - # A head element's start tag may be omitted if the first thing - # inside the head element is an element. - # XXX: we also omit the start tag if the head element is empty - if type in ("StartTag", "EmptyTag"): - return True - elif type == "EndTag": - return next["name"] == "head" - elif tagname == 'body': - # A body element's start tag may be omitted if the first thing - # inside the body element is not a space character or a comment, - # except if the first thing inside the body element is a script - # or style element and the node immediately preceding the body - # element is a head element whose end tag has been omitted. - if type in ("Comment", "SpaceCharacters"): - return False - elif type == "StartTag": - # XXX: we do not look at the preceding event, so we never omit - # the body element's start tag if it's followed by a script or - # a style element. - return next["name"] not in ('script', 'style') - else: - return True - elif tagname == 'colgroup': - # A colgroup element's start tag may be omitted if the first thing - # inside the colgroup element is a col element, and if the element - # is not immediately preceded by another colgroup element whose - # end tag has been omitted. - if type in ("StartTag", "EmptyTag"): - # XXX: we do not look at the preceding event, so instead we never - # omit the colgroup element's end tag when it is immediately - # followed by another colgroup element. See is_optional_end. - return next["name"] == "col" - else: - return False - elif tagname == 'tbody': - # A tbody element's start tag may be omitted if the first thing - # inside the tbody element is a tr element, and if the element is - # not immediately preceded by a tbody, thead, or tfoot element - # whose end tag has been omitted. - if type == "StartTag": - # omit the thead and tfoot elements' end tag when they are - # immediately followed by a tbody element. See is_optional_end. - if previous and previous['type'] == 'EndTag' and \ - previous['name'] in ('tbody', 'thead', 'tfoot'): - return False - return next["name"] == 'tr' - else: - return False - return False - - def is_optional_end(self, tagname, next): - type = next and next["type"] or None - if tagname in ('html', 'head', 'body'): - # An html element's end tag may be omitted if the html element - # is not immediately followed by a space character or a comment. - return type not in ("Comment", "SpaceCharacters") - elif tagname in ('li', 'optgroup', 'tr'): - # A li element's end tag may be omitted if the li element is - # immediately followed by another li element or if there is - # no more content in the parent element. - # An optgroup element's end tag may be omitted if the optgroup - # element is immediately followed by another optgroup element, - # or if there is no more content in the parent element. - # A tr element's end tag may be omitted if the tr element is - # immediately followed by another tr element, or if there is - # no more content in the parent element. - if type == "StartTag": - return next["name"] == tagname - else: - return type == "EndTag" or type is None - elif tagname in ('dt', 'dd'): - # A dt element's end tag may be omitted if the dt element is - # immediately followed by another dt element or a dd element. - # A dd element's end tag may be omitted if the dd element is - # immediately followed by another dd element or a dt element, - # or if there is no more content in the parent element. - if type == "StartTag": - return next["name"] in ('dt', 'dd') - elif tagname == 'dd': - return type == "EndTag" or type is None - else: - return False - elif tagname == 'p': - # A p element's end tag may be omitted if the p element is - # immediately followed by an address, article, aside, - # blockquote, datagrid, dialog, dir, div, dl, fieldset, - # footer, form, h1, h2, h3, h4, h5, h6, header, hr, menu, - # nav, ol, p, pre, section, table, or ul, element, or if - # there is no more content in the parent element. - if type in ("StartTag", "EmptyTag"): - return next["name"] in ('address', 'article', 'aside', - 'blockquote', 'datagrid', 'dialog', - 'dir', 'div', 'dl', 'fieldset', 'footer', - 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', - 'header', 'hr', 'menu', 'nav', 'ol', - 'p', 'pre', 'section', 'table', 'ul') - else: - return type == "EndTag" or type is None - elif tagname == 'option': - # An option element's end tag may be omitted if the option - # element is immediately followed by another option element, - # or if it is immediately followed by an <code>optgroup</code> - # element, or if there is no more content in the parent - # element. - if type == "StartTag": - return next["name"] in ('option', 'optgroup') - else: - return type == "EndTag" or type is None - elif tagname in ('rt', 'rp'): - # An rt element's end tag may be omitted if the rt element is - # immediately followed by an rt or rp element, or if there is - # no more content in the parent element. - # An rp element's end tag may be omitted if the rp element is - # immediately followed by an rt or rp element, or if there is - # no more content in the parent element. - if type == "StartTag": - return next["name"] in ('rt', 'rp') - else: - return type == "EndTag" or type is None - elif tagname == 'colgroup': - # A colgroup element's end tag may be omitted if the colgroup - # element is not immediately followed by a space character or - # a comment. - if type in ("Comment", "SpaceCharacters"): - return False - elif type == "StartTag": - # XXX: we also look for an immediately following colgroup - # element. See is_optional_start. - return next["name"] != 'colgroup' - else: - return True - elif tagname in ('thead', 'tbody'): - # A thead element's end tag may be omitted if the thead element - # is immediately followed by a tbody or tfoot element. - # A tbody element's end tag may be omitted if the tbody element - # is immediately followed by a tbody or tfoot element, or if - # there is no more content in the parent element. - # A tfoot element's end tag may be omitted if the tfoot element - # is immediately followed by a tbody element, or if there is no - # more content in the parent element. - # XXX: we never omit the end tag when the following element is - # a tbody. See is_optional_start. - if type == "StartTag": - return next["name"] in ['tbody', 'tfoot'] - elif tagname == 'tbody': - return type == "EndTag" or type is None - else: - return False - elif tagname == 'tfoot': - # A tfoot element's end tag may be omitted if the tfoot element - # is immediately followed by a tbody element, or if there is no - # more content in the parent element. - # XXX: we never omit the end tag when the following element is - # a tbody. See is_optional_start. - if type == "StartTag": - return next["name"] == 'tbody' - else: - return type == "EndTag" or type is None - elif tagname in ('td', 'th'): - # A td element's end tag may be omitted if the td element is - # immediately followed by a td or th element, or if there is - # no more content in the parent element. - # A th element's end tag may be omitted if the th element is - # immediately followed by a td or th element, or if there is - # no more content in the parent element. - if type == "StartTag": - return next["name"] in ('td', 'th') - else: - return type == "EndTag" or type is None - return False diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/sanitizer.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/sanitizer.py deleted file mode 100644 index af8e77b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/sanitizer.py +++ /dev/null @@ -1,896 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import re -from xml.sax.saxutils import escape, unescape - -from pip._vendor.six.moves import urllib_parse as urlparse - -from . import base -from ..constants import namespaces, prefixes - -__all__ = ["Filter"] - - -allowed_elements = frozenset(( - (namespaces['html'], 'a'), - (namespaces['html'], 'abbr'), - (namespaces['html'], 'acronym'), - (namespaces['html'], 'address'), - (namespaces['html'], 'area'), - (namespaces['html'], 'article'), - (namespaces['html'], 'aside'), - (namespaces['html'], 'audio'), - (namespaces['html'], 'b'), - (namespaces['html'], 'big'), - (namespaces['html'], 'blockquote'), - (namespaces['html'], 'br'), - (namespaces['html'], 'button'), - (namespaces['html'], 'canvas'), - (namespaces['html'], 'caption'), - (namespaces['html'], 'center'), - (namespaces['html'], 'cite'), - (namespaces['html'], 'code'), - (namespaces['html'], 'col'), - (namespaces['html'], 'colgroup'), - (namespaces['html'], 'command'), - (namespaces['html'], 'datagrid'), - (namespaces['html'], 'datalist'), - (namespaces['html'], 'dd'), - (namespaces['html'], 'del'), - (namespaces['html'], 'details'), - (namespaces['html'], 'dfn'), - (namespaces['html'], 'dialog'), - (namespaces['html'], 'dir'), - (namespaces['html'], 'div'), - (namespaces['html'], 'dl'), - (namespaces['html'], 'dt'), - (namespaces['html'], 'em'), - (namespaces['html'], 'event-source'), - (namespaces['html'], 'fieldset'), - (namespaces['html'], 'figcaption'), - (namespaces['html'], 'figure'), - (namespaces['html'], 'footer'), - (namespaces['html'], 'font'), - (namespaces['html'], 'form'), - (namespaces['html'], 'header'), - (namespaces['html'], 'h1'), - (namespaces['html'], 'h2'), - (namespaces['html'], 'h3'), - (namespaces['html'], 'h4'), - (namespaces['html'], 'h5'), - (namespaces['html'], 'h6'), - (namespaces['html'], 'hr'), - (namespaces['html'], 'i'), - (namespaces['html'], 'img'), - (namespaces['html'], 'input'), - (namespaces['html'], 'ins'), - (namespaces['html'], 'keygen'), - (namespaces['html'], 'kbd'), - (namespaces['html'], 'label'), - (namespaces['html'], 'legend'), - (namespaces['html'], 'li'), - (namespaces['html'], 'm'), - (namespaces['html'], 'map'), - (namespaces['html'], 'menu'), - (namespaces['html'], 'meter'), - (namespaces['html'], 'multicol'), - (namespaces['html'], 'nav'), - (namespaces['html'], 'nextid'), - (namespaces['html'], 'ol'), - (namespaces['html'], 'output'), - (namespaces['html'], 'optgroup'), - (namespaces['html'], 'option'), - (namespaces['html'], 'p'), - (namespaces['html'], 'pre'), - (namespaces['html'], 'progress'), - (namespaces['html'], 'q'), - (namespaces['html'], 's'), - (namespaces['html'], 'samp'), - (namespaces['html'], 'section'), - (namespaces['html'], 'select'), - (namespaces['html'], 'small'), - (namespaces['html'], 'sound'), - (namespaces['html'], 'source'), - (namespaces['html'], 'spacer'), - (namespaces['html'], 'span'), - (namespaces['html'], 'strike'), - (namespaces['html'], 'strong'), - (namespaces['html'], 'sub'), - (namespaces['html'], 'sup'), - (namespaces['html'], 'table'), - (namespaces['html'], 'tbody'), - (namespaces['html'], 'td'), - (namespaces['html'], 'textarea'), - (namespaces['html'], 'time'), - (namespaces['html'], 'tfoot'), - (namespaces['html'], 'th'), - (namespaces['html'], 'thead'), - (namespaces['html'], 'tr'), - (namespaces['html'], 'tt'), - (namespaces['html'], 'u'), - (namespaces['html'], 'ul'), - (namespaces['html'], 'var'), - (namespaces['html'], 'video'), - (namespaces['mathml'], 'maction'), - (namespaces['mathml'], 'math'), - (namespaces['mathml'], 'merror'), - (namespaces['mathml'], 'mfrac'), - (namespaces['mathml'], 'mi'), - (namespaces['mathml'], 'mmultiscripts'), - (namespaces['mathml'], 'mn'), - (namespaces['mathml'], 'mo'), - (namespaces['mathml'], 'mover'), - (namespaces['mathml'], 'mpadded'), - (namespaces['mathml'], 'mphantom'), - (namespaces['mathml'], 'mprescripts'), - (namespaces['mathml'], 'mroot'), - (namespaces['mathml'], 'mrow'), - (namespaces['mathml'], 'mspace'), - (namespaces['mathml'], 'msqrt'), - (namespaces['mathml'], 'mstyle'), - (namespaces['mathml'], 'msub'), - (namespaces['mathml'], 'msubsup'), - (namespaces['mathml'], 'msup'), - (namespaces['mathml'], 'mtable'), - (namespaces['mathml'], 'mtd'), - (namespaces['mathml'], 'mtext'), - (namespaces['mathml'], 'mtr'), - (namespaces['mathml'], 'munder'), - (namespaces['mathml'], 'munderover'), - (namespaces['mathml'], 'none'), - (namespaces['svg'], 'a'), - (namespaces['svg'], 'animate'), - (namespaces['svg'], 'animateColor'), - (namespaces['svg'], 'animateMotion'), - (namespaces['svg'], 'animateTransform'), - (namespaces['svg'], 'clipPath'), - (namespaces['svg'], 'circle'), - (namespaces['svg'], 'defs'), - (namespaces['svg'], 'desc'), - (namespaces['svg'], 'ellipse'), - (namespaces['svg'], 'font-face'), - (namespaces['svg'], 'font-face-name'), - (namespaces['svg'], 'font-face-src'), - (namespaces['svg'], 'g'), - (namespaces['svg'], 'glyph'), - (namespaces['svg'], 'hkern'), - (namespaces['svg'], 'linearGradient'), - (namespaces['svg'], 'line'), - (namespaces['svg'], 'marker'), - (namespaces['svg'], 'metadata'), - (namespaces['svg'], 'missing-glyph'), - (namespaces['svg'], 'mpath'), - (namespaces['svg'], 'path'), - (namespaces['svg'], 'polygon'), - (namespaces['svg'], 'polyline'), - (namespaces['svg'], 'radialGradient'), - (namespaces['svg'], 'rect'), - (namespaces['svg'], 'set'), - (namespaces['svg'], 'stop'), - (namespaces['svg'], 'svg'), - (namespaces['svg'], 'switch'), - (namespaces['svg'], 'text'), - (namespaces['svg'], 'title'), - (namespaces['svg'], 'tspan'), - (namespaces['svg'], 'use'), -)) - -allowed_attributes = frozenset(( - # HTML attributes - (None, 'abbr'), - (None, 'accept'), - (None, 'accept-charset'), - (None, 'accesskey'), - (None, 'action'), - (None, 'align'), - (None, 'alt'), - (None, 'autocomplete'), - (None, 'autofocus'), - (None, 'axis'), - (None, 'background'), - (None, 'balance'), - (None, 'bgcolor'), - (None, 'bgproperties'), - (None, 'border'), - (None, 'bordercolor'), - (None, 'bordercolordark'), - (None, 'bordercolorlight'), - (None, 'bottompadding'), - (None, 'cellpadding'), - (None, 'cellspacing'), - (None, 'ch'), - (None, 'challenge'), - (None, 'char'), - (None, 'charoff'), - (None, 'choff'), - (None, 'charset'), - (None, 'checked'), - (None, 'cite'), - (None, 'class'), - (None, 'clear'), - (None, 'color'), - (None, 'cols'), - (None, 'colspan'), - (None, 'compact'), - (None, 'contenteditable'), - (None, 'controls'), - (None, 'coords'), - (None, 'data'), - (None, 'datafld'), - (None, 'datapagesize'), - (None, 'datasrc'), - (None, 'datetime'), - (None, 'default'), - (None, 'delay'), - (None, 'dir'), - (None, 'disabled'), - (None, 'draggable'), - (None, 'dynsrc'), - (None, 'enctype'), - (None, 'end'), - (None, 'face'), - (None, 'for'), - (None, 'form'), - (None, 'frame'), - (None, 'galleryimg'), - (None, 'gutter'), - (None, 'headers'), - (None, 'height'), - (None, 'hidefocus'), - (None, 'hidden'), - (None, 'high'), - (None, 'href'), - (None, 'hreflang'), - (None, 'hspace'), - (None, 'icon'), - (None, 'id'), - (None, 'inputmode'), - (None, 'ismap'), - (None, 'keytype'), - (None, 'label'), - (None, 'leftspacing'), - (None, 'lang'), - (None, 'list'), - (None, 'longdesc'), - (None, 'loop'), - (None, 'loopcount'), - (None, 'loopend'), - (None, 'loopstart'), - (None, 'low'), - (None, 'lowsrc'), - (None, 'max'), - (None, 'maxlength'), - (None, 'media'), - (None, 'method'), - (None, 'min'), - (None, 'multiple'), - (None, 'name'), - (None, 'nohref'), - (None, 'noshade'), - (None, 'nowrap'), - (None, 'open'), - (None, 'optimum'), - (None, 'pattern'), - (None, 'ping'), - (None, 'point-size'), - (None, 'poster'), - (None, 'pqg'), - (None, 'preload'), - (None, 'prompt'), - (None, 'radiogroup'), - (None, 'readonly'), - (None, 'rel'), - (None, 'repeat-max'), - (None, 'repeat-min'), - (None, 'replace'), - (None, 'required'), - (None, 'rev'), - (None, 'rightspacing'), - (None, 'rows'), - (None, 'rowspan'), - (None, 'rules'), - (None, 'scope'), - (None, 'selected'), - (None, 'shape'), - (None, 'size'), - (None, 'span'), - (None, 'src'), - (None, 'start'), - (None, 'step'), - (None, 'style'), - (None, 'summary'), - (None, 'suppress'), - (None, 'tabindex'), - (None, 'target'), - (None, 'template'), - (None, 'title'), - (None, 'toppadding'), - (None, 'type'), - (None, 'unselectable'), - (None, 'usemap'), - (None, 'urn'), - (None, 'valign'), - (None, 'value'), - (None, 'variable'), - (None, 'volume'), - (None, 'vspace'), - (None, 'vrml'), - (None, 'width'), - (None, 'wrap'), - (namespaces['xml'], 'lang'), - # MathML attributes - (None, 'actiontype'), - (None, 'align'), - (None, 'columnalign'), - (None, 'columnalign'), - (None, 'columnalign'), - (None, 'columnlines'), - (None, 'columnspacing'), - (None, 'columnspan'), - (None, 'depth'), - (None, 'display'), - (None, 'displaystyle'), - (None, 'equalcolumns'), - (None, 'equalrows'), - (None, 'fence'), - (None, 'fontstyle'), - (None, 'fontweight'), - (None, 'frame'), - (None, 'height'), - (None, 'linethickness'), - (None, 'lspace'), - (None, 'mathbackground'), - (None, 'mathcolor'), - (None, 'mathvariant'), - (None, 'mathvariant'), - (None, 'maxsize'), - (None, 'minsize'), - (None, 'other'), - (None, 'rowalign'), - (None, 'rowalign'), - (None, 'rowalign'), - (None, 'rowlines'), - (None, 'rowspacing'), - (None, 'rowspan'), - (None, 'rspace'), - (None, 'scriptlevel'), - (None, 'selection'), - (None, 'separator'), - (None, 'stretchy'), - (None, 'width'), - (None, 'width'), - (namespaces['xlink'], 'href'), - (namespaces['xlink'], 'show'), - (namespaces['xlink'], 'type'), - # SVG attributes - (None, 'accent-height'), - (None, 'accumulate'), - (None, 'additive'), - (None, 'alphabetic'), - (None, 'arabic-form'), - (None, 'ascent'), - (None, 'attributeName'), - (None, 'attributeType'), - (None, 'baseProfile'), - (None, 'bbox'), - (None, 'begin'), - (None, 'by'), - (None, 'calcMode'), - (None, 'cap-height'), - (None, 'class'), - (None, 'clip-path'), - (None, 'color'), - (None, 'color-rendering'), - (None, 'content'), - (None, 'cx'), - (None, 'cy'), - (None, 'd'), - (None, 'dx'), - (None, 'dy'), - (None, 'descent'), - (None, 'display'), - (None, 'dur'), - (None, 'end'), - (None, 'fill'), - (None, 'fill-opacity'), - (None, 'fill-rule'), - (None, 'font-family'), - (None, 'font-size'), - (None, 'font-stretch'), - (None, 'font-style'), - (None, 'font-variant'), - (None, 'font-weight'), - (None, 'from'), - (None, 'fx'), - (None, 'fy'), - (None, 'g1'), - (None, 'g2'), - (None, 'glyph-name'), - (None, 'gradientUnits'), - (None, 'hanging'), - (None, 'height'), - (None, 'horiz-adv-x'), - (None, 'horiz-origin-x'), - (None, 'id'), - (None, 'ideographic'), - (None, 'k'), - (None, 'keyPoints'), - (None, 'keySplines'), - (None, 'keyTimes'), - (None, 'lang'), - (None, 'marker-end'), - (None, 'marker-mid'), - (None, 'marker-start'), - (None, 'markerHeight'), - (None, 'markerUnits'), - (None, 'markerWidth'), - (None, 'mathematical'), - (None, 'max'), - (None, 'min'), - (None, 'name'), - (None, 'offset'), - (None, 'opacity'), - (None, 'orient'), - (None, 'origin'), - (None, 'overline-position'), - (None, 'overline-thickness'), - (None, 'panose-1'), - (None, 'path'), - (None, 'pathLength'), - (None, 'points'), - (None, 'preserveAspectRatio'), - (None, 'r'), - (None, 'refX'), - (None, 'refY'), - (None, 'repeatCount'), - (None, 'repeatDur'), - (None, 'requiredExtensions'), - (None, 'requiredFeatures'), - (None, 'restart'), - (None, 'rotate'), - (None, 'rx'), - (None, 'ry'), - (None, 'slope'), - (None, 'stemh'), - (None, 'stemv'), - (None, 'stop-color'), - (None, 'stop-opacity'), - (None, 'strikethrough-position'), - (None, 'strikethrough-thickness'), - (None, 'stroke'), - (None, 'stroke-dasharray'), - (None, 'stroke-dashoffset'), - (None, 'stroke-linecap'), - (None, 'stroke-linejoin'), - (None, 'stroke-miterlimit'), - (None, 'stroke-opacity'), - (None, 'stroke-width'), - (None, 'systemLanguage'), - (None, 'target'), - (None, 'text-anchor'), - (None, 'to'), - (None, 'transform'), - (None, 'type'), - (None, 'u1'), - (None, 'u2'), - (None, 'underline-position'), - (None, 'underline-thickness'), - (None, 'unicode'), - (None, 'unicode-range'), - (None, 'units-per-em'), - (None, 'values'), - (None, 'version'), - (None, 'viewBox'), - (None, 'visibility'), - (None, 'width'), - (None, 'widths'), - (None, 'x'), - (None, 'x-height'), - (None, 'x1'), - (None, 'x2'), - (namespaces['xlink'], 'actuate'), - (namespaces['xlink'], 'arcrole'), - (namespaces['xlink'], 'href'), - (namespaces['xlink'], 'role'), - (namespaces['xlink'], 'show'), - (namespaces['xlink'], 'title'), - (namespaces['xlink'], 'type'), - (namespaces['xml'], 'base'), - (namespaces['xml'], 'lang'), - (namespaces['xml'], 'space'), - (None, 'y'), - (None, 'y1'), - (None, 'y2'), - (None, 'zoomAndPan'), -)) - -attr_val_is_uri = frozenset(( - (None, 'href'), - (None, 'src'), - (None, 'cite'), - (None, 'action'), - (None, 'longdesc'), - (None, 'poster'), - (None, 'background'), - (None, 'datasrc'), - (None, 'dynsrc'), - (None, 'lowsrc'), - (None, 'ping'), - (namespaces['xlink'], 'href'), - (namespaces['xml'], 'base'), -)) - -svg_attr_val_allows_ref = frozenset(( - (None, 'clip-path'), - (None, 'color-profile'), - (None, 'cursor'), - (None, 'fill'), - (None, 'filter'), - (None, 'marker'), - (None, 'marker-start'), - (None, 'marker-mid'), - (None, 'marker-end'), - (None, 'mask'), - (None, 'stroke'), -)) - -svg_allow_local_href = frozenset(( - (None, 'altGlyph'), - (None, 'animate'), - (None, 'animateColor'), - (None, 'animateMotion'), - (None, 'animateTransform'), - (None, 'cursor'), - (None, 'feImage'), - (None, 'filter'), - (None, 'linearGradient'), - (None, 'pattern'), - (None, 'radialGradient'), - (None, 'textpath'), - (None, 'tref'), - (None, 'set'), - (None, 'use') -)) - -allowed_css_properties = frozenset(( - 'azimuth', - 'background-color', - 'border-bottom-color', - 'border-collapse', - 'border-color', - 'border-left-color', - 'border-right-color', - 'border-top-color', - 'clear', - 'color', - 'cursor', - 'direction', - 'display', - 'elevation', - 'float', - 'font', - 'font-family', - 'font-size', - 'font-style', - 'font-variant', - 'font-weight', - 'height', - 'letter-spacing', - 'line-height', - 'overflow', - 'pause', - 'pause-after', - 'pause-before', - 'pitch', - 'pitch-range', - 'richness', - 'speak', - 'speak-header', - 'speak-numeral', - 'speak-punctuation', - 'speech-rate', - 'stress', - 'text-align', - 'text-decoration', - 'text-indent', - 'unicode-bidi', - 'vertical-align', - 'voice-family', - 'volume', - 'white-space', - 'width', -)) - -allowed_css_keywords = frozenset(( - 'auto', - 'aqua', - 'black', - 'block', - 'blue', - 'bold', - 'both', - 'bottom', - 'brown', - 'center', - 'collapse', - 'dashed', - 'dotted', - 'fuchsia', - 'gray', - 'green', - '!important', - 'italic', - 'left', - 'lime', - 'maroon', - 'medium', - 'none', - 'navy', - 'normal', - 'nowrap', - 'olive', - 'pointer', - 'purple', - 'red', - 'right', - 'solid', - 'silver', - 'teal', - 'top', - 'transparent', - 'underline', - 'white', - 'yellow', -)) - -allowed_svg_properties = frozenset(( - 'fill', - 'fill-opacity', - 'fill-rule', - 'stroke', - 'stroke-width', - 'stroke-linecap', - 'stroke-linejoin', - 'stroke-opacity', -)) - -allowed_protocols = frozenset(( - 'ed2k', - 'ftp', - 'http', - 'https', - 'irc', - 'mailto', - 'news', - 'gopher', - 'nntp', - 'telnet', - 'webcal', - 'xmpp', - 'callto', - 'feed', - 'urn', - 'aim', - 'rsync', - 'tag', - 'ssh', - 'sftp', - 'rtsp', - 'afs', - 'data', -)) - -allowed_content_types = frozenset(( - 'image/png', - 'image/jpeg', - 'image/gif', - 'image/webp', - 'image/bmp', - 'text/plain', -)) - - -data_content_type = re.compile(r''' - ^ - # Match a content type <application>/<type> - (?P<content_type>[-a-zA-Z0-9.]+/[-a-zA-Z0-9.]+) - # Match any character set and encoding - (?:(?:;charset=(?:[-a-zA-Z0-9]+)(?:;(?:base64))?) - |(?:;(?:base64))?(?:;charset=(?:[-a-zA-Z0-9]+))?) - # Assume the rest is data - ,.* - $ - ''', - re.VERBOSE) - - -class Filter(base.Filter): - """Sanitizes token stream of XHTML+MathML+SVG and of inline style attributes""" - def __init__(self, - source, - allowed_elements=allowed_elements, - allowed_attributes=allowed_attributes, - allowed_css_properties=allowed_css_properties, - allowed_css_keywords=allowed_css_keywords, - allowed_svg_properties=allowed_svg_properties, - allowed_protocols=allowed_protocols, - allowed_content_types=allowed_content_types, - attr_val_is_uri=attr_val_is_uri, - svg_attr_val_allows_ref=svg_attr_val_allows_ref, - svg_allow_local_href=svg_allow_local_href): - """Creates a Filter - - :arg allowed_elements: set of elements to allow--everything else will - be escaped - - :arg allowed_attributes: set of attributes to allow in - elements--everything else will be stripped - - :arg allowed_css_properties: set of CSS properties to allow--everything - else will be stripped - - :arg allowed_css_keywords: set of CSS keywords to allow--everything - else will be stripped - - :arg allowed_svg_properties: set of SVG properties to allow--everything - else will be removed - - :arg allowed_protocols: set of allowed protocols for URIs - - :arg allowed_content_types: set of allowed content types for ``data`` URIs. - - :arg attr_val_is_uri: set of attributes that have URI values--values - that have a scheme not listed in ``allowed_protocols`` are removed - - :arg svg_attr_val_allows_ref: set of SVG attributes that can have - references - - :arg svg_allow_local_href: set of SVG elements that can have local - hrefs--these are removed - - """ - super(Filter, self).__init__(source) - self.allowed_elements = allowed_elements - self.allowed_attributes = allowed_attributes - self.allowed_css_properties = allowed_css_properties - self.allowed_css_keywords = allowed_css_keywords - self.allowed_svg_properties = allowed_svg_properties - self.allowed_protocols = allowed_protocols - self.allowed_content_types = allowed_content_types - self.attr_val_is_uri = attr_val_is_uri - self.svg_attr_val_allows_ref = svg_attr_val_allows_ref - self.svg_allow_local_href = svg_allow_local_href - - def __iter__(self): - for token in base.Filter.__iter__(self): - token = self.sanitize_token(token) - if token: - yield token - - # Sanitize the +html+, escaping all elements not in ALLOWED_ELEMENTS, and - # stripping out all attributes not in ALLOWED_ATTRIBUTES. Style attributes - # are parsed, and a restricted set, specified by ALLOWED_CSS_PROPERTIES and - # ALLOWED_CSS_KEYWORDS, are allowed through. attributes in ATTR_VAL_IS_URI - # are scanned, and only URI schemes specified in ALLOWED_PROTOCOLS are - # allowed. - # - # sanitize_html('<script> do_nasty_stuff() </script>') - # => <script> do_nasty_stuff() </script> - # sanitize_html('<a href="javascript: sucker();">Click here for $100</a>') - # => <a>Click here for $100</a> - def sanitize_token(self, token): - - # accommodate filters which use token_type differently - token_type = token["type"] - if token_type in ("StartTag", "EndTag", "EmptyTag"): - name = token["name"] - namespace = token["namespace"] - if ((namespace, name) in self.allowed_elements or - (namespace is None and - (namespaces["html"], name) in self.allowed_elements)): - return self.allowed_token(token) - else: - return self.disallowed_token(token) - elif token_type == "Comment": - pass - else: - return token - - def allowed_token(self, token): - if "data" in token: - attrs = token["data"] - attr_names = set(attrs.keys()) - - # Remove forbidden attributes - for to_remove in (attr_names - self.allowed_attributes): - del token["data"][to_remove] - attr_names.remove(to_remove) - - # Remove attributes with disallowed URL values - for attr in (attr_names & self.attr_val_is_uri): - assert attr in attrs - # I don't have a clue where this regexp comes from or why it matches those - # characters, nor why we call unescape. I just know it's always been here. - # Should you be worried by this comment in a sanitizer? Yes. On the other hand, all - # this will do is remove *more* than it otherwise would. - val_unescaped = re.sub("[`\x00-\x20\x7f-\xa0\\s]+", '', - unescape(attrs[attr])).lower() - # remove replacement characters from unescaped characters - val_unescaped = val_unescaped.replace("\ufffd", "") - try: - uri = urlparse.urlparse(val_unescaped) - except ValueError: - uri = None - del attrs[attr] - if uri and uri.scheme: - if uri.scheme not in self.allowed_protocols: - del attrs[attr] - if uri.scheme == 'data': - m = data_content_type.match(uri.path) - if not m: - del attrs[attr] - elif m.group('content_type') not in self.allowed_content_types: - del attrs[attr] - - for attr in self.svg_attr_val_allows_ref: - if attr in attrs: - attrs[attr] = re.sub(r'url\s*\(\s*[^#\s][^)]+?\)', - ' ', - unescape(attrs[attr])) - if (token["name"] in self.svg_allow_local_href and - (namespaces['xlink'], 'href') in attrs and re.search(r'^\s*[^#\s].*', - attrs[(namespaces['xlink'], 'href')])): - del attrs[(namespaces['xlink'], 'href')] - if (None, 'style') in attrs: - attrs[(None, 'style')] = self.sanitize_css(attrs[(None, 'style')]) - token["data"] = attrs - return token - - def disallowed_token(self, token): - token_type = token["type"] - if token_type == "EndTag": - token["data"] = "</%s>" % token["name"] - elif token["data"]: - assert token_type in ("StartTag", "EmptyTag") - attrs = [] - for (ns, name), v in token["data"].items(): - attrs.append(' %s="%s"' % (name if ns is None else "%s:%s" % (prefixes[ns], name), escape(v))) - token["data"] = "<%s%s>" % (token["name"], ''.join(attrs)) - else: - token["data"] = "<%s>" % token["name"] - if token.get("selfClosing"): - token["data"] = token["data"][:-1] + "/>" - - token["type"] = "Characters" - - del token["name"] - return token - - def sanitize_css(self, style): - # disallow urls - style = re.compile(r'url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ', style) - - # gauntlet - if not re.match(r"""^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$""", style): - return '' - if not re.match(r"^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$", style): - return '' - - clean = [] - for prop, value in re.findall(r"([-\w]+)\s*:\s*([^:;]*)", style): - if not value: - continue - if prop.lower() in self.allowed_css_properties: - clean.append(prop + ': ' + value + ';') - elif prop.split('-')[0].lower() in ['background', 'border', 'margin', - 'padding']: - for keyword in value.split(): - if keyword not in self.allowed_css_keywords and \ - not re.match(r"^(#[0-9a-fA-F]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$", keyword): # noqa - break - else: - clean.append(prop + ': ' + value + ';') - elif prop.lower() in self.allowed_svg_properties: - clean.append(prop + ': ' + value + ';') - - return ' '.join(clean) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/whitespace.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/whitespace.py deleted file mode 100644 index 0d12584..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/whitespace.py +++ /dev/null @@ -1,38 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -import re - -from . import base -from ..constants import rcdataElements, spaceCharacters -spaceCharacters = "".join(spaceCharacters) - -SPACES_REGEX = re.compile("[%s]+" % spaceCharacters) - - -class Filter(base.Filter): - """Collapses whitespace except in pre, textarea, and script elements""" - spacePreserveElements = frozenset(["pre", "textarea"] + list(rcdataElements)) - - def __iter__(self): - preserve = 0 - for token in base.Filter.__iter__(self): - type = token["type"] - if type == "StartTag" \ - and (preserve or token["name"] in self.spacePreserveElements): - preserve += 1 - - elif type == "EndTag" and preserve: - preserve -= 1 - - elif not preserve and type == "SpaceCharacters" and token["data"]: - # Test on token["data"] above to not introduce spaces where there were not - token["data"] = " " - - elif not preserve and type == "Characters": - token["data"] = collapse_spaces(token["data"]) - - yield token - - -def collapse_spaces(text): - return SPACES_REGEX.sub(' ', text) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/html5parser.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/html5parser.py deleted file mode 100644 index ae41a13..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/html5parser.py +++ /dev/null @@ -1,2791 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals -from pip._vendor.six import with_metaclass, viewkeys - -import types -from collections import OrderedDict - -from . import _inputstream -from . import _tokenizer - -from . import treebuilders -from .treebuilders.base import Marker - -from . import _utils -from .constants import ( - spaceCharacters, asciiUpper2Lower, - specialElements, headingElements, cdataElements, rcdataElements, - tokenTypes, tagTokenTypes, - namespaces, - htmlIntegrationPointElements, mathmlTextIntegrationPointElements, - adjustForeignAttributes as adjustForeignAttributesMap, - adjustMathMLAttributes, adjustSVGAttributes, - E, - _ReparseException -) - - -def parse(doc, treebuilder="etree", namespaceHTMLElements=True, **kwargs): - """Parse an HTML document as a string or file-like object into a tree - - :arg doc: the document to parse as a string or file-like object - - :arg treebuilder: the treebuilder to use when parsing - - :arg namespaceHTMLElements: whether or not to namespace HTML elements - - :returns: parsed tree - - Example: - - >>> from html5lib.html5parser import parse - >>> parse('<html><body><p>This is a doc</p></body></html>') - <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0> - - """ - tb = treebuilders.getTreeBuilder(treebuilder) - p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements) - return p.parse(doc, **kwargs) - - -def parseFragment(doc, container="div", treebuilder="etree", namespaceHTMLElements=True, **kwargs): - """Parse an HTML fragment as a string or file-like object into a tree - - :arg doc: the fragment to parse as a string or file-like object - - :arg container: the container context to parse the fragment in - - :arg treebuilder: the treebuilder to use when parsing - - :arg namespaceHTMLElements: whether or not to namespace HTML elements - - :returns: parsed tree - - Example: - - >>> from html5lib.html5libparser import parseFragment - >>> parseFragment('<b>this is a fragment</b>') - <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090> - - """ - tb = treebuilders.getTreeBuilder(treebuilder) - p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements) - return p.parseFragment(doc, container=container, **kwargs) - - -def method_decorator_metaclass(function): - class Decorated(type): - def __new__(meta, classname, bases, classDict): - for attributeName, attribute in classDict.items(): - if isinstance(attribute, types.FunctionType): - attribute = function(attribute) - - classDict[attributeName] = attribute - return type.__new__(meta, classname, bases, classDict) - return Decorated - - -class HTMLParser(object): - """HTML parser - - Generates a tree structure from a stream of (possibly malformed) HTML. - - """ - - def __init__(self, tree=None, strict=False, namespaceHTMLElements=True, debug=False): - """ - :arg tree: a treebuilder class controlling the type of tree that will be - returned. Built in treebuilders can be accessed through - html5lib.treebuilders.getTreeBuilder(treeType) - - :arg strict: raise an exception when a parse error is encountered - - :arg namespaceHTMLElements: whether or not to namespace HTML elements - - :arg debug: whether or not to enable debug mode which logs things - - Example: - - >>> from html5lib.html5parser import HTMLParser - >>> parser = HTMLParser() # generates parser with etree builder - >>> parser = HTMLParser('lxml', strict=True) # generates parser with lxml builder which is strict - - """ - - # Raise an exception on the first error encountered - self.strict = strict - - if tree is None: - tree = treebuilders.getTreeBuilder("etree") - self.tree = tree(namespaceHTMLElements) - self.errors = [] - - self.phases = dict([(name, cls(self, self.tree)) for name, cls in - getPhases(debug).items()]) - - def _parse(self, stream, innerHTML=False, container="div", scripting=False, **kwargs): - - self.innerHTMLMode = innerHTML - self.container = container - self.scripting = scripting - self.tokenizer = _tokenizer.HTMLTokenizer(stream, parser=self, **kwargs) - self.reset() - - try: - self.mainLoop() - except _ReparseException: - self.reset() - self.mainLoop() - - def reset(self): - self.tree.reset() - self.firstStartTag = False - self.errors = [] - self.log = [] # only used with debug mode - # "quirks" / "limited quirks" / "no quirks" - self.compatMode = "no quirks" - - if self.innerHTMLMode: - self.innerHTML = self.container.lower() - - if self.innerHTML in cdataElements: - self.tokenizer.state = self.tokenizer.rcdataState - elif self.innerHTML in rcdataElements: - self.tokenizer.state = self.tokenizer.rawtextState - elif self.innerHTML == 'plaintext': - self.tokenizer.state = self.tokenizer.plaintextState - else: - # state already is data state - # self.tokenizer.state = self.tokenizer.dataState - pass - self.phase = self.phases["beforeHtml"] - self.phase.insertHtmlElement() - self.resetInsertionMode() - else: - self.innerHTML = False # pylint:disable=redefined-variable-type - self.phase = self.phases["initial"] - - self.lastPhase = None - - self.beforeRCDataPhase = None - - self.framesetOK = True - - @property - def documentEncoding(self): - """Name of the character encoding that was used to decode the input stream, or - :obj:`None` if that is not determined yet - - """ - if not hasattr(self, 'tokenizer'): - return None - return self.tokenizer.stream.charEncoding[0].name - - def isHTMLIntegrationPoint(self, element): - if (element.name == "annotation-xml" and - element.namespace == namespaces["mathml"]): - return ("encoding" in element.attributes and - element.attributes["encoding"].translate( - asciiUpper2Lower) in - ("text/html", "application/xhtml+xml")) - else: - return (element.namespace, element.name) in htmlIntegrationPointElements - - def isMathMLTextIntegrationPoint(self, element): - return (element.namespace, element.name) in mathmlTextIntegrationPointElements - - def mainLoop(self): - CharactersToken = tokenTypes["Characters"] - SpaceCharactersToken = tokenTypes["SpaceCharacters"] - StartTagToken = tokenTypes["StartTag"] - EndTagToken = tokenTypes["EndTag"] - CommentToken = tokenTypes["Comment"] - DoctypeToken = tokenTypes["Doctype"] - ParseErrorToken = tokenTypes["ParseError"] - - for token in self.normalizedTokens(): - prev_token = None - new_token = token - while new_token is not None: - prev_token = new_token - currentNode = self.tree.openElements[-1] if self.tree.openElements else None - currentNodeNamespace = currentNode.namespace if currentNode else None - currentNodeName = currentNode.name if currentNode else None - - type = new_token["type"] - - if type == ParseErrorToken: - self.parseError(new_token["data"], new_token.get("datavars", {})) - new_token = None - else: - if (len(self.tree.openElements) == 0 or - currentNodeNamespace == self.tree.defaultNamespace or - (self.isMathMLTextIntegrationPoint(currentNode) and - ((type == StartTagToken and - token["name"] not in frozenset(["mglyph", "malignmark"])) or - type in (CharactersToken, SpaceCharactersToken))) or - (currentNodeNamespace == namespaces["mathml"] and - currentNodeName == "annotation-xml" and - type == StartTagToken and - token["name"] == "svg") or - (self.isHTMLIntegrationPoint(currentNode) and - type in (StartTagToken, CharactersToken, SpaceCharactersToken))): - phase = self.phase - else: - phase = self.phases["inForeignContent"] - - if type == CharactersToken: - new_token = phase.processCharacters(new_token) - elif type == SpaceCharactersToken: - new_token = phase.processSpaceCharacters(new_token) - elif type == StartTagToken: - new_token = phase.processStartTag(new_token) - elif type == EndTagToken: - new_token = phase.processEndTag(new_token) - elif type == CommentToken: - new_token = phase.processComment(new_token) - elif type == DoctypeToken: - new_token = phase.processDoctype(new_token) - - if (type == StartTagToken and prev_token["selfClosing"] and - not prev_token["selfClosingAcknowledged"]): - self.parseError("non-void-element-with-trailing-solidus", - {"name": prev_token["name"]}) - - # When the loop finishes it's EOF - reprocess = True - phases = [] - while reprocess: - phases.append(self.phase) - reprocess = self.phase.processEOF() - if reprocess: - assert self.phase not in phases - - def normalizedTokens(self): - for token in self.tokenizer: - yield self.normalizeToken(token) - - def parse(self, stream, *args, **kwargs): - """Parse a HTML document into a well-formed tree - - :arg stream: a file-like object or string containing the HTML to be parsed - - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element). - - :arg scripting: treat noscript elements as if JavaScript was turned on - - :returns: parsed tree - - Example: - - >>> from html5lib.html5parser import HTMLParser - >>> parser = HTMLParser() - >>> parser.parse('<html><body><p>This is a doc</p></body></html>') - <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0> - - """ - self._parse(stream, False, None, *args, **kwargs) - return self.tree.getDocument() - - def parseFragment(self, stream, *args, **kwargs): - """Parse a HTML fragment into a well-formed tree fragment - - :arg container: name of the element we're setting the innerHTML - property if set to None, default to 'div' - - :arg stream: a file-like object or string containing the HTML to be parsed - - The optional encoding parameter must be a string that indicates - the encoding. If specified, that encoding will be used, - regardless of any BOM or later declaration (such as in a meta - element) - - :arg scripting: treat noscript elements as if JavaScript was turned on - - :returns: parsed tree - - Example: - - >>> from html5lib.html5libparser import HTMLParser - >>> parser = HTMLParser() - >>> parser.parseFragment('<b>this is a fragment</b>') - <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090> - - """ - self._parse(stream, True, *args, **kwargs) - return self.tree.getFragment() - - def parseError(self, errorcode="XXX-undefined-error", datavars=None): - # XXX The idea is to make errorcode mandatory. - if datavars is None: - datavars = {} - self.errors.append((self.tokenizer.stream.position(), errorcode, datavars)) - if self.strict: - raise ParseError(E[errorcode] % datavars) - - def normalizeToken(self, token): - # HTML5 specific normalizations to the token stream - if token["type"] == tokenTypes["StartTag"]: - raw = token["data"] - token["data"] = OrderedDict(raw) - if len(raw) > len(token["data"]): - # we had some duplicated attribute, fix so first wins - token["data"].update(raw[::-1]) - - return token - - def adjustMathMLAttributes(self, token): - adjust_attributes(token, adjustMathMLAttributes) - - def adjustSVGAttributes(self, token): - adjust_attributes(token, adjustSVGAttributes) - - def adjustForeignAttributes(self, token): - adjust_attributes(token, adjustForeignAttributesMap) - - def reparseTokenNormal(self, token): - # pylint:disable=unused-argument - self.parser.phase() - - def resetInsertionMode(self): - # The name of this method is mostly historical. (It's also used in the - # specification.) - last = False - newModes = { - "select": "inSelect", - "td": "inCell", - "th": "inCell", - "tr": "inRow", - "tbody": "inTableBody", - "thead": "inTableBody", - "tfoot": "inTableBody", - "caption": "inCaption", - "colgroup": "inColumnGroup", - "table": "inTable", - "head": "inBody", - "body": "inBody", - "frameset": "inFrameset", - "html": "beforeHead" - } - for node in self.tree.openElements[::-1]: - nodeName = node.name - new_phase = None - if node == self.tree.openElements[0]: - assert self.innerHTML - last = True - nodeName = self.innerHTML - # Check for conditions that should only happen in the innerHTML - # case - if nodeName in ("select", "colgroup", "head", "html"): - assert self.innerHTML - - if not last and node.namespace != self.tree.defaultNamespace: - continue - - if nodeName in newModes: - new_phase = self.phases[newModes[nodeName]] - break - elif last: - new_phase = self.phases["inBody"] - break - - self.phase = new_phase - - def parseRCDataRawtext(self, token, contentType): - # Generic RCDATA/RAWTEXT Parsing algorithm - assert contentType in ("RAWTEXT", "RCDATA") - - self.tree.insertElement(token) - - if contentType == "RAWTEXT": - self.tokenizer.state = self.tokenizer.rawtextState - else: - self.tokenizer.state = self.tokenizer.rcdataState - - self.originalPhase = self.phase - - self.phase = self.phases["text"] - - -@_utils.memoize -def getPhases(debug): - def log(function): - """Logger that records which phase processes each token""" - type_names = dict((value, key) for key, value in - tokenTypes.items()) - - def wrapped(self, *args, **kwargs): - if function.__name__.startswith("process") and len(args) > 0: - token = args[0] - try: - info = {"type": type_names[token['type']]} - except: - raise - if token['type'] in tagTokenTypes: - info["name"] = token['name'] - - self.parser.log.append((self.parser.tokenizer.state.__name__, - self.parser.phase.__class__.__name__, - self.__class__.__name__, - function.__name__, - info)) - return function(self, *args, **kwargs) - else: - return function(self, *args, **kwargs) - return wrapped - - def getMetaclass(use_metaclass, metaclass_func): - if use_metaclass: - return method_decorator_metaclass(metaclass_func) - else: - return type - - # pylint:disable=unused-argument - class Phase(with_metaclass(getMetaclass(debug, log))): - """Base class for helper object that implements each phase of processing - """ - - def __init__(self, parser, tree): - self.parser = parser - self.tree = tree - - def processEOF(self): - raise NotImplementedError - - def processComment(self, token): - # For most phases the following is correct. Where it's not it will be - # overridden. - self.tree.insertComment(token, self.tree.openElements[-1]) - - def processDoctype(self, token): - self.parser.parseError("unexpected-doctype") - - def processCharacters(self, token): - self.tree.insertText(token["data"]) - - def processSpaceCharacters(self, token): - self.tree.insertText(token["data"]) - - def processStartTag(self, token): - return self.startTagHandler[token["name"]](token) - - def startTagHtml(self, token): - if not self.parser.firstStartTag and token["name"] == "html": - self.parser.parseError("non-html-root") - # XXX Need a check here to see if the first start tag token emitted is - # this token... If it's not, invoke self.parser.parseError(). - for attr, value in token["data"].items(): - if attr not in self.tree.openElements[0].attributes: - self.tree.openElements[0].attributes[attr] = value - self.parser.firstStartTag = False - - def processEndTag(self, token): - return self.endTagHandler[token["name"]](token) - - class InitialPhase(Phase): - def processSpaceCharacters(self, token): - pass - - def processComment(self, token): - self.tree.insertComment(token, self.tree.document) - - def processDoctype(self, token): - name = token["name"] - publicId = token["publicId"] - systemId = token["systemId"] - correct = token["correct"] - - if (name != "html" or publicId is not None or - systemId is not None and systemId != "about:legacy-compat"): - self.parser.parseError("unknown-doctype") - - if publicId is None: - publicId = "" - - self.tree.insertDoctype(token) - - if publicId != "": - publicId = publicId.translate(asciiUpper2Lower) - - if (not correct or token["name"] != "html" or - publicId.startswith( - ("+//silmaril//dtd html pro v0r11 19970101//", - "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", - "-//as//dtd html 3.0 aswedit + extensions//", - "-//ietf//dtd html 2.0 level 1//", - "-//ietf//dtd html 2.0 level 2//", - "-//ietf//dtd html 2.0 strict level 1//", - "-//ietf//dtd html 2.0 strict level 2//", - "-//ietf//dtd html 2.0 strict//", - "-//ietf//dtd html 2.0//", - "-//ietf//dtd html 2.1e//", - "-//ietf//dtd html 3.0//", - "-//ietf//dtd html 3.2 final//", - "-//ietf//dtd html 3.2//", - "-//ietf//dtd html 3//", - "-//ietf//dtd html level 0//", - "-//ietf//dtd html level 1//", - "-//ietf//dtd html level 2//", - "-//ietf//dtd html level 3//", - "-//ietf//dtd html strict level 0//", - "-//ietf//dtd html strict level 1//", - "-//ietf//dtd html strict level 2//", - "-//ietf//dtd html strict level 3//", - "-//ietf//dtd html strict//", - "-//ietf//dtd html//", - "-//metrius//dtd metrius presentational//", - "-//microsoft//dtd internet explorer 2.0 html strict//", - "-//microsoft//dtd internet explorer 2.0 html//", - "-//microsoft//dtd internet explorer 2.0 tables//", - "-//microsoft//dtd internet explorer 3.0 html strict//", - "-//microsoft//dtd internet explorer 3.0 html//", - "-//microsoft//dtd internet explorer 3.0 tables//", - "-//netscape comm. corp.//dtd html//", - "-//netscape comm. corp.//dtd strict html//", - "-//o'reilly and associates//dtd html 2.0//", - "-//o'reilly and associates//dtd html extended 1.0//", - "-//o'reilly and associates//dtd html extended relaxed 1.0//", - "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", - "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", - "-//spyglass//dtd html 2.0 extended//", - "-//sq//dtd html 2.0 hotmetal + extensions//", - "-//sun microsystems corp.//dtd hotjava html//", - "-//sun microsystems corp.//dtd hotjava strict html//", - "-//w3c//dtd html 3 1995-03-24//", - "-//w3c//dtd html 3.2 draft//", - "-//w3c//dtd html 3.2 final//", - "-//w3c//dtd html 3.2//", - "-//w3c//dtd html 3.2s draft//", - "-//w3c//dtd html 4.0 frameset//", - "-//w3c//dtd html 4.0 transitional//", - "-//w3c//dtd html experimental 19960712//", - "-//w3c//dtd html experimental 970421//", - "-//w3c//dtd w3 html//", - "-//w3o//dtd w3 html 3.0//", - "-//webtechs//dtd mozilla html 2.0//", - "-//webtechs//dtd mozilla html//")) or - publicId in ("-//w3o//dtd w3 html strict 3.0//en//", - "-/w3c/dtd html 4.0 transitional/en", - "html") or - publicId.startswith( - ("-//w3c//dtd html 4.01 frameset//", - "-//w3c//dtd html 4.01 transitional//")) and - systemId is None or - systemId and systemId.lower() == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"): - self.parser.compatMode = "quirks" - elif (publicId.startswith( - ("-//w3c//dtd xhtml 1.0 frameset//", - "-//w3c//dtd xhtml 1.0 transitional//")) or - publicId.startswith( - ("-//w3c//dtd html 4.01 frameset//", - "-//w3c//dtd html 4.01 transitional//")) and - systemId is not None): - self.parser.compatMode = "limited quirks" - - self.parser.phase = self.parser.phases["beforeHtml"] - - def anythingElse(self): - self.parser.compatMode = "quirks" - self.parser.phase = self.parser.phases["beforeHtml"] - - def processCharacters(self, token): - self.parser.parseError("expected-doctype-but-got-chars") - self.anythingElse() - return token - - def processStartTag(self, token): - self.parser.parseError("expected-doctype-but-got-start-tag", - {"name": token["name"]}) - self.anythingElse() - return token - - def processEndTag(self, token): - self.parser.parseError("expected-doctype-but-got-end-tag", - {"name": token["name"]}) - self.anythingElse() - return token - - def processEOF(self): - self.parser.parseError("expected-doctype-but-got-eof") - self.anythingElse() - return True - - class BeforeHtmlPhase(Phase): - # helper methods - def insertHtmlElement(self): - self.tree.insertRoot(impliedTagToken("html", "StartTag")) - self.parser.phase = self.parser.phases["beforeHead"] - - # other - def processEOF(self): - self.insertHtmlElement() - return True - - def processComment(self, token): - self.tree.insertComment(token, self.tree.document) - - def processSpaceCharacters(self, token): - pass - - def processCharacters(self, token): - self.insertHtmlElement() - return token - - def processStartTag(self, token): - if token["name"] == "html": - self.parser.firstStartTag = True - self.insertHtmlElement() - return token - - def processEndTag(self, token): - if token["name"] not in ("head", "body", "html", "br"): - self.parser.parseError("unexpected-end-tag-before-html", - {"name": token["name"]}) - else: - self.insertHtmlElement() - return token - - class BeforeHeadPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("head", self.startTagHead) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - (("head", "body", "html", "br"), self.endTagImplyHead) - ]) - self.endTagHandler.default = self.endTagOther - - def processEOF(self): - self.startTagHead(impliedTagToken("head", "StartTag")) - return True - - def processSpaceCharacters(self, token): - pass - - def processCharacters(self, token): - self.startTagHead(impliedTagToken("head", "StartTag")) - return token - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagHead(self, token): - self.tree.insertElement(token) - self.tree.headPointer = self.tree.openElements[-1] - self.parser.phase = self.parser.phases["inHead"] - - def startTagOther(self, token): - self.startTagHead(impliedTagToken("head", "StartTag")) - return token - - def endTagImplyHead(self, token): - self.startTagHead(impliedTagToken("head", "StartTag")) - return token - - def endTagOther(self, token): - self.parser.parseError("end-tag-after-implied-root", - {"name": token["name"]}) - - class InHeadPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("title", self.startTagTitle), - (("noframes", "style"), self.startTagNoFramesStyle), - ("noscript", self.startTagNoscript), - ("script", self.startTagScript), - (("base", "basefont", "bgsound", "command", "link"), - self.startTagBaseLinkCommand), - ("meta", self.startTagMeta), - ("head", self.startTagHead) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("head", self.endTagHead), - (("br", "html", "body"), self.endTagHtmlBodyBr) - ]) - self.endTagHandler.default = self.endTagOther - - # the real thing - def processEOF(self): - self.anythingElse() - return True - - def processCharacters(self, token): - self.anythingElse() - return token - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagHead(self, token): - self.parser.parseError("two-heads-are-not-better-than-one") - - def startTagBaseLinkCommand(self, token): - self.tree.insertElement(token) - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - - def startTagMeta(self, token): - self.tree.insertElement(token) - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - - attributes = token["data"] - if self.parser.tokenizer.stream.charEncoding[1] == "tentative": - if "charset" in attributes: - self.parser.tokenizer.stream.changeEncoding(attributes["charset"]) - elif ("content" in attributes and - "http-equiv" in attributes and - attributes["http-equiv"].lower() == "content-type"): - # Encoding it as UTF-8 here is a hack, as really we should pass - # the abstract Unicode string, and just use the - # ContentAttrParser on that, but using UTF-8 allows all chars - # to be encoded and as a ASCII-superset works. - data = _inputstream.EncodingBytes(attributes["content"].encode("utf-8")) - parser = _inputstream.ContentAttrParser(data) - codec = parser.parse() - self.parser.tokenizer.stream.changeEncoding(codec) - - def startTagTitle(self, token): - self.parser.parseRCDataRawtext(token, "RCDATA") - - def startTagNoFramesStyle(self, token): - # Need to decide whether to implement the scripting-disabled case - self.parser.parseRCDataRawtext(token, "RAWTEXT") - - def startTagNoscript(self, token): - if self.parser.scripting: - self.parser.parseRCDataRawtext(token, "RAWTEXT") - else: - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inHeadNoscript"] - - def startTagScript(self, token): - self.tree.insertElement(token) - self.parser.tokenizer.state = self.parser.tokenizer.scriptDataState - self.parser.originalPhase = self.parser.phase - self.parser.phase = self.parser.phases["text"] - - def startTagOther(self, token): - self.anythingElse() - return token - - def endTagHead(self, token): - node = self.parser.tree.openElements.pop() - assert node.name == "head", "Expected head got %s" % node.name - self.parser.phase = self.parser.phases["afterHead"] - - def endTagHtmlBodyBr(self, token): - self.anythingElse() - return token - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def anythingElse(self): - self.endTagHead(impliedTagToken("head")) - - class InHeadNoscriptPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - (("basefont", "bgsound", "link", "meta", "noframes", "style"), self.startTagBaseLinkCommand), - (("head", "noscript"), self.startTagHeadNoscript), - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("noscript", self.endTagNoscript), - ("br", self.endTagBr), - ]) - self.endTagHandler.default = self.endTagOther - - def processEOF(self): - self.parser.parseError("eof-in-head-noscript") - self.anythingElse() - return True - - def processComment(self, token): - return self.parser.phases["inHead"].processComment(token) - - def processCharacters(self, token): - self.parser.parseError("char-in-head-noscript") - self.anythingElse() - return token - - def processSpaceCharacters(self, token): - return self.parser.phases["inHead"].processSpaceCharacters(token) - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagBaseLinkCommand(self, token): - return self.parser.phases["inHead"].processStartTag(token) - - def startTagHeadNoscript(self, token): - self.parser.parseError("unexpected-start-tag", {"name": token["name"]}) - - def startTagOther(self, token): - self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]}) - self.anythingElse() - return token - - def endTagNoscript(self, token): - node = self.parser.tree.openElements.pop() - assert node.name == "noscript", "Expected noscript got %s" % node.name - self.parser.phase = self.parser.phases["inHead"] - - def endTagBr(self, token): - self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]}) - self.anythingElse() - return token - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def anythingElse(self): - # Caller must raise parse error first! - self.endTagNoscript(impliedTagToken("noscript")) - - class AfterHeadPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("body", self.startTagBody), - ("frameset", self.startTagFrameset), - (("base", "basefont", "bgsound", "link", "meta", "noframes", "script", - "style", "title"), - self.startTagFromHead), - ("head", self.startTagHead) - ]) - self.startTagHandler.default = self.startTagOther - self.endTagHandler = _utils.MethodDispatcher([(("body", "html", "br"), - self.endTagHtmlBodyBr)]) - self.endTagHandler.default = self.endTagOther - - def processEOF(self): - self.anythingElse() - return True - - def processCharacters(self, token): - self.anythingElse() - return token - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagBody(self, token): - self.parser.framesetOK = False - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inBody"] - - def startTagFrameset(self, token): - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inFrameset"] - - def startTagFromHead(self, token): - self.parser.parseError("unexpected-start-tag-out-of-my-head", - {"name": token["name"]}) - self.tree.openElements.append(self.tree.headPointer) - self.parser.phases["inHead"].processStartTag(token) - for node in self.tree.openElements[::-1]: - if node.name == "head": - self.tree.openElements.remove(node) - break - - def startTagHead(self, token): - self.parser.parseError("unexpected-start-tag", {"name": token["name"]}) - - def startTagOther(self, token): - self.anythingElse() - return token - - def endTagHtmlBodyBr(self, token): - self.anythingElse() - return token - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def anythingElse(self): - self.tree.insertElement(impliedTagToken("body", "StartTag")) - self.parser.phase = self.parser.phases["inBody"] - self.parser.framesetOK = True - - class InBodyPhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#parsing-main-inbody - # the really-really-really-very crazy mode - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - # Set this to the default handler - self.processSpaceCharacters = self.processSpaceCharactersNonPre - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - (("base", "basefont", "bgsound", "command", "link", "meta", - "script", "style", "title"), - self.startTagProcessInHead), - ("body", self.startTagBody), - ("frameset", self.startTagFrameset), - (("address", "article", "aside", "blockquote", "center", "details", - "dir", "div", "dl", "fieldset", "figcaption", "figure", - "footer", "header", "hgroup", "main", "menu", "nav", "ol", "p", - "section", "summary", "ul"), - self.startTagCloseP), - (headingElements, self.startTagHeading), - (("pre", "listing"), self.startTagPreListing), - ("form", self.startTagForm), - (("li", "dd", "dt"), self.startTagListItem), - ("plaintext", self.startTagPlaintext), - ("a", self.startTagA), - (("b", "big", "code", "em", "font", "i", "s", "small", "strike", - "strong", "tt", "u"), self.startTagFormatting), - ("nobr", self.startTagNobr), - ("button", self.startTagButton), - (("applet", "marquee", "object"), self.startTagAppletMarqueeObject), - ("xmp", self.startTagXmp), - ("table", self.startTagTable), - (("area", "br", "embed", "img", "keygen", "wbr"), - self.startTagVoidFormatting), - (("param", "source", "track"), self.startTagParamSource), - ("input", self.startTagInput), - ("hr", self.startTagHr), - ("image", self.startTagImage), - ("isindex", self.startTagIsIndex), - ("textarea", self.startTagTextarea), - ("iframe", self.startTagIFrame), - ("noscript", self.startTagNoscript), - (("noembed", "noframes"), self.startTagRawtext), - ("select", self.startTagSelect), - (("rp", "rt"), self.startTagRpRt), - (("option", "optgroup"), self.startTagOpt), - (("math"), self.startTagMath), - (("svg"), self.startTagSvg), - (("caption", "col", "colgroup", "frame", "head", - "tbody", "td", "tfoot", "th", "thead", - "tr"), self.startTagMisplaced) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("body", self.endTagBody), - ("html", self.endTagHtml), - (("address", "article", "aside", "blockquote", "button", "center", - "details", "dialog", "dir", "div", "dl", "fieldset", "figcaption", "figure", - "footer", "header", "hgroup", "listing", "main", "menu", "nav", "ol", "pre", - "section", "summary", "ul"), self.endTagBlock), - ("form", self.endTagForm), - ("p", self.endTagP), - (("dd", "dt", "li"), self.endTagListItem), - (headingElements, self.endTagHeading), - (("a", "b", "big", "code", "em", "font", "i", "nobr", "s", "small", - "strike", "strong", "tt", "u"), self.endTagFormatting), - (("applet", "marquee", "object"), self.endTagAppletMarqueeObject), - ("br", self.endTagBr), - ]) - self.endTagHandler.default = self.endTagOther - - def isMatchingFormattingElement(self, node1, node2): - return (node1.name == node2.name and - node1.namespace == node2.namespace and - node1.attributes == node2.attributes) - - # helper - def addFormattingElement(self, token): - self.tree.insertElement(token) - element = self.tree.openElements[-1] - - matchingElements = [] - for node in self.tree.activeFormattingElements[::-1]: - if node is Marker: - break - elif self.isMatchingFormattingElement(node, element): - matchingElements.append(node) - - assert len(matchingElements) <= 3 - if len(matchingElements) == 3: - self.tree.activeFormattingElements.remove(matchingElements[-1]) - self.tree.activeFormattingElements.append(element) - - # the real deal - def processEOF(self): - allowed_elements = frozenset(("dd", "dt", "li", "p", "tbody", "td", - "tfoot", "th", "thead", "tr", "body", - "html")) - for node in self.tree.openElements[::-1]: - if node.name not in allowed_elements: - self.parser.parseError("expected-closing-tag-but-got-eof") - break - # Stop parsing - - def processSpaceCharactersDropNewline(self, token): - # Sometimes (start of <pre>, <listing>, and <textarea> blocks) we - # want to drop leading newlines - data = token["data"] - self.processSpaceCharacters = self.processSpaceCharactersNonPre - if (data.startswith("\n") and - self.tree.openElements[-1].name in ("pre", "listing", "textarea") and - not self.tree.openElements[-1].hasContent()): - data = data[1:] - if data: - self.tree.reconstructActiveFormattingElements() - self.tree.insertText(data) - - def processCharacters(self, token): - if token["data"] == "\u0000": - # The tokenizer should always emit null on its own - return - self.tree.reconstructActiveFormattingElements() - self.tree.insertText(token["data"]) - # This must be bad for performance - if (self.parser.framesetOK and - any([char not in spaceCharacters - for char in token["data"]])): - self.parser.framesetOK = False - - def processSpaceCharactersNonPre(self, token): - self.tree.reconstructActiveFormattingElements() - self.tree.insertText(token["data"]) - - def startTagProcessInHead(self, token): - return self.parser.phases["inHead"].processStartTag(token) - - def startTagBody(self, token): - self.parser.parseError("unexpected-start-tag", {"name": "body"}) - if (len(self.tree.openElements) == 1 or - self.tree.openElements[1].name != "body"): - assert self.parser.innerHTML - else: - self.parser.framesetOK = False - for attr, value in token["data"].items(): - if attr not in self.tree.openElements[1].attributes: - self.tree.openElements[1].attributes[attr] = value - - def startTagFrameset(self, token): - self.parser.parseError("unexpected-start-tag", {"name": "frameset"}) - if (len(self.tree.openElements) == 1 or self.tree.openElements[1].name != "body"): - assert self.parser.innerHTML - elif not self.parser.framesetOK: - pass - else: - if self.tree.openElements[1].parent: - self.tree.openElements[1].parent.removeChild(self.tree.openElements[1]) - while self.tree.openElements[-1].name != "html": - self.tree.openElements.pop() - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inFrameset"] - - def startTagCloseP(self, token): - if self.tree.elementInScope("p", variant="button"): - self.endTagP(impliedTagToken("p")) - self.tree.insertElement(token) - - def startTagPreListing(self, token): - if self.tree.elementInScope("p", variant="button"): - self.endTagP(impliedTagToken("p")) - self.tree.insertElement(token) - self.parser.framesetOK = False - self.processSpaceCharacters = self.processSpaceCharactersDropNewline - - def startTagForm(self, token): - if self.tree.formPointer: - self.parser.parseError("unexpected-start-tag", {"name": "form"}) - else: - if self.tree.elementInScope("p", variant="button"): - self.endTagP(impliedTagToken("p")) - self.tree.insertElement(token) - self.tree.formPointer = self.tree.openElements[-1] - - def startTagListItem(self, token): - self.parser.framesetOK = False - - stopNamesMap = {"li": ["li"], - "dt": ["dt", "dd"], - "dd": ["dt", "dd"]} - stopNames = stopNamesMap[token["name"]] - for node in reversed(self.tree.openElements): - if node.name in stopNames: - self.parser.phase.processEndTag( - impliedTagToken(node.name, "EndTag")) - break - if (node.nameTuple in specialElements and - node.name not in ("address", "div", "p")): - break - - if self.tree.elementInScope("p", variant="button"): - self.parser.phase.processEndTag( - impliedTagToken("p", "EndTag")) - - self.tree.insertElement(token) - - def startTagPlaintext(self, token): - if self.tree.elementInScope("p", variant="button"): - self.endTagP(impliedTagToken("p")) - self.tree.insertElement(token) - self.parser.tokenizer.state = self.parser.tokenizer.plaintextState - - def startTagHeading(self, token): - if self.tree.elementInScope("p", variant="button"): - self.endTagP(impliedTagToken("p")) - if self.tree.openElements[-1].name in headingElements: - self.parser.parseError("unexpected-start-tag", {"name": token["name"]}) - self.tree.openElements.pop() - self.tree.insertElement(token) - - def startTagA(self, token): - afeAElement = self.tree.elementInActiveFormattingElements("a") - if afeAElement: - self.parser.parseError("unexpected-start-tag-implies-end-tag", - {"startName": "a", "endName": "a"}) - self.endTagFormatting(impliedTagToken("a")) - if afeAElement in self.tree.openElements: - self.tree.openElements.remove(afeAElement) - if afeAElement in self.tree.activeFormattingElements: - self.tree.activeFormattingElements.remove(afeAElement) - self.tree.reconstructActiveFormattingElements() - self.addFormattingElement(token) - - def startTagFormatting(self, token): - self.tree.reconstructActiveFormattingElements() - self.addFormattingElement(token) - - def startTagNobr(self, token): - self.tree.reconstructActiveFormattingElements() - if self.tree.elementInScope("nobr"): - self.parser.parseError("unexpected-start-tag-implies-end-tag", - {"startName": "nobr", "endName": "nobr"}) - self.processEndTag(impliedTagToken("nobr")) - # XXX Need tests that trigger the following - self.tree.reconstructActiveFormattingElements() - self.addFormattingElement(token) - - def startTagButton(self, token): - if self.tree.elementInScope("button"): - self.parser.parseError("unexpected-start-tag-implies-end-tag", - {"startName": "button", "endName": "button"}) - self.processEndTag(impliedTagToken("button")) - return token - else: - self.tree.reconstructActiveFormattingElements() - self.tree.insertElement(token) - self.parser.framesetOK = False - - def startTagAppletMarqueeObject(self, token): - self.tree.reconstructActiveFormattingElements() - self.tree.insertElement(token) - self.tree.activeFormattingElements.append(Marker) - self.parser.framesetOK = False - - def startTagXmp(self, token): - if self.tree.elementInScope("p", variant="button"): - self.endTagP(impliedTagToken("p")) - self.tree.reconstructActiveFormattingElements() - self.parser.framesetOK = False - self.parser.parseRCDataRawtext(token, "RAWTEXT") - - def startTagTable(self, token): - if self.parser.compatMode != "quirks": - if self.tree.elementInScope("p", variant="button"): - self.processEndTag(impliedTagToken("p")) - self.tree.insertElement(token) - self.parser.framesetOK = False - self.parser.phase = self.parser.phases["inTable"] - - def startTagVoidFormatting(self, token): - self.tree.reconstructActiveFormattingElements() - self.tree.insertElement(token) - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - self.parser.framesetOK = False - - def startTagInput(self, token): - framesetOK = self.parser.framesetOK - self.startTagVoidFormatting(token) - if ("type" in token["data"] and - token["data"]["type"].translate(asciiUpper2Lower) == "hidden"): - # input type=hidden doesn't change framesetOK - self.parser.framesetOK = framesetOK - - def startTagParamSource(self, token): - self.tree.insertElement(token) - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - - def startTagHr(self, token): - if self.tree.elementInScope("p", variant="button"): - self.endTagP(impliedTagToken("p")) - self.tree.insertElement(token) - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - self.parser.framesetOK = False - - def startTagImage(self, token): - # No really... - self.parser.parseError("unexpected-start-tag-treated-as", - {"originalName": "image", "newName": "img"}) - self.processStartTag(impliedTagToken("img", "StartTag", - attributes=token["data"], - selfClosing=token["selfClosing"])) - - def startTagIsIndex(self, token): - self.parser.parseError("deprecated-tag", {"name": "isindex"}) - if self.tree.formPointer: - return - form_attrs = {} - if "action" in token["data"]: - form_attrs["action"] = token["data"]["action"] - self.processStartTag(impliedTagToken("form", "StartTag", - attributes=form_attrs)) - self.processStartTag(impliedTagToken("hr", "StartTag")) - self.processStartTag(impliedTagToken("label", "StartTag")) - # XXX Localization ... - if "prompt" in token["data"]: - prompt = token["data"]["prompt"] - else: - prompt = "This is a searchable index. Enter search keywords: " - self.processCharacters( - {"type": tokenTypes["Characters"], "data": prompt}) - attributes = token["data"].copy() - if "action" in attributes: - del attributes["action"] - if "prompt" in attributes: - del attributes["prompt"] - attributes["name"] = "isindex" - self.processStartTag(impliedTagToken("input", "StartTag", - attributes=attributes, - selfClosing=token["selfClosing"])) - self.processEndTag(impliedTagToken("label")) - self.processStartTag(impliedTagToken("hr", "StartTag")) - self.processEndTag(impliedTagToken("form")) - - def startTagTextarea(self, token): - self.tree.insertElement(token) - self.parser.tokenizer.state = self.parser.tokenizer.rcdataState - self.processSpaceCharacters = self.processSpaceCharactersDropNewline - self.parser.framesetOK = False - - def startTagIFrame(self, token): - self.parser.framesetOK = False - self.startTagRawtext(token) - - def startTagNoscript(self, token): - if self.parser.scripting: - self.startTagRawtext(token) - else: - self.startTagOther(token) - - def startTagRawtext(self, token): - """iframe, noembed noframes, noscript(if scripting enabled)""" - self.parser.parseRCDataRawtext(token, "RAWTEXT") - - def startTagOpt(self, token): - if self.tree.openElements[-1].name == "option": - self.parser.phase.processEndTag(impliedTagToken("option")) - self.tree.reconstructActiveFormattingElements() - self.parser.tree.insertElement(token) - - def startTagSelect(self, token): - self.tree.reconstructActiveFormattingElements() - self.tree.insertElement(token) - self.parser.framesetOK = False - if self.parser.phase in (self.parser.phases["inTable"], - self.parser.phases["inCaption"], - self.parser.phases["inColumnGroup"], - self.parser.phases["inTableBody"], - self.parser.phases["inRow"], - self.parser.phases["inCell"]): - self.parser.phase = self.parser.phases["inSelectInTable"] - else: - self.parser.phase = self.parser.phases["inSelect"] - - def startTagRpRt(self, token): - if self.tree.elementInScope("ruby"): - self.tree.generateImpliedEndTags() - if self.tree.openElements[-1].name != "ruby": - self.parser.parseError() - self.tree.insertElement(token) - - def startTagMath(self, token): - self.tree.reconstructActiveFormattingElements() - self.parser.adjustMathMLAttributes(token) - self.parser.adjustForeignAttributes(token) - token["namespace"] = namespaces["mathml"] - self.tree.insertElement(token) - # Need to get the parse error right for the case where the token - # has a namespace not equal to the xmlns attribute - if token["selfClosing"]: - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - - def startTagSvg(self, token): - self.tree.reconstructActiveFormattingElements() - self.parser.adjustSVGAttributes(token) - self.parser.adjustForeignAttributes(token) - token["namespace"] = namespaces["svg"] - self.tree.insertElement(token) - # Need to get the parse error right for the case where the token - # has a namespace not equal to the xmlns attribute - if token["selfClosing"]: - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - - def startTagMisplaced(self, token): - """ Elements that should be children of other elements that have a - different insertion mode; here they are ignored - "caption", "col", "colgroup", "frame", "frameset", "head", - "option", "optgroup", "tbody", "td", "tfoot", "th", "thead", - "tr", "noscript" - """ - self.parser.parseError("unexpected-start-tag-ignored", {"name": token["name"]}) - - def startTagOther(self, token): - self.tree.reconstructActiveFormattingElements() - self.tree.insertElement(token) - - def endTagP(self, token): - if not self.tree.elementInScope("p", variant="button"): - self.startTagCloseP(impliedTagToken("p", "StartTag")) - self.parser.parseError("unexpected-end-tag", {"name": "p"}) - self.endTagP(impliedTagToken("p", "EndTag")) - else: - self.tree.generateImpliedEndTags("p") - if self.tree.openElements[-1].name != "p": - self.parser.parseError("unexpected-end-tag", {"name": "p"}) - node = self.tree.openElements.pop() - while node.name != "p": - node = self.tree.openElements.pop() - - def endTagBody(self, token): - if not self.tree.elementInScope("body"): - self.parser.parseError() - return - elif self.tree.openElements[-1].name != "body": - for node in self.tree.openElements[2:]: - if node.name not in frozenset(("dd", "dt", "li", "optgroup", - "option", "p", "rp", "rt", - "tbody", "td", "tfoot", - "th", "thead", "tr", "body", - "html")): - # Not sure this is the correct name for the parse error - self.parser.parseError( - "expected-one-end-tag-but-got-another", - {"gotName": "body", "expectedName": node.name}) - break - self.parser.phase = self.parser.phases["afterBody"] - - def endTagHtml(self, token): - # We repeat the test for the body end tag token being ignored here - if self.tree.elementInScope("body"): - self.endTagBody(impliedTagToken("body")) - return token - - def endTagBlock(self, token): - # Put us back in the right whitespace handling mode - if token["name"] == "pre": - self.processSpaceCharacters = self.processSpaceCharactersNonPre - inScope = self.tree.elementInScope(token["name"]) - if inScope: - self.tree.generateImpliedEndTags() - if self.tree.openElements[-1].name != token["name"]: - self.parser.parseError("end-tag-too-early", {"name": token["name"]}) - if inScope: - node = self.tree.openElements.pop() - while node.name != token["name"]: - node = self.tree.openElements.pop() - - def endTagForm(self, token): - node = self.tree.formPointer - self.tree.formPointer = None - if node is None or not self.tree.elementInScope(node): - self.parser.parseError("unexpected-end-tag", - {"name": "form"}) - else: - self.tree.generateImpliedEndTags() - if self.tree.openElements[-1] != node: - self.parser.parseError("end-tag-too-early-ignored", - {"name": "form"}) - self.tree.openElements.remove(node) - - def endTagListItem(self, token): - if token["name"] == "li": - variant = "list" - else: - variant = None - if not self.tree.elementInScope(token["name"], variant=variant): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - else: - self.tree.generateImpliedEndTags(exclude=token["name"]) - if self.tree.openElements[-1].name != token["name"]: - self.parser.parseError( - "end-tag-too-early", - {"name": token["name"]}) - node = self.tree.openElements.pop() - while node.name != token["name"]: - node = self.tree.openElements.pop() - - def endTagHeading(self, token): - for item in headingElements: - if self.tree.elementInScope(item): - self.tree.generateImpliedEndTags() - break - if self.tree.openElements[-1].name != token["name"]: - self.parser.parseError("end-tag-too-early", {"name": token["name"]}) - - for item in headingElements: - if self.tree.elementInScope(item): - item = self.tree.openElements.pop() - while item.name not in headingElements: - item = self.tree.openElements.pop() - break - - def endTagFormatting(self, token): - """The much-feared adoption agency algorithm""" - # http://svn.whatwg.org/webapps/complete.html#adoptionAgency revision 7867 - # XXX Better parseError messages appreciated. - - # Step 1 - outerLoopCounter = 0 - - # Step 2 - while outerLoopCounter < 8: - - # Step 3 - outerLoopCounter += 1 - - # Step 4: - - # Let the formatting element be the last element in - # the list of active formatting elements that: - # - is between the end of the list and the last scope - # marker in the list, if any, or the start of the list - # otherwise, and - # - has the same tag name as the token. - formattingElement = self.tree.elementInActiveFormattingElements( - token["name"]) - if (not formattingElement or - (formattingElement in self.tree.openElements and - not self.tree.elementInScope(formattingElement.name))): - # If there is no such node, then abort these steps - # and instead act as described in the "any other - # end tag" entry below. - self.endTagOther(token) - return - - # Otherwise, if there is such a node, but that node is - # not in the stack of open elements, then this is a - # parse error; remove the element from the list, and - # abort these steps. - elif formattingElement not in self.tree.openElements: - self.parser.parseError("adoption-agency-1.2", {"name": token["name"]}) - self.tree.activeFormattingElements.remove(formattingElement) - return - - # Otherwise, if there is such a node, and that node is - # also in the stack of open elements, but the element - # is not in scope, then this is a parse error; ignore - # the token, and abort these steps. - elif not self.tree.elementInScope(formattingElement.name): - self.parser.parseError("adoption-agency-4.4", {"name": token["name"]}) - return - - # Otherwise, there is a formatting element and that - # element is in the stack and is in scope. If the - # element is not the current node, this is a parse - # error. In any case, proceed with the algorithm as - # written in the following steps. - else: - if formattingElement != self.tree.openElements[-1]: - self.parser.parseError("adoption-agency-1.3", {"name": token["name"]}) - - # Step 5: - - # Let the furthest block be the topmost node in the - # stack of open elements that is lower in the stack - # than the formatting element, and is an element in - # the special category. There might not be one. - afeIndex = self.tree.openElements.index(formattingElement) - furthestBlock = None - for element in self.tree.openElements[afeIndex:]: - if element.nameTuple in specialElements: - furthestBlock = element - break - - # Step 6: - - # If there is no furthest block, then the UA must - # first pop all the nodes from the bottom of the stack - # of open elements, from the current node up to and - # including the formatting element, then remove the - # formatting element from the list of active - # formatting elements, and finally abort these steps. - if furthestBlock is None: - element = self.tree.openElements.pop() - while element != formattingElement: - element = self.tree.openElements.pop() - self.tree.activeFormattingElements.remove(element) - return - - # Step 7 - commonAncestor = self.tree.openElements[afeIndex - 1] - - # Step 8: - # The bookmark is supposed to help us identify where to reinsert - # nodes in step 15. We have to ensure that we reinsert nodes after - # the node before the active formatting element. Note the bookmark - # can move in step 9.7 - bookmark = self.tree.activeFormattingElements.index(formattingElement) - - # Step 9 - lastNode = node = furthestBlock - innerLoopCounter = 0 - - index = self.tree.openElements.index(node) - while innerLoopCounter < 3: - innerLoopCounter += 1 - # Node is element before node in open elements - index -= 1 - node = self.tree.openElements[index] - if node not in self.tree.activeFormattingElements: - self.tree.openElements.remove(node) - continue - # Step 9.6 - if node == formattingElement: - break - # Step 9.7 - if lastNode == furthestBlock: - bookmark = self.tree.activeFormattingElements.index(node) + 1 - # Step 9.8 - clone = node.cloneNode() - # Replace node with clone - self.tree.activeFormattingElements[ - self.tree.activeFormattingElements.index(node)] = clone - self.tree.openElements[ - self.tree.openElements.index(node)] = clone - node = clone - # Step 9.9 - # Remove lastNode from its parents, if any - if lastNode.parent: - lastNode.parent.removeChild(lastNode) - node.appendChild(lastNode) - # Step 9.10 - lastNode = node - - # Step 10 - # Foster parent lastNode if commonAncestor is a - # table, tbody, tfoot, thead, or tr we need to foster - # parent the lastNode - if lastNode.parent: - lastNode.parent.removeChild(lastNode) - - if commonAncestor.name in frozenset(("table", "tbody", "tfoot", "thead", "tr")): - parent, insertBefore = self.tree.getTableMisnestedNodePosition() - parent.insertBefore(lastNode, insertBefore) - else: - commonAncestor.appendChild(lastNode) - - # Step 11 - clone = formattingElement.cloneNode() - - # Step 12 - furthestBlock.reparentChildren(clone) - - # Step 13 - furthestBlock.appendChild(clone) - - # Step 14 - self.tree.activeFormattingElements.remove(formattingElement) - self.tree.activeFormattingElements.insert(bookmark, clone) - - # Step 15 - self.tree.openElements.remove(formattingElement) - self.tree.openElements.insert( - self.tree.openElements.index(furthestBlock) + 1, clone) - - def endTagAppletMarqueeObject(self, token): - if self.tree.elementInScope(token["name"]): - self.tree.generateImpliedEndTags() - if self.tree.openElements[-1].name != token["name"]: - self.parser.parseError("end-tag-too-early", {"name": token["name"]}) - - if self.tree.elementInScope(token["name"]): - element = self.tree.openElements.pop() - while element.name != token["name"]: - element = self.tree.openElements.pop() - self.tree.clearActiveFormattingElements() - - def endTagBr(self, token): - self.parser.parseError("unexpected-end-tag-treated-as", - {"originalName": "br", "newName": "br element"}) - self.tree.reconstructActiveFormattingElements() - self.tree.insertElement(impliedTagToken("br", "StartTag")) - self.tree.openElements.pop() - - def endTagOther(self, token): - for node in self.tree.openElements[::-1]: - if node.name == token["name"]: - self.tree.generateImpliedEndTags(exclude=token["name"]) - if self.tree.openElements[-1].name != token["name"]: - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - while self.tree.openElements.pop() != node: - pass - break - else: - if node.nameTuple in specialElements: - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - break - - class TextPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - self.startTagHandler = _utils.MethodDispatcher([]) - self.startTagHandler.default = self.startTagOther - self.endTagHandler = _utils.MethodDispatcher([ - ("script", self.endTagScript)]) - self.endTagHandler.default = self.endTagOther - - def processCharacters(self, token): - self.tree.insertText(token["data"]) - - def processEOF(self): - self.parser.parseError("expected-named-closing-tag-but-got-eof", - {"name": self.tree.openElements[-1].name}) - self.tree.openElements.pop() - self.parser.phase = self.parser.originalPhase - return True - - def startTagOther(self, token): - assert False, "Tried to process start tag %s in RCDATA/RAWTEXT mode" % token['name'] - - def endTagScript(self, token): - node = self.tree.openElements.pop() - assert node.name == "script" - self.parser.phase = self.parser.originalPhase - # The rest of this method is all stuff that only happens if - # document.write works - - def endTagOther(self, token): - self.tree.openElements.pop() - self.parser.phase = self.parser.originalPhase - - class InTablePhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#in-table - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("caption", self.startTagCaption), - ("colgroup", self.startTagColgroup), - ("col", self.startTagCol), - (("tbody", "tfoot", "thead"), self.startTagRowGroup), - (("td", "th", "tr"), self.startTagImplyTbody), - ("table", self.startTagTable), - (("style", "script"), self.startTagStyleScript), - ("input", self.startTagInput), - ("form", self.startTagForm) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("table", self.endTagTable), - (("body", "caption", "col", "colgroup", "html", "tbody", "td", - "tfoot", "th", "thead", "tr"), self.endTagIgnore) - ]) - self.endTagHandler.default = self.endTagOther - - # helper methods - def clearStackToTableContext(self): - # "clear the stack back to a table context" - while self.tree.openElements[-1].name not in ("table", "html"): - # self.parser.parseError("unexpected-implied-end-tag-in-table", - # {"name": self.tree.openElements[-1].name}) - self.tree.openElements.pop() - # When the current node is <html> it's an innerHTML case - - # processing methods - def processEOF(self): - if self.tree.openElements[-1].name != "html": - self.parser.parseError("eof-in-table") - else: - assert self.parser.innerHTML - # Stop parsing - - def processSpaceCharacters(self, token): - originalPhase = self.parser.phase - self.parser.phase = self.parser.phases["inTableText"] - self.parser.phase.originalPhase = originalPhase - self.parser.phase.processSpaceCharacters(token) - - def processCharacters(self, token): - originalPhase = self.parser.phase - self.parser.phase = self.parser.phases["inTableText"] - self.parser.phase.originalPhase = originalPhase - self.parser.phase.processCharacters(token) - - def insertText(self, token): - # If we get here there must be at least one non-whitespace character - # Do the table magic! - self.tree.insertFromTable = True - self.parser.phases["inBody"].processCharacters(token) - self.tree.insertFromTable = False - - def startTagCaption(self, token): - self.clearStackToTableContext() - self.tree.activeFormattingElements.append(Marker) - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inCaption"] - - def startTagColgroup(self, token): - self.clearStackToTableContext() - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inColumnGroup"] - - def startTagCol(self, token): - self.startTagColgroup(impliedTagToken("colgroup", "StartTag")) - return token - - def startTagRowGroup(self, token): - self.clearStackToTableContext() - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inTableBody"] - - def startTagImplyTbody(self, token): - self.startTagRowGroup(impliedTagToken("tbody", "StartTag")) - return token - - def startTagTable(self, token): - self.parser.parseError("unexpected-start-tag-implies-end-tag", - {"startName": "table", "endName": "table"}) - self.parser.phase.processEndTag(impliedTagToken("table")) - if not self.parser.innerHTML: - return token - - def startTagStyleScript(self, token): - return self.parser.phases["inHead"].processStartTag(token) - - def startTagInput(self, token): - if ("type" in token["data"] and - token["data"]["type"].translate(asciiUpper2Lower) == "hidden"): - self.parser.parseError("unexpected-hidden-input-in-table") - self.tree.insertElement(token) - # XXX associate with form - self.tree.openElements.pop() - else: - self.startTagOther(token) - - def startTagForm(self, token): - self.parser.parseError("unexpected-form-in-table") - if self.tree.formPointer is None: - self.tree.insertElement(token) - self.tree.formPointer = self.tree.openElements[-1] - self.tree.openElements.pop() - - def startTagOther(self, token): - self.parser.parseError("unexpected-start-tag-implies-table-voodoo", {"name": token["name"]}) - # Do the table magic! - self.tree.insertFromTable = True - self.parser.phases["inBody"].processStartTag(token) - self.tree.insertFromTable = False - - def endTagTable(self, token): - if self.tree.elementInScope("table", variant="table"): - self.tree.generateImpliedEndTags() - if self.tree.openElements[-1].name != "table": - self.parser.parseError("end-tag-too-early-named", - {"gotName": "table", - "expectedName": self.tree.openElements[-1].name}) - while self.tree.openElements[-1].name != "table": - self.tree.openElements.pop() - self.tree.openElements.pop() - self.parser.resetInsertionMode() - else: - # innerHTML case - assert self.parser.innerHTML - self.parser.parseError() - - def endTagIgnore(self, token): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag-implies-table-voodoo", {"name": token["name"]}) - # Do the table magic! - self.tree.insertFromTable = True - self.parser.phases["inBody"].processEndTag(token) - self.tree.insertFromTable = False - - class InTableTextPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - self.originalPhase = None - self.characterTokens = [] - - def flushCharacters(self): - data = "".join([item["data"] for item in self.characterTokens]) - if any([item not in spaceCharacters for item in data]): - token = {"type": tokenTypes["Characters"], "data": data} - self.parser.phases["inTable"].insertText(token) - elif data: - self.tree.insertText(data) - self.characterTokens = [] - - def processComment(self, token): - self.flushCharacters() - self.parser.phase = self.originalPhase - return token - - def processEOF(self): - self.flushCharacters() - self.parser.phase = self.originalPhase - return True - - def processCharacters(self, token): - if token["data"] == "\u0000": - return - self.characterTokens.append(token) - - def processSpaceCharacters(self, token): - # pretty sure we should never reach here - self.characterTokens.append(token) - # assert False - - def processStartTag(self, token): - self.flushCharacters() - self.parser.phase = self.originalPhase - return token - - def processEndTag(self, token): - self.flushCharacters() - self.parser.phase = self.originalPhase - return token - - class InCaptionPhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#in-caption - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th", - "thead", "tr"), self.startTagTableElement) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("caption", self.endTagCaption), - ("table", self.endTagTable), - (("body", "col", "colgroup", "html", "tbody", "td", "tfoot", "th", - "thead", "tr"), self.endTagIgnore) - ]) - self.endTagHandler.default = self.endTagOther - - def ignoreEndTagCaption(self): - return not self.tree.elementInScope("caption", variant="table") - - def processEOF(self): - self.parser.phases["inBody"].processEOF() - - def processCharacters(self, token): - return self.parser.phases["inBody"].processCharacters(token) - - def startTagTableElement(self, token): - self.parser.parseError() - # XXX Have to duplicate logic here to find out if the tag is ignored - ignoreEndTag = self.ignoreEndTagCaption() - self.parser.phase.processEndTag(impliedTagToken("caption")) - if not ignoreEndTag: - return token - - def startTagOther(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def endTagCaption(self, token): - if not self.ignoreEndTagCaption(): - # AT this code is quite similar to endTagTable in "InTable" - self.tree.generateImpliedEndTags() - if self.tree.openElements[-1].name != "caption": - self.parser.parseError("expected-one-end-tag-but-got-another", - {"gotName": "caption", - "expectedName": self.tree.openElements[-1].name}) - while self.tree.openElements[-1].name != "caption": - self.tree.openElements.pop() - self.tree.openElements.pop() - self.tree.clearActiveFormattingElements() - self.parser.phase = self.parser.phases["inTable"] - else: - # innerHTML case - assert self.parser.innerHTML - self.parser.parseError() - - def endTagTable(self, token): - self.parser.parseError() - ignoreEndTag = self.ignoreEndTagCaption() - self.parser.phase.processEndTag(impliedTagToken("caption")) - if not ignoreEndTag: - return token - - def endTagIgnore(self, token): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def endTagOther(self, token): - return self.parser.phases["inBody"].processEndTag(token) - - class InColumnGroupPhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#in-column - - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("col", self.startTagCol) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("colgroup", self.endTagColgroup), - ("col", self.endTagCol) - ]) - self.endTagHandler.default = self.endTagOther - - def ignoreEndTagColgroup(self): - return self.tree.openElements[-1].name == "html" - - def processEOF(self): - if self.tree.openElements[-1].name == "html": - assert self.parser.innerHTML - return - else: - ignoreEndTag = self.ignoreEndTagColgroup() - self.endTagColgroup(impliedTagToken("colgroup")) - if not ignoreEndTag: - return True - - def processCharacters(self, token): - ignoreEndTag = self.ignoreEndTagColgroup() - self.endTagColgroup(impliedTagToken("colgroup")) - if not ignoreEndTag: - return token - - def startTagCol(self, token): - self.tree.insertElement(token) - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - - def startTagOther(self, token): - ignoreEndTag = self.ignoreEndTagColgroup() - self.endTagColgroup(impliedTagToken("colgroup")) - if not ignoreEndTag: - return token - - def endTagColgroup(self, token): - if self.ignoreEndTagColgroup(): - # innerHTML case - assert self.parser.innerHTML - self.parser.parseError() - else: - self.tree.openElements.pop() - self.parser.phase = self.parser.phases["inTable"] - - def endTagCol(self, token): - self.parser.parseError("no-end-tag", {"name": "col"}) - - def endTagOther(self, token): - ignoreEndTag = self.ignoreEndTagColgroup() - self.endTagColgroup(impliedTagToken("colgroup")) - if not ignoreEndTag: - return token - - class InTableBodyPhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#in-table0 - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("tr", self.startTagTr), - (("td", "th"), self.startTagTableCell), - (("caption", "col", "colgroup", "tbody", "tfoot", "thead"), - self.startTagTableOther) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - (("tbody", "tfoot", "thead"), self.endTagTableRowGroup), - ("table", self.endTagTable), - (("body", "caption", "col", "colgroup", "html", "td", "th", - "tr"), self.endTagIgnore) - ]) - self.endTagHandler.default = self.endTagOther - - # helper methods - def clearStackToTableBodyContext(self): - while self.tree.openElements[-1].name not in ("tbody", "tfoot", - "thead", "html"): - # self.parser.parseError("unexpected-implied-end-tag-in-table", - # {"name": self.tree.openElements[-1].name}) - self.tree.openElements.pop() - if self.tree.openElements[-1].name == "html": - assert self.parser.innerHTML - - # the rest - def processEOF(self): - self.parser.phases["inTable"].processEOF() - - def processSpaceCharacters(self, token): - return self.parser.phases["inTable"].processSpaceCharacters(token) - - def processCharacters(self, token): - return self.parser.phases["inTable"].processCharacters(token) - - def startTagTr(self, token): - self.clearStackToTableBodyContext() - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inRow"] - - def startTagTableCell(self, token): - self.parser.parseError("unexpected-cell-in-table-body", - {"name": token["name"]}) - self.startTagTr(impliedTagToken("tr", "StartTag")) - return token - - def startTagTableOther(self, token): - # XXX AT Any ideas on how to share this with endTagTable? - if (self.tree.elementInScope("tbody", variant="table") or - self.tree.elementInScope("thead", variant="table") or - self.tree.elementInScope("tfoot", variant="table")): - self.clearStackToTableBodyContext() - self.endTagTableRowGroup( - impliedTagToken(self.tree.openElements[-1].name)) - return token - else: - # innerHTML case - assert self.parser.innerHTML - self.parser.parseError() - - def startTagOther(self, token): - return self.parser.phases["inTable"].processStartTag(token) - - def endTagTableRowGroup(self, token): - if self.tree.elementInScope(token["name"], variant="table"): - self.clearStackToTableBodyContext() - self.tree.openElements.pop() - self.parser.phase = self.parser.phases["inTable"] - else: - self.parser.parseError("unexpected-end-tag-in-table-body", - {"name": token["name"]}) - - def endTagTable(self, token): - if (self.tree.elementInScope("tbody", variant="table") or - self.tree.elementInScope("thead", variant="table") or - self.tree.elementInScope("tfoot", variant="table")): - self.clearStackToTableBodyContext() - self.endTagTableRowGroup( - impliedTagToken(self.tree.openElements[-1].name)) - return token - else: - # innerHTML case - assert self.parser.innerHTML - self.parser.parseError() - - def endTagIgnore(self, token): - self.parser.parseError("unexpected-end-tag-in-table-body", - {"name": token["name"]}) - - def endTagOther(self, token): - return self.parser.phases["inTable"].processEndTag(token) - - class InRowPhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#in-row - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - (("td", "th"), self.startTagTableCell), - (("caption", "col", "colgroup", "tbody", "tfoot", "thead", - "tr"), self.startTagTableOther) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("tr", self.endTagTr), - ("table", self.endTagTable), - (("tbody", "tfoot", "thead"), self.endTagTableRowGroup), - (("body", "caption", "col", "colgroup", "html", "td", "th"), - self.endTagIgnore) - ]) - self.endTagHandler.default = self.endTagOther - - # helper methods (XXX unify this with other table helper methods) - def clearStackToTableRowContext(self): - while self.tree.openElements[-1].name not in ("tr", "html"): - self.parser.parseError("unexpected-implied-end-tag-in-table-row", - {"name": self.tree.openElements[-1].name}) - self.tree.openElements.pop() - - def ignoreEndTagTr(self): - return not self.tree.elementInScope("tr", variant="table") - - # the rest - def processEOF(self): - self.parser.phases["inTable"].processEOF() - - def processSpaceCharacters(self, token): - return self.parser.phases["inTable"].processSpaceCharacters(token) - - def processCharacters(self, token): - return self.parser.phases["inTable"].processCharacters(token) - - def startTagTableCell(self, token): - self.clearStackToTableRowContext() - self.tree.insertElement(token) - self.parser.phase = self.parser.phases["inCell"] - self.tree.activeFormattingElements.append(Marker) - - def startTagTableOther(self, token): - ignoreEndTag = self.ignoreEndTagTr() - self.endTagTr(impliedTagToken("tr")) - # XXX how are we sure it's always ignored in the innerHTML case? - if not ignoreEndTag: - return token - - def startTagOther(self, token): - return self.parser.phases["inTable"].processStartTag(token) - - def endTagTr(self, token): - if not self.ignoreEndTagTr(): - self.clearStackToTableRowContext() - self.tree.openElements.pop() - self.parser.phase = self.parser.phases["inTableBody"] - else: - # innerHTML case - assert self.parser.innerHTML - self.parser.parseError() - - def endTagTable(self, token): - ignoreEndTag = self.ignoreEndTagTr() - self.endTagTr(impliedTagToken("tr")) - # Reprocess the current tag if the tr end tag was not ignored - # XXX how are we sure it's always ignored in the innerHTML case? - if not ignoreEndTag: - return token - - def endTagTableRowGroup(self, token): - if self.tree.elementInScope(token["name"], variant="table"): - self.endTagTr(impliedTagToken("tr")) - return token - else: - self.parser.parseError() - - def endTagIgnore(self, token): - self.parser.parseError("unexpected-end-tag-in-table-row", - {"name": token["name"]}) - - def endTagOther(self, token): - return self.parser.phases["inTable"].processEndTag(token) - - class InCellPhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#in-cell - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th", - "thead", "tr"), self.startTagTableOther) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - (("td", "th"), self.endTagTableCell), - (("body", "caption", "col", "colgroup", "html"), self.endTagIgnore), - (("table", "tbody", "tfoot", "thead", "tr"), self.endTagImply) - ]) - self.endTagHandler.default = self.endTagOther - - # helper - def closeCell(self): - if self.tree.elementInScope("td", variant="table"): - self.endTagTableCell(impliedTagToken("td")) - elif self.tree.elementInScope("th", variant="table"): - self.endTagTableCell(impliedTagToken("th")) - - # the rest - def processEOF(self): - self.parser.phases["inBody"].processEOF() - - def processCharacters(self, token): - return self.parser.phases["inBody"].processCharacters(token) - - def startTagTableOther(self, token): - if (self.tree.elementInScope("td", variant="table") or - self.tree.elementInScope("th", variant="table")): - self.closeCell() - return token - else: - # innerHTML case - assert self.parser.innerHTML - self.parser.parseError() - - def startTagOther(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def endTagTableCell(self, token): - if self.tree.elementInScope(token["name"], variant="table"): - self.tree.generateImpliedEndTags(token["name"]) - if self.tree.openElements[-1].name != token["name"]: - self.parser.parseError("unexpected-cell-end-tag", - {"name": token["name"]}) - while True: - node = self.tree.openElements.pop() - if node.name == token["name"]: - break - else: - self.tree.openElements.pop() - self.tree.clearActiveFormattingElements() - self.parser.phase = self.parser.phases["inRow"] - else: - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def endTagIgnore(self, token): - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - def endTagImply(self, token): - if self.tree.elementInScope(token["name"], variant="table"): - self.closeCell() - return token - else: - # sometimes innerHTML case - self.parser.parseError() - - def endTagOther(self, token): - return self.parser.phases["inBody"].processEndTag(token) - - class InSelectPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("option", self.startTagOption), - ("optgroup", self.startTagOptgroup), - ("select", self.startTagSelect), - (("input", "keygen", "textarea"), self.startTagInput), - ("script", self.startTagScript) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("option", self.endTagOption), - ("optgroup", self.endTagOptgroup), - ("select", self.endTagSelect) - ]) - self.endTagHandler.default = self.endTagOther - - # http://www.whatwg.org/specs/web-apps/current-work/#in-select - def processEOF(self): - if self.tree.openElements[-1].name != "html": - self.parser.parseError("eof-in-select") - else: - assert self.parser.innerHTML - - def processCharacters(self, token): - if token["data"] == "\u0000": - return - self.tree.insertText(token["data"]) - - def startTagOption(self, token): - # We need to imply </option> if <option> is the current node. - if self.tree.openElements[-1].name == "option": - self.tree.openElements.pop() - self.tree.insertElement(token) - - def startTagOptgroup(self, token): - if self.tree.openElements[-1].name == "option": - self.tree.openElements.pop() - if self.tree.openElements[-1].name == "optgroup": - self.tree.openElements.pop() - self.tree.insertElement(token) - - def startTagSelect(self, token): - self.parser.parseError("unexpected-select-in-select") - self.endTagSelect(impliedTagToken("select")) - - def startTagInput(self, token): - self.parser.parseError("unexpected-input-in-select") - if self.tree.elementInScope("select", variant="select"): - self.endTagSelect(impliedTagToken("select")) - return token - else: - assert self.parser.innerHTML - - def startTagScript(self, token): - return self.parser.phases["inHead"].processStartTag(token) - - def startTagOther(self, token): - self.parser.parseError("unexpected-start-tag-in-select", - {"name": token["name"]}) - - def endTagOption(self, token): - if self.tree.openElements[-1].name == "option": - self.tree.openElements.pop() - else: - self.parser.parseError("unexpected-end-tag-in-select", - {"name": "option"}) - - def endTagOptgroup(self, token): - # </optgroup> implicitly closes <option> - if (self.tree.openElements[-1].name == "option" and - self.tree.openElements[-2].name == "optgroup"): - self.tree.openElements.pop() - # It also closes </optgroup> - if self.tree.openElements[-1].name == "optgroup": - self.tree.openElements.pop() - # But nothing else - else: - self.parser.parseError("unexpected-end-tag-in-select", - {"name": "optgroup"}) - - def endTagSelect(self, token): - if self.tree.elementInScope("select", variant="select"): - node = self.tree.openElements.pop() - while node.name != "select": - node = self.tree.openElements.pop() - self.parser.resetInsertionMode() - else: - # innerHTML case - assert self.parser.innerHTML - self.parser.parseError() - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag-in-select", - {"name": token["name"]}) - - class InSelectInTablePhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"), - self.startTagTable) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"), - self.endTagTable) - ]) - self.endTagHandler.default = self.endTagOther - - def processEOF(self): - self.parser.phases["inSelect"].processEOF() - - def processCharacters(self, token): - return self.parser.phases["inSelect"].processCharacters(token) - - def startTagTable(self, token): - self.parser.parseError("unexpected-table-element-start-tag-in-select-in-table", {"name": token["name"]}) - self.endTagOther(impliedTagToken("select")) - return token - - def startTagOther(self, token): - return self.parser.phases["inSelect"].processStartTag(token) - - def endTagTable(self, token): - self.parser.parseError("unexpected-table-element-end-tag-in-select-in-table", {"name": token["name"]}) - if self.tree.elementInScope(token["name"], variant="table"): - self.endTagOther(impliedTagToken("select")) - return token - - def endTagOther(self, token): - return self.parser.phases["inSelect"].processEndTag(token) - - class InForeignContentPhase(Phase): - breakoutElements = frozenset(["b", "big", "blockquote", "body", "br", - "center", "code", "dd", "div", "dl", "dt", - "em", "embed", "h1", "h2", "h3", - "h4", "h5", "h6", "head", "hr", "i", "img", - "li", "listing", "menu", "meta", "nobr", - "ol", "p", "pre", "ruby", "s", "small", - "span", "strong", "strike", "sub", "sup", - "table", "tt", "u", "ul", "var"]) - - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - def adjustSVGTagNames(self, token): - replacements = {"altglyph": "altGlyph", - "altglyphdef": "altGlyphDef", - "altglyphitem": "altGlyphItem", - "animatecolor": "animateColor", - "animatemotion": "animateMotion", - "animatetransform": "animateTransform", - "clippath": "clipPath", - "feblend": "feBlend", - "fecolormatrix": "feColorMatrix", - "fecomponenttransfer": "feComponentTransfer", - "fecomposite": "feComposite", - "feconvolvematrix": "feConvolveMatrix", - "fediffuselighting": "feDiffuseLighting", - "fedisplacementmap": "feDisplacementMap", - "fedistantlight": "feDistantLight", - "feflood": "feFlood", - "fefunca": "feFuncA", - "fefuncb": "feFuncB", - "fefuncg": "feFuncG", - "fefuncr": "feFuncR", - "fegaussianblur": "feGaussianBlur", - "feimage": "feImage", - "femerge": "feMerge", - "femergenode": "feMergeNode", - "femorphology": "feMorphology", - "feoffset": "feOffset", - "fepointlight": "fePointLight", - "fespecularlighting": "feSpecularLighting", - "fespotlight": "feSpotLight", - "fetile": "feTile", - "feturbulence": "feTurbulence", - "foreignobject": "foreignObject", - "glyphref": "glyphRef", - "lineargradient": "linearGradient", - "radialgradient": "radialGradient", - "textpath": "textPath"} - - if token["name"] in replacements: - token["name"] = replacements[token["name"]] - - def processCharacters(self, token): - if token["data"] == "\u0000": - token["data"] = "\uFFFD" - elif (self.parser.framesetOK and - any(char not in spaceCharacters for char in token["data"])): - self.parser.framesetOK = False - Phase.processCharacters(self, token) - - def processStartTag(self, token): - currentNode = self.tree.openElements[-1] - if (token["name"] in self.breakoutElements or - (token["name"] == "font" and - set(token["data"].keys()) & set(["color", "face", "size"]))): - self.parser.parseError("unexpected-html-element-in-foreign-content", - {"name": token["name"]}) - while (self.tree.openElements[-1].namespace != - self.tree.defaultNamespace and - not self.parser.isHTMLIntegrationPoint(self.tree.openElements[-1]) and - not self.parser.isMathMLTextIntegrationPoint(self.tree.openElements[-1])): - self.tree.openElements.pop() - return token - - else: - if currentNode.namespace == namespaces["mathml"]: - self.parser.adjustMathMLAttributes(token) - elif currentNode.namespace == namespaces["svg"]: - self.adjustSVGTagNames(token) - self.parser.adjustSVGAttributes(token) - self.parser.adjustForeignAttributes(token) - token["namespace"] = currentNode.namespace - self.tree.insertElement(token) - if token["selfClosing"]: - self.tree.openElements.pop() - token["selfClosingAcknowledged"] = True - - def processEndTag(self, token): - nodeIndex = len(self.tree.openElements) - 1 - node = self.tree.openElements[-1] - if node.name.translate(asciiUpper2Lower) != token["name"]: - self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) - - while True: - if node.name.translate(asciiUpper2Lower) == token["name"]: - # XXX this isn't in the spec but it seems necessary - if self.parser.phase == self.parser.phases["inTableText"]: - self.parser.phase.flushCharacters() - self.parser.phase = self.parser.phase.originalPhase - while self.tree.openElements.pop() != node: - assert self.tree.openElements - new_token = None - break - nodeIndex -= 1 - - node = self.tree.openElements[nodeIndex] - if node.namespace != self.tree.defaultNamespace: - continue - else: - new_token = self.parser.phase.processEndTag(token) - break - return new_token - - class AfterBodyPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([("html", self.endTagHtml)]) - self.endTagHandler.default = self.endTagOther - - def processEOF(self): - # Stop parsing - pass - - def processComment(self, token): - # This is needed because data is to be appended to the <html> element - # here and not to whatever is currently open. - self.tree.insertComment(token, self.tree.openElements[0]) - - def processCharacters(self, token): - self.parser.parseError("unexpected-char-after-body") - self.parser.phase = self.parser.phases["inBody"] - return token - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagOther(self, token): - self.parser.parseError("unexpected-start-tag-after-body", - {"name": token["name"]}) - self.parser.phase = self.parser.phases["inBody"] - return token - - def endTagHtml(self, name): - if self.parser.innerHTML: - self.parser.parseError("unexpected-end-tag-after-body-innerhtml") - else: - self.parser.phase = self.parser.phases["afterAfterBody"] - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag-after-body", - {"name": token["name"]}) - self.parser.phase = self.parser.phases["inBody"] - return token - - class InFramesetPhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#in-frameset - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("frameset", self.startTagFrameset), - ("frame", self.startTagFrame), - ("noframes", self.startTagNoframes) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("frameset", self.endTagFrameset) - ]) - self.endTagHandler.default = self.endTagOther - - def processEOF(self): - if self.tree.openElements[-1].name != "html": - self.parser.parseError("eof-in-frameset") - else: - assert self.parser.innerHTML - - def processCharacters(self, token): - self.parser.parseError("unexpected-char-in-frameset") - - def startTagFrameset(self, token): - self.tree.insertElement(token) - - def startTagFrame(self, token): - self.tree.insertElement(token) - self.tree.openElements.pop() - - def startTagNoframes(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagOther(self, token): - self.parser.parseError("unexpected-start-tag-in-frameset", - {"name": token["name"]}) - - def endTagFrameset(self, token): - if self.tree.openElements[-1].name == "html": - # innerHTML case - self.parser.parseError("unexpected-frameset-in-frameset-innerhtml") - else: - self.tree.openElements.pop() - if (not self.parser.innerHTML and - self.tree.openElements[-1].name != "frameset"): - # If we're not in innerHTML mode and the current node is not a - # "frameset" element (anymore) then switch. - self.parser.phase = self.parser.phases["afterFrameset"] - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag-in-frameset", - {"name": token["name"]}) - - class AfterFramesetPhase(Phase): - # http://www.whatwg.org/specs/web-apps/current-work/#after3 - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("noframes", self.startTagNoframes) - ]) - self.startTagHandler.default = self.startTagOther - - self.endTagHandler = _utils.MethodDispatcher([ - ("html", self.endTagHtml) - ]) - self.endTagHandler.default = self.endTagOther - - def processEOF(self): - # Stop parsing - pass - - def processCharacters(self, token): - self.parser.parseError("unexpected-char-after-frameset") - - def startTagNoframes(self, token): - return self.parser.phases["inHead"].processStartTag(token) - - def startTagOther(self, token): - self.parser.parseError("unexpected-start-tag-after-frameset", - {"name": token["name"]}) - - def endTagHtml(self, token): - self.parser.phase = self.parser.phases["afterAfterFrameset"] - - def endTagOther(self, token): - self.parser.parseError("unexpected-end-tag-after-frameset", - {"name": token["name"]}) - - class AfterAfterBodyPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml) - ]) - self.startTagHandler.default = self.startTagOther - - def processEOF(self): - pass - - def processComment(self, token): - self.tree.insertComment(token, self.tree.document) - - def processSpaceCharacters(self, token): - return self.parser.phases["inBody"].processSpaceCharacters(token) - - def processCharacters(self, token): - self.parser.parseError("expected-eof-but-got-char") - self.parser.phase = self.parser.phases["inBody"] - return token - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagOther(self, token): - self.parser.parseError("expected-eof-but-got-start-tag", - {"name": token["name"]}) - self.parser.phase = self.parser.phases["inBody"] - return token - - def processEndTag(self, token): - self.parser.parseError("expected-eof-but-got-end-tag", - {"name": token["name"]}) - self.parser.phase = self.parser.phases["inBody"] - return token - - class AfterAfterFramesetPhase(Phase): - def __init__(self, parser, tree): - Phase.__init__(self, parser, tree) - - self.startTagHandler = _utils.MethodDispatcher([ - ("html", self.startTagHtml), - ("noframes", self.startTagNoFrames) - ]) - self.startTagHandler.default = self.startTagOther - - def processEOF(self): - pass - - def processComment(self, token): - self.tree.insertComment(token, self.tree.document) - - def processSpaceCharacters(self, token): - return self.parser.phases["inBody"].processSpaceCharacters(token) - - def processCharacters(self, token): - self.parser.parseError("expected-eof-but-got-char") - - def startTagHtml(self, token): - return self.parser.phases["inBody"].processStartTag(token) - - def startTagNoFrames(self, token): - return self.parser.phases["inHead"].processStartTag(token) - - def startTagOther(self, token): - self.parser.parseError("expected-eof-but-got-start-tag", - {"name": token["name"]}) - - def processEndTag(self, token): - self.parser.parseError("expected-eof-but-got-end-tag", - {"name": token["name"]}) - # pylint:enable=unused-argument - - return { - "initial": InitialPhase, - "beforeHtml": BeforeHtmlPhase, - "beforeHead": BeforeHeadPhase, - "inHead": InHeadPhase, - "inHeadNoscript": InHeadNoscriptPhase, - "afterHead": AfterHeadPhase, - "inBody": InBodyPhase, - "text": TextPhase, - "inTable": InTablePhase, - "inTableText": InTableTextPhase, - "inCaption": InCaptionPhase, - "inColumnGroup": InColumnGroupPhase, - "inTableBody": InTableBodyPhase, - "inRow": InRowPhase, - "inCell": InCellPhase, - "inSelect": InSelectPhase, - "inSelectInTable": InSelectInTablePhase, - "inForeignContent": InForeignContentPhase, - "afterBody": AfterBodyPhase, - "inFrameset": InFramesetPhase, - "afterFrameset": AfterFramesetPhase, - "afterAfterBody": AfterAfterBodyPhase, - "afterAfterFrameset": AfterAfterFramesetPhase, - # XXX after after frameset - } - - -def adjust_attributes(token, replacements): - needs_adjustment = viewkeys(token['data']) & viewkeys(replacements) - if needs_adjustment: - token['data'] = OrderedDict((replacements.get(k, k), v) - for k, v in token['data'].items()) - - -def impliedTagToken(name, type="EndTag", attributes=None, - selfClosing=False): - if attributes is None: - attributes = {} - return {"type": tokenTypes[type], "name": name, "data": attributes, - "selfClosing": selfClosing} - - -class ParseError(Exception): - """Error in parsed document""" - pass diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/serializer.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/serializer.py deleted file mode 100644 index 53f4d44..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/serializer.py +++ /dev/null @@ -1,409 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals -from pip._vendor.six import text_type - -import re - -from codecs import register_error, xmlcharrefreplace_errors - -from .constants import voidElements, booleanAttributes, spaceCharacters -from .constants import rcdataElements, entities, xmlEntities -from . import treewalkers, _utils -from xml.sax.saxutils import escape - -_quoteAttributeSpecChars = "".join(spaceCharacters) + "\"'=<>`" -_quoteAttributeSpec = re.compile("[" + _quoteAttributeSpecChars + "]") -_quoteAttributeLegacy = re.compile("[" + _quoteAttributeSpecChars + - "\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n" - "\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15" - "\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" - "\x20\x2f\x60\xa0\u1680\u180e\u180f\u2000" - "\u2001\u2002\u2003\u2004\u2005\u2006\u2007" - "\u2008\u2009\u200a\u2028\u2029\u202f\u205f" - "\u3000]") - - -_encode_entity_map = {} -_is_ucs4 = len("\U0010FFFF") == 1 -for k, v in list(entities.items()): - # skip multi-character entities - if ((_is_ucs4 and len(v) > 1) or - (not _is_ucs4 and len(v) > 2)): - continue - if v != "&": - if len(v) == 2: - v = _utils.surrogatePairToCodepoint(v) - else: - v = ord(v) - if v not in _encode_entity_map or k.islower(): - # prefer < over < and similarly for &, >, etc. - _encode_entity_map[v] = k - - -def htmlentityreplace_errors(exc): - if isinstance(exc, (UnicodeEncodeError, UnicodeTranslateError)): - res = [] - codepoints = [] - skip = False - for i, c in enumerate(exc.object[exc.start:exc.end]): - if skip: - skip = False - continue - index = i + exc.start - if _utils.isSurrogatePair(exc.object[index:min([exc.end, index + 2])]): - codepoint = _utils.surrogatePairToCodepoint(exc.object[index:index + 2]) - skip = True - else: - codepoint = ord(c) - codepoints.append(codepoint) - for cp in codepoints: - e = _encode_entity_map.get(cp) - if e: - res.append("&") - res.append(e) - if not e.endswith(";"): - res.append(";") - else: - res.append("&#x%s;" % (hex(cp)[2:])) - return ("".join(res), exc.end) - else: - return xmlcharrefreplace_errors(exc) - - -register_error("htmlentityreplace", htmlentityreplace_errors) - - -def serialize(input, tree="etree", encoding=None, **serializer_opts): - """Serializes the input token stream using the specified treewalker - - :arg input: the token stream to serialize - - :arg tree: the treewalker to use - - :arg encoding: the encoding to use - - :arg serializer_opts: any options to pass to the - :py:class:`html5lib.serializer.HTMLSerializer` that gets created - - :returns: the tree serialized as a string - - Example: - - >>> from html5lib.html5parser import parse - >>> from html5lib.serializer import serialize - >>> token_stream = parse('<html><body><p>Hi!</p></body></html>') - >>> serialize(token_stream, omit_optional_tags=False) - '<html><head></head><body><p>Hi!</p></body></html>' - - """ - # XXX: Should we cache this? - walker = treewalkers.getTreeWalker(tree) - s = HTMLSerializer(**serializer_opts) - return s.render(walker(input), encoding) - - -class HTMLSerializer(object): - - # attribute quoting options - quote_attr_values = "legacy" # be secure by default - quote_char = '"' - use_best_quote_char = True - - # tag syntax options - omit_optional_tags = True - minimize_boolean_attributes = True - use_trailing_solidus = False - space_before_trailing_solidus = True - - # escaping options - escape_lt_in_attrs = False - escape_rcdata = False - resolve_entities = True - - # miscellaneous options - alphabetical_attributes = False - inject_meta_charset = True - strip_whitespace = False - sanitize = False - - options = ("quote_attr_values", "quote_char", "use_best_quote_char", - "omit_optional_tags", "minimize_boolean_attributes", - "use_trailing_solidus", "space_before_trailing_solidus", - "escape_lt_in_attrs", "escape_rcdata", "resolve_entities", - "alphabetical_attributes", "inject_meta_charset", - "strip_whitespace", "sanitize") - - def __init__(self, **kwargs): - """Initialize HTMLSerializer - - :arg inject_meta_charset: Whether or not to inject the meta charset. - - Defaults to ``True``. - - :arg quote_attr_values: Whether to quote attribute values that don't - require quoting per legacy browser behavior (``"legacy"``), when - required by the standard (``"spec"``), or always (``"always"``). - - Defaults to ``"legacy"``. - - :arg quote_char: Use given quote character for attribute quoting. - - Defaults to ``"`` which will use double quotes unless attribute - value contains a double quote, in which case single quotes are - used. - - :arg escape_lt_in_attrs: Whether or not to escape ``<`` in attribute - values. - - Defaults to ``False``. - - :arg escape_rcdata: Whether to escape characters that need to be - escaped within normal elements within rcdata elements such as - style. - - Defaults to ``False``. - - :arg resolve_entities: Whether to resolve named character entities that - appear in the source tree. The XML predefined entities < > - & " ' are unaffected by this setting. - - Defaults to ``True``. - - :arg strip_whitespace: Whether to remove semantically meaningless - whitespace. (This compresses all whitespace to a single space - except within ``pre``.) - - Defaults to ``False``. - - :arg minimize_boolean_attributes: Shortens boolean attributes to give - just the attribute value, for example:: - - <input disabled="disabled"> - - becomes:: - - <input disabled> - - Defaults to ``True``. - - :arg use_trailing_solidus: Includes a close-tag slash at the end of the - start tag of void elements (empty elements whose end tag is - forbidden). E.g. ``<hr/>``. - - Defaults to ``False``. - - :arg space_before_trailing_solidus: Places a space immediately before - the closing slash in a tag using a trailing solidus. E.g. - ``<hr />``. Requires ``use_trailing_solidus=True``. - - Defaults to ``True``. - - :arg sanitize: Strip all unsafe or unknown constructs from output. - See :py:class:`html5lib.filters.sanitizer.Filter`. - - Defaults to ``False``. - - :arg omit_optional_tags: Omit start/end tags that are optional. - - Defaults to ``True``. - - :arg alphabetical_attributes: Reorder attributes to be in alphabetical order. - - Defaults to ``False``. - - """ - unexpected_args = frozenset(kwargs) - frozenset(self.options) - if len(unexpected_args) > 0: - raise TypeError("__init__() got an unexpected keyword argument '%s'" % next(iter(unexpected_args))) - if 'quote_char' in kwargs: - self.use_best_quote_char = False - for attr in self.options: - setattr(self, attr, kwargs.get(attr, getattr(self, attr))) - self.errors = [] - self.strict = False - - def encode(self, string): - assert(isinstance(string, text_type)) - if self.encoding: - return string.encode(self.encoding, "htmlentityreplace") - else: - return string - - def encodeStrict(self, string): - assert(isinstance(string, text_type)) - if self.encoding: - return string.encode(self.encoding, "strict") - else: - return string - - def serialize(self, treewalker, encoding=None): - # pylint:disable=too-many-nested-blocks - self.encoding = encoding - in_cdata = False - self.errors = [] - - if encoding and self.inject_meta_charset: - from .filters.inject_meta_charset import Filter - treewalker = Filter(treewalker, encoding) - # Alphabetical attributes is here under the assumption that none of - # the later filters add or change order of attributes; it needs to be - # before the sanitizer so escaped elements come out correctly - if self.alphabetical_attributes: - from .filters.alphabeticalattributes import Filter - treewalker = Filter(treewalker) - # WhitespaceFilter should be used before OptionalTagFilter - # for maximum efficiently of this latter filter - if self.strip_whitespace: - from .filters.whitespace import Filter - treewalker = Filter(treewalker) - if self.sanitize: - from .filters.sanitizer import Filter - treewalker = Filter(treewalker) - if self.omit_optional_tags: - from .filters.optionaltags import Filter - treewalker = Filter(treewalker) - - for token in treewalker: - type = token["type"] - if type == "Doctype": - doctype = "<!DOCTYPE %s" % token["name"] - - if token["publicId"]: - doctype += ' PUBLIC "%s"' % token["publicId"] - elif token["systemId"]: - doctype += " SYSTEM" - if token["systemId"]: - if token["systemId"].find('"') >= 0: - if token["systemId"].find("'") >= 0: - self.serializeError("System identifer contains both single and double quote characters") - quote_char = "'" - else: - quote_char = '"' - doctype += " %s%s%s" % (quote_char, token["systemId"], quote_char) - - doctype += ">" - yield self.encodeStrict(doctype) - - elif type in ("Characters", "SpaceCharacters"): - if type == "SpaceCharacters" or in_cdata: - if in_cdata and token["data"].find("</") >= 0: - self.serializeError("Unexpected </ in CDATA") - yield self.encode(token["data"]) - else: - yield self.encode(escape(token["data"])) - - elif type in ("StartTag", "EmptyTag"): - name = token["name"] - yield self.encodeStrict("<%s" % name) - if name in rcdataElements and not self.escape_rcdata: - in_cdata = True - elif in_cdata: - self.serializeError("Unexpected child element of a CDATA element") - for (_, attr_name), attr_value in token["data"].items(): - # TODO: Add namespace support here - k = attr_name - v = attr_value - yield self.encodeStrict(' ') - - yield self.encodeStrict(k) - if not self.minimize_boolean_attributes or \ - (k not in booleanAttributes.get(name, tuple()) and - k not in booleanAttributes.get("", tuple())): - yield self.encodeStrict("=") - if self.quote_attr_values == "always" or len(v) == 0: - quote_attr = True - elif self.quote_attr_values == "spec": - quote_attr = _quoteAttributeSpec.search(v) is not None - elif self.quote_attr_values == "legacy": - quote_attr = _quoteAttributeLegacy.search(v) is not None - else: - raise ValueError("quote_attr_values must be one of: " - "'always', 'spec', or 'legacy'") - v = v.replace("&", "&") - if self.escape_lt_in_attrs: - v = v.replace("<", "<") - if quote_attr: - quote_char = self.quote_char - if self.use_best_quote_char: - if "'" in v and '"' not in v: - quote_char = '"' - elif '"' in v and "'" not in v: - quote_char = "'" - if quote_char == "'": - v = v.replace("'", "'") - else: - v = v.replace('"', """) - yield self.encodeStrict(quote_char) - yield self.encode(v) - yield self.encodeStrict(quote_char) - else: - yield self.encode(v) - if name in voidElements and self.use_trailing_solidus: - if self.space_before_trailing_solidus: - yield self.encodeStrict(" /") - else: - yield self.encodeStrict("/") - yield self.encode(">") - - elif type == "EndTag": - name = token["name"] - if name in rcdataElements: - in_cdata = False - elif in_cdata: - self.serializeError("Unexpected child element of a CDATA element") - yield self.encodeStrict("</%s>" % name) - - elif type == "Comment": - data = token["data"] - if data.find("--") >= 0: - self.serializeError("Comment contains --") - yield self.encodeStrict("<!--%s-->" % token["data"]) - - elif type == "Entity": - name = token["name"] - key = name + ";" - if key not in entities: - self.serializeError("Entity %s not recognized" % name) - if self.resolve_entities and key not in xmlEntities: - data = entities[key] - else: - data = "&%s;" % name - yield self.encodeStrict(data) - - else: - self.serializeError(token["data"]) - - def render(self, treewalker, encoding=None): - """Serializes the stream from the treewalker into a string - - :arg treewalker: the treewalker to serialize - - :arg encoding: the string encoding to use - - :returns: the serialized tree - - Example: - - >>> from html5lib import parse, getTreeWalker - >>> from html5lib.serializer import HTMLSerializer - >>> token_stream = parse('<html><body>Hi!</body></html>') - >>> walker = getTreeWalker('etree') - >>> serializer = HTMLSerializer(omit_optional_tags=False) - >>> serializer.render(walker(token_stream)) - '<html><head></head><body>Hi!</body></html>' - - """ - if encoding: - return b"".join(list(self.serialize(treewalker, encoding))) - else: - return "".join(list(self.serialize(treewalker))) - - def serializeError(self, data="XXX ERROR MESSAGE NEEDED"): - # XXX The idea is to make data mandatory. - self.errors.append(data) - if self.strict: - raise SerializeError - - -class SerializeError(Exception): - """Error in serialized tree""" - pass diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/__init__.py deleted file mode 100644 index 7ef5959..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/__init__.py +++ /dev/null @@ -1,30 +0,0 @@ -"""Tree adapters let you convert from one tree structure to another - -Example: - -.. code-block:: python - - from pip._vendor import html5lib - from pip._vendor.html5lib.treeadapters import genshi - - doc = '<html><body>Hi!</body></html>' - treebuilder = html5lib.getTreeBuilder('etree') - parser = html5lib.HTMLParser(tree=treebuilder) - tree = parser.parse(doc) - TreeWalker = html5lib.getTreeWalker('etree') - - genshi_tree = genshi.to_genshi(TreeWalker(tree)) - -""" -from __future__ import absolute_import, division, unicode_literals - -from . import sax - -__all__ = ["sax"] - -try: - from . import genshi # noqa -except ImportError: - pass -else: - __all__.append("genshi") diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/genshi.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/genshi.py deleted file mode 100644 index 61d5fb6..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/genshi.py +++ /dev/null @@ -1,54 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from genshi.core import QName, Attrs -from genshi.core import START, END, TEXT, COMMENT, DOCTYPE - - -def to_genshi(walker): - """Convert a tree to a genshi tree - - :arg walker: the treewalker to use to walk the tree to convert it - - :returns: generator of genshi nodes - - """ - text = [] - for token in walker: - type = token["type"] - if type in ("Characters", "SpaceCharacters"): - text.append(token["data"]) - elif text: - yield TEXT, "".join(text), (None, -1, -1) - text = [] - - if type in ("StartTag", "EmptyTag"): - if token["namespace"]: - name = "{%s}%s" % (token["namespace"], token["name"]) - else: - name = token["name"] - attrs = Attrs([(QName("{%s}%s" % attr if attr[0] is not None else attr[1]), value) - for attr, value in token["data"].items()]) - yield (START, (QName(name), attrs), (None, -1, -1)) - if type == "EmptyTag": - type = "EndTag" - - if type == "EndTag": - if token["namespace"]: - name = "{%s}%s" % (token["namespace"], token["name"]) - else: - name = token["name"] - - yield END, QName(name), (None, -1, -1) - - elif type == "Comment": - yield COMMENT, token["data"], (None, -1, -1) - - elif type == "Doctype": - yield DOCTYPE, (token["name"], token["publicId"], - token["systemId"]), (None, -1, -1) - - else: - pass # FIXME: What to do? - - if text: - yield TEXT, "".join(text), (None, -1, -1) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/sax.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/sax.py deleted file mode 100644 index f4ccea5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/sax.py +++ /dev/null @@ -1,50 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from xml.sax.xmlreader import AttributesNSImpl - -from ..constants import adjustForeignAttributes, unadjustForeignAttributes - -prefix_mapping = {} -for prefix, localName, namespace in adjustForeignAttributes.values(): - if prefix is not None: - prefix_mapping[prefix] = namespace - - -def to_sax(walker, handler): - """Call SAX-like content handler based on treewalker walker - - :arg walker: the treewalker to use to walk the tree to convert it - - :arg handler: SAX handler to use - - """ - handler.startDocument() - for prefix, namespace in prefix_mapping.items(): - handler.startPrefixMapping(prefix, namespace) - - for token in walker: - type = token["type"] - if type == "Doctype": - continue - elif type in ("StartTag", "EmptyTag"): - attrs = AttributesNSImpl(token["data"], - unadjustForeignAttributes) - handler.startElementNS((token["namespace"], token["name"]), - token["name"], - attrs) - if type == "EmptyTag": - handler.endElementNS((token["namespace"], token["name"]), - token["name"]) - elif type == "EndTag": - handler.endElementNS((token["namespace"], token["name"]), - token["name"]) - elif type in ("Characters", "SpaceCharacters"): - handler.characters(token["data"]) - elif type == "Comment": - pass - else: - assert False, "Unknown token type" - - for prefix, namespace in prefix_mapping.items(): - handler.endPrefixMapping(prefix) - handler.endDocument() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/__init__.py deleted file mode 100644 index d44447e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/__init__.py +++ /dev/null @@ -1,88 +0,0 @@ -"""A collection of modules for building different kinds of trees from HTML -documents. - -To create a treebuilder for a new type of tree, you need to do -implement several things: - -1. A set of classes for various types of elements: Document, Doctype, Comment, - Element. These must implement the interface of ``base.treebuilders.Node`` - (although comment nodes have a different signature for their constructor, - see ``treebuilders.etree.Comment``) Textual content may also be implemented - as another node type, or not, as your tree implementation requires. - -2. A treebuilder object (called ``TreeBuilder`` by convention) that inherits - from ``treebuilders.base.TreeBuilder``. This has 4 required attributes: - - * ``documentClass`` - the class to use for the bottommost node of a document - * ``elementClass`` - the class to use for HTML Elements - * ``commentClass`` - the class to use for comments - * ``doctypeClass`` - the class to use for doctypes - - It also has one required method: - - * ``getDocument`` - Returns the root node of the complete document tree - -3. If you wish to run the unit tests, you must also create a ``testSerializer`` - method on your treebuilder which accepts a node and returns a string - containing Node and its children serialized according to the format used in - the unittests - -""" - -from __future__ import absolute_import, division, unicode_literals - -from .._utils import default_etree - -treeBuilderCache = {} - - -def getTreeBuilder(treeType, implementation=None, **kwargs): - """Get a TreeBuilder class for various types of trees with built-in support - - :arg treeType: the name of the tree type required (case-insensitive). Supported - values are: - - * "dom" - A generic builder for DOM implementations, defaulting to a - xml.dom.minidom based implementation. - * "etree" - A generic builder for tree implementations exposing an - ElementTree-like interface, defaulting to xml.etree.cElementTree if - available and xml.etree.ElementTree if not. - * "lxml" - A etree-based builder for lxml.etree, handling limitations - of lxml's implementation. - - :arg implementation: (Currently applies to the "etree" and "dom" tree - types). A module implementing the tree type e.g. xml.etree.ElementTree - or xml.etree.cElementTree. - - :arg kwargs: Any additional options to pass to the TreeBuilder when - creating it. - - Example: - - >>> from html5lib.treebuilders import getTreeBuilder - >>> builder = getTreeBuilder('etree') - - """ - - treeType = treeType.lower() - if treeType not in treeBuilderCache: - if treeType == "dom": - from . import dom - # Come up with a sane default (pref. from the stdlib) - if implementation is None: - from xml.dom import minidom - implementation = minidom - # NEVER cache here, caching is done in the dom submodule - return dom.getDomModule(implementation, **kwargs).TreeBuilder - elif treeType == "lxml": - from . import etree_lxml - treeBuilderCache[treeType] = etree_lxml.TreeBuilder - elif treeType == "etree": - from . import etree - if implementation is None: - implementation = default_etree - # NEVER cache here, caching is done in the etree submodule - return etree.getETreeModule(implementation, **kwargs).TreeBuilder - else: - raise ValueError("""Unrecognised treebuilder "%s" """ % treeType) - return treeBuilderCache.get(treeType) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/base.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/base.py deleted file mode 100644 index 73973db..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/base.py +++ /dev/null @@ -1,417 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals -from pip._vendor.six import text_type - -from ..constants import scopingElements, tableInsertModeElements, namespaces - -# The scope markers are inserted when entering object elements, -# marquees, table cells, and table captions, and are used to prevent formatting -# from "leaking" into tables, object elements, and marquees. -Marker = None - -listElementsMap = { - None: (frozenset(scopingElements), False), - "button": (frozenset(scopingElements | set([(namespaces["html"], "button")])), False), - "list": (frozenset(scopingElements | set([(namespaces["html"], "ol"), - (namespaces["html"], "ul")])), False), - "table": (frozenset([(namespaces["html"], "html"), - (namespaces["html"], "table")]), False), - "select": (frozenset([(namespaces["html"], "optgroup"), - (namespaces["html"], "option")]), True) -} - - -class Node(object): - """Represents an item in the tree""" - def __init__(self, name): - """Creates a Node - - :arg name: The tag name associated with the node - - """ - # The tag name assocaited with the node - self.name = name - # The parent of the current node (or None for the document node) - self.parent = None - # The value of the current node (applies to text nodes and comments) - self.value = None - # A dict holding name -> value pairs for attributes of the node - self.attributes = {} - # A list of child nodes of the current node. This must include all - # elements but not necessarily other node types. - self.childNodes = [] - # A list of miscellaneous flags that can be set on the node. - self._flags = [] - - def __str__(self): - attributesStr = " ".join(["%s=\"%s\"" % (name, value) - for name, value in - self.attributes.items()]) - if attributesStr: - return "<%s %s>" % (self.name, attributesStr) - else: - return "<%s>" % (self.name) - - def __repr__(self): - return "<%s>" % (self.name) - - def appendChild(self, node): - """Insert node as a child of the current node - - :arg node: the node to insert - - """ - raise NotImplementedError - - def insertText(self, data, insertBefore=None): - """Insert data as text in the current node, positioned before the - start of node insertBefore or to the end of the node's text. - - :arg data: the data to insert - - :arg insertBefore: True if you want to insert the text before the node - and False if you want to insert it after the node - - """ - raise NotImplementedError - - def insertBefore(self, node, refNode): - """Insert node as a child of the current node, before refNode in the - list of child nodes. Raises ValueError if refNode is not a child of - the current node - - :arg node: the node to insert - - :arg refNode: the child node to insert the node before - - """ - raise NotImplementedError - - def removeChild(self, node): - """Remove node from the children of the current node - - :arg node: the child node to remove - - """ - raise NotImplementedError - - def reparentChildren(self, newParent): - """Move all the children of the current node to newParent. - This is needed so that trees that don't store text as nodes move the - text in the correct way - - :arg newParent: the node to move all this node's children to - - """ - # XXX - should this method be made more general? - for child in self.childNodes: - newParent.appendChild(child) - self.childNodes = [] - - def cloneNode(self): - """Return a shallow copy of the current node i.e. a node with the same - name and attributes but with no parent or child nodes - """ - raise NotImplementedError - - def hasContent(self): - """Return true if the node has children or text, false otherwise - """ - raise NotImplementedError - - -class ActiveFormattingElements(list): - def append(self, node): - equalCount = 0 - if node != Marker: - for element in self[::-1]: - if element == Marker: - break - if self.nodesEqual(element, node): - equalCount += 1 - if equalCount == 3: - self.remove(element) - break - list.append(self, node) - - def nodesEqual(self, node1, node2): - if not node1.nameTuple == node2.nameTuple: - return False - - if not node1.attributes == node2.attributes: - return False - - return True - - -class TreeBuilder(object): - """Base treebuilder implementation - - * documentClass - the class to use for the bottommost node of a document - * elementClass - the class to use for HTML Elements - * commentClass - the class to use for comments - * doctypeClass - the class to use for doctypes - - """ - # pylint:disable=not-callable - - # Document class - documentClass = None - - # The class to use for creating a node - elementClass = None - - # The class to use for creating comments - commentClass = None - - # The class to use for creating doctypes - doctypeClass = None - - # Fragment class - fragmentClass = None - - def __init__(self, namespaceHTMLElements): - """Create a TreeBuilder - - :arg namespaceHTMLElements: whether or not to namespace HTML elements - - """ - if namespaceHTMLElements: - self.defaultNamespace = "http://www.w3.org/1999/xhtml" - else: - self.defaultNamespace = None - self.reset() - - def reset(self): - self.openElements = [] - self.activeFormattingElements = ActiveFormattingElements() - - # XXX - rename these to headElement, formElement - self.headPointer = None - self.formPointer = None - - self.insertFromTable = False - - self.document = self.documentClass() - - def elementInScope(self, target, variant=None): - - # If we pass a node in we match that. if we pass a string - # match any node with that name - exactNode = hasattr(target, "nameTuple") - if not exactNode: - if isinstance(target, text_type): - target = (namespaces["html"], target) - assert isinstance(target, tuple) - - listElements, invert = listElementsMap[variant] - - for node in reversed(self.openElements): - if exactNode and node == target: - return True - elif not exactNode and node.nameTuple == target: - return True - elif (invert ^ (node.nameTuple in listElements)): - return False - - assert False # We should never reach this point - - def reconstructActiveFormattingElements(self): - # Within this algorithm the order of steps described in the - # specification is not quite the same as the order of steps in the - # code. It should still do the same though. - - # Step 1: stop the algorithm when there's nothing to do. - if not self.activeFormattingElements: - return - - # Step 2 and step 3: we start with the last element. So i is -1. - i = len(self.activeFormattingElements) - 1 - entry = self.activeFormattingElements[i] - if entry == Marker or entry in self.openElements: - return - - # Step 6 - while entry != Marker and entry not in self.openElements: - if i == 0: - # This will be reset to 0 below - i = -1 - break - i -= 1 - # Step 5: let entry be one earlier in the list. - entry = self.activeFormattingElements[i] - - while True: - # Step 7 - i += 1 - - # Step 8 - entry = self.activeFormattingElements[i] - clone = entry.cloneNode() # Mainly to get a new copy of the attributes - - # Step 9 - element = self.insertElement({"type": "StartTag", - "name": clone.name, - "namespace": clone.namespace, - "data": clone.attributes}) - - # Step 10 - self.activeFormattingElements[i] = element - - # Step 11 - if element == self.activeFormattingElements[-1]: - break - - def clearActiveFormattingElements(self): - entry = self.activeFormattingElements.pop() - while self.activeFormattingElements and entry != Marker: - entry = self.activeFormattingElements.pop() - - def elementInActiveFormattingElements(self, name): - """Check if an element exists between the end of the active - formatting elements and the last marker. If it does, return it, else - return false""" - - for item in self.activeFormattingElements[::-1]: - # Check for Marker first because if it's a Marker it doesn't have a - # name attribute. - if item == Marker: - break - elif item.name == name: - return item - return False - - def insertRoot(self, token): - element = self.createElement(token) - self.openElements.append(element) - self.document.appendChild(element) - - def insertDoctype(self, token): - name = token["name"] - publicId = token["publicId"] - systemId = token["systemId"] - - doctype = self.doctypeClass(name, publicId, systemId) - self.document.appendChild(doctype) - - def insertComment(self, token, parent=None): - if parent is None: - parent = self.openElements[-1] - parent.appendChild(self.commentClass(token["data"])) - - def createElement(self, token): - """Create an element but don't insert it anywhere""" - name = token["name"] - namespace = token.get("namespace", self.defaultNamespace) - element = self.elementClass(name, namespace) - element.attributes = token["data"] - return element - - def _getInsertFromTable(self): - return self._insertFromTable - - def _setInsertFromTable(self, value): - """Switch the function used to insert an element from the - normal one to the misnested table one and back again""" - self._insertFromTable = value - if value: - self.insertElement = self.insertElementTable - else: - self.insertElement = self.insertElementNormal - - insertFromTable = property(_getInsertFromTable, _setInsertFromTable) - - def insertElementNormal(self, token): - name = token["name"] - assert isinstance(name, text_type), "Element %s not unicode" % name - namespace = token.get("namespace", self.defaultNamespace) - element = self.elementClass(name, namespace) - element.attributes = token["data"] - self.openElements[-1].appendChild(element) - self.openElements.append(element) - return element - - def insertElementTable(self, token): - """Create an element and insert it into the tree""" - element = self.createElement(token) - if self.openElements[-1].name not in tableInsertModeElements: - return self.insertElementNormal(token) - else: - # We should be in the InTable mode. This means we want to do - # special magic element rearranging - parent, insertBefore = self.getTableMisnestedNodePosition() - if insertBefore is None: - parent.appendChild(element) - else: - parent.insertBefore(element, insertBefore) - self.openElements.append(element) - return element - - def insertText(self, data, parent=None): - """Insert text data.""" - if parent is None: - parent = self.openElements[-1] - - if (not self.insertFromTable or (self.insertFromTable and - self.openElements[-1].name - not in tableInsertModeElements)): - parent.insertText(data) - else: - # We should be in the InTable mode. This means we want to do - # special magic element rearranging - parent, insertBefore = self.getTableMisnestedNodePosition() - parent.insertText(data, insertBefore) - - def getTableMisnestedNodePosition(self): - """Get the foster parent element, and sibling to insert before - (or None) when inserting a misnested table node""" - # The foster parent element is the one which comes before the most - # recently opened table element - # XXX - this is really inelegant - lastTable = None - fosterParent = None - insertBefore = None - for elm in self.openElements[::-1]: - if elm.name == "table": - lastTable = elm - break - if lastTable: - # XXX - we should really check that this parent is actually a - # node here - if lastTable.parent: - fosterParent = lastTable.parent - insertBefore = lastTable - else: - fosterParent = self.openElements[ - self.openElements.index(lastTable) - 1] - else: - fosterParent = self.openElements[0] - return fosterParent, insertBefore - - def generateImpliedEndTags(self, exclude=None): - name = self.openElements[-1].name - # XXX td, th and tr are not actually needed - if (name in frozenset(("dd", "dt", "li", "option", "optgroup", "p", "rp", "rt")) and - name != exclude): - self.openElements.pop() - # XXX This is not entirely what the specification says. We should - # investigate it more closely. - self.generateImpliedEndTags(exclude) - - def getDocument(self): - """Return the final tree""" - return self.document - - def getFragment(self): - """Return the final fragment""" - # assert self.innerHTML - fragment = self.fragmentClass() - self.openElements[0].reparentChildren(fragment) - return fragment - - def testSerializer(self, node): - """Serialize the subtree of node in the format required by unit tests - - :arg node: the node from which to start serializing - - """ - raise NotImplementedError diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/dom.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/dom.py deleted file mode 100644 index dcfac22..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/dom.py +++ /dev/null @@ -1,236 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - - -from collections import MutableMapping -from xml.dom import minidom, Node -import weakref - -from . import base -from .. import constants -from ..constants import namespaces -from .._utils import moduleFactoryFactory - - -def getDomBuilder(DomImplementation): - Dom = DomImplementation - - class AttrList(MutableMapping): - def __init__(self, element): - self.element = element - - def __iter__(self): - return iter(self.element.attributes.keys()) - - def __setitem__(self, name, value): - if isinstance(name, tuple): - raise NotImplementedError - else: - attr = self.element.ownerDocument.createAttribute(name) - attr.value = value - self.element.attributes[name] = attr - - def __len__(self): - return len(self.element.attributes) - - def items(self): - return list(self.element.attributes.items()) - - def values(self): - return list(self.element.attributes.values()) - - def __getitem__(self, name): - if isinstance(name, tuple): - raise NotImplementedError - else: - return self.element.attributes[name].value - - def __delitem__(self, name): - if isinstance(name, tuple): - raise NotImplementedError - else: - del self.element.attributes[name] - - class NodeBuilder(base.Node): - def __init__(self, element): - base.Node.__init__(self, element.nodeName) - self.element = element - - namespace = property(lambda self: hasattr(self.element, "namespaceURI") and - self.element.namespaceURI or None) - - def appendChild(self, node): - node.parent = self - self.element.appendChild(node.element) - - def insertText(self, data, insertBefore=None): - text = self.element.ownerDocument.createTextNode(data) - if insertBefore: - self.element.insertBefore(text, insertBefore.element) - else: - self.element.appendChild(text) - - def insertBefore(self, node, refNode): - self.element.insertBefore(node.element, refNode.element) - node.parent = self - - def removeChild(self, node): - if node.element.parentNode == self.element: - self.element.removeChild(node.element) - node.parent = None - - def reparentChildren(self, newParent): - while self.element.hasChildNodes(): - child = self.element.firstChild - self.element.removeChild(child) - newParent.element.appendChild(child) - self.childNodes = [] - - def getAttributes(self): - return AttrList(self.element) - - def setAttributes(self, attributes): - if attributes: - for name, value in list(attributes.items()): - if isinstance(name, tuple): - if name[0] is not None: - qualifiedName = (name[0] + ":" + name[1]) - else: - qualifiedName = name[1] - self.element.setAttributeNS(name[2], qualifiedName, - value) - else: - self.element.setAttribute( - name, value) - attributes = property(getAttributes, setAttributes) - - def cloneNode(self): - return NodeBuilder(self.element.cloneNode(False)) - - def hasContent(self): - return self.element.hasChildNodes() - - def getNameTuple(self): - if self.namespace is None: - return namespaces["html"], self.name - else: - return self.namespace, self.name - - nameTuple = property(getNameTuple) - - class TreeBuilder(base.TreeBuilder): # pylint:disable=unused-variable - def documentClass(self): - self.dom = Dom.getDOMImplementation().createDocument(None, None, None) - return weakref.proxy(self) - - def insertDoctype(self, token): - name = token["name"] - publicId = token["publicId"] - systemId = token["systemId"] - - domimpl = Dom.getDOMImplementation() - doctype = domimpl.createDocumentType(name, publicId, systemId) - self.document.appendChild(NodeBuilder(doctype)) - if Dom == minidom: - doctype.ownerDocument = self.dom - - def elementClass(self, name, namespace=None): - if namespace is None and self.defaultNamespace is None: - node = self.dom.createElement(name) - else: - node = self.dom.createElementNS(namespace, name) - - return NodeBuilder(node) - - def commentClass(self, data): - return NodeBuilder(self.dom.createComment(data)) - - def fragmentClass(self): - return NodeBuilder(self.dom.createDocumentFragment()) - - def appendChild(self, node): - self.dom.appendChild(node.element) - - def testSerializer(self, element): - return testSerializer(element) - - def getDocument(self): - return self.dom - - def getFragment(self): - return base.TreeBuilder.getFragment(self).element - - def insertText(self, data, parent=None): - data = data - if parent != self: - base.TreeBuilder.insertText(self, data, parent) - else: - # HACK: allow text nodes as children of the document node - if hasattr(self.dom, '_child_node_types'): - # pylint:disable=protected-access - if Node.TEXT_NODE not in self.dom._child_node_types: - self.dom._child_node_types = list(self.dom._child_node_types) - self.dom._child_node_types.append(Node.TEXT_NODE) - self.dom.appendChild(self.dom.createTextNode(data)) - - implementation = DomImplementation - name = None - - def testSerializer(element): - element.normalize() - rv = [] - - def serializeElement(element, indent=0): - if element.nodeType == Node.DOCUMENT_TYPE_NODE: - if element.name: - if element.publicId or element.systemId: - publicId = element.publicId or "" - systemId = element.systemId or "" - rv.append("""|%s<!DOCTYPE %s "%s" "%s">""" % - (' ' * indent, element.name, publicId, systemId)) - else: - rv.append("|%s<!DOCTYPE %s>" % (' ' * indent, element.name)) - else: - rv.append("|%s<!DOCTYPE >" % (' ' * indent,)) - elif element.nodeType == Node.DOCUMENT_NODE: - rv.append("#document") - elif element.nodeType == Node.DOCUMENT_FRAGMENT_NODE: - rv.append("#document-fragment") - elif element.nodeType == Node.COMMENT_NODE: - rv.append("|%s<!-- %s -->" % (' ' * indent, element.nodeValue)) - elif element.nodeType == Node.TEXT_NODE: - rv.append("|%s\"%s\"" % (' ' * indent, element.nodeValue)) - else: - if (hasattr(element, "namespaceURI") and - element.namespaceURI is not None): - name = "%s %s" % (constants.prefixes[element.namespaceURI], - element.nodeName) - else: - name = element.nodeName - rv.append("|%s<%s>" % (' ' * indent, name)) - if element.hasAttributes(): - attributes = [] - for i in range(len(element.attributes)): - attr = element.attributes.item(i) - name = attr.nodeName - value = attr.value - ns = attr.namespaceURI - if ns: - name = "%s %s" % (constants.prefixes[ns], attr.localName) - else: - name = attr.nodeName - attributes.append((name, value)) - - for name, value in sorted(attributes): - rv.append('|%s%s="%s"' % (' ' * (indent + 2), name, value)) - indent += 2 - for child in element.childNodes: - serializeElement(child, indent) - serializeElement(element, 0) - - return "\n".join(rv) - - return locals() - - -# The actual means to get a module! -getDomModule = moduleFactoryFactory(getDomBuilder) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree.py deleted file mode 100644 index 0dedf44..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree.py +++ /dev/null @@ -1,340 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals -# pylint:disable=protected-access - -from pip._vendor.six import text_type - -import re - -from . import base -from .. import _ihatexml -from .. import constants -from ..constants import namespaces -from .._utils import moduleFactoryFactory - -tag_regexp = re.compile("{([^}]*)}(.*)") - - -def getETreeBuilder(ElementTreeImplementation, fullTree=False): - ElementTree = ElementTreeImplementation - ElementTreeCommentType = ElementTree.Comment("asd").tag - - class Element(base.Node): - def __init__(self, name, namespace=None): - self._name = name - self._namespace = namespace - self._element = ElementTree.Element(self._getETreeTag(name, - namespace)) - if namespace is None: - self.nameTuple = namespaces["html"], self._name - else: - self.nameTuple = self._namespace, self._name - self.parent = None - self._childNodes = [] - self._flags = [] - - def _getETreeTag(self, name, namespace): - if namespace is None: - etree_tag = name - else: - etree_tag = "{%s}%s" % (namespace, name) - return etree_tag - - def _setName(self, name): - self._name = name - self._element.tag = self._getETreeTag(self._name, self._namespace) - - def _getName(self): - return self._name - - name = property(_getName, _setName) - - def _setNamespace(self, namespace): - self._namespace = namespace - self._element.tag = self._getETreeTag(self._name, self._namespace) - - def _getNamespace(self): - return self._namespace - - namespace = property(_getNamespace, _setNamespace) - - def _getAttributes(self): - return self._element.attrib - - def _setAttributes(self, attributes): - # Delete existing attributes first - # XXX - there may be a better way to do this... - for key in list(self._element.attrib.keys()): - del self._element.attrib[key] - for key, value in attributes.items(): - if isinstance(key, tuple): - name = "{%s}%s" % (key[2], key[1]) - else: - name = key - self._element.set(name, value) - - attributes = property(_getAttributes, _setAttributes) - - def _getChildNodes(self): - return self._childNodes - - def _setChildNodes(self, value): - del self._element[:] - self._childNodes = [] - for element in value: - self.insertChild(element) - - childNodes = property(_getChildNodes, _setChildNodes) - - def hasContent(self): - """Return true if the node has children or text""" - return bool(self._element.text or len(self._element)) - - def appendChild(self, node): - self._childNodes.append(node) - self._element.append(node._element) - node.parent = self - - def insertBefore(self, node, refNode): - index = list(self._element).index(refNode._element) - self._element.insert(index, node._element) - node.parent = self - - def removeChild(self, node): - self._childNodes.remove(node) - self._element.remove(node._element) - node.parent = None - - def insertText(self, data, insertBefore=None): - if not(len(self._element)): - if not self._element.text: - self._element.text = "" - self._element.text += data - elif insertBefore is None: - # Insert the text as the tail of the last child element - if not self._element[-1].tail: - self._element[-1].tail = "" - self._element[-1].tail += data - else: - # Insert the text before the specified node - children = list(self._element) - index = children.index(insertBefore._element) - if index > 0: - if not self._element[index - 1].tail: - self._element[index - 1].tail = "" - self._element[index - 1].tail += data - else: - if not self._element.text: - self._element.text = "" - self._element.text += data - - def cloneNode(self): - element = type(self)(self.name, self.namespace) - for name, value in self.attributes.items(): - element.attributes[name] = value - return element - - def reparentChildren(self, newParent): - if newParent.childNodes: - newParent.childNodes[-1]._element.tail += self._element.text - else: - if not newParent._element.text: - newParent._element.text = "" - if self._element.text is not None: - newParent._element.text += self._element.text - self._element.text = "" - base.Node.reparentChildren(self, newParent) - - class Comment(Element): - def __init__(self, data): - # Use the superclass constructor to set all properties on the - # wrapper element - self._element = ElementTree.Comment(data) - self.parent = None - self._childNodes = [] - self._flags = [] - - def _getData(self): - return self._element.text - - def _setData(self, value): - self._element.text = value - - data = property(_getData, _setData) - - class DocumentType(Element): - def __init__(self, name, publicId, systemId): - Element.__init__(self, "<!DOCTYPE>") - self._element.text = name - self.publicId = publicId - self.systemId = systemId - - def _getPublicId(self): - return self._element.get("publicId", "") - - def _setPublicId(self, value): - if value is not None: - self._element.set("publicId", value) - - publicId = property(_getPublicId, _setPublicId) - - def _getSystemId(self): - return self._element.get("systemId", "") - - def _setSystemId(self, value): - if value is not None: - self._element.set("systemId", value) - - systemId = property(_getSystemId, _setSystemId) - - class Document(Element): - def __init__(self): - Element.__init__(self, "DOCUMENT_ROOT") - - class DocumentFragment(Element): - def __init__(self): - Element.__init__(self, "DOCUMENT_FRAGMENT") - - def testSerializer(element): - rv = [] - - def serializeElement(element, indent=0): - if not(hasattr(element, "tag")): - element = element.getroot() - if element.tag == "<!DOCTYPE>": - if element.get("publicId") or element.get("systemId"): - publicId = element.get("publicId") or "" - systemId = element.get("systemId") or "" - rv.append("""<!DOCTYPE %s "%s" "%s">""" % - (element.text, publicId, systemId)) - else: - rv.append("<!DOCTYPE %s>" % (element.text,)) - elif element.tag == "DOCUMENT_ROOT": - rv.append("#document") - if element.text is not None: - rv.append("|%s\"%s\"" % (' ' * (indent + 2), element.text)) - if element.tail is not None: - raise TypeError("Document node cannot have tail") - if hasattr(element, "attrib") and len(element.attrib): - raise TypeError("Document node cannot have attributes") - elif element.tag == ElementTreeCommentType: - rv.append("|%s<!-- %s -->" % (' ' * indent, element.text)) - else: - assert isinstance(element.tag, text_type), \ - "Expected unicode, got %s, %s" % (type(element.tag), element.tag) - nsmatch = tag_regexp.match(element.tag) - - if nsmatch is None: - name = element.tag - else: - ns, name = nsmatch.groups() - prefix = constants.prefixes[ns] - name = "%s %s" % (prefix, name) - rv.append("|%s<%s>" % (' ' * indent, name)) - - if hasattr(element, "attrib"): - attributes = [] - for name, value in element.attrib.items(): - nsmatch = tag_regexp.match(name) - if nsmatch is not None: - ns, name = nsmatch.groups() - prefix = constants.prefixes[ns] - attr_string = "%s %s" % (prefix, name) - else: - attr_string = name - attributes.append((attr_string, value)) - - for name, value in sorted(attributes): - rv.append('|%s%s="%s"' % (' ' * (indent + 2), name, value)) - if element.text: - rv.append("|%s\"%s\"" % (' ' * (indent + 2), element.text)) - indent += 2 - for child in element: - serializeElement(child, indent) - if element.tail: - rv.append("|%s\"%s\"" % (' ' * (indent - 2), element.tail)) - serializeElement(element, 0) - - return "\n".join(rv) - - def tostring(element): # pylint:disable=unused-variable - """Serialize an element and its child nodes to a string""" - rv = [] - filter = _ihatexml.InfosetFilter() - - def serializeElement(element): - if isinstance(element, ElementTree.ElementTree): - element = element.getroot() - - if element.tag == "<!DOCTYPE>": - if element.get("publicId") or element.get("systemId"): - publicId = element.get("publicId") or "" - systemId = element.get("systemId") or "" - rv.append("""<!DOCTYPE %s PUBLIC "%s" "%s">""" % - (element.text, publicId, systemId)) - else: - rv.append("<!DOCTYPE %s>" % (element.text,)) - elif element.tag == "DOCUMENT_ROOT": - if element.text is not None: - rv.append(element.text) - if element.tail is not None: - raise TypeError("Document node cannot have tail") - if hasattr(element, "attrib") and len(element.attrib): - raise TypeError("Document node cannot have attributes") - - for child in element: - serializeElement(child) - - elif element.tag == ElementTreeCommentType: - rv.append("<!--%s-->" % (element.text,)) - else: - # This is assumed to be an ordinary element - if not element.attrib: - rv.append("<%s>" % (filter.fromXmlName(element.tag),)) - else: - attr = " ".join(["%s=\"%s\"" % ( - filter.fromXmlName(name), value) - for name, value in element.attrib.items()]) - rv.append("<%s %s>" % (element.tag, attr)) - if element.text: - rv.append(element.text) - - for child in element: - serializeElement(child) - - rv.append("</%s>" % (element.tag,)) - - if element.tail: - rv.append(element.tail) - - serializeElement(element) - - return "".join(rv) - - class TreeBuilder(base.TreeBuilder): # pylint:disable=unused-variable - documentClass = Document - doctypeClass = DocumentType - elementClass = Element - commentClass = Comment - fragmentClass = DocumentFragment - implementation = ElementTreeImplementation - - def testSerializer(self, element): - return testSerializer(element) - - def getDocument(self): - if fullTree: - return self.document._element - else: - if self.defaultNamespace is not None: - return self.document._element.find( - "{%s}html" % self.defaultNamespace) - else: - return self.document._element.find("html") - - def getFragment(self): - return base.TreeBuilder.getFragment(self)._element - - return locals() - - -getETreeModule = moduleFactoryFactory(getETreeBuilder) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py deleted file mode 100644 index ca12a99..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py +++ /dev/null @@ -1,366 +0,0 @@ -"""Module for supporting the lxml.etree library. The idea here is to use as much -of the native library as possible, without using fragile hacks like custom element -names that break between releases. The downside of this is that we cannot represent -all possible trees; specifically the following are known to cause problems: - -Text or comments as siblings of the root element -Docypes with no name - -When any of these things occur, we emit a DataLossWarning -""" - -from __future__ import absolute_import, division, unicode_literals -# pylint:disable=protected-access - -import warnings -import re -import sys - -from . import base -from ..constants import DataLossWarning -from .. import constants -from . import etree as etree_builders -from .. import _ihatexml - -import lxml.etree as etree - - -fullTree = True -tag_regexp = re.compile("{([^}]*)}(.*)") - -comment_type = etree.Comment("asd").tag - - -class DocumentType(object): - def __init__(self, name, publicId, systemId): - self.name = name - self.publicId = publicId - self.systemId = systemId - - -class Document(object): - def __init__(self): - self._elementTree = None - self._childNodes = [] - - def appendChild(self, element): - self._elementTree.getroot().addnext(element._element) - - def _getChildNodes(self): - return self._childNodes - - childNodes = property(_getChildNodes) - - -def testSerializer(element): - rv = [] - infosetFilter = _ihatexml.InfosetFilter(preventDoubleDashComments=True) - - def serializeElement(element, indent=0): - if not hasattr(element, "tag"): - if hasattr(element, "getroot"): - # Full tree case - rv.append("#document") - if element.docinfo.internalDTD: - if not (element.docinfo.public_id or - element.docinfo.system_url): - dtd_str = "<!DOCTYPE %s>" % element.docinfo.root_name - else: - dtd_str = """<!DOCTYPE %s "%s" "%s">""" % ( - element.docinfo.root_name, - element.docinfo.public_id, - element.docinfo.system_url) - rv.append("|%s%s" % (' ' * (indent + 2), dtd_str)) - next_element = element.getroot() - while next_element.getprevious() is not None: - next_element = next_element.getprevious() - while next_element is not None: - serializeElement(next_element, indent + 2) - next_element = next_element.getnext() - elif isinstance(element, str) or isinstance(element, bytes): - # Text in a fragment - assert isinstance(element, str) or sys.version_info[0] == 2 - rv.append("|%s\"%s\"" % (' ' * indent, element)) - else: - # Fragment case - rv.append("#document-fragment") - for next_element in element: - serializeElement(next_element, indent + 2) - elif element.tag == comment_type: - rv.append("|%s<!-- %s -->" % (' ' * indent, element.text)) - if hasattr(element, "tail") and element.tail: - rv.append("|%s\"%s\"" % (' ' * indent, element.tail)) - else: - assert isinstance(element, etree._Element) - nsmatch = etree_builders.tag_regexp.match(element.tag) - if nsmatch is not None: - ns = nsmatch.group(1) - tag = nsmatch.group(2) - prefix = constants.prefixes[ns] - rv.append("|%s<%s %s>" % (' ' * indent, prefix, - infosetFilter.fromXmlName(tag))) - else: - rv.append("|%s<%s>" % (' ' * indent, - infosetFilter.fromXmlName(element.tag))) - - if hasattr(element, "attrib"): - attributes = [] - for name, value in element.attrib.items(): - nsmatch = tag_regexp.match(name) - if nsmatch is not None: - ns, name = nsmatch.groups() - name = infosetFilter.fromXmlName(name) - prefix = constants.prefixes[ns] - attr_string = "%s %s" % (prefix, name) - else: - attr_string = infosetFilter.fromXmlName(name) - attributes.append((attr_string, value)) - - for name, value in sorted(attributes): - rv.append('|%s%s="%s"' % (' ' * (indent + 2), name, value)) - - if element.text: - rv.append("|%s\"%s\"" % (' ' * (indent + 2), element.text)) - indent += 2 - for child in element: - serializeElement(child, indent) - if hasattr(element, "tail") and element.tail: - rv.append("|%s\"%s\"" % (' ' * (indent - 2), element.tail)) - serializeElement(element, 0) - - return "\n".join(rv) - - -def tostring(element): - """Serialize an element and its child nodes to a string""" - rv = [] - - def serializeElement(element): - if not hasattr(element, "tag"): - if element.docinfo.internalDTD: - if element.docinfo.doctype: - dtd_str = element.docinfo.doctype - else: - dtd_str = "<!DOCTYPE %s>" % element.docinfo.root_name - rv.append(dtd_str) - serializeElement(element.getroot()) - - elif element.tag == comment_type: - rv.append("<!--%s-->" % (element.text,)) - - else: - # This is assumed to be an ordinary element - if not element.attrib: - rv.append("<%s>" % (element.tag,)) - else: - attr = " ".join(["%s=\"%s\"" % (name, value) - for name, value in element.attrib.items()]) - rv.append("<%s %s>" % (element.tag, attr)) - if element.text: - rv.append(element.text) - - for child in element: - serializeElement(child) - - rv.append("</%s>" % (element.tag,)) - - if hasattr(element, "tail") and element.tail: - rv.append(element.tail) - - serializeElement(element) - - return "".join(rv) - - -class TreeBuilder(base.TreeBuilder): - documentClass = Document - doctypeClass = DocumentType - elementClass = None - commentClass = None - fragmentClass = Document - implementation = etree - - def __init__(self, namespaceHTMLElements, fullTree=False): - builder = etree_builders.getETreeModule(etree, fullTree=fullTree) - infosetFilter = self.infosetFilter = _ihatexml.InfosetFilter(preventDoubleDashComments=True) - self.namespaceHTMLElements = namespaceHTMLElements - - class Attributes(dict): - def __init__(self, element, value=None): - if value is None: - value = {} - self._element = element - dict.__init__(self, value) # pylint:disable=non-parent-init-called - for key, value in self.items(): - if isinstance(key, tuple): - name = "{%s}%s" % (key[2], infosetFilter.coerceAttribute(key[1])) - else: - name = infosetFilter.coerceAttribute(key) - self._element._element.attrib[name] = value - - def __setitem__(self, key, value): - dict.__setitem__(self, key, value) - if isinstance(key, tuple): - name = "{%s}%s" % (key[2], infosetFilter.coerceAttribute(key[1])) - else: - name = infosetFilter.coerceAttribute(key) - self._element._element.attrib[name] = value - - class Element(builder.Element): - def __init__(self, name, namespace): - name = infosetFilter.coerceElement(name) - builder.Element.__init__(self, name, namespace=namespace) - self._attributes = Attributes(self) - - def _setName(self, name): - self._name = infosetFilter.coerceElement(name) - self._element.tag = self._getETreeTag( - self._name, self._namespace) - - def _getName(self): - return infosetFilter.fromXmlName(self._name) - - name = property(_getName, _setName) - - def _getAttributes(self): - return self._attributes - - def _setAttributes(self, attributes): - self._attributes = Attributes(self, attributes) - - attributes = property(_getAttributes, _setAttributes) - - def insertText(self, data, insertBefore=None): - data = infosetFilter.coerceCharacters(data) - builder.Element.insertText(self, data, insertBefore) - - def appendChild(self, child): - builder.Element.appendChild(self, child) - - class Comment(builder.Comment): - def __init__(self, data): - data = infosetFilter.coerceComment(data) - builder.Comment.__init__(self, data) - - def _setData(self, data): - data = infosetFilter.coerceComment(data) - self._element.text = data - - def _getData(self): - return self._element.text - - data = property(_getData, _setData) - - self.elementClass = Element - self.commentClass = Comment - # self.fragmentClass = builder.DocumentFragment - base.TreeBuilder.__init__(self, namespaceHTMLElements) - - def reset(self): - base.TreeBuilder.reset(self) - self.insertComment = self.insertCommentInitial - self.initial_comments = [] - self.doctype = None - - def testSerializer(self, element): - return testSerializer(element) - - def getDocument(self): - if fullTree: - return self.document._elementTree - else: - return self.document._elementTree.getroot() - - def getFragment(self): - fragment = [] - element = self.openElements[0]._element - if element.text: - fragment.append(element.text) - fragment.extend(list(element)) - if element.tail: - fragment.append(element.tail) - return fragment - - def insertDoctype(self, token): - name = token["name"] - publicId = token["publicId"] - systemId = token["systemId"] - - if not name: - warnings.warn("lxml cannot represent empty doctype", DataLossWarning) - self.doctype = None - else: - coercedName = self.infosetFilter.coerceElement(name) - if coercedName != name: - warnings.warn("lxml cannot represent non-xml doctype", DataLossWarning) - - doctype = self.doctypeClass(coercedName, publicId, systemId) - self.doctype = doctype - - def insertCommentInitial(self, data, parent=None): - assert parent is None or parent is self.document - assert self.document._elementTree is None - self.initial_comments.append(data) - - def insertCommentMain(self, data, parent=None): - if (parent == self.document and - self.document._elementTree.getroot()[-1].tag == comment_type): - warnings.warn("lxml cannot represent adjacent comments beyond the root elements", DataLossWarning) - super(TreeBuilder, self).insertComment(data, parent) - - def insertRoot(self, token): - # Because of the way libxml2 works, it doesn't seem to be possible to - # alter information like the doctype after the tree has been parsed. - # Therefore we need to use the built-in parser to create our initial - # tree, after which we can add elements like normal - docStr = "" - if self.doctype: - assert self.doctype.name - docStr += "<!DOCTYPE %s" % self.doctype.name - if (self.doctype.publicId is not None or - self.doctype.systemId is not None): - docStr += (' PUBLIC "%s" ' % - (self.infosetFilter.coercePubid(self.doctype.publicId or ""))) - if self.doctype.systemId: - sysid = self.doctype.systemId - if sysid.find("'") >= 0 and sysid.find('"') >= 0: - warnings.warn("DOCTYPE system cannot contain single and double quotes", DataLossWarning) - sysid = sysid.replace("'", 'U00027') - if sysid.find("'") >= 0: - docStr += '"%s"' % sysid - else: - docStr += "'%s'" % sysid - else: - docStr += "''" - docStr += ">" - if self.doctype.name != token["name"]: - warnings.warn("lxml cannot represent doctype with a different name to the root element", DataLossWarning) - docStr += "<THIS_SHOULD_NEVER_APPEAR_PUBLICLY/>" - root = etree.fromstring(docStr) - - # Append the initial comments: - for comment_token in self.initial_comments: - comment = self.commentClass(comment_token["data"]) - root.addprevious(comment._element) - - # Create the root document and add the ElementTree to it - self.document = self.documentClass() - self.document._elementTree = root.getroottree() - - # Give the root element the right name - name = token["name"] - namespace = token.get("namespace", self.defaultNamespace) - if namespace is None: - etree_tag = name - else: - etree_tag = "{%s}%s" % (namespace, name) - root.tag = etree_tag - - # Add the root element to the internal child/open data structures - root_element = self.elementClass(name, namespace) - root_element._element = root - self.document._childNodes.append(root_element) - self.openElements.append(root_element) - - # Reset to the default insert comment function - self.insertComment = self.insertCommentMain diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/__init__.py deleted file mode 100644 index 9bec207..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/__init__.py +++ /dev/null @@ -1,154 +0,0 @@ -"""A collection of modules for iterating through different kinds of -tree, generating tokens identical to those produced by the tokenizer -module. - -To create a tree walker for a new type of tree, you need to do -implement a tree walker object (called TreeWalker by convention) that -implements a 'serialize' method taking a tree as sole argument and -returning an iterator generating tokens. -""" - -from __future__ import absolute_import, division, unicode_literals - -from .. import constants -from .._utils import default_etree - -__all__ = ["getTreeWalker", "pprint"] - -treeWalkerCache = {} - - -def getTreeWalker(treeType, implementation=None, **kwargs): - """Get a TreeWalker class for various types of tree with built-in support - - :arg str treeType: the name of the tree type required (case-insensitive). - Supported values are: - - * "dom": The xml.dom.minidom DOM implementation - * "etree": A generic walker for tree implementations exposing an - elementtree-like interface (known to work with ElementTree, - cElementTree and lxml.etree). - * "lxml": Optimized walker for lxml.etree - * "genshi": a Genshi stream - - :arg implementation: A module implementing the tree type e.g. - xml.etree.ElementTree or cElementTree (Currently applies to the "etree" - tree type only). - - :arg kwargs: keyword arguments passed to the etree walker--for other - walkers, this has no effect - - :returns: a TreeWalker class - - """ - - treeType = treeType.lower() - if treeType not in treeWalkerCache: - if treeType == "dom": - from . import dom - treeWalkerCache[treeType] = dom.TreeWalker - elif treeType == "genshi": - from . import genshi - treeWalkerCache[treeType] = genshi.TreeWalker - elif treeType == "lxml": - from . import etree_lxml - treeWalkerCache[treeType] = etree_lxml.TreeWalker - elif treeType == "etree": - from . import etree - if implementation is None: - implementation = default_etree - # XXX: NEVER cache here, caching is done in the etree submodule - return etree.getETreeModule(implementation, **kwargs).TreeWalker - return treeWalkerCache.get(treeType) - - -def concatenateCharacterTokens(tokens): - pendingCharacters = [] - for token in tokens: - type = token["type"] - if type in ("Characters", "SpaceCharacters"): - pendingCharacters.append(token["data"]) - else: - if pendingCharacters: - yield {"type": "Characters", "data": "".join(pendingCharacters)} - pendingCharacters = [] - yield token - if pendingCharacters: - yield {"type": "Characters", "data": "".join(pendingCharacters)} - - -def pprint(walker): - """Pretty printer for tree walkers - - Takes a TreeWalker instance and pretty prints the output of walking the tree. - - :arg walker: a TreeWalker instance - - """ - output = [] - indent = 0 - for token in concatenateCharacterTokens(walker): - type = token["type"] - if type in ("StartTag", "EmptyTag"): - # tag name - if token["namespace"] and token["namespace"] != constants.namespaces["html"]: - if token["namespace"] in constants.prefixes: - ns = constants.prefixes[token["namespace"]] - else: - ns = token["namespace"] - name = "%s %s" % (ns, token["name"]) - else: - name = token["name"] - output.append("%s<%s>" % (" " * indent, name)) - indent += 2 - # attributes (sorted for consistent ordering) - attrs = token["data"] - for (namespace, localname), value in sorted(attrs.items()): - if namespace: - if namespace in constants.prefixes: - ns = constants.prefixes[namespace] - else: - ns = namespace - name = "%s %s" % (ns, localname) - else: - name = localname - output.append("%s%s=\"%s\"" % (" " * indent, name, value)) - # self-closing - if type == "EmptyTag": - indent -= 2 - - elif type == "EndTag": - indent -= 2 - - elif type == "Comment": - output.append("%s<!-- %s -->" % (" " * indent, token["data"])) - - elif type == "Doctype": - if token["name"]: - if token["publicId"]: - output.append("""%s<!DOCTYPE %s "%s" "%s">""" % - (" " * indent, - token["name"], - token["publicId"], - token["systemId"] if token["systemId"] else "")) - elif token["systemId"]: - output.append("""%s<!DOCTYPE %s "" "%s">""" % - (" " * indent, - token["name"], - token["systemId"])) - else: - output.append("%s<!DOCTYPE %s>" % (" " * indent, - token["name"])) - else: - output.append("%s<!DOCTYPE >" % (" " * indent,)) - - elif type == "Characters": - output.append("%s\"%s\"" % (" " * indent, token["data"])) - - elif type == "SpaceCharacters": - assert False, "concatenateCharacterTokens should have got rid of all Space tokens" - - else: - raise ValueError("Unknown token type, %s" % type) - - return "\n".join(output) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/base.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/base.py deleted file mode 100644 index 80c474c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/base.py +++ /dev/null @@ -1,252 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from xml.dom import Node -from ..constants import namespaces, voidElements, spaceCharacters - -__all__ = ["DOCUMENT", "DOCTYPE", "TEXT", "ELEMENT", "COMMENT", "ENTITY", "UNKNOWN", - "TreeWalker", "NonRecursiveTreeWalker"] - -DOCUMENT = Node.DOCUMENT_NODE -DOCTYPE = Node.DOCUMENT_TYPE_NODE -TEXT = Node.TEXT_NODE -ELEMENT = Node.ELEMENT_NODE -COMMENT = Node.COMMENT_NODE -ENTITY = Node.ENTITY_NODE -UNKNOWN = "<#UNKNOWN#>" - -spaceCharacters = "".join(spaceCharacters) - - -class TreeWalker(object): - """Walks a tree yielding tokens - - Tokens are dicts that all have a ``type`` field specifying the type of the - token. - - """ - def __init__(self, tree): - """Creates a TreeWalker - - :arg tree: the tree to walk - - """ - self.tree = tree - - def __iter__(self): - raise NotImplementedError - - def error(self, msg): - """Generates an error token with the given message - - :arg msg: the error message - - :returns: SerializeError token - - """ - return {"type": "SerializeError", "data": msg} - - def emptyTag(self, namespace, name, attrs, hasChildren=False): - """Generates an EmptyTag token - - :arg namespace: the namespace of the token--can be ``None`` - - :arg name: the name of the element - - :arg attrs: the attributes of the element as a dict - - :arg hasChildren: whether or not to yield a SerializationError because - this tag shouldn't have children - - :returns: EmptyTag token - - """ - yield {"type": "EmptyTag", "name": name, - "namespace": namespace, - "data": attrs} - if hasChildren: - yield self.error("Void element has children") - - def startTag(self, namespace, name, attrs): - """Generates a StartTag token - - :arg namespace: the namespace of the token--can be ``None`` - - :arg name: the name of the element - - :arg attrs: the attributes of the element as a dict - - :returns: StartTag token - - """ - return {"type": "StartTag", - "name": name, - "namespace": namespace, - "data": attrs} - - def endTag(self, namespace, name): - """Generates an EndTag token - - :arg namespace: the namespace of the token--can be ``None`` - - :arg name: the name of the element - - :returns: EndTag token - - """ - return {"type": "EndTag", - "name": name, - "namespace": namespace} - - def text(self, data): - """Generates SpaceCharacters and Characters tokens - - Depending on what's in the data, this generates one or more - ``SpaceCharacters`` and ``Characters`` tokens. - - For example: - - >>> from html5lib.treewalkers.base import TreeWalker - >>> # Give it an empty tree just so it instantiates - >>> walker = TreeWalker([]) - >>> list(walker.text('')) - [] - >>> list(walker.text(' ')) - [{u'data': ' ', u'type': u'SpaceCharacters'}] - >>> list(walker.text(' abc ')) # doctest: +NORMALIZE_WHITESPACE - [{u'data': ' ', u'type': u'SpaceCharacters'}, - {u'data': u'abc', u'type': u'Characters'}, - {u'data': u' ', u'type': u'SpaceCharacters'}] - - :arg data: the text data - - :returns: one or more ``SpaceCharacters`` and ``Characters`` tokens - - """ - data = data - middle = data.lstrip(spaceCharacters) - left = data[:len(data) - len(middle)] - if left: - yield {"type": "SpaceCharacters", "data": left} - data = middle - middle = data.rstrip(spaceCharacters) - right = data[len(middle):] - if middle: - yield {"type": "Characters", "data": middle} - if right: - yield {"type": "SpaceCharacters", "data": right} - - def comment(self, data): - """Generates a Comment token - - :arg data: the comment - - :returns: Comment token - - """ - return {"type": "Comment", "data": data} - - def doctype(self, name, publicId=None, systemId=None): - """Generates a Doctype token - - :arg name: - - :arg publicId: - - :arg systemId: - - :returns: the Doctype token - - """ - return {"type": "Doctype", - "name": name, - "publicId": publicId, - "systemId": systemId} - - def entity(self, name): - """Generates an Entity token - - :arg name: the entity name - - :returns: an Entity token - - """ - return {"type": "Entity", "name": name} - - def unknown(self, nodeType): - """Handles unknown node types""" - return self.error("Unknown node type: " + nodeType) - - -class NonRecursiveTreeWalker(TreeWalker): - def getNodeDetails(self, node): - raise NotImplementedError - - def getFirstChild(self, node): - raise NotImplementedError - - def getNextSibling(self, node): - raise NotImplementedError - - def getParentNode(self, node): - raise NotImplementedError - - def __iter__(self): - currentNode = self.tree - while currentNode is not None: - details = self.getNodeDetails(currentNode) - type, details = details[0], details[1:] - hasChildren = False - - if type == DOCTYPE: - yield self.doctype(*details) - - elif type == TEXT: - for token in self.text(*details): - yield token - - elif type == ELEMENT: - namespace, name, attributes, hasChildren = details - if (not namespace or namespace == namespaces["html"]) and name in voidElements: - for token in self.emptyTag(namespace, name, attributes, - hasChildren): - yield token - hasChildren = False - else: - yield self.startTag(namespace, name, attributes) - - elif type == COMMENT: - yield self.comment(details[0]) - - elif type == ENTITY: - yield self.entity(details[0]) - - elif type == DOCUMENT: - hasChildren = True - - else: - yield self.unknown(details[0]) - - if hasChildren: - firstChild = self.getFirstChild(currentNode) - else: - firstChild = None - - if firstChild is not None: - currentNode = firstChild - else: - while currentNode is not None: - details = self.getNodeDetails(currentNode) - type, details = details[0], details[1:] - if type == ELEMENT: - namespace, name, attributes, hasChildren = details - if (namespace and namespace != namespaces["html"]) or name not in voidElements: - yield self.endTag(namespace, name) - if self.tree is currentNode: - currentNode = None - break - nextSibling = self.getNextSibling(currentNode) - if nextSibling is not None: - currentNode = nextSibling - break - else: - currentNode = self.getParentNode(currentNode) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/dom.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/dom.py deleted file mode 100644 index b0c89b0..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/dom.py +++ /dev/null @@ -1,43 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from xml.dom import Node - -from . import base - - -class TreeWalker(base.NonRecursiveTreeWalker): - def getNodeDetails(self, node): - if node.nodeType == Node.DOCUMENT_TYPE_NODE: - return base.DOCTYPE, node.name, node.publicId, node.systemId - - elif node.nodeType in (Node.TEXT_NODE, Node.CDATA_SECTION_NODE): - return base.TEXT, node.nodeValue - - elif node.nodeType == Node.ELEMENT_NODE: - attrs = {} - for attr in list(node.attributes.keys()): - attr = node.getAttributeNode(attr) - if attr.namespaceURI: - attrs[(attr.namespaceURI, attr.localName)] = attr.value - else: - attrs[(None, attr.name)] = attr.value - return (base.ELEMENT, node.namespaceURI, node.nodeName, - attrs, node.hasChildNodes()) - - elif node.nodeType == Node.COMMENT_NODE: - return base.COMMENT, node.nodeValue - - elif node.nodeType in (Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE): - return (base.DOCUMENT,) - - else: - return base.UNKNOWN, node.nodeType - - def getFirstChild(self, node): - return node.firstChild - - def getNextSibling(self, node): - return node.nextSibling - - def getParentNode(self, node): - return node.parentNode diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree.py deleted file mode 100644 index 95fc0c1..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree.py +++ /dev/null @@ -1,130 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from collections import OrderedDict -import re - -from pip._vendor.six import string_types - -from . import base -from .._utils import moduleFactoryFactory - -tag_regexp = re.compile("{([^}]*)}(.*)") - - -def getETreeBuilder(ElementTreeImplementation): - ElementTree = ElementTreeImplementation - ElementTreeCommentType = ElementTree.Comment("asd").tag - - class TreeWalker(base.NonRecursiveTreeWalker): # pylint:disable=unused-variable - """Given the particular ElementTree representation, this implementation, - to avoid using recursion, returns "nodes" as tuples with the following - content: - - 1. The current element - - 2. The index of the element relative to its parent - - 3. A stack of ancestor elements - - 4. A flag "text", "tail" or None to indicate if the current node is a - text node; either the text or tail of the current element (1) - """ - def getNodeDetails(self, node): - if isinstance(node, tuple): # It might be the root Element - elt, _, _, flag = node - if flag in ("text", "tail"): - return base.TEXT, getattr(elt, flag) - else: - node = elt - - if not(hasattr(node, "tag")): - node = node.getroot() - - if node.tag in ("DOCUMENT_ROOT", "DOCUMENT_FRAGMENT"): - return (base.DOCUMENT,) - - elif node.tag == "<!DOCTYPE>": - return (base.DOCTYPE, node.text, - node.get("publicId"), node.get("systemId")) - - elif node.tag == ElementTreeCommentType: - return base.COMMENT, node.text - - else: - assert isinstance(node.tag, string_types), type(node.tag) - # This is assumed to be an ordinary element - match = tag_regexp.match(node.tag) - if match: - namespace, tag = match.groups() - else: - namespace = None - tag = node.tag - attrs = OrderedDict() - for name, value in list(node.attrib.items()): - match = tag_regexp.match(name) - if match: - attrs[(match.group(1), match.group(2))] = value - else: - attrs[(None, name)] = value - return (base.ELEMENT, namespace, tag, - attrs, len(node) or node.text) - - def getFirstChild(self, node): - if isinstance(node, tuple): - element, key, parents, flag = node - else: - element, key, parents, flag = node, None, [], None - - if flag in ("text", "tail"): - return None - else: - if element.text: - return element, key, parents, "text" - elif len(element): - parents.append(element) - return element[0], 0, parents, None - else: - return None - - def getNextSibling(self, node): - if isinstance(node, tuple): - element, key, parents, flag = node - else: - return None - - if flag == "text": - if len(element): - parents.append(element) - return element[0], 0, parents, None - else: - return None - else: - if element.tail and flag != "tail": - return element, key, parents, "tail" - elif key < len(parents[-1]) - 1: - return parents[-1][key + 1], key + 1, parents, None - else: - return None - - def getParentNode(self, node): - if isinstance(node, tuple): - element, key, parents, flag = node - else: - return None - - if flag == "text": - if not parents: - return element - else: - return element, key, parents, None - else: - parent = parents.pop() - if not parents: - return parent - else: - assert list(parents[-1]).count(parent) == 1 - return parent, list(parents[-1]).index(parent), parents, None - - return locals() - -getETreeModule = moduleFactoryFactory(getETreeBuilder) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py deleted file mode 100644 index e81ddf3..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py +++ /dev/null @@ -1,213 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals -from pip._vendor.six import text_type - -from lxml import etree -from ..treebuilders.etree import tag_regexp - -from . import base - -from .. import _ihatexml - - -def ensure_str(s): - if s is None: - return None - elif isinstance(s, text_type): - return s - else: - return s.decode("ascii", "strict") - - -class Root(object): - def __init__(self, et): - self.elementtree = et - self.children = [] - - try: - if et.docinfo.internalDTD: - self.children.append(Doctype(self, - ensure_str(et.docinfo.root_name), - ensure_str(et.docinfo.public_id), - ensure_str(et.docinfo.system_url))) - except AttributeError: - pass - - try: - node = et.getroot() - except AttributeError: - node = et - - while node.getprevious() is not None: - node = node.getprevious() - while node is not None: - self.children.append(node) - node = node.getnext() - - self.text = None - self.tail = None - - def __getitem__(self, key): - return self.children[key] - - def getnext(self): - return None - - def __len__(self): - return 1 - - -class Doctype(object): - def __init__(self, root_node, name, public_id, system_id): - self.root_node = root_node - self.name = name - self.public_id = public_id - self.system_id = system_id - - self.text = None - self.tail = None - - def getnext(self): - return self.root_node.children[1] - - -class FragmentRoot(Root): - def __init__(self, children): - self.children = [FragmentWrapper(self, child) for child in children] - self.text = self.tail = None - - def getnext(self): - return None - - -class FragmentWrapper(object): - def __init__(self, fragment_root, obj): - self.root_node = fragment_root - self.obj = obj - if hasattr(self.obj, 'text'): - self.text = ensure_str(self.obj.text) - else: - self.text = None - if hasattr(self.obj, 'tail'): - self.tail = ensure_str(self.obj.tail) - else: - self.tail = None - - def __getattr__(self, name): - return getattr(self.obj, name) - - def getnext(self): - siblings = self.root_node.children - idx = siblings.index(self) - if idx < len(siblings) - 1: - return siblings[idx + 1] - else: - return None - - def __getitem__(self, key): - return self.obj[key] - - def __bool__(self): - return bool(self.obj) - - def getparent(self): - return None - - def __str__(self): - return str(self.obj) - - def __unicode__(self): - return str(self.obj) - - def __len__(self): - return len(self.obj) - - -class TreeWalker(base.NonRecursiveTreeWalker): - def __init__(self, tree): - # pylint:disable=redefined-variable-type - if isinstance(tree, list): - self.fragmentChildren = set(tree) - tree = FragmentRoot(tree) - else: - self.fragmentChildren = set() - tree = Root(tree) - base.NonRecursiveTreeWalker.__init__(self, tree) - self.filter = _ihatexml.InfosetFilter() - - def getNodeDetails(self, node): - if isinstance(node, tuple): # Text node - node, key = node - assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key - return base.TEXT, ensure_str(getattr(node, key)) - - elif isinstance(node, Root): - return (base.DOCUMENT,) - - elif isinstance(node, Doctype): - return base.DOCTYPE, node.name, node.public_id, node.system_id - - elif isinstance(node, FragmentWrapper) and not hasattr(node, "tag"): - return base.TEXT, ensure_str(node.obj) - - elif node.tag == etree.Comment: - return base.COMMENT, ensure_str(node.text) - - elif node.tag == etree.Entity: - return base.ENTITY, ensure_str(node.text)[1:-1] # strip &; - - else: - # This is assumed to be an ordinary element - match = tag_regexp.match(ensure_str(node.tag)) - if match: - namespace, tag = match.groups() - else: - namespace = None - tag = ensure_str(node.tag) - attrs = {} - for name, value in list(node.attrib.items()): - name = ensure_str(name) - value = ensure_str(value) - match = tag_regexp.match(name) - if match: - attrs[(match.group(1), match.group(2))] = value - else: - attrs[(None, name)] = value - return (base.ELEMENT, namespace, self.filter.fromXmlName(tag), - attrs, len(node) > 0 or node.text) - - def getFirstChild(self, node): - assert not isinstance(node, tuple), "Text nodes have no children" - - assert len(node) or node.text, "Node has no children" - if node.text: - return (node, "text") - else: - return node[0] - - def getNextSibling(self, node): - if isinstance(node, tuple): # Text node - node, key = node - assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key - if key == "text": - # XXX: we cannot use a "bool(node) and node[0] or None" construct here - # because node[0] might evaluate to False if it has no child element - if len(node): - return node[0] - else: - return None - else: # tail - return node.getnext() - - return (node, "tail") if node.tail else node.getnext() - - def getParentNode(self, node): - if isinstance(node, tuple): # Text node - node, key = node - assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key - if key == "text": - return node - # else: fallback to "normal" processing - elif node in self.fragmentChildren: - return None - - return node.getparent() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/genshi.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/genshi.py deleted file mode 100644 index 7483be2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/genshi.py +++ /dev/null @@ -1,69 +0,0 @@ -from __future__ import absolute_import, division, unicode_literals - -from genshi.core import QName -from genshi.core import START, END, XML_NAMESPACE, DOCTYPE, TEXT -from genshi.core import START_NS, END_NS, START_CDATA, END_CDATA, PI, COMMENT - -from . import base - -from ..constants import voidElements, namespaces - - -class TreeWalker(base.TreeWalker): - def __iter__(self): - # Buffer the events so we can pass in the following one - previous = None - for event in self.tree: - if previous is not None: - for token in self.tokens(previous, event): - yield token - previous = event - - # Don't forget the final event! - if previous is not None: - for token in self.tokens(previous, None): - yield token - - def tokens(self, event, next): - kind, data, _ = event - if kind == START: - tag, attribs = data - name = tag.localname - namespace = tag.namespace - converted_attribs = {} - for k, v in attribs: - if isinstance(k, QName): - converted_attribs[(k.namespace, k.localname)] = v - else: - converted_attribs[(None, k)] = v - - if namespace == namespaces["html"] and name in voidElements: - for token in self.emptyTag(namespace, name, converted_attribs, - not next or next[0] != END or - next[1] != tag): - yield token - else: - yield self.startTag(namespace, name, converted_attribs) - - elif kind == END: - name = data.localname - namespace = data.namespace - if namespace != namespaces["html"] or name not in voidElements: - yield self.endTag(namespace, name) - - elif kind == COMMENT: - yield self.comment(data) - - elif kind == TEXT: - for token in self.text(data): - yield token - - elif kind == DOCTYPE: - yield self.doctype(*data) - - elif kind in (XML_NAMESPACE, DOCTYPE, START_NS, END_NS, - START_CDATA, END_CDATA, PI): - pass - - else: - yield self.unknown(kind) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/__init__.py deleted file mode 100644 index 847bf93..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .package_data import __version__ -from .core import * diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/codec.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/codec.py deleted file mode 100644 index 98c65ea..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/codec.py +++ /dev/null @@ -1,118 +0,0 @@ -from .core import encode, decode, alabel, ulabel, IDNAError -import codecs -import re - -_unicode_dots_re = re.compile(u'[\u002e\u3002\uff0e\uff61]') - -class Codec(codecs.Codec): - - def encode(self, data, errors='strict'): - - if errors != 'strict': - raise IDNAError("Unsupported error handling \"{0}\"".format(errors)) - - if not data: - return "", 0 - - return encode(data), len(data) - - def decode(self, data, errors='strict'): - - if errors != 'strict': - raise IDNAError("Unsupported error handling \"{0}\"".format(errors)) - - if not data: - return u"", 0 - - return decode(data), len(data) - -class IncrementalEncoder(codecs.BufferedIncrementalEncoder): - def _buffer_encode(self, data, errors, final): - if errors != 'strict': - raise IDNAError("Unsupported error handling \"{0}\"".format(errors)) - - if not data: - return ("", 0) - - labels = _unicode_dots_re.split(data) - trailing_dot = u'' - if labels: - if not labels[-1]: - trailing_dot = '.' - del labels[-1] - elif not final: - # Keep potentially unfinished label until the next call - del labels[-1] - if labels: - trailing_dot = '.' - - result = [] - size = 0 - for label in labels: - result.append(alabel(label)) - if size: - size += 1 - size += len(label) - - # Join with U+002E - result = ".".join(result) + trailing_dot - size += len(trailing_dot) - return (result, size) - -class IncrementalDecoder(codecs.BufferedIncrementalDecoder): - def _buffer_decode(self, data, errors, final): - if errors != 'strict': - raise IDNAError("Unsupported error handling \"{0}\"".format(errors)) - - if not data: - return (u"", 0) - - # IDNA allows decoding to operate on Unicode strings, too. - if isinstance(data, unicode): - labels = _unicode_dots_re.split(data) - else: - # Must be ASCII string - data = str(data) - unicode(data, "ascii") - labels = data.split(".") - - trailing_dot = u'' - if labels: - if not labels[-1]: - trailing_dot = u'.' - del labels[-1] - elif not final: - # Keep potentially unfinished label until the next call - del labels[-1] - if labels: - trailing_dot = u'.' - - result = [] - size = 0 - for label in labels: - result.append(ulabel(label)) - if size: - size += 1 - size += len(label) - - result = u".".join(result) + trailing_dot - size += len(trailing_dot) - return (result, size) - - -class StreamWriter(Codec, codecs.StreamWriter): - pass - -class StreamReader(Codec, codecs.StreamReader): - pass - -def getregentry(): - return codecs.CodecInfo( - name='idna', - encode=Codec().encode, - decode=Codec().decode, - incrementalencoder=IncrementalEncoder, - incrementaldecoder=IncrementalDecoder, - streamwriter=StreamWriter, - streamreader=StreamReader, - ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/compat.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/compat.py deleted file mode 100644 index 4d47f33..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/compat.py +++ /dev/null @@ -1,12 +0,0 @@ -from .core import * -from .codec import * - -def ToASCII(label): - return encode(label) - -def ToUnicode(label): - return decode(label) - -def nameprep(s): - raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol") - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/core.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/core.py deleted file mode 100644 index 104624a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/core.py +++ /dev/null @@ -1,396 +0,0 @@ -from . import idnadata -import bisect -import unicodedata -import re -import sys -from .intranges import intranges_contain - -_virama_combining_class = 9 -_alabel_prefix = b'xn--' -_unicode_dots_re = re.compile(u'[\u002e\u3002\uff0e\uff61]') - -if sys.version_info[0] == 3: - unicode = str - unichr = chr - -class IDNAError(UnicodeError): - """ Base exception for all IDNA-encoding related problems """ - pass - - -class IDNABidiError(IDNAError): - """ Exception when bidirectional requirements are not satisfied """ - pass - - -class InvalidCodepoint(IDNAError): - """ Exception when a disallowed or unallocated codepoint is used """ - pass - - -class InvalidCodepointContext(IDNAError): - """ Exception when the codepoint is not valid in the context it is used """ - pass - - -def _combining_class(cp): - v = unicodedata.combining(unichr(cp)) - if v == 0: - if not unicodedata.name(unichr(cp)): - raise ValueError("Unknown character in unicodedata") - return v - -def _is_script(cp, script): - return intranges_contain(ord(cp), idnadata.scripts[script]) - -def _punycode(s): - return s.encode('punycode') - -def _unot(s): - return 'U+{0:04X}'.format(s) - - -def valid_label_length(label): - - if len(label) > 63: - return False - return True - - -def valid_string_length(label, trailing_dot): - - if len(label) > (254 if trailing_dot else 253): - return False - return True - - -def check_bidi(label, check_ltr=False): - - # Bidi rules should only be applied if string contains RTL characters - bidi_label = False - for (idx, cp) in enumerate(label, 1): - direction = unicodedata.bidirectional(cp) - if direction == '': - # String likely comes from a newer version of Unicode - raise IDNABidiError('Unknown directionality in label {0} at position {1}'.format(repr(label), idx)) - if direction in ['R', 'AL', 'AN']: - bidi_label = True - if not bidi_label and not check_ltr: - return True - - # Bidi rule 1 - direction = unicodedata.bidirectional(label[0]) - if direction in ['R', 'AL']: - rtl = True - elif direction == 'L': - rtl = False - else: - raise IDNABidiError('First codepoint in label {0} must be directionality L, R or AL'.format(repr(label))) - - valid_ending = False - number_type = False - for (idx, cp) in enumerate(label, 1): - direction = unicodedata.bidirectional(cp) - - if rtl: - # Bidi rule 2 - if not direction in ['R', 'AL', 'AN', 'EN', 'ES', 'CS', 'ET', 'ON', 'BN', 'NSM']: - raise IDNABidiError('Invalid direction for codepoint at position {0} in a right-to-left label'.format(idx)) - # Bidi rule 3 - if direction in ['R', 'AL', 'EN', 'AN']: - valid_ending = True - elif direction != 'NSM': - valid_ending = False - # Bidi rule 4 - if direction in ['AN', 'EN']: - if not number_type: - number_type = direction - else: - if number_type != direction: - raise IDNABidiError('Can not mix numeral types in a right-to-left label') - else: - # Bidi rule 5 - if not direction in ['L', 'EN', 'ES', 'CS', 'ET', 'ON', 'BN', 'NSM']: - raise IDNABidiError('Invalid direction for codepoint at position {0} in a left-to-right label'.format(idx)) - # Bidi rule 6 - if direction in ['L', 'EN']: - valid_ending = True - elif direction != 'NSM': - valid_ending = False - - if not valid_ending: - raise IDNABidiError('Label ends with illegal codepoint directionality') - - return True - - -def check_initial_combiner(label): - - if unicodedata.category(label[0])[0] == 'M': - raise IDNAError('Label begins with an illegal combining character') - return True - - -def check_hyphen_ok(label): - - if label[2:4] == '--': - raise IDNAError('Label has disallowed hyphens in 3rd and 4th position') - if label[0] == '-' or label[-1] == '-': - raise IDNAError('Label must not start or end with a hyphen') - return True - - -def check_nfc(label): - - if unicodedata.normalize('NFC', label) != label: - raise IDNAError('Label must be in Normalization Form C') - - -def valid_contextj(label, pos): - - cp_value = ord(label[pos]) - - if cp_value == 0x200c: - - if pos > 0: - if _combining_class(ord(label[pos - 1])) == _virama_combining_class: - return True - - ok = False - for i in range(pos-1, -1, -1): - joining_type = idnadata.joining_types.get(ord(label[i])) - if joining_type == ord('T'): - continue - if joining_type in [ord('L'), ord('D')]: - ok = True - break - - if not ok: - return False - - ok = False - for i in range(pos+1, len(label)): - joining_type = idnadata.joining_types.get(ord(label[i])) - if joining_type == ord('T'): - continue - if joining_type in [ord('R'), ord('D')]: - ok = True - break - return ok - - if cp_value == 0x200d: - - if pos > 0: - if _combining_class(ord(label[pos - 1])) == _virama_combining_class: - return True - return False - - else: - - return False - - -def valid_contexto(label, pos, exception=False): - - cp_value = ord(label[pos]) - - if cp_value == 0x00b7: - if 0 < pos < len(label)-1: - if ord(label[pos - 1]) == 0x006c and ord(label[pos + 1]) == 0x006c: - return True - return False - - elif cp_value == 0x0375: - if pos < len(label)-1 and len(label) > 1: - return _is_script(label[pos + 1], 'Greek') - return False - - elif cp_value == 0x05f3 or cp_value == 0x05f4: - if pos > 0: - return _is_script(label[pos - 1], 'Hebrew') - return False - - elif cp_value == 0x30fb: - for cp in label: - if cp == u'\u30fb': - continue - if _is_script(cp, 'Hiragana') or _is_script(cp, 'Katakana') or _is_script(cp, 'Han'): - return True - return False - - elif 0x660 <= cp_value <= 0x669: - for cp in label: - if 0x6f0 <= ord(cp) <= 0x06f9: - return False - return True - - elif 0x6f0 <= cp_value <= 0x6f9: - for cp in label: - if 0x660 <= ord(cp) <= 0x0669: - return False - return True - - -def check_label(label): - - if isinstance(label, (bytes, bytearray)): - label = label.decode('utf-8') - if len(label) == 0: - raise IDNAError('Empty Label') - - check_nfc(label) - check_hyphen_ok(label) - check_initial_combiner(label) - - for (pos, cp) in enumerate(label): - cp_value = ord(cp) - if intranges_contain(cp_value, idnadata.codepoint_classes['PVALID']): - continue - elif intranges_contain(cp_value, idnadata.codepoint_classes['CONTEXTJ']): - try: - if not valid_contextj(label, pos): - raise InvalidCodepointContext('Joiner {0} not allowed at position {1} in {2}'.format( - _unot(cp_value), pos+1, repr(label))) - except ValueError: - raise IDNAError('Unknown codepoint adjacent to joiner {0} at position {1} in {2}'.format( - _unot(cp_value), pos+1, repr(label))) - elif intranges_contain(cp_value, idnadata.codepoint_classes['CONTEXTO']): - if not valid_contexto(label, pos): - raise InvalidCodepointContext('Codepoint {0} not allowed at position {1} in {2}'.format(_unot(cp_value), pos+1, repr(label))) - else: - raise InvalidCodepoint('Codepoint {0} at position {1} of {2} not allowed'.format(_unot(cp_value), pos+1, repr(label))) - - check_bidi(label) - - -def alabel(label): - - try: - label = label.encode('ascii') - ulabel(label) - if not valid_label_length(label): - raise IDNAError('Label too long') - return label - except UnicodeEncodeError: - pass - - if not label: - raise IDNAError('No Input') - - label = unicode(label) - check_label(label) - label = _punycode(label) - label = _alabel_prefix + label - - if not valid_label_length(label): - raise IDNAError('Label too long') - - return label - - -def ulabel(label): - - if not isinstance(label, (bytes, bytearray)): - try: - label = label.encode('ascii') - except UnicodeEncodeError: - check_label(label) - return label - - label = label.lower() - if label.startswith(_alabel_prefix): - label = label[len(_alabel_prefix):] - else: - check_label(label) - return label.decode('ascii') - - label = label.decode('punycode') - check_label(label) - return label - - -def uts46_remap(domain, std3_rules=True, transitional=False): - """Re-map the characters in the string according to UTS46 processing.""" - from .uts46data import uts46data - output = u"" - try: - for pos, char in enumerate(domain): - code_point = ord(char) - uts46row = uts46data[code_point if code_point < 256 else - bisect.bisect_left(uts46data, (code_point, "Z")) - 1] - status = uts46row[1] - replacement = uts46row[2] if len(uts46row) == 3 else None - if (status == "V" or - (status == "D" and not transitional) or - (status == "3" and not std3_rules and replacement is None)): - output += char - elif replacement is not None and (status == "M" or - (status == "3" and not std3_rules) or - (status == "D" and transitional)): - output += replacement - elif status != "I": - raise IndexError() - return unicodedata.normalize("NFC", output) - except IndexError: - raise InvalidCodepoint( - "Codepoint {0} not allowed at position {1} in {2}".format( - _unot(code_point), pos + 1, repr(domain))) - - -def encode(s, strict=False, uts46=False, std3_rules=False, transitional=False): - - if isinstance(s, (bytes, bytearray)): - s = s.decode("ascii") - if uts46: - s = uts46_remap(s, std3_rules, transitional) - trailing_dot = False - result = [] - if strict: - labels = s.split('.') - else: - labels = _unicode_dots_re.split(s) - if not labels or labels == ['']: - raise IDNAError('Empty domain') - if labels[-1] == '': - del labels[-1] - trailing_dot = True - for label in labels: - s = alabel(label) - if s: - result.append(s) - else: - raise IDNAError('Empty label') - if trailing_dot: - result.append(b'') - s = b'.'.join(result) - if not valid_string_length(s, trailing_dot): - raise IDNAError('Domain too long') - return s - - -def decode(s, strict=False, uts46=False, std3_rules=False): - - if isinstance(s, (bytes, bytearray)): - s = s.decode("ascii") - if uts46: - s = uts46_remap(s, std3_rules, False) - trailing_dot = False - result = [] - if not strict: - labels = _unicode_dots_re.split(s) - else: - labels = s.split(u'.') - if not labels or labels == ['']: - raise IDNAError('Empty domain') - if not labels[-1]: - del labels[-1] - trailing_dot = True - for label in labels: - s = ulabel(label) - if s: - result.append(s) - else: - raise IDNAError('Empty label') - if trailing_dot: - result.append(u'') - return u'.'.join(result) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/idnadata.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/idnadata.py deleted file mode 100644 index a80c959..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/idnadata.py +++ /dev/null @@ -1,1979 +0,0 @@ -# This file is automatically generated by tools/idna-data - -__version__ = "11.0.0" -scripts = { - 'Greek': ( - 0x37000000374, - 0x37500000378, - 0x37a0000037e, - 0x37f00000380, - 0x38400000385, - 0x38600000387, - 0x3880000038b, - 0x38c0000038d, - 0x38e000003a2, - 0x3a3000003e2, - 0x3f000000400, - 0x1d2600001d2b, - 0x1d5d00001d62, - 0x1d6600001d6b, - 0x1dbf00001dc0, - 0x1f0000001f16, - 0x1f1800001f1e, - 0x1f2000001f46, - 0x1f4800001f4e, - 0x1f5000001f58, - 0x1f5900001f5a, - 0x1f5b00001f5c, - 0x1f5d00001f5e, - 0x1f5f00001f7e, - 0x1f8000001fb5, - 0x1fb600001fc5, - 0x1fc600001fd4, - 0x1fd600001fdc, - 0x1fdd00001ff0, - 0x1ff200001ff5, - 0x1ff600001fff, - 0x212600002127, - 0xab650000ab66, - 0x101400001018f, - 0x101a0000101a1, - 0x1d2000001d246, - ), - 'Han': ( - 0x2e8000002e9a, - 0x2e9b00002ef4, - 0x2f0000002fd6, - 0x300500003006, - 0x300700003008, - 0x30210000302a, - 0x30380000303c, - 0x340000004db6, - 0x4e0000009ff0, - 0xf9000000fa6e, - 0xfa700000fada, - 0x200000002a6d7, - 0x2a7000002b735, - 0x2b7400002b81e, - 0x2b8200002cea2, - 0x2ceb00002ebe1, - 0x2f8000002fa1e, - ), - 'Hebrew': ( - 0x591000005c8, - 0x5d0000005eb, - 0x5ef000005f5, - 0xfb1d0000fb37, - 0xfb380000fb3d, - 0xfb3e0000fb3f, - 0xfb400000fb42, - 0xfb430000fb45, - 0xfb460000fb50, - ), - 'Hiragana': ( - 0x304100003097, - 0x309d000030a0, - 0x1b0010001b11f, - 0x1f2000001f201, - ), - 'Katakana': ( - 0x30a1000030fb, - 0x30fd00003100, - 0x31f000003200, - 0x32d0000032ff, - 0x330000003358, - 0xff660000ff70, - 0xff710000ff9e, - 0x1b0000001b001, - ), -} -joining_types = { - 0x600: 85, - 0x601: 85, - 0x602: 85, - 0x603: 85, - 0x604: 85, - 0x605: 85, - 0x608: 85, - 0x60b: 85, - 0x620: 68, - 0x621: 85, - 0x622: 82, - 0x623: 82, - 0x624: 82, - 0x625: 82, - 0x626: 68, - 0x627: 82, - 0x628: 68, - 0x629: 82, - 0x62a: 68, - 0x62b: 68, - 0x62c: 68, - 0x62d: 68, - 0x62e: 68, - 0x62f: 82, - 0x630: 82, - 0x631: 82, - 0x632: 82, - 0x633: 68, - 0x634: 68, - 0x635: 68, - 0x636: 68, - 0x637: 68, - 0x638: 68, - 0x639: 68, - 0x63a: 68, - 0x63b: 68, - 0x63c: 68, - 0x63d: 68, - 0x63e: 68, - 0x63f: 68, - 0x640: 67, - 0x641: 68, - 0x642: 68, - 0x643: 68, - 0x644: 68, - 0x645: 68, - 0x646: 68, - 0x647: 68, - 0x648: 82, - 0x649: 68, - 0x64a: 68, - 0x66e: 68, - 0x66f: 68, - 0x671: 82, - 0x672: 82, - 0x673: 82, - 0x674: 85, - 0x675: 82, - 0x676: 82, - 0x677: 82, - 0x678: 68, - 0x679: 68, - 0x67a: 68, - 0x67b: 68, - 0x67c: 68, - 0x67d: 68, - 0x67e: 68, - 0x67f: 68, - 0x680: 68, - 0x681: 68, - 0x682: 68, - 0x683: 68, - 0x684: 68, - 0x685: 68, - 0x686: 68, - 0x687: 68, - 0x688: 82, - 0x689: 82, - 0x68a: 82, - 0x68b: 82, - 0x68c: 82, - 0x68d: 82, - 0x68e: 82, - 0x68f: 82, - 0x690: 82, - 0x691: 82, - 0x692: 82, - 0x693: 82, - 0x694: 82, - 0x695: 82, - 0x696: 82, - 0x697: 82, - 0x698: 82, - 0x699: 82, - 0x69a: 68, - 0x69b: 68, - 0x69c: 68, - 0x69d: 68, - 0x69e: 68, - 0x69f: 68, - 0x6a0: 68, - 0x6a1: 68, - 0x6a2: 68, - 0x6a3: 68, - 0x6a4: 68, - 0x6a5: 68, - 0x6a6: 68, - 0x6a7: 68, - 0x6a8: 68, - 0x6a9: 68, - 0x6aa: 68, - 0x6ab: 68, - 0x6ac: 68, - 0x6ad: 68, - 0x6ae: 68, - 0x6af: 68, - 0x6b0: 68, - 0x6b1: 68, - 0x6b2: 68, - 0x6b3: 68, - 0x6b4: 68, - 0x6b5: 68, - 0x6b6: 68, - 0x6b7: 68, - 0x6b8: 68, - 0x6b9: 68, - 0x6ba: 68, - 0x6bb: 68, - 0x6bc: 68, - 0x6bd: 68, - 0x6be: 68, - 0x6bf: 68, - 0x6c0: 82, - 0x6c1: 68, - 0x6c2: 68, - 0x6c3: 82, - 0x6c4: 82, - 0x6c5: 82, - 0x6c6: 82, - 0x6c7: 82, - 0x6c8: 82, - 0x6c9: 82, - 0x6ca: 82, - 0x6cb: 82, - 0x6cc: 68, - 0x6cd: 82, - 0x6ce: 68, - 0x6cf: 82, - 0x6d0: 68, - 0x6d1: 68, - 0x6d2: 82, - 0x6d3: 82, - 0x6d5: 82, - 0x6dd: 85, - 0x6ee: 82, - 0x6ef: 82, - 0x6fa: 68, - 0x6fb: 68, - 0x6fc: 68, - 0x6ff: 68, - 0x70f: 84, - 0x710: 82, - 0x712: 68, - 0x713: 68, - 0x714: 68, - 0x715: 82, - 0x716: 82, - 0x717: 82, - 0x718: 82, - 0x719: 82, - 0x71a: 68, - 0x71b: 68, - 0x71c: 68, - 0x71d: 68, - 0x71e: 82, - 0x71f: 68, - 0x720: 68, - 0x721: 68, - 0x722: 68, - 0x723: 68, - 0x724: 68, - 0x725: 68, - 0x726: 68, - 0x727: 68, - 0x728: 82, - 0x729: 68, - 0x72a: 82, - 0x72b: 68, - 0x72c: 82, - 0x72d: 68, - 0x72e: 68, - 0x72f: 82, - 0x74d: 82, - 0x74e: 68, - 0x74f: 68, - 0x750: 68, - 0x751: 68, - 0x752: 68, - 0x753: 68, - 0x754: 68, - 0x755: 68, - 0x756: 68, - 0x757: 68, - 0x758: 68, - 0x759: 82, - 0x75a: 82, - 0x75b: 82, - 0x75c: 68, - 0x75d: 68, - 0x75e: 68, - 0x75f: 68, - 0x760: 68, - 0x761: 68, - 0x762: 68, - 0x763: 68, - 0x764: 68, - 0x765: 68, - 0x766: 68, - 0x767: 68, - 0x768: 68, - 0x769: 68, - 0x76a: 68, - 0x76b: 82, - 0x76c: 82, - 0x76d: 68, - 0x76e: 68, - 0x76f: 68, - 0x770: 68, - 0x771: 82, - 0x772: 68, - 0x773: 82, - 0x774: 82, - 0x775: 68, - 0x776: 68, - 0x777: 68, - 0x778: 82, - 0x779: 82, - 0x77a: 68, - 0x77b: 68, - 0x77c: 68, - 0x77d: 68, - 0x77e: 68, - 0x77f: 68, - 0x7ca: 68, - 0x7cb: 68, - 0x7cc: 68, - 0x7cd: 68, - 0x7ce: 68, - 0x7cf: 68, - 0x7d0: 68, - 0x7d1: 68, - 0x7d2: 68, - 0x7d3: 68, - 0x7d4: 68, - 0x7d5: 68, - 0x7d6: 68, - 0x7d7: 68, - 0x7d8: 68, - 0x7d9: 68, - 0x7da: 68, - 0x7db: 68, - 0x7dc: 68, - 0x7dd: 68, - 0x7de: 68, - 0x7df: 68, - 0x7e0: 68, - 0x7e1: 68, - 0x7e2: 68, - 0x7e3: 68, - 0x7e4: 68, - 0x7e5: 68, - 0x7e6: 68, - 0x7e7: 68, - 0x7e8: 68, - 0x7e9: 68, - 0x7ea: 68, - 0x7fa: 67, - 0x840: 82, - 0x841: 68, - 0x842: 68, - 0x843: 68, - 0x844: 68, - 0x845: 68, - 0x846: 82, - 0x847: 82, - 0x848: 68, - 0x849: 82, - 0x84a: 68, - 0x84b: 68, - 0x84c: 68, - 0x84d: 68, - 0x84e: 68, - 0x84f: 68, - 0x850: 68, - 0x851: 68, - 0x852: 68, - 0x853: 68, - 0x854: 82, - 0x855: 68, - 0x856: 85, - 0x857: 85, - 0x858: 85, - 0x860: 68, - 0x861: 85, - 0x862: 68, - 0x863: 68, - 0x864: 68, - 0x865: 68, - 0x866: 85, - 0x867: 82, - 0x868: 68, - 0x869: 82, - 0x86a: 82, - 0x8a0: 68, - 0x8a1: 68, - 0x8a2: 68, - 0x8a3: 68, - 0x8a4: 68, - 0x8a5: 68, - 0x8a6: 68, - 0x8a7: 68, - 0x8a8: 68, - 0x8a9: 68, - 0x8aa: 82, - 0x8ab: 82, - 0x8ac: 82, - 0x8ad: 85, - 0x8ae: 82, - 0x8af: 68, - 0x8b0: 68, - 0x8b1: 82, - 0x8b2: 82, - 0x8b3: 68, - 0x8b4: 68, - 0x8b6: 68, - 0x8b7: 68, - 0x8b8: 68, - 0x8b9: 82, - 0x8ba: 68, - 0x8bb: 68, - 0x8bc: 68, - 0x8bd: 68, - 0x8e2: 85, - 0x1806: 85, - 0x1807: 68, - 0x180a: 67, - 0x180e: 85, - 0x1820: 68, - 0x1821: 68, - 0x1822: 68, - 0x1823: 68, - 0x1824: 68, - 0x1825: 68, - 0x1826: 68, - 0x1827: 68, - 0x1828: 68, - 0x1829: 68, - 0x182a: 68, - 0x182b: 68, - 0x182c: 68, - 0x182d: 68, - 0x182e: 68, - 0x182f: 68, - 0x1830: 68, - 0x1831: 68, - 0x1832: 68, - 0x1833: 68, - 0x1834: 68, - 0x1835: 68, - 0x1836: 68, - 0x1837: 68, - 0x1838: 68, - 0x1839: 68, - 0x183a: 68, - 0x183b: 68, - 0x183c: 68, - 0x183d: 68, - 0x183e: 68, - 0x183f: 68, - 0x1840: 68, - 0x1841: 68, - 0x1842: 68, - 0x1843: 68, - 0x1844: 68, - 0x1845: 68, - 0x1846: 68, - 0x1847: 68, - 0x1848: 68, - 0x1849: 68, - 0x184a: 68, - 0x184b: 68, - 0x184c: 68, - 0x184d: 68, - 0x184e: 68, - 0x184f: 68, - 0x1850: 68, - 0x1851: 68, - 0x1852: 68, - 0x1853: 68, - 0x1854: 68, - 0x1855: 68, - 0x1856: 68, - 0x1857: 68, - 0x1858: 68, - 0x1859: 68, - 0x185a: 68, - 0x185b: 68, - 0x185c: 68, - 0x185d: 68, - 0x185e: 68, - 0x185f: 68, - 0x1860: 68, - 0x1861: 68, - 0x1862: 68, - 0x1863: 68, - 0x1864: 68, - 0x1865: 68, - 0x1866: 68, - 0x1867: 68, - 0x1868: 68, - 0x1869: 68, - 0x186a: 68, - 0x186b: 68, - 0x186c: 68, - 0x186d: 68, - 0x186e: 68, - 0x186f: 68, - 0x1870: 68, - 0x1871: 68, - 0x1872: 68, - 0x1873: 68, - 0x1874: 68, - 0x1875: 68, - 0x1876: 68, - 0x1877: 68, - 0x1878: 68, - 0x1880: 85, - 0x1881: 85, - 0x1882: 85, - 0x1883: 85, - 0x1884: 85, - 0x1885: 84, - 0x1886: 84, - 0x1887: 68, - 0x1888: 68, - 0x1889: 68, - 0x188a: 68, - 0x188b: 68, - 0x188c: 68, - 0x188d: 68, - 0x188e: 68, - 0x188f: 68, - 0x1890: 68, - 0x1891: 68, - 0x1892: 68, - 0x1893: 68, - 0x1894: 68, - 0x1895: 68, - 0x1896: 68, - 0x1897: 68, - 0x1898: 68, - 0x1899: 68, - 0x189a: 68, - 0x189b: 68, - 0x189c: 68, - 0x189d: 68, - 0x189e: 68, - 0x189f: 68, - 0x18a0: 68, - 0x18a1: 68, - 0x18a2: 68, - 0x18a3: 68, - 0x18a4: 68, - 0x18a5: 68, - 0x18a6: 68, - 0x18a7: 68, - 0x18a8: 68, - 0x18aa: 68, - 0x200c: 85, - 0x200d: 67, - 0x202f: 85, - 0x2066: 85, - 0x2067: 85, - 0x2068: 85, - 0x2069: 85, - 0xa840: 68, - 0xa841: 68, - 0xa842: 68, - 0xa843: 68, - 0xa844: 68, - 0xa845: 68, - 0xa846: 68, - 0xa847: 68, - 0xa848: 68, - 0xa849: 68, - 0xa84a: 68, - 0xa84b: 68, - 0xa84c: 68, - 0xa84d: 68, - 0xa84e: 68, - 0xa84f: 68, - 0xa850: 68, - 0xa851: 68, - 0xa852: 68, - 0xa853: 68, - 0xa854: 68, - 0xa855: 68, - 0xa856: 68, - 0xa857: 68, - 0xa858: 68, - 0xa859: 68, - 0xa85a: 68, - 0xa85b: 68, - 0xa85c: 68, - 0xa85d: 68, - 0xa85e: 68, - 0xa85f: 68, - 0xa860: 68, - 0xa861: 68, - 0xa862: 68, - 0xa863: 68, - 0xa864: 68, - 0xa865: 68, - 0xa866: 68, - 0xa867: 68, - 0xa868: 68, - 0xa869: 68, - 0xa86a: 68, - 0xa86b: 68, - 0xa86c: 68, - 0xa86d: 68, - 0xa86e: 68, - 0xa86f: 68, - 0xa870: 68, - 0xa871: 68, - 0xa872: 76, - 0xa873: 85, - 0x10ac0: 68, - 0x10ac1: 68, - 0x10ac2: 68, - 0x10ac3: 68, - 0x10ac4: 68, - 0x10ac5: 82, - 0x10ac6: 85, - 0x10ac7: 82, - 0x10ac8: 85, - 0x10ac9: 82, - 0x10aca: 82, - 0x10acb: 85, - 0x10acc: 85, - 0x10acd: 76, - 0x10ace: 82, - 0x10acf: 82, - 0x10ad0: 82, - 0x10ad1: 82, - 0x10ad2: 82, - 0x10ad3: 68, - 0x10ad4: 68, - 0x10ad5: 68, - 0x10ad6: 68, - 0x10ad7: 76, - 0x10ad8: 68, - 0x10ad9: 68, - 0x10ada: 68, - 0x10adb: 68, - 0x10adc: 68, - 0x10add: 82, - 0x10ade: 68, - 0x10adf: 68, - 0x10ae0: 68, - 0x10ae1: 82, - 0x10ae2: 85, - 0x10ae3: 85, - 0x10ae4: 82, - 0x10aeb: 68, - 0x10aec: 68, - 0x10aed: 68, - 0x10aee: 68, - 0x10aef: 82, - 0x10b80: 68, - 0x10b81: 82, - 0x10b82: 68, - 0x10b83: 82, - 0x10b84: 82, - 0x10b85: 82, - 0x10b86: 68, - 0x10b87: 68, - 0x10b88: 68, - 0x10b89: 82, - 0x10b8a: 68, - 0x10b8b: 68, - 0x10b8c: 82, - 0x10b8d: 68, - 0x10b8e: 82, - 0x10b8f: 82, - 0x10b90: 68, - 0x10b91: 82, - 0x10ba9: 82, - 0x10baa: 82, - 0x10bab: 82, - 0x10bac: 82, - 0x10bad: 68, - 0x10bae: 68, - 0x10baf: 85, - 0x10d00: 76, - 0x10d01: 68, - 0x10d02: 68, - 0x10d03: 68, - 0x10d04: 68, - 0x10d05: 68, - 0x10d06: 68, - 0x10d07: 68, - 0x10d08: 68, - 0x10d09: 68, - 0x10d0a: 68, - 0x10d0b: 68, - 0x10d0c: 68, - 0x10d0d: 68, - 0x10d0e: 68, - 0x10d0f: 68, - 0x10d10: 68, - 0x10d11: 68, - 0x10d12: 68, - 0x10d13: 68, - 0x10d14: 68, - 0x10d15: 68, - 0x10d16: 68, - 0x10d17: 68, - 0x10d18: 68, - 0x10d19: 68, - 0x10d1a: 68, - 0x10d1b: 68, - 0x10d1c: 68, - 0x10d1d: 68, - 0x10d1e: 68, - 0x10d1f: 68, - 0x10d20: 68, - 0x10d21: 68, - 0x10d22: 82, - 0x10d23: 68, - 0x10f30: 68, - 0x10f31: 68, - 0x10f32: 68, - 0x10f33: 82, - 0x10f34: 68, - 0x10f35: 68, - 0x10f36: 68, - 0x10f37: 68, - 0x10f38: 68, - 0x10f39: 68, - 0x10f3a: 68, - 0x10f3b: 68, - 0x10f3c: 68, - 0x10f3d: 68, - 0x10f3e: 68, - 0x10f3f: 68, - 0x10f40: 68, - 0x10f41: 68, - 0x10f42: 68, - 0x10f43: 68, - 0x10f44: 68, - 0x10f45: 85, - 0x10f51: 68, - 0x10f52: 68, - 0x10f53: 68, - 0x10f54: 82, - 0x110bd: 85, - 0x110cd: 85, - 0x1e900: 68, - 0x1e901: 68, - 0x1e902: 68, - 0x1e903: 68, - 0x1e904: 68, - 0x1e905: 68, - 0x1e906: 68, - 0x1e907: 68, - 0x1e908: 68, - 0x1e909: 68, - 0x1e90a: 68, - 0x1e90b: 68, - 0x1e90c: 68, - 0x1e90d: 68, - 0x1e90e: 68, - 0x1e90f: 68, - 0x1e910: 68, - 0x1e911: 68, - 0x1e912: 68, - 0x1e913: 68, - 0x1e914: 68, - 0x1e915: 68, - 0x1e916: 68, - 0x1e917: 68, - 0x1e918: 68, - 0x1e919: 68, - 0x1e91a: 68, - 0x1e91b: 68, - 0x1e91c: 68, - 0x1e91d: 68, - 0x1e91e: 68, - 0x1e91f: 68, - 0x1e920: 68, - 0x1e921: 68, - 0x1e922: 68, - 0x1e923: 68, - 0x1e924: 68, - 0x1e925: 68, - 0x1e926: 68, - 0x1e927: 68, - 0x1e928: 68, - 0x1e929: 68, - 0x1e92a: 68, - 0x1e92b: 68, - 0x1e92c: 68, - 0x1e92d: 68, - 0x1e92e: 68, - 0x1e92f: 68, - 0x1e930: 68, - 0x1e931: 68, - 0x1e932: 68, - 0x1e933: 68, - 0x1e934: 68, - 0x1e935: 68, - 0x1e936: 68, - 0x1e937: 68, - 0x1e938: 68, - 0x1e939: 68, - 0x1e93a: 68, - 0x1e93b: 68, - 0x1e93c: 68, - 0x1e93d: 68, - 0x1e93e: 68, - 0x1e93f: 68, - 0x1e940: 68, - 0x1e941: 68, - 0x1e942: 68, - 0x1e943: 68, -} -codepoint_classes = { - 'PVALID': ( - 0x2d0000002e, - 0x300000003a, - 0x610000007b, - 0xdf000000f7, - 0xf800000100, - 0x10100000102, - 0x10300000104, - 0x10500000106, - 0x10700000108, - 0x1090000010a, - 0x10b0000010c, - 0x10d0000010e, - 0x10f00000110, - 0x11100000112, - 0x11300000114, - 0x11500000116, - 0x11700000118, - 0x1190000011a, - 0x11b0000011c, - 0x11d0000011e, - 0x11f00000120, - 0x12100000122, - 0x12300000124, - 0x12500000126, - 0x12700000128, - 0x1290000012a, - 0x12b0000012c, - 0x12d0000012e, - 0x12f00000130, - 0x13100000132, - 0x13500000136, - 0x13700000139, - 0x13a0000013b, - 0x13c0000013d, - 0x13e0000013f, - 0x14200000143, - 0x14400000145, - 0x14600000147, - 0x14800000149, - 0x14b0000014c, - 0x14d0000014e, - 0x14f00000150, - 0x15100000152, - 0x15300000154, - 0x15500000156, - 0x15700000158, - 0x1590000015a, - 0x15b0000015c, - 0x15d0000015e, - 0x15f00000160, - 0x16100000162, - 0x16300000164, - 0x16500000166, - 0x16700000168, - 0x1690000016a, - 0x16b0000016c, - 0x16d0000016e, - 0x16f00000170, - 0x17100000172, - 0x17300000174, - 0x17500000176, - 0x17700000178, - 0x17a0000017b, - 0x17c0000017d, - 0x17e0000017f, - 0x18000000181, - 0x18300000184, - 0x18500000186, - 0x18800000189, - 0x18c0000018e, - 0x19200000193, - 0x19500000196, - 0x1990000019c, - 0x19e0000019f, - 0x1a1000001a2, - 0x1a3000001a4, - 0x1a5000001a6, - 0x1a8000001a9, - 0x1aa000001ac, - 0x1ad000001ae, - 0x1b0000001b1, - 0x1b4000001b5, - 0x1b6000001b7, - 0x1b9000001bc, - 0x1bd000001c4, - 0x1ce000001cf, - 0x1d0000001d1, - 0x1d2000001d3, - 0x1d4000001d5, - 0x1d6000001d7, - 0x1d8000001d9, - 0x1da000001db, - 0x1dc000001de, - 0x1df000001e0, - 0x1e1000001e2, - 0x1e3000001e4, - 0x1e5000001e6, - 0x1e7000001e8, - 0x1e9000001ea, - 0x1eb000001ec, - 0x1ed000001ee, - 0x1ef000001f1, - 0x1f5000001f6, - 0x1f9000001fa, - 0x1fb000001fc, - 0x1fd000001fe, - 0x1ff00000200, - 0x20100000202, - 0x20300000204, - 0x20500000206, - 0x20700000208, - 0x2090000020a, - 0x20b0000020c, - 0x20d0000020e, - 0x20f00000210, - 0x21100000212, - 0x21300000214, - 0x21500000216, - 0x21700000218, - 0x2190000021a, - 0x21b0000021c, - 0x21d0000021e, - 0x21f00000220, - 0x22100000222, - 0x22300000224, - 0x22500000226, - 0x22700000228, - 0x2290000022a, - 0x22b0000022c, - 0x22d0000022e, - 0x22f00000230, - 0x23100000232, - 0x2330000023a, - 0x23c0000023d, - 0x23f00000241, - 0x24200000243, - 0x24700000248, - 0x2490000024a, - 0x24b0000024c, - 0x24d0000024e, - 0x24f000002b0, - 0x2b9000002c2, - 0x2c6000002d2, - 0x2ec000002ed, - 0x2ee000002ef, - 0x30000000340, - 0x34200000343, - 0x3460000034f, - 0x35000000370, - 0x37100000372, - 0x37300000374, - 0x37700000378, - 0x37b0000037e, - 0x39000000391, - 0x3ac000003cf, - 0x3d7000003d8, - 0x3d9000003da, - 0x3db000003dc, - 0x3dd000003de, - 0x3df000003e0, - 0x3e1000003e2, - 0x3e3000003e4, - 0x3e5000003e6, - 0x3e7000003e8, - 0x3e9000003ea, - 0x3eb000003ec, - 0x3ed000003ee, - 0x3ef000003f0, - 0x3f3000003f4, - 0x3f8000003f9, - 0x3fb000003fd, - 0x43000000460, - 0x46100000462, - 0x46300000464, - 0x46500000466, - 0x46700000468, - 0x4690000046a, - 0x46b0000046c, - 0x46d0000046e, - 0x46f00000470, - 0x47100000472, - 0x47300000474, - 0x47500000476, - 0x47700000478, - 0x4790000047a, - 0x47b0000047c, - 0x47d0000047e, - 0x47f00000480, - 0x48100000482, - 0x48300000488, - 0x48b0000048c, - 0x48d0000048e, - 0x48f00000490, - 0x49100000492, - 0x49300000494, - 0x49500000496, - 0x49700000498, - 0x4990000049a, - 0x49b0000049c, - 0x49d0000049e, - 0x49f000004a0, - 0x4a1000004a2, - 0x4a3000004a4, - 0x4a5000004a6, - 0x4a7000004a8, - 0x4a9000004aa, - 0x4ab000004ac, - 0x4ad000004ae, - 0x4af000004b0, - 0x4b1000004b2, - 0x4b3000004b4, - 0x4b5000004b6, - 0x4b7000004b8, - 0x4b9000004ba, - 0x4bb000004bc, - 0x4bd000004be, - 0x4bf000004c0, - 0x4c2000004c3, - 0x4c4000004c5, - 0x4c6000004c7, - 0x4c8000004c9, - 0x4ca000004cb, - 0x4cc000004cd, - 0x4ce000004d0, - 0x4d1000004d2, - 0x4d3000004d4, - 0x4d5000004d6, - 0x4d7000004d8, - 0x4d9000004da, - 0x4db000004dc, - 0x4dd000004de, - 0x4df000004e0, - 0x4e1000004e2, - 0x4e3000004e4, - 0x4e5000004e6, - 0x4e7000004e8, - 0x4e9000004ea, - 0x4eb000004ec, - 0x4ed000004ee, - 0x4ef000004f0, - 0x4f1000004f2, - 0x4f3000004f4, - 0x4f5000004f6, - 0x4f7000004f8, - 0x4f9000004fa, - 0x4fb000004fc, - 0x4fd000004fe, - 0x4ff00000500, - 0x50100000502, - 0x50300000504, - 0x50500000506, - 0x50700000508, - 0x5090000050a, - 0x50b0000050c, - 0x50d0000050e, - 0x50f00000510, - 0x51100000512, - 0x51300000514, - 0x51500000516, - 0x51700000518, - 0x5190000051a, - 0x51b0000051c, - 0x51d0000051e, - 0x51f00000520, - 0x52100000522, - 0x52300000524, - 0x52500000526, - 0x52700000528, - 0x5290000052a, - 0x52b0000052c, - 0x52d0000052e, - 0x52f00000530, - 0x5590000055a, - 0x56000000587, - 0x58800000589, - 0x591000005be, - 0x5bf000005c0, - 0x5c1000005c3, - 0x5c4000005c6, - 0x5c7000005c8, - 0x5d0000005eb, - 0x5ef000005f3, - 0x6100000061b, - 0x62000000640, - 0x64100000660, - 0x66e00000675, - 0x679000006d4, - 0x6d5000006dd, - 0x6df000006e9, - 0x6ea000006f0, - 0x6fa00000700, - 0x7100000074b, - 0x74d000007b2, - 0x7c0000007f6, - 0x7fd000007fe, - 0x8000000082e, - 0x8400000085c, - 0x8600000086b, - 0x8a0000008b5, - 0x8b6000008be, - 0x8d3000008e2, - 0x8e300000958, - 0x96000000964, - 0x96600000970, - 0x97100000984, - 0x9850000098d, - 0x98f00000991, - 0x993000009a9, - 0x9aa000009b1, - 0x9b2000009b3, - 0x9b6000009ba, - 0x9bc000009c5, - 0x9c7000009c9, - 0x9cb000009cf, - 0x9d7000009d8, - 0x9e0000009e4, - 0x9e6000009f2, - 0x9fc000009fd, - 0x9fe000009ff, - 0xa0100000a04, - 0xa0500000a0b, - 0xa0f00000a11, - 0xa1300000a29, - 0xa2a00000a31, - 0xa3200000a33, - 0xa3500000a36, - 0xa3800000a3a, - 0xa3c00000a3d, - 0xa3e00000a43, - 0xa4700000a49, - 0xa4b00000a4e, - 0xa5100000a52, - 0xa5c00000a5d, - 0xa6600000a76, - 0xa8100000a84, - 0xa8500000a8e, - 0xa8f00000a92, - 0xa9300000aa9, - 0xaaa00000ab1, - 0xab200000ab4, - 0xab500000aba, - 0xabc00000ac6, - 0xac700000aca, - 0xacb00000ace, - 0xad000000ad1, - 0xae000000ae4, - 0xae600000af0, - 0xaf900000b00, - 0xb0100000b04, - 0xb0500000b0d, - 0xb0f00000b11, - 0xb1300000b29, - 0xb2a00000b31, - 0xb3200000b34, - 0xb3500000b3a, - 0xb3c00000b45, - 0xb4700000b49, - 0xb4b00000b4e, - 0xb5600000b58, - 0xb5f00000b64, - 0xb6600000b70, - 0xb7100000b72, - 0xb8200000b84, - 0xb8500000b8b, - 0xb8e00000b91, - 0xb9200000b96, - 0xb9900000b9b, - 0xb9c00000b9d, - 0xb9e00000ba0, - 0xba300000ba5, - 0xba800000bab, - 0xbae00000bba, - 0xbbe00000bc3, - 0xbc600000bc9, - 0xbca00000bce, - 0xbd000000bd1, - 0xbd700000bd8, - 0xbe600000bf0, - 0xc0000000c0d, - 0xc0e00000c11, - 0xc1200000c29, - 0xc2a00000c3a, - 0xc3d00000c45, - 0xc4600000c49, - 0xc4a00000c4e, - 0xc5500000c57, - 0xc5800000c5b, - 0xc6000000c64, - 0xc6600000c70, - 0xc8000000c84, - 0xc8500000c8d, - 0xc8e00000c91, - 0xc9200000ca9, - 0xcaa00000cb4, - 0xcb500000cba, - 0xcbc00000cc5, - 0xcc600000cc9, - 0xcca00000cce, - 0xcd500000cd7, - 0xcde00000cdf, - 0xce000000ce4, - 0xce600000cf0, - 0xcf100000cf3, - 0xd0000000d04, - 0xd0500000d0d, - 0xd0e00000d11, - 0xd1200000d45, - 0xd4600000d49, - 0xd4a00000d4f, - 0xd5400000d58, - 0xd5f00000d64, - 0xd6600000d70, - 0xd7a00000d80, - 0xd8200000d84, - 0xd8500000d97, - 0xd9a00000db2, - 0xdb300000dbc, - 0xdbd00000dbe, - 0xdc000000dc7, - 0xdca00000dcb, - 0xdcf00000dd5, - 0xdd600000dd7, - 0xdd800000de0, - 0xde600000df0, - 0xdf200000df4, - 0xe0100000e33, - 0xe3400000e3b, - 0xe4000000e4f, - 0xe5000000e5a, - 0xe8100000e83, - 0xe8400000e85, - 0xe8700000e89, - 0xe8a00000e8b, - 0xe8d00000e8e, - 0xe9400000e98, - 0xe9900000ea0, - 0xea100000ea4, - 0xea500000ea6, - 0xea700000ea8, - 0xeaa00000eac, - 0xead00000eb3, - 0xeb400000eba, - 0xebb00000ebe, - 0xec000000ec5, - 0xec600000ec7, - 0xec800000ece, - 0xed000000eda, - 0xede00000ee0, - 0xf0000000f01, - 0xf0b00000f0c, - 0xf1800000f1a, - 0xf2000000f2a, - 0xf3500000f36, - 0xf3700000f38, - 0xf3900000f3a, - 0xf3e00000f43, - 0xf4400000f48, - 0xf4900000f4d, - 0xf4e00000f52, - 0xf5300000f57, - 0xf5800000f5c, - 0xf5d00000f69, - 0xf6a00000f6d, - 0xf7100000f73, - 0xf7400000f75, - 0xf7a00000f81, - 0xf8200000f85, - 0xf8600000f93, - 0xf9400000f98, - 0xf9900000f9d, - 0xf9e00000fa2, - 0xfa300000fa7, - 0xfa800000fac, - 0xfad00000fb9, - 0xfba00000fbd, - 0xfc600000fc7, - 0x10000000104a, - 0x10500000109e, - 0x10d0000010fb, - 0x10fd00001100, - 0x120000001249, - 0x124a0000124e, - 0x125000001257, - 0x125800001259, - 0x125a0000125e, - 0x126000001289, - 0x128a0000128e, - 0x1290000012b1, - 0x12b2000012b6, - 0x12b8000012bf, - 0x12c0000012c1, - 0x12c2000012c6, - 0x12c8000012d7, - 0x12d800001311, - 0x131200001316, - 0x13180000135b, - 0x135d00001360, - 0x138000001390, - 0x13a0000013f6, - 0x14010000166d, - 0x166f00001680, - 0x16810000169b, - 0x16a0000016eb, - 0x16f1000016f9, - 0x17000000170d, - 0x170e00001715, - 0x172000001735, - 0x174000001754, - 0x17600000176d, - 0x176e00001771, - 0x177200001774, - 0x1780000017b4, - 0x17b6000017d4, - 0x17d7000017d8, - 0x17dc000017de, - 0x17e0000017ea, - 0x18100000181a, - 0x182000001879, - 0x1880000018ab, - 0x18b0000018f6, - 0x19000000191f, - 0x19200000192c, - 0x19300000193c, - 0x19460000196e, - 0x197000001975, - 0x1980000019ac, - 0x19b0000019ca, - 0x19d0000019da, - 0x1a0000001a1c, - 0x1a2000001a5f, - 0x1a6000001a7d, - 0x1a7f00001a8a, - 0x1a9000001a9a, - 0x1aa700001aa8, - 0x1ab000001abe, - 0x1b0000001b4c, - 0x1b5000001b5a, - 0x1b6b00001b74, - 0x1b8000001bf4, - 0x1c0000001c38, - 0x1c4000001c4a, - 0x1c4d00001c7e, - 0x1cd000001cd3, - 0x1cd400001cfa, - 0x1d0000001d2c, - 0x1d2f00001d30, - 0x1d3b00001d3c, - 0x1d4e00001d4f, - 0x1d6b00001d78, - 0x1d7900001d9b, - 0x1dc000001dfa, - 0x1dfb00001e00, - 0x1e0100001e02, - 0x1e0300001e04, - 0x1e0500001e06, - 0x1e0700001e08, - 0x1e0900001e0a, - 0x1e0b00001e0c, - 0x1e0d00001e0e, - 0x1e0f00001e10, - 0x1e1100001e12, - 0x1e1300001e14, - 0x1e1500001e16, - 0x1e1700001e18, - 0x1e1900001e1a, - 0x1e1b00001e1c, - 0x1e1d00001e1e, - 0x1e1f00001e20, - 0x1e2100001e22, - 0x1e2300001e24, - 0x1e2500001e26, - 0x1e2700001e28, - 0x1e2900001e2a, - 0x1e2b00001e2c, - 0x1e2d00001e2e, - 0x1e2f00001e30, - 0x1e3100001e32, - 0x1e3300001e34, - 0x1e3500001e36, - 0x1e3700001e38, - 0x1e3900001e3a, - 0x1e3b00001e3c, - 0x1e3d00001e3e, - 0x1e3f00001e40, - 0x1e4100001e42, - 0x1e4300001e44, - 0x1e4500001e46, - 0x1e4700001e48, - 0x1e4900001e4a, - 0x1e4b00001e4c, - 0x1e4d00001e4e, - 0x1e4f00001e50, - 0x1e5100001e52, - 0x1e5300001e54, - 0x1e5500001e56, - 0x1e5700001e58, - 0x1e5900001e5a, - 0x1e5b00001e5c, - 0x1e5d00001e5e, - 0x1e5f00001e60, - 0x1e6100001e62, - 0x1e6300001e64, - 0x1e6500001e66, - 0x1e6700001e68, - 0x1e6900001e6a, - 0x1e6b00001e6c, - 0x1e6d00001e6e, - 0x1e6f00001e70, - 0x1e7100001e72, - 0x1e7300001e74, - 0x1e7500001e76, - 0x1e7700001e78, - 0x1e7900001e7a, - 0x1e7b00001e7c, - 0x1e7d00001e7e, - 0x1e7f00001e80, - 0x1e8100001e82, - 0x1e8300001e84, - 0x1e8500001e86, - 0x1e8700001e88, - 0x1e8900001e8a, - 0x1e8b00001e8c, - 0x1e8d00001e8e, - 0x1e8f00001e90, - 0x1e9100001e92, - 0x1e9300001e94, - 0x1e9500001e9a, - 0x1e9c00001e9e, - 0x1e9f00001ea0, - 0x1ea100001ea2, - 0x1ea300001ea4, - 0x1ea500001ea6, - 0x1ea700001ea8, - 0x1ea900001eaa, - 0x1eab00001eac, - 0x1ead00001eae, - 0x1eaf00001eb0, - 0x1eb100001eb2, - 0x1eb300001eb4, - 0x1eb500001eb6, - 0x1eb700001eb8, - 0x1eb900001eba, - 0x1ebb00001ebc, - 0x1ebd00001ebe, - 0x1ebf00001ec0, - 0x1ec100001ec2, - 0x1ec300001ec4, - 0x1ec500001ec6, - 0x1ec700001ec8, - 0x1ec900001eca, - 0x1ecb00001ecc, - 0x1ecd00001ece, - 0x1ecf00001ed0, - 0x1ed100001ed2, - 0x1ed300001ed4, - 0x1ed500001ed6, - 0x1ed700001ed8, - 0x1ed900001eda, - 0x1edb00001edc, - 0x1edd00001ede, - 0x1edf00001ee0, - 0x1ee100001ee2, - 0x1ee300001ee4, - 0x1ee500001ee6, - 0x1ee700001ee8, - 0x1ee900001eea, - 0x1eeb00001eec, - 0x1eed00001eee, - 0x1eef00001ef0, - 0x1ef100001ef2, - 0x1ef300001ef4, - 0x1ef500001ef6, - 0x1ef700001ef8, - 0x1ef900001efa, - 0x1efb00001efc, - 0x1efd00001efe, - 0x1eff00001f08, - 0x1f1000001f16, - 0x1f2000001f28, - 0x1f3000001f38, - 0x1f4000001f46, - 0x1f5000001f58, - 0x1f6000001f68, - 0x1f7000001f71, - 0x1f7200001f73, - 0x1f7400001f75, - 0x1f7600001f77, - 0x1f7800001f79, - 0x1f7a00001f7b, - 0x1f7c00001f7d, - 0x1fb000001fb2, - 0x1fb600001fb7, - 0x1fc600001fc7, - 0x1fd000001fd3, - 0x1fd600001fd8, - 0x1fe000001fe3, - 0x1fe400001fe8, - 0x1ff600001ff7, - 0x214e0000214f, - 0x218400002185, - 0x2c3000002c5f, - 0x2c6100002c62, - 0x2c6500002c67, - 0x2c6800002c69, - 0x2c6a00002c6b, - 0x2c6c00002c6d, - 0x2c7100002c72, - 0x2c7300002c75, - 0x2c7600002c7c, - 0x2c8100002c82, - 0x2c8300002c84, - 0x2c8500002c86, - 0x2c8700002c88, - 0x2c8900002c8a, - 0x2c8b00002c8c, - 0x2c8d00002c8e, - 0x2c8f00002c90, - 0x2c9100002c92, - 0x2c9300002c94, - 0x2c9500002c96, - 0x2c9700002c98, - 0x2c9900002c9a, - 0x2c9b00002c9c, - 0x2c9d00002c9e, - 0x2c9f00002ca0, - 0x2ca100002ca2, - 0x2ca300002ca4, - 0x2ca500002ca6, - 0x2ca700002ca8, - 0x2ca900002caa, - 0x2cab00002cac, - 0x2cad00002cae, - 0x2caf00002cb0, - 0x2cb100002cb2, - 0x2cb300002cb4, - 0x2cb500002cb6, - 0x2cb700002cb8, - 0x2cb900002cba, - 0x2cbb00002cbc, - 0x2cbd00002cbe, - 0x2cbf00002cc0, - 0x2cc100002cc2, - 0x2cc300002cc4, - 0x2cc500002cc6, - 0x2cc700002cc8, - 0x2cc900002cca, - 0x2ccb00002ccc, - 0x2ccd00002cce, - 0x2ccf00002cd0, - 0x2cd100002cd2, - 0x2cd300002cd4, - 0x2cd500002cd6, - 0x2cd700002cd8, - 0x2cd900002cda, - 0x2cdb00002cdc, - 0x2cdd00002cde, - 0x2cdf00002ce0, - 0x2ce100002ce2, - 0x2ce300002ce5, - 0x2cec00002ced, - 0x2cee00002cf2, - 0x2cf300002cf4, - 0x2d0000002d26, - 0x2d2700002d28, - 0x2d2d00002d2e, - 0x2d3000002d68, - 0x2d7f00002d97, - 0x2da000002da7, - 0x2da800002daf, - 0x2db000002db7, - 0x2db800002dbf, - 0x2dc000002dc7, - 0x2dc800002dcf, - 0x2dd000002dd7, - 0x2dd800002ddf, - 0x2de000002e00, - 0x2e2f00002e30, - 0x300500003008, - 0x302a0000302e, - 0x303c0000303d, - 0x304100003097, - 0x30990000309b, - 0x309d0000309f, - 0x30a1000030fb, - 0x30fc000030ff, - 0x310500003130, - 0x31a0000031bb, - 0x31f000003200, - 0x340000004db6, - 0x4e0000009ff0, - 0xa0000000a48d, - 0xa4d00000a4fe, - 0xa5000000a60d, - 0xa6100000a62c, - 0xa6410000a642, - 0xa6430000a644, - 0xa6450000a646, - 0xa6470000a648, - 0xa6490000a64a, - 0xa64b0000a64c, - 0xa64d0000a64e, - 0xa64f0000a650, - 0xa6510000a652, - 0xa6530000a654, - 0xa6550000a656, - 0xa6570000a658, - 0xa6590000a65a, - 0xa65b0000a65c, - 0xa65d0000a65e, - 0xa65f0000a660, - 0xa6610000a662, - 0xa6630000a664, - 0xa6650000a666, - 0xa6670000a668, - 0xa6690000a66a, - 0xa66b0000a66c, - 0xa66d0000a670, - 0xa6740000a67e, - 0xa67f0000a680, - 0xa6810000a682, - 0xa6830000a684, - 0xa6850000a686, - 0xa6870000a688, - 0xa6890000a68a, - 0xa68b0000a68c, - 0xa68d0000a68e, - 0xa68f0000a690, - 0xa6910000a692, - 0xa6930000a694, - 0xa6950000a696, - 0xa6970000a698, - 0xa6990000a69a, - 0xa69b0000a69c, - 0xa69e0000a6e6, - 0xa6f00000a6f2, - 0xa7170000a720, - 0xa7230000a724, - 0xa7250000a726, - 0xa7270000a728, - 0xa7290000a72a, - 0xa72b0000a72c, - 0xa72d0000a72e, - 0xa72f0000a732, - 0xa7330000a734, - 0xa7350000a736, - 0xa7370000a738, - 0xa7390000a73a, - 0xa73b0000a73c, - 0xa73d0000a73e, - 0xa73f0000a740, - 0xa7410000a742, - 0xa7430000a744, - 0xa7450000a746, - 0xa7470000a748, - 0xa7490000a74a, - 0xa74b0000a74c, - 0xa74d0000a74e, - 0xa74f0000a750, - 0xa7510000a752, - 0xa7530000a754, - 0xa7550000a756, - 0xa7570000a758, - 0xa7590000a75a, - 0xa75b0000a75c, - 0xa75d0000a75e, - 0xa75f0000a760, - 0xa7610000a762, - 0xa7630000a764, - 0xa7650000a766, - 0xa7670000a768, - 0xa7690000a76a, - 0xa76b0000a76c, - 0xa76d0000a76e, - 0xa76f0000a770, - 0xa7710000a779, - 0xa77a0000a77b, - 0xa77c0000a77d, - 0xa77f0000a780, - 0xa7810000a782, - 0xa7830000a784, - 0xa7850000a786, - 0xa7870000a789, - 0xa78c0000a78d, - 0xa78e0000a790, - 0xa7910000a792, - 0xa7930000a796, - 0xa7970000a798, - 0xa7990000a79a, - 0xa79b0000a79c, - 0xa79d0000a79e, - 0xa79f0000a7a0, - 0xa7a10000a7a2, - 0xa7a30000a7a4, - 0xa7a50000a7a6, - 0xa7a70000a7a8, - 0xa7a90000a7aa, - 0xa7af0000a7b0, - 0xa7b50000a7b6, - 0xa7b70000a7b8, - 0xa7b90000a7ba, - 0xa7f70000a7f8, - 0xa7fa0000a828, - 0xa8400000a874, - 0xa8800000a8c6, - 0xa8d00000a8da, - 0xa8e00000a8f8, - 0xa8fb0000a8fc, - 0xa8fd0000a92e, - 0xa9300000a954, - 0xa9800000a9c1, - 0xa9cf0000a9da, - 0xa9e00000a9ff, - 0xaa000000aa37, - 0xaa400000aa4e, - 0xaa500000aa5a, - 0xaa600000aa77, - 0xaa7a0000aac3, - 0xaadb0000aade, - 0xaae00000aaf0, - 0xaaf20000aaf7, - 0xab010000ab07, - 0xab090000ab0f, - 0xab110000ab17, - 0xab200000ab27, - 0xab280000ab2f, - 0xab300000ab5b, - 0xab600000ab66, - 0xabc00000abeb, - 0xabec0000abee, - 0xabf00000abfa, - 0xac000000d7a4, - 0xfa0e0000fa10, - 0xfa110000fa12, - 0xfa130000fa15, - 0xfa1f0000fa20, - 0xfa210000fa22, - 0xfa230000fa25, - 0xfa270000fa2a, - 0xfb1e0000fb1f, - 0xfe200000fe30, - 0xfe730000fe74, - 0x100000001000c, - 0x1000d00010027, - 0x100280001003b, - 0x1003c0001003e, - 0x1003f0001004e, - 0x100500001005e, - 0x10080000100fb, - 0x101fd000101fe, - 0x102800001029d, - 0x102a0000102d1, - 0x102e0000102e1, - 0x1030000010320, - 0x1032d00010341, - 0x103420001034a, - 0x103500001037b, - 0x103800001039e, - 0x103a0000103c4, - 0x103c8000103d0, - 0x104280001049e, - 0x104a0000104aa, - 0x104d8000104fc, - 0x1050000010528, - 0x1053000010564, - 0x1060000010737, - 0x1074000010756, - 0x1076000010768, - 0x1080000010806, - 0x1080800010809, - 0x1080a00010836, - 0x1083700010839, - 0x1083c0001083d, - 0x1083f00010856, - 0x1086000010877, - 0x108800001089f, - 0x108e0000108f3, - 0x108f4000108f6, - 0x1090000010916, - 0x109200001093a, - 0x10980000109b8, - 0x109be000109c0, - 0x10a0000010a04, - 0x10a0500010a07, - 0x10a0c00010a14, - 0x10a1500010a18, - 0x10a1900010a36, - 0x10a3800010a3b, - 0x10a3f00010a40, - 0x10a6000010a7d, - 0x10a8000010a9d, - 0x10ac000010ac8, - 0x10ac900010ae7, - 0x10b0000010b36, - 0x10b4000010b56, - 0x10b6000010b73, - 0x10b8000010b92, - 0x10c0000010c49, - 0x10cc000010cf3, - 0x10d0000010d28, - 0x10d3000010d3a, - 0x10f0000010f1d, - 0x10f2700010f28, - 0x10f3000010f51, - 0x1100000011047, - 0x1106600011070, - 0x1107f000110bb, - 0x110d0000110e9, - 0x110f0000110fa, - 0x1110000011135, - 0x1113600011140, - 0x1114400011147, - 0x1115000011174, - 0x1117600011177, - 0x11180000111c5, - 0x111c9000111cd, - 0x111d0000111db, - 0x111dc000111dd, - 0x1120000011212, - 0x1121300011238, - 0x1123e0001123f, - 0x1128000011287, - 0x1128800011289, - 0x1128a0001128e, - 0x1128f0001129e, - 0x1129f000112a9, - 0x112b0000112eb, - 0x112f0000112fa, - 0x1130000011304, - 0x113050001130d, - 0x1130f00011311, - 0x1131300011329, - 0x1132a00011331, - 0x1133200011334, - 0x113350001133a, - 0x1133b00011345, - 0x1134700011349, - 0x1134b0001134e, - 0x1135000011351, - 0x1135700011358, - 0x1135d00011364, - 0x113660001136d, - 0x1137000011375, - 0x114000001144b, - 0x114500001145a, - 0x1145e0001145f, - 0x11480000114c6, - 0x114c7000114c8, - 0x114d0000114da, - 0x11580000115b6, - 0x115b8000115c1, - 0x115d8000115de, - 0x1160000011641, - 0x1164400011645, - 0x116500001165a, - 0x11680000116b8, - 0x116c0000116ca, - 0x117000001171b, - 0x1171d0001172c, - 0x117300001173a, - 0x118000001183b, - 0x118c0000118ea, - 0x118ff00011900, - 0x11a0000011a3f, - 0x11a4700011a48, - 0x11a5000011a84, - 0x11a8600011a9a, - 0x11a9d00011a9e, - 0x11ac000011af9, - 0x11c0000011c09, - 0x11c0a00011c37, - 0x11c3800011c41, - 0x11c5000011c5a, - 0x11c7200011c90, - 0x11c9200011ca8, - 0x11ca900011cb7, - 0x11d0000011d07, - 0x11d0800011d0a, - 0x11d0b00011d37, - 0x11d3a00011d3b, - 0x11d3c00011d3e, - 0x11d3f00011d48, - 0x11d5000011d5a, - 0x11d6000011d66, - 0x11d6700011d69, - 0x11d6a00011d8f, - 0x11d9000011d92, - 0x11d9300011d99, - 0x11da000011daa, - 0x11ee000011ef7, - 0x120000001239a, - 0x1248000012544, - 0x130000001342f, - 0x1440000014647, - 0x1680000016a39, - 0x16a4000016a5f, - 0x16a6000016a6a, - 0x16ad000016aee, - 0x16af000016af5, - 0x16b0000016b37, - 0x16b4000016b44, - 0x16b5000016b5a, - 0x16b6300016b78, - 0x16b7d00016b90, - 0x16e6000016e80, - 0x16f0000016f45, - 0x16f5000016f7f, - 0x16f8f00016fa0, - 0x16fe000016fe2, - 0x17000000187f2, - 0x1880000018af3, - 0x1b0000001b11f, - 0x1b1700001b2fc, - 0x1bc000001bc6b, - 0x1bc700001bc7d, - 0x1bc800001bc89, - 0x1bc900001bc9a, - 0x1bc9d0001bc9f, - 0x1da000001da37, - 0x1da3b0001da6d, - 0x1da750001da76, - 0x1da840001da85, - 0x1da9b0001daa0, - 0x1daa10001dab0, - 0x1e0000001e007, - 0x1e0080001e019, - 0x1e01b0001e022, - 0x1e0230001e025, - 0x1e0260001e02b, - 0x1e8000001e8c5, - 0x1e8d00001e8d7, - 0x1e9220001e94b, - 0x1e9500001e95a, - 0x200000002a6d7, - 0x2a7000002b735, - 0x2b7400002b81e, - 0x2b8200002cea2, - 0x2ceb00002ebe1, - ), - 'CONTEXTJ': ( - 0x200c0000200e, - ), - 'CONTEXTO': ( - 0xb7000000b8, - 0x37500000376, - 0x5f3000005f5, - 0x6600000066a, - 0x6f0000006fa, - 0x30fb000030fc, - ), -} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/intranges.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/intranges.py deleted file mode 100644 index fa8a735..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/intranges.py +++ /dev/null @@ -1,53 +0,0 @@ -""" -Given a list of integers, made up of (hopefully) a small number of long runs -of consecutive integers, compute a representation of the form -((start1, end1), (start2, end2) ...). Then answer the question "was x present -in the original list?" in time O(log(# runs)). -""" - -import bisect - -def intranges_from_list(list_): - """Represent a list of integers as a sequence of ranges: - ((start_0, end_0), (start_1, end_1), ...), such that the original - integers are exactly those x such that start_i <= x < end_i for some i. - - Ranges are encoded as single integers (start << 32 | end), not as tuples. - """ - - sorted_list = sorted(list_) - ranges = [] - last_write = -1 - for i in range(len(sorted_list)): - if i+1 < len(sorted_list): - if sorted_list[i] == sorted_list[i+1]-1: - continue - current_range = sorted_list[last_write+1:i+1] - ranges.append(_encode_range(current_range[0], current_range[-1] + 1)) - last_write = i - - return tuple(ranges) - -def _encode_range(start, end): - return (start << 32) | end - -def _decode_range(r): - return (r >> 32), (r & ((1 << 32) - 1)) - - -def intranges_contain(int_, ranges): - """Determine if `int_` falls into one of the ranges in `ranges`.""" - tuple_ = _encode_range(int_, 0) - pos = bisect.bisect_left(ranges, tuple_) - # we could be immediately ahead of a tuple (start, end) - # with start < int_ <= end - if pos > 0: - left, right = _decode_range(ranges[pos-1]) - if left <= int_ < right: - return True - # or we could be immediately behind a tuple (int_, end) - if pos < len(ranges): - left, _ = _decode_range(ranges[pos]) - if left == int_: - return True - return False diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/package_data.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/package_data.py deleted file mode 100644 index 257e898..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/package_data.py +++ /dev/null @@ -1,2 +0,0 @@ -__version__ = '2.8' - diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/uts46data.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/uts46data.py deleted file mode 100644 index a68ed4c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/uts46data.py +++ /dev/null @@ -1,8205 +0,0 @@ -# This file is automatically generated by tools/idna-data -# vim: set fileencoding=utf-8 : - -"""IDNA Mapping Table from UTS46.""" - - -__version__ = "11.0.0" -def _seg_0(): - return [ - (0x0, '3'), - (0x1, '3'), - (0x2, '3'), - (0x3, '3'), - (0x4, '3'), - (0x5, '3'), - (0x6, '3'), - (0x7, '3'), - (0x8, '3'), - (0x9, '3'), - (0xA, '3'), - (0xB, '3'), - (0xC, '3'), - (0xD, '3'), - (0xE, '3'), - (0xF, '3'), - (0x10, '3'), - (0x11, '3'), - (0x12, '3'), - (0x13, '3'), - (0x14, '3'), - (0x15, '3'), - (0x16, '3'), - (0x17, '3'), - (0x18, '3'), - (0x19, '3'), - (0x1A, '3'), - (0x1B, '3'), - (0x1C, '3'), - (0x1D, '3'), - (0x1E, '3'), - (0x1F, '3'), - (0x20, '3'), - (0x21, '3'), - (0x22, '3'), - (0x23, '3'), - (0x24, '3'), - (0x25, '3'), - (0x26, '3'), - (0x27, '3'), - (0x28, '3'), - (0x29, '3'), - (0x2A, '3'), - (0x2B, '3'), - (0x2C, '3'), - (0x2D, 'V'), - (0x2E, 'V'), - (0x2F, '3'), - (0x30, 'V'), - (0x31, 'V'), - (0x32, 'V'), - (0x33, 'V'), - (0x34, 'V'), - (0x35, 'V'), - (0x36, 'V'), - (0x37, 'V'), - (0x38, 'V'), - (0x39, 'V'), - (0x3A, '3'), - (0x3B, '3'), - (0x3C, '3'), - (0x3D, '3'), - (0x3E, '3'), - (0x3F, '3'), - (0x40, '3'), - (0x41, 'M', u'a'), - (0x42, 'M', u'b'), - (0x43, 'M', u'c'), - (0x44, 'M', u'd'), - (0x45, 'M', u'e'), - (0x46, 'M', u'f'), - (0x47, 'M', u'g'), - (0x48, 'M', u'h'), - (0x49, 'M', u'i'), - (0x4A, 'M', u'j'), - (0x4B, 'M', u'k'), - (0x4C, 'M', u'l'), - (0x4D, 'M', u'm'), - (0x4E, 'M', u'n'), - (0x4F, 'M', u'o'), - (0x50, 'M', u'p'), - (0x51, 'M', u'q'), - (0x52, 'M', u'r'), - (0x53, 'M', u's'), - (0x54, 'M', u't'), - (0x55, 'M', u'u'), - (0x56, 'M', u'v'), - (0x57, 'M', u'w'), - (0x58, 'M', u'x'), - (0x59, 'M', u'y'), - (0x5A, 'M', u'z'), - (0x5B, '3'), - (0x5C, '3'), - (0x5D, '3'), - (0x5E, '3'), - (0x5F, '3'), - (0x60, '3'), - (0x61, 'V'), - (0x62, 'V'), - (0x63, 'V'), - ] - -def _seg_1(): - return [ - (0x64, 'V'), - (0x65, 'V'), - (0x66, 'V'), - (0x67, 'V'), - (0x68, 'V'), - (0x69, 'V'), - (0x6A, 'V'), - (0x6B, 'V'), - (0x6C, 'V'), - (0x6D, 'V'), - (0x6E, 'V'), - (0x6F, 'V'), - (0x70, 'V'), - (0x71, 'V'), - (0x72, 'V'), - (0x73, 'V'), - (0x74, 'V'), - (0x75, 'V'), - (0x76, 'V'), - (0x77, 'V'), - (0x78, 'V'), - (0x79, 'V'), - (0x7A, 'V'), - (0x7B, '3'), - (0x7C, '3'), - (0x7D, '3'), - (0x7E, '3'), - (0x7F, '3'), - (0x80, 'X'), - (0x81, 'X'), - (0x82, 'X'), - (0x83, 'X'), - (0x84, 'X'), - (0x85, 'X'), - (0x86, 'X'), - (0x87, 'X'), - (0x88, 'X'), - (0x89, 'X'), - (0x8A, 'X'), - (0x8B, 'X'), - (0x8C, 'X'), - (0x8D, 'X'), - (0x8E, 'X'), - (0x8F, 'X'), - (0x90, 'X'), - (0x91, 'X'), - (0x92, 'X'), - (0x93, 'X'), - (0x94, 'X'), - (0x95, 'X'), - (0x96, 'X'), - (0x97, 'X'), - (0x98, 'X'), - (0x99, 'X'), - (0x9A, 'X'), - (0x9B, 'X'), - (0x9C, 'X'), - (0x9D, 'X'), - (0x9E, 'X'), - (0x9F, 'X'), - (0xA0, '3', u' '), - (0xA1, 'V'), - (0xA2, 'V'), - (0xA3, 'V'), - (0xA4, 'V'), - (0xA5, 'V'), - (0xA6, 'V'), - (0xA7, 'V'), - (0xA8, '3', u' ̈'), - (0xA9, 'V'), - (0xAA, 'M', u'a'), - (0xAB, 'V'), - (0xAC, 'V'), - (0xAD, 'I'), - (0xAE, 'V'), - (0xAF, '3', u' ̄'), - (0xB0, 'V'), - (0xB1, 'V'), - (0xB2, 'M', u'2'), - (0xB3, 'M', u'3'), - (0xB4, '3', u' ́'), - (0xB5, 'M', u'μ'), - (0xB6, 'V'), - (0xB7, 'V'), - (0xB8, '3', u' ̧'), - (0xB9, 'M', u'1'), - (0xBA, 'M', u'o'), - (0xBB, 'V'), - (0xBC, 'M', u'1⁄4'), - (0xBD, 'M', u'1⁄2'), - (0xBE, 'M', u'3⁄4'), - (0xBF, 'V'), - (0xC0, 'M', u'à'), - (0xC1, 'M', u'á'), - (0xC2, 'M', u'â'), - (0xC3, 'M', u'ã'), - (0xC4, 'M', u'ä'), - (0xC5, 'M', u'å'), - (0xC6, 'M', u'æ'), - (0xC7, 'M', u'ç'), - ] - -def _seg_2(): - return [ - (0xC8, 'M', u'è'), - (0xC9, 'M', u'é'), - (0xCA, 'M', u'ê'), - (0xCB, 'M', u'ë'), - (0xCC, 'M', u'ì'), - (0xCD, 'M', u'í'), - (0xCE, 'M', u'î'), - (0xCF, 'M', u'ï'), - (0xD0, 'M', u'ð'), - (0xD1, 'M', u'ñ'), - (0xD2, 'M', u'ò'), - (0xD3, 'M', u'ó'), - (0xD4, 'M', u'ô'), - (0xD5, 'M', u'õ'), - (0xD6, 'M', u'ö'), - (0xD7, 'V'), - (0xD8, 'M', u'ø'), - (0xD9, 'M', u'ù'), - (0xDA, 'M', u'ú'), - (0xDB, 'M', u'û'), - (0xDC, 'M', u'ü'), - (0xDD, 'M', u'ý'), - (0xDE, 'M', u'þ'), - (0xDF, 'D', u'ss'), - (0xE0, 'V'), - (0xE1, 'V'), - (0xE2, 'V'), - (0xE3, 'V'), - (0xE4, 'V'), - (0xE5, 'V'), - (0xE6, 'V'), - (0xE7, 'V'), - (0xE8, 'V'), - (0xE9, 'V'), - (0xEA, 'V'), - (0xEB, 'V'), - (0xEC, 'V'), - (0xED, 'V'), - (0xEE, 'V'), - (0xEF, 'V'), - (0xF0, 'V'), - (0xF1, 'V'), - (0xF2, 'V'), - (0xF3, 'V'), - (0xF4, 'V'), - (0xF5, 'V'), - (0xF6, 'V'), - (0xF7, 'V'), - (0xF8, 'V'), - (0xF9, 'V'), - (0xFA, 'V'), - (0xFB, 'V'), - (0xFC, 'V'), - (0xFD, 'V'), - (0xFE, 'V'), - (0xFF, 'V'), - (0x100, 'M', u'ā'), - (0x101, 'V'), - (0x102, 'M', u'ă'), - (0x103, 'V'), - (0x104, 'M', u'ą'), - (0x105, 'V'), - (0x106, 'M', u'ć'), - (0x107, 'V'), - (0x108, 'M', u'ĉ'), - (0x109, 'V'), - (0x10A, 'M', u'ċ'), - (0x10B, 'V'), - (0x10C, 'M', u'č'), - (0x10D, 'V'), - (0x10E, 'M', u'ď'), - (0x10F, 'V'), - (0x110, 'M', u'đ'), - (0x111, 'V'), - (0x112, 'M', u'ē'), - (0x113, 'V'), - (0x114, 'M', u'ĕ'), - (0x115, 'V'), - (0x116, 'M', u'ė'), - (0x117, 'V'), - (0x118, 'M', u'ę'), - (0x119, 'V'), - (0x11A, 'M', u'ě'), - (0x11B, 'V'), - (0x11C, 'M', u'ĝ'), - (0x11D, 'V'), - (0x11E, 'M', u'ğ'), - (0x11F, 'V'), - (0x120, 'M', u'ġ'), - (0x121, 'V'), - (0x122, 'M', u'ģ'), - (0x123, 'V'), - (0x124, 'M', u'ĥ'), - (0x125, 'V'), - (0x126, 'M', u'ħ'), - (0x127, 'V'), - (0x128, 'M', u'ĩ'), - (0x129, 'V'), - (0x12A, 'M', u'ī'), - (0x12B, 'V'), - ] - -def _seg_3(): - return [ - (0x12C, 'M', u'ĭ'), - (0x12D, 'V'), - (0x12E, 'M', u'į'), - (0x12F, 'V'), - (0x130, 'M', u'i̇'), - (0x131, 'V'), - (0x132, 'M', u'ij'), - (0x134, 'M', u'ĵ'), - (0x135, 'V'), - (0x136, 'M', u'ķ'), - (0x137, 'V'), - (0x139, 'M', u'ĺ'), - (0x13A, 'V'), - (0x13B, 'M', u'ļ'), - (0x13C, 'V'), - (0x13D, 'M', u'ľ'), - (0x13E, 'V'), - (0x13F, 'M', u'l·'), - (0x141, 'M', u'ł'), - (0x142, 'V'), - (0x143, 'M', u'ń'), - (0x144, 'V'), - (0x145, 'M', u'ņ'), - (0x146, 'V'), - (0x147, 'M', u'ň'), - (0x148, 'V'), - (0x149, 'M', u'ʼn'), - (0x14A, 'M', u'ŋ'), - (0x14B, 'V'), - (0x14C, 'M', u'ō'), - (0x14D, 'V'), - (0x14E, 'M', u'ŏ'), - (0x14F, 'V'), - (0x150, 'M', u'ő'), - (0x151, 'V'), - (0x152, 'M', u'œ'), - (0x153, 'V'), - (0x154, 'M', u'ŕ'), - (0x155, 'V'), - (0x156, 'M', u'ŗ'), - (0x157, 'V'), - (0x158, 'M', u'ř'), - (0x159, 'V'), - (0x15A, 'M', u'ś'), - (0x15B, 'V'), - (0x15C, 'M', u'ŝ'), - (0x15D, 'V'), - (0x15E, 'M', u'ş'), - (0x15F, 'V'), - (0x160, 'M', u'š'), - (0x161, 'V'), - (0x162, 'M', u'ţ'), - (0x163, 'V'), - (0x164, 'M', u'ť'), - (0x165, 'V'), - (0x166, 'M', u'ŧ'), - (0x167, 'V'), - (0x168, 'M', u'ũ'), - (0x169, 'V'), - (0x16A, 'M', u'ū'), - (0x16B, 'V'), - (0x16C, 'M', u'ŭ'), - (0x16D, 'V'), - (0x16E, 'M', u'ů'), - (0x16F, 'V'), - (0x170, 'M', u'ű'), - (0x171, 'V'), - (0x172, 'M', u'ų'), - (0x173, 'V'), - (0x174, 'M', u'ŵ'), - (0x175, 'V'), - (0x176, 'M', u'ŷ'), - (0x177, 'V'), - (0x178, 'M', u'ÿ'), - (0x179, 'M', u'ź'), - (0x17A, 'V'), - (0x17B, 'M', u'ż'), - (0x17C, 'V'), - (0x17D, 'M', u'ž'), - (0x17E, 'V'), - (0x17F, 'M', u's'), - (0x180, 'V'), - (0x181, 'M', u'ɓ'), - (0x182, 'M', u'ƃ'), - (0x183, 'V'), - (0x184, 'M', u'ƅ'), - (0x185, 'V'), - (0x186, 'M', u'ɔ'), - (0x187, 'M', u'ƈ'), - (0x188, 'V'), - (0x189, 'M', u'ɖ'), - (0x18A, 'M', u'ɗ'), - (0x18B, 'M', u'ƌ'), - (0x18C, 'V'), - (0x18E, 'M', u'ǝ'), - (0x18F, 'M', u'ə'), - (0x190, 'M', u'ɛ'), - (0x191, 'M', u'ƒ'), - (0x192, 'V'), - (0x193, 'M', u'ɠ'), - ] - -def _seg_4(): - return [ - (0x194, 'M', u'ɣ'), - (0x195, 'V'), - (0x196, 'M', u'ɩ'), - (0x197, 'M', u'ɨ'), - (0x198, 'M', u'ƙ'), - (0x199, 'V'), - (0x19C, 'M', u'ɯ'), - (0x19D, 'M', u'ɲ'), - (0x19E, 'V'), - (0x19F, 'M', u'ɵ'), - (0x1A0, 'M', u'ơ'), - (0x1A1, 'V'), - (0x1A2, 'M', u'ƣ'), - (0x1A3, 'V'), - (0x1A4, 'M', u'ƥ'), - (0x1A5, 'V'), - (0x1A6, 'M', u'ʀ'), - (0x1A7, 'M', u'ƨ'), - (0x1A8, 'V'), - (0x1A9, 'M', u'ʃ'), - (0x1AA, 'V'), - (0x1AC, 'M', u'ƭ'), - (0x1AD, 'V'), - (0x1AE, 'M', u'ʈ'), - (0x1AF, 'M', u'ư'), - (0x1B0, 'V'), - (0x1B1, 'M', u'ʊ'), - (0x1B2, 'M', u'ʋ'), - (0x1B3, 'M', u'ƴ'), - (0x1B4, 'V'), - (0x1B5, 'M', u'ƶ'), - (0x1B6, 'V'), - (0x1B7, 'M', u'ʒ'), - (0x1B8, 'M', u'ƹ'), - (0x1B9, 'V'), - (0x1BC, 'M', u'ƽ'), - (0x1BD, 'V'), - (0x1C4, 'M', u'dž'), - (0x1C7, 'M', u'lj'), - (0x1CA, 'M', u'nj'), - (0x1CD, 'M', u'ǎ'), - (0x1CE, 'V'), - (0x1CF, 'M', u'ǐ'), - (0x1D0, 'V'), - (0x1D1, 'M', u'ǒ'), - (0x1D2, 'V'), - (0x1D3, 'M', u'ǔ'), - (0x1D4, 'V'), - (0x1D5, 'M', u'ǖ'), - (0x1D6, 'V'), - (0x1D7, 'M', u'ǘ'), - (0x1D8, 'V'), - (0x1D9, 'M', u'ǚ'), - (0x1DA, 'V'), - (0x1DB, 'M', u'ǜ'), - (0x1DC, 'V'), - (0x1DE, 'M', u'ǟ'), - (0x1DF, 'V'), - (0x1E0, 'M', u'ǡ'), - (0x1E1, 'V'), - (0x1E2, 'M', u'ǣ'), - (0x1E3, 'V'), - (0x1E4, 'M', u'ǥ'), - (0x1E5, 'V'), - (0x1E6, 'M', u'ǧ'), - (0x1E7, 'V'), - (0x1E8, 'M', u'ǩ'), - (0x1E9, 'V'), - (0x1EA, 'M', u'ǫ'), - (0x1EB, 'V'), - (0x1EC, 'M', u'ǭ'), - (0x1ED, 'V'), - (0x1EE, 'M', u'ǯ'), - (0x1EF, 'V'), - (0x1F1, 'M', u'dz'), - (0x1F4, 'M', u'ǵ'), - (0x1F5, 'V'), - (0x1F6, 'M', u'ƕ'), - (0x1F7, 'M', u'ƿ'), - (0x1F8, 'M', u'ǹ'), - (0x1F9, 'V'), - (0x1FA, 'M', u'ǻ'), - (0x1FB, 'V'), - (0x1FC, 'M', u'ǽ'), - (0x1FD, 'V'), - (0x1FE, 'M', u'ǿ'), - (0x1FF, 'V'), - (0x200, 'M', u'ȁ'), - (0x201, 'V'), - (0x202, 'M', u'ȃ'), - (0x203, 'V'), - (0x204, 'M', u'ȅ'), - (0x205, 'V'), - (0x206, 'M', u'ȇ'), - (0x207, 'V'), - (0x208, 'M', u'ȉ'), - (0x209, 'V'), - (0x20A, 'M', u'ȋ'), - (0x20B, 'V'), - (0x20C, 'M', u'ȍ'), - ] - -def _seg_5(): - return [ - (0x20D, 'V'), - (0x20E, 'M', u'ȏ'), - (0x20F, 'V'), - (0x210, 'M', u'ȑ'), - (0x211, 'V'), - (0x212, 'M', u'ȓ'), - (0x213, 'V'), - (0x214, 'M', u'ȕ'), - (0x215, 'V'), - (0x216, 'M', u'ȗ'), - (0x217, 'V'), - (0x218, 'M', u'ș'), - (0x219, 'V'), - (0x21A, 'M', u'ț'), - (0x21B, 'V'), - (0x21C, 'M', u'ȝ'), - (0x21D, 'V'), - (0x21E, 'M', u'ȟ'), - (0x21F, 'V'), - (0x220, 'M', u'ƞ'), - (0x221, 'V'), - (0x222, 'M', u'ȣ'), - (0x223, 'V'), - (0x224, 'M', u'ȥ'), - (0x225, 'V'), - (0x226, 'M', u'ȧ'), - (0x227, 'V'), - (0x228, 'M', u'ȩ'), - (0x229, 'V'), - (0x22A, 'M', u'ȫ'), - (0x22B, 'V'), - (0x22C, 'M', u'ȭ'), - (0x22D, 'V'), - (0x22E, 'M', u'ȯ'), - (0x22F, 'V'), - (0x230, 'M', u'ȱ'), - (0x231, 'V'), - (0x232, 'M', u'ȳ'), - (0x233, 'V'), - (0x23A, 'M', u'ⱥ'), - (0x23B, 'M', u'ȼ'), - (0x23C, 'V'), - (0x23D, 'M', u'ƚ'), - (0x23E, 'M', u'ⱦ'), - (0x23F, 'V'), - (0x241, 'M', u'ɂ'), - (0x242, 'V'), - (0x243, 'M', u'ƀ'), - (0x244, 'M', u'ʉ'), - (0x245, 'M', u'ʌ'), - (0x246, 'M', u'ɇ'), - (0x247, 'V'), - (0x248, 'M', u'ɉ'), - (0x249, 'V'), - (0x24A, 'M', u'ɋ'), - (0x24B, 'V'), - (0x24C, 'M', u'ɍ'), - (0x24D, 'V'), - (0x24E, 'M', u'ɏ'), - (0x24F, 'V'), - (0x2B0, 'M', u'h'), - (0x2B1, 'M', u'ɦ'), - (0x2B2, 'M', u'j'), - (0x2B3, 'M', u'r'), - (0x2B4, 'M', u'ɹ'), - (0x2B5, 'M', u'ɻ'), - (0x2B6, 'M', u'ʁ'), - (0x2B7, 'M', u'w'), - (0x2B8, 'M', u'y'), - (0x2B9, 'V'), - (0x2D8, '3', u' ̆'), - (0x2D9, '3', u' ̇'), - (0x2DA, '3', u' ̊'), - (0x2DB, '3', u' ̨'), - (0x2DC, '3', u' ̃'), - (0x2DD, '3', u' ̋'), - (0x2DE, 'V'), - (0x2E0, 'M', u'ɣ'), - (0x2E1, 'M', u'l'), - (0x2E2, 'M', u's'), - (0x2E3, 'M', u'x'), - (0x2E4, 'M', u'ʕ'), - (0x2E5, 'V'), - (0x340, 'M', u'̀'), - (0x341, 'M', u'́'), - (0x342, 'V'), - (0x343, 'M', u'̓'), - (0x344, 'M', u'̈́'), - (0x345, 'M', u'ι'), - (0x346, 'V'), - (0x34F, 'I'), - (0x350, 'V'), - (0x370, 'M', u'ͱ'), - (0x371, 'V'), - (0x372, 'M', u'ͳ'), - (0x373, 'V'), - (0x374, 'M', u'ʹ'), - (0x375, 'V'), - (0x376, 'M', u'ͷ'), - (0x377, 'V'), - ] - -def _seg_6(): - return [ - (0x378, 'X'), - (0x37A, '3', u' ι'), - (0x37B, 'V'), - (0x37E, '3', u';'), - (0x37F, 'M', u'ϳ'), - (0x380, 'X'), - (0x384, '3', u' ́'), - (0x385, '3', u' ̈́'), - (0x386, 'M', u'ά'), - (0x387, 'M', u'·'), - (0x388, 'M', u'έ'), - (0x389, 'M', u'ή'), - (0x38A, 'M', u'ί'), - (0x38B, 'X'), - (0x38C, 'M', u'ό'), - (0x38D, 'X'), - (0x38E, 'M', u'ύ'), - (0x38F, 'M', u'ώ'), - (0x390, 'V'), - (0x391, 'M', u'α'), - (0x392, 'M', u'β'), - (0x393, 'M', u'γ'), - (0x394, 'M', u'δ'), - (0x395, 'M', u'ε'), - (0x396, 'M', u'ζ'), - (0x397, 'M', u'η'), - (0x398, 'M', u'θ'), - (0x399, 'M', u'ι'), - (0x39A, 'M', u'κ'), - (0x39B, 'M', u'λ'), - (0x39C, 'M', u'μ'), - (0x39D, 'M', u'ν'), - (0x39E, 'M', u'ξ'), - (0x39F, 'M', u'ο'), - (0x3A0, 'M', u'π'), - (0x3A1, 'M', u'ρ'), - (0x3A2, 'X'), - (0x3A3, 'M', u'σ'), - (0x3A4, 'M', u'τ'), - (0x3A5, 'M', u'υ'), - (0x3A6, 'M', u'φ'), - (0x3A7, 'M', u'χ'), - (0x3A8, 'M', u'ψ'), - (0x3A9, 'M', u'ω'), - (0x3AA, 'M', u'ϊ'), - (0x3AB, 'M', u'ϋ'), - (0x3AC, 'V'), - (0x3C2, 'D', u'σ'), - (0x3C3, 'V'), - (0x3CF, 'M', u'ϗ'), - (0x3D0, 'M', u'β'), - (0x3D1, 'M', u'θ'), - (0x3D2, 'M', u'υ'), - (0x3D3, 'M', u'ύ'), - (0x3D4, 'M', u'ϋ'), - (0x3D5, 'M', u'φ'), - (0x3D6, 'M', u'π'), - (0x3D7, 'V'), - (0x3D8, 'M', u'ϙ'), - (0x3D9, 'V'), - (0x3DA, 'M', u'ϛ'), - (0x3DB, 'V'), - (0x3DC, 'M', u'ϝ'), - (0x3DD, 'V'), - (0x3DE, 'M', u'ϟ'), - (0x3DF, 'V'), - (0x3E0, 'M', u'ϡ'), - (0x3E1, 'V'), - (0x3E2, 'M', u'ϣ'), - (0x3E3, 'V'), - (0x3E4, 'M', u'ϥ'), - (0x3E5, 'V'), - (0x3E6, 'M', u'ϧ'), - (0x3E7, 'V'), - (0x3E8, 'M', u'ϩ'), - (0x3E9, 'V'), - (0x3EA, 'M', u'ϫ'), - (0x3EB, 'V'), - (0x3EC, 'M', u'ϭ'), - (0x3ED, 'V'), - (0x3EE, 'M', u'ϯ'), - (0x3EF, 'V'), - (0x3F0, 'M', u'κ'), - (0x3F1, 'M', u'ρ'), - (0x3F2, 'M', u'σ'), - (0x3F3, 'V'), - (0x3F4, 'M', u'θ'), - (0x3F5, 'M', u'ε'), - (0x3F6, 'V'), - (0x3F7, 'M', u'ϸ'), - (0x3F8, 'V'), - (0x3F9, 'M', u'σ'), - (0x3FA, 'M', u'ϻ'), - (0x3FB, 'V'), - (0x3FD, 'M', u'ͻ'), - (0x3FE, 'M', u'ͼ'), - (0x3FF, 'M', u'ͽ'), - (0x400, 'M', u'ѐ'), - (0x401, 'M', u'ё'), - (0x402, 'M', u'ђ'), - ] - -def _seg_7(): - return [ - (0x403, 'M', u'ѓ'), - (0x404, 'M', u'є'), - (0x405, 'M', u'ѕ'), - (0x406, 'M', u'і'), - (0x407, 'M', u'ї'), - (0x408, 'M', u'ј'), - (0x409, 'M', u'љ'), - (0x40A, 'M', u'њ'), - (0x40B, 'M', u'ћ'), - (0x40C, 'M', u'ќ'), - (0x40D, 'M', u'ѝ'), - (0x40E, 'M', u'ў'), - (0x40F, 'M', u'џ'), - (0x410, 'M', u'а'), - (0x411, 'M', u'б'), - (0x412, 'M', u'в'), - (0x413, 'M', u'г'), - (0x414, 'M', u'д'), - (0x415, 'M', u'е'), - (0x416, 'M', u'ж'), - (0x417, 'M', u'з'), - (0x418, 'M', u'и'), - (0x419, 'M', u'й'), - (0x41A, 'M', u'к'), - (0x41B, 'M', u'л'), - (0x41C, 'M', u'м'), - (0x41D, 'M', u'н'), - (0x41E, 'M', u'о'), - (0x41F, 'M', u'п'), - (0x420, 'M', u'р'), - (0x421, 'M', u'с'), - (0x422, 'M', u'т'), - (0x423, 'M', u'у'), - (0x424, 'M', u'ф'), - (0x425, 'M', u'х'), - (0x426, 'M', u'ц'), - (0x427, 'M', u'ч'), - (0x428, 'M', u'ш'), - (0x429, 'M', u'щ'), - (0x42A, 'M', u'ъ'), - (0x42B, 'M', u'ы'), - (0x42C, 'M', u'ь'), - (0x42D, 'M', u'э'), - (0x42E, 'M', u'ю'), - (0x42F, 'M', u'я'), - (0x430, 'V'), - (0x460, 'M', u'ѡ'), - (0x461, 'V'), - (0x462, 'M', u'ѣ'), - (0x463, 'V'), - (0x464, 'M', u'ѥ'), - (0x465, 'V'), - (0x466, 'M', u'ѧ'), - (0x467, 'V'), - (0x468, 'M', u'ѩ'), - (0x469, 'V'), - (0x46A, 'M', u'ѫ'), - (0x46B, 'V'), - (0x46C, 'M', u'ѭ'), - (0x46D, 'V'), - (0x46E, 'M', u'ѯ'), - (0x46F, 'V'), - (0x470, 'M', u'ѱ'), - (0x471, 'V'), - (0x472, 'M', u'ѳ'), - (0x473, 'V'), - (0x474, 'M', u'ѵ'), - (0x475, 'V'), - (0x476, 'M', u'ѷ'), - (0x477, 'V'), - (0x478, 'M', u'ѹ'), - (0x479, 'V'), - (0x47A, 'M', u'ѻ'), - (0x47B, 'V'), - (0x47C, 'M', u'ѽ'), - (0x47D, 'V'), - (0x47E, 'M', u'ѿ'), - (0x47F, 'V'), - (0x480, 'M', u'ҁ'), - (0x481, 'V'), - (0x48A, 'M', u'ҋ'), - (0x48B, 'V'), - (0x48C, 'M', u'ҍ'), - (0x48D, 'V'), - (0x48E, 'M', u'ҏ'), - (0x48F, 'V'), - (0x490, 'M', u'ґ'), - (0x491, 'V'), - (0x492, 'M', u'ғ'), - (0x493, 'V'), - (0x494, 'M', u'ҕ'), - (0x495, 'V'), - (0x496, 'M', u'җ'), - (0x497, 'V'), - (0x498, 'M', u'ҙ'), - (0x499, 'V'), - (0x49A, 'M', u'қ'), - (0x49B, 'V'), - (0x49C, 'M', u'ҝ'), - (0x49D, 'V'), - ] - -def _seg_8(): - return [ - (0x49E, 'M', u'ҟ'), - (0x49F, 'V'), - (0x4A0, 'M', u'ҡ'), - (0x4A1, 'V'), - (0x4A2, 'M', u'ң'), - (0x4A3, 'V'), - (0x4A4, 'M', u'ҥ'), - (0x4A5, 'V'), - (0x4A6, 'M', u'ҧ'), - (0x4A7, 'V'), - (0x4A8, 'M', u'ҩ'), - (0x4A9, 'V'), - (0x4AA, 'M', u'ҫ'), - (0x4AB, 'V'), - (0x4AC, 'M', u'ҭ'), - (0x4AD, 'V'), - (0x4AE, 'M', u'ү'), - (0x4AF, 'V'), - (0x4B0, 'M', u'ұ'), - (0x4B1, 'V'), - (0x4B2, 'M', u'ҳ'), - (0x4B3, 'V'), - (0x4B4, 'M', u'ҵ'), - (0x4B5, 'V'), - (0x4B6, 'M', u'ҷ'), - (0x4B7, 'V'), - (0x4B8, 'M', u'ҹ'), - (0x4B9, 'V'), - (0x4BA, 'M', u'һ'), - (0x4BB, 'V'), - (0x4BC, 'M', u'ҽ'), - (0x4BD, 'V'), - (0x4BE, 'M', u'ҿ'), - (0x4BF, 'V'), - (0x4C0, 'X'), - (0x4C1, 'M', u'ӂ'), - (0x4C2, 'V'), - (0x4C3, 'M', u'ӄ'), - (0x4C4, 'V'), - (0x4C5, 'M', u'ӆ'), - (0x4C6, 'V'), - (0x4C7, 'M', u'ӈ'), - (0x4C8, 'V'), - (0x4C9, 'M', u'ӊ'), - (0x4CA, 'V'), - (0x4CB, 'M', u'ӌ'), - (0x4CC, 'V'), - (0x4CD, 'M', u'ӎ'), - (0x4CE, 'V'), - (0x4D0, 'M', u'ӑ'), - (0x4D1, 'V'), - (0x4D2, 'M', u'ӓ'), - (0x4D3, 'V'), - (0x4D4, 'M', u'ӕ'), - (0x4D5, 'V'), - (0x4D6, 'M', u'ӗ'), - (0x4D7, 'V'), - (0x4D8, 'M', u'ә'), - (0x4D9, 'V'), - (0x4DA, 'M', u'ӛ'), - (0x4DB, 'V'), - (0x4DC, 'M', u'ӝ'), - (0x4DD, 'V'), - (0x4DE, 'M', u'ӟ'), - (0x4DF, 'V'), - (0x4E0, 'M', u'ӡ'), - (0x4E1, 'V'), - (0x4E2, 'M', u'ӣ'), - (0x4E3, 'V'), - (0x4E4, 'M', u'ӥ'), - (0x4E5, 'V'), - (0x4E6, 'M', u'ӧ'), - (0x4E7, 'V'), - (0x4E8, 'M', u'ө'), - (0x4E9, 'V'), - (0x4EA, 'M', u'ӫ'), - (0x4EB, 'V'), - (0x4EC, 'M', u'ӭ'), - (0x4ED, 'V'), - (0x4EE, 'M', u'ӯ'), - (0x4EF, 'V'), - (0x4F0, 'M', u'ӱ'), - (0x4F1, 'V'), - (0x4F2, 'M', u'ӳ'), - (0x4F3, 'V'), - (0x4F4, 'M', u'ӵ'), - (0x4F5, 'V'), - (0x4F6, 'M', u'ӷ'), - (0x4F7, 'V'), - (0x4F8, 'M', u'ӹ'), - (0x4F9, 'V'), - (0x4FA, 'M', u'ӻ'), - (0x4FB, 'V'), - (0x4FC, 'M', u'ӽ'), - (0x4FD, 'V'), - (0x4FE, 'M', u'ӿ'), - (0x4FF, 'V'), - (0x500, 'M', u'ԁ'), - (0x501, 'V'), - (0x502, 'M', u'ԃ'), - ] - -def _seg_9(): - return [ - (0x503, 'V'), - (0x504, 'M', u'ԅ'), - (0x505, 'V'), - (0x506, 'M', u'ԇ'), - (0x507, 'V'), - (0x508, 'M', u'ԉ'), - (0x509, 'V'), - (0x50A, 'M', u'ԋ'), - (0x50B, 'V'), - (0x50C, 'M', u'ԍ'), - (0x50D, 'V'), - (0x50E, 'M', u'ԏ'), - (0x50F, 'V'), - (0x510, 'M', u'ԑ'), - (0x511, 'V'), - (0x512, 'M', u'ԓ'), - (0x513, 'V'), - (0x514, 'M', u'ԕ'), - (0x515, 'V'), - (0x516, 'M', u'ԗ'), - (0x517, 'V'), - (0x518, 'M', u'ԙ'), - (0x519, 'V'), - (0x51A, 'M', u'ԛ'), - (0x51B, 'V'), - (0x51C, 'M', u'ԝ'), - (0x51D, 'V'), - (0x51E, 'M', u'ԟ'), - (0x51F, 'V'), - (0x520, 'M', u'ԡ'), - (0x521, 'V'), - (0x522, 'M', u'ԣ'), - (0x523, 'V'), - (0x524, 'M', u'ԥ'), - (0x525, 'V'), - (0x526, 'M', u'ԧ'), - (0x527, 'V'), - (0x528, 'M', u'ԩ'), - (0x529, 'V'), - (0x52A, 'M', u'ԫ'), - (0x52B, 'V'), - (0x52C, 'M', u'ԭ'), - (0x52D, 'V'), - (0x52E, 'M', u'ԯ'), - (0x52F, 'V'), - (0x530, 'X'), - (0x531, 'M', u'ա'), - (0x532, 'M', u'բ'), - (0x533, 'M', u'գ'), - (0x534, 'M', u'դ'), - (0x535, 'M', u'ե'), - (0x536, 'M', u'զ'), - (0x537, 'M', u'է'), - (0x538, 'M', u'ը'), - (0x539, 'M', u'թ'), - (0x53A, 'M', u'ժ'), - (0x53B, 'M', u'ի'), - (0x53C, 'M', u'լ'), - (0x53D, 'M', u'խ'), - (0x53E, 'M', u'ծ'), - (0x53F, 'M', u'կ'), - (0x540, 'M', u'հ'), - (0x541, 'M', u'ձ'), - (0x542, 'M', u'ղ'), - (0x543, 'M', u'ճ'), - (0x544, 'M', u'մ'), - (0x545, 'M', u'յ'), - (0x546, 'M', u'ն'), - (0x547, 'M', u'շ'), - (0x548, 'M', u'ո'), - (0x549, 'M', u'չ'), - (0x54A, 'M', u'պ'), - (0x54B, 'M', u'ջ'), - (0x54C, 'M', u'ռ'), - (0x54D, 'M', u'ս'), - (0x54E, 'M', u'վ'), - (0x54F, 'M', u'տ'), - (0x550, 'M', u'ր'), - (0x551, 'M', u'ց'), - (0x552, 'M', u'ւ'), - (0x553, 'M', u'փ'), - (0x554, 'M', u'ք'), - (0x555, 'M', u'օ'), - (0x556, 'M', u'ֆ'), - (0x557, 'X'), - (0x559, 'V'), - (0x587, 'M', u'եւ'), - (0x588, 'V'), - (0x58B, 'X'), - (0x58D, 'V'), - (0x590, 'X'), - (0x591, 'V'), - (0x5C8, 'X'), - (0x5D0, 'V'), - (0x5EB, 'X'), - (0x5EF, 'V'), - (0x5F5, 'X'), - (0x606, 'V'), - (0x61C, 'X'), - (0x61E, 'V'), - ] - -def _seg_10(): - return [ - (0x675, 'M', u'اٴ'), - (0x676, 'M', u'وٴ'), - (0x677, 'M', u'ۇٴ'), - (0x678, 'M', u'يٴ'), - (0x679, 'V'), - (0x6DD, 'X'), - (0x6DE, 'V'), - (0x70E, 'X'), - (0x710, 'V'), - (0x74B, 'X'), - (0x74D, 'V'), - (0x7B2, 'X'), - (0x7C0, 'V'), - (0x7FB, 'X'), - (0x7FD, 'V'), - (0x82E, 'X'), - (0x830, 'V'), - (0x83F, 'X'), - (0x840, 'V'), - (0x85C, 'X'), - (0x85E, 'V'), - (0x85F, 'X'), - (0x860, 'V'), - (0x86B, 'X'), - (0x8A0, 'V'), - (0x8B5, 'X'), - (0x8B6, 'V'), - (0x8BE, 'X'), - (0x8D3, 'V'), - (0x8E2, 'X'), - (0x8E3, 'V'), - (0x958, 'M', u'क़'), - (0x959, 'M', u'ख़'), - (0x95A, 'M', u'ग़'), - (0x95B, 'M', u'ज़'), - (0x95C, 'M', u'ड़'), - (0x95D, 'M', u'ढ़'), - (0x95E, 'M', u'फ़'), - (0x95F, 'M', u'य़'), - (0x960, 'V'), - (0x984, 'X'), - (0x985, 'V'), - (0x98D, 'X'), - (0x98F, 'V'), - (0x991, 'X'), - (0x993, 'V'), - (0x9A9, 'X'), - (0x9AA, 'V'), - (0x9B1, 'X'), - (0x9B2, 'V'), - (0x9B3, 'X'), - (0x9B6, 'V'), - (0x9BA, 'X'), - (0x9BC, 'V'), - (0x9C5, 'X'), - (0x9C7, 'V'), - (0x9C9, 'X'), - (0x9CB, 'V'), - (0x9CF, 'X'), - (0x9D7, 'V'), - (0x9D8, 'X'), - (0x9DC, 'M', u'ড়'), - (0x9DD, 'M', u'ঢ়'), - (0x9DE, 'X'), - (0x9DF, 'M', u'য়'), - (0x9E0, 'V'), - (0x9E4, 'X'), - (0x9E6, 'V'), - (0x9FF, 'X'), - (0xA01, 'V'), - (0xA04, 'X'), - (0xA05, 'V'), - (0xA0B, 'X'), - (0xA0F, 'V'), - (0xA11, 'X'), - (0xA13, 'V'), - (0xA29, 'X'), - (0xA2A, 'V'), - (0xA31, 'X'), - (0xA32, 'V'), - (0xA33, 'M', u'ਲ਼'), - (0xA34, 'X'), - (0xA35, 'V'), - (0xA36, 'M', u'ਸ਼'), - (0xA37, 'X'), - (0xA38, 'V'), - (0xA3A, 'X'), - (0xA3C, 'V'), - (0xA3D, 'X'), - (0xA3E, 'V'), - (0xA43, 'X'), - (0xA47, 'V'), - (0xA49, 'X'), - (0xA4B, 'V'), - (0xA4E, 'X'), - (0xA51, 'V'), - (0xA52, 'X'), - (0xA59, 'M', u'ਖ਼'), - (0xA5A, 'M', u'ਗ਼'), - (0xA5B, 'M', u'ਜ਼'), - ] - -def _seg_11(): - return [ - (0xA5C, 'V'), - (0xA5D, 'X'), - (0xA5E, 'M', u'ਫ਼'), - (0xA5F, 'X'), - (0xA66, 'V'), - (0xA77, 'X'), - (0xA81, 'V'), - (0xA84, 'X'), - (0xA85, 'V'), - (0xA8E, 'X'), - (0xA8F, 'V'), - (0xA92, 'X'), - (0xA93, 'V'), - (0xAA9, 'X'), - (0xAAA, 'V'), - (0xAB1, 'X'), - (0xAB2, 'V'), - (0xAB4, 'X'), - (0xAB5, 'V'), - (0xABA, 'X'), - (0xABC, 'V'), - (0xAC6, 'X'), - (0xAC7, 'V'), - (0xACA, 'X'), - (0xACB, 'V'), - (0xACE, 'X'), - (0xAD0, 'V'), - (0xAD1, 'X'), - (0xAE0, 'V'), - (0xAE4, 'X'), - (0xAE6, 'V'), - (0xAF2, 'X'), - (0xAF9, 'V'), - (0xB00, 'X'), - (0xB01, 'V'), - (0xB04, 'X'), - (0xB05, 'V'), - (0xB0D, 'X'), - (0xB0F, 'V'), - (0xB11, 'X'), - (0xB13, 'V'), - (0xB29, 'X'), - (0xB2A, 'V'), - (0xB31, 'X'), - (0xB32, 'V'), - (0xB34, 'X'), - (0xB35, 'V'), - (0xB3A, 'X'), - (0xB3C, 'V'), - (0xB45, 'X'), - (0xB47, 'V'), - (0xB49, 'X'), - (0xB4B, 'V'), - (0xB4E, 'X'), - (0xB56, 'V'), - (0xB58, 'X'), - (0xB5C, 'M', u'ଡ଼'), - (0xB5D, 'M', u'ଢ଼'), - (0xB5E, 'X'), - (0xB5F, 'V'), - (0xB64, 'X'), - (0xB66, 'V'), - (0xB78, 'X'), - (0xB82, 'V'), - (0xB84, 'X'), - (0xB85, 'V'), - (0xB8B, 'X'), - (0xB8E, 'V'), - (0xB91, 'X'), - (0xB92, 'V'), - (0xB96, 'X'), - (0xB99, 'V'), - (0xB9B, 'X'), - (0xB9C, 'V'), - (0xB9D, 'X'), - (0xB9E, 'V'), - (0xBA0, 'X'), - (0xBA3, 'V'), - (0xBA5, 'X'), - (0xBA8, 'V'), - (0xBAB, 'X'), - (0xBAE, 'V'), - (0xBBA, 'X'), - (0xBBE, 'V'), - (0xBC3, 'X'), - (0xBC6, 'V'), - (0xBC9, 'X'), - (0xBCA, 'V'), - (0xBCE, 'X'), - (0xBD0, 'V'), - (0xBD1, 'X'), - (0xBD7, 'V'), - (0xBD8, 'X'), - (0xBE6, 'V'), - (0xBFB, 'X'), - (0xC00, 'V'), - (0xC0D, 'X'), - (0xC0E, 'V'), - (0xC11, 'X'), - (0xC12, 'V'), - ] - -def _seg_12(): - return [ - (0xC29, 'X'), - (0xC2A, 'V'), - (0xC3A, 'X'), - (0xC3D, 'V'), - (0xC45, 'X'), - (0xC46, 'V'), - (0xC49, 'X'), - (0xC4A, 'V'), - (0xC4E, 'X'), - (0xC55, 'V'), - (0xC57, 'X'), - (0xC58, 'V'), - (0xC5B, 'X'), - (0xC60, 'V'), - (0xC64, 'X'), - (0xC66, 'V'), - (0xC70, 'X'), - (0xC78, 'V'), - (0xC8D, 'X'), - (0xC8E, 'V'), - (0xC91, 'X'), - (0xC92, 'V'), - (0xCA9, 'X'), - (0xCAA, 'V'), - (0xCB4, 'X'), - (0xCB5, 'V'), - (0xCBA, 'X'), - (0xCBC, 'V'), - (0xCC5, 'X'), - (0xCC6, 'V'), - (0xCC9, 'X'), - (0xCCA, 'V'), - (0xCCE, 'X'), - (0xCD5, 'V'), - (0xCD7, 'X'), - (0xCDE, 'V'), - (0xCDF, 'X'), - (0xCE0, 'V'), - (0xCE4, 'X'), - (0xCE6, 'V'), - (0xCF0, 'X'), - (0xCF1, 'V'), - (0xCF3, 'X'), - (0xD00, 'V'), - (0xD04, 'X'), - (0xD05, 'V'), - (0xD0D, 'X'), - (0xD0E, 'V'), - (0xD11, 'X'), - (0xD12, 'V'), - (0xD45, 'X'), - (0xD46, 'V'), - (0xD49, 'X'), - (0xD4A, 'V'), - (0xD50, 'X'), - (0xD54, 'V'), - (0xD64, 'X'), - (0xD66, 'V'), - (0xD80, 'X'), - (0xD82, 'V'), - (0xD84, 'X'), - (0xD85, 'V'), - (0xD97, 'X'), - (0xD9A, 'V'), - (0xDB2, 'X'), - (0xDB3, 'V'), - (0xDBC, 'X'), - (0xDBD, 'V'), - (0xDBE, 'X'), - (0xDC0, 'V'), - (0xDC7, 'X'), - (0xDCA, 'V'), - (0xDCB, 'X'), - (0xDCF, 'V'), - (0xDD5, 'X'), - (0xDD6, 'V'), - (0xDD7, 'X'), - (0xDD8, 'V'), - (0xDE0, 'X'), - (0xDE6, 'V'), - (0xDF0, 'X'), - (0xDF2, 'V'), - (0xDF5, 'X'), - (0xE01, 'V'), - (0xE33, 'M', u'ํา'), - (0xE34, 'V'), - (0xE3B, 'X'), - (0xE3F, 'V'), - (0xE5C, 'X'), - (0xE81, 'V'), - (0xE83, 'X'), - (0xE84, 'V'), - (0xE85, 'X'), - (0xE87, 'V'), - (0xE89, 'X'), - (0xE8A, 'V'), - (0xE8B, 'X'), - (0xE8D, 'V'), - (0xE8E, 'X'), - (0xE94, 'V'), - ] - -def _seg_13(): - return [ - (0xE98, 'X'), - (0xE99, 'V'), - (0xEA0, 'X'), - (0xEA1, 'V'), - (0xEA4, 'X'), - (0xEA5, 'V'), - (0xEA6, 'X'), - (0xEA7, 'V'), - (0xEA8, 'X'), - (0xEAA, 'V'), - (0xEAC, 'X'), - (0xEAD, 'V'), - (0xEB3, 'M', u'ໍາ'), - (0xEB4, 'V'), - (0xEBA, 'X'), - (0xEBB, 'V'), - (0xEBE, 'X'), - (0xEC0, 'V'), - (0xEC5, 'X'), - (0xEC6, 'V'), - (0xEC7, 'X'), - (0xEC8, 'V'), - (0xECE, 'X'), - (0xED0, 'V'), - (0xEDA, 'X'), - (0xEDC, 'M', u'ຫນ'), - (0xEDD, 'M', u'ຫມ'), - (0xEDE, 'V'), - (0xEE0, 'X'), - (0xF00, 'V'), - (0xF0C, 'M', u'་'), - (0xF0D, 'V'), - (0xF43, 'M', u'གྷ'), - (0xF44, 'V'), - (0xF48, 'X'), - (0xF49, 'V'), - (0xF4D, 'M', u'ཌྷ'), - (0xF4E, 'V'), - (0xF52, 'M', u'དྷ'), - (0xF53, 'V'), - (0xF57, 'M', u'བྷ'), - (0xF58, 'V'), - (0xF5C, 'M', u'ཛྷ'), - (0xF5D, 'V'), - (0xF69, 'M', u'ཀྵ'), - (0xF6A, 'V'), - (0xF6D, 'X'), - (0xF71, 'V'), - (0xF73, 'M', u'ཱི'), - (0xF74, 'V'), - (0xF75, 'M', u'ཱུ'), - (0xF76, 'M', u'ྲྀ'), - (0xF77, 'M', u'ྲཱྀ'), - (0xF78, 'M', u'ླྀ'), - (0xF79, 'M', u'ླཱྀ'), - (0xF7A, 'V'), - (0xF81, 'M', u'ཱྀ'), - (0xF82, 'V'), - (0xF93, 'M', u'ྒྷ'), - (0xF94, 'V'), - (0xF98, 'X'), - (0xF99, 'V'), - (0xF9D, 'M', u'ྜྷ'), - (0xF9E, 'V'), - (0xFA2, 'M', u'ྡྷ'), - (0xFA3, 'V'), - (0xFA7, 'M', u'ྦྷ'), - (0xFA8, 'V'), - (0xFAC, 'M', u'ྫྷ'), - (0xFAD, 'V'), - (0xFB9, 'M', u'ྐྵ'), - (0xFBA, 'V'), - (0xFBD, 'X'), - (0xFBE, 'V'), - (0xFCD, 'X'), - (0xFCE, 'V'), - (0xFDB, 'X'), - (0x1000, 'V'), - (0x10A0, 'X'), - (0x10C7, 'M', u'ⴧ'), - (0x10C8, 'X'), - (0x10CD, 'M', u'ⴭ'), - (0x10CE, 'X'), - (0x10D0, 'V'), - (0x10FC, 'M', u'ნ'), - (0x10FD, 'V'), - (0x115F, 'X'), - (0x1161, 'V'), - (0x1249, 'X'), - (0x124A, 'V'), - (0x124E, 'X'), - (0x1250, 'V'), - (0x1257, 'X'), - (0x1258, 'V'), - (0x1259, 'X'), - (0x125A, 'V'), - (0x125E, 'X'), - (0x1260, 'V'), - (0x1289, 'X'), - (0x128A, 'V'), - ] - -def _seg_14(): - return [ - (0x128E, 'X'), - (0x1290, 'V'), - (0x12B1, 'X'), - (0x12B2, 'V'), - (0x12B6, 'X'), - (0x12B8, 'V'), - (0x12BF, 'X'), - (0x12C0, 'V'), - (0x12C1, 'X'), - (0x12C2, 'V'), - (0x12C6, 'X'), - (0x12C8, 'V'), - (0x12D7, 'X'), - (0x12D8, 'V'), - (0x1311, 'X'), - (0x1312, 'V'), - (0x1316, 'X'), - (0x1318, 'V'), - (0x135B, 'X'), - (0x135D, 'V'), - (0x137D, 'X'), - (0x1380, 'V'), - (0x139A, 'X'), - (0x13A0, 'V'), - (0x13F6, 'X'), - (0x13F8, 'M', u'Ᏸ'), - (0x13F9, 'M', u'Ᏹ'), - (0x13FA, 'M', u'Ᏺ'), - (0x13FB, 'M', u'Ᏻ'), - (0x13FC, 'M', u'Ᏼ'), - (0x13FD, 'M', u'Ᏽ'), - (0x13FE, 'X'), - (0x1400, 'V'), - (0x1680, 'X'), - (0x1681, 'V'), - (0x169D, 'X'), - (0x16A0, 'V'), - (0x16F9, 'X'), - (0x1700, 'V'), - (0x170D, 'X'), - (0x170E, 'V'), - (0x1715, 'X'), - (0x1720, 'V'), - (0x1737, 'X'), - (0x1740, 'V'), - (0x1754, 'X'), - (0x1760, 'V'), - (0x176D, 'X'), - (0x176E, 'V'), - (0x1771, 'X'), - (0x1772, 'V'), - (0x1774, 'X'), - (0x1780, 'V'), - (0x17B4, 'X'), - (0x17B6, 'V'), - (0x17DE, 'X'), - (0x17E0, 'V'), - (0x17EA, 'X'), - (0x17F0, 'V'), - (0x17FA, 'X'), - (0x1800, 'V'), - (0x1806, 'X'), - (0x1807, 'V'), - (0x180B, 'I'), - (0x180E, 'X'), - (0x1810, 'V'), - (0x181A, 'X'), - (0x1820, 'V'), - (0x1879, 'X'), - (0x1880, 'V'), - (0x18AB, 'X'), - (0x18B0, 'V'), - (0x18F6, 'X'), - (0x1900, 'V'), - (0x191F, 'X'), - (0x1920, 'V'), - (0x192C, 'X'), - (0x1930, 'V'), - (0x193C, 'X'), - (0x1940, 'V'), - (0x1941, 'X'), - (0x1944, 'V'), - (0x196E, 'X'), - (0x1970, 'V'), - (0x1975, 'X'), - (0x1980, 'V'), - (0x19AC, 'X'), - (0x19B0, 'V'), - (0x19CA, 'X'), - (0x19D0, 'V'), - (0x19DB, 'X'), - (0x19DE, 'V'), - (0x1A1C, 'X'), - (0x1A1E, 'V'), - (0x1A5F, 'X'), - (0x1A60, 'V'), - (0x1A7D, 'X'), - (0x1A7F, 'V'), - (0x1A8A, 'X'), - (0x1A90, 'V'), - ] - -def _seg_15(): - return [ - (0x1A9A, 'X'), - (0x1AA0, 'V'), - (0x1AAE, 'X'), - (0x1AB0, 'V'), - (0x1ABF, 'X'), - (0x1B00, 'V'), - (0x1B4C, 'X'), - (0x1B50, 'V'), - (0x1B7D, 'X'), - (0x1B80, 'V'), - (0x1BF4, 'X'), - (0x1BFC, 'V'), - (0x1C38, 'X'), - (0x1C3B, 'V'), - (0x1C4A, 'X'), - (0x1C4D, 'V'), - (0x1C80, 'M', u'в'), - (0x1C81, 'M', u'д'), - (0x1C82, 'M', u'о'), - (0x1C83, 'M', u'с'), - (0x1C84, 'M', u'т'), - (0x1C86, 'M', u'ъ'), - (0x1C87, 'M', u'ѣ'), - (0x1C88, 'M', u'ꙋ'), - (0x1C89, 'X'), - (0x1CC0, 'V'), - (0x1CC8, 'X'), - (0x1CD0, 'V'), - (0x1CFA, 'X'), - (0x1D00, 'V'), - (0x1D2C, 'M', u'a'), - (0x1D2D, 'M', u'æ'), - (0x1D2E, 'M', u'b'), - (0x1D2F, 'V'), - (0x1D30, 'M', u'd'), - (0x1D31, 'M', u'e'), - (0x1D32, 'M', u'ǝ'), - (0x1D33, 'M', u'g'), - (0x1D34, 'M', u'h'), - (0x1D35, 'M', u'i'), - (0x1D36, 'M', u'j'), - (0x1D37, 'M', u'k'), - (0x1D38, 'M', u'l'), - (0x1D39, 'M', u'm'), - (0x1D3A, 'M', u'n'), - (0x1D3B, 'V'), - (0x1D3C, 'M', u'o'), - (0x1D3D, 'M', u'ȣ'), - (0x1D3E, 'M', u'p'), - (0x1D3F, 'M', u'r'), - (0x1D40, 'M', u't'), - (0x1D41, 'M', u'u'), - (0x1D42, 'M', u'w'), - (0x1D43, 'M', u'a'), - (0x1D44, 'M', u'ɐ'), - (0x1D45, 'M', u'ɑ'), - (0x1D46, 'M', u'ᴂ'), - (0x1D47, 'M', u'b'), - (0x1D48, 'M', u'd'), - (0x1D49, 'M', u'e'), - (0x1D4A, 'M', u'ə'), - (0x1D4B, 'M', u'ɛ'), - (0x1D4C, 'M', u'ɜ'), - (0x1D4D, 'M', u'g'), - (0x1D4E, 'V'), - (0x1D4F, 'M', u'k'), - (0x1D50, 'M', u'm'), - (0x1D51, 'M', u'ŋ'), - (0x1D52, 'M', u'o'), - (0x1D53, 'M', u'ɔ'), - (0x1D54, 'M', u'ᴖ'), - (0x1D55, 'M', u'ᴗ'), - (0x1D56, 'M', u'p'), - (0x1D57, 'M', u't'), - (0x1D58, 'M', u'u'), - (0x1D59, 'M', u'ᴝ'), - (0x1D5A, 'M', u'ɯ'), - (0x1D5B, 'M', u'v'), - (0x1D5C, 'M', u'ᴥ'), - (0x1D5D, 'M', u'β'), - (0x1D5E, 'M', u'γ'), - (0x1D5F, 'M', u'δ'), - (0x1D60, 'M', u'φ'), - (0x1D61, 'M', u'χ'), - (0x1D62, 'M', u'i'), - (0x1D63, 'M', u'r'), - (0x1D64, 'M', u'u'), - (0x1D65, 'M', u'v'), - (0x1D66, 'M', u'β'), - (0x1D67, 'M', u'γ'), - (0x1D68, 'M', u'ρ'), - (0x1D69, 'M', u'φ'), - (0x1D6A, 'M', u'χ'), - (0x1D6B, 'V'), - (0x1D78, 'M', u'н'), - (0x1D79, 'V'), - (0x1D9B, 'M', u'ɒ'), - (0x1D9C, 'M', u'c'), - (0x1D9D, 'M', u'ɕ'), - (0x1D9E, 'M', u'ð'), - ] - -def _seg_16(): - return [ - (0x1D9F, 'M', u'ɜ'), - (0x1DA0, 'M', u'f'), - (0x1DA1, 'M', u'ɟ'), - (0x1DA2, 'M', u'ɡ'), - (0x1DA3, 'M', u'ɥ'), - (0x1DA4, 'M', u'ɨ'), - (0x1DA5, 'M', u'ɩ'), - (0x1DA6, 'M', u'ɪ'), - (0x1DA7, 'M', u'ᵻ'), - (0x1DA8, 'M', u'ʝ'), - (0x1DA9, 'M', u'ɭ'), - (0x1DAA, 'M', u'ᶅ'), - (0x1DAB, 'M', u'ʟ'), - (0x1DAC, 'M', u'ɱ'), - (0x1DAD, 'M', u'ɰ'), - (0x1DAE, 'M', u'ɲ'), - (0x1DAF, 'M', u'ɳ'), - (0x1DB0, 'M', u'ɴ'), - (0x1DB1, 'M', u'ɵ'), - (0x1DB2, 'M', u'ɸ'), - (0x1DB3, 'M', u'ʂ'), - (0x1DB4, 'M', u'ʃ'), - (0x1DB5, 'M', u'ƫ'), - (0x1DB6, 'M', u'ʉ'), - (0x1DB7, 'M', u'ʊ'), - (0x1DB8, 'M', u'ᴜ'), - (0x1DB9, 'M', u'ʋ'), - (0x1DBA, 'M', u'ʌ'), - (0x1DBB, 'M', u'z'), - (0x1DBC, 'M', u'ʐ'), - (0x1DBD, 'M', u'ʑ'), - (0x1DBE, 'M', u'ʒ'), - (0x1DBF, 'M', u'θ'), - (0x1DC0, 'V'), - (0x1DFA, 'X'), - (0x1DFB, 'V'), - (0x1E00, 'M', u'ḁ'), - (0x1E01, 'V'), - (0x1E02, 'M', u'ḃ'), - (0x1E03, 'V'), - (0x1E04, 'M', u'ḅ'), - (0x1E05, 'V'), - (0x1E06, 'M', u'ḇ'), - (0x1E07, 'V'), - (0x1E08, 'M', u'ḉ'), - (0x1E09, 'V'), - (0x1E0A, 'M', u'ḋ'), - (0x1E0B, 'V'), - (0x1E0C, 'M', u'ḍ'), - (0x1E0D, 'V'), - (0x1E0E, 'M', u'ḏ'), - (0x1E0F, 'V'), - (0x1E10, 'M', u'ḑ'), - (0x1E11, 'V'), - (0x1E12, 'M', u'ḓ'), - (0x1E13, 'V'), - (0x1E14, 'M', u'ḕ'), - (0x1E15, 'V'), - (0x1E16, 'M', u'ḗ'), - (0x1E17, 'V'), - (0x1E18, 'M', u'ḙ'), - (0x1E19, 'V'), - (0x1E1A, 'M', u'ḛ'), - (0x1E1B, 'V'), - (0x1E1C, 'M', u'ḝ'), - (0x1E1D, 'V'), - (0x1E1E, 'M', u'ḟ'), - (0x1E1F, 'V'), - (0x1E20, 'M', u'ḡ'), - (0x1E21, 'V'), - (0x1E22, 'M', u'ḣ'), - (0x1E23, 'V'), - (0x1E24, 'M', u'ḥ'), - (0x1E25, 'V'), - (0x1E26, 'M', u'ḧ'), - (0x1E27, 'V'), - (0x1E28, 'M', u'ḩ'), - (0x1E29, 'V'), - (0x1E2A, 'M', u'ḫ'), - (0x1E2B, 'V'), - (0x1E2C, 'M', u'ḭ'), - (0x1E2D, 'V'), - (0x1E2E, 'M', u'ḯ'), - (0x1E2F, 'V'), - (0x1E30, 'M', u'ḱ'), - (0x1E31, 'V'), - (0x1E32, 'M', u'ḳ'), - (0x1E33, 'V'), - (0x1E34, 'M', u'ḵ'), - (0x1E35, 'V'), - (0x1E36, 'M', u'ḷ'), - (0x1E37, 'V'), - (0x1E38, 'M', u'ḹ'), - (0x1E39, 'V'), - (0x1E3A, 'M', u'ḻ'), - (0x1E3B, 'V'), - (0x1E3C, 'M', u'ḽ'), - (0x1E3D, 'V'), - (0x1E3E, 'M', u'ḿ'), - (0x1E3F, 'V'), - ] - -def _seg_17(): - return [ - (0x1E40, 'M', u'ṁ'), - (0x1E41, 'V'), - (0x1E42, 'M', u'ṃ'), - (0x1E43, 'V'), - (0x1E44, 'M', u'ṅ'), - (0x1E45, 'V'), - (0x1E46, 'M', u'ṇ'), - (0x1E47, 'V'), - (0x1E48, 'M', u'ṉ'), - (0x1E49, 'V'), - (0x1E4A, 'M', u'ṋ'), - (0x1E4B, 'V'), - (0x1E4C, 'M', u'ṍ'), - (0x1E4D, 'V'), - (0x1E4E, 'M', u'ṏ'), - (0x1E4F, 'V'), - (0x1E50, 'M', u'ṑ'), - (0x1E51, 'V'), - (0x1E52, 'M', u'ṓ'), - (0x1E53, 'V'), - (0x1E54, 'M', u'ṕ'), - (0x1E55, 'V'), - (0x1E56, 'M', u'ṗ'), - (0x1E57, 'V'), - (0x1E58, 'M', u'ṙ'), - (0x1E59, 'V'), - (0x1E5A, 'M', u'ṛ'), - (0x1E5B, 'V'), - (0x1E5C, 'M', u'ṝ'), - (0x1E5D, 'V'), - (0x1E5E, 'M', u'ṟ'), - (0x1E5F, 'V'), - (0x1E60, 'M', u'ṡ'), - (0x1E61, 'V'), - (0x1E62, 'M', u'ṣ'), - (0x1E63, 'V'), - (0x1E64, 'M', u'ṥ'), - (0x1E65, 'V'), - (0x1E66, 'M', u'ṧ'), - (0x1E67, 'V'), - (0x1E68, 'M', u'ṩ'), - (0x1E69, 'V'), - (0x1E6A, 'M', u'ṫ'), - (0x1E6B, 'V'), - (0x1E6C, 'M', u'ṭ'), - (0x1E6D, 'V'), - (0x1E6E, 'M', u'ṯ'), - (0x1E6F, 'V'), - (0x1E70, 'M', u'ṱ'), - (0x1E71, 'V'), - (0x1E72, 'M', u'ṳ'), - (0x1E73, 'V'), - (0x1E74, 'M', u'ṵ'), - (0x1E75, 'V'), - (0x1E76, 'M', u'ṷ'), - (0x1E77, 'V'), - (0x1E78, 'M', u'ṹ'), - (0x1E79, 'V'), - (0x1E7A, 'M', u'ṻ'), - (0x1E7B, 'V'), - (0x1E7C, 'M', u'ṽ'), - (0x1E7D, 'V'), - (0x1E7E, 'M', u'ṿ'), - (0x1E7F, 'V'), - (0x1E80, 'M', u'ẁ'), - (0x1E81, 'V'), - (0x1E82, 'M', u'ẃ'), - (0x1E83, 'V'), - (0x1E84, 'M', u'ẅ'), - (0x1E85, 'V'), - (0x1E86, 'M', u'ẇ'), - (0x1E87, 'V'), - (0x1E88, 'M', u'ẉ'), - (0x1E89, 'V'), - (0x1E8A, 'M', u'ẋ'), - (0x1E8B, 'V'), - (0x1E8C, 'M', u'ẍ'), - (0x1E8D, 'V'), - (0x1E8E, 'M', u'ẏ'), - (0x1E8F, 'V'), - (0x1E90, 'M', u'ẑ'), - (0x1E91, 'V'), - (0x1E92, 'M', u'ẓ'), - (0x1E93, 'V'), - (0x1E94, 'M', u'ẕ'), - (0x1E95, 'V'), - (0x1E9A, 'M', u'aʾ'), - (0x1E9B, 'M', u'ṡ'), - (0x1E9C, 'V'), - (0x1E9E, 'M', u'ss'), - (0x1E9F, 'V'), - (0x1EA0, 'M', u'ạ'), - (0x1EA1, 'V'), - (0x1EA2, 'M', u'ả'), - (0x1EA3, 'V'), - (0x1EA4, 'M', u'ấ'), - (0x1EA5, 'V'), - (0x1EA6, 'M', u'ầ'), - (0x1EA7, 'V'), - (0x1EA8, 'M', u'ẩ'), - ] - -def _seg_18(): - return [ - (0x1EA9, 'V'), - (0x1EAA, 'M', u'ẫ'), - (0x1EAB, 'V'), - (0x1EAC, 'M', u'ậ'), - (0x1EAD, 'V'), - (0x1EAE, 'M', u'ắ'), - (0x1EAF, 'V'), - (0x1EB0, 'M', u'ằ'), - (0x1EB1, 'V'), - (0x1EB2, 'M', u'ẳ'), - (0x1EB3, 'V'), - (0x1EB4, 'M', u'ẵ'), - (0x1EB5, 'V'), - (0x1EB6, 'M', u'ặ'), - (0x1EB7, 'V'), - (0x1EB8, 'M', u'ẹ'), - (0x1EB9, 'V'), - (0x1EBA, 'M', u'ẻ'), - (0x1EBB, 'V'), - (0x1EBC, 'M', u'ẽ'), - (0x1EBD, 'V'), - (0x1EBE, 'M', u'ế'), - (0x1EBF, 'V'), - (0x1EC0, 'M', u'ề'), - (0x1EC1, 'V'), - (0x1EC2, 'M', u'ể'), - (0x1EC3, 'V'), - (0x1EC4, 'M', u'ễ'), - (0x1EC5, 'V'), - (0x1EC6, 'M', u'ệ'), - (0x1EC7, 'V'), - (0x1EC8, 'M', u'ỉ'), - (0x1EC9, 'V'), - (0x1ECA, 'M', u'ị'), - (0x1ECB, 'V'), - (0x1ECC, 'M', u'ọ'), - (0x1ECD, 'V'), - (0x1ECE, 'M', u'ỏ'), - (0x1ECF, 'V'), - (0x1ED0, 'M', u'ố'), - (0x1ED1, 'V'), - (0x1ED2, 'M', u'ồ'), - (0x1ED3, 'V'), - (0x1ED4, 'M', u'ổ'), - (0x1ED5, 'V'), - (0x1ED6, 'M', u'ỗ'), - (0x1ED7, 'V'), - (0x1ED8, 'M', u'ộ'), - (0x1ED9, 'V'), - (0x1EDA, 'M', u'ớ'), - (0x1EDB, 'V'), - (0x1EDC, 'M', u'ờ'), - (0x1EDD, 'V'), - (0x1EDE, 'M', u'ở'), - (0x1EDF, 'V'), - (0x1EE0, 'M', u'ỡ'), - (0x1EE1, 'V'), - (0x1EE2, 'M', u'ợ'), - (0x1EE3, 'V'), - (0x1EE4, 'M', u'ụ'), - (0x1EE5, 'V'), - (0x1EE6, 'M', u'ủ'), - (0x1EE7, 'V'), - (0x1EE8, 'M', u'ứ'), - (0x1EE9, 'V'), - (0x1EEA, 'M', u'ừ'), - (0x1EEB, 'V'), - (0x1EEC, 'M', u'ử'), - (0x1EED, 'V'), - (0x1EEE, 'M', u'ữ'), - (0x1EEF, 'V'), - (0x1EF0, 'M', u'ự'), - (0x1EF1, 'V'), - (0x1EF2, 'M', u'ỳ'), - (0x1EF3, 'V'), - (0x1EF4, 'M', u'ỵ'), - (0x1EF5, 'V'), - (0x1EF6, 'M', u'ỷ'), - (0x1EF7, 'V'), - (0x1EF8, 'M', u'ỹ'), - (0x1EF9, 'V'), - (0x1EFA, 'M', u'ỻ'), - (0x1EFB, 'V'), - (0x1EFC, 'M', u'ỽ'), - (0x1EFD, 'V'), - (0x1EFE, 'M', u'ỿ'), - (0x1EFF, 'V'), - (0x1F08, 'M', u'ἀ'), - (0x1F09, 'M', u'ἁ'), - (0x1F0A, 'M', u'ἂ'), - (0x1F0B, 'M', u'ἃ'), - (0x1F0C, 'M', u'ἄ'), - (0x1F0D, 'M', u'ἅ'), - (0x1F0E, 'M', u'ἆ'), - (0x1F0F, 'M', u'ἇ'), - (0x1F10, 'V'), - (0x1F16, 'X'), - (0x1F18, 'M', u'ἐ'), - (0x1F19, 'M', u'ἑ'), - (0x1F1A, 'M', u'ἒ'), - ] - -def _seg_19(): - return [ - (0x1F1B, 'M', u'ἓ'), - (0x1F1C, 'M', u'ἔ'), - (0x1F1D, 'M', u'ἕ'), - (0x1F1E, 'X'), - (0x1F20, 'V'), - (0x1F28, 'M', u'ἠ'), - (0x1F29, 'M', u'ἡ'), - (0x1F2A, 'M', u'ἢ'), - (0x1F2B, 'M', u'ἣ'), - (0x1F2C, 'M', u'ἤ'), - (0x1F2D, 'M', u'ἥ'), - (0x1F2E, 'M', u'ἦ'), - (0x1F2F, 'M', u'ἧ'), - (0x1F30, 'V'), - (0x1F38, 'M', u'ἰ'), - (0x1F39, 'M', u'ἱ'), - (0x1F3A, 'M', u'ἲ'), - (0x1F3B, 'M', u'ἳ'), - (0x1F3C, 'M', u'ἴ'), - (0x1F3D, 'M', u'ἵ'), - (0x1F3E, 'M', u'ἶ'), - (0x1F3F, 'M', u'ἷ'), - (0x1F40, 'V'), - (0x1F46, 'X'), - (0x1F48, 'M', u'ὀ'), - (0x1F49, 'M', u'ὁ'), - (0x1F4A, 'M', u'ὂ'), - (0x1F4B, 'M', u'ὃ'), - (0x1F4C, 'M', u'ὄ'), - (0x1F4D, 'M', u'ὅ'), - (0x1F4E, 'X'), - (0x1F50, 'V'), - (0x1F58, 'X'), - (0x1F59, 'M', u'ὑ'), - (0x1F5A, 'X'), - (0x1F5B, 'M', u'ὓ'), - (0x1F5C, 'X'), - (0x1F5D, 'M', u'ὕ'), - (0x1F5E, 'X'), - (0x1F5F, 'M', u'ὗ'), - (0x1F60, 'V'), - (0x1F68, 'M', u'ὠ'), - (0x1F69, 'M', u'ὡ'), - (0x1F6A, 'M', u'ὢ'), - (0x1F6B, 'M', u'ὣ'), - (0x1F6C, 'M', u'ὤ'), - (0x1F6D, 'M', u'ὥ'), - (0x1F6E, 'M', u'ὦ'), - (0x1F6F, 'M', u'ὧ'), - (0x1F70, 'V'), - (0x1F71, 'M', u'ά'), - (0x1F72, 'V'), - (0x1F73, 'M', u'έ'), - (0x1F74, 'V'), - (0x1F75, 'M', u'ή'), - (0x1F76, 'V'), - (0x1F77, 'M', u'ί'), - (0x1F78, 'V'), - (0x1F79, 'M', u'ό'), - (0x1F7A, 'V'), - (0x1F7B, 'M', u'ύ'), - (0x1F7C, 'V'), - (0x1F7D, 'M', u'ώ'), - (0x1F7E, 'X'), - (0x1F80, 'M', u'ἀι'), - (0x1F81, 'M', u'ἁι'), - (0x1F82, 'M', u'ἂι'), - (0x1F83, 'M', u'ἃι'), - (0x1F84, 'M', u'ἄι'), - (0x1F85, 'M', u'ἅι'), - (0x1F86, 'M', u'ἆι'), - (0x1F87, 'M', u'ἇι'), - (0x1F88, 'M', u'ἀι'), - (0x1F89, 'M', u'ἁι'), - (0x1F8A, 'M', u'ἂι'), - (0x1F8B, 'M', u'ἃι'), - (0x1F8C, 'M', u'ἄι'), - (0x1F8D, 'M', u'ἅι'), - (0x1F8E, 'M', u'ἆι'), - (0x1F8F, 'M', u'ἇι'), - (0x1F90, 'M', u'ἠι'), - (0x1F91, 'M', u'ἡι'), - (0x1F92, 'M', u'ἢι'), - (0x1F93, 'M', u'ἣι'), - (0x1F94, 'M', u'ἤι'), - (0x1F95, 'M', u'ἥι'), - (0x1F96, 'M', u'ἦι'), - (0x1F97, 'M', u'ἧι'), - (0x1F98, 'M', u'ἠι'), - (0x1F99, 'M', u'ἡι'), - (0x1F9A, 'M', u'ἢι'), - (0x1F9B, 'M', u'ἣι'), - (0x1F9C, 'M', u'ἤι'), - (0x1F9D, 'M', u'ἥι'), - (0x1F9E, 'M', u'ἦι'), - (0x1F9F, 'M', u'ἧι'), - (0x1FA0, 'M', u'ὠι'), - (0x1FA1, 'M', u'ὡι'), - (0x1FA2, 'M', u'ὢι'), - (0x1FA3, 'M', u'ὣι'), - ] - -def _seg_20(): - return [ - (0x1FA4, 'M', u'ὤι'), - (0x1FA5, 'M', u'ὥι'), - (0x1FA6, 'M', u'ὦι'), - (0x1FA7, 'M', u'ὧι'), - (0x1FA8, 'M', u'ὠι'), - (0x1FA9, 'M', u'ὡι'), - (0x1FAA, 'M', u'ὢι'), - (0x1FAB, 'M', u'ὣι'), - (0x1FAC, 'M', u'ὤι'), - (0x1FAD, 'M', u'ὥι'), - (0x1FAE, 'M', u'ὦι'), - (0x1FAF, 'M', u'ὧι'), - (0x1FB0, 'V'), - (0x1FB2, 'M', u'ὰι'), - (0x1FB3, 'M', u'αι'), - (0x1FB4, 'M', u'άι'), - (0x1FB5, 'X'), - (0x1FB6, 'V'), - (0x1FB7, 'M', u'ᾶι'), - (0x1FB8, 'M', u'ᾰ'), - (0x1FB9, 'M', u'ᾱ'), - (0x1FBA, 'M', u'ὰ'), - (0x1FBB, 'M', u'ά'), - (0x1FBC, 'M', u'αι'), - (0x1FBD, '3', u' ̓'), - (0x1FBE, 'M', u'ι'), - (0x1FBF, '3', u' ̓'), - (0x1FC0, '3', u' ͂'), - (0x1FC1, '3', u' ̈͂'), - (0x1FC2, 'M', u'ὴι'), - (0x1FC3, 'M', u'ηι'), - (0x1FC4, 'M', u'ήι'), - (0x1FC5, 'X'), - (0x1FC6, 'V'), - (0x1FC7, 'M', u'ῆι'), - (0x1FC8, 'M', u'ὲ'), - (0x1FC9, 'M', u'έ'), - (0x1FCA, 'M', u'ὴ'), - (0x1FCB, 'M', u'ή'), - (0x1FCC, 'M', u'ηι'), - (0x1FCD, '3', u' ̓̀'), - (0x1FCE, '3', u' ̓́'), - (0x1FCF, '3', u' ̓͂'), - (0x1FD0, 'V'), - (0x1FD3, 'M', u'ΐ'), - (0x1FD4, 'X'), - (0x1FD6, 'V'), - (0x1FD8, 'M', u'ῐ'), - (0x1FD9, 'M', u'ῑ'), - (0x1FDA, 'M', u'ὶ'), - (0x1FDB, 'M', u'ί'), - (0x1FDC, 'X'), - (0x1FDD, '3', u' ̔̀'), - (0x1FDE, '3', u' ̔́'), - (0x1FDF, '3', u' ̔͂'), - (0x1FE0, 'V'), - (0x1FE3, 'M', u'ΰ'), - (0x1FE4, 'V'), - (0x1FE8, 'M', u'ῠ'), - (0x1FE9, 'M', u'ῡ'), - (0x1FEA, 'M', u'ὺ'), - (0x1FEB, 'M', u'ύ'), - (0x1FEC, 'M', u'ῥ'), - (0x1FED, '3', u' ̈̀'), - (0x1FEE, '3', u' ̈́'), - (0x1FEF, '3', u'`'), - (0x1FF0, 'X'), - (0x1FF2, 'M', u'ὼι'), - (0x1FF3, 'M', u'ωι'), - (0x1FF4, 'M', u'ώι'), - (0x1FF5, 'X'), - (0x1FF6, 'V'), - (0x1FF7, 'M', u'ῶι'), - (0x1FF8, 'M', u'ὸ'), - (0x1FF9, 'M', u'ό'), - (0x1FFA, 'M', u'ὼ'), - (0x1FFB, 'M', u'ώ'), - (0x1FFC, 'M', u'ωι'), - (0x1FFD, '3', u' ́'), - (0x1FFE, '3', u' ̔'), - (0x1FFF, 'X'), - (0x2000, '3', u' '), - (0x200B, 'I'), - (0x200C, 'D', u''), - (0x200E, 'X'), - (0x2010, 'V'), - (0x2011, 'M', u'‐'), - (0x2012, 'V'), - (0x2017, '3', u' ̳'), - (0x2018, 'V'), - (0x2024, 'X'), - (0x2027, 'V'), - (0x2028, 'X'), - (0x202F, '3', u' '), - (0x2030, 'V'), - (0x2033, 'M', u'′′'), - (0x2034, 'M', u'′′′'), - (0x2035, 'V'), - (0x2036, 'M', u'‵‵'), - (0x2037, 'M', u'‵‵‵'), - ] - -def _seg_21(): - return [ - (0x2038, 'V'), - (0x203C, '3', u'!!'), - (0x203D, 'V'), - (0x203E, '3', u' ̅'), - (0x203F, 'V'), - (0x2047, '3', u'??'), - (0x2048, '3', u'?!'), - (0x2049, '3', u'!?'), - (0x204A, 'V'), - (0x2057, 'M', u'′′′′'), - (0x2058, 'V'), - (0x205F, '3', u' '), - (0x2060, 'I'), - (0x2061, 'X'), - (0x2064, 'I'), - (0x2065, 'X'), - (0x2070, 'M', u'0'), - (0x2071, 'M', u'i'), - (0x2072, 'X'), - (0x2074, 'M', u'4'), - (0x2075, 'M', u'5'), - (0x2076, 'M', u'6'), - (0x2077, 'M', u'7'), - (0x2078, 'M', u'8'), - (0x2079, 'M', u'9'), - (0x207A, '3', u'+'), - (0x207B, 'M', u'−'), - (0x207C, '3', u'='), - (0x207D, '3', u'('), - (0x207E, '3', u')'), - (0x207F, 'M', u'n'), - (0x2080, 'M', u'0'), - (0x2081, 'M', u'1'), - (0x2082, 'M', u'2'), - (0x2083, 'M', u'3'), - (0x2084, 'M', u'4'), - (0x2085, 'M', u'5'), - (0x2086, 'M', u'6'), - (0x2087, 'M', u'7'), - (0x2088, 'M', u'8'), - (0x2089, 'M', u'9'), - (0x208A, '3', u'+'), - (0x208B, 'M', u'−'), - (0x208C, '3', u'='), - (0x208D, '3', u'('), - (0x208E, '3', u')'), - (0x208F, 'X'), - (0x2090, 'M', u'a'), - (0x2091, 'M', u'e'), - (0x2092, 'M', u'o'), - (0x2093, 'M', u'x'), - (0x2094, 'M', u'ə'), - (0x2095, 'M', u'h'), - (0x2096, 'M', u'k'), - (0x2097, 'M', u'l'), - (0x2098, 'M', u'm'), - (0x2099, 'M', u'n'), - (0x209A, 'M', u'p'), - (0x209B, 'M', u's'), - (0x209C, 'M', u't'), - (0x209D, 'X'), - (0x20A0, 'V'), - (0x20A8, 'M', u'rs'), - (0x20A9, 'V'), - (0x20C0, 'X'), - (0x20D0, 'V'), - (0x20F1, 'X'), - (0x2100, '3', u'a/c'), - (0x2101, '3', u'a/s'), - (0x2102, 'M', u'c'), - (0x2103, 'M', u'°c'), - (0x2104, 'V'), - (0x2105, '3', u'c/o'), - (0x2106, '3', u'c/u'), - (0x2107, 'M', u'ɛ'), - (0x2108, 'V'), - (0x2109, 'M', u'°f'), - (0x210A, 'M', u'g'), - (0x210B, 'M', u'h'), - (0x210F, 'M', u'ħ'), - (0x2110, 'M', u'i'), - (0x2112, 'M', u'l'), - (0x2114, 'V'), - (0x2115, 'M', u'n'), - (0x2116, 'M', u'no'), - (0x2117, 'V'), - (0x2119, 'M', u'p'), - (0x211A, 'M', u'q'), - (0x211B, 'M', u'r'), - (0x211E, 'V'), - (0x2120, 'M', u'sm'), - (0x2121, 'M', u'tel'), - (0x2122, 'M', u'tm'), - (0x2123, 'V'), - (0x2124, 'M', u'z'), - (0x2125, 'V'), - (0x2126, 'M', u'ω'), - (0x2127, 'V'), - (0x2128, 'M', u'z'), - (0x2129, 'V'), - ] - -def _seg_22(): - return [ - (0x212A, 'M', u'k'), - (0x212B, 'M', u'å'), - (0x212C, 'M', u'b'), - (0x212D, 'M', u'c'), - (0x212E, 'V'), - (0x212F, 'M', u'e'), - (0x2131, 'M', u'f'), - (0x2132, 'X'), - (0x2133, 'M', u'm'), - (0x2134, 'M', u'o'), - (0x2135, 'M', u'א'), - (0x2136, 'M', u'ב'), - (0x2137, 'M', u'ג'), - (0x2138, 'M', u'ד'), - (0x2139, 'M', u'i'), - (0x213A, 'V'), - (0x213B, 'M', u'fax'), - (0x213C, 'M', u'π'), - (0x213D, 'M', u'γ'), - (0x213F, 'M', u'π'), - (0x2140, 'M', u'∑'), - (0x2141, 'V'), - (0x2145, 'M', u'd'), - (0x2147, 'M', u'e'), - (0x2148, 'M', u'i'), - (0x2149, 'M', u'j'), - (0x214A, 'V'), - (0x2150, 'M', u'1⁄7'), - (0x2151, 'M', u'1⁄9'), - (0x2152, 'M', u'1⁄10'), - (0x2153, 'M', u'1⁄3'), - (0x2154, 'M', u'2⁄3'), - (0x2155, 'M', u'1⁄5'), - (0x2156, 'M', u'2⁄5'), - (0x2157, 'M', u'3⁄5'), - (0x2158, 'M', u'4⁄5'), - (0x2159, 'M', u'1⁄6'), - (0x215A, 'M', u'5⁄6'), - (0x215B, 'M', u'1⁄8'), - (0x215C, 'M', u'3⁄8'), - (0x215D, 'M', u'5⁄8'), - (0x215E, 'M', u'7⁄8'), - (0x215F, 'M', u'1⁄'), - (0x2160, 'M', u'i'), - (0x2161, 'M', u'ii'), - (0x2162, 'M', u'iii'), - (0x2163, 'M', u'iv'), - (0x2164, 'M', u'v'), - (0x2165, 'M', u'vi'), - (0x2166, 'M', u'vii'), - (0x2167, 'M', u'viii'), - (0x2168, 'M', u'ix'), - (0x2169, 'M', u'x'), - (0x216A, 'M', u'xi'), - (0x216B, 'M', u'xii'), - (0x216C, 'M', u'l'), - (0x216D, 'M', u'c'), - (0x216E, 'M', u'd'), - (0x216F, 'M', u'm'), - (0x2170, 'M', u'i'), - (0x2171, 'M', u'ii'), - (0x2172, 'M', u'iii'), - (0x2173, 'M', u'iv'), - (0x2174, 'M', u'v'), - (0x2175, 'M', u'vi'), - (0x2176, 'M', u'vii'), - (0x2177, 'M', u'viii'), - (0x2178, 'M', u'ix'), - (0x2179, 'M', u'x'), - (0x217A, 'M', u'xi'), - (0x217B, 'M', u'xii'), - (0x217C, 'M', u'l'), - (0x217D, 'M', u'c'), - (0x217E, 'M', u'd'), - (0x217F, 'M', u'm'), - (0x2180, 'V'), - (0x2183, 'X'), - (0x2184, 'V'), - (0x2189, 'M', u'0⁄3'), - (0x218A, 'V'), - (0x218C, 'X'), - (0x2190, 'V'), - (0x222C, 'M', u'∫∫'), - (0x222D, 'M', u'∫∫∫'), - (0x222E, 'V'), - (0x222F, 'M', u'∮∮'), - (0x2230, 'M', u'∮∮∮'), - (0x2231, 'V'), - (0x2260, '3'), - (0x2261, 'V'), - (0x226E, '3'), - (0x2270, 'V'), - (0x2329, 'M', u'〈'), - (0x232A, 'M', u'〉'), - (0x232B, 'V'), - (0x2427, 'X'), - (0x2440, 'V'), - (0x244B, 'X'), - (0x2460, 'M', u'1'), - (0x2461, 'M', u'2'), - ] - -def _seg_23(): - return [ - (0x2462, 'M', u'3'), - (0x2463, 'M', u'4'), - (0x2464, 'M', u'5'), - (0x2465, 'M', u'6'), - (0x2466, 'M', u'7'), - (0x2467, 'M', u'8'), - (0x2468, 'M', u'9'), - (0x2469, 'M', u'10'), - (0x246A, 'M', u'11'), - (0x246B, 'M', u'12'), - (0x246C, 'M', u'13'), - (0x246D, 'M', u'14'), - (0x246E, 'M', u'15'), - (0x246F, 'M', u'16'), - (0x2470, 'M', u'17'), - (0x2471, 'M', u'18'), - (0x2472, 'M', u'19'), - (0x2473, 'M', u'20'), - (0x2474, '3', u'(1)'), - (0x2475, '3', u'(2)'), - (0x2476, '3', u'(3)'), - (0x2477, '3', u'(4)'), - (0x2478, '3', u'(5)'), - (0x2479, '3', u'(6)'), - (0x247A, '3', u'(7)'), - (0x247B, '3', u'(8)'), - (0x247C, '3', u'(9)'), - (0x247D, '3', u'(10)'), - (0x247E, '3', u'(11)'), - (0x247F, '3', u'(12)'), - (0x2480, '3', u'(13)'), - (0x2481, '3', u'(14)'), - (0x2482, '3', u'(15)'), - (0x2483, '3', u'(16)'), - (0x2484, '3', u'(17)'), - (0x2485, '3', u'(18)'), - (0x2486, '3', u'(19)'), - (0x2487, '3', u'(20)'), - (0x2488, 'X'), - (0x249C, '3', u'(a)'), - (0x249D, '3', u'(b)'), - (0x249E, '3', u'(c)'), - (0x249F, '3', u'(d)'), - (0x24A0, '3', u'(e)'), - (0x24A1, '3', u'(f)'), - (0x24A2, '3', u'(g)'), - (0x24A3, '3', u'(h)'), - (0x24A4, '3', u'(i)'), - (0x24A5, '3', u'(j)'), - (0x24A6, '3', u'(k)'), - (0x24A7, '3', u'(l)'), - (0x24A8, '3', u'(m)'), - (0x24A9, '3', u'(n)'), - (0x24AA, '3', u'(o)'), - (0x24AB, '3', u'(p)'), - (0x24AC, '3', u'(q)'), - (0x24AD, '3', u'(r)'), - (0x24AE, '3', u'(s)'), - (0x24AF, '3', u'(t)'), - (0x24B0, '3', u'(u)'), - (0x24B1, '3', u'(v)'), - (0x24B2, '3', u'(w)'), - (0x24B3, '3', u'(x)'), - (0x24B4, '3', u'(y)'), - (0x24B5, '3', u'(z)'), - (0x24B6, 'M', u'a'), - (0x24B7, 'M', u'b'), - (0x24B8, 'M', u'c'), - (0x24B9, 'M', u'd'), - (0x24BA, 'M', u'e'), - (0x24BB, 'M', u'f'), - (0x24BC, 'M', u'g'), - (0x24BD, 'M', u'h'), - (0x24BE, 'M', u'i'), - (0x24BF, 'M', u'j'), - (0x24C0, 'M', u'k'), - (0x24C1, 'M', u'l'), - (0x24C2, 'M', u'm'), - (0x24C3, 'M', u'n'), - (0x24C4, 'M', u'o'), - (0x24C5, 'M', u'p'), - (0x24C6, 'M', u'q'), - (0x24C7, 'M', u'r'), - (0x24C8, 'M', u's'), - (0x24C9, 'M', u't'), - (0x24CA, 'M', u'u'), - (0x24CB, 'M', u'v'), - (0x24CC, 'M', u'w'), - (0x24CD, 'M', u'x'), - (0x24CE, 'M', u'y'), - (0x24CF, 'M', u'z'), - (0x24D0, 'M', u'a'), - (0x24D1, 'M', u'b'), - (0x24D2, 'M', u'c'), - (0x24D3, 'M', u'd'), - (0x24D4, 'M', u'e'), - (0x24D5, 'M', u'f'), - (0x24D6, 'M', u'g'), - (0x24D7, 'M', u'h'), - (0x24D8, 'M', u'i'), - ] - -def _seg_24(): - return [ - (0x24D9, 'M', u'j'), - (0x24DA, 'M', u'k'), - (0x24DB, 'M', u'l'), - (0x24DC, 'M', u'm'), - (0x24DD, 'M', u'n'), - (0x24DE, 'M', u'o'), - (0x24DF, 'M', u'p'), - (0x24E0, 'M', u'q'), - (0x24E1, 'M', u'r'), - (0x24E2, 'M', u's'), - (0x24E3, 'M', u't'), - (0x24E4, 'M', u'u'), - (0x24E5, 'M', u'v'), - (0x24E6, 'M', u'w'), - (0x24E7, 'M', u'x'), - (0x24E8, 'M', u'y'), - (0x24E9, 'M', u'z'), - (0x24EA, 'M', u'0'), - (0x24EB, 'V'), - (0x2A0C, 'M', u'∫∫∫∫'), - (0x2A0D, 'V'), - (0x2A74, '3', u'::='), - (0x2A75, '3', u'=='), - (0x2A76, '3', u'==='), - (0x2A77, 'V'), - (0x2ADC, 'M', u'⫝̸'), - (0x2ADD, 'V'), - (0x2B74, 'X'), - (0x2B76, 'V'), - (0x2B96, 'X'), - (0x2B98, 'V'), - (0x2BC9, 'X'), - (0x2BCA, 'V'), - (0x2BFF, 'X'), - (0x2C00, 'M', u'ⰰ'), - (0x2C01, 'M', u'ⰱ'), - (0x2C02, 'M', u'ⰲ'), - (0x2C03, 'M', u'ⰳ'), - (0x2C04, 'M', u'ⰴ'), - (0x2C05, 'M', u'ⰵ'), - (0x2C06, 'M', u'ⰶ'), - (0x2C07, 'M', u'ⰷ'), - (0x2C08, 'M', u'ⰸ'), - (0x2C09, 'M', u'ⰹ'), - (0x2C0A, 'M', u'ⰺ'), - (0x2C0B, 'M', u'ⰻ'), - (0x2C0C, 'M', u'ⰼ'), - (0x2C0D, 'M', u'ⰽ'), - (0x2C0E, 'M', u'ⰾ'), - (0x2C0F, 'M', u'ⰿ'), - (0x2C10, 'M', u'ⱀ'), - (0x2C11, 'M', u'ⱁ'), - (0x2C12, 'M', u'ⱂ'), - (0x2C13, 'M', u'ⱃ'), - (0x2C14, 'M', u'ⱄ'), - (0x2C15, 'M', u'ⱅ'), - (0x2C16, 'M', u'ⱆ'), - (0x2C17, 'M', u'ⱇ'), - (0x2C18, 'M', u'ⱈ'), - (0x2C19, 'M', u'ⱉ'), - (0x2C1A, 'M', u'ⱊ'), - (0x2C1B, 'M', u'ⱋ'), - (0x2C1C, 'M', u'ⱌ'), - (0x2C1D, 'M', u'ⱍ'), - (0x2C1E, 'M', u'ⱎ'), - (0x2C1F, 'M', u'ⱏ'), - (0x2C20, 'M', u'ⱐ'), - (0x2C21, 'M', u'ⱑ'), - (0x2C22, 'M', u'ⱒ'), - (0x2C23, 'M', u'ⱓ'), - (0x2C24, 'M', u'ⱔ'), - (0x2C25, 'M', u'ⱕ'), - (0x2C26, 'M', u'ⱖ'), - (0x2C27, 'M', u'ⱗ'), - (0x2C28, 'M', u'ⱘ'), - (0x2C29, 'M', u'ⱙ'), - (0x2C2A, 'M', u'ⱚ'), - (0x2C2B, 'M', u'ⱛ'), - (0x2C2C, 'M', u'ⱜ'), - (0x2C2D, 'M', u'ⱝ'), - (0x2C2E, 'M', u'ⱞ'), - (0x2C2F, 'X'), - (0x2C30, 'V'), - (0x2C5F, 'X'), - (0x2C60, 'M', u'ⱡ'), - (0x2C61, 'V'), - (0x2C62, 'M', u'ɫ'), - (0x2C63, 'M', u'ᵽ'), - (0x2C64, 'M', u'ɽ'), - (0x2C65, 'V'), - (0x2C67, 'M', u'ⱨ'), - (0x2C68, 'V'), - (0x2C69, 'M', u'ⱪ'), - (0x2C6A, 'V'), - (0x2C6B, 'M', u'ⱬ'), - (0x2C6C, 'V'), - (0x2C6D, 'M', u'ɑ'), - (0x2C6E, 'M', u'ɱ'), - (0x2C6F, 'M', u'ɐ'), - (0x2C70, 'M', u'ɒ'), - ] - -def _seg_25(): - return [ - (0x2C71, 'V'), - (0x2C72, 'M', u'ⱳ'), - (0x2C73, 'V'), - (0x2C75, 'M', u'ⱶ'), - (0x2C76, 'V'), - (0x2C7C, 'M', u'j'), - (0x2C7D, 'M', u'v'), - (0x2C7E, 'M', u'ȿ'), - (0x2C7F, 'M', u'ɀ'), - (0x2C80, 'M', u'ⲁ'), - (0x2C81, 'V'), - (0x2C82, 'M', u'ⲃ'), - (0x2C83, 'V'), - (0x2C84, 'M', u'ⲅ'), - (0x2C85, 'V'), - (0x2C86, 'M', u'ⲇ'), - (0x2C87, 'V'), - (0x2C88, 'M', u'ⲉ'), - (0x2C89, 'V'), - (0x2C8A, 'M', u'ⲋ'), - (0x2C8B, 'V'), - (0x2C8C, 'M', u'ⲍ'), - (0x2C8D, 'V'), - (0x2C8E, 'M', u'ⲏ'), - (0x2C8F, 'V'), - (0x2C90, 'M', u'ⲑ'), - (0x2C91, 'V'), - (0x2C92, 'M', u'ⲓ'), - (0x2C93, 'V'), - (0x2C94, 'M', u'ⲕ'), - (0x2C95, 'V'), - (0x2C96, 'M', u'ⲗ'), - (0x2C97, 'V'), - (0x2C98, 'M', u'ⲙ'), - (0x2C99, 'V'), - (0x2C9A, 'M', u'ⲛ'), - (0x2C9B, 'V'), - (0x2C9C, 'M', u'ⲝ'), - (0x2C9D, 'V'), - (0x2C9E, 'M', u'ⲟ'), - (0x2C9F, 'V'), - (0x2CA0, 'M', u'ⲡ'), - (0x2CA1, 'V'), - (0x2CA2, 'M', u'ⲣ'), - (0x2CA3, 'V'), - (0x2CA4, 'M', u'ⲥ'), - (0x2CA5, 'V'), - (0x2CA6, 'M', u'ⲧ'), - (0x2CA7, 'V'), - (0x2CA8, 'M', u'ⲩ'), - (0x2CA9, 'V'), - (0x2CAA, 'M', u'ⲫ'), - (0x2CAB, 'V'), - (0x2CAC, 'M', u'ⲭ'), - (0x2CAD, 'V'), - (0x2CAE, 'M', u'ⲯ'), - (0x2CAF, 'V'), - (0x2CB0, 'M', u'ⲱ'), - (0x2CB1, 'V'), - (0x2CB2, 'M', u'ⲳ'), - (0x2CB3, 'V'), - (0x2CB4, 'M', u'ⲵ'), - (0x2CB5, 'V'), - (0x2CB6, 'M', u'ⲷ'), - (0x2CB7, 'V'), - (0x2CB8, 'M', u'ⲹ'), - (0x2CB9, 'V'), - (0x2CBA, 'M', u'ⲻ'), - (0x2CBB, 'V'), - (0x2CBC, 'M', u'ⲽ'), - (0x2CBD, 'V'), - (0x2CBE, 'M', u'ⲿ'), - (0x2CBF, 'V'), - (0x2CC0, 'M', u'ⳁ'), - (0x2CC1, 'V'), - (0x2CC2, 'M', u'ⳃ'), - (0x2CC3, 'V'), - (0x2CC4, 'M', u'ⳅ'), - (0x2CC5, 'V'), - (0x2CC6, 'M', u'ⳇ'), - (0x2CC7, 'V'), - (0x2CC8, 'M', u'ⳉ'), - (0x2CC9, 'V'), - (0x2CCA, 'M', u'ⳋ'), - (0x2CCB, 'V'), - (0x2CCC, 'M', u'ⳍ'), - (0x2CCD, 'V'), - (0x2CCE, 'M', u'ⳏ'), - (0x2CCF, 'V'), - (0x2CD0, 'M', u'ⳑ'), - (0x2CD1, 'V'), - (0x2CD2, 'M', u'ⳓ'), - (0x2CD3, 'V'), - (0x2CD4, 'M', u'ⳕ'), - (0x2CD5, 'V'), - (0x2CD6, 'M', u'ⳗ'), - (0x2CD7, 'V'), - (0x2CD8, 'M', u'ⳙ'), - (0x2CD9, 'V'), - (0x2CDA, 'M', u'ⳛ'), - ] - -def _seg_26(): - return [ - (0x2CDB, 'V'), - (0x2CDC, 'M', u'ⳝ'), - (0x2CDD, 'V'), - (0x2CDE, 'M', u'ⳟ'), - (0x2CDF, 'V'), - (0x2CE0, 'M', u'ⳡ'), - (0x2CE1, 'V'), - (0x2CE2, 'M', u'ⳣ'), - (0x2CE3, 'V'), - (0x2CEB, 'M', u'ⳬ'), - (0x2CEC, 'V'), - (0x2CED, 'M', u'ⳮ'), - (0x2CEE, 'V'), - (0x2CF2, 'M', u'ⳳ'), - (0x2CF3, 'V'), - (0x2CF4, 'X'), - (0x2CF9, 'V'), - (0x2D26, 'X'), - (0x2D27, 'V'), - (0x2D28, 'X'), - (0x2D2D, 'V'), - (0x2D2E, 'X'), - (0x2D30, 'V'), - (0x2D68, 'X'), - (0x2D6F, 'M', u'ⵡ'), - (0x2D70, 'V'), - (0x2D71, 'X'), - (0x2D7F, 'V'), - (0x2D97, 'X'), - (0x2DA0, 'V'), - (0x2DA7, 'X'), - (0x2DA8, 'V'), - (0x2DAF, 'X'), - (0x2DB0, 'V'), - (0x2DB7, 'X'), - (0x2DB8, 'V'), - (0x2DBF, 'X'), - (0x2DC0, 'V'), - (0x2DC7, 'X'), - (0x2DC8, 'V'), - (0x2DCF, 'X'), - (0x2DD0, 'V'), - (0x2DD7, 'X'), - (0x2DD8, 'V'), - (0x2DDF, 'X'), - (0x2DE0, 'V'), - (0x2E4F, 'X'), - (0x2E80, 'V'), - (0x2E9A, 'X'), - (0x2E9B, 'V'), - (0x2E9F, 'M', u'母'), - (0x2EA0, 'V'), - (0x2EF3, 'M', u'龟'), - (0x2EF4, 'X'), - (0x2F00, 'M', u'一'), - (0x2F01, 'M', u'丨'), - (0x2F02, 'M', u'丶'), - (0x2F03, 'M', u'丿'), - (0x2F04, 'M', u'乙'), - (0x2F05, 'M', u'亅'), - (0x2F06, 'M', u'二'), - (0x2F07, 'M', u'亠'), - (0x2F08, 'M', u'人'), - (0x2F09, 'M', u'儿'), - (0x2F0A, 'M', u'入'), - (0x2F0B, 'M', u'八'), - (0x2F0C, 'M', u'冂'), - (0x2F0D, 'M', u'冖'), - (0x2F0E, 'M', u'冫'), - (0x2F0F, 'M', u'几'), - (0x2F10, 'M', u'凵'), - (0x2F11, 'M', u'刀'), - (0x2F12, 'M', u'力'), - (0x2F13, 'M', u'勹'), - (0x2F14, 'M', u'匕'), - (0x2F15, 'M', u'匚'), - (0x2F16, 'M', u'匸'), - (0x2F17, 'M', u'十'), - (0x2F18, 'M', u'卜'), - (0x2F19, 'M', u'卩'), - (0x2F1A, 'M', u'厂'), - (0x2F1B, 'M', u'厶'), - (0x2F1C, 'M', u'又'), - (0x2F1D, 'M', u'口'), - (0x2F1E, 'M', u'囗'), - (0x2F1F, 'M', u'土'), - (0x2F20, 'M', u'士'), - (0x2F21, 'M', u'夂'), - (0x2F22, 'M', u'夊'), - (0x2F23, 'M', u'夕'), - (0x2F24, 'M', u'大'), - (0x2F25, 'M', u'女'), - (0x2F26, 'M', u'子'), - (0x2F27, 'M', u'宀'), - (0x2F28, 'M', u'寸'), - (0x2F29, 'M', u'小'), - (0x2F2A, 'M', u'尢'), - (0x2F2B, 'M', u'尸'), - (0x2F2C, 'M', u'屮'), - (0x2F2D, 'M', u'山'), - ] - -def _seg_27(): - return [ - (0x2F2E, 'M', u'巛'), - (0x2F2F, 'M', u'工'), - (0x2F30, 'M', u'己'), - (0x2F31, 'M', u'巾'), - (0x2F32, 'M', u'干'), - (0x2F33, 'M', u'幺'), - (0x2F34, 'M', u'广'), - (0x2F35, 'M', u'廴'), - (0x2F36, 'M', u'廾'), - (0x2F37, 'M', u'弋'), - (0x2F38, 'M', u'弓'), - (0x2F39, 'M', u'彐'), - (0x2F3A, 'M', u'彡'), - (0x2F3B, 'M', u'彳'), - (0x2F3C, 'M', u'心'), - (0x2F3D, 'M', u'戈'), - (0x2F3E, 'M', u'戶'), - (0x2F3F, 'M', u'手'), - (0x2F40, 'M', u'支'), - (0x2F41, 'M', u'攴'), - (0x2F42, 'M', u'文'), - (0x2F43, 'M', u'斗'), - (0x2F44, 'M', u'斤'), - (0x2F45, 'M', u'方'), - (0x2F46, 'M', u'无'), - (0x2F47, 'M', u'日'), - (0x2F48, 'M', u'曰'), - (0x2F49, 'M', u'月'), - (0x2F4A, 'M', u'木'), - (0x2F4B, 'M', u'欠'), - (0x2F4C, 'M', u'止'), - (0x2F4D, 'M', u'歹'), - (0x2F4E, 'M', u'殳'), - (0x2F4F, 'M', u'毋'), - (0x2F50, 'M', u'比'), - (0x2F51, 'M', u'毛'), - (0x2F52, 'M', u'氏'), - (0x2F53, 'M', u'气'), - (0x2F54, 'M', u'水'), - (0x2F55, 'M', u'火'), - (0x2F56, 'M', u'爪'), - (0x2F57, 'M', u'父'), - (0x2F58, 'M', u'爻'), - (0x2F59, 'M', u'爿'), - (0x2F5A, 'M', u'片'), - (0x2F5B, 'M', u'牙'), - (0x2F5C, 'M', u'牛'), - (0x2F5D, 'M', u'犬'), - (0x2F5E, 'M', u'玄'), - (0x2F5F, 'M', u'玉'), - (0x2F60, 'M', u'瓜'), - (0x2F61, 'M', u'瓦'), - (0x2F62, 'M', u'甘'), - (0x2F63, 'M', u'生'), - (0x2F64, 'M', u'用'), - (0x2F65, 'M', u'田'), - (0x2F66, 'M', u'疋'), - (0x2F67, 'M', u'疒'), - (0x2F68, 'M', u'癶'), - (0x2F69, 'M', u'白'), - (0x2F6A, 'M', u'皮'), - (0x2F6B, 'M', u'皿'), - (0x2F6C, 'M', u'目'), - (0x2F6D, 'M', u'矛'), - (0x2F6E, 'M', u'矢'), - (0x2F6F, 'M', u'石'), - (0x2F70, 'M', u'示'), - (0x2F71, 'M', u'禸'), - (0x2F72, 'M', u'禾'), - (0x2F73, 'M', u'穴'), - (0x2F74, 'M', u'立'), - (0x2F75, 'M', u'竹'), - (0x2F76, 'M', u'米'), - (0x2F77, 'M', u'糸'), - (0x2F78, 'M', u'缶'), - (0x2F79, 'M', u'网'), - (0x2F7A, 'M', u'羊'), - (0x2F7B, 'M', u'羽'), - (0x2F7C, 'M', u'老'), - (0x2F7D, 'M', u'而'), - (0x2F7E, 'M', u'耒'), - (0x2F7F, 'M', u'耳'), - (0x2F80, 'M', u'聿'), - (0x2F81, 'M', u'肉'), - (0x2F82, 'M', u'臣'), - (0x2F83, 'M', u'自'), - (0x2F84, 'M', u'至'), - (0x2F85, 'M', u'臼'), - (0x2F86, 'M', u'舌'), - (0x2F87, 'M', u'舛'), - (0x2F88, 'M', u'舟'), - (0x2F89, 'M', u'艮'), - (0x2F8A, 'M', u'色'), - (0x2F8B, 'M', u'艸'), - (0x2F8C, 'M', u'虍'), - (0x2F8D, 'M', u'虫'), - (0x2F8E, 'M', u'血'), - (0x2F8F, 'M', u'行'), - (0x2F90, 'M', u'衣'), - (0x2F91, 'M', u'襾'), - ] - -def _seg_28(): - return [ - (0x2F92, 'M', u'見'), - (0x2F93, 'M', u'角'), - (0x2F94, 'M', u'言'), - (0x2F95, 'M', u'谷'), - (0x2F96, 'M', u'豆'), - (0x2F97, 'M', u'豕'), - (0x2F98, 'M', u'豸'), - (0x2F99, 'M', u'貝'), - (0x2F9A, 'M', u'赤'), - (0x2F9B, 'M', u'走'), - (0x2F9C, 'M', u'足'), - (0x2F9D, 'M', u'身'), - (0x2F9E, 'M', u'車'), - (0x2F9F, 'M', u'辛'), - (0x2FA0, 'M', u'辰'), - (0x2FA1, 'M', u'辵'), - (0x2FA2, 'M', u'邑'), - (0x2FA3, 'M', u'酉'), - (0x2FA4, 'M', u'釆'), - (0x2FA5, 'M', u'里'), - (0x2FA6, 'M', u'金'), - (0x2FA7, 'M', u'長'), - (0x2FA8, 'M', u'門'), - (0x2FA9, 'M', u'阜'), - (0x2FAA, 'M', u'隶'), - (0x2FAB, 'M', u'隹'), - (0x2FAC, 'M', u'雨'), - (0x2FAD, 'M', u'靑'), - (0x2FAE, 'M', u'非'), - (0x2FAF, 'M', u'面'), - (0x2FB0, 'M', u'革'), - (0x2FB1, 'M', u'韋'), - (0x2FB2, 'M', u'韭'), - (0x2FB3, 'M', u'音'), - (0x2FB4, 'M', u'頁'), - (0x2FB5, 'M', u'風'), - (0x2FB6, 'M', u'飛'), - (0x2FB7, 'M', u'食'), - (0x2FB8, 'M', u'首'), - (0x2FB9, 'M', u'香'), - (0x2FBA, 'M', u'馬'), - (0x2FBB, 'M', u'骨'), - (0x2FBC, 'M', u'高'), - (0x2FBD, 'M', u'髟'), - (0x2FBE, 'M', u'鬥'), - (0x2FBF, 'M', u'鬯'), - (0x2FC0, 'M', u'鬲'), - (0x2FC1, 'M', u'鬼'), - (0x2FC2, 'M', u'魚'), - (0x2FC3, 'M', u'鳥'), - (0x2FC4, 'M', u'鹵'), - (0x2FC5, 'M', u'鹿'), - (0x2FC6, 'M', u'麥'), - (0x2FC7, 'M', u'麻'), - (0x2FC8, 'M', u'黃'), - (0x2FC9, 'M', u'黍'), - (0x2FCA, 'M', u'黑'), - (0x2FCB, 'M', u'黹'), - (0x2FCC, 'M', u'黽'), - (0x2FCD, 'M', u'鼎'), - (0x2FCE, 'M', u'鼓'), - (0x2FCF, 'M', u'鼠'), - (0x2FD0, 'M', u'鼻'), - (0x2FD1, 'M', u'齊'), - (0x2FD2, 'M', u'齒'), - (0x2FD3, 'M', u'龍'), - (0x2FD4, 'M', u'龜'), - (0x2FD5, 'M', u'龠'), - (0x2FD6, 'X'), - (0x3000, '3', u' '), - (0x3001, 'V'), - (0x3002, 'M', u'.'), - (0x3003, 'V'), - (0x3036, 'M', u'〒'), - (0x3037, 'V'), - (0x3038, 'M', u'十'), - (0x3039, 'M', u'卄'), - (0x303A, 'M', u'卅'), - (0x303B, 'V'), - (0x3040, 'X'), - (0x3041, 'V'), - (0x3097, 'X'), - (0x3099, 'V'), - (0x309B, '3', u' ゙'), - (0x309C, '3', u' ゚'), - (0x309D, 'V'), - (0x309F, 'M', u'より'), - (0x30A0, 'V'), - (0x30FF, 'M', u'コト'), - (0x3100, 'X'), - (0x3105, 'V'), - (0x3130, 'X'), - (0x3131, 'M', u'ᄀ'), - (0x3132, 'M', u'ᄁ'), - (0x3133, 'M', u'ᆪ'), - (0x3134, 'M', u'ᄂ'), - (0x3135, 'M', u'ᆬ'), - (0x3136, 'M', u'ᆭ'), - (0x3137, 'M', u'ᄃ'), - (0x3138, 'M', u'ᄄ'), - ] - -def _seg_29(): - return [ - (0x3139, 'M', u'ᄅ'), - (0x313A, 'M', u'ᆰ'), - (0x313B, 'M', u'ᆱ'), - (0x313C, 'M', u'ᆲ'), - (0x313D, 'M', u'ᆳ'), - (0x313E, 'M', u'ᆴ'), - (0x313F, 'M', u'ᆵ'), - (0x3140, 'M', u'ᄚ'), - (0x3141, 'M', u'ᄆ'), - (0x3142, 'M', u'ᄇ'), - (0x3143, 'M', u'ᄈ'), - (0x3144, 'M', u'ᄡ'), - (0x3145, 'M', u'ᄉ'), - (0x3146, 'M', u'ᄊ'), - (0x3147, 'M', u'ᄋ'), - (0x3148, 'M', u'ᄌ'), - (0x3149, 'M', u'ᄍ'), - (0x314A, 'M', u'ᄎ'), - (0x314B, 'M', u'ᄏ'), - (0x314C, 'M', u'ᄐ'), - (0x314D, 'M', u'ᄑ'), - (0x314E, 'M', u'ᄒ'), - (0x314F, 'M', u'ᅡ'), - (0x3150, 'M', u'ᅢ'), - (0x3151, 'M', u'ᅣ'), - (0x3152, 'M', u'ᅤ'), - (0x3153, 'M', u'ᅥ'), - (0x3154, 'M', u'ᅦ'), - (0x3155, 'M', u'ᅧ'), - (0x3156, 'M', u'ᅨ'), - (0x3157, 'M', u'ᅩ'), - (0x3158, 'M', u'ᅪ'), - (0x3159, 'M', u'ᅫ'), - (0x315A, 'M', u'ᅬ'), - (0x315B, 'M', u'ᅭ'), - (0x315C, 'M', u'ᅮ'), - (0x315D, 'M', u'ᅯ'), - (0x315E, 'M', u'ᅰ'), - (0x315F, 'M', u'ᅱ'), - (0x3160, 'M', u'ᅲ'), - (0x3161, 'M', u'ᅳ'), - (0x3162, 'M', u'ᅴ'), - (0x3163, 'M', u'ᅵ'), - (0x3164, 'X'), - (0x3165, 'M', u'ᄔ'), - (0x3166, 'M', u'ᄕ'), - (0x3167, 'M', u'ᇇ'), - (0x3168, 'M', u'ᇈ'), - (0x3169, 'M', u'ᇌ'), - (0x316A, 'M', u'ᇎ'), - (0x316B, 'M', u'ᇓ'), - (0x316C, 'M', u'ᇗ'), - (0x316D, 'M', u'ᇙ'), - (0x316E, 'M', u'ᄜ'), - (0x316F, 'M', u'ᇝ'), - (0x3170, 'M', u'ᇟ'), - (0x3171, 'M', u'ᄝ'), - (0x3172, 'M', u'ᄞ'), - (0x3173, 'M', u'ᄠ'), - (0x3174, 'M', u'ᄢ'), - (0x3175, 'M', u'ᄣ'), - (0x3176, 'M', u'ᄧ'), - (0x3177, 'M', u'ᄩ'), - (0x3178, 'M', u'ᄫ'), - (0x3179, 'M', u'ᄬ'), - (0x317A, 'M', u'ᄭ'), - (0x317B, 'M', u'ᄮ'), - (0x317C, 'M', u'ᄯ'), - (0x317D, 'M', u'ᄲ'), - (0x317E, 'M', u'ᄶ'), - (0x317F, 'M', u'ᅀ'), - (0x3180, 'M', u'ᅇ'), - (0x3181, 'M', u'ᅌ'), - (0x3182, 'M', u'ᇱ'), - (0x3183, 'M', u'ᇲ'), - (0x3184, 'M', u'ᅗ'), - (0x3185, 'M', u'ᅘ'), - (0x3186, 'M', u'ᅙ'), - (0x3187, 'M', u'ᆄ'), - (0x3188, 'M', u'ᆅ'), - (0x3189, 'M', u'ᆈ'), - (0x318A, 'M', u'ᆑ'), - (0x318B, 'M', u'ᆒ'), - (0x318C, 'M', u'ᆔ'), - (0x318D, 'M', u'ᆞ'), - (0x318E, 'M', u'ᆡ'), - (0x318F, 'X'), - (0x3190, 'V'), - (0x3192, 'M', u'一'), - (0x3193, 'M', u'二'), - (0x3194, 'M', u'三'), - (0x3195, 'M', u'四'), - (0x3196, 'M', u'上'), - (0x3197, 'M', u'中'), - (0x3198, 'M', u'下'), - (0x3199, 'M', u'甲'), - (0x319A, 'M', u'乙'), - (0x319B, 'M', u'丙'), - (0x319C, 'M', u'丁'), - (0x319D, 'M', u'天'), - ] - -def _seg_30(): - return [ - (0x319E, 'M', u'地'), - (0x319F, 'M', u'人'), - (0x31A0, 'V'), - (0x31BB, 'X'), - (0x31C0, 'V'), - (0x31E4, 'X'), - (0x31F0, 'V'), - (0x3200, '3', u'(ᄀ)'), - (0x3201, '3', u'(ᄂ)'), - (0x3202, '3', u'(ᄃ)'), - (0x3203, '3', u'(ᄅ)'), - (0x3204, '3', u'(ᄆ)'), - (0x3205, '3', u'(ᄇ)'), - (0x3206, '3', u'(ᄉ)'), - (0x3207, '3', u'(ᄋ)'), - (0x3208, '3', u'(ᄌ)'), - (0x3209, '3', u'(ᄎ)'), - (0x320A, '3', u'(ᄏ)'), - (0x320B, '3', u'(ᄐ)'), - (0x320C, '3', u'(ᄑ)'), - (0x320D, '3', u'(ᄒ)'), - (0x320E, '3', u'(가)'), - (0x320F, '3', u'(나)'), - (0x3210, '3', u'(다)'), - (0x3211, '3', u'(라)'), - (0x3212, '3', u'(마)'), - (0x3213, '3', u'(바)'), - (0x3214, '3', u'(사)'), - (0x3215, '3', u'(아)'), - (0x3216, '3', u'(자)'), - (0x3217, '3', u'(차)'), - (0x3218, '3', u'(카)'), - (0x3219, '3', u'(타)'), - (0x321A, '3', u'(파)'), - (0x321B, '3', u'(하)'), - (0x321C, '3', u'(주)'), - (0x321D, '3', u'(오전)'), - (0x321E, '3', u'(오후)'), - (0x321F, 'X'), - (0x3220, '3', u'(一)'), - (0x3221, '3', u'(二)'), - (0x3222, '3', u'(三)'), - (0x3223, '3', u'(四)'), - (0x3224, '3', u'(五)'), - (0x3225, '3', u'(六)'), - (0x3226, '3', u'(七)'), - (0x3227, '3', u'(八)'), - (0x3228, '3', u'(九)'), - (0x3229, '3', u'(十)'), - (0x322A, '3', u'(月)'), - (0x322B, '3', u'(火)'), - (0x322C, '3', u'(水)'), - (0x322D, '3', u'(木)'), - (0x322E, '3', u'(金)'), - (0x322F, '3', u'(土)'), - (0x3230, '3', u'(日)'), - (0x3231, '3', u'(株)'), - (0x3232, '3', u'(有)'), - (0x3233, '3', u'(社)'), - (0x3234, '3', u'(名)'), - (0x3235, '3', u'(特)'), - (0x3236, '3', u'(財)'), - (0x3237, '3', u'(祝)'), - (0x3238, '3', u'(労)'), - (0x3239, '3', u'(代)'), - (0x323A, '3', u'(呼)'), - (0x323B, '3', u'(学)'), - (0x323C, '3', u'(監)'), - (0x323D, '3', u'(企)'), - (0x323E, '3', u'(資)'), - (0x323F, '3', u'(協)'), - (0x3240, '3', u'(祭)'), - (0x3241, '3', u'(休)'), - (0x3242, '3', u'(自)'), - (0x3243, '3', u'(至)'), - (0x3244, 'M', u'問'), - (0x3245, 'M', u'幼'), - (0x3246, 'M', u'文'), - (0x3247, 'M', u'箏'), - (0x3248, 'V'), - (0x3250, 'M', u'pte'), - (0x3251, 'M', u'21'), - (0x3252, 'M', u'22'), - (0x3253, 'M', u'23'), - (0x3254, 'M', u'24'), - (0x3255, 'M', u'25'), - (0x3256, 'M', u'26'), - (0x3257, 'M', u'27'), - (0x3258, 'M', u'28'), - (0x3259, 'M', u'29'), - (0x325A, 'M', u'30'), - (0x325B, 'M', u'31'), - (0x325C, 'M', u'32'), - (0x325D, 'M', u'33'), - (0x325E, 'M', u'34'), - (0x325F, 'M', u'35'), - (0x3260, 'M', u'ᄀ'), - (0x3261, 'M', u'ᄂ'), - (0x3262, 'M', u'ᄃ'), - (0x3263, 'M', u'ᄅ'), - ] - -def _seg_31(): - return [ - (0x3264, 'M', u'ᄆ'), - (0x3265, 'M', u'ᄇ'), - (0x3266, 'M', u'ᄉ'), - (0x3267, 'M', u'ᄋ'), - (0x3268, 'M', u'ᄌ'), - (0x3269, 'M', u'ᄎ'), - (0x326A, 'M', u'ᄏ'), - (0x326B, 'M', u'ᄐ'), - (0x326C, 'M', u'ᄑ'), - (0x326D, 'M', u'ᄒ'), - (0x326E, 'M', u'가'), - (0x326F, 'M', u'나'), - (0x3270, 'M', u'다'), - (0x3271, 'M', u'라'), - (0x3272, 'M', u'마'), - (0x3273, 'M', u'바'), - (0x3274, 'M', u'사'), - (0x3275, 'M', u'아'), - (0x3276, 'M', u'자'), - (0x3277, 'M', u'차'), - (0x3278, 'M', u'카'), - (0x3279, 'M', u'타'), - (0x327A, 'M', u'파'), - (0x327B, 'M', u'하'), - (0x327C, 'M', u'참고'), - (0x327D, 'M', u'주의'), - (0x327E, 'M', u'우'), - (0x327F, 'V'), - (0x3280, 'M', u'一'), - (0x3281, 'M', u'二'), - (0x3282, 'M', u'三'), - (0x3283, 'M', u'四'), - (0x3284, 'M', u'五'), - (0x3285, 'M', u'六'), - (0x3286, 'M', u'七'), - (0x3287, 'M', u'八'), - (0x3288, 'M', u'九'), - (0x3289, 'M', u'十'), - (0x328A, 'M', u'月'), - (0x328B, 'M', u'火'), - (0x328C, 'M', u'水'), - (0x328D, 'M', u'木'), - (0x328E, 'M', u'金'), - (0x328F, 'M', u'土'), - (0x3290, 'M', u'日'), - (0x3291, 'M', u'株'), - (0x3292, 'M', u'有'), - (0x3293, 'M', u'社'), - (0x3294, 'M', u'名'), - (0x3295, 'M', u'特'), - (0x3296, 'M', u'財'), - (0x3297, 'M', u'祝'), - (0x3298, 'M', u'労'), - (0x3299, 'M', u'秘'), - (0x329A, 'M', u'男'), - (0x329B, 'M', u'女'), - (0x329C, 'M', u'適'), - (0x329D, 'M', u'優'), - (0x329E, 'M', u'印'), - (0x329F, 'M', u'注'), - (0x32A0, 'M', u'項'), - (0x32A1, 'M', u'休'), - (0x32A2, 'M', u'写'), - (0x32A3, 'M', u'正'), - (0x32A4, 'M', u'上'), - (0x32A5, 'M', u'中'), - (0x32A6, 'M', u'下'), - (0x32A7, 'M', u'左'), - (0x32A8, 'M', u'右'), - (0x32A9, 'M', u'医'), - (0x32AA, 'M', u'宗'), - (0x32AB, 'M', u'学'), - (0x32AC, 'M', u'監'), - (0x32AD, 'M', u'企'), - (0x32AE, 'M', u'資'), - (0x32AF, 'M', u'協'), - (0x32B0, 'M', u'夜'), - (0x32B1, 'M', u'36'), - (0x32B2, 'M', u'37'), - (0x32B3, 'M', u'38'), - (0x32B4, 'M', u'39'), - (0x32B5, 'M', u'40'), - (0x32B6, 'M', u'41'), - (0x32B7, 'M', u'42'), - (0x32B8, 'M', u'43'), - (0x32B9, 'M', u'44'), - (0x32BA, 'M', u'45'), - (0x32BB, 'M', u'46'), - (0x32BC, 'M', u'47'), - (0x32BD, 'M', u'48'), - (0x32BE, 'M', u'49'), - (0x32BF, 'M', u'50'), - (0x32C0, 'M', u'1月'), - (0x32C1, 'M', u'2月'), - (0x32C2, 'M', u'3月'), - (0x32C3, 'M', u'4月'), - (0x32C4, 'M', u'5月'), - (0x32C5, 'M', u'6月'), - (0x32C6, 'M', u'7月'), - (0x32C7, 'M', u'8月'), - ] - -def _seg_32(): - return [ - (0x32C8, 'M', u'9月'), - (0x32C9, 'M', u'10月'), - (0x32CA, 'M', u'11月'), - (0x32CB, 'M', u'12月'), - (0x32CC, 'M', u'hg'), - (0x32CD, 'M', u'erg'), - (0x32CE, 'M', u'ev'), - (0x32CF, 'M', u'ltd'), - (0x32D0, 'M', u'ア'), - (0x32D1, 'M', u'イ'), - (0x32D2, 'M', u'ウ'), - (0x32D3, 'M', u'エ'), - (0x32D4, 'M', u'オ'), - (0x32D5, 'M', u'カ'), - (0x32D6, 'M', u'キ'), - (0x32D7, 'M', u'ク'), - (0x32D8, 'M', u'ケ'), - (0x32D9, 'M', u'コ'), - (0x32DA, 'M', u'サ'), - (0x32DB, 'M', u'シ'), - (0x32DC, 'M', u'ス'), - (0x32DD, 'M', u'セ'), - (0x32DE, 'M', u'ソ'), - (0x32DF, 'M', u'タ'), - (0x32E0, 'M', u'チ'), - (0x32E1, 'M', u'ツ'), - (0x32E2, 'M', u'テ'), - (0x32E3, 'M', u'ト'), - (0x32E4, 'M', u'ナ'), - (0x32E5, 'M', u'ニ'), - (0x32E6, 'M', u'ヌ'), - (0x32E7, 'M', u'ネ'), - (0x32E8, 'M', u'ノ'), - (0x32E9, 'M', u'ハ'), - (0x32EA, 'M', u'ヒ'), - (0x32EB, 'M', u'フ'), - (0x32EC, 'M', u'ヘ'), - (0x32ED, 'M', u'ホ'), - (0x32EE, 'M', u'マ'), - (0x32EF, 'M', u'ミ'), - (0x32F0, 'M', u'ム'), - (0x32F1, 'M', u'メ'), - (0x32F2, 'M', u'モ'), - (0x32F3, 'M', u'ヤ'), - (0x32F4, 'M', u'ユ'), - (0x32F5, 'M', u'ヨ'), - (0x32F6, 'M', u'ラ'), - (0x32F7, 'M', u'リ'), - (0x32F8, 'M', u'ル'), - (0x32F9, 'M', u'レ'), - (0x32FA, 'M', u'ロ'), - (0x32FB, 'M', u'ワ'), - (0x32FC, 'M', u'ヰ'), - (0x32FD, 'M', u'ヱ'), - (0x32FE, 'M', u'ヲ'), - (0x32FF, 'X'), - (0x3300, 'M', u'アパート'), - (0x3301, 'M', u'アルファ'), - (0x3302, 'M', u'アンペア'), - (0x3303, 'M', u'アール'), - (0x3304, 'M', u'イニング'), - (0x3305, 'M', u'インチ'), - (0x3306, 'M', u'ウォン'), - (0x3307, 'M', u'エスクード'), - (0x3308, 'M', u'エーカー'), - (0x3309, 'M', u'オンス'), - (0x330A, 'M', u'オーム'), - (0x330B, 'M', u'カイリ'), - (0x330C, 'M', u'カラット'), - (0x330D, 'M', u'カロリー'), - (0x330E, 'M', u'ガロン'), - (0x330F, 'M', u'ガンマ'), - (0x3310, 'M', u'ギガ'), - (0x3311, 'M', u'ギニー'), - (0x3312, 'M', u'キュリー'), - (0x3313, 'M', u'ギルダー'), - (0x3314, 'M', u'キロ'), - (0x3315, 'M', u'キログラム'), - (0x3316, 'M', u'キロメートル'), - (0x3317, 'M', u'キロワット'), - (0x3318, 'M', u'グラム'), - (0x3319, 'M', u'グラムトン'), - (0x331A, 'M', u'クルゼイロ'), - (0x331B, 'M', u'クローネ'), - (0x331C, 'M', u'ケース'), - (0x331D, 'M', u'コルナ'), - (0x331E, 'M', u'コーポ'), - (0x331F, 'M', u'サイクル'), - (0x3320, 'M', u'サンチーム'), - (0x3321, 'M', u'シリング'), - (0x3322, 'M', u'センチ'), - (0x3323, 'M', u'セント'), - (0x3324, 'M', u'ダース'), - (0x3325, 'M', u'デシ'), - (0x3326, 'M', u'ドル'), - (0x3327, 'M', u'トン'), - (0x3328, 'M', u'ナノ'), - (0x3329, 'M', u'ノット'), - (0x332A, 'M', u'ハイツ'), - (0x332B, 'M', u'パーセント'), - ] - -def _seg_33(): - return [ - (0x332C, 'M', u'パーツ'), - (0x332D, 'M', u'バーレル'), - (0x332E, 'M', u'ピアストル'), - (0x332F, 'M', u'ピクル'), - (0x3330, 'M', u'ピコ'), - (0x3331, 'M', u'ビル'), - (0x3332, 'M', u'ファラッド'), - (0x3333, 'M', u'フィート'), - (0x3334, 'M', u'ブッシェル'), - (0x3335, 'M', u'フラン'), - (0x3336, 'M', u'ヘクタール'), - (0x3337, 'M', u'ペソ'), - (0x3338, 'M', u'ペニヒ'), - (0x3339, 'M', u'ヘルツ'), - (0x333A, 'M', u'ペンス'), - (0x333B, 'M', u'ページ'), - (0x333C, 'M', u'ベータ'), - (0x333D, 'M', u'ポイント'), - (0x333E, 'M', u'ボルト'), - (0x333F, 'M', u'ホン'), - (0x3340, 'M', u'ポンド'), - (0x3341, 'M', u'ホール'), - (0x3342, 'M', u'ホーン'), - (0x3343, 'M', u'マイクロ'), - (0x3344, 'M', u'マイル'), - (0x3345, 'M', u'マッハ'), - (0x3346, 'M', u'マルク'), - (0x3347, 'M', u'マンション'), - (0x3348, 'M', u'ミクロン'), - (0x3349, 'M', u'ミリ'), - (0x334A, 'M', u'ミリバール'), - (0x334B, 'M', u'メガ'), - (0x334C, 'M', u'メガトン'), - (0x334D, 'M', u'メートル'), - (0x334E, 'M', u'ヤード'), - (0x334F, 'M', u'ヤール'), - (0x3350, 'M', u'ユアン'), - (0x3351, 'M', u'リットル'), - (0x3352, 'M', u'リラ'), - (0x3353, 'M', u'ルピー'), - (0x3354, 'M', u'ルーブル'), - (0x3355, 'M', u'レム'), - (0x3356, 'M', u'レントゲン'), - (0x3357, 'M', u'ワット'), - (0x3358, 'M', u'0点'), - (0x3359, 'M', u'1点'), - (0x335A, 'M', u'2点'), - (0x335B, 'M', u'3点'), - (0x335C, 'M', u'4点'), - (0x335D, 'M', u'5点'), - (0x335E, 'M', u'6点'), - (0x335F, 'M', u'7点'), - (0x3360, 'M', u'8点'), - (0x3361, 'M', u'9点'), - (0x3362, 'M', u'10点'), - (0x3363, 'M', u'11点'), - (0x3364, 'M', u'12点'), - (0x3365, 'M', u'13点'), - (0x3366, 'M', u'14点'), - (0x3367, 'M', u'15点'), - (0x3368, 'M', u'16点'), - (0x3369, 'M', u'17点'), - (0x336A, 'M', u'18点'), - (0x336B, 'M', u'19点'), - (0x336C, 'M', u'20点'), - (0x336D, 'M', u'21点'), - (0x336E, 'M', u'22点'), - (0x336F, 'M', u'23点'), - (0x3370, 'M', u'24点'), - (0x3371, 'M', u'hpa'), - (0x3372, 'M', u'da'), - (0x3373, 'M', u'au'), - (0x3374, 'M', u'bar'), - (0x3375, 'M', u'ov'), - (0x3376, 'M', u'pc'), - (0x3377, 'M', u'dm'), - (0x3378, 'M', u'dm2'), - (0x3379, 'M', u'dm3'), - (0x337A, 'M', u'iu'), - (0x337B, 'M', u'平成'), - (0x337C, 'M', u'昭和'), - (0x337D, 'M', u'大正'), - (0x337E, 'M', u'明治'), - (0x337F, 'M', u'株式会社'), - (0x3380, 'M', u'pa'), - (0x3381, 'M', u'na'), - (0x3382, 'M', u'μa'), - (0x3383, 'M', u'ma'), - (0x3384, 'M', u'ka'), - (0x3385, 'M', u'kb'), - (0x3386, 'M', u'mb'), - (0x3387, 'M', u'gb'), - (0x3388, 'M', u'cal'), - (0x3389, 'M', u'kcal'), - (0x338A, 'M', u'pf'), - (0x338B, 'M', u'nf'), - (0x338C, 'M', u'μf'), - (0x338D, 'M', u'μg'), - (0x338E, 'M', u'mg'), - (0x338F, 'M', u'kg'), - ] - -def _seg_34(): - return [ - (0x3390, 'M', u'hz'), - (0x3391, 'M', u'khz'), - (0x3392, 'M', u'mhz'), - (0x3393, 'M', u'ghz'), - (0x3394, 'M', u'thz'), - (0x3395, 'M', u'μl'), - (0x3396, 'M', u'ml'), - (0x3397, 'M', u'dl'), - (0x3398, 'M', u'kl'), - (0x3399, 'M', u'fm'), - (0x339A, 'M', u'nm'), - (0x339B, 'M', u'μm'), - (0x339C, 'M', u'mm'), - (0x339D, 'M', u'cm'), - (0x339E, 'M', u'km'), - (0x339F, 'M', u'mm2'), - (0x33A0, 'M', u'cm2'), - (0x33A1, 'M', u'm2'), - (0x33A2, 'M', u'km2'), - (0x33A3, 'M', u'mm3'), - (0x33A4, 'M', u'cm3'), - (0x33A5, 'M', u'm3'), - (0x33A6, 'M', u'km3'), - (0x33A7, 'M', u'm∕s'), - (0x33A8, 'M', u'm∕s2'), - (0x33A9, 'M', u'pa'), - (0x33AA, 'M', u'kpa'), - (0x33AB, 'M', u'mpa'), - (0x33AC, 'M', u'gpa'), - (0x33AD, 'M', u'rad'), - (0x33AE, 'M', u'rad∕s'), - (0x33AF, 'M', u'rad∕s2'), - (0x33B0, 'M', u'ps'), - (0x33B1, 'M', u'ns'), - (0x33B2, 'M', u'μs'), - (0x33B3, 'M', u'ms'), - (0x33B4, 'M', u'pv'), - (0x33B5, 'M', u'nv'), - (0x33B6, 'M', u'μv'), - (0x33B7, 'M', u'mv'), - (0x33B8, 'M', u'kv'), - (0x33B9, 'M', u'mv'), - (0x33BA, 'M', u'pw'), - (0x33BB, 'M', u'nw'), - (0x33BC, 'M', u'μw'), - (0x33BD, 'M', u'mw'), - (0x33BE, 'M', u'kw'), - (0x33BF, 'M', u'mw'), - (0x33C0, 'M', u'kω'), - (0x33C1, 'M', u'mω'), - (0x33C2, 'X'), - (0x33C3, 'M', u'bq'), - (0x33C4, 'M', u'cc'), - (0x33C5, 'M', u'cd'), - (0x33C6, 'M', u'c∕kg'), - (0x33C7, 'X'), - (0x33C8, 'M', u'db'), - (0x33C9, 'M', u'gy'), - (0x33CA, 'M', u'ha'), - (0x33CB, 'M', u'hp'), - (0x33CC, 'M', u'in'), - (0x33CD, 'M', u'kk'), - (0x33CE, 'M', u'km'), - (0x33CF, 'M', u'kt'), - (0x33D0, 'M', u'lm'), - (0x33D1, 'M', u'ln'), - (0x33D2, 'M', u'log'), - (0x33D3, 'M', u'lx'), - (0x33D4, 'M', u'mb'), - (0x33D5, 'M', u'mil'), - (0x33D6, 'M', u'mol'), - (0x33D7, 'M', u'ph'), - (0x33D8, 'X'), - (0x33D9, 'M', u'ppm'), - (0x33DA, 'M', u'pr'), - (0x33DB, 'M', u'sr'), - (0x33DC, 'M', u'sv'), - (0x33DD, 'M', u'wb'), - (0x33DE, 'M', u'v∕m'), - (0x33DF, 'M', u'a∕m'), - (0x33E0, 'M', u'1日'), - (0x33E1, 'M', u'2日'), - (0x33E2, 'M', u'3日'), - (0x33E3, 'M', u'4日'), - (0x33E4, 'M', u'5日'), - (0x33E5, 'M', u'6日'), - (0x33E6, 'M', u'7日'), - (0x33E7, 'M', u'8日'), - (0x33E8, 'M', u'9日'), - (0x33E9, 'M', u'10日'), - (0x33EA, 'M', u'11日'), - (0x33EB, 'M', u'12日'), - (0x33EC, 'M', u'13日'), - (0x33ED, 'M', u'14日'), - (0x33EE, 'M', u'15日'), - (0x33EF, 'M', u'16日'), - (0x33F0, 'M', u'17日'), - (0x33F1, 'M', u'18日'), - (0x33F2, 'M', u'19日'), - (0x33F3, 'M', u'20日'), - ] - -def _seg_35(): - return [ - (0x33F4, 'M', u'21日'), - (0x33F5, 'M', u'22日'), - (0x33F6, 'M', u'23日'), - (0x33F7, 'M', u'24日'), - (0x33F8, 'M', u'25日'), - (0x33F9, 'M', u'26日'), - (0x33FA, 'M', u'27日'), - (0x33FB, 'M', u'28日'), - (0x33FC, 'M', u'29日'), - (0x33FD, 'M', u'30日'), - (0x33FE, 'M', u'31日'), - (0x33FF, 'M', u'gal'), - (0x3400, 'V'), - (0x4DB6, 'X'), - (0x4DC0, 'V'), - (0x9FF0, 'X'), - (0xA000, 'V'), - (0xA48D, 'X'), - (0xA490, 'V'), - (0xA4C7, 'X'), - (0xA4D0, 'V'), - (0xA62C, 'X'), - (0xA640, 'M', u'ꙁ'), - (0xA641, 'V'), - (0xA642, 'M', u'ꙃ'), - (0xA643, 'V'), - (0xA644, 'M', u'ꙅ'), - (0xA645, 'V'), - (0xA646, 'M', u'ꙇ'), - (0xA647, 'V'), - (0xA648, 'M', u'ꙉ'), - (0xA649, 'V'), - (0xA64A, 'M', u'ꙋ'), - (0xA64B, 'V'), - (0xA64C, 'M', u'ꙍ'), - (0xA64D, 'V'), - (0xA64E, 'M', u'ꙏ'), - (0xA64F, 'V'), - (0xA650, 'M', u'ꙑ'), - (0xA651, 'V'), - (0xA652, 'M', u'ꙓ'), - (0xA653, 'V'), - (0xA654, 'M', u'ꙕ'), - (0xA655, 'V'), - (0xA656, 'M', u'ꙗ'), - (0xA657, 'V'), - (0xA658, 'M', u'ꙙ'), - (0xA659, 'V'), - (0xA65A, 'M', u'ꙛ'), - (0xA65B, 'V'), - (0xA65C, 'M', u'ꙝ'), - (0xA65D, 'V'), - (0xA65E, 'M', u'ꙟ'), - (0xA65F, 'V'), - (0xA660, 'M', u'ꙡ'), - (0xA661, 'V'), - (0xA662, 'M', u'ꙣ'), - (0xA663, 'V'), - (0xA664, 'M', u'ꙥ'), - (0xA665, 'V'), - (0xA666, 'M', u'ꙧ'), - (0xA667, 'V'), - (0xA668, 'M', u'ꙩ'), - (0xA669, 'V'), - (0xA66A, 'M', u'ꙫ'), - (0xA66B, 'V'), - (0xA66C, 'M', u'ꙭ'), - (0xA66D, 'V'), - (0xA680, 'M', u'ꚁ'), - (0xA681, 'V'), - (0xA682, 'M', u'ꚃ'), - (0xA683, 'V'), - (0xA684, 'M', u'ꚅ'), - (0xA685, 'V'), - (0xA686, 'M', u'ꚇ'), - (0xA687, 'V'), - (0xA688, 'M', u'ꚉ'), - (0xA689, 'V'), - (0xA68A, 'M', u'ꚋ'), - (0xA68B, 'V'), - (0xA68C, 'M', u'ꚍ'), - (0xA68D, 'V'), - (0xA68E, 'M', u'ꚏ'), - (0xA68F, 'V'), - (0xA690, 'M', u'ꚑ'), - (0xA691, 'V'), - (0xA692, 'M', u'ꚓ'), - (0xA693, 'V'), - (0xA694, 'M', u'ꚕ'), - (0xA695, 'V'), - (0xA696, 'M', u'ꚗ'), - (0xA697, 'V'), - (0xA698, 'M', u'ꚙ'), - (0xA699, 'V'), - (0xA69A, 'M', u'ꚛ'), - (0xA69B, 'V'), - (0xA69C, 'M', u'ъ'), - (0xA69D, 'M', u'ь'), - (0xA69E, 'V'), - (0xA6F8, 'X'), - ] - -def _seg_36(): - return [ - (0xA700, 'V'), - (0xA722, 'M', u'ꜣ'), - (0xA723, 'V'), - (0xA724, 'M', u'ꜥ'), - (0xA725, 'V'), - (0xA726, 'M', u'ꜧ'), - (0xA727, 'V'), - (0xA728, 'M', u'ꜩ'), - (0xA729, 'V'), - (0xA72A, 'M', u'ꜫ'), - (0xA72B, 'V'), - (0xA72C, 'M', u'ꜭ'), - (0xA72D, 'V'), - (0xA72E, 'M', u'ꜯ'), - (0xA72F, 'V'), - (0xA732, 'M', u'ꜳ'), - (0xA733, 'V'), - (0xA734, 'M', u'ꜵ'), - (0xA735, 'V'), - (0xA736, 'M', u'ꜷ'), - (0xA737, 'V'), - (0xA738, 'M', u'ꜹ'), - (0xA739, 'V'), - (0xA73A, 'M', u'ꜻ'), - (0xA73B, 'V'), - (0xA73C, 'M', u'ꜽ'), - (0xA73D, 'V'), - (0xA73E, 'M', u'ꜿ'), - (0xA73F, 'V'), - (0xA740, 'M', u'ꝁ'), - (0xA741, 'V'), - (0xA742, 'M', u'ꝃ'), - (0xA743, 'V'), - (0xA744, 'M', u'ꝅ'), - (0xA745, 'V'), - (0xA746, 'M', u'ꝇ'), - (0xA747, 'V'), - (0xA748, 'M', u'ꝉ'), - (0xA749, 'V'), - (0xA74A, 'M', u'ꝋ'), - (0xA74B, 'V'), - (0xA74C, 'M', u'ꝍ'), - (0xA74D, 'V'), - (0xA74E, 'M', u'ꝏ'), - (0xA74F, 'V'), - (0xA750, 'M', u'ꝑ'), - (0xA751, 'V'), - (0xA752, 'M', u'ꝓ'), - (0xA753, 'V'), - (0xA754, 'M', u'ꝕ'), - (0xA755, 'V'), - (0xA756, 'M', u'ꝗ'), - (0xA757, 'V'), - (0xA758, 'M', u'ꝙ'), - (0xA759, 'V'), - (0xA75A, 'M', u'ꝛ'), - (0xA75B, 'V'), - (0xA75C, 'M', u'ꝝ'), - (0xA75D, 'V'), - (0xA75E, 'M', u'ꝟ'), - (0xA75F, 'V'), - (0xA760, 'M', u'ꝡ'), - (0xA761, 'V'), - (0xA762, 'M', u'ꝣ'), - (0xA763, 'V'), - (0xA764, 'M', u'ꝥ'), - (0xA765, 'V'), - (0xA766, 'M', u'ꝧ'), - (0xA767, 'V'), - (0xA768, 'M', u'ꝩ'), - (0xA769, 'V'), - (0xA76A, 'M', u'ꝫ'), - (0xA76B, 'V'), - (0xA76C, 'M', u'ꝭ'), - (0xA76D, 'V'), - (0xA76E, 'M', u'ꝯ'), - (0xA76F, 'V'), - (0xA770, 'M', u'ꝯ'), - (0xA771, 'V'), - (0xA779, 'M', u'ꝺ'), - (0xA77A, 'V'), - (0xA77B, 'M', u'ꝼ'), - (0xA77C, 'V'), - (0xA77D, 'M', u'ᵹ'), - (0xA77E, 'M', u'ꝿ'), - (0xA77F, 'V'), - (0xA780, 'M', u'ꞁ'), - (0xA781, 'V'), - (0xA782, 'M', u'ꞃ'), - (0xA783, 'V'), - (0xA784, 'M', u'ꞅ'), - (0xA785, 'V'), - (0xA786, 'M', u'ꞇ'), - (0xA787, 'V'), - (0xA78B, 'M', u'ꞌ'), - (0xA78C, 'V'), - (0xA78D, 'M', u'ɥ'), - (0xA78E, 'V'), - (0xA790, 'M', u'ꞑ'), - (0xA791, 'V'), - ] - -def _seg_37(): - return [ - (0xA792, 'M', u'ꞓ'), - (0xA793, 'V'), - (0xA796, 'M', u'ꞗ'), - (0xA797, 'V'), - (0xA798, 'M', u'ꞙ'), - (0xA799, 'V'), - (0xA79A, 'M', u'ꞛ'), - (0xA79B, 'V'), - (0xA79C, 'M', u'ꞝ'), - (0xA79D, 'V'), - (0xA79E, 'M', u'ꞟ'), - (0xA79F, 'V'), - (0xA7A0, 'M', u'ꞡ'), - (0xA7A1, 'V'), - (0xA7A2, 'M', u'ꞣ'), - (0xA7A3, 'V'), - (0xA7A4, 'M', u'ꞥ'), - (0xA7A5, 'V'), - (0xA7A6, 'M', u'ꞧ'), - (0xA7A7, 'V'), - (0xA7A8, 'M', u'ꞩ'), - (0xA7A9, 'V'), - (0xA7AA, 'M', u'ɦ'), - (0xA7AB, 'M', u'ɜ'), - (0xA7AC, 'M', u'ɡ'), - (0xA7AD, 'M', u'ɬ'), - (0xA7AE, 'M', u'ɪ'), - (0xA7AF, 'V'), - (0xA7B0, 'M', u'ʞ'), - (0xA7B1, 'M', u'ʇ'), - (0xA7B2, 'M', u'ʝ'), - (0xA7B3, 'M', u'ꭓ'), - (0xA7B4, 'M', u'ꞵ'), - (0xA7B5, 'V'), - (0xA7B6, 'M', u'ꞷ'), - (0xA7B7, 'V'), - (0xA7B8, 'X'), - (0xA7B9, 'V'), - (0xA7BA, 'X'), - (0xA7F7, 'V'), - (0xA7F8, 'M', u'ħ'), - (0xA7F9, 'M', u'œ'), - (0xA7FA, 'V'), - (0xA82C, 'X'), - (0xA830, 'V'), - (0xA83A, 'X'), - (0xA840, 'V'), - (0xA878, 'X'), - (0xA880, 'V'), - (0xA8C6, 'X'), - (0xA8CE, 'V'), - (0xA8DA, 'X'), - (0xA8E0, 'V'), - (0xA954, 'X'), - (0xA95F, 'V'), - (0xA97D, 'X'), - (0xA980, 'V'), - (0xA9CE, 'X'), - (0xA9CF, 'V'), - (0xA9DA, 'X'), - (0xA9DE, 'V'), - (0xA9FF, 'X'), - (0xAA00, 'V'), - (0xAA37, 'X'), - (0xAA40, 'V'), - (0xAA4E, 'X'), - (0xAA50, 'V'), - (0xAA5A, 'X'), - (0xAA5C, 'V'), - (0xAAC3, 'X'), - (0xAADB, 'V'), - (0xAAF7, 'X'), - (0xAB01, 'V'), - (0xAB07, 'X'), - (0xAB09, 'V'), - (0xAB0F, 'X'), - (0xAB11, 'V'), - (0xAB17, 'X'), - (0xAB20, 'V'), - (0xAB27, 'X'), - (0xAB28, 'V'), - (0xAB2F, 'X'), - (0xAB30, 'V'), - (0xAB5C, 'M', u'ꜧ'), - (0xAB5D, 'M', u'ꬷ'), - (0xAB5E, 'M', u'ɫ'), - (0xAB5F, 'M', u'ꭒ'), - (0xAB60, 'V'), - (0xAB66, 'X'), - (0xAB70, 'M', u'Ꭰ'), - (0xAB71, 'M', u'Ꭱ'), - (0xAB72, 'M', u'Ꭲ'), - (0xAB73, 'M', u'Ꭳ'), - (0xAB74, 'M', u'Ꭴ'), - (0xAB75, 'M', u'Ꭵ'), - (0xAB76, 'M', u'Ꭶ'), - (0xAB77, 'M', u'Ꭷ'), - (0xAB78, 'M', u'Ꭸ'), - (0xAB79, 'M', u'Ꭹ'), - (0xAB7A, 'M', u'Ꭺ'), - ] - -def _seg_38(): - return [ - (0xAB7B, 'M', u'Ꭻ'), - (0xAB7C, 'M', u'Ꭼ'), - (0xAB7D, 'M', u'Ꭽ'), - (0xAB7E, 'M', u'Ꭾ'), - (0xAB7F, 'M', u'Ꭿ'), - (0xAB80, 'M', u'Ꮀ'), - (0xAB81, 'M', u'Ꮁ'), - (0xAB82, 'M', u'Ꮂ'), - (0xAB83, 'M', u'Ꮃ'), - (0xAB84, 'M', u'Ꮄ'), - (0xAB85, 'M', u'Ꮅ'), - (0xAB86, 'M', u'Ꮆ'), - (0xAB87, 'M', u'Ꮇ'), - (0xAB88, 'M', u'Ꮈ'), - (0xAB89, 'M', u'Ꮉ'), - (0xAB8A, 'M', u'Ꮊ'), - (0xAB8B, 'M', u'Ꮋ'), - (0xAB8C, 'M', u'Ꮌ'), - (0xAB8D, 'M', u'Ꮍ'), - (0xAB8E, 'M', u'Ꮎ'), - (0xAB8F, 'M', u'Ꮏ'), - (0xAB90, 'M', u'Ꮐ'), - (0xAB91, 'M', u'Ꮑ'), - (0xAB92, 'M', u'Ꮒ'), - (0xAB93, 'M', u'Ꮓ'), - (0xAB94, 'M', u'Ꮔ'), - (0xAB95, 'M', u'Ꮕ'), - (0xAB96, 'M', u'Ꮖ'), - (0xAB97, 'M', u'Ꮗ'), - (0xAB98, 'M', u'Ꮘ'), - (0xAB99, 'M', u'Ꮙ'), - (0xAB9A, 'M', u'Ꮚ'), - (0xAB9B, 'M', u'Ꮛ'), - (0xAB9C, 'M', u'Ꮜ'), - (0xAB9D, 'M', u'Ꮝ'), - (0xAB9E, 'M', u'Ꮞ'), - (0xAB9F, 'M', u'Ꮟ'), - (0xABA0, 'M', u'Ꮠ'), - (0xABA1, 'M', u'Ꮡ'), - (0xABA2, 'M', u'Ꮢ'), - (0xABA3, 'M', u'Ꮣ'), - (0xABA4, 'M', u'Ꮤ'), - (0xABA5, 'M', u'Ꮥ'), - (0xABA6, 'M', u'Ꮦ'), - (0xABA7, 'M', u'Ꮧ'), - (0xABA8, 'M', u'Ꮨ'), - (0xABA9, 'M', u'Ꮩ'), - (0xABAA, 'M', u'Ꮪ'), - (0xABAB, 'M', u'Ꮫ'), - (0xABAC, 'M', u'Ꮬ'), - (0xABAD, 'M', u'Ꮭ'), - (0xABAE, 'M', u'Ꮮ'), - (0xABAF, 'M', u'Ꮯ'), - (0xABB0, 'M', u'Ꮰ'), - (0xABB1, 'M', u'Ꮱ'), - (0xABB2, 'M', u'Ꮲ'), - (0xABB3, 'M', u'Ꮳ'), - (0xABB4, 'M', u'Ꮴ'), - (0xABB5, 'M', u'Ꮵ'), - (0xABB6, 'M', u'Ꮶ'), - (0xABB7, 'M', u'Ꮷ'), - (0xABB8, 'M', u'Ꮸ'), - (0xABB9, 'M', u'Ꮹ'), - (0xABBA, 'M', u'Ꮺ'), - (0xABBB, 'M', u'Ꮻ'), - (0xABBC, 'M', u'Ꮼ'), - (0xABBD, 'M', u'Ꮽ'), - (0xABBE, 'M', u'Ꮾ'), - (0xABBF, 'M', u'Ꮿ'), - (0xABC0, 'V'), - (0xABEE, 'X'), - (0xABF0, 'V'), - (0xABFA, 'X'), - (0xAC00, 'V'), - (0xD7A4, 'X'), - (0xD7B0, 'V'), - (0xD7C7, 'X'), - (0xD7CB, 'V'), - (0xD7FC, 'X'), - (0xF900, 'M', u'豈'), - (0xF901, 'M', u'更'), - (0xF902, 'M', u'車'), - (0xF903, 'M', u'賈'), - (0xF904, 'M', u'滑'), - (0xF905, 'M', u'串'), - (0xF906, 'M', u'句'), - (0xF907, 'M', u'龜'), - (0xF909, 'M', u'契'), - (0xF90A, 'M', u'金'), - (0xF90B, 'M', u'喇'), - (0xF90C, 'M', u'奈'), - (0xF90D, 'M', u'懶'), - (0xF90E, 'M', u'癩'), - (0xF90F, 'M', u'羅'), - (0xF910, 'M', u'蘿'), - (0xF911, 'M', u'螺'), - (0xF912, 'M', u'裸'), - (0xF913, 'M', u'邏'), - (0xF914, 'M', u'樂'), - (0xF915, 'M', u'洛'), - ] - -def _seg_39(): - return [ - (0xF916, 'M', u'烙'), - (0xF917, 'M', u'珞'), - (0xF918, 'M', u'落'), - (0xF919, 'M', u'酪'), - (0xF91A, 'M', u'駱'), - (0xF91B, 'M', u'亂'), - (0xF91C, 'M', u'卵'), - (0xF91D, 'M', u'欄'), - (0xF91E, 'M', u'爛'), - (0xF91F, 'M', u'蘭'), - (0xF920, 'M', u'鸞'), - (0xF921, 'M', u'嵐'), - (0xF922, 'M', u'濫'), - (0xF923, 'M', u'藍'), - (0xF924, 'M', u'襤'), - (0xF925, 'M', u'拉'), - (0xF926, 'M', u'臘'), - (0xF927, 'M', u'蠟'), - (0xF928, 'M', u'廊'), - (0xF929, 'M', u'朗'), - (0xF92A, 'M', u'浪'), - (0xF92B, 'M', u'狼'), - (0xF92C, 'M', u'郎'), - (0xF92D, 'M', u'來'), - (0xF92E, 'M', u'冷'), - (0xF92F, 'M', u'勞'), - (0xF930, 'M', u'擄'), - (0xF931, 'M', u'櫓'), - (0xF932, 'M', u'爐'), - (0xF933, 'M', u'盧'), - (0xF934, 'M', u'老'), - (0xF935, 'M', u'蘆'), - (0xF936, 'M', u'虜'), - (0xF937, 'M', u'路'), - (0xF938, 'M', u'露'), - (0xF939, 'M', u'魯'), - (0xF93A, 'M', u'鷺'), - (0xF93B, 'M', u'碌'), - (0xF93C, 'M', u'祿'), - (0xF93D, 'M', u'綠'), - (0xF93E, 'M', u'菉'), - (0xF93F, 'M', u'錄'), - (0xF940, 'M', u'鹿'), - (0xF941, 'M', u'論'), - (0xF942, 'M', u'壟'), - (0xF943, 'M', u'弄'), - (0xF944, 'M', u'籠'), - (0xF945, 'M', u'聾'), - (0xF946, 'M', u'牢'), - (0xF947, 'M', u'磊'), - (0xF948, 'M', u'賂'), - (0xF949, 'M', u'雷'), - (0xF94A, 'M', u'壘'), - (0xF94B, 'M', u'屢'), - (0xF94C, 'M', u'樓'), - (0xF94D, 'M', u'淚'), - (0xF94E, 'M', u'漏'), - (0xF94F, 'M', u'累'), - (0xF950, 'M', u'縷'), - (0xF951, 'M', u'陋'), - (0xF952, 'M', u'勒'), - (0xF953, 'M', u'肋'), - (0xF954, 'M', u'凜'), - (0xF955, 'M', u'凌'), - (0xF956, 'M', u'稜'), - (0xF957, 'M', u'綾'), - (0xF958, 'M', u'菱'), - (0xF959, 'M', u'陵'), - (0xF95A, 'M', u'讀'), - (0xF95B, 'M', u'拏'), - (0xF95C, 'M', u'樂'), - (0xF95D, 'M', u'諾'), - (0xF95E, 'M', u'丹'), - (0xF95F, 'M', u'寧'), - (0xF960, 'M', u'怒'), - (0xF961, 'M', u'率'), - (0xF962, 'M', u'異'), - (0xF963, 'M', u'北'), - (0xF964, 'M', u'磻'), - (0xF965, 'M', u'便'), - (0xF966, 'M', u'復'), - (0xF967, 'M', u'不'), - (0xF968, 'M', u'泌'), - (0xF969, 'M', u'數'), - (0xF96A, 'M', u'索'), - (0xF96B, 'M', u'參'), - (0xF96C, 'M', u'塞'), - (0xF96D, 'M', u'省'), - (0xF96E, 'M', u'葉'), - (0xF96F, 'M', u'說'), - (0xF970, 'M', u'殺'), - (0xF971, 'M', u'辰'), - (0xF972, 'M', u'沈'), - (0xF973, 'M', u'拾'), - (0xF974, 'M', u'若'), - (0xF975, 'M', u'掠'), - (0xF976, 'M', u'略'), - (0xF977, 'M', u'亮'), - (0xF978, 'M', u'兩'), - (0xF979, 'M', u'凉'), - ] - -def _seg_40(): - return [ - (0xF97A, 'M', u'梁'), - (0xF97B, 'M', u'糧'), - (0xF97C, 'M', u'良'), - (0xF97D, 'M', u'諒'), - (0xF97E, 'M', u'量'), - (0xF97F, 'M', u'勵'), - (0xF980, 'M', u'呂'), - (0xF981, 'M', u'女'), - (0xF982, 'M', u'廬'), - (0xF983, 'M', u'旅'), - (0xF984, 'M', u'濾'), - (0xF985, 'M', u'礪'), - (0xF986, 'M', u'閭'), - (0xF987, 'M', u'驪'), - (0xF988, 'M', u'麗'), - (0xF989, 'M', u'黎'), - (0xF98A, 'M', u'力'), - (0xF98B, 'M', u'曆'), - (0xF98C, 'M', u'歷'), - (0xF98D, 'M', u'轢'), - (0xF98E, 'M', u'年'), - (0xF98F, 'M', u'憐'), - (0xF990, 'M', u'戀'), - (0xF991, 'M', u'撚'), - (0xF992, 'M', u'漣'), - (0xF993, 'M', u'煉'), - (0xF994, 'M', u'璉'), - (0xF995, 'M', u'秊'), - (0xF996, 'M', u'練'), - (0xF997, 'M', u'聯'), - (0xF998, 'M', u'輦'), - (0xF999, 'M', u'蓮'), - (0xF99A, 'M', u'連'), - (0xF99B, 'M', u'鍊'), - (0xF99C, 'M', u'列'), - (0xF99D, 'M', u'劣'), - (0xF99E, 'M', u'咽'), - (0xF99F, 'M', u'烈'), - (0xF9A0, 'M', u'裂'), - (0xF9A1, 'M', u'說'), - (0xF9A2, 'M', u'廉'), - (0xF9A3, 'M', u'念'), - (0xF9A4, 'M', u'捻'), - (0xF9A5, 'M', u'殮'), - (0xF9A6, 'M', u'簾'), - (0xF9A7, 'M', u'獵'), - (0xF9A8, 'M', u'令'), - (0xF9A9, 'M', u'囹'), - (0xF9AA, 'M', u'寧'), - (0xF9AB, 'M', u'嶺'), - (0xF9AC, 'M', u'怜'), - (0xF9AD, 'M', u'玲'), - (0xF9AE, 'M', u'瑩'), - (0xF9AF, 'M', u'羚'), - (0xF9B0, 'M', u'聆'), - (0xF9B1, 'M', u'鈴'), - (0xF9B2, 'M', u'零'), - (0xF9B3, 'M', u'靈'), - (0xF9B4, 'M', u'領'), - (0xF9B5, 'M', u'例'), - (0xF9B6, 'M', u'禮'), - (0xF9B7, 'M', u'醴'), - (0xF9B8, 'M', u'隸'), - (0xF9B9, 'M', u'惡'), - (0xF9BA, 'M', u'了'), - (0xF9BB, 'M', u'僚'), - (0xF9BC, 'M', u'寮'), - (0xF9BD, 'M', u'尿'), - (0xF9BE, 'M', u'料'), - (0xF9BF, 'M', u'樂'), - (0xF9C0, 'M', u'燎'), - (0xF9C1, 'M', u'療'), - (0xF9C2, 'M', u'蓼'), - (0xF9C3, 'M', u'遼'), - (0xF9C4, 'M', u'龍'), - (0xF9C5, 'M', u'暈'), - (0xF9C6, 'M', u'阮'), - (0xF9C7, 'M', u'劉'), - (0xF9C8, 'M', u'杻'), - (0xF9C9, 'M', u'柳'), - (0xF9CA, 'M', u'流'), - (0xF9CB, 'M', u'溜'), - (0xF9CC, 'M', u'琉'), - (0xF9CD, 'M', u'留'), - (0xF9CE, 'M', u'硫'), - (0xF9CF, 'M', u'紐'), - (0xF9D0, 'M', u'類'), - (0xF9D1, 'M', u'六'), - (0xF9D2, 'M', u'戮'), - (0xF9D3, 'M', u'陸'), - (0xF9D4, 'M', u'倫'), - (0xF9D5, 'M', u'崙'), - (0xF9D6, 'M', u'淪'), - (0xF9D7, 'M', u'輪'), - (0xF9D8, 'M', u'律'), - (0xF9D9, 'M', u'慄'), - (0xF9DA, 'M', u'栗'), - (0xF9DB, 'M', u'率'), - (0xF9DC, 'M', u'隆'), - (0xF9DD, 'M', u'利'), - ] - -def _seg_41(): - return [ - (0xF9DE, 'M', u'吏'), - (0xF9DF, 'M', u'履'), - (0xF9E0, 'M', u'易'), - (0xF9E1, 'M', u'李'), - (0xF9E2, 'M', u'梨'), - (0xF9E3, 'M', u'泥'), - (0xF9E4, 'M', u'理'), - (0xF9E5, 'M', u'痢'), - (0xF9E6, 'M', u'罹'), - (0xF9E7, 'M', u'裏'), - (0xF9E8, 'M', u'裡'), - (0xF9E9, 'M', u'里'), - (0xF9EA, 'M', u'離'), - (0xF9EB, 'M', u'匿'), - (0xF9EC, 'M', u'溺'), - (0xF9ED, 'M', u'吝'), - (0xF9EE, 'M', u'燐'), - (0xF9EF, 'M', u'璘'), - (0xF9F0, 'M', u'藺'), - (0xF9F1, 'M', u'隣'), - (0xF9F2, 'M', u'鱗'), - (0xF9F3, 'M', u'麟'), - (0xF9F4, 'M', u'林'), - (0xF9F5, 'M', u'淋'), - (0xF9F6, 'M', u'臨'), - (0xF9F7, 'M', u'立'), - (0xF9F8, 'M', u'笠'), - (0xF9F9, 'M', u'粒'), - (0xF9FA, 'M', u'狀'), - (0xF9FB, 'M', u'炙'), - (0xF9FC, 'M', u'識'), - (0xF9FD, 'M', u'什'), - (0xF9FE, 'M', u'茶'), - (0xF9FF, 'M', u'刺'), - (0xFA00, 'M', u'切'), - (0xFA01, 'M', u'度'), - (0xFA02, 'M', u'拓'), - (0xFA03, 'M', u'糖'), - (0xFA04, 'M', u'宅'), - (0xFA05, 'M', u'洞'), - (0xFA06, 'M', u'暴'), - (0xFA07, 'M', u'輻'), - (0xFA08, 'M', u'行'), - (0xFA09, 'M', u'降'), - (0xFA0A, 'M', u'見'), - (0xFA0B, 'M', u'廓'), - (0xFA0C, 'M', u'兀'), - (0xFA0D, 'M', u'嗀'), - (0xFA0E, 'V'), - (0xFA10, 'M', u'塚'), - (0xFA11, 'V'), - (0xFA12, 'M', u'晴'), - (0xFA13, 'V'), - (0xFA15, 'M', u'凞'), - (0xFA16, 'M', u'猪'), - (0xFA17, 'M', u'益'), - (0xFA18, 'M', u'礼'), - (0xFA19, 'M', u'神'), - (0xFA1A, 'M', u'祥'), - (0xFA1B, 'M', u'福'), - (0xFA1C, 'M', u'靖'), - (0xFA1D, 'M', u'精'), - (0xFA1E, 'M', u'羽'), - (0xFA1F, 'V'), - (0xFA20, 'M', u'蘒'), - (0xFA21, 'V'), - (0xFA22, 'M', u'諸'), - (0xFA23, 'V'), - (0xFA25, 'M', u'逸'), - (0xFA26, 'M', u'都'), - (0xFA27, 'V'), - (0xFA2A, 'M', u'飯'), - (0xFA2B, 'M', u'飼'), - (0xFA2C, 'M', u'館'), - (0xFA2D, 'M', u'鶴'), - (0xFA2E, 'M', u'郞'), - (0xFA2F, 'M', u'隷'), - (0xFA30, 'M', u'侮'), - (0xFA31, 'M', u'僧'), - (0xFA32, 'M', u'免'), - (0xFA33, 'M', u'勉'), - (0xFA34, 'M', u'勤'), - (0xFA35, 'M', u'卑'), - (0xFA36, 'M', u'喝'), - (0xFA37, 'M', u'嘆'), - (0xFA38, 'M', u'器'), - (0xFA39, 'M', u'塀'), - (0xFA3A, 'M', u'墨'), - (0xFA3B, 'M', u'層'), - (0xFA3C, 'M', u'屮'), - (0xFA3D, 'M', u'悔'), - (0xFA3E, 'M', u'慨'), - (0xFA3F, 'M', u'憎'), - (0xFA40, 'M', u'懲'), - (0xFA41, 'M', u'敏'), - (0xFA42, 'M', u'既'), - (0xFA43, 'M', u'暑'), - (0xFA44, 'M', u'梅'), - (0xFA45, 'M', u'海'), - (0xFA46, 'M', u'渚'), - ] - -def _seg_42(): - return [ - (0xFA47, 'M', u'漢'), - (0xFA48, 'M', u'煮'), - (0xFA49, 'M', u'爫'), - (0xFA4A, 'M', u'琢'), - (0xFA4B, 'M', u'碑'), - (0xFA4C, 'M', u'社'), - (0xFA4D, 'M', u'祉'), - (0xFA4E, 'M', u'祈'), - (0xFA4F, 'M', u'祐'), - (0xFA50, 'M', u'祖'), - (0xFA51, 'M', u'祝'), - (0xFA52, 'M', u'禍'), - (0xFA53, 'M', u'禎'), - (0xFA54, 'M', u'穀'), - (0xFA55, 'M', u'突'), - (0xFA56, 'M', u'節'), - (0xFA57, 'M', u'練'), - (0xFA58, 'M', u'縉'), - (0xFA59, 'M', u'繁'), - (0xFA5A, 'M', u'署'), - (0xFA5B, 'M', u'者'), - (0xFA5C, 'M', u'臭'), - (0xFA5D, 'M', u'艹'), - (0xFA5F, 'M', u'著'), - (0xFA60, 'M', u'褐'), - (0xFA61, 'M', u'視'), - (0xFA62, 'M', u'謁'), - (0xFA63, 'M', u'謹'), - (0xFA64, 'M', u'賓'), - (0xFA65, 'M', u'贈'), - (0xFA66, 'M', u'辶'), - (0xFA67, 'M', u'逸'), - (0xFA68, 'M', u'難'), - (0xFA69, 'M', u'響'), - (0xFA6A, 'M', u'頻'), - (0xFA6B, 'M', u'恵'), - (0xFA6C, 'M', u'𤋮'), - (0xFA6D, 'M', u'舘'), - (0xFA6E, 'X'), - (0xFA70, 'M', u'並'), - (0xFA71, 'M', u'况'), - (0xFA72, 'M', u'全'), - (0xFA73, 'M', u'侀'), - (0xFA74, 'M', u'充'), - (0xFA75, 'M', u'冀'), - (0xFA76, 'M', u'勇'), - (0xFA77, 'M', u'勺'), - (0xFA78, 'M', u'喝'), - (0xFA79, 'M', u'啕'), - (0xFA7A, 'M', u'喙'), - (0xFA7B, 'M', u'嗢'), - (0xFA7C, 'M', u'塚'), - (0xFA7D, 'M', u'墳'), - (0xFA7E, 'M', u'奄'), - (0xFA7F, 'M', u'奔'), - (0xFA80, 'M', u'婢'), - (0xFA81, 'M', u'嬨'), - (0xFA82, 'M', u'廒'), - (0xFA83, 'M', u'廙'), - (0xFA84, 'M', u'彩'), - (0xFA85, 'M', u'徭'), - (0xFA86, 'M', u'惘'), - (0xFA87, 'M', u'慎'), - (0xFA88, 'M', u'愈'), - (0xFA89, 'M', u'憎'), - (0xFA8A, 'M', u'慠'), - (0xFA8B, 'M', u'懲'), - (0xFA8C, 'M', u'戴'), - (0xFA8D, 'M', u'揄'), - (0xFA8E, 'M', u'搜'), - (0xFA8F, 'M', u'摒'), - (0xFA90, 'M', u'敖'), - (0xFA91, 'M', u'晴'), - (0xFA92, 'M', u'朗'), - (0xFA93, 'M', u'望'), - (0xFA94, 'M', u'杖'), - (0xFA95, 'M', u'歹'), - (0xFA96, 'M', u'殺'), - (0xFA97, 'M', u'流'), - (0xFA98, 'M', u'滛'), - (0xFA99, 'M', u'滋'), - (0xFA9A, 'M', u'漢'), - (0xFA9B, 'M', u'瀞'), - (0xFA9C, 'M', u'煮'), - (0xFA9D, 'M', u'瞧'), - (0xFA9E, 'M', u'爵'), - (0xFA9F, 'M', u'犯'), - (0xFAA0, 'M', u'猪'), - (0xFAA1, 'M', u'瑱'), - (0xFAA2, 'M', u'甆'), - (0xFAA3, 'M', u'画'), - (0xFAA4, 'M', u'瘝'), - (0xFAA5, 'M', u'瘟'), - (0xFAA6, 'M', u'益'), - (0xFAA7, 'M', u'盛'), - (0xFAA8, 'M', u'直'), - (0xFAA9, 'M', u'睊'), - (0xFAAA, 'M', u'着'), - (0xFAAB, 'M', u'磌'), - (0xFAAC, 'M', u'窱'), - ] - -def _seg_43(): - return [ - (0xFAAD, 'M', u'節'), - (0xFAAE, 'M', u'类'), - (0xFAAF, 'M', u'絛'), - (0xFAB0, 'M', u'練'), - (0xFAB1, 'M', u'缾'), - (0xFAB2, 'M', u'者'), - (0xFAB3, 'M', u'荒'), - (0xFAB4, 'M', u'華'), - (0xFAB5, 'M', u'蝹'), - (0xFAB6, 'M', u'襁'), - (0xFAB7, 'M', u'覆'), - (0xFAB8, 'M', u'視'), - (0xFAB9, 'M', u'調'), - (0xFABA, 'M', u'諸'), - (0xFABB, 'M', u'請'), - (0xFABC, 'M', u'謁'), - (0xFABD, 'M', u'諾'), - (0xFABE, 'M', u'諭'), - (0xFABF, 'M', u'謹'), - (0xFAC0, 'M', u'變'), - (0xFAC1, 'M', u'贈'), - (0xFAC2, 'M', u'輸'), - (0xFAC3, 'M', u'遲'), - (0xFAC4, 'M', u'醙'), - (0xFAC5, 'M', u'鉶'), - (0xFAC6, 'M', u'陼'), - (0xFAC7, 'M', u'難'), - (0xFAC8, 'M', u'靖'), - (0xFAC9, 'M', u'韛'), - (0xFACA, 'M', u'響'), - (0xFACB, 'M', u'頋'), - (0xFACC, 'M', u'頻'), - (0xFACD, 'M', u'鬒'), - (0xFACE, 'M', u'龜'), - (0xFACF, 'M', u'𢡊'), - (0xFAD0, 'M', u'𢡄'), - (0xFAD1, 'M', u'𣏕'), - (0xFAD2, 'M', u'㮝'), - (0xFAD3, 'M', u'䀘'), - (0xFAD4, 'M', u'䀹'), - (0xFAD5, 'M', u'𥉉'), - (0xFAD6, 'M', u'𥳐'), - (0xFAD7, 'M', u'𧻓'), - (0xFAD8, 'M', u'齃'), - (0xFAD9, 'M', u'龎'), - (0xFADA, 'X'), - (0xFB00, 'M', u'ff'), - (0xFB01, 'M', u'fi'), - (0xFB02, 'M', u'fl'), - (0xFB03, 'M', u'ffi'), - (0xFB04, 'M', u'ffl'), - (0xFB05, 'M', u'st'), - (0xFB07, 'X'), - (0xFB13, 'M', u'մն'), - (0xFB14, 'M', u'մե'), - (0xFB15, 'M', u'մի'), - (0xFB16, 'M', u'վն'), - (0xFB17, 'M', u'մխ'), - (0xFB18, 'X'), - (0xFB1D, 'M', u'יִ'), - (0xFB1E, 'V'), - (0xFB1F, 'M', u'ײַ'), - (0xFB20, 'M', u'ע'), - (0xFB21, 'M', u'א'), - (0xFB22, 'M', u'ד'), - (0xFB23, 'M', u'ה'), - (0xFB24, 'M', u'כ'), - (0xFB25, 'M', u'ל'), - (0xFB26, 'M', u'ם'), - (0xFB27, 'M', u'ר'), - (0xFB28, 'M', u'ת'), - (0xFB29, '3', u'+'), - (0xFB2A, 'M', u'שׁ'), - (0xFB2B, 'M', u'שׂ'), - (0xFB2C, 'M', u'שּׁ'), - (0xFB2D, 'M', u'שּׂ'), - (0xFB2E, 'M', u'אַ'), - (0xFB2F, 'M', u'אָ'), - (0xFB30, 'M', u'אּ'), - (0xFB31, 'M', u'בּ'), - (0xFB32, 'M', u'גּ'), - (0xFB33, 'M', u'דּ'), - (0xFB34, 'M', u'הּ'), - (0xFB35, 'M', u'וּ'), - (0xFB36, 'M', u'זּ'), - (0xFB37, 'X'), - (0xFB38, 'M', u'טּ'), - (0xFB39, 'M', u'יּ'), - (0xFB3A, 'M', u'ךּ'), - (0xFB3B, 'M', u'כּ'), - (0xFB3C, 'M', u'לּ'), - (0xFB3D, 'X'), - (0xFB3E, 'M', u'מּ'), - (0xFB3F, 'X'), - (0xFB40, 'M', u'נּ'), - (0xFB41, 'M', u'סּ'), - (0xFB42, 'X'), - (0xFB43, 'M', u'ףּ'), - (0xFB44, 'M', u'פּ'), - (0xFB45, 'X'), - ] - -def _seg_44(): - return [ - (0xFB46, 'M', u'צּ'), - (0xFB47, 'M', u'קּ'), - (0xFB48, 'M', u'רּ'), - (0xFB49, 'M', u'שּ'), - (0xFB4A, 'M', u'תּ'), - (0xFB4B, 'M', u'וֹ'), - (0xFB4C, 'M', u'בֿ'), - (0xFB4D, 'M', u'כֿ'), - (0xFB4E, 'M', u'פֿ'), - (0xFB4F, 'M', u'אל'), - (0xFB50, 'M', u'ٱ'), - (0xFB52, 'M', u'ٻ'), - (0xFB56, 'M', u'پ'), - (0xFB5A, 'M', u'ڀ'), - (0xFB5E, 'M', u'ٺ'), - (0xFB62, 'M', u'ٿ'), - (0xFB66, 'M', u'ٹ'), - (0xFB6A, 'M', u'ڤ'), - (0xFB6E, 'M', u'ڦ'), - (0xFB72, 'M', u'ڄ'), - (0xFB76, 'M', u'ڃ'), - (0xFB7A, 'M', u'چ'), - (0xFB7E, 'M', u'ڇ'), - (0xFB82, 'M', u'ڍ'), - (0xFB84, 'M', u'ڌ'), - (0xFB86, 'M', u'ڎ'), - (0xFB88, 'M', u'ڈ'), - (0xFB8A, 'M', u'ژ'), - (0xFB8C, 'M', u'ڑ'), - (0xFB8E, 'M', u'ک'), - (0xFB92, 'M', u'گ'), - (0xFB96, 'M', u'ڳ'), - (0xFB9A, 'M', u'ڱ'), - (0xFB9E, 'M', u'ں'), - (0xFBA0, 'M', u'ڻ'), - (0xFBA4, 'M', u'ۀ'), - (0xFBA6, 'M', u'ہ'), - (0xFBAA, 'M', u'ھ'), - (0xFBAE, 'M', u'ے'), - (0xFBB0, 'M', u'ۓ'), - (0xFBB2, 'V'), - (0xFBC2, 'X'), - (0xFBD3, 'M', u'ڭ'), - (0xFBD7, 'M', u'ۇ'), - (0xFBD9, 'M', u'ۆ'), - (0xFBDB, 'M', u'ۈ'), - (0xFBDD, 'M', u'ۇٴ'), - (0xFBDE, 'M', u'ۋ'), - (0xFBE0, 'M', u'ۅ'), - (0xFBE2, 'M', u'ۉ'), - (0xFBE4, 'M', u'ې'), - (0xFBE8, 'M', u'ى'), - (0xFBEA, 'M', u'ئا'), - (0xFBEC, 'M', u'ئە'), - (0xFBEE, 'M', u'ئو'), - (0xFBF0, 'M', u'ئۇ'), - (0xFBF2, 'M', u'ئۆ'), - (0xFBF4, 'M', u'ئۈ'), - (0xFBF6, 'M', u'ئې'), - (0xFBF9, 'M', u'ئى'), - (0xFBFC, 'M', u'ی'), - (0xFC00, 'M', u'ئج'), - (0xFC01, 'M', u'ئح'), - (0xFC02, 'M', u'ئم'), - (0xFC03, 'M', u'ئى'), - (0xFC04, 'M', u'ئي'), - (0xFC05, 'M', u'بج'), - (0xFC06, 'M', u'بح'), - (0xFC07, 'M', u'بخ'), - (0xFC08, 'M', u'بم'), - (0xFC09, 'M', u'بى'), - (0xFC0A, 'M', u'بي'), - (0xFC0B, 'M', u'تج'), - (0xFC0C, 'M', u'تح'), - (0xFC0D, 'M', u'تخ'), - (0xFC0E, 'M', u'تم'), - (0xFC0F, 'M', u'تى'), - (0xFC10, 'M', u'تي'), - (0xFC11, 'M', u'ثج'), - (0xFC12, 'M', u'ثم'), - (0xFC13, 'M', u'ثى'), - (0xFC14, 'M', u'ثي'), - (0xFC15, 'M', u'جح'), - (0xFC16, 'M', u'جم'), - (0xFC17, 'M', u'حج'), - (0xFC18, 'M', u'حم'), - (0xFC19, 'M', u'خج'), - (0xFC1A, 'M', u'خح'), - (0xFC1B, 'M', u'خم'), - (0xFC1C, 'M', u'سج'), - (0xFC1D, 'M', u'سح'), - (0xFC1E, 'M', u'سخ'), - (0xFC1F, 'M', u'سم'), - (0xFC20, 'M', u'صح'), - (0xFC21, 'M', u'صم'), - (0xFC22, 'M', u'ضج'), - (0xFC23, 'M', u'ضح'), - (0xFC24, 'M', u'ضخ'), - (0xFC25, 'M', u'ضم'), - (0xFC26, 'M', u'طح'), - ] - -def _seg_45(): - return [ - (0xFC27, 'M', u'طم'), - (0xFC28, 'M', u'ظم'), - (0xFC29, 'M', u'عج'), - (0xFC2A, 'M', u'عم'), - (0xFC2B, 'M', u'غج'), - (0xFC2C, 'M', u'غم'), - (0xFC2D, 'M', u'فج'), - (0xFC2E, 'M', u'فح'), - (0xFC2F, 'M', u'فخ'), - (0xFC30, 'M', u'فم'), - (0xFC31, 'M', u'فى'), - (0xFC32, 'M', u'في'), - (0xFC33, 'M', u'قح'), - (0xFC34, 'M', u'قم'), - (0xFC35, 'M', u'قى'), - (0xFC36, 'M', u'قي'), - (0xFC37, 'M', u'كا'), - (0xFC38, 'M', u'كج'), - (0xFC39, 'M', u'كح'), - (0xFC3A, 'M', u'كخ'), - (0xFC3B, 'M', u'كل'), - (0xFC3C, 'M', u'كم'), - (0xFC3D, 'M', u'كى'), - (0xFC3E, 'M', u'كي'), - (0xFC3F, 'M', u'لج'), - (0xFC40, 'M', u'لح'), - (0xFC41, 'M', u'لخ'), - (0xFC42, 'M', u'لم'), - (0xFC43, 'M', u'لى'), - (0xFC44, 'M', u'لي'), - (0xFC45, 'M', u'مج'), - (0xFC46, 'M', u'مح'), - (0xFC47, 'M', u'مخ'), - (0xFC48, 'M', u'مم'), - (0xFC49, 'M', u'مى'), - (0xFC4A, 'M', u'مي'), - (0xFC4B, 'M', u'نج'), - (0xFC4C, 'M', u'نح'), - (0xFC4D, 'M', u'نخ'), - (0xFC4E, 'M', u'نم'), - (0xFC4F, 'M', u'نى'), - (0xFC50, 'M', u'ني'), - (0xFC51, 'M', u'هج'), - (0xFC52, 'M', u'هم'), - (0xFC53, 'M', u'هى'), - (0xFC54, 'M', u'هي'), - (0xFC55, 'M', u'يج'), - (0xFC56, 'M', u'يح'), - (0xFC57, 'M', u'يخ'), - (0xFC58, 'M', u'يم'), - (0xFC59, 'M', u'يى'), - (0xFC5A, 'M', u'يي'), - (0xFC5B, 'M', u'ذٰ'), - (0xFC5C, 'M', u'رٰ'), - (0xFC5D, 'M', u'ىٰ'), - (0xFC5E, '3', u' ٌّ'), - (0xFC5F, '3', u' ٍّ'), - (0xFC60, '3', u' َّ'), - (0xFC61, '3', u' ُّ'), - (0xFC62, '3', u' ِّ'), - (0xFC63, '3', u' ّٰ'), - (0xFC64, 'M', u'ئر'), - (0xFC65, 'M', u'ئز'), - (0xFC66, 'M', u'ئم'), - (0xFC67, 'M', u'ئن'), - (0xFC68, 'M', u'ئى'), - (0xFC69, 'M', u'ئي'), - (0xFC6A, 'M', u'بر'), - (0xFC6B, 'M', u'بز'), - (0xFC6C, 'M', u'بم'), - (0xFC6D, 'M', u'بن'), - (0xFC6E, 'M', u'بى'), - (0xFC6F, 'M', u'بي'), - (0xFC70, 'M', u'تر'), - (0xFC71, 'M', u'تز'), - (0xFC72, 'M', u'تم'), - (0xFC73, 'M', u'تن'), - (0xFC74, 'M', u'تى'), - (0xFC75, 'M', u'تي'), - (0xFC76, 'M', u'ثر'), - (0xFC77, 'M', u'ثز'), - (0xFC78, 'M', u'ثم'), - (0xFC79, 'M', u'ثن'), - (0xFC7A, 'M', u'ثى'), - (0xFC7B, 'M', u'ثي'), - (0xFC7C, 'M', u'فى'), - (0xFC7D, 'M', u'في'), - (0xFC7E, 'M', u'قى'), - (0xFC7F, 'M', u'قي'), - (0xFC80, 'M', u'كا'), - (0xFC81, 'M', u'كل'), - (0xFC82, 'M', u'كم'), - (0xFC83, 'M', u'كى'), - (0xFC84, 'M', u'كي'), - (0xFC85, 'M', u'لم'), - (0xFC86, 'M', u'لى'), - (0xFC87, 'M', u'لي'), - (0xFC88, 'M', u'ما'), - (0xFC89, 'M', u'مم'), - (0xFC8A, 'M', u'نر'), - ] - -def _seg_46(): - return [ - (0xFC8B, 'M', u'نز'), - (0xFC8C, 'M', u'نم'), - (0xFC8D, 'M', u'نن'), - (0xFC8E, 'M', u'نى'), - (0xFC8F, 'M', u'ني'), - (0xFC90, 'M', u'ىٰ'), - (0xFC91, 'M', u'ير'), - (0xFC92, 'M', u'يز'), - (0xFC93, 'M', u'يم'), - (0xFC94, 'M', u'ين'), - (0xFC95, 'M', u'يى'), - (0xFC96, 'M', u'يي'), - (0xFC97, 'M', u'ئج'), - (0xFC98, 'M', u'ئح'), - (0xFC99, 'M', u'ئخ'), - (0xFC9A, 'M', u'ئم'), - (0xFC9B, 'M', u'ئه'), - (0xFC9C, 'M', u'بج'), - (0xFC9D, 'M', u'بح'), - (0xFC9E, 'M', u'بخ'), - (0xFC9F, 'M', u'بم'), - (0xFCA0, 'M', u'به'), - (0xFCA1, 'M', u'تج'), - (0xFCA2, 'M', u'تح'), - (0xFCA3, 'M', u'تخ'), - (0xFCA4, 'M', u'تم'), - (0xFCA5, 'M', u'ته'), - (0xFCA6, 'M', u'ثم'), - (0xFCA7, 'M', u'جح'), - (0xFCA8, 'M', u'جم'), - (0xFCA9, 'M', u'حج'), - (0xFCAA, 'M', u'حم'), - (0xFCAB, 'M', u'خج'), - (0xFCAC, 'M', u'خم'), - (0xFCAD, 'M', u'سج'), - (0xFCAE, 'M', u'سح'), - (0xFCAF, 'M', u'سخ'), - (0xFCB0, 'M', u'سم'), - (0xFCB1, 'M', u'صح'), - (0xFCB2, 'M', u'صخ'), - (0xFCB3, 'M', u'صم'), - (0xFCB4, 'M', u'ضج'), - (0xFCB5, 'M', u'ضح'), - (0xFCB6, 'M', u'ضخ'), - (0xFCB7, 'M', u'ضم'), - (0xFCB8, 'M', u'طح'), - (0xFCB9, 'M', u'ظم'), - (0xFCBA, 'M', u'عج'), - (0xFCBB, 'M', u'عم'), - (0xFCBC, 'M', u'غج'), - (0xFCBD, 'M', u'غم'), - (0xFCBE, 'M', u'فج'), - (0xFCBF, 'M', u'فح'), - (0xFCC0, 'M', u'فخ'), - (0xFCC1, 'M', u'فم'), - (0xFCC2, 'M', u'قح'), - (0xFCC3, 'M', u'قم'), - (0xFCC4, 'M', u'كج'), - (0xFCC5, 'M', u'كح'), - (0xFCC6, 'M', u'كخ'), - (0xFCC7, 'M', u'كل'), - (0xFCC8, 'M', u'كم'), - (0xFCC9, 'M', u'لج'), - (0xFCCA, 'M', u'لح'), - (0xFCCB, 'M', u'لخ'), - (0xFCCC, 'M', u'لم'), - (0xFCCD, 'M', u'له'), - (0xFCCE, 'M', u'مج'), - (0xFCCF, 'M', u'مح'), - (0xFCD0, 'M', u'مخ'), - (0xFCD1, 'M', u'مم'), - (0xFCD2, 'M', u'نج'), - (0xFCD3, 'M', u'نح'), - (0xFCD4, 'M', u'نخ'), - (0xFCD5, 'M', u'نم'), - (0xFCD6, 'M', u'نه'), - (0xFCD7, 'M', u'هج'), - (0xFCD8, 'M', u'هم'), - (0xFCD9, 'M', u'هٰ'), - (0xFCDA, 'M', u'يج'), - (0xFCDB, 'M', u'يح'), - (0xFCDC, 'M', u'يخ'), - (0xFCDD, 'M', u'يم'), - (0xFCDE, 'M', u'يه'), - (0xFCDF, 'M', u'ئم'), - (0xFCE0, 'M', u'ئه'), - (0xFCE1, 'M', u'بم'), - (0xFCE2, 'M', u'به'), - (0xFCE3, 'M', u'تم'), - (0xFCE4, 'M', u'ته'), - (0xFCE5, 'M', u'ثم'), - (0xFCE6, 'M', u'ثه'), - (0xFCE7, 'M', u'سم'), - (0xFCE8, 'M', u'سه'), - (0xFCE9, 'M', u'شم'), - (0xFCEA, 'M', u'شه'), - (0xFCEB, 'M', u'كل'), - (0xFCEC, 'M', u'كم'), - (0xFCED, 'M', u'لم'), - (0xFCEE, 'M', u'نم'), - ] - -def _seg_47(): - return [ - (0xFCEF, 'M', u'نه'), - (0xFCF0, 'M', u'يم'), - (0xFCF1, 'M', u'يه'), - (0xFCF2, 'M', u'ـَّ'), - (0xFCF3, 'M', u'ـُّ'), - (0xFCF4, 'M', u'ـِّ'), - (0xFCF5, 'M', u'طى'), - (0xFCF6, 'M', u'طي'), - (0xFCF7, 'M', u'عى'), - (0xFCF8, 'M', u'عي'), - (0xFCF9, 'M', u'غى'), - (0xFCFA, 'M', u'غي'), - (0xFCFB, 'M', u'سى'), - (0xFCFC, 'M', u'سي'), - (0xFCFD, 'M', u'شى'), - (0xFCFE, 'M', u'شي'), - (0xFCFF, 'M', u'حى'), - (0xFD00, 'M', u'حي'), - (0xFD01, 'M', u'جى'), - (0xFD02, 'M', u'جي'), - (0xFD03, 'M', u'خى'), - (0xFD04, 'M', u'خي'), - (0xFD05, 'M', u'صى'), - (0xFD06, 'M', u'صي'), - (0xFD07, 'M', u'ضى'), - (0xFD08, 'M', u'ضي'), - (0xFD09, 'M', u'شج'), - (0xFD0A, 'M', u'شح'), - (0xFD0B, 'M', u'شخ'), - (0xFD0C, 'M', u'شم'), - (0xFD0D, 'M', u'شر'), - (0xFD0E, 'M', u'سر'), - (0xFD0F, 'M', u'صر'), - (0xFD10, 'M', u'ضر'), - (0xFD11, 'M', u'طى'), - (0xFD12, 'M', u'طي'), - (0xFD13, 'M', u'عى'), - (0xFD14, 'M', u'عي'), - (0xFD15, 'M', u'غى'), - (0xFD16, 'M', u'غي'), - (0xFD17, 'M', u'سى'), - (0xFD18, 'M', u'سي'), - (0xFD19, 'M', u'شى'), - (0xFD1A, 'M', u'شي'), - (0xFD1B, 'M', u'حى'), - (0xFD1C, 'M', u'حي'), - (0xFD1D, 'M', u'جى'), - (0xFD1E, 'M', u'جي'), - (0xFD1F, 'M', u'خى'), - (0xFD20, 'M', u'خي'), - (0xFD21, 'M', u'صى'), - (0xFD22, 'M', u'صي'), - (0xFD23, 'M', u'ضى'), - (0xFD24, 'M', u'ضي'), - (0xFD25, 'M', u'شج'), - (0xFD26, 'M', u'شح'), - (0xFD27, 'M', u'شخ'), - (0xFD28, 'M', u'شم'), - (0xFD29, 'M', u'شر'), - (0xFD2A, 'M', u'سر'), - (0xFD2B, 'M', u'صر'), - (0xFD2C, 'M', u'ضر'), - (0xFD2D, 'M', u'شج'), - (0xFD2E, 'M', u'شح'), - (0xFD2F, 'M', u'شخ'), - (0xFD30, 'M', u'شم'), - (0xFD31, 'M', u'سه'), - (0xFD32, 'M', u'شه'), - (0xFD33, 'M', u'طم'), - (0xFD34, 'M', u'سج'), - (0xFD35, 'M', u'سح'), - (0xFD36, 'M', u'سخ'), - (0xFD37, 'M', u'شج'), - (0xFD38, 'M', u'شح'), - (0xFD39, 'M', u'شخ'), - (0xFD3A, 'M', u'طم'), - (0xFD3B, 'M', u'ظم'), - (0xFD3C, 'M', u'اً'), - (0xFD3E, 'V'), - (0xFD40, 'X'), - (0xFD50, 'M', u'تجم'), - (0xFD51, 'M', u'تحج'), - (0xFD53, 'M', u'تحم'), - (0xFD54, 'M', u'تخم'), - (0xFD55, 'M', u'تمج'), - (0xFD56, 'M', u'تمح'), - (0xFD57, 'M', u'تمخ'), - (0xFD58, 'M', u'جمح'), - (0xFD5A, 'M', u'حمي'), - (0xFD5B, 'M', u'حمى'), - (0xFD5C, 'M', u'سحج'), - (0xFD5D, 'M', u'سجح'), - (0xFD5E, 'M', u'سجى'), - (0xFD5F, 'M', u'سمح'), - (0xFD61, 'M', u'سمج'), - (0xFD62, 'M', u'سمم'), - (0xFD64, 'M', u'صحح'), - (0xFD66, 'M', u'صمم'), - (0xFD67, 'M', u'شحم'), - (0xFD69, 'M', u'شجي'), - ] - -def _seg_48(): - return [ - (0xFD6A, 'M', u'شمخ'), - (0xFD6C, 'M', u'شمم'), - (0xFD6E, 'M', u'ضحى'), - (0xFD6F, 'M', u'ضخم'), - (0xFD71, 'M', u'طمح'), - (0xFD73, 'M', u'طمم'), - (0xFD74, 'M', u'طمي'), - (0xFD75, 'M', u'عجم'), - (0xFD76, 'M', u'عمم'), - (0xFD78, 'M', u'عمى'), - (0xFD79, 'M', u'غمم'), - (0xFD7A, 'M', u'غمي'), - (0xFD7B, 'M', u'غمى'), - (0xFD7C, 'M', u'فخم'), - (0xFD7E, 'M', u'قمح'), - (0xFD7F, 'M', u'قمم'), - (0xFD80, 'M', u'لحم'), - (0xFD81, 'M', u'لحي'), - (0xFD82, 'M', u'لحى'), - (0xFD83, 'M', u'لجج'), - (0xFD85, 'M', u'لخم'), - (0xFD87, 'M', u'لمح'), - (0xFD89, 'M', u'محج'), - (0xFD8A, 'M', u'محم'), - (0xFD8B, 'M', u'محي'), - (0xFD8C, 'M', u'مجح'), - (0xFD8D, 'M', u'مجم'), - (0xFD8E, 'M', u'مخج'), - (0xFD8F, 'M', u'مخم'), - (0xFD90, 'X'), - (0xFD92, 'M', u'مجخ'), - (0xFD93, 'M', u'همج'), - (0xFD94, 'M', u'همم'), - (0xFD95, 'M', u'نحم'), - (0xFD96, 'M', u'نحى'), - (0xFD97, 'M', u'نجم'), - (0xFD99, 'M', u'نجى'), - (0xFD9A, 'M', u'نمي'), - (0xFD9B, 'M', u'نمى'), - (0xFD9C, 'M', u'يمم'), - (0xFD9E, 'M', u'بخي'), - (0xFD9F, 'M', u'تجي'), - (0xFDA0, 'M', u'تجى'), - (0xFDA1, 'M', u'تخي'), - (0xFDA2, 'M', u'تخى'), - (0xFDA3, 'M', u'تمي'), - (0xFDA4, 'M', u'تمى'), - (0xFDA5, 'M', u'جمي'), - (0xFDA6, 'M', u'جحى'), - (0xFDA7, 'M', u'جمى'), - (0xFDA8, 'M', u'سخى'), - (0xFDA9, 'M', u'صحي'), - (0xFDAA, 'M', u'شحي'), - (0xFDAB, 'M', u'ضحي'), - (0xFDAC, 'M', u'لجي'), - (0xFDAD, 'M', u'لمي'), - (0xFDAE, 'M', u'يحي'), - (0xFDAF, 'M', u'يجي'), - (0xFDB0, 'M', u'يمي'), - (0xFDB1, 'M', u'ممي'), - (0xFDB2, 'M', u'قمي'), - (0xFDB3, 'M', u'نحي'), - (0xFDB4, 'M', u'قمح'), - (0xFDB5, 'M', u'لحم'), - (0xFDB6, 'M', u'عمي'), - (0xFDB7, 'M', u'كمي'), - (0xFDB8, 'M', u'نجح'), - (0xFDB9, 'M', u'مخي'), - (0xFDBA, 'M', u'لجم'), - (0xFDBB, 'M', u'كمم'), - (0xFDBC, 'M', u'لجم'), - (0xFDBD, 'M', u'نجح'), - (0xFDBE, 'M', u'جحي'), - (0xFDBF, 'M', u'حجي'), - (0xFDC0, 'M', u'مجي'), - (0xFDC1, 'M', u'فمي'), - (0xFDC2, 'M', u'بحي'), - (0xFDC3, 'M', u'كمم'), - (0xFDC4, 'M', u'عجم'), - (0xFDC5, 'M', u'صمم'), - (0xFDC6, 'M', u'سخي'), - (0xFDC7, 'M', u'نجي'), - (0xFDC8, 'X'), - (0xFDF0, 'M', u'صلے'), - (0xFDF1, 'M', u'قلے'), - (0xFDF2, 'M', u'الله'), - (0xFDF3, 'M', u'اكبر'), - (0xFDF4, 'M', u'محمد'), - (0xFDF5, 'M', u'صلعم'), - (0xFDF6, 'M', u'رسول'), - (0xFDF7, 'M', u'عليه'), - (0xFDF8, 'M', u'وسلم'), - (0xFDF9, 'M', u'صلى'), - (0xFDFA, '3', u'صلى الله عليه وسلم'), - (0xFDFB, '3', u'جل جلاله'), - (0xFDFC, 'M', u'ریال'), - (0xFDFD, 'V'), - (0xFDFE, 'X'), - (0xFE00, 'I'), - (0xFE10, '3', u','), - ] - -def _seg_49(): - return [ - (0xFE11, 'M', u'、'), - (0xFE12, 'X'), - (0xFE13, '3', u':'), - (0xFE14, '3', u';'), - (0xFE15, '3', u'!'), - (0xFE16, '3', u'?'), - (0xFE17, 'M', u'〖'), - (0xFE18, 'M', u'〗'), - (0xFE19, 'X'), - (0xFE20, 'V'), - (0xFE30, 'X'), - (0xFE31, 'M', u'—'), - (0xFE32, 'M', u'–'), - (0xFE33, '3', u'_'), - (0xFE35, '3', u'('), - (0xFE36, '3', u')'), - (0xFE37, '3', u'{'), - (0xFE38, '3', u'}'), - (0xFE39, 'M', u'〔'), - (0xFE3A, 'M', u'〕'), - (0xFE3B, 'M', u'【'), - (0xFE3C, 'M', u'】'), - (0xFE3D, 'M', u'《'), - (0xFE3E, 'M', u'》'), - (0xFE3F, 'M', u'〈'), - (0xFE40, 'M', u'〉'), - (0xFE41, 'M', u'「'), - (0xFE42, 'M', u'」'), - (0xFE43, 'M', u'『'), - (0xFE44, 'M', u'』'), - (0xFE45, 'V'), - (0xFE47, '3', u'['), - (0xFE48, '3', u']'), - (0xFE49, '3', u' ̅'), - (0xFE4D, '3', u'_'), - (0xFE50, '3', u','), - (0xFE51, 'M', u'、'), - (0xFE52, 'X'), - (0xFE54, '3', u';'), - (0xFE55, '3', u':'), - (0xFE56, '3', u'?'), - (0xFE57, '3', u'!'), - (0xFE58, 'M', u'—'), - (0xFE59, '3', u'('), - (0xFE5A, '3', u')'), - (0xFE5B, '3', u'{'), - (0xFE5C, '3', u'}'), - (0xFE5D, 'M', u'〔'), - (0xFE5E, 'M', u'〕'), - (0xFE5F, '3', u'#'), - (0xFE60, '3', u'&'), - (0xFE61, '3', u'*'), - (0xFE62, '3', u'+'), - (0xFE63, 'M', u'-'), - (0xFE64, '3', u'<'), - (0xFE65, '3', u'>'), - (0xFE66, '3', u'='), - (0xFE67, 'X'), - (0xFE68, '3', u'\\'), - (0xFE69, '3', u'$'), - (0xFE6A, '3', u'%'), - (0xFE6B, '3', u'@'), - (0xFE6C, 'X'), - (0xFE70, '3', u' ً'), - (0xFE71, 'M', u'ـً'), - (0xFE72, '3', u' ٌ'), - (0xFE73, 'V'), - (0xFE74, '3', u' ٍ'), - (0xFE75, 'X'), - (0xFE76, '3', u' َ'), - (0xFE77, 'M', u'ـَ'), - (0xFE78, '3', u' ُ'), - (0xFE79, 'M', u'ـُ'), - (0xFE7A, '3', u' ِ'), - (0xFE7B, 'M', u'ـِ'), - (0xFE7C, '3', u' ّ'), - (0xFE7D, 'M', u'ـّ'), - (0xFE7E, '3', u' ْ'), - (0xFE7F, 'M', u'ـْ'), - (0xFE80, 'M', u'ء'), - (0xFE81, 'M', u'آ'), - (0xFE83, 'M', u'أ'), - (0xFE85, 'M', u'ؤ'), - (0xFE87, 'M', u'إ'), - (0xFE89, 'M', u'ئ'), - (0xFE8D, 'M', u'ا'), - (0xFE8F, 'M', u'ب'), - (0xFE93, 'M', u'ة'), - (0xFE95, 'M', u'ت'), - (0xFE99, 'M', u'ث'), - (0xFE9D, 'M', u'ج'), - (0xFEA1, 'M', u'ح'), - (0xFEA5, 'M', u'خ'), - (0xFEA9, 'M', u'د'), - (0xFEAB, 'M', u'ذ'), - (0xFEAD, 'M', u'ر'), - (0xFEAF, 'M', u'ز'), - (0xFEB1, 'M', u'س'), - (0xFEB5, 'M', u'ش'), - (0xFEB9, 'M', u'ص'), - ] - -def _seg_50(): - return [ - (0xFEBD, 'M', u'ض'), - (0xFEC1, 'M', u'ط'), - (0xFEC5, 'M', u'ظ'), - (0xFEC9, 'M', u'ع'), - (0xFECD, 'M', u'غ'), - (0xFED1, 'M', u'ف'), - (0xFED5, 'M', u'ق'), - (0xFED9, 'M', u'ك'), - (0xFEDD, 'M', u'ل'), - (0xFEE1, 'M', u'م'), - (0xFEE5, 'M', u'ن'), - (0xFEE9, 'M', u'ه'), - (0xFEED, 'M', u'و'), - (0xFEEF, 'M', u'ى'), - (0xFEF1, 'M', u'ي'), - (0xFEF5, 'M', u'لآ'), - (0xFEF7, 'M', u'لأ'), - (0xFEF9, 'M', u'لإ'), - (0xFEFB, 'M', u'لا'), - (0xFEFD, 'X'), - (0xFEFF, 'I'), - (0xFF00, 'X'), - (0xFF01, '3', u'!'), - (0xFF02, '3', u'"'), - (0xFF03, '3', u'#'), - (0xFF04, '3', u'$'), - (0xFF05, '3', u'%'), - (0xFF06, '3', u'&'), - (0xFF07, '3', u'\''), - (0xFF08, '3', u'('), - (0xFF09, '3', u')'), - (0xFF0A, '3', u'*'), - (0xFF0B, '3', u'+'), - (0xFF0C, '3', u','), - (0xFF0D, 'M', u'-'), - (0xFF0E, 'M', u'.'), - (0xFF0F, '3', u'/'), - (0xFF10, 'M', u'0'), - (0xFF11, 'M', u'1'), - (0xFF12, 'M', u'2'), - (0xFF13, 'M', u'3'), - (0xFF14, 'M', u'4'), - (0xFF15, 'M', u'5'), - (0xFF16, 'M', u'6'), - (0xFF17, 'M', u'7'), - (0xFF18, 'M', u'8'), - (0xFF19, 'M', u'9'), - (0xFF1A, '3', u':'), - (0xFF1B, '3', u';'), - (0xFF1C, '3', u'<'), - (0xFF1D, '3', u'='), - (0xFF1E, '3', u'>'), - (0xFF1F, '3', u'?'), - (0xFF20, '3', u'@'), - (0xFF21, 'M', u'a'), - (0xFF22, 'M', u'b'), - (0xFF23, 'M', u'c'), - (0xFF24, 'M', u'd'), - (0xFF25, 'M', u'e'), - (0xFF26, 'M', u'f'), - (0xFF27, 'M', u'g'), - (0xFF28, 'M', u'h'), - (0xFF29, 'M', u'i'), - (0xFF2A, 'M', u'j'), - (0xFF2B, 'M', u'k'), - (0xFF2C, 'M', u'l'), - (0xFF2D, 'M', u'm'), - (0xFF2E, 'M', u'n'), - (0xFF2F, 'M', u'o'), - (0xFF30, 'M', u'p'), - (0xFF31, 'M', u'q'), - (0xFF32, 'M', u'r'), - (0xFF33, 'M', u's'), - (0xFF34, 'M', u't'), - (0xFF35, 'M', u'u'), - (0xFF36, 'M', u'v'), - (0xFF37, 'M', u'w'), - (0xFF38, 'M', u'x'), - (0xFF39, 'M', u'y'), - (0xFF3A, 'M', u'z'), - (0xFF3B, '3', u'['), - (0xFF3C, '3', u'\\'), - (0xFF3D, '3', u']'), - (0xFF3E, '3', u'^'), - (0xFF3F, '3', u'_'), - (0xFF40, '3', u'`'), - (0xFF41, 'M', u'a'), - (0xFF42, 'M', u'b'), - (0xFF43, 'M', u'c'), - (0xFF44, 'M', u'd'), - (0xFF45, 'M', u'e'), - (0xFF46, 'M', u'f'), - (0xFF47, 'M', u'g'), - (0xFF48, 'M', u'h'), - (0xFF49, 'M', u'i'), - (0xFF4A, 'M', u'j'), - (0xFF4B, 'M', u'k'), - (0xFF4C, 'M', u'l'), - (0xFF4D, 'M', u'm'), - (0xFF4E, 'M', u'n'), - ] - -def _seg_51(): - return [ - (0xFF4F, 'M', u'o'), - (0xFF50, 'M', u'p'), - (0xFF51, 'M', u'q'), - (0xFF52, 'M', u'r'), - (0xFF53, 'M', u's'), - (0xFF54, 'M', u't'), - (0xFF55, 'M', u'u'), - (0xFF56, 'M', u'v'), - (0xFF57, 'M', u'w'), - (0xFF58, 'M', u'x'), - (0xFF59, 'M', u'y'), - (0xFF5A, 'M', u'z'), - (0xFF5B, '3', u'{'), - (0xFF5C, '3', u'|'), - (0xFF5D, '3', u'}'), - (0xFF5E, '3', u'~'), - (0xFF5F, 'M', u'⦅'), - (0xFF60, 'M', u'⦆'), - (0xFF61, 'M', u'.'), - (0xFF62, 'M', u'「'), - (0xFF63, 'M', u'」'), - (0xFF64, 'M', u'、'), - (0xFF65, 'M', u'・'), - (0xFF66, 'M', u'ヲ'), - (0xFF67, 'M', u'ァ'), - (0xFF68, 'M', u'ィ'), - (0xFF69, 'M', u'ゥ'), - (0xFF6A, 'M', u'ェ'), - (0xFF6B, 'M', u'ォ'), - (0xFF6C, 'M', u'ャ'), - (0xFF6D, 'M', u'ュ'), - (0xFF6E, 'M', u'ョ'), - (0xFF6F, 'M', u'ッ'), - (0xFF70, 'M', u'ー'), - (0xFF71, 'M', u'ア'), - (0xFF72, 'M', u'イ'), - (0xFF73, 'M', u'ウ'), - (0xFF74, 'M', u'エ'), - (0xFF75, 'M', u'オ'), - (0xFF76, 'M', u'カ'), - (0xFF77, 'M', u'キ'), - (0xFF78, 'M', u'ク'), - (0xFF79, 'M', u'ケ'), - (0xFF7A, 'M', u'コ'), - (0xFF7B, 'M', u'サ'), - (0xFF7C, 'M', u'シ'), - (0xFF7D, 'M', u'ス'), - (0xFF7E, 'M', u'セ'), - (0xFF7F, 'M', u'ソ'), - (0xFF80, 'M', u'タ'), - (0xFF81, 'M', u'チ'), - (0xFF82, 'M', u'ツ'), - (0xFF83, 'M', u'テ'), - (0xFF84, 'M', u'ト'), - (0xFF85, 'M', u'ナ'), - (0xFF86, 'M', u'ニ'), - (0xFF87, 'M', u'ヌ'), - (0xFF88, 'M', u'ネ'), - (0xFF89, 'M', u'ノ'), - (0xFF8A, 'M', u'ハ'), - (0xFF8B, 'M', u'ヒ'), - (0xFF8C, 'M', u'フ'), - (0xFF8D, 'M', u'ヘ'), - (0xFF8E, 'M', u'ホ'), - (0xFF8F, 'M', u'マ'), - (0xFF90, 'M', u'ミ'), - (0xFF91, 'M', u'ム'), - (0xFF92, 'M', u'メ'), - (0xFF93, 'M', u'モ'), - (0xFF94, 'M', u'ヤ'), - (0xFF95, 'M', u'ユ'), - (0xFF96, 'M', u'ヨ'), - (0xFF97, 'M', u'ラ'), - (0xFF98, 'M', u'リ'), - (0xFF99, 'M', u'ル'), - (0xFF9A, 'M', u'レ'), - (0xFF9B, 'M', u'ロ'), - (0xFF9C, 'M', u'ワ'), - (0xFF9D, 'M', u'ン'), - (0xFF9E, 'M', u'゙'), - (0xFF9F, 'M', u'゚'), - (0xFFA0, 'X'), - (0xFFA1, 'M', u'ᄀ'), - (0xFFA2, 'M', u'ᄁ'), - (0xFFA3, 'M', u'ᆪ'), - (0xFFA4, 'M', u'ᄂ'), - (0xFFA5, 'M', u'ᆬ'), - (0xFFA6, 'M', u'ᆭ'), - (0xFFA7, 'M', u'ᄃ'), - (0xFFA8, 'M', u'ᄄ'), - (0xFFA9, 'M', u'ᄅ'), - (0xFFAA, 'M', u'ᆰ'), - (0xFFAB, 'M', u'ᆱ'), - (0xFFAC, 'M', u'ᆲ'), - (0xFFAD, 'M', u'ᆳ'), - (0xFFAE, 'M', u'ᆴ'), - (0xFFAF, 'M', u'ᆵ'), - (0xFFB0, 'M', u'ᄚ'), - (0xFFB1, 'M', u'ᄆ'), - (0xFFB2, 'M', u'ᄇ'), - ] - -def _seg_52(): - return [ - (0xFFB3, 'M', u'ᄈ'), - (0xFFB4, 'M', u'ᄡ'), - (0xFFB5, 'M', u'ᄉ'), - (0xFFB6, 'M', u'ᄊ'), - (0xFFB7, 'M', u'ᄋ'), - (0xFFB8, 'M', u'ᄌ'), - (0xFFB9, 'M', u'ᄍ'), - (0xFFBA, 'M', u'ᄎ'), - (0xFFBB, 'M', u'ᄏ'), - (0xFFBC, 'M', u'ᄐ'), - (0xFFBD, 'M', u'ᄑ'), - (0xFFBE, 'M', u'ᄒ'), - (0xFFBF, 'X'), - (0xFFC2, 'M', u'ᅡ'), - (0xFFC3, 'M', u'ᅢ'), - (0xFFC4, 'M', u'ᅣ'), - (0xFFC5, 'M', u'ᅤ'), - (0xFFC6, 'M', u'ᅥ'), - (0xFFC7, 'M', u'ᅦ'), - (0xFFC8, 'X'), - (0xFFCA, 'M', u'ᅧ'), - (0xFFCB, 'M', u'ᅨ'), - (0xFFCC, 'M', u'ᅩ'), - (0xFFCD, 'M', u'ᅪ'), - (0xFFCE, 'M', u'ᅫ'), - (0xFFCF, 'M', u'ᅬ'), - (0xFFD0, 'X'), - (0xFFD2, 'M', u'ᅭ'), - (0xFFD3, 'M', u'ᅮ'), - (0xFFD4, 'M', u'ᅯ'), - (0xFFD5, 'M', u'ᅰ'), - (0xFFD6, 'M', u'ᅱ'), - (0xFFD7, 'M', u'ᅲ'), - (0xFFD8, 'X'), - (0xFFDA, 'M', u'ᅳ'), - (0xFFDB, 'M', u'ᅴ'), - (0xFFDC, 'M', u'ᅵ'), - (0xFFDD, 'X'), - (0xFFE0, 'M', u'¢'), - (0xFFE1, 'M', u'£'), - (0xFFE2, 'M', u'¬'), - (0xFFE3, '3', u' ̄'), - (0xFFE4, 'M', u'¦'), - (0xFFE5, 'M', u'¥'), - (0xFFE6, 'M', u'₩'), - (0xFFE7, 'X'), - (0xFFE8, 'M', u'│'), - (0xFFE9, 'M', u'←'), - (0xFFEA, 'M', u'↑'), - (0xFFEB, 'M', u'→'), - (0xFFEC, 'M', u'↓'), - (0xFFED, 'M', u'■'), - (0xFFEE, 'M', u'○'), - (0xFFEF, 'X'), - (0x10000, 'V'), - (0x1000C, 'X'), - (0x1000D, 'V'), - (0x10027, 'X'), - (0x10028, 'V'), - (0x1003B, 'X'), - (0x1003C, 'V'), - (0x1003E, 'X'), - (0x1003F, 'V'), - (0x1004E, 'X'), - (0x10050, 'V'), - (0x1005E, 'X'), - (0x10080, 'V'), - (0x100FB, 'X'), - (0x10100, 'V'), - (0x10103, 'X'), - (0x10107, 'V'), - (0x10134, 'X'), - (0x10137, 'V'), - (0x1018F, 'X'), - (0x10190, 'V'), - (0x1019C, 'X'), - (0x101A0, 'V'), - (0x101A1, 'X'), - (0x101D0, 'V'), - (0x101FE, 'X'), - (0x10280, 'V'), - (0x1029D, 'X'), - (0x102A0, 'V'), - (0x102D1, 'X'), - (0x102E0, 'V'), - (0x102FC, 'X'), - (0x10300, 'V'), - (0x10324, 'X'), - (0x1032D, 'V'), - (0x1034B, 'X'), - (0x10350, 'V'), - (0x1037B, 'X'), - (0x10380, 'V'), - (0x1039E, 'X'), - (0x1039F, 'V'), - (0x103C4, 'X'), - (0x103C8, 'V'), - (0x103D6, 'X'), - (0x10400, 'M', u'𐐨'), - (0x10401, 'M', u'𐐩'), - ] - -def _seg_53(): - return [ - (0x10402, 'M', u'𐐪'), - (0x10403, 'M', u'𐐫'), - (0x10404, 'M', u'𐐬'), - (0x10405, 'M', u'𐐭'), - (0x10406, 'M', u'𐐮'), - (0x10407, 'M', u'𐐯'), - (0x10408, 'M', u'𐐰'), - (0x10409, 'M', u'𐐱'), - (0x1040A, 'M', u'𐐲'), - (0x1040B, 'M', u'𐐳'), - (0x1040C, 'M', u'𐐴'), - (0x1040D, 'M', u'𐐵'), - (0x1040E, 'M', u'𐐶'), - (0x1040F, 'M', u'𐐷'), - (0x10410, 'M', u'𐐸'), - (0x10411, 'M', u'𐐹'), - (0x10412, 'M', u'𐐺'), - (0x10413, 'M', u'𐐻'), - (0x10414, 'M', u'𐐼'), - (0x10415, 'M', u'𐐽'), - (0x10416, 'M', u'𐐾'), - (0x10417, 'M', u'𐐿'), - (0x10418, 'M', u'𐑀'), - (0x10419, 'M', u'𐑁'), - (0x1041A, 'M', u'𐑂'), - (0x1041B, 'M', u'𐑃'), - (0x1041C, 'M', u'𐑄'), - (0x1041D, 'M', u'𐑅'), - (0x1041E, 'M', u'𐑆'), - (0x1041F, 'M', u'𐑇'), - (0x10420, 'M', u'𐑈'), - (0x10421, 'M', u'𐑉'), - (0x10422, 'M', u'𐑊'), - (0x10423, 'M', u'𐑋'), - (0x10424, 'M', u'𐑌'), - (0x10425, 'M', u'𐑍'), - (0x10426, 'M', u'𐑎'), - (0x10427, 'M', u'𐑏'), - (0x10428, 'V'), - (0x1049E, 'X'), - (0x104A0, 'V'), - (0x104AA, 'X'), - (0x104B0, 'M', u'𐓘'), - (0x104B1, 'M', u'𐓙'), - (0x104B2, 'M', u'𐓚'), - (0x104B3, 'M', u'𐓛'), - (0x104B4, 'M', u'𐓜'), - (0x104B5, 'M', u'𐓝'), - (0x104B6, 'M', u'𐓞'), - (0x104B7, 'M', u'𐓟'), - (0x104B8, 'M', u'𐓠'), - (0x104B9, 'M', u'𐓡'), - (0x104BA, 'M', u'𐓢'), - (0x104BB, 'M', u'𐓣'), - (0x104BC, 'M', u'𐓤'), - (0x104BD, 'M', u'𐓥'), - (0x104BE, 'M', u'𐓦'), - (0x104BF, 'M', u'𐓧'), - (0x104C0, 'M', u'𐓨'), - (0x104C1, 'M', u'𐓩'), - (0x104C2, 'M', u'𐓪'), - (0x104C3, 'M', u'𐓫'), - (0x104C4, 'M', u'𐓬'), - (0x104C5, 'M', u'𐓭'), - (0x104C6, 'M', u'𐓮'), - (0x104C7, 'M', u'𐓯'), - (0x104C8, 'M', u'𐓰'), - (0x104C9, 'M', u'𐓱'), - (0x104CA, 'M', u'𐓲'), - (0x104CB, 'M', u'𐓳'), - (0x104CC, 'M', u'𐓴'), - (0x104CD, 'M', u'𐓵'), - (0x104CE, 'M', u'𐓶'), - (0x104CF, 'M', u'𐓷'), - (0x104D0, 'M', u'𐓸'), - (0x104D1, 'M', u'𐓹'), - (0x104D2, 'M', u'𐓺'), - (0x104D3, 'M', u'𐓻'), - (0x104D4, 'X'), - (0x104D8, 'V'), - (0x104FC, 'X'), - (0x10500, 'V'), - (0x10528, 'X'), - (0x10530, 'V'), - (0x10564, 'X'), - (0x1056F, 'V'), - (0x10570, 'X'), - (0x10600, 'V'), - (0x10737, 'X'), - (0x10740, 'V'), - (0x10756, 'X'), - (0x10760, 'V'), - (0x10768, 'X'), - (0x10800, 'V'), - (0x10806, 'X'), - (0x10808, 'V'), - (0x10809, 'X'), - (0x1080A, 'V'), - (0x10836, 'X'), - (0x10837, 'V'), - ] - -def _seg_54(): - return [ - (0x10839, 'X'), - (0x1083C, 'V'), - (0x1083D, 'X'), - (0x1083F, 'V'), - (0x10856, 'X'), - (0x10857, 'V'), - (0x1089F, 'X'), - (0x108A7, 'V'), - (0x108B0, 'X'), - (0x108E0, 'V'), - (0x108F3, 'X'), - (0x108F4, 'V'), - (0x108F6, 'X'), - (0x108FB, 'V'), - (0x1091C, 'X'), - (0x1091F, 'V'), - (0x1093A, 'X'), - (0x1093F, 'V'), - (0x10940, 'X'), - (0x10980, 'V'), - (0x109B8, 'X'), - (0x109BC, 'V'), - (0x109D0, 'X'), - (0x109D2, 'V'), - (0x10A04, 'X'), - (0x10A05, 'V'), - (0x10A07, 'X'), - (0x10A0C, 'V'), - (0x10A14, 'X'), - (0x10A15, 'V'), - (0x10A18, 'X'), - (0x10A19, 'V'), - (0x10A36, 'X'), - (0x10A38, 'V'), - (0x10A3B, 'X'), - (0x10A3F, 'V'), - (0x10A49, 'X'), - (0x10A50, 'V'), - (0x10A59, 'X'), - (0x10A60, 'V'), - (0x10AA0, 'X'), - (0x10AC0, 'V'), - (0x10AE7, 'X'), - (0x10AEB, 'V'), - (0x10AF7, 'X'), - (0x10B00, 'V'), - (0x10B36, 'X'), - (0x10B39, 'V'), - (0x10B56, 'X'), - (0x10B58, 'V'), - (0x10B73, 'X'), - (0x10B78, 'V'), - (0x10B92, 'X'), - (0x10B99, 'V'), - (0x10B9D, 'X'), - (0x10BA9, 'V'), - (0x10BB0, 'X'), - (0x10C00, 'V'), - (0x10C49, 'X'), - (0x10C80, 'M', u'𐳀'), - (0x10C81, 'M', u'𐳁'), - (0x10C82, 'M', u'𐳂'), - (0x10C83, 'M', u'𐳃'), - (0x10C84, 'M', u'𐳄'), - (0x10C85, 'M', u'𐳅'), - (0x10C86, 'M', u'𐳆'), - (0x10C87, 'M', u'𐳇'), - (0x10C88, 'M', u'𐳈'), - (0x10C89, 'M', u'𐳉'), - (0x10C8A, 'M', u'𐳊'), - (0x10C8B, 'M', u'𐳋'), - (0x10C8C, 'M', u'𐳌'), - (0x10C8D, 'M', u'𐳍'), - (0x10C8E, 'M', u'𐳎'), - (0x10C8F, 'M', u'𐳏'), - (0x10C90, 'M', u'𐳐'), - (0x10C91, 'M', u'𐳑'), - (0x10C92, 'M', u'𐳒'), - (0x10C93, 'M', u'𐳓'), - (0x10C94, 'M', u'𐳔'), - (0x10C95, 'M', u'𐳕'), - (0x10C96, 'M', u'𐳖'), - (0x10C97, 'M', u'𐳗'), - (0x10C98, 'M', u'𐳘'), - (0x10C99, 'M', u'𐳙'), - (0x10C9A, 'M', u'𐳚'), - (0x10C9B, 'M', u'𐳛'), - (0x10C9C, 'M', u'𐳜'), - (0x10C9D, 'M', u'𐳝'), - (0x10C9E, 'M', u'𐳞'), - (0x10C9F, 'M', u'𐳟'), - (0x10CA0, 'M', u'𐳠'), - (0x10CA1, 'M', u'𐳡'), - (0x10CA2, 'M', u'𐳢'), - (0x10CA3, 'M', u'𐳣'), - (0x10CA4, 'M', u'𐳤'), - (0x10CA5, 'M', u'𐳥'), - (0x10CA6, 'M', u'𐳦'), - (0x10CA7, 'M', u'𐳧'), - (0x10CA8, 'M', u'𐳨'), - ] - -def _seg_55(): - return [ - (0x10CA9, 'M', u'𐳩'), - (0x10CAA, 'M', u'𐳪'), - (0x10CAB, 'M', u'𐳫'), - (0x10CAC, 'M', u'𐳬'), - (0x10CAD, 'M', u'𐳭'), - (0x10CAE, 'M', u'𐳮'), - (0x10CAF, 'M', u'𐳯'), - (0x10CB0, 'M', u'𐳰'), - (0x10CB1, 'M', u'𐳱'), - (0x10CB2, 'M', u'𐳲'), - (0x10CB3, 'X'), - (0x10CC0, 'V'), - (0x10CF3, 'X'), - (0x10CFA, 'V'), - (0x10D28, 'X'), - (0x10D30, 'V'), - (0x10D3A, 'X'), - (0x10E60, 'V'), - (0x10E7F, 'X'), - (0x10F00, 'V'), - (0x10F28, 'X'), - (0x10F30, 'V'), - (0x10F5A, 'X'), - (0x11000, 'V'), - (0x1104E, 'X'), - (0x11052, 'V'), - (0x11070, 'X'), - (0x1107F, 'V'), - (0x110BD, 'X'), - (0x110BE, 'V'), - (0x110C2, 'X'), - (0x110D0, 'V'), - (0x110E9, 'X'), - (0x110F0, 'V'), - (0x110FA, 'X'), - (0x11100, 'V'), - (0x11135, 'X'), - (0x11136, 'V'), - (0x11147, 'X'), - (0x11150, 'V'), - (0x11177, 'X'), - (0x11180, 'V'), - (0x111CE, 'X'), - (0x111D0, 'V'), - (0x111E0, 'X'), - (0x111E1, 'V'), - (0x111F5, 'X'), - (0x11200, 'V'), - (0x11212, 'X'), - (0x11213, 'V'), - (0x1123F, 'X'), - (0x11280, 'V'), - (0x11287, 'X'), - (0x11288, 'V'), - (0x11289, 'X'), - (0x1128A, 'V'), - (0x1128E, 'X'), - (0x1128F, 'V'), - (0x1129E, 'X'), - (0x1129F, 'V'), - (0x112AA, 'X'), - (0x112B0, 'V'), - (0x112EB, 'X'), - (0x112F0, 'V'), - (0x112FA, 'X'), - (0x11300, 'V'), - (0x11304, 'X'), - (0x11305, 'V'), - (0x1130D, 'X'), - (0x1130F, 'V'), - (0x11311, 'X'), - (0x11313, 'V'), - (0x11329, 'X'), - (0x1132A, 'V'), - (0x11331, 'X'), - (0x11332, 'V'), - (0x11334, 'X'), - (0x11335, 'V'), - (0x1133A, 'X'), - (0x1133B, 'V'), - (0x11345, 'X'), - (0x11347, 'V'), - (0x11349, 'X'), - (0x1134B, 'V'), - (0x1134E, 'X'), - (0x11350, 'V'), - (0x11351, 'X'), - (0x11357, 'V'), - (0x11358, 'X'), - (0x1135D, 'V'), - (0x11364, 'X'), - (0x11366, 'V'), - (0x1136D, 'X'), - (0x11370, 'V'), - (0x11375, 'X'), - (0x11400, 'V'), - (0x1145A, 'X'), - (0x1145B, 'V'), - (0x1145C, 'X'), - (0x1145D, 'V'), - ] - -def _seg_56(): - return [ - (0x1145F, 'X'), - (0x11480, 'V'), - (0x114C8, 'X'), - (0x114D0, 'V'), - (0x114DA, 'X'), - (0x11580, 'V'), - (0x115B6, 'X'), - (0x115B8, 'V'), - (0x115DE, 'X'), - (0x11600, 'V'), - (0x11645, 'X'), - (0x11650, 'V'), - (0x1165A, 'X'), - (0x11660, 'V'), - (0x1166D, 'X'), - (0x11680, 'V'), - (0x116B8, 'X'), - (0x116C0, 'V'), - (0x116CA, 'X'), - (0x11700, 'V'), - (0x1171B, 'X'), - (0x1171D, 'V'), - (0x1172C, 'X'), - (0x11730, 'V'), - (0x11740, 'X'), - (0x11800, 'V'), - (0x1183C, 'X'), - (0x118A0, 'M', u'𑣀'), - (0x118A1, 'M', u'𑣁'), - (0x118A2, 'M', u'𑣂'), - (0x118A3, 'M', u'𑣃'), - (0x118A4, 'M', u'𑣄'), - (0x118A5, 'M', u'𑣅'), - (0x118A6, 'M', u'𑣆'), - (0x118A7, 'M', u'𑣇'), - (0x118A8, 'M', u'𑣈'), - (0x118A9, 'M', u'𑣉'), - (0x118AA, 'M', u'𑣊'), - (0x118AB, 'M', u'𑣋'), - (0x118AC, 'M', u'𑣌'), - (0x118AD, 'M', u'𑣍'), - (0x118AE, 'M', u'𑣎'), - (0x118AF, 'M', u'𑣏'), - (0x118B0, 'M', u'𑣐'), - (0x118B1, 'M', u'𑣑'), - (0x118B2, 'M', u'𑣒'), - (0x118B3, 'M', u'𑣓'), - (0x118B4, 'M', u'𑣔'), - (0x118B5, 'M', u'𑣕'), - (0x118B6, 'M', u'𑣖'), - (0x118B7, 'M', u'𑣗'), - (0x118B8, 'M', u'𑣘'), - (0x118B9, 'M', u'𑣙'), - (0x118BA, 'M', u'𑣚'), - (0x118BB, 'M', u'𑣛'), - (0x118BC, 'M', u'𑣜'), - (0x118BD, 'M', u'𑣝'), - (0x118BE, 'M', u'𑣞'), - (0x118BF, 'M', u'𑣟'), - (0x118C0, 'V'), - (0x118F3, 'X'), - (0x118FF, 'V'), - (0x11900, 'X'), - (0x11A00, 'V'), - (0x11A48, 'X'), - (0x11A50, 'V'), - (0x11A84, 'X'), - (0x11A86, 'V'), - (0x11AA3, 'X'), - (0x11AC0, 'V'), - (0x11AF9, 'X'), - (0x11C00, 'V'), - (0x11C09, 'X'), - (0x11C0A, 'V'), - (0x11C37, 'X'), - (0x11C38, 'V'), - (0x11C46, 'X'), - (0x11C50, 'V'), - (0x11C6D, 'X'), - (0x11C70, 'V'), - (0x11C90, 'X'), - (0x11C92, 'V'), - (0x11CA8, 'X'), - (0x11CA9, 'V'), - (0x11CB7, 'X'), - (0x11D00, 'V'), - (0x11D07, 'X'), - (0x11D08, 'V'), - (0x11D0A, 'X'), - (0x11D0B, 'V'), - (0x11D37, 'X'), - (0x11D3A, 'V'), - (0x11D3B, 'X'), - (0x11D3C, 'V'), - (0x11D3E, 'X'), - (0x11D3F, 'V'), - (0x11D48, 'X'), - (0x11D50, 'V'), - (0x11D5A, 'X'), - (0x11D60, 'V'), - ] - -def _seg_57(): - return [ - (0x11D66, 'X'), - (0x11D67, 'V'), - (0x11D69, 'X'), - (0x11D6A, 'V'), - (0x11D8F, 'X'), - (0x11D90, 'V'), - (0x11D92, 'X'), - (0x11D93, 'V'), - (0x11D99, 'X'), - (0x11DA0, 'V'), - (0x11DAA, 'X'), - (0x11EE0, 'V'), - (0x11EF9, 'X'), - (0x12000, 'V'), - (0x1239A, 'X'), - (0x12400, 'V'), - (0x1246F, 'X'), - (0x12470, 'V'), - (0x12475, 'X'), - (0x12480, 'V'), - (0x12544, 'X'), - (0x13000, 'V'), - (0x1342F, 'X'), - (0x14400, 'V'), - (0x14647, 'X'), - (0x16800, 'V'), - (0x16A39, 'X'), - (0x16A40, 'V'), - (0x16A5F, 'X'), - (0x16A60, 'V'), - (0x16A6A, 'X'), - (0x16A6E, 'V'), - (0x16A70, 'X'), - (0x16AD0, 'V'), - (0x16AEE, 'X'), - (0x16AF0, 'V'), - (0x16AF6, 'X'), - (0x16B00, 'V'), - (0x16B46, 'X'), - (0x16B50, 'V'), - (0x16B5A, 'X'), - (0x16B5B, 'V'), - (0x16B62, 'X'), - (0x16B63, 'V'), - (0x16B78, 'X'), - (0x16B7D, 'V'), - (0x16B90, 'X'), - (0x16E60, 'V'), - (0x16E9B, 'X'), - (0x16F00, 'V'), - (0x16F45, 'X'), - (0x16F50, 'V'), - (0x16F7F, 'X'), - (0x16F8F, 'V'), - (0x16FA0, 'X'), - (0x16FE0, 'V'), - (0x16FE2, 'X'), - (0x17000, 'V'), - (0x187F2, 'X'), - (0x18800, 'V'), - (0x18AF3, 'X'), - (0x1B000, 'V'), - (0x1B11F, 'X'), - (0x1B170, 'V'), - (0x1B2FC, 'X'), - (0x1BC00, 'V'), - (0x1BC6B, 'X'), - (0x1BC70, 'V'), - (0x1BC7D, 'X'), - (0x1BC80, 'V'), - (0x1BC89, 'X'), - (0x1BC90, 'V'), - (0x1BC9A, 'X'), - (0x1BC9C, 'V'), - (0x1BCA0, 'I'), - (0x1BCA4, 'X'), - (0x1D000, 'V'), - (0x1D0F6, 'X'), - (0x1D100, 'V'), - (0x1D127, 'X'), - (0x1D129, 'V'), - (0x1D15E, 'M', u'𝅗𝅥'), - (0x1D15F, 'M', u'𝅘𝅥'), - (0x1D160, 'M', u'𝅘𝅥𝅮'), - (0x1D161, 'M', u'𝅘𝅥𝅯'), - (0x1D162, 'M', u'𝅘𝅥𝅰'), - (0x1D163, 'M', u'𝅘𝅥𝅱'), - (0x1D164, 'M', u'𝅘𝅥𝅲'), - (0x1D165, 'V'), - (0x1D173, 'X'), - (0x1D17B, 'V'), - (0x1D1BB, 'M', u'𝆹𝅥'), - (0x1D1BC, 'M', u'𝆺𝅥'), - (0x1D1BD, 'M', u'𝆹𝅥𝅮'), - (0x1D1BE, 'M', u'𝆺𝅥𝅮'), - (0x1D1BF, 'M', u'𝆹𝅥𝅯'), - (0x1D1C0, 'M', u'𝆺𝅥𝅯'), - (0x1D1C1, 'V'), - (0x1D1E9, 'X'), - (0x1D200, 'V'), - ] - -def _seg_58(): - return [ - (0x1D246, 'X'), - (0x1D2E0, 'V'), - (0x1D2F4, 'X'), - (0x1D300, 'V'), - (0x1D357, 'X'), - (0x1D360, 'V'), - (0x1D379, 'X'), - (0x1D400, 'M', u'a'), - (0x1D401, 'M', u'b'), - (0x1D402, 'M', u'c'), - (0x1D403, 'M', u'd'), - (0x1D404, 'M', u'e'), - (0x1D405, 'M', u'f'), - (0x1D406, 'M', u'g'), - (0x1D407, 'M', u'h'), - (0x1D408, 'M', u'i'), - (0x1D409, 'M', u'j'), - (0x1D40A, 'M', u'k'), - (0x1D40B, 'M', u'l'), - (0x1D40C, 'M', u'm'), - (0x1D40D, 'M', u'n'), - (0x1D40E, 'M', u'o'), - (0x1D40F, 'M', u'p'), - (0x1D410, 'M', u'q'), - (0x1D411, 'M', u'r'), - (0x1D412, 'M', u's'), - (0x1D413, 'M', u't'), - (0x1D414, 'M', u'u'), - (0x1D415, 'M', u'v'), - (0x1D416, 'M', u'w'), - (0x1D417, 'M', u'x'), - (0x1D418, 'M', u'y'), - (0x1D419, 'M', u'z'), - (0x1D41A, 'M', u'a'), - (0x1D41B, 'M', u'b'), - (0x1D41C, 'M', u'c'), - (0x1D41D, 'M', u'd'), - (0x1D41E, 'M', u'e'), - (0x1D41F, 'M', u'f'), - (0x1D420, 'M', u'g'), - (0x1D421, 'M', u'h'), - (0x1D422, 'M', u'i'), - (0x1D423, 'M', u'j'), - (0x1D424, 'M', u'k'), - (0x1D425, 'M', u'l'), - (0x1D426, 'M', u'm'), - (0x1D427, 'M', u'n'), - (0x1D428, 'M', u'o'), - (0x1D429, 'M', u'p'), - (0x1D42A, 'M', u'q'), - (0x1D42B, 'M', u'r'), - (0x1D42C, 'M', u's'), - (0x1D42D, 'M', u't'), - (0x1D42E, 'M', u'u'), - (0x1D42F, 'M', u'v'), - (0x1D430, 'M', u'w'), - (0x1D431, 'M', u'x'), - (0x1D432, 'M', u'y'), - (0x1D433, 'M', u'z'), - (0x1D434, 'M', u'a'), - (0x1D435, 'M', u'b'), - (0x1D436, 'M', u'c'), - (0x1D437, 'M', u'd'), - (0x1D438, 'M', u'e'), - (0x1D439, 'M', u'f'), - (0x1D43A, 'M', u'g'), - (0x1D43B, 'M', u'h'), - (0x1D43C, 'M', u'i'), - (0x1D43D, 'M', u'j'), - (0x1D43E, 'M', u'k'), - (0x1D43F, 'M', u'l'), - (0x1D440, 'M', u'm'), - (0x1D441, 'M', u'n'), - (0x1D442, 'M', u'o'), - (0x1D443, 'M', u'p'), - (0x1D444, 'M', u'q'), - (0x1D445, 'M', u'r'), - (0x1D446, 'M', u's'), - (0x1D447, 'M', u't'), - (0x1D448, 'M', u'u'), - (0x1D449, 'M', u'v'), - (0x1D44A, 'M', u'w'), - (0x1D44B, 'M', u'x'), - (0x1D44C, 'M', u'y'), - (0x1D44D, 'M', u'z'), - (0x1D44E, 'M', u'a'), - (0x1D44F, 'M', u'b'), - (0x1D450, 'M', u'c'), - (0x1D451, 'M', u'd'), - (0x1D452, 'M', u'e'), - (0x1D453, 'M', u'f'), - (0x1D454, 'M', u'g'), - (0x1D455, 'X'), - (0x1D456, 'M', u'i'), - (0x1D457, 'M', u'j'), - (0x1D458, 'M', u'k'), - (0x1D459, 'M', u'l'), - (0x1D45A, 'M', u'm'), - (0x1D45B, 'M', u'n'), - (0x1D45C, 'M', u'o'), - ] - -def _seg_59(): - return [ - (0x1D45D, 'M', u'p'), - (0x1D45E, 'M', u'q'), - (0x1D45F, 'M', u'r'), - (0x1D460, 'M', u's'), - (0x1D461, 'M', u't'), - (0x1D462, 'M', u'u'), - (0x1D463, 'M', u'v'), - (0x1D464, 'M', u'w'), - (0x1D465, 'M', u'x'), - (0x1D466, 'M', u'y'), - (0x1D467, 'M', u'z'), - (0x1D468, 'M', u'a'), - (0x1D469, 'M', u'b'), - (0x1D46A, 'M', u'c'), - (0x1D46B, 'M', u'd'), - (0x1D46C, 'M', u'e'), - (0x1D46D, 'M', u'f'), - (0x1D46E, 'M', u'g'), - (0x1D46F, 'M', u'h'), - (0x1D470, 'M', u'i'), - (0x1D471, 'M', u'j'), - (0x1D472, 'M', u'k'), - (0x1D473, 'M', u'l'), - (0x1D474, 'M', u'm'), - (0x1D475, 'M', u'n'), - (0x1D476, 'M', u'o'), - (0x1D477, 'M', u'p'), - (0x1D478, 'M', u'q'), - (0x1D479, 'M', u'r'), - (0x1D47A, 'M', u's'), - (0x1D47B, 'M', u't'), - (0x1D47C, 'M', u'u'), - (0x1D47D, 'M', u'v'), - (0x1D47E, 'M', u'w'), - (0x1D47F, 'M', u'x'), - (0x1D480, 'M', u'y'), - (0x1D481, 'M', u'z'), - (0x1D482, 'M', u'a'), - (0x1D483, 'M', u'b'), - (0x1D484, 'M', u'c'), - (0x1D485, 'M', u'd'), - (0x1D486, 'M', u'e'), - (0x1D487, 'M', u'f'), - (0x1D488, 'M', u'g'), - (0x1D489, 'M', u'h'), - (0x1D48A, 'M', u'i'), - (0x1D48B, 'M', u'j'), - (0x1D48C, 'M', u'k'), - (0x1D48D, 'M', u'l'), - (0x1D48E, 'M', u'm'), - (0x1D48F, 'M', u'n'), - (0x1D490, 'M', u'o'), - (0x1D491, 'M', u'p'), - (0x1D492, 'M', u'q'), - (0x1D493, 'M', u'r'), - (0x1D494, 'M', u's'), - (0x1D495, 'M', u't'), - (0x1D496, 'M', u'u'), - (0x1D497, 'M', u'v'), - (0x1D498, 'M', u'w'), - (0x1D499, 'M', u'x'), - (0x1D49A, 'M', u'y'), - (0x1D49B, 'M', u'z'), - (0x1D49C, 'M', u'a'), - (0x1D49D, 'X'), - (0x1D49E, 'M', u'c'), - (0x1D49F, 'M', u'd'), - (0x1D4A0, 'X'), - (0x1D4A2, 'M', u'g'), - (0x1D4A3, 'X'), - (0x1D4A5, 'M', u'j'), - (0x1D4A6, 'M', u'k'), - (0x1D4A7, 'X'), - (0x1D4A9, 'M', u'n'), - (0x1D4AA, 'M', u'o'), - (0x1D4AB, 'M', u'p'), - (0x1D4AC, 'M', u'q'), - (0x1D4AD, 'X'), - (0x1D4AE, 'M', u's'), - (0x1D4AF, 'M', u't'), - (0x1D4B0, 'M', u'u'), - (0x1D4B1, 'M', u'v'), - (0x1D4B2, 'M', u'w'), - (0x1D4B3, 'M', u'x'), - (0x1D4B4, 'M', u'y'), - (0x1D4B5, 'M', u'z'), - (0x1D4B6, 'M', u'a'), - (0x1D4B7, 'M', u'b'), - (0x1D4B8, 'M', u'c'), - (0x1D4B9, 'M', u'd'), - (0x1D4BA, 'X'), - (0x1D4BB, 'M', u'f'), - (0x1D4BC, 'X'), - (0x1D4BD, 'M', u'h'), - (0x1D4BE, 'M', u'i'), - (0x1D4BF, 'M', u'j'), - (0x1D4C0, 'M', u'k'), - (0x1D4C1, 'M', u'l'), - (0x1D4C2, 'M', u'm'), - (0x1D4C3, 'M', u'n'), - ] - -def _seg_60(): - return [ - (0x1D4C4, 'X'), - (0x1D4C5, 'M', u'p'), - (0x1D4C6, 'M', u'q'), - (0x1D4C7, 'M', u'r'), - (0x1D4C8, 'M', u's'), - (0x1D4C9, 'M', u't'), - (0x1D4CA, 'M', u'u'), - (0x1D4CB, 'M', u'v'), - (0x1D4CC, 'M', u'w'), - (0x1D4CD, 'M', u'x'), - (0x1D4CE, 'M', u'y'), - (0x1D4CF, 'M', u'z'), - (0x1D4D0, 'M', u'a'), - (0x1D4D1, 'M', u'b'), - (0x1D4D2, 'M', u'c'), - (0x1D4D3, 'M', u'd'), - (0x1D4D4, 'M', u'e'), - (0x1D4D5, 'M', u'f'), - (0x1D4D6, 'M', u'g'), - (0x1D4D7, 'M', u'h'), - (0x1D4D8, 'M', u'i'), - (0x1D4D9, 'M', u'j'), - (0x1D4DA, 'M', u'k'), - (0x1D4DB, 'M', u'l'), - (0x1D4DC, 'M', u'm'), - (0x1D4DD, 'M', u'n'), - (0x1D4DE, 'M', u'o'), - (0x1D4DF, 'M', u'p'), - (0x1D4E0, 'M', u'q'), - (0x1D4E1, 'M', u'r'), - (0x1D4E2, 'M', u's'), - (0x1D4E3, 'M', u't'), - (0x1D4E4, 'M', u'u'), - (0x1D4E5, 'M', u'v'), - (0x1D4E6, 'M', u'w'), - (0x1D4E7, 'M', u'x'), - (0x1D4E8, 'M', u'y'), - (0x1D4E9, 'M', u'z'), - (0x1D4EA, 'M', u'a'), - (0x1D4EB, 'M', u'b'), - (0x1D4EC, 'M', u'c'), - (0x1D4ED, 'M', u'd'), - (0x1D4EE, 'M', u'e'), - (0x1D4EF, 'M', u'f'), - (0x1D4F0, 'M', u'g'), - (0x1D4F1, 'M', u'h'), - (0x1D4F2, 'M', u'i'), - (0x1D4F3, 'M', u'j'), - (0x1D4F4, 'M', u'k'), - (0x1D4F5, 'M', u'l'), - (0x1D4F6, 'M', u'm'), - (0x1D4F7, 'M', u'n'), - (0x1D4F8, 'M', u'o'), - (0x1D4F9, 'M', u'p'), - (0x1D4FA, 'M', u'q'), - (0x1D4FB, 'M', u'r'), - (0x1D4FC, 'M', u's'), - (0x1D4FD, 'M', u't'), - (0x1D4FE, 'M', u'u'), - (0x1D4FF, 'M', u'v'), - (0x1D500, 'M', u'w'), - (0x1D501, 'M', u'x'), - (0x1D502, 'M', u'y'), - (0x1D503, 'M', u'z'), - (0x1D504, 'M', u'a'), - (0x1D505, 'M', u'b'), - (0x1D506, 'X'), - (0x1D507, 'M', u'd'), - (0x1D508, 'M', u'e'), - (0x1D509, 'M', u'f'), - (0x1D50A, 'M', u'g'), - (0x1D50B, 'X'), - (0x1D50D, 'M', u'j'), - (0x1D50E, 'M', u'k'), - (0x1D50F, 'M', u'l'), - (0x1D510, 'M', u'm'), - (0x1D511, 'M', u'n'), - (0x1D512, 'M', u'o'), - (0x1D513, 'M', u'p'), - (0x1D514, 'M', u'q'), - (0x1D515, 'X'), - (0x1D516, 'M', u's'), - (0x1D517, 'M', u't'), - (0x1D518, 'M', u'u'), - (0x1D519, 'M', u'v'), - (0x1D51A, 'M', u'w'), - (0x1D51B, 'M', u'x'), - (0x1D51C, 'M', u'y'), - (0x1D51D, 'X'), - (0x1D51E, 'M', u'a'), - (0x1D51F, 'M', u'b'), - (0x1D520, 'M', u'c'), - (0x1D521, 'M', u'd'), - (0x1D522, 'M', u'e'), - (0x1D523, 'M', u'f'), - (0x1D524, 'M', u'g'), - (0x1D525, 'M', u'h'), - (0x1D526, 'M', u'i'), - (0x1D527, 'M', u'j'), - (0x1D528, 'M', u'k'), - ] - -def _seg_61(): - return [ - (0x1D529, 'M', u'l'), - (0x1D52A, 'M', u'm'), - (0x1D52B, 'M', u'n'), - (0x1D52C, 'M', u'o'), - (0x1D52D, 'M', u'p'), - (0x1D52E, 'M', u'q'), - (0x1D52F, 'M', u'r'), - (0x1D530, 'M', u's'), - (0x1D531, 'M', u't'), - (0x1D532, 'M', u'u'), - (0x1D533, 'M', u'v'), - (0x1D534, 'M', u'w'), - (0x1D535, 'M', u'x'), - (0x1D536, 'M', u'y'), - (0x1D537, 'M', u'z'), - (0x1D538, 'M', u'a'), - (0x1D539, 'M', u'b'), - (0x1D53A, 'X'), - (0x1D53B, 'M', u'd'), - (0x1D53C, 'M', u'e'), - (0x1D53D, 'M', u'f'), - (0x1D53E, 'M', u'g'), - (0x1D53F, 'X'), - (0x1D540, 'M', u'i'), - (0x1D541, 'M', u'j'), - (0x1D542, 'M', u'k'), - (0x1D543, 'M', u'l'), - (0x1D544, 'M', u'm'), - (0x1D545, 'X'), - (0x1D546, 'M', u'o'), - (0x1D547, 'X'), - (0x1D54A, 'M', u's'), - (0x1D54B, 'M', u't'), - (0x1D54C, 'M', u'u'), - (0x1D54D, 'M', u'v'), - (0x1D54E, 'M', u'w'), - (0x1D54F, 'M', u'x'), - (0x1D550, 'M', u'y'), - (0x1D551, 'X'), - (0x1D552, 'M', u'a'), - (0x1D553, 'M', u'b'), - (0x1D554, 'M', u'c'), - (0x1D555, 'M', u'd'), - (0x1D556, 'M', u'e'), - (0x1D557, 'M', u'f'), - (0x1D558, 'M', u'g'), - (0x1D559, 'M', u'h'), - (0x1D55A, 'M', u'i'), - (0x1D55B, 'M', u'j'), - (0x1D55C, 'M', u'k'), - (0x1D55D, 'M', u'l'), - (0x1D55E, 'M', u'm'), - (0x1D55F, 'M', u'n'), - (0x1D560, 'M', u'o'), - (0x1D561, 'M', u'p'), - (0x1D562, 'M', u'q'), - (0x1D563, 'M', u'r'), - (0x1D564, 'M', u's'), - (0x1D565, 'M', u't'), - (0x1D566, 'M', u'u'), - (0x1D567, 'M', u'v'), - (0x1D568, 'M', u'w'), - (0x1D569, 'M', u'x'), - (0x1D56A, 'M', u'y'), - (0x1D56B, 'M', u'z'), - (0x1D56C, 'M', u'a'), - (0x1D56D, 'M', u'b'), - (0x1D56E, 'M', u'c'), - (0x1D56F, 'M', u'd'), - (0x1D570, 'M', u'e'), - (0x1D571, 'M', u'f'), - (0x1D572, 'M', u'g'), - (0x1D573, 'M', u'h'), - (0x1D574, 'M', u'i'), - (0x1D575, 'M', u'j'), - (0x1D576, 'M', u'k'), - (0x1D577, 'M', u'l'), - (0x1D578, 'M', u'm'), - (0x1D579, 'M', u'n'), - (0x1D57A, 'M', u'o'), - (0x1D57B, 'M', u'p'), - (0x1D57C, 'M', u'q'), - (0x1D57D, 'M', u'r'), - (0x1D57E, 'M', u's'), - (0x1D57F, 'M', u't'), - (0x1D580, 'M', u'u'), - (0x1D581, 'M', u'v'), - (0x1D582, 'M', u'w'), - (0x1D583, 'M', u'x'), - (0x1D584, 'M', u'y'), - (0x1D585, 'M', u'z'), - (0x1D586, 'M', u'a'), - (0x1D587, 'M', u'b'), - (0x1D588, 'M', u'c'), - (0x1D589, 'M', u'd'), - (0x1D58A, 'M', u'e'), - (0x1D58B, 'M', u'f'), - (0x1D58C, 'M', u'g'), - (0x1D58D, 'M', u'h'), - (0x1D58E, 'M', u'i'), - ] - -def _seg_62(): - return [ - (0x1D58F, 'M', u'j'), - (0x1D590, 'M', u'k'), - (0x1D591, 'M', u'l'), - (0x1D592, 'M', u'm'), - (0x1D593, 'M', u'n'), - (0x1D594, 'M', u'o'), - (0x1D595, 'M', u'p'), - (0x1D596, 'M', u'q'), - (0x1D597, 'M', u'r'), - (0x1D598, 'M', u's'), - (0x1D599, 'M', u't'), - (0x1D59A, 'M', u'u'), - (0x1D59B, 'M', u'v'), - (0x1D59C, 'M', u'w'), - (0x1D59D, 'M', u'x'), - (0x1D59E, 'M', u'y'), - (0x1D59F, 'M', u'z'), - (0x1D5A0, 'M', u'a'), - (0x1D5A1, 'M', u'b'), - (0x1D5A2, 'M', u'c'), - (0x1D5A3, 'M', u'd'), - (0x1D5A4, 'M', u'e'), - (0x1D5A5, 'M', u'f'), - (0x1D5A6, 'M', u'g'), - (0x1D5A7, 'M', u'h'), - (0x1D5A8, 'M', u'i'), - (0x1D5A9, 'M', u'j'), - (0x1D5AA, 'M', u'k'), - (0x1D5AB, 'M', u'l'), - (0x1D5AC, 'M', u'm'), - (0x1D5AD, 'M', u'n'), - (0x1D5AE, 'M', u'o'), - (0x1D5AF, 'M', u'p'), - (0x1D5B0, 'M', u'q'), - (0x1D5B1, 'M', u'r'), - (0x1D5B2, 'M', u's'), - (0x1D5B3, 'M', u't'), - (0x1D5B4, 'M', u'u'), - (0x1D5B5, 'M', u'v'), - (0x1D5B6, 'M', u'w'), - (0x1D5B7, 'M', u'x'), - (0x1D5B8, 'M', u'y'), - (0x1D5B9, 'M', u'z'), - (0x1D5BA, 'M', u'a'), - (0x1D5BB, 'M', u'b'), - (0x1D5BC, 'M', u'c'), - (0x1D5BD, 'M', u'd'), - (0x1D5BE, 'M', u'e'), - (0x1D5BF, 'M', u'f'), - (0x1D5C0, 'M', u'g'), - (0x1D5C1, 'M', u'h'), - (0x1D5C2, 'M', u'i'), - (0x1D5C3, 'M', u'j'), - (0x1D5C4, 'M', u'k'), - (0x1D5C5, 'M', u'l'), - (0x1D5C6, 'M', u'm'), - (0x1D5C7, 'M', u'n'), - (0x1D5C8, 'M', u'o'), - (0x1D5C9, 'M', u'p'), - (0x1D5CA, 'M', u'q'), - (0x1D5CB, 'M', u'r'), - (0x1D5CC, 'M', u's'), - (0x1D5CD, 'M', u't'), - (0x1D5CE, 'M', u'u'), - (0x1D5CF, 'M', u'v'), - (0x1D5D0, 'M', u'w'), - (0x1D5D1, 'M', u'x'), - (0x1D5D2, 'M', u'y'), - (0x1D5D3, 'M', u'z'), - (0x1D5D4, 'M', u'a'), - (0x1D5D5, 'M', u'b'), - (0x1D5D6, 'M', u'c'), - (0x1D5D7, 'M', u'd'), - (0x1D5D8, 'M', u'e'), - (0x1D5D9, 'M', u'f'), - (0x1D5DA, 'M', u'g'), - (0x1D5DB, 'M', u'h'), - (0x1D5DC, 'M', u'i'), - (0x1D5DD, 'M', u'j'), - (0x1D5DE, 'M', u'k'), - (0x1D5DF, 'M', u'l'), - (0x1D5E0, 'M', u'm'), - (0x1D5E1, 'M', u'n'), - (0x1D5E2, 'M', u'o'), - (0x1D5E3, 'M', u'p'), - (0x1D5E4, 'M', u'q'), - (0x1D5E5, 'M', u'r'), - (0x1D5E6, 'M', u's'), - (0x1D5E7, 'M', u't'), - (0x1D5E8, 'M', u'u'), - (0x1D5E9, 'M', u'v'), - (0x1D5EA, 'M', u'w'), - (0x1D5EB, 'M', u'x'), - (0x1D5EC, 'M', u'y'), - (0x1D5ED, 'M', u'z'), - (0x1D5EE, 'M', u'a'), - (0x1D5EF, 'M', u'b'), - (0x1D5F0, 'M', u'c'), - (0x1D5F1, 'M', u'd'), - (0x1D5F2, 'M', u'e'), - ] - -def _seg_63(): - return [ - (0x1D5F3, 'M', u'f'), - (0x1D5F4, 'M', u'g'), - (0x1D5F5, 'M', u'h'), - (0x1D5F6, 'M', u'i'), - (0x1D5F7, 'M', u'j'), - (0x1D5F8, 'M', u'k'), - (0x1D5F9, 'M', u'l'), - (0x1D5FA, 'M', u'm'), - (0x1D5FB, 'M', u'n'), - (0x1D5FC, 'M', u'o'), - (0x1D5FD, 'M', u'p'), - (0x1D5FE, 'M', u'q'), - (0x1D5FF, 'M', u'r'), - (0x1D600, 'M', u's'), - (0x1D601, 'M', u't'), - (0x1D602, 'M', u'u'), - (0x1D603, 'M', u'v'), - (0x1D604, 'M', u'w'), - (0x1D605, 'M', u'x'), - (0x1D606, 'M', u'y'), - (0x1D607, 'M', u'z'), - (0x1D608, 'M', u'a'), - (0x1D609, 'M', u'b'), - (0x1D60A, 'M', u'c'), - (0x1D60B, 'M', u'd'), - (0x1D60C, 'M', u'e'), - (0x1D60D, 'M', u'f'), - (0x1D60E, 'M', u'g'), - (0x1D60F, 'M', u'h'), - (0x1D610, 'M', u'i'), - (0x1D611, 'M', u'j'), - (0x1D612, 'M', u'k'), - (0x1D613, 'M', u'l'), - (0x1D614, 'M', u'm'), - (0x1D615, 'M', u'n'), - (0x1D616, 'M', u'o'), - (0x1D617, 'M', u'p'), - (0x1D618, 'M', u'q'), - (0x1D619, 'M', u'r'), - (0x1D61A, 'M', u's'), - (0x1D61B, 'M', u't'), - (0x1D61C, 'M', u'u'), - (0x1D61D, 'M', u'v'), - (0x1D61E, 'M', u'w'), - (0x1D61F, 'M', u'x'), - (0x1D620, 'M', u'y'), - (0x1D621, 'M', u'z'), - (0x1D622, 'M', u'a'), - (0x1D623, 'M', u'b'), - (0x1D624, 'M', u'c'), - (0x1D625, 'M', u'd'), - (0x1D626, 'M', u'e'), - (0x1D627, 'M', u'f'), - (0x1D628, 'M', u'g'), - (0x1D629, 'M', u'h'), - (0x1D62A, 'M', u'i'), - (0x1D62B, 'M', u'j'), - (0x1D62C, 'M', u'k'), - (0x1D62D, 'M', u'l'), - (0x1D62E, 'M', u'm'), - (0x1D62F, 'M', u'n'), - (0x1D630, 'M', u'o'), - (0x1D631, 'M', u'p'), - (0x1D632, 'M', u'q'), - (0x1D633, 'M', u'r'), - (0x1D634, 'M', u's'), - (0x1D635, 'M', u't'), - (0x1D636, 'M', u'u'), - (0x1D637, 'M', u'v'), - (0x1D638, 'M', u'w'), - (0x1D639, 'M', u'x'), - (0x1D63A, 'M', u'y'), - (0x1D63B, 'M', u'z'), - (0x1D63C, 'M', u'a'), - (0x1D63D, 'M', u'b'), - (0x1D63E, 'M', u'c'), - (0x1D63F, 'M', u'd'), - (0x1D640, 'M', u'e'), - (0x1D641, 'M', u'f'), - (0x1D642, 'M', u'g'), - (0x1D643, 'M', u'h'), - (0x1D644, 'M', u'i'), - (0x1D645, 'M', u'j'), - (0x1D646, 'M', u'k'), - (0x1D647, 'M', u'l'), - (0x1D648, 'M', u'm'), - (0x1D649, 'M', u'n'), - (0x1D64A, 'M', u'o'), - (0x1D64B, 'M', u'p'), - (0x1D64C, 'M', u'q'), - (0x1D64D, 'M', u'r'), - (0x1D64E, 'M', u's'), - (0x1D64F, 'M', u't'), - (0x1D650, 'M', u'u'), - (0x1D651, 'M', u'v'), - (0x1D652, 'M', u'w'), - (0x1D653, 'M', u'x'), - (0x1D654, 'M', u'y'), - (0x1D655, 'M', u'z'), - (0x1D656, 'M', u'a'), - ] - -def _seg_64(): - return [ - (0x1D657, 'M', u'b'), - (0x1D658, 'M', u'c'), - (0x1D659, 'M', u'd'), - (0x1D65A, 'M', u'e'), - (0x1D65B, 'M', u'f'), - (0x1D65C, 'M', u'g'), - (0x1D65D, 'M', u'h'), - (0x1D65E, 'M', u'i'), - (0x1D65F, 'M', u'j'), - (0x1D660, 'M', u'k'), - (0x1D661, 'M', u'l'), - (0x1D662, 'M', u'm'), - (0x1D663, 'M', u'n'), - (0x1D664, 'M', u'o'), - (0x1D665, 'M', u'p'), - (0x1D666, 'M', u'q'), - (0x1D667, 'M', u'r'), - (0x1D668, 'M', u's'), - (0x1D669, 'M', u't'), - (0x1D66A, 'M', u'u'), - (0x1D66B, 'M', u'v'), - (0x1D66C, 'M', u'w'), - (0x1D66D, 'M', u'x'), - (0x1D66E, 'M', u'y'), - (0x1D66F, 'M', u'z'), - (0x1D670, 'M', u'a'), - (0x1D671, 'M', u'b'), - (0x1D672, 'M', u'c'), - (0x1D673, 'M', u'd'), - (0x1D674, 'M', u'e'), - (0x1D675, 'M', u'f'), - (0x1D676, 'M', u'g'), - (0x1D677, 'M', u'h'), - (0x1D678, 'M', u'i'), - (0x1D679, 'M', u'j'), - (0x1D67A, 'M', u'k'), - (0x1D67B, 'M', u'l'), - (0x1D67C, 'M', u'm'), - (0x1D67D, 'M', u'n'), - (0x1D67E, 'M', u'o'), - (0x1D67F, 'M', u'p'), - (0x1D680, 'M', u'q'), - (0x1D681, 'M', u'r'), - (0x1D682, 'M', u's'), - (0x1D683, 'M', u't'), - (0x1D684, 'M', u'u'), - (0x1D685, 'M', u'v'), - (0x1D686, 'M', u'w'), - (0x1D687, 'M', u'x'), - (0x1D688, 'M', u'y'), - (0x1D689, 'M', u'z'), - (0x1D68A, 'M', u'a'), - (0x1D68B, 'M', u'b'), - (0x1D68C, 'M', u'c'), - (0x1D68D, 'M', u'd'), - (0x1D68E, 'M', u'e'), - (0x1D68F, 'M', u'f'), - (0x1D690, 'M', u'g'), - (0x1D691, 'M', u'h'), - (0x1D692, 'M', u'i'), - (0x1D693, 'M', u'j'), - (0x1D694, 'M', u'k'), - (0x1D695, 'M', u'l'), - (0x1D696, 'M', u'm'), - (0x1D697, 'M', u'n'), - (0x1D698, 'M', u'o'), - (0x1D699, 'M', u'p'), - (0x1D69A, 'M', u'q'), - (0x1D69B, 'M', u'r'), - (0x1D69C, 'M', u's'), - (0x1D69D, 'M', u't'), - (0x1D69E, 'M', u'u'), - (0x1D69F, 'M', u'v'), - (0x1D6A0, 'M', u'w'), - (0x1D6A1, 'M', u'x'), - (0x1D6A2, 'M', u'y'), - (0x1D6A3, 'M', u'z'), - (0x1D6A4, 'M', u'ı'), - (0x1D6A5, 'M', u'ȷ'), - (0x1D6A6, 'X'), - (0x1D6A8, 'M', u'α'), - (0x1D6A9, 'M', u'β'), - (0x1D6AA, 'M', u'γ'), - (0x1D6AB, 'M', u'δ'), - (0x1D6AC, 'M', u'ε'), - (0x1D6AD, 'M', u'ζ'), - (0x1D6AE, 'M', u'η'), - (0x1D6AF, 'M', u'θ'), - (0x1D6B0, 'M', u'ι'), - (0x1D6B1, 'M', u'κ'), - (0x1D6B2, 'M', u'λ'), - (0x1D6B3, 'M', u'μ'), - (0x1D6B4, 'M', u'ν'), - (0x1D6B5, 'M', u'ξ'), - (0x1D6B6, 'M', u'ο'), - (0x1D6B7, 'M', u'π'), - (0x1D6B8, 'M', u'ρ'), - (0x1D6B9, 'M', u'θ'), - (0x1D6BA, 'M', u'σ'), - (0x1D6BB, 'M', u'τ'), - ] - -def _seg_65(): - return [ - (0x1D6BC, 'M', u'υ'), - (0x1D6BD, 'M', u'φ'), - (0x1D6BE, 'M', u'χ'), - (0x1D6BF, 'M', u'ψ'), - (0x1D6C0, 'M', u'ω'), - (0x1D6C1, 'M', u'∇'), - (0x1D6C2, 'M', u'α'), - (0x1D6C3, 'M', u'β'), - (0x1D6C4, 'M', u'γ'), - (0x1D6C5, 'M', u'δ'), - (0x1D6C6, 'M', u'ε'), - (0x1D6C7, 'M', u'ζ'), - (0x1D6C8, 'M', u'η'), - (0x1D6C9, 'M', u'θ'), - (0x1D6CA, 'M', u'ι'), - (0x1D6CB, 'M', u'κ'), - (0x1D6CC, 'M', u'λ'), - (0x1D6CD, 'M', u'μ'), - (0x1D6CE, 'M', u'ν'), - (0x1D6CF, 'M', u'ξ'), - (0x1D6D0, 'M', u'ο'), - (0x1D6D1, 'M', u'π'), - (0x1D6D2, 'M', u'ρ'), - (0x1D6D3, 'M', u'σ'), - (0x1D6D5, 'M', u'τ'), - (0x1D6D6, 'M', u'υ'), - (0x1D6D7, 'M', u'φ'), - (0x1D6D8, 'M', u'χ'), - (0x1D6D9, 'M', u'ψ'), - (0x1D6DA, 'M', u'ω'), - (0x1D6DB, 'M', u'∂'), - (0x1D6DC, 'M', u'ε'), - (0x1D6DD, 'M', u'θ'), - (0x1D6DE, 'M', u'κ'), - (0x1D6DF, 'M', u'φ'), - (0x1D6E0, 'M', u'ρ'), - (0x1D6E1, 'M', u'π'), - (0x1D6E2, 'M', u'α'), - (0x1D6E3, 'M', u'β'), - (0x1D6E4, 'M', u'γ'), - (0x1D6E5, 'M', u'δ'), - (0x1D6E6, 'M', u'ε'), - (0x1D6E7, 'M', u'ζ'), - (0x1D6E8, 'M', u'η'), - (0x1D6E9, 'M', u'θ'), - (0x1D6EA, 'M', u'ι'), - (0x1D6EB, 'M', u'κ'), - (0x1D6EC, 'M', u'λ'), - (0x1D6ED, 'M', u'μ'), - (0x1D6EE, 'M', u'ν'), - (0x1D6EF, 'M', u'ξ'), - (0x1D6F0, 'M', u'ο'), - (0x1D6F1, 'M', u'π'), - (0x1D6F2, 'M', u'ρ'), - (0x1D6F3, 'M', u'θ'), - (0x1D6F4, 'M', u'σ'), - (0x1D6F5, 'M', u'τ'), - (0x1D6F6, 'M', u'υ'), - (0x1D6F7, 'M', u'φ'), - (0x1D6F8, 'M', u'χ'), - (0x1D6F9, 'M', u'ψ'), - (0x1D6FA, 'M', u'ω'), - (0x1D6FB, 'M', u'∇'), - (0x1D6FC, 'M', u'α'), - (0x1D6FD, 'M', u'β'), - (0x1D6FE, 'M', u'γ'), - (0x1D6FF, 'M', u'δ'), - (0x1D700, 'M', u'ε'), - (0x1D701, 'M', u'ζ'), - (0x1D702, 'M', u'η'), - (0x1D703, 'M', u'θ'), - (0x1D704, 'M', u'ι'), - (0x1D705, 'M', u'κ'), - (0x1D706, 'M', u'λ'), - (0x1D707, 'M', u'μ'), - (0x1D708, 'M', u'ν'), - (0x1D709, 'M', u'ξ'), - (0x1D70A, 'M', u'ο'), - (0x1D70B, 'M', u'π'), - (0x1D70C, 'M', u'ρ'), - (0x1D70D, 'M', u'σ'), - (0x1D70F, 'M', u'τ'), - (0x1D710, 'M', u'υ'), - (0x1D711, 'M', u'φ'), - (0x1D712, 'M', u'χ'), - (0x1D713, 'M', u'ψ'), - (0x1D714, 'M', u'ω'), - (0x1D715, 'M', u'∂'), - (0x1D716, 'M', u'ε'), - (0x1D717, 'M', u'θ'), - (0x1D718, 'M', u'κ'), - (0x1D719, 'M', u'φ'), - (0x1D71A, 'M', u'ρ'), - (0x1D71B, 'M', u'π'), - (0x1D71C, 'M', u'α'), - (0x1D71D, 'M', u'β'), - (0x1D71E, 'M', u'γ'), - (0x1D71F, 'M', u'δ'), - (0x1D720, 'M', u'ε'), - (0x1D721, 'M', u'ζ'), - ] - -def _seg_66(): - return [ - (0x1D722, 'M', u'η'), - (0x1D723, 'M', u'θ'), - (0x1D724, 'M', u'ι'), - (0x1D725, 'M', u'κ'), - (0x1D726, 'M', u'λ'), - (0x1D727, 'M', u'μ'), - (0x1D728, 'M', u'ν'), - (0x1D729, 'M', u'ξ'), - (0x1D72A, 'M', u'ο'), - (0x1D72B, 'M', u'π'), - (0x1D72C, 'M', u'ρ'), - (0x1D72D, 'M', u'θ'), - (0x1D72E, 'M', u'σ'), - (0x1D72F, 'M', u'τ'), - (0x1D730, 'M', u'υ'), - (0x1D731, 'M', u'φ'), - (0x1D732, 'M', u'χ'), - (0x1D733, 'M', u'ψ'), - (0x1D734, 'M', u'ω'), - (0x1D735, 'M', u'∇'), - (0x1D736, 'M', u'α'), - (0x1D737, 'M', u'β'), - (0x1D738, 'M', u'γ'), - (0x1D739, 'M', u'δ'), - (0x1D73A, 'M', u'ε'), - (0x1D73B, 'M', u'ζ'), - (0x1D73C, 'M', u'η'), - (0x1D73D, 'M', u'θ'), - (0x1D73E, 'M', u'ι'), - (0x1D73F, 'M', u'κ'), - (0x1D740, 'M', u'λ'), - (0x1D741, 'M', u'μ'), - (0x1D742, 'M', u'ν'), - (0x1D743, 'M', u'ξ'), - (0x1D744, 'M', u'ο'), - (0x1D745, 'M', u'π'), - (0x1D746, 'M', u'ρ'), - (0x1D747, 'M', u'σ'), - (0x1D749, 'M', u'τ'), - (0x1D74A, 'M', u'υ'), - (0x1D74B, 'M', u'φ'), - (0x1D74C, 'M', u'χ'), - (0x1D74D, 'M', u'ψ'), - (0x1D74E, 'M', u'ω'), - (0x1D74F, 'M', u'∂'), - (0x1D750, 'M', u'ε'), - (0x1D751, 'M', u'θ'), - (0x1D752, 'M', u'κ'), - (0x1D753, 'M', u'φ'), - (0x1D754, 'M', u'ρ'), - (0x1D755, 'M', u'π'), - (0x1D756, 'M', u'α'), - (0x1D757, 'M', u'β'), - (0x1D758, 'M', u'γ'), - (0x1D759, 'M', u'δ'), - (0x1D75A, 'M', u'ε'), - (0x1D75B, 'M', u'ζ'), - (0x1D75C, 'M', u'η'), - (0x1D75D, 'M', u'θ'), - (0x1D75E, 'M', u'ι'), - (0x1D75F, 'M', u'κ'), - (0x1D760, 'M', u'λ'), - (0x1D761, 'M', u'μ'), - (0x1D762, 'M', u'ν'), - (0x1D763, 'M', u'ξ'), - (0x1D764, 'M', u'ο'), - (0x1D765, 'M', u'π'), - (0x1D766, 'M', u'ρ'), - (0x1D767, 'M', u'θ'), - (0x1D768, 'M', u'σ'), - (0x1D769, 'M', u'τ'), - (0x1D76A, 'M', u'υ'), - (0x1D76B, 'M', u'φ'), - (0x1D76C, 'M', u'χ'), - (0x1D76D, 'M', u'ψ'), - (0x1D76E, 'M', u'ω'), - (0x1D76F, 'M', u'∇'), - (0x1D770, 'M', u'α'), - (0x1D771, 'M', u'β'), - (0x1D772, 'M', u'γ'), - (0x1D773, 'M', u'δ'), - (0x1D774, 'M', u'ε'), - (0x1D775, 'M', u'ζ'), - (0x1D776, 'M', u'η'), - (0x1D777, 'M', u'θ'), - (0x1D778, 'M', u'ι'), - (0x1D779, 'M', u'κ'), - (0x1D77A, 'M', u'λ'), - (0x1D77B, 'M', u'μ'), - (0x1D77C, 'M', u'ν'), - (0x1D77D, 'M', u'ξ'), - (0x1D77E, 'M', u'ο'), - (0x1D77F, 'M', u'π'), - (0x1D780, 'M', u'ρ'), - (0x1D781, 'M', u'σ'), - (0x1D783, 'M', u'τ'), - (0x1D784, 'M', u'υ'), - (0x1D785, 'M', u'φ'), - (0x1D786, 'M', u'χ'), - (0x1D787, 'M', u'ψ'), - ] - -def _seg_67(): - return [ - (0x1D788, 'M', u'ω'), - (0x1D789, 'M', u'∂'), - (0x1D78A, 'M', u'ε'), - (0x1D78B, 'M', u'θ'), - (0x1D78C, 'M', u'κ'), - (0x1D78D, 'M', u'φ'), - (0x1D78E, 'M', u'ρ'), - (0x1D78F, 'M', u'π'), - (0x1D790, 'M', u'α'), - (0x1D791, 'M', u'β'), - (0x1D792, 'M', u'γ'), - (0x1D793, 'M', u'δ'), - (0x1D794, 'M', u'ε'), - (0x1D795, 'M', u'ζ'), - (0x1D796, 'M', u'η'), - (0x1D797, 'M', u'θ'), - (0x1D798, 'M', u'ι'), - (0x1D799, 'M', u'κ'), - (0x1D79A, 'M', u'λ'), - (0x1D79B, 'M', u'μ'), - (0x1D79C, 'M', u'ν'), - (0x1D79D, 'M', u'ξ'), - (0x1D79E, 'M', u'ο'), - (0x1D79F, 'M', u'π'), - (0x1D7A0, 'M', u'ρ'), - (0x1D7A1, 'M', u'θ'), - (0x1D7A2, 'M', u'σ'), - (0x1D7A3, 'M', u'τ'), - (0x1D7A4, 'M', u'υ'), - (0x1D7A5, 'M', u'φ'), - (0x1D7A6, 'M', u'χ'), - (0x1D7A7, 'M', u'ψ'), - (0x1D7A8, 'M', u'ω'), - (0x1D7A9, 'M', u'∇'), - (0x1D7AA, 'M', u'α'), - (0x1D7AB, 'M', u'β'), - (0x1D7AC, 'M', u'γ'), - (0x1D7AD, 'M', u'δ'), - (0x1D7AE, 'M', u'ε'), - (0x1D7AF, 'M', u'ζ'), - (0x1D7B0, 'M', u'η'), - (0x1D7B1, 'M', u'θ'), - (0x1D7B2, 'M', u'ι'), - (0x1D7B3, 'M', u'κ'), - (0x1D7B4, 'M', u'λ'), - (0x1D7B5, 'M', u'μ'), - (0x1D7B6, 'M', u'ν'), - (0x1D7B7, 'M', u'ξ'), - (0x1D7B8, 'M', u'ο'), - (0x1D7B9, 'M', u'π'), - (0x1D7BA, 'M', u'ρ'), - (0x1D7BB, 'M', u'σ'), - (0x1D7BD, 'M', u'τ'), - (0x1D7BE, 'M', u'υ'), - (0x1D7BF, 'M', u'φ'), - (0x1D7C0, 'M', u'χ'), - (0x1D7C1, 'M', u'ψ'), - (0x1D7C2, 'M', u'ω'), - (0x1D7C3, 'M', u'∂'), - (0x1D7C4, 'M', u'ε'), - (0x1D7C5, 'M', u'θ'), - (0x1D7C6, 'M', u'κ'), - (0x1D7C7, 'M', u'φ'), - (0x1D7C8, 'M', u'ρ'), - (0x1D7C9, 'M', u'π'), - (0x1D7CA, 'M', u'ϝ'), - (0x1D7CC, 'X'), - (0x1D7CE, 'M', u'0'), - (0x1D7CF, 'M', u'1'), - (0x1D7D0, 'M', u'2'), - (0x1D7D1, 'M', u'3'), - (0x1D7D2, 'M', u'4'), - (0x1D7D3, 'M', u'5'), - (0x1D7D4, 'M', u'6'), - (0x1D7D5, 'M', u'7'), - (0x1D7D6, 'M', u'8'), - (0x1D7D7, 'M', u'9'), - (0x1D7D8, 'M', u'0'), - (0x1D7D9, 'M', u'1'), - (0x1D7DA, 'M', u'2'), - (0x1D7DB, 'M', u'3'), - (0x1D7DC, 'M', u'4'), - (0x1D7DD, 'M', u'5'), - (0x1D7DE, 'M', u'6'), - (0x1D7DF, 'M', u'7'), - (0x1D7E0, 'M', u'8'), - (0x1D7E1, 'M', u'9'), - (0x1D7E2, 'M', u'0'), - (0x1D7E3, 'M', u'1'), - (0x1D7E4, 'M', u'2'), - (0x1D7E5, 'M', u'3'), - (0x1D7E6, 'M', u'4'), - (0x1D7E7, 'M', u'5'), - (0x1D7E8, 'M', u'6'), - (0x1D7E9, 'M', u'7'), - (0x1D7EA, 'M', u'8'), - (0x1D7EB, 'M', u'9'), - (0x1D7EC, 'M', u'0'), - (0x1D7ED, 'M', u'1'), - (0x1D7EE, 'M', u'2'), - ] - -def _seg_68(): - return [ - (0x1D7EF, 'M', u'3'), - (0x1D7F0, 'M', u'4'), - (0x1D7F1, 'M', u'5'), - (0x1D7F2, 'M', u'6'), - (0x1D7F3, 'M', u'7'), - (0x1D7F4, 'M', u'8'), - (0x1D7F5, 'M', u'9'), - (0x1D7F6, 'M', u'0'), - (0x1D7F7, 'M', u'1'), - (0x1D7F8, 'M', u'2'), - (0x1D7F9, 'M', u'3'), - (0x1D7FA, 'M', u'4'), - (0x1D7FB, 'M', u'5'), - (0x1D7FC, 'M', u'6'), - (0x1D7FD, 'M', u'7'), - (0x1D7FE, 'M', u'8'), - (0x1D7FF, 'M', u'9'), - (0x1D800, 'V'), - (0x1DA8C, 'X'), - (0x1DA9B, 'V'), - (0x1DAA0, 'X'), - (0x1DAA1, 'V'), - (0x1DAB0, 'X'), - (0x1E000, 'V'), - (0x1E007, 'X'), - (0x1E008, 'V'), - (0x1E019, 'X'), - (0x1E01B, 'V'), - (0x1E022, 'X'), - (0x1E023, 'V'), - (0x1E025, 'X'), - (0x1E026, 'V'), - (0x1E02B, 'X'), - (0x1E800, 'V'), - (0x1E8C5, 'X'), - (0x1E8C7, 'V'), - (0x1E8D7, 'X'), - (0x1E900, 'M', u'𞤢'), - (0x1E901, 'M', u'𞤣'), - (0x1E902, 'M', u'𞤤'), - (0x1E903, 'M', u'𞤥'), - (0x1E904, 'M', u'𞤦'), - (0x1E905, 'M', u'𞤧'), - (0x1E906, 'M', u'𞤨'), - (0x1E907, 'M', u'𞤩'), - (0x1E908, 'M', u'𞤪'), - (0x1E909, 'M', u'𞤫'), - (0x1E90A, 'M', u'𞤬'), - (0x1E90B, 'M', u'𞤭'), - (0x1E90C, 'M', u'𞤮'), - (0x1E90D, 'M', u'𞤯'), - (0x1E90E, 'M', u'𞤰'), - (0x1E90F, 'M', u'𞤱'), - (0x1E910, 'M', u'𞤲'), - (0x1E911, 'M', u'𞤳'), - (0x1E912, 'M', u'𞤴'), - (0x1E913, 'M', u'𞤵'), - (0x1E914, 'M', u'𞤶'), - (0x1E915, 'M', u'𞤷'), - (0x1E916, 'M', u'𞤸'), - (0x1E917, 'M', u'𞤹'), - (0x1E918, 'M', u'𞤺'), - (0x1E919, 'M', u'𞤻'), - (0x1E91A, 'M', u'𞤼'), - (0x1E91B, 'M', u'𞤽'), - (0x1E91C, 'M', u'𞤾'), - (0x1E91D, 'M', u'𞤿'), - (0x1E91E, 'M', u'𞥀'), - (0x1E91F, 'M', u'𞥁'), - (0x1E920, 'M', u'𞥂'), - (0x1E921, 'M', u'𞥃'), - (0x1E922, 'V'), - (0x1E94B, 'X'), - (0x1E950, 'V'), - (0x1E95A, 'X'), - (0x1E95E, 'V'), - (0x1E960, 'X'), - (0x1EC71, 'V'), - (0x1ECB5, 'X'), - (0x1EE00, 'M', u'ا'), - (0x1EE01, 'M', u'ب'), - (0x1EE02, 'M', u'ج'), - (0x1EE03, 'M', u'د'), - (0x1EE04, 'X'), - (0x1EE05, 'M', u'و'), - (0x1EE06, 'M', u'ز'), - (0x1EE07, 'M', u'ح'), - (0x1EE08, 'M', u'ط'), - (0x1EE09, 'M', u'ي'), - (0x1EE0A, 'M', u'ك'), - (0x1EE0B, 'M', u'ل'), - (0x1EE0C, 'M', u'م'), - (0x1EE0D, 'M', u'ن'), - (0x1EE0E, 'M', u'س'), - (0x1EE0F, 'M', u'ع'), - (0x1EE10, 'M', u'ف'), - (0x1EE11, 'M', u'ص'), - (0x1EE12, 'M', u'ق'), - (0x1EE13, 'M', u'ر'), - (0x1EE14, 'M', u'ش'), - ] - -def _seg_69(): - return [ - (0x1EE15, 'M', u'ت'), - (0x1EE16, 'M', u'ث'), - (0x1EE17, 'M', u'خ'), - (0x1EE18, 'M', u'ذ'), - (0x1EE19, 'M', u'ض'), - (0x1EE1A, 'M', u'ظ'), - (0x1EE1B, 'M', u'غ'), - (0x1EE1C, 'M', u'ٮ'), - (0x1EE1D, 'M', u'ں'), - (0x1EE1E, 'M', u'ڡ'), - (0x1EE1F, 'M', u'ٯ'), - (0x1EE20, 'X'), - (0x1EE21, 'M', u'ب'), - (0x1EE22, 'M', u'ج'), - (0x1EE23, 'X'), - (0x1EE24, 'M', u'ه'), - (0x1EE25, 'X'), - (0x1EE27, 'M', u'ح'), - (0x1EE28, 'X'), - (0x1EE29, 'M', u'ي'), - (0x1EE2A, 'M', u'ك'), - (0x1EE2B, 'M', u'ل'), - (0x1EE2C, 'M', u'م'), - (0x1EE2D, 'M', u'ن'), - (0x1EE2E, 'M', u'س'), - (0x1EE2F, 'M', u'ع'), - (0x1EE30, 'M', u'ف'), - (0x1EE31, 'M', u'ص'), - (0x1EE32, 'M', u'ق'), - (0x1EE33, 'X'), - (0x1EE34, 'M', u'ش'), - (0x1EE35, 'M', u'ت'), - (0x1EE36, 'M', u'ث'), - (0x1EE37, 'M', u'خ'), - (0x1EE38, 'X'), - (0x1EE39, 'M', u'ض'), - (0x1EE3A, 'X'), - (0x1EE3B, 'M', u'غ'), - (0x1EE3C, 'X'), - (0x1EE42, 'M', u'ج'), - (0x1EE43, 'X'), - (0x1EE47, 'M', u'ح'), - (0x1EE48, 'X'), - (0x1EE49, 'M', u'ي'), - (0x1EE4A, 'X'), - (0x1EE4B, 'M', u'ل'), - (0x1EE4C, 'X'), - (0x1EE4D, 'M', u'ن'), - (0x1EE4E, 'M', u'س'), - (0x1EE4F, 'M', u'ع'), - (0x1EE50, 'X'), - (0x1EE51, 'M', u'ص'), - (0x1EE52, 'M', u'ق'), - (0x1EE53, 'X'), - (0x1EE54, 'M', u'ش'), - (0x1EE55, 'X'), - (0x1EE57, 'M', u'خ'), - (0x1EE58, 'X'), - (0x1EE59, 'M', u'ض'), - (0x1EE5A, 'X'), - (0x1EE5B, 'M', u'غ'), - (0x1EE5C, 'X'), - (0x1EE5D, 'M', u'ں'), - (0x1EE5E, 'X'), - (0x1EE5F, 'M', u'ٯ'), - (0x1EE60, 'X'), - (0x1EE61, 'M', u'ب'), - (0x1EE62, 'M', u'ج'), - (0x1EE63, 'X'), - (0x1EE64, 'M', u'ه'), - (0x1EE65, 'X'), - (0x1EE67, 'M', u'ح'), - (0x1EE68, 'M', u'ط'), - (0x1EE69, 'M', u'ي'), - (0x1EE6A, 'M', u'ك'), - (0x1EE6B, 'X'), - (0x1EE6C, 'M', u'م'), - (0x1EE6D, 'M', u'ن'), - (0x1EE6E, 'M', u'س'), - (0x1EE6F, 'M', u'ع'), - (0x1EE70, 'M', u'ف'), - (0x1EE71, 'M', u'ص'), - (0x1EE72, 'M', u'ق'), - (0x1EE73, 'X'), - (0x1EE74, 'M', u'ش'), - (0x1EE75, 'M', u'ت'), - (0x1EE76, 'M', u'ث'), - (0x1EE77, 'M', u'خ'), - (0x1EE78, 'X'), - (0x1EE79, 'M', u'ض'), - (0x1EE7A, 'M', u'ظ'), - (0x1EE7B, 'M', u'غ'), - (0x1EE7C, 'M', u'ٮ'), - (0x1EE7D, 'X'), - (0x1EE7E, 'M', u'ڡ'), - (0x1EE7F, 'X'), - (0x1EE80, 'M', u'ا'), - (0x1EE81, 'M', u'ب'), - (0x1EE82, 'M', u'ج'), - (0x1EE83, 'M', u'د'), - ] - -def _seg_70(): - return [ - (0x1EE84, 'M', u'ه'), - (0x1EE85, 'M', u'و'), - (0x1EE86, 'M', u'ز'), - (0x1EE87, 'M', u'ح'), - (0x1EE88, 'M', u'ط'), - (0x1EE89, 'M', u'ي'), - (0x1EE8A, 'X'), - (0x1EE8B, 'M', u'ل'), - (0x1EE8C, 'M', u'م'), - (0x1EE8D, 'M', u'ن'), - (0x1EE8E, 'M', u'س'), - (0x1EE8F, 'M', u'ع'), - (0x1EE90, 'M', u'ف'), - (0x1EE91, 'M', u'ص'), - (0x1EE92, 'M', u'ق'), - (0x1EE93, 'M', u'ر'), - (0x1EE94, 'M', u'ش'), - (0x1EE95, 'M', u'ت'), - (0x1EE96, 'M', u'ث'), - (0x1EE97, 'M', u'خ'), - (0x1EE98, 'M', u'ذ'), - (0x1EE99, 'M', u'ض'), - (0x1EE9A, 'M', u'ظ'), - (0x1EE9B, 'M', u'غ'), - (0x1EE9C, 'X'), - (0x1EEA1, 'M', u'ب'), - (0x1EEA2, 'M', u'ج'), - (0x1EEA3, 'M', u'د'), - (0x1EEA4, 'X'), - (0x1EEA5, 'M', u'و'), - (0x1EEA6, 'M', u'ز'), - (0x1EEA7, 'M', u'ح'), - (0x1EEA8, 'M', u'ط'), - (0x1EEA9, 'M', u'ي'), - (0x1EEAA, 'X'), - (0x1EEAB, 'M', u'ل'), - (0x1EEAC, 'M', u'م'), - (0x1EEAD, 'M', u'ن'), - (0x1EEAE, 'M', u'س'), - (0x1EEAF, 'M', u'ع'), - (0x1EEB0, 'M', u'ف'), - (0x1EEB1, 'M', u'ص'), - (0x1EEB2, 'M', u'ق'), - (0x1EEB3, 'M', u'ر'), - (0x1EEB4, 'M', u'ش'), - (0x1EEB5, 'M', u'ت'), - (0x1EEB6, 'M', u'ث'), - (0x1EEB7, 'M', u'خ'), - (0x1EEB8, 'M', u'ذ'), - (0x1EEB9, 'M', u'ض'), - (0x1EEBA, 'M', u'ظ'), - (0x1EEBB, 'M', u'غ'), - (0x1EEBC, 'X'), - (0x1EEF0, 'V'), - (0x1EEF2, 'X'), - (0x1F000, 'V'), - (0x1F02C, 'X'), - (0x1F030, 'V'), - (0x1F094, 'X'), - (0x1F0A0, 'V'), - (0x1F0AF, 'X'), - (0x1F0B1, 'V'), - (0x1F0C0, 'X'), - (0x1F0C1, 'V'), - (0x1F0D0, 'X'), - (0x1F0D1, 'V'), - (0x1F0F6, 'X'), - (0x1F101, '3', u'0,'), - (0x1F102, '3', u'1,'), - (0x1F103, '3', u'2,'), - (0x1F104, '3', u'3,'), - (0x1F105, '3', u'4,'), - (0x1F106, '3', u'5,'), - (0x1F107, '3', u'6,'), - (0x1F108, '3', u'7,'), - (0x1F109, '3', u'8,'), - (0x1F10A, '3', u'9,'), - (0x1F10B, 'V'), - (0x1F10D, 'X'), - (0x1F110, '3', u'(a)'), - (0x1F111, '3', u'(b)'), - (0x1F112, '3', u'(c)'), - (0x1F113, '3', u'(d)'), - (0x1F114, '3', u'(e)'), - (0x1F115, '3', u'(f)'), - (0x1F116, '3', u'(g)'), - (0x1F117, '3', u'(h)'), - (0x1F118, '3', u'(i)'), - (0x1F119, '3', u'(j)'), - (0x1F11A, '3', u'(k)'), - (0x1F11B, '3', u'(l)'), - (0x1F11C, '3', u'(m)'), - (0x1F11D, '3', u'(n)'), - (0x1F11E, '3', u'(o)'), - (0x1F11F, '3', u'(p)'), - (0x1F120, '3', u'(q)'), - (0x1F121, '3', u'(r)'), - (0x1F122, '3', u'(s)'), - (0x1F123, '3', u'(t)'), - (0x1F124, '3', u'(u)'), - ] - -def _seg_71(): - return [ - (0x1F125, '3', u'(v)'), - (0x1F126, '3', u'(w)'), - (0x1F127, '3', u'(x)'), - (0x1F128, '3', u'(y)'), - (0x1F129, '3', u'(z)'), - (0x1F12A, 'M', u'〔s〕'), - (0x1F12B, 'M', u'c'), - (0x1F12C, 'M', u'r'), - (0x1F12D, 'M', u'cd'), - (0x1F12E, 'M', u'wz'), - (0x1F12F, 'V'), - (0x1F130, 'M', u'a'), - (0x1F131, 'M', u'b'), - (0x1F132, 'M', u'c'), - (0x1F133, 'M', u'd'), - (0x1F134, 'M', u'e'), - (0x1F135, 'M', u'f'), - (0x1F136, 'M', u'g'), - (0x1F137, 'M', u'h'), - (0x1F138, 'M', u'i'), - (0x1F139, 'M', u'j'), - (0x1F13A, 'M', u'k'), - (0x1F13B, 'M', u'l'), - (0x1F13C, 'M', u'm'), - (0x1F13D, 'M', u'n'), - (0x1F13E, 'M', u'o'), - (0x1F13F, 'M', u'p'), - (0x1F140, 'M', u'q'), - (0x1F141, 'M', u'r'), - (0x1F142, 'M', u's'), - (0x1F143, 'M', u't'), - (0x1F144, 'M', u'u'), - (0x1F145, 'M', u'v'), - (0x1F146, 'M', u'w'), - (0x1F147, 'M', u'x'), - (0x1F148, 'M', u'y'), - (0x1F149, 'M', u'z'), - (0x1F14A, 'M', u'hv'), - (0x1F14B, 'M', u'mv'), - (0x1F14C, 'M', u'sd'), - (0x1F14D, 'M', u'ss'), - (0x1F14E, 'M', u'ppv'), - (0x1F14F, 'M', u'wc'), - (0x1F150, 'V'), - (0x1F16A, 'M', u'mc'), - (0x1F16B, 'M', u'md'), - (0x1F16C, 'X'), - (0x1F170, 'V'), - (0x1F190, 'M', u'dj'), - (0x1F191, 'V'), - (0x1F1AD, 'X'), - (0x1F1E6, 'V'), - (0x1F200, 'M', u'ほか'), - (0x1F201, 'M', u'ココ'), - (0x1F202, 'M', u'サ'), - (0x1F203, 'X'), - (0x1F210, 'M', u'手'), - (0x1F211, 'M', u'字'), - (0x1F212, 'M', u'双'), - (0x1F213, 'M', u'デ'), - (0x1F214, 'M', u'二'), - (0x1F215, 'M', u'多'), - (0x1F216, 'M', u'解'), - (0x1F217, 'M', u'天'), - (0x1F218, 'M', u'交'), - (0x1F219, 'M', u'映'), - (0x1F21A, 'M', u'無'), - (0x1F21B, 'M', u'料'), - (0x1F21C, 'M', u'前'), - (0x1F21D, 'M', u'後'), - (0x1F21E, 'M', u'再'), - (0x1F21F, 'M', u'新'), - (0x1F220, 'M', u'初'), - (0x1F221, 'M', u'終'), - (0x1F222, 'M', u'生'), - (0x1F223, 'M', u'販'), - (0x1F224, 'M', u'声'), - (0x1F225, 'M', u'吹'), - (0x1F226, 'M', u'演'), - (0x1F227, 'M', u'投'), - (0x1F228, 'M', u'捕'), - (0x1F229, 'M', u'一'), - (0x1F22A, 'M', u'三'), - (0x1F22B, 'M', u'遊'), - (0x1F22C, 'M', u'左'), - (0x1F22D, 'M', u'中'), - (0x1F22E, 'M', u'右'), - (0x1F22F, 'M', u'指'), - (0x1F230, 'M', u'走'), - (0x1F231, 'M', u'打'), - (0x1F232, 'M', u'禁'), - (0x1F233, 'M', u'空'), - (0x1F234, 'M', u'合'), - (0x1F235, 'M', u'満'), - (0x1F236, 'M', u'有'), - (0x1F237, 'M', u'月'), - (0x1F238, 'M', u'申'), - (0x1F239, 'M', u'割'), - (0x1F23A, 'M', u'営'), - (0x1F23B, 'M', u'配'), - ] - -def _seg_72(): - return [ - (0x1F23C, 'X'), - (0x1F240, 'M', u'〔本〕'), - (0x1F241, 'M', u'〔三〕'), - (0x1F242, 'M', u'〔二〕'), - (0x1F243, 'M', u'〔安〕'), - (0x1F244, 'M', u'〔点〕'), - (0x1F245, 'M', u'〔打〕'), - (0x1F246, 'M', u'〔盗〕'), - (0x1F247, 'M', u'〔勝〕'), - (0x1F248, 'M', u'〔敗〕'), - (0x1F249, 'X'), - (0x1F250, 'M', u'得'), - (0x1F251, 'M', u'可'), - (0x1F252, 'X'), - (0x1F260, 'V'), - (0x1F266, 'X'), - (0x1F300, 'V'), - (0x1F6D5, 'X'), - (0x1F6E0, 'V'), - (0x1F6ED, 'X'), - (0x1F6F0, 'V'), - (0x1F6FA, 'X'), - (0x1F700, 'V'), - (0x1F774, 'X'), - (0x1F780, 'V'), - (0x1F7D9, 'X'), - (0x1F800, 'V'), - (0x1F80C, 'X'), - (0x1F810, 'V'), - (0x1F848, 'X'), - (0x1F850, 'V'), - (0x1F85A, 'X'), - (0x1F860, 'V'), - (0x1F888, 'X'), - (0x1F890, 'V'), - (0x1F8AE, 'X'), - (0x1F900, 'V'), - (0x1F90C, 'X'), - (0x1F910, 'V'), - (0x1F93F, 'X'), - (0x1F940, 'V'), - (0x1F971, 'X'), - (0x1F973, 'V'), - (0x1F977, 'X'), - (0x1F97A, 'V'), - (0x1F97B, 'X'), - (0x1F97C, 'V'), - (0x1F9A3, 'X'), - (0x1F9B0, 'V'), - (0x1F9BA, 'X'), - (0x1F9C0, 'V'), - (0x1F9C3, 'X'), - (0x1F9D0, 'V'), - (0x1FA00, 'X'), - (0x1FA60, 'V'), - (0x1FA6E, 'X'), - (0x20000, 'V'), - (0x2A6D7, 'X'), - (0x2A700, 'V'), - (0x2B735, 'X'), - (0x2B740, 'V'), - (0x2B81E, 'X'), - (0x2B820, 'V'), - (0x2CEA2, 'X'), - (0x2CEB0, 'V'), - (0x2EBE1, 'X'), - (0x2F800, 'M', u'丽'), - (0x2F801, 'M', u'丸'), - (0x2F802, 'M', u'乁'), - (0x2F803, 'M', u'𠄢'), - (0x2F804, 'M', u'你'), - (0x2F805, 'M', u'侮'), - (0x2F806, 'M', u'侻'), - (0x2F807, 'M', u'倂'), - (0x2F808, 'M', u'偺'), - (0x2F809, 'M', u'備'), - (0x2F80A, 'M', u'僧'), - (0x2F80B, 'M', u'像'), - (0x2F80C, 'M', u'㒞'), - (0x2F80D, 'M', u'𠘺'), - (0x2F80E, 'M', u'免'), - (0x2F80F, 'M', u'兔'), - (0x2F810, 'M', u'兤'), - (0x2F811, 'M', u'具'), - (0x2F812, 'M', u'𠔜'), - (0x2F813, 'M', u'㒹'), - (0x2F814, 'M', u'內'), - (0x2F815, 'M', u'再'), - (0x2F816, 'M', u'𠕋'), - (0x2F817, 'M', u'冗'), - (0x2F818, 'M', u'冤'), - (0x2F819, 'M', u'仌'), - (0x2F81A, 'M', u'冬'), - (0x2F81B, 'M', u'况'), - (0x2F81C, 'M', u'𩇟'), - (0x2F81D, 'M', u'凵'), - (0x2F81E, 'M', u'刃'), - (0x2F81F, 'M', u'㓟'), - (0x2F820, 'M', u'刻'), - (0x2F821, 'M', u'剆'), - ] - -def _seg_73(): - return [ - (0x2F822, 'M', u'割'), - (0x2F823, 'M', u'剷'), - (0x2F824, 'M', u'㔕'), - (0x2F825, 'M', u'勇'), - (0x2F826, 'M', u'勉'), - (0x2F827, 'M', u'勤'), - (0x2F828, 'M', u'勺'), - (0x2F829, 'M', u'包'), - (0x2F82A, 'M', u'匆'), - (0x2F82B, 'M', u'北'), - (0x2F82C, 'M', u'卉'), - (0x2F82D, 'M', u'卑'), - (0x2F82E, 'M', u'博'), - (0x2F82F, 'M', u'即'), - (0x2F830, 'M', u'卽'), - (0x2F831, 'M', u'卿'), - (0x2F834, 'M', u'𠨬'), - (0x2F835, 'M', u'灰'), - (0x2F836, 'M', u'及'), - (0x2F837, 'M', u'叟'), - (0x2F838, 'M', u'𠭣'), - (0x2F839, 'M', u'叫'), - (0x2F83A, 'M', u'叱'), - (0x2F83B, 'M', u'吆'), - (0x2F83C, 'M', u'咞'), - (0x2F83D, 'M', u'吸'), - (0x2F83E, 'M', u'呈'), - (0x2F83F, 'M', u'周'), - (0x2F840, 'M', u'咢'), - (0x2F841, 'M', u'哶'), - (0x2F842, 'M', u'唐'), - (0x2F843, 'M', u'啓'), - (0x2F844, 'M', u'啣'), - (0x2F845, 'M', u'善'), - (0x2F847, 'M', u'喙'), - (0x2F848, 'M', u'喫'), - (0x2F849, 'M', u'喳'), - (0x2F84A, 'M', u'嗂'), - (0x2F84B, 'M', u'圖'), - (0x2F84C, 'M', u'嘆'), - (0x2F84D, 'M', u'圗'), - (0x2F84E, 'M', u'噑'), - (0x2F84F, 'M', u'噴'), - (0x2F850, 'M', u'切'), - (0x2F851, 'M', u'壮'), - (0x2F852, 'M', u'城'), - (0x2F853, 'M', u'埴'), - (0x2F854, 'M', u'堍'), - (0x2F855, 'M', u'型'), - (0x2F856, 'M', u'堲'), - (0x2F857, 'M', u'報'), - (0x2F858, 'M', u'墬'), - (0x2F859, 'M', u'𡓤'), - (0x2F85A, 'M', u'売'), - (0x2F85B, 'M', u'壷'), - (0x2F85C, 'M', u'夆'), - (0x2F85D, 'M', u'多'), - (0x2F85E, 'M', u'夢'), - (0x2F85F, 'M', u'奢'), - (0x2F860, 'M', u'𡚨'), - (0x2F861, 'M', u'𡛪'), - (0x2F862, 'M', u'姬'), - (0x2F863, 'M', u'娛'), - (0x2F864, 'M', u'娧'), - (0x2F865, 'M', u'姘'), - (0x2F866, 'M', u'婦'), - (0x2F867, 'M', u'㛮'), - (0x2F868, 'X'), - (0x2F869, 'M', u'嬈'), - (0x2F86A, 'M', u'嬾'), - (0x2F86C, 'M', u'𡧈'), - (0x2F86D, 'M', u'寃'), - (0x2F86E, 'M', u'寘'), - (0x2F86F, 'M', u'寧'), - (0x2F870, 'M', u'寳'), - (0x2F871, 'M', u'𡬘'), - (0x2F872, 'M', u'寿'), - (0x2F873, 'M', u'将'), - (0x2F874, 'X'), - (0x2F875, 'M', u'尢'), - (0x2F876, 'M', u'㞁'), - (0x2F877, 'M', u'屠'), - (0x2F878, 'M', u'屮'), - (0x2F879, 'M', u'峀'), - (0x2F87A, 'M', u'岍'), - (0x2F87B, 'M', u'𡷤'), - (0x2F87C, 'M', u'嵃'), - (0x2F87D, 'M', u'𡷦'), - (0x2F87E, 'M', u'嵮'), - (0x2F87F, 'M', u'嵫'), - (0x2F880, 'M', u'嵼'), - (0x2F881, 'M', u'巡'), - (0x2F882, 'M', u'巢'), - (0x2F883, 'M', u'㠯'), - (0x2F884, 'M', u'巽'), - (0x2F885, 'M', u'帨'), - (0x2F886, 'M', u'帽'), - (0x2F887, 'M', u'幩'), - (0x2F888, 'M', u'㡢'), - (0x2F889, 'M', u'𢆃'), - ] - -def _seg_74(): - return [ - (0x2F88A, 'M', u'㡼'), - (0x2F88B, 'M', u'庰'), - (0x2F88C, 'M', u'庳'), - (0x2F88D, 'M', u'庶'), - (0x2F88E, 'M', u'廊'), - (0x2F88F, 'M', u'𪎒'), - (0x2F890, 'M', u'廾'), - (0x2F891, 'M', u'𢌱'), - (0x2F893, 'M', u'舁'), - (0x2F894, 'M', u'弢'), - (0x2F896, 'M', u'㣇'), - (0x2F897, 'M', u'𣊸'), - (0x2F898, 'M', u'𦇚'), - (0x2F899, 'M', u'形'), - (0x2F89A, 'M', u'彫'), - (0x2F89B, 'M', u'㣣'), - (0x2F89C, 'M', u'徚'), - (0x2F89D, 'M', u'忍'), - (0x2F89E, 'M', u'志'), - (0x2F89F, 'M', u'忹'), - (0x2F8A0, 'M', u'悁'), - (0x2F8A1, 'M', u'㤺'), - (0x2F8A2, 'M', u'㤜'), - (0x2F8A3, 'M', u'悔'), - (0x2F8A4, 'M', u'𢛔'), - (0x2F8A5, 'M', u'惇'), - (0x2F8A6, 'M', u'慈'), - (0x2F8A7, 'M', u'慌'), - (0x2F8A8, 'M', u'慎'), - (0x2F8A9, 'M', u'慌'), - (0x2F8AA, 'M', u'慺'), - (0x2F8AB, 'M', u'憎'), - (0x2F8AC, 'M', u'憲'), - (0x2F8AD, 'M', u'憤'), - (0x2F8AE, 'M', u'憯'), - (0x2F8AF, 'M', u'懞'), - (0x2F8B0, 'M', u'懲'), - (0x2F8B1, 'M', u'懶'), - (0x2F8B2, 'M', u'成'), - (0x2F8B3, 'M', u'戛'), - (0x2F8B4, 'M', u'扝'), - (0x2F8B5, 'M', u'抱'), - (0x2F8B6, 'M', u'拔'), - (0x2F8B7, 'M', u'捐'), - (0x2F8B8, 'M', u'𢬌'), - (0x2F8B9, 'M', u'挽'), - (0x2F8BA, 'M', u'拼'), - (0x2F8BB, 'M', u'捨'), - (0x2F8BC, 'M', u'掃'), - (0x2F8BD, 'M', u'揤'), - (0x2F8BE, 'M', u'𢯱'), - (0x2F8BF, 'M', u'搢'), - (0x2F8C0, 'M', u'揅'), - (0x2F8C1, 'M', u'掩'), - (0x2F8C2, 'M', u'㨮'), - (0x2F8C3, 'M', u'摩'), - (0x2F8C4, 'M', u'摾'), - (0x2F8C5, 'M', u'撝'), - (0x2F8C6, 'M', u'摷'), - (0x2F8C7, 'M', u'㩬'), - (0x2F8C8, 'M', u'敏'), - (0x2F8C9, 'M', u'敬'), - (0x2F8CA, 'M', u'𣀊'), - (0x2F8CB, 'M', u'旣'), - (0x2F8CC, 'M', u'書'), - (0x2F8CD, 'M', u'晉'), - (0x2F8CE, 'M', u'㬙'), - (0x2F8CF, 'M', u'暑'), - (0x2F8D0, 'M', u'㬈'), - (0x2F8D1, 'M', u'㫤'), - (0x2F8D2, 'M', u'冒'), - (0x2F8D3, 'M', u'冕'), - (0x2F8D4, 'M', u'最'), - (0x2F8D5, 'M', u'暜'), - (0x2F8D6, 'M', u'肭'), - (0x2F8D7, 'M', u'䏙'), - (0x2F8D8, 'M', u'朗'), - (0x2F8D9, 'M', u'望'), - (0x2F8DA, 'M', u'朡'), - (0x2F8DB, 'M', u'杞'), - (0x2F8DC, 'M', u'杓'), - (0x2F8DD, 'M', u'𣏃'), - (0x2F8DE, 'M', u'㭉'), - (0x2F8DF, 'M', u'柺'), - (0x2F8E0, 'M', u'枅'), - (0x2F8E1, 'M', u'桒'), - (0x2F8E2, 'M', u'梅'), - (0x2F8E3, 'M', u'𣑭'), - (0x2F8E4, 'M', u'梎'), - (0x2F8E5, 'M', u'栟'), - (0x2F8E6, 'M', u'椔'), - (0x2F8E7, 'M', u'㮝'), - (0x2F8E8, 'M', u'楂'), - (0x2F8E9, 'M', u'榣'), - (0x2F8EA, 'M', u'槪'), - (0x2F8EB, 'M', u'檨'), - (0x2F8EC, 'M', u'𣚣'), - (0x2F8ED, 'M', u'櫛'), - (0x2F8EE, 'M', u'㰘'), - (0x2F8EF, 'M', u'次'), - ] - -def _seg_75(): - return [ - (0x2F8F0, 'M', u'𣢧'), - (0x2F8F1, 'M', u'歔'), - (0x2F8F2, 'M', u'㱎'), - (0x2F8F3, 'M', u'歲'), - (0x2F8F4, 'M', u'殟'), - (0x2F8F5, 'M', u'殺'), - (0x2F8F6, 'M', u'殻'), - (0x2F8F7, 'M', u'𣪍'), - (0x2F8F8, 'M', u'𡴋'), - (0x2F8F9, 'M', u'𣫺'), - (0x2F8FA, 'M', u'汎'), - (0x2F8FB, 'M', u'𣲼'), - (0x2F8FC, 'M', u'沿'), - (0x2F8FD, 'M', u'泍'), - (0x2F8FE, 'M', u'汧'), - (0x2F8FF, 'M', u'洖'), - (0x2F900, 'M', u'派'), - (0x2F901, 'M', u'海'), - (0x2F902, 'M', u'流'), - (0x2F903, 'M', u'浩'), - (0x2F904, 'M', u'浸'), - (0x2F905, 'M', u'涅'), - (0x2F906, 'M', u'𣴞'), - (0x2F907, 'M', u'洴'), - (0x2F908, 'M', u'港'), - (0x2F909, 'M', u'湮'), - (0x2F90A, 'M', u'㴳'), - (0x2F90B, 'M', u'滋'), - (0x2F90C, 'M', u'滇'), - (0x2F90D, 'M', u'𣻑'), - (0x2F90E, 'M', u'淹'), - (0x2F90F, 'M', u'潮'), - (0x2F910, 'M', u'𣽞'), - (0x2F911, 'M', u'𣾎'), - (0x2F912, 'M', u'濆'), - (0x2F913, 'M', u'瀹'), - (0x2F914, 'M', u'瀞'), - (0x2F915, 'M', u'瀛'), - (0x2F916, 'M', u'㶖'), - (0x2F917, 'M', u'灊'), - (0x2F918, 'M', u'災'), - (0x2F919, 'M', u'灷'), - (0x2F91A, 'M', u'炭'), - (0x2F91B, 'M', u'𠔥'), - (0x2F91C, 'M', u'煅'), - (0x2F91D, 'M', u'𤉣'), - (0x2F91E, 'M', u'熜'), - (0x2F91F, 'X'), - (0x2F920, 'M', u'爨'), - (0x2F921, 'M', u'爵'), - (0x2F922, 'M', u'牐'), - (0x2F923, 'M', u'𤘈'), - (0x2F924, 'M', u'犀'), - (0x2F925, 'M', u'犕'), - (0x2F926, 'M', u'𤜵'), - (0x2F927, 'M', u'𤠔'), - (0x2F928, 'M', u'獺'), - (0x2F929, 'M', u'王'), - (0x2F92A, 'M', u'㺬'), - (0x2F92B, 'M', u'玥'), - (0x2F92C, 'M', u'㺸'), - (0x2F92E, 'M', u'瑇'), - (0x2F92F, 'M', u'瑜'), - (0x2F930, 'M', u'瑱'), - (0x2F931, 'M', u'璅'), - (0x2F932, 'M', u'瓊'), - (0x2F933, 'M', u'㼛'), - (0x2F934, 'M', u'甤'), - (0x2F935, 'M', u'𤰶'), - (0x2F936, 'M', u'甾'), - (0x2F937, 'M', u'𤲒'), - (0x2F938, 'M', u'異'), - (0x2F939, 'M', u'𢆟'), - (0x2F93A, 'M', u'瘐'), - (0x2F93B, 'M', u'𤾡'), - (0x2F93C, 'M', u'𤾸'), - (0x2F93D, 'M', u'𥁄'), - (0x2F93E, 'M', u'㿼'), - (0x2F93F, 'M', u'䀈'), - (0x2F940, 'M', u'直'), - (0x2F941, 'M', u'𥃳'), - (0x2F942, 'M', u'𥃲'), - (0x2F943, 'M', u'𥄙'), - (0x2F944, 'M', u'𥄳'), - (0x2F945, 'M', u'眞'), - (0x2F946, 'M', u'真'), - (0x2F948, 'M', u'睊'), - (0x2F949, 'M', u'䀹'), - (0x2F94A, 'M', u'瞋'), - (0x2F94B, 'M', u'䁆'), - (0x2F94C, 'M', u'䂖'), - (0x2F94D, 'M', u'𥐝'), - (0x2F94E, 'M', u'硎'), - (0x2F94F, 'M', u'碌'), - (0x2F950, 'M', u'磌'), - (0x2F951, 'M', u'䃣'), - (0x2F952, 'M', u'𥘦'), - (0x2F953, 'M', u'祖'), - (0x2F954, 'M', u'𥚚'), - (0x2F955, 'M', u'𥛅'), - ] - -def _seg_76(): - return [ - (0x2F956, 'M', u'福'), - (0x2F957, 'M', u'秫'), - (0x2F958, 'M', u'䄯'), - (0x2F959, 'M', u'穀'), - (0x2F95A, 'M', u'穊'), - (0x2F95B, 'M', u'穏'), - (0x2F95C, 'M', u'𥥼'), - (0x2F95D, 'M', u'𥪧'), - (0x2F95F, 'X'), - (0x2F960, 'M', u'䈂'), - (0x2F961, 'M', u'𥮫'), - (0x2F962, 'M', u'篆'), - (0x2F963, 'M', u'築'), - (0x2F964, 'M', u'䈧'), - (0x2F965, 'M', u'𥲀'), - (0x2F966, 'M', u'糒'), - (0x2F967, 'M', u'䊠'), - (0x2F968, 'M', u'糨'), - (0x2F969, 'M', u'糣'), - (0x2F96A, 'M', u'紀'), - (0x2F96B, 'M', u'𥾆'), - (0x2F96C, 'M', u'絣'), - (0x2F96D, 'M', u'䌁'), - (0x2F96E, 'M', u'緇'), - (0x2F96F, 'M', u'縂'), - (0x2F970, 'M', u'繅'), - (0x2F971, 'M', u'䌴'), - (0x2F972, 'M', u'𦈨'), - (0x2F973, 'M', u'𦉇'), - (0x2F974, 'M', u'䍙'), - (0x2F975, 'M', u'𦋙'), - (0x2F976, 'M', u'罺'), - (0x2F977, 'M', u'𦌾'), - (0x2F978, 'M', u'羕'), - (0x2F979, 'M', u'翺'), - (0x2F97A, 'M', u'者'), - (0x2F97B, 'M', u'𦓚'), - (0x2F97C, 'M', u'𦔣'), - (0x2F97D, 'M', u'聠'), - (0x2F97E, 'M', u'𦖨'), - (0x2F97F, 'M', u'聰'), - (0x2F980, 'M', u'𣍟'), - (0x2F981, 'M', u'䏕'), - (0x2F982, 'M', u'育'), - (0x2F983, 'M', u'脃'), - (0x2F984, 'M', u'䐋'), - (0x2F985, 'M', u'脾'), - (0x2F986, 'M', u'媵'), - (0x2F987, 'M', u'𦞧'), - (0x2F988, 'M', u'𦞵'), - (0x2F989, 'M', u'𣎓'), - (0x2F98A, 'M', u'𣎜'), - (0x2F98B, 'M', u'舁'), - (0x2F98C, 'M', u'舄'), - (0x2F98D, 'M', u'辞'), - (0x2F98E, 'M', u'䑫'), - (0x2F98F, 'M', u'芑'), - (0x2F990, 'M', u'芋'), - (0x2F991, 'M', u'芝'), - (0x2F992, 'M', u'劳'), - (0x2F993, 'M', u'花'), - (0x2F994, 'M', u'芳'), - (0x2F995, 'M', u'芽'), - (0x2F996, 'M', u'苦'), - (0x2F997, 'M', u'𦬼'), - (0x2F998, 'M', u'若'), - (0x2F999, 'M', u'茝'), - (0x2F99A, 'M', u'荣'), - (0x2F99B, 'M', u'莭'), - (0x2F99C, 'M', u'茣'), - (0x2F99D, 'M', u'莽'), - (0x2F99E, 'M', u'菧'), - (0x2F99F, 'M', u'著'), - (0x2F9A0, 'M', u'荓'), - (0x2F9A1, 'M', u'菊'), - (0x2F9A2, 'M', u'菌'), - (0x2F9A3, 'M', u'菜'), - (0x2F9A4, 'M', u'𦰶'), - (0x2F9A5, 'M', u'𦵫'), - (0x2F9A6, 'M', u'𦳕'), - (0x2F9A7, 'M', u'䔫'), - (0x2F9A8, 'M', u'蓱'), - (0x2F9A9, 'M', u'蓳'), - (0x2F9AA, 'M', u'蔖'), - (0x2F9AB, 'M', u'𧏊'), - (0x2F9AC, 'M', u'蕤'), - (0x2F9AD, 'M', u'𦼬'), - (0x2F9AE, 'M', u'䕝'), - (0x2F9AF, 'M', u'䕡'), - (0x2F9B0, 'M', u'𦾱'), - (0x2F9B1, 'M', u'𧃒'), - (0x2F9B2, 'M', u'䕫'), - (0x2F9B3, 'M', u'虐'), - (0x2F9B4, 'M', u'虜'), - (0x2F9B5, 'M', u'虧'), - (0x2F9B6, 'M', u'虩'), - (0x2F9B7, 'M', u'蚩'), - (0x2F9B8, 'M', u'蚈'), - (0x2F9B9, 'M', u'蜎'), - (0x2F9BA, 'M', u'蛢'), - ] - -def _seg_77(): - return [ - (0x2F9BB, 'M', u'蝹'), - (0x2F9BC, 'M', u'蜨'), - (0x2F9BD, 'M', u'蝫'), - (0x2F9BE, 'M', u'螆'), - (0x2F9BF, 'X'), - (0x2F9C0, 'M', u'蟡'), - (0x2F9C1, 'M', u'蠁'), - (0x2F9C2, 'M', u'䗹'), - (0x2F9C3, 'M', u'衠'), - (0x2F9C4, 'M', u'衣'), - (0x2F9C5, 'M', u'𧙧'), - (0x2F9C6, 'M', u'裗'), - (0x2F9C7, 'M', u'裞'), - (0x2F9C8, 'M', u'䘵'), - (0x2F9C9, 'M', u'裺'), - (0x2F9CA, 'M', u'㒻'), - (0x2F9CB, 'M', u'𧢮'), - (0x2F9CC, 'M', u'𧥦'), - (0x2F9CD, 'M', u'䚾'), - (0x2F9CE, 'M', u'䛇'), - (0x2F9CF, 'M', u'誠'), - (0x2F9D0, 'M', u'諭'), - (0x2F9D1, 'M', u'變'), - (0x2F9D2, 'M', u'豕'), - (0x2F9D3, 'M', u'𧲨'), - (0x2F9D4, 'M', u'貫'), - (0x2F9D5, 'M', u'賁'), - (0x2F9D6, 'M', u'贛'), - (0x2F9D7, 'M', u'起'), - (0x2F9D8, 'M', u'𧼯'), - (0x2F9D9, 'M', u'𠠄'), - (0x2F9DA, 'M', u'跋'), - (0x2F9DB, 'M', u'趼'), - (0x2F9DC, 'M', u'跰'), - (0x2F9DD, 'M', u'𠣞'), - (0x2F9DE, 'M', u'軔'), - (0x2F9DF, 'M', u'輸'), - (0x2F9E0, 'M', u'𨗒'), - (0x2F9E1, 'M', u'𨗭'), - (0x2F9E2, 'M', u'邔'), - (0x2F9E3, 'M', u'郱'), - (0x2F9E4, 'M', u'鄑'), - (0x2F9E5, 'M', u'𨜮'), - (0x2F9E6, 'M', u'鄛'), - (0x2F9E7, 'M', u'鈸'), - (0x2F9E8, 'M', u'鋗'), - (0x2F9E9, 'M', u'鋘'), - (0x2F9EA, 'M', u'鉼'), - (0x2F9EB, 'M', u'鏹'), - (0x2F9EC, 'M', u'鐕'), - (0x2F9ED, 'M', u'𨯺'), - (0x2F9EE, 'M', u'開'), - (0x2F9EF, 'M', u'䦕'), - (0x2F9F0, 'M', u'閷'), - (0x2F9F1, 'M', u'𨵷'), - (0x2F9F2, 'M', u'䧦'), - (0x2F9F3, 'M', u'雃'), - (0x2F9F4, 'M', u'嶲'), - (0x2F9F5, 'M', u'霣'), - (0x2F9F6, 'M', u'𩅅'), - (0x2F9F7, 'M', u'𩈚'), - (0x2F9F8, 'M', u'䩮'), - (0x2F9F9, 'M', u'䩶'), - (0x2F9FA, 'M', u'韠'), - (0x2F9FB, 'M', u'𩐊'), - (0x2F9FC, 'M', u'䪲'), - (0x2F9FD, 'M', u'𩒖'), - (0x2F9FE, 'M', u'頋'), - (0x2FA00, 'M', u'頩'), - (0x2FA01, 'M', u'𩖶'), - (0x2FA02, 'M', u'飢'), - (0x2FA03, 'M', u'䬳'), - (0x2FA04, 'M', u'餩'), - (0x2FA05, 'M', u'馧'), - (0x2FA06, 'M', u'駂'), - (0x2FA07, 'M', u'駾'), - (0x2FA08, 'M', u'䯎'), - (0x2FA09, 'M', u'𩬰'), - (0x2FA0A, 'M', u'鬒'), - (0x2FA0B, 'M', u'鱀'), - (0x2FA0C, 'M', u'鳽'), - (0x2FA0D, 'M', u'䳎'), - (0x2FA0E, 'M', u'䳭'), - (0x2FA0F, 'M', u'鵧'), - (0x2FA10, 'M', u'𪃎'), - (0x2FA11, 'M', u'䳸'), - (0x2FA12, 'M', u'𪄅'), - (0x2FA13, 'M', u'𪈎'), - (0x2FA14, 'M', u'𪊑'), - (0x2FA15, 'M', u'麻'), - (0x2FA16, 'M', u'䵖'), - (0x2FA17, 'M', u'黹'), - (0x2FA18, 'M', u'黾'), - (0x2FA19, 'M', u'鼅'), - (0x2FA1A, 'M', u'鼏'), - (0x2FA1B, 'M', u'鼖'), - (0x2FA1C, 'M', u'鼻'), - (0x2FA1D, 'M', u'𪘀'), - (0x2FA1E, 'X'), - (0xE0100, 'I'), - ] - -def _seg_78(): - return [ - (0xE01F0, 'X'), - ] - -uts46data = tuple( - _seg_0() - + _seg_1() - + _seg_2() - + _seg_3() - + _seg_4() - + _seg_5() - + _seg_6() - + _seg_7() - + _seg_8() - + _seg_9() - + _seg_10() - + _seg_11() - + _seg_12() - + _seg_13() - + _seg_14() - + _seg_15() - + _seg_16() - + _seg_17() - + _seg_18() - + _seg_19() - + _seg_20() - + _seg_21() - + _seg_22() - + _seg_23() - + _seg_24() - + _seg_25() - + _seg_26() - + _seg_27() - + _seg_28() - + _seg_29() - + _seg_30() - + _seg_31() - + _seg_32() - + _seg_33() - + _seg_34() - + _seg_35() - + _seg_36() - + _seg_37() - + _seg_38() - + _seg_39() - + _seg_40() - + _seg_41() - + _seg_42() - + _seg_43() - + _seg_44() - + _seg_45() - + _seg_46() - + _seg_47() - + _seg_48() - + _seg_49() - + _seg_50() - + _seg_51() - + _seg_52() - + _seg_53() - + _seg_54() - + _seg_55() - + _seg_56() - + _seg_57() - + _seg_58() - + _seg_59() - + _seg_60() - + _seg_61() - + _seg_62() - + _seg_63() - + _seg_64() - + _seg_65() - + _seg_66() - + _seg_67() - + _seg_68() - + _seg_69() - + _seg_70() - + _seg_71() - + _seg_72() - + _seg_73() - + _seg_74() - + _seg_75() - + _seg_76() - + _seg_77() - + _seg_78() -) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/ipaddress.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/ipaddress.py deleted file mode 100644 index f2d0766..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/ipaddress.py +++ /dev/null @@ -1,2419 +0,0 @@ -# Copyright 2007 Google Inc. -# Licensed to PSF under a Contributor Agreement. - -"""A fast, lightweight IPv4/IPv6 manipulation library in Python. - -This library is used to create/poke/manipulate IPv4 and IPv6 addresses -and networks. - -""" - -from __future__ import unicode_literals - - -import itertools -import struct - -__version__ = '1.0.22' - -# Compatibility functions -_compat_int_types = (int,) -try: - _compat_int_types = (int, long) -except NameError: - pass -try: - _compat_str = unicode -except NameError: - _compat_str = str - assert bytes != str -if b'\0'[0] == 0: # Python 3 semantics - def _compat_bytes_to_byte_vals(byt): - return byt -else: - def _compat_bytes_to_byte_vals(byt): - return [struct.unpack(b'!B', b)[0] for b in byt] -try: - _compat_int_from_byte_vals = int.from_bytes -except AttributeError: - def _compat_int_from_byte_vals(bytvals, endianess): - assert endianess == 'big' - res = 0 - for bv in bytvals: - assert isinstance(bv, _compat_int_types) - res = (res << 8) + bv - return res - - -def _compat_to_bytes(intval, length, endianess): - assert isinstance(intval, _compat_int_types) - assert endianess == 'big' - if length == 4: - if intval < 0 or intval >= 2 ** 32: - raise struct.error("integer out of range for 'I' format code") - return struct.pack(b'!I', intval) - elif length == 16: - if intval < 0 or intval >= 2 ** 128: - raise struct.error("integer out of range for 'QQ' format code") - return struct.pack(b'!QQ', intval >> 64, intval & 0xffffffffffffffff) - else: - raise NotImplementedError() - - -if hasattr(int, 'bit_length'): - # Not int.bit_length , since that won't work in 2.7 where long exists - def _compat_bit_length(i): - return i.bit_length() -else: - def _compat_bit_length(i): - for res in itertools.count(): - if i >> res == 0: - return res - - -def _compat_range(start, end, step=1): - assert step > 0 - i = start - while i < end: - yield i - i += step - - -class _TotalOrderingMixin(object): - __slots__ = () - - # Helper that derives the other comparison operations from - # __lt__ and __eq__ - # We avoid functools.total_ordering because it doesn't handle - # NotImplemented correctly yet (http://bugs.python.org/issue10042) - def __eq__(self, other): - raise NotImplementedError - - def __ne__(self, other): - equal = self.__eq__(other) - if equal is NotImplemented: - return NotImplemented - return not equal - - def __lt__(self, other): - raise NotImplementedError - - def __le__(self, other): - less = self.__lt__(other) - if less is NotImplemented or not less: - return self.__eq__(other) - return less - - def __gt__(self, other): - less = self.__lt__(other) - if less is NotImplemented: - return NotImplemented - equal = self.__eq__(other) - if equal is NotImplemented: - return NotImplemented - return not (less or equal) - - def __ge__(self, other): - less = self.__lt__(other) - if less is NotImplemented: - return NotImplemented - return not less - - -IPV4LENGTH = 32 -IPV6LENGTH = 128 - - -class AddressValueError(ValueError): - """A Value Error related to the address.""" - - -class NetmaskValueError(ValueError): - """A Value Error related to the netmask.""" - - -def ip_address(address): - """Take an IP string/int and return an object of the correct type. - - Args: - address: A string or integer, the IP address. Either IPv4 or - IPv6 addresses may be supplied; integers less than 2**32 will - be considered to be IPv4 by default. - - Returns: - An IPv4Address or IPv6Address object. - - Raises: - ValueError: if the *address* passed isn't either a v4 or a v6 - address - - """ - try: - return IPv4Address(address) - except (AddressValueError, NetmaskValueError): - pass - - try: - return IPv6Address(address) - except (AddressValueError, NetmaskValueError): - pass - - if isinstance(address, bytes): - raise AddressValueError( - '%r does not appear to be an IPv4 or IPv6 address. ' - 'Did you pass in a bytes (str in Python 2) instead of' - ' a unicode object?' % address) - - raise ValueError('%r does not appear to be an IPv4 or IPv6 address' % - address) - - -def ip_network(address, strict=True): - """Take an IP string/int and return an object of the correct type. - - Args: - address: A string or integer, the IP network. Either IPv4 or - IPv6 networks may be supplied; integers less than 2**32 will - be considered to be IPv4 by default. - - Returns: - An IPv4Network or IPv6Network object. - - Raises: - ValueError: if the string passed isn't either a v4 or a v6 - address. Or if the network has host bits set. - - """ - try: - return IPv4Network(address, strict) - except (AddressValueError, NetmaskValueError): - pass - - try: - return IPv6Network(address, strict) - except (AddressValueError, NetmaskValueError): - pass - - if isinstance(address, bytes): - raise AddressValueError( - '%r does not appear to be an IPv4 or IPv6 network. ' - 'Did you pass in a bytes (str in Python 2) instead of' - ' a unicode object?' % address) - - raise ValueError('%r does not appear to be an IPv4 or IPv6 network' % - address) - - -def ip_interface(address): - """Take an IP string/int and return an object of the correct type. - - Args: - address: A string or integer, the IP address. Either IPv4 or - IPv6 addresses may be supplied; integers less than 2**32 will - be considered to be IPv4 by default. - - Returns: - An IPv4Interface or IPv6Interface object. - - Raises: - ValueError: if the string passed isn't either a v4 or a v6 - address. - - Notes: - The IPv?Interface classes describe an Address on a particular - Network, so they're basically a combination of both the Address - and Network classes. - - """ - try: - return IPv4Interface(address) - except (AddressValueError, NetmaskValueError): - pass - - try: - return IPv6Interface(address) - except (AddressValueError, NetmaskValueError): - pass - - raise ValueError('%r does not appear to be an IPv4 or IPv6 interface' % - address) - - -def v4_int_to_packed(address): - """Represent an address as 4 packed bytes in network (big-endian) order. - - Args: - address: An integer representation of an IPv4 IP address. - - Returns: - The integer address packed as 4 bytes in network (big-endian) order. - - Raises: - ValueError: If the integer is negative or too large to be an - IPv4 IP address. - - """ - try: - return _compat_to_bytes(address, 4, 'big') - except (struct.error, OverflowError): - raise ValueError("Address negative or too large for IPv4") - - -def v6_int_to_packed(address): - """Represent an address as 16 packed bytes in network (big-endian) order. - - Args: - address: An integer representation of an IPv6 IP address. - - Returns: - The integer address packed as 16 bytes in network (big-endian) order. - - """ - try: - return _compat_to_bytes(address, 16, 'big') - except (struct.error, OverflowError): - raise ValueError("Address negative or too large for IPv6") - - -def _split_optional_netmask(address): - """Helper to split the netmask and raise AddressValueError if needed""" - addr = _compat_str(address).split('/') - if len(addr) > 2: - raise AddressValueError("Only one '/' permitted in %r" % address) - return addr - - -def _find_address_range(addresses): - """Find a sequence of sorted deduplicated IPv#Address. - - Args: - addresses: a list of IPv#Address objects. - - Yields: - A tuple containing the first and last IP addresses in the sequence. - - """ - it = iter(addresses) - first = last = next(it) - for ip in it: - if ip._ip != last._ip + 1: - yield first, last - first = ip - last = ip - yield first, last - - -def _count_righthand_zero_bits(number, bits): - """Count the number of zero bits on the right hand side. - - Args: - number: an integer. - bits: maximum number of bits to count. - - Returns: - The number of zero bits on the right hand side of the number. - - """ - if number == 0: - return bits - return min(bits, _compat_bit_length(~number & (number - 1))) - - -def summarize_address_range(first, last): - """Summarize a network range given the first and last IP addresses. - - Example: - >>> list(summarize_address_range(IPv4Address('192.0.2.0'), - ... IPv4Address('192.0.2.130'))) - ... #doctest: +NORMALIZE_WHITESPACE - [IPv4Network('192.0.2.0/25'), IPv4Network('192.0.2.128/31'), - IPv4Network('192.0.2.130/32')] - - Args: - first: the first IPv4Address or IPv6Address in the range. - last: the last IPv4Address or IPv6Address in the range. - - Returns: - An iterator of the summarized IPv(4|6) network objects. - - Raise: - TypeError: - If the first and last objects are not IP addresses. - If the first and last objects are not the same version. - ValueError: - If the last object is not greater than the first. - If the version of the first address is not 4 or 6. - - """ - if (not (isinstance(first, _BaseAddress) and - isinstance(last, _BaseAddress))): - raise TypeError('first and last must be IP addresses, not networks') - if first.version != last.version: - raise TypeError("%s and %s are not of the same version" % ( - first, last)) - if first > last: - raise ValueError('last IP address must be greater than first') - - if first.version == 4: - ip = IPv4Network - elif first.version == 6: - ip = IPv6Network - else: - raise ValueError('unknown IP version') - - ip_bits = first._max_prefixlen - first_int = first._ip - last_int = last._ip - while first_int <= last_int: - nbits = min(_count_righthand_zero_bits(first_int, ip_bits), - _compat_bit_length(last_int - first_int + 1) - 1) - net = ip((first_int, ip_bits - nbits)) - yield net - first_int += 1 << nbits - if first_int - 1 == ip._ALL_ONES: - break - - -def _collapse_addresses_internal(addresses): - """Loops through the addresses, collapsing concurrent netblocks. - - Example: - - ip1 = IPv4Network('192.0.2.0/26') - ip2 = IPv4Network('192.0.2.64/26') - ip3 = IPv4Network('192.0.2.128/26') - ip4 = IPv4Network('192.0.2.192/26') - - _collapse_addresses_internal([ip1, ip2, ip3, ip4]) -> - [IPv4Network('192.0.2.0/24')] - - This shouldn't be called directly; it is called via - collapse_addresses([]). - - Args: - addresses: A list of IPv4Network's or IPv6Network's - - Returns: - A list of IPv4Network's or IPv6Network's depending on what we were - passed. - - """ - # First merge - to_merge = list(addresses) - subnets = {} - while to_merge: - net = to_merge.pop() - supernet = net.supernet() - existing = subnets.get(supernet) - if existing is None: - subnets[supernet] = net - elif existing != net: - # Merge consecutive subnets - del subnets[supernet] - to_merge.append(supernet) - # Then iterate over resulting networks, skipping subsumed subnets - last = None - for net in sorted(subnets.values()): - if last is not None: - # Since they are sorted, - # last.network_address <= net.network_address is a given. - if last.broadcast_address >= net.broadcast_address: - continue - yield net - last = net - - -def collapse_addresses(addresses): - """Collapse a list of IP objects. - - Example: - collapse_addresses([IPv4Network('192.0.2.0/25'), - IPv4Network('192.0.2.128/25')]) -> - [IPv4Network('192.0.2.0/24')] - - Args: - addresses: An iterator of IPv4Network or IPv6Network objects. - - Returns: - An iterator of the collapsed IPv(4|6)Network objects. - - Raises: - TypeError: If passed a list of mixed version objects. - - """ - addrs = [] - ips = [] - nets = [] - - # split IP addresses and networks - for ip in addresses: - if isinstance(ip, _BaseAddress): - if ips and ips[-1]._version != ip._version: - raise TypeError("%s and %s are not of the same version" % ( - ip, ips[-1])) - ips.append(ip) - elif ip._prefixlen == ip._max_prefixlen: - if ips and ips[-1]._version != ip._version: - raise TypeError("%s and %s are not of the same version" % ( - ip, ips[-1])) - try: - ips.append(ip.ip) - except AttributeError: - ips.append(ip.network_address) - else: - if nets and nets[-1]._version != ip._version: - raise TypeError("%s and %s are not of the same version" % ( - ip, nets[-1])) - nets.append(ip) - - # sort and dedup - ips = sorted(set(ips)) - - # find consecutive address ranges in the sorted sequence and summarize them - if ips: - for first, last in _find_address_range(ips): - addrs.extend(summarize_address_range(first, last)) - - return _collapse_addresses_internal(addrs + nets) - - -def get_mixed_type_key(obj): - """Return a key suitable for sorting between networks and addresses. - - Address and Network objects are not sortable by default; they're - fundamentally different so the expression - - IPv4Address('192.0.2.0') <= IPv4Network('192.0.2.0/24') - - doesn't make any sense. There are some times however, where you may wish - to have ipaddress sort these for you anyway. If you need to do this, you - can use this function as the key= argument to sorted(). - - Args: - obj: either a Network or Address object. - Returns: - appropriate key. - - """ - if isinstance(obj, _BaseNetwork): - return obj._get_networks_key() - elif isinstance(obj, _BaseAddress): - return obj._get_address_key() - return NotImplemented - - -class _IPAddressBase(_TotalOrderingMixin): - - """The mother class.""" - - __slots__ = () - - @property - def exploded(self): - """Return the longhand version of the IP address as a string.""" - return self._explode_shorthand_ip_string() - - @property - def compressed(self): - """Return the shorthand version of the IP address as a string.""" - return _compat_str(self) - - @property - def reverse_pointer(self): - """The name of the reverse DNS pointer for the IP address, e.g.: - >>> ipaddress.ip_address("127.0.0.1").reverse_pointer - '1.0.0.127.in-addr.arpa' - >>> ipaddress.ip_address("2001:db8::1").reverse_pointer - '1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa' - - """ - return self._reverse_pointer() - - @property - def version(self): - msg = '%200s has no version specified' % (type(self),) - raise NotImplementedError(msg) - - def _check_int_address(self, address): - if address < 0: - msg = "%d (< 0) is not permitted as an IPv%d address" - raise AddressValueError(msg % (address, self._version)) - if address > self._ALL_ONES: - msg = "%d (>= 2**%d) is not permitted as an IPv%d address" - raise AddressValueError(msg % (address, self._max_prefixlen, - self._version)) - - def _check_packed_address(self, address, expected_len): - address_len = len(address) - if address_len != expected_len: - msg = ( - '%r (len %d != %d) is not permitted as an IPv%d address. ' - 'Did you pass in a bytes (str in Python 2) instead of' - ' a unicode object?') - raise AddressValueError(msg % (address, address_len, - expected_len, self._version)) - - @classmethod - def _ip_int_from_prefix(cls, prefixlen): - """Turn the prefix length into a bitwise netmask - - Args: - prefixlen: An integer, the prefix length. - - Returns: - An integer. - - """ - return cls._ALL_ONES ^ (cls._ALL_ONES >> prefixlen) - - @classmethod - def _prefix_from_ip_int(cls, ip_int): - """Return prefix length from the bitwise netmask. - - Args: - ip_int: An integer, the netmask in expanded bitwise format - - Returns: - An integer, the prefix length. - - Raises: - ValueError: If the input intermingles zeroes & ones - """ - trailing_zeroes = _count_righthand_zero_bits(ip_int, - cls._max_prefixlen) - prefixlen = cls._max_prefixlen - trailing_zeroes - leading_ones = ip_int >> trailing_zeroes - all_ones = (1 << prefixlen) - 1 - if leading_ones != all_ones: - byteslen = cls._max_prefixlen // 8 - details = _compat_to_bytes(ip_int, byteslen, 'big') - msg = 'Netmask pattern %r mixes zeroes & ones' - raise ValueError(msg % details) - return prefixlen - - @classmethod - def _report_invalid_netmask(cls, netmask_str): - msg = '%r is not a valid netmask' % netmask_str - raise NetmaskValueError(msg) - - @classmethod - def _prefix_from_prefix_string(cls, prefixlen_str): - """Return prefix length from a numeric string - - Args: - prefixlen_str: The string to be converted - - Returns: - An integer, the prefix length. - - Raises: - NetmaskValueError: If the input is not a valid netmask - """ - # int allows a leading +/- as well as surrounding whitespace, - # so we ensure that isn't the case - if not _BaseV4._DECIMAL_DIGITS.issuperset(prefixlen_str): - cls._report_invalid_netmask(prefixlen_str) - try: - prefixlen = int(prefixlen_str) - except ValueError: - cls._report_invalid_netmask(prefixlen_str) - if not (0 <= prefixlen <= cls._max_prefixlen): - cls._report_invalid_netmask(prefixlen_str) - return prefixlen - - @classmethod - def _prefix_from_ip_string(cls, ip_str): - """Turn a netmask/hostmask string into a prefix length - - Args: - ip_str: The netmask/hostmask to be converted - - Returns: - An integer, the prefix length. - - Raises: - NetmaskValueError: If the input is not a valid netmask/hostmask - """ - # Parse the netmask/hostmask like an IP address. - try: - ip_int = cls._ip_int_from_string(ip_str) - except AddressValueError: - cls._report_invalid_netmask(ip_str) - - # Try matching a netmask (this would be /1*0*/ as a bitwise regexp). - # Note that the two ambiguous cases (all-ones and all-zeroes) are - # treated as netmasks. - try: - return cls._prefix_from_ip_int(ip_int) - except ValueError: - pass - - # Invert the bits, and try matching a /0+1+/ hostmask instead. - ip_int ^= cls._ALL_ONES - try: - return cls._prefix_from_ip_int(ip_int) - except ValueError: - cls._report_invalid_netmask(ip_str) - - def __reduce__(self): - return self.__class__, (_compat_str(self),) - - -class _BaseAddress(_IPAddressBase): - - """A generic IP object. - - This IP class contains the version independent methods which are - used by single IP addresses. - """ - - __slots__ = () - - def __int__(self): - return self._ip - - def __eq__(self, other): - try: - return (self._ip == other._ip and - self._version == other._version) - except AttributeError: - return NotImplemented - - def __lt__(self, other): - if not isinstance(other, _IPAddressBase): - return NotImplemented - if not isinstance(other, _BaseAddress): - raise TypeError('%s and %s are not of the same type' % ( - self, other)) - if self._version != other._version: - raise TypeError('%s and %s are not of the same version' % ( - self, other)) - if self._ip != other._ip: - return self._ip < other._ip - return False - - # Shorthand for Integer addition and subtraction. This is not - # meant to ever support addition/subtraction of addresses. - def __add__(self, other): - if not isinstance(other, _compat_int_types): - return NotImplemented - return self.__class__(int(self) + other) - - def __sub__(self, other): - if not isinstance(other, _compat_int_types): - return NotImplemented - return self.__class__(int(self) - other) - - def __repr__(self): - return '%s(%r)' % (self.__class__.__name__, _compat_str(self)) - - def __str__(self): - return _compat_str(self._string_from_ip_int(self._ip)) - - def __hash__(self): - return hash(hex(int(self._ip))) - - def _get_address_key(self): - return (self._version, self) - - def __reduce__(self): - return self.__class__, (self._ip,) - - -class _BaseNetwork(_IPAddressBase): - - """A generic IP network object. - - This IP class contains the version independent methods which are - used by networks. - - """ - def __init__(self, address): - self._cache = {} - - def __repr__(self): - return '%s(%r)' % (self.__class__.__name__, _compat_str(self)) - - def __str__(self): - return '%s/%d' % (self.network_address, self.prefixlen) - - def hosts(self): - """Generate Iterator over usable hosts in a network. - - This is like __iter__ except it doesn't return the network - or broadcast addresses. - - """ - network = int(self.network_address) - broadcast = int(self.broadcast_address) - for x in _compat_range(network + 1, broadcast): - yield self._address_class(x) - - def __iter__(self): - network = int(self.network_address) - broadcast = int(self.broadcast_address) - for x in _compat_range(network, broadcast + 1): - yield self._address_class(x) - - def __getitem__(self, n): - network = int(self.network_address) - broadcast = int(self.broadcast_address) - if n >= 0: - if network + n > broadcast: - raise IndexError('address out of range') - return self._address_class(network + n) - else: - n += 1 - if broadcast + n < network: - raise IndexError('address out of range') - return self._address_class(broadcast + n) - - def __lt__(self, other): - if not isinstance(other, _IPAddressBase): - return NotImplemented - if not isinstance(other, _BaseNetwork): - raise TypeError('%s and %s are not of the same type' % ( - self, other)) - if self._version != other._version: - raise TypeError('%s and %s are not of the same version' % ( - self, other)) - if self.network_address != other.network_address: - return self.network_address < other.network_address - if self.netmask != other.netmask: - return self.netmask < other.netmask - return False - - def __eq__(self, other): - try: - return (self._version == other._version and - self.network_address == other.network_address and - int(self.netmask) == int(other.netmask)) - except AttributeError: - return NotImplemented - - def __hash__(self): - return hash(int(self.network_address) ^ int(self.netmask)) - - def __contains__(self, other): - # always false if one is v4 and the other is v6. - if self._version != other._version: - return False - # dealing with another network. - if isinstance(other, _BaseNetwork): - return False - # dealing with another address - else: - # address - return (int(self.network_address) <= int(other._ip) <= - int(self.broadcast_address)) - - def overlaps(self, other): - """Tell if self is partly contained in other.""" - return self.network_address in other or ( - self.broadcast_address in other or ( - other.network_address in self or ( - other.broadcast_address in self))) - - @property - def broadcast_address(self): - x = self._cache.get('broadcast_address') - if x is None: - x = self._address_class(int(self.network_address) | - int(self.hostmask)) - self._cache['broadcast_address'] = x - return x - - @property - def hostmask(self): - x = self._cache.get('hostmask') - if x is None: - x = self._address_class(int(self.netmask) ^ self._ALL_ONES) - self._cache['hostmask'] = x - return x - - @property - def with_prefixlen(self): - return '%s/%d' % (self.network_address, self._prefixlen) - - @property - def with_netmask(self): - return '%s/%s' % (self.network_address, self.netmask) - - @property - def with_hostmask(self): - return '%s/%s' % (self.network_address, self.hostmask) - - @property - def num_addresses(self): - """Number of hosts in the current subnet.""" - return int(self.broadcast_address) - int(self.network_address) + 1 - - @property - def _address_class(self): - # Returning bare address objects (rather than interfaces) allows for - # more consistent behaviour across the network address, broadcast - # address and individual host addresses. - msg = '%200s has no associated address class' % (type(self),) - raise NotImplementedError(msg) - - @property - def prefixlen(self): - return self._prefixlen - - def address_exclude(self, other): - """Remove an address from a larger block. - - For example: - - addr1 = ip_network('192.0.2.0/28') - addr2 = ip_network('192.0.2.1/32') - list(addr1.address_exclude(addr2)) = - [IPv4Network('192.0.2.0/32'), IPv4Network('192.0.2.2/31'), - IPv4Network('192.0.2.4/30'), IPv4Network('192.0.2.8/29')] - - or IPv6: - - addr1 = ip_network('2001:db8::1/32') - addr2 = ip_network('2001:db8::1/128') - list(addr1.address_exclude(addr2)) = - [ip_network('2001:db8::1/128'), - ip_network('2001:db8::2/127'), - ip_network('2001:db8::4/126'), - ip_network('2001:db8::8/125'), - ... - ip_network('2001:db8:8000::/33')] - - Args: - other: An IPv4Network or IPv6Network object of the same type. - - Returns: - An iterator of the IPv(4|6)Network objects which is self - minus other. - - Raises: - TypeError: If self and other are of differing address - versions, or if other is not a network object. - ValueError: If other is not completely contained by self. - - """ - if not self._version == other._version: - raise TypeError("%s and %s are not of the same version" % ( - self, other)) - - if not isinstance(other, _BaseNetwork): - raise TypeError("%s is not a network object" % other) - - if not other.subnet_of(self): - raise ValueError('%s not contained in %s' % (other, self)) - if other == self: - return - - # Make sure we're comparing the network of other. - other = other.__class__('%s/%s' % (other.network_address, - other.prefixlen)) - - s1, s2 = self.subnets() - while s1 != other and s2 != other: - if other.subnet_of(s1): - yield s2 - s1, s2 = s1.subnets() - elif other.subnet_of(s2): - yield s1 - s1, s2 = s2.subnets() - else: - # If we got here, there's a bug somewhere. - raise AssertionError('Error performing exclusion: ' - 's1: %s s2: %s other: %s' % - (s1, s2, other)) - if s1 == other: - yield s2 - elif s2 == other: - yield s1 - else: - # If we got here, there's a bug somewhere. - raise AssertionError('Error performing exclusion: ' - 's1: %s s2: %s other: %s' % - (s1, s2, other)) - - def compare_networks(self, other): - """Compare two IP objects. - - This is only concerned about the comparison of the integer - representation of the network addresses. This means that the - host bits aren't considered at all in this method. If you want - to compare host bits, you can easily enough do a - 'HostA._ip < HostB._ip' - - Args: - other: An IP object. - - Returns: - If the IP versions of self and other are the same, returns: - - -1 if self < other: - eg: IPv4Network('192.0.2.0/25') < IPv4Network('192.0.2.128/25') - IPv6Network('2001:db8::1000/124') < - IPv6Network('2001:db8::2000/124') - 0 if self == other - eg: IPv4Network('192.0.2.0/24') == IPv4Network('192.0.2.0/24') - IPv6Network('2001:db8::1000/124') == - IPv6Network('2001:db8::1000/124') - 1 if self > other - eg: IPv4Network('192.0.2.128/25') > IPv4Network('192.0.2.0/25') - IPv6Network('2001:db8::2000/124') > - IPv6Network('2001:db8::1000/124') - - Raises: - TypeError if the IP versions are different. - - """ - # does this need to raise a ValueError? - if self._version != other._version: - raise TypeError('%s and %s are not of the same type' % ( - self, other)) - # self._version == other._version below here: - if self.network_address < other.network_address: - return -1 - if self.network_address > other.network_address: - return 1 - # self.network_address == other.network_address below here: - if self.netmask < other.netmask: - return -1 - if self.netmask > other.netmask: - return 1 - return 0 - - def _get_networks_key(self): - """Network-only key function. - - Returns an object that identifies this address' network and - netmask. This function is a suitable "key" argument for sorted() - and list.sort(). - - """ - return (self._version, self.network_address, self.netmask) - - def subnets(self, prefixlen_diff=1, new_prefix=None): - """The subnets which join to make the current subnet. - - In the case that self contains only one IP - (self._prefixlen == 32 for IPv4 or self._prefixlen == 128 - for IPv6), yield an iterator with just ourself. - - Args: - prefixlen_diff: An integer, the amount the prefix length - should be increased by. This should not be set if - new_prefix is also set. - new_prefix: The desired new prefix length. This must be a - larger number (smaller prefix) than the existing prefix. - This should not be set if prefixlen_diff is also set. - - Returns: - An iterator of IPv(4|6) objects. - - Raises: - ValueError: The prefixlen_diff is too small or too large. - OR - prefixlen_diff and new_prefix are both set or new_prefix - is a smaller number than the current prefix (smaller - number means a larger network) - - """ - if self._prefixlen == self._max_prefixlen: - yield self - return - - if new_prefix is not None: - if new_prefix < self._prefixlen: - raise ValueError('new prefix must be longer') - if prefixlen_diff != 1: - raise ValueError('cannot set prefixlen_diff and new_prefix') - prefixlen_diff = new_prefix - self._prefixlen - - if prefixlen_diff < 0: - raise ValueError('prefix length diff must be > 0') - new_prefixlen = self._prefixlen + prefixlen_diff - - if new_prefixlen > self._max_prefixlen: - raise ValueError( - 'prefix length diff %d is invalid for netblock %s' % ( - new_prefixlen, self)) - - start = int(self.network_address) - end = int(self.broadcast_address) + 1 - step = (int(self.hostmask) + 1) >> prefixlen_diff - for new_addr in _compat_range(start, end, step): - current = self.__class__((new_addr, new_prefixlen)) - yield current - - def supernet(self, prefixlen_diff=1, new_prefix=None): - """The supernet containing the current network. - - Args: - prefixlen_diff: An integer, the amount the prefix length of - the network should be decreased by. For example, given a - /24 network and a prefixlen_diff of 3, a supernet with a - /21 netmask is returned. - - Returns: - An IPv4 network object. - - Raises: - ValueError: If self.prefixlen - prefixlen_diff < 0. I.e., you have - a negative prefix length. - OR - If prefixlen_diff and new_prefix are both set or new_prefix is a - larger number than the current prefix (larger number means a - smaller network) - - """ - if self._prefixlen == 0: - return self - - if new_prefix is not None: - if new_prefix > self._prefixlen: - raise ValueError('new prefix must be shorter') - if prefixlen_diff != 1: - raise ValueError('cannot set prefixlen_diff and new_prefix') - prefixlen_diff = self._prefixlen - new_prefix - - new_prefixlen = self.prefixlen - prefixlen_diff - if new_prefixlen < 0: - raise ValueError( - 'current prefixlen is %d, cannot have a prefixlen_diff of %d' % - (self.prefixlen, prefixlen_diff)) - return self.__class__(( - int(self.network_address) & (int(self.netmask) << prefixlen_diff), - new_prefixlen)) - - @property - def is_multicast(self): - """Test if the address is reserved for multicast use. - - Returns: - A boolean, True if the address is a multicast address. - See RFC 2373 2.7 for details. - - """ - return (self.network_address.is_multicast and - self.broadcast_address.is_multicast) - - @staticmethod - def _is_subnet_of(a, b): - try: - # Always false if one is v4 and the other is v6. - if a._version != b._version: - raise TypeError("%s and %s are not of the same version" (a, b)) - return (b.network_address <= a.network_address and - b.broadcast_address >= a.broadcast_address) - except AttributeError: - raise TypeError("Unable to test subnet containment " - "between %s and %s" % (a, b)) - - def subnet_of(self, other): - """Return True if this network is a subnet of other.""" - return self._is_subnet_of(self, other) - - def supernet_of(self, other): - """Return True if this network is a supernet of other.""" - return self._is_subnet_of(other, self) - - @property - def is_reserved(self): - """Test if the address is otherwise IETF reserved. - - Returns: - A boolean, True if the address is within one of the - reserved IPv6 Network ranges. - - """ - return (self.network_address.is_reserved and - self.broadcast_address.is_reserved) - - @property - def is_link_local(self): - """Test if the address is reserved for link-local. - - Returns: - A boolean, True if the address is reserved per RFC 4291. - - """ - return (self.network_address.is_link_local and - self.broadcast_address.is_link_local) - - @property - def is_private(self): - """Test if this address is allocated for private networks. - - Returns: - A boolean, True if the address is reserved per - iana-ipv4-special-registry or iana-ipv6-special-registry. - - """ - return (self.network_address.is_private and - self.broadcast_address.is_private) - - @property - def is_global(self): - """Test if this address is allocated for public networks. - - Returns: - A boolean, True if the address is not reserved per - iana-ipv4-special-registry or iana-ipv6-special-registry. - - """ - return not self.is_private - - @property - def is_unspecified(self): - """Test if the address is unspecified. - - Returns: - A boolean, True if this is the unspecified address as defined in - RFC 2373 2.5.2. - - """ - return (self.network_address.is_unspecified and - self.broadcast_address.is_unspecified) - - @property - def is_loopback(self): - """Test if the address is a loopback address. - - Returns: - A boolean, True if the address is a loopback address as defined in - RFC 2373 2.5.3. - - """ - return (self.network_address.is_loopback and - self.broadcast_address.is_loopback) - - -class _BaseV4(object): - - """Base IPv4 object. - - The following methods are used by IPv4 objects in both single IP - addresses and networks. - - """ - - __slots__ = () - _version = 4 - # Equivalent to 255.255.255.255 or 32 bits of 1's. - _ALL_ONES = (2 ** IPV4LENGTH) - 1 - _DECIMAL_DIGITS = frozenset('0123456789') - - # the valid octets for host and netmasks. only useful for IPv4. - _valid_mask_octets = frozenset([255, 254, 252, 248, 240, 224, 192, 128, 0]) - - _max_prefixlen = IPV4LENGTH - # There are only a handful of valid v4 netmasks, so we cache them all - # when constructed (see _make_netmask()). - _netmask_cache = {} - - def _explode_shorthand_ip_string(self): - return _compat_str(self) - - @classmethod - def _make_netmask(cls, arg): - """Make a (netmask, prefix_len) tuple from the given argument. - - Argument can be: - - an integer (the prefix length) - - a string representing the prefix length (e.g. "24") - - a string representing the prefix netmask (e.g. "255.255.255.0") - """ - if arg not in cls._netmask_cache: - if isinstance(arg, _compat_int_types): - prefixlen = arg - else: - try: - # Check for a netmask in prefix length form - prefixlen = cls._prefix_from_prefix_string(arg) - except NetmaskValueError: - # Check for a netmask or hostmask in dotted-quad form. - # This may raise NetmaskValueError. - prefixlen = cls._prefix_from_ip_string(arg) - netmask = IPv4Address(cls._ip_int_from_prefix(prefixlen)) - cls._netmask_cache[arg] = netmask, prefixlen - return cls._netmask_cache[arg] - - @classmethod - def _ip_int_from_string(cls, ip_str): - """Turn the given IP string into an integer for comparison. - - Args: - ip_str: A string, the IP ip_str. - - Returns: - The IP ip_str as an integer. - - Raises: - AddressValueError: if ip_str isn't a valid IPv4 Address. - - """ - if not ip_str: - raise AddressValueError('Address cannot be empty') - - octets = ip_str.split('.') - if len(octets) != 4: - raise AddressValueError("Expected 4 octets in %r" % ip_str) - - try: - return _compat_int_from_byte_vals( - map(cls._parse_octet, octets), 'big') - except ValueError as exc: - raise AddressValueError("%s in %r" % (exc, ip_str)) - - @classmethod - def _parse_octet(cls, octet_str): - """Convert a decimal octet into an integer. - - Args: - octet_str: A string, the number to parse. - - Returns: - The octet as an integer. - - Raises: - ValueError: if the octet isn't strictly a decimal from [0..255]. - - """ - if not octet_str: - raise ValueError("Empty octet not permitted") - # Whitelist the characters, since int() allows a lot of bizarre stuff. - if not cls._DECIMAL_DIGITS.issuperset(octet_str): - msg = "Only decimal digits permitted in %r" - raise ValueError(msg % octet_str) - # We do the length check second, since the invalid character error - # is likely to be more informative for the user - if len(octet_str) > 3: - msg = "At most 3 characters permitted in %r" - raise ValueError(msg % octet_str) - # Convert to integer (we know digits are legal) - octet_int = int(octet_str, 10) - # Any octets that look like they *might* be written in octal, - # and which don't look exactly the same in both octal and - # decimal are rejected as ambiguous - if octet_int > 7 and octet_str[0] == '0': - msg = "Ambiguous (octal/decimal) value in %r not permitted" - raise ValueError(msg % octet_str) - if octet_int > 255: - raise ValueError("Octet %d (> 255) not permitted" % octet_int) - return octet_int - - @classmethod - def _string_from_ip_int(cls, ip_int): - """Turns a 32-bit integer into dotted decimal notation. - - Args: - ip_int: An integer, the IP address. - - Returns: - The IP address as a string in dotted decimal notation. - - """ - return '.'.join(_compat_str(struct.unpack(b'!B', b)[0] - if isinstance(b, bytes) - else b) - for b in _compat_to_bytes(ip_int, 4, 'big')) - - def _is_hostmask(self, ip_str): - """Test if the IP string is a hostmask (rather than a netmask). - - Args: - ip_str: A string, the potential hostmask. - - Returns: - A boolean, True if the IP string is a hostmask. - - """ - bits = ip_str.split('.') - try: - parts = [x for x in map(int, bits) if x in self._valid_mask_octets] - except ValueError: - return False - if len(parts) != len(bits): - return False - if parts[0] < parts[-1]: - return True - return False - - def _reverse_pointer(self): - """Return the reverse DNS pointer name for the IPv4 address. - - This implements the method described in RFC1035 3.5. - - """ - reverse_octets = _compat_str(self).split('.')[::-1] - return '.'.join(reverse_octets) + '.in-addr.arpa' - - @property - def max_prefixlen(self): - return self._max_prefixlen - - @property - def version(self): - return self._version - - -class IPv4Address(_BaseV4, _BaseAddress): - - """Represent and manipulate single IPv4 Addresses.""" - - __slots__ = ('_ip', '__weakref__') - - def __init__(self, address): - - """ - Args: - address: A string or integer representing the IP - - Additionally, an integer can be passed, so - IPv4Address('192.0.2.1') == IPv4Address(3221225985). - or, more generally - IPv4Address(int(IPv4Address('192.0.2.1'))) == - IPv4Address('192.0.2.1') - - Raises: - AddressValueError: If ipaddress isn't a valid IPv4 address. - - """ - # Efficient constructor from integer. - if isinstance(address, _compat_int_types): - self._check_int_address(address) - self._ip = address - return - - # Constructing from a packed address - if isinstance(address, bytes): - self._check_packed_address(address, 4) - bvs = _compat_bytes_to_byte_vals(address) - self._ip = _compat_int_from_byte_vals(bvs, 'big') - return - - # Assume input argument to be string or any object representation - # which converts into a formatted IP string. - addr_str = _compat_str(address) - if '/' in addr_str: - raise AddressValueError("Unexpected '/' in %r" % address) - self._ip = self._ip_int_from_string(addr_str) - - @property - def packed(self): - """The binary representation of this address.""" - return v4_int_to_packed(self._ip) - - @property - def is_reserved(self): - """Test if the address is otherwise IETF reserved. - - Returns: - A boolean, True if the address is within the - reserved IPv4 Network range. - - """ - return self in self._constants._reserved_network - - @property - def is_private(self): - """Test if this address is allocated for private networks. - - Returns: - A boolean, True if the address is reserved per - iana-ipv4-special-registry. - - """ - return any(self in net for net in self._constants._private_networks) - - @property - def is_global(self): - return ( - self not in self._constants._public_network and - not self.is_private) - - @property - def is_multicast(self): - """Test if the address is reserved for multicast use. - - Returns: - A boolean, True if the address is multicast. - See RFC 3171 for details. - - """ - return self in self._constants._multicast_network - - @property - def is_unspecified(self): - """Test if the address is unspecified. - - Returns: - A boolean, True if this is the unspecified address as defined in - RFC 5735 3. - - """ - return self == self._constants._unspecified_address - - @property - def is_loopback(self): - """Test if the address is a loopback address. - - Returns: - A boolean, True if the address is a loopback per RFC 3330. - - """ - return self in self._constants._loopback_network - - @property - def is_link_local(self): - """Test if the address is reserved for link-local. - - Returns: - A boolean, True if the address is link-local per RFC 3927. - - """ - return self in self._constants._linklocal_network - - -class IPv4Interface(IPv4Address): - - def __init__(self, address): - if isinstance(address, (bytes, _compat_int_types)): - IPv4Address.__init__(self, address) - self.network = IPv4Network(self._ip) - self._prefixlen = self._max_prefixlen - return - - if isinstance(address, tuple): - IPv4Address.__init__(self, address[0]) - if len(address) > 1: - self._prefixlen = int(address[1]) - else: - self._prefixlen = self._max_prefixlen - - self.network = IPv4Network(address, strict=False) - self.netmask = self.network.netmask - self.hostmask = self.network.hostmask - return - - addr = _split_optional_netmask(address) - IPv4Address.__init__(self, addr[0]) - - self.network = IPv4Network(address, strict=False) - self._prefixlen = self.network._prefixlen - - self.netmask = self.network.netmask - self.hostmask = self.network.hostmask - - def __str__(self): - return '%s/%d' % (self._string_from_ip_int(self._ip), - self.network.prefixlen) - - def __eq__(self, other): - address_equal = IPv4Address.__eq__(self, other) - if not address_equal or address_equal is NotImplemented: - return address_equal - try: - return self.network == other.network - except AttributeError: - # An interface with an associated network is NOT the - # same as an unassociated address. That's why the hash - # takes the extra info into account. - return False - - def __lt__(self, other): - address_less = IPv4Address.__lt__(self, other) - if address_less is NotImplemented: - return NotImplemented - try: - return (self.network < other.network or - self.network == other.network and address_less) - except AttributeError: - # We *do* allow addresses and interfaces to be sorted. The - # unassociated address is considered less than all interfaces. - return False - - def __hash__(self): - return self._ip ^ self._prefixlen ^ int(self.network.network_address) - - __reduce__ = _IPAddressBase.__reduce__ - - @property - def ip(self): - return IPv4Address(self._ip) - - @property - def with_prefixlen(self): - return '%s/%s' % (self._string_from_ip_int(self._ip), - self._prefixlen) - - @property - def with_netmask(self): - return '%s/%s' % (self._string_from_ip_int(self._ip), - self.netmask) - - @property - def with_hostmask(self): - return '%s/%s' % (self._string_from_ip_int(self._ip), - self.hostmask) - - -class IPv4Network(_BaseV4, _BaseNetwork): - - """This class represents and manipulates 32-bit IPv4 network + addresses.. - - Attributes: [examples for IPv4Network('192.0.2.0/27')] - .network_address: IPv4Address('192.0.2.0') - .hostmask: IPv4Address('0.0.0.31') - .broadcast_address: IPv4Address('192.0.2.32') - .netmask: IPv4Address('255.255.255.224') - .prefixlen: 27 - - """ - # Class to use when creating address objects - _address_class = IPv4Address - - def __init__(self, address, strict=True): - - """Instantiate a new IPv4 network object. - - Args: - address: A string or integer representing the IP [& network]. - '192.0.2.0/24' - '192.0.2.0/255.255.255.0' - '192.0.0.2/0.0.0.255' - are all functionally the same in IPv4. Similarly, - '192.0.2.1' - '192.0.2.1/255.255.255.255' - '192.0.2.1/32' - are also functionally equivalent. That is to say, failing to - provide a subnetmask will create an object with a mask of /32. - - If the mask (portion after the / in the argument) is given in - dotted quad form, it is treated as a netmask if it starts with a - non-zero field (e.g. /255.0.0.0 == /8) and as a hostmask if it - starts with a zero field (e.g. 0.255.255.255 == /8), with the - single exception of an all-zero mask which is treated as a - netmask == /0. If no mask is given, a default of /32 is used. - - Additionally, an integer can be passed, so - IPv4Network('192.0.2.1') == IPv4Network(3221225985) - or, more generally - IPv4Interface(int(IPv4Interface('192.0.2.1'))) == - IPv4Interface('192.0.2.1') - - Raises: - AddressValueError: If ipaddress isn't a valid IPv4 address. - NetmaskValueError: If the netmask isn't valid for - an IPv4 address. - ValueError: If strict is True and a network address is not - supplied. - - """ - _BaseNetwork.__init__(self, address) - - # Constructing from a packed address or integer - if isinstance(address, (_compat_int_types, bytes)): - self.network_address = IPv4Address(address) - self.netmask, self._prefixlen = self._make_netmask( - self._max_prefixlen) - # fixme: address/network test here. - return - - if isinstance(address, tuple): - if len(address) > 1: - arg = address[1] - else: - # We weren't given an address[1] - arg = self._max_prefixlen - self.network_address = IPv4Address(address[0]) - self.netmask, self._prefixlen = self._make_netmask(arg) - packed = int(self.network_address) - if packed & int(self.netmask) != packed: - if strict: - raise ValueError('%s has host bits set' % self) - else: - self.network_address = IPv4Address(packed & - int(self.netmask)) - return - - # Assume input argument to be string or any object representation - # which converts into a formatted IP prefix string. - addr = _split_optional_netmask(address) - self.network_address = IPv4Address(self._ip_int_from_string(addr[0])) - - if len(addr) == 2: - arg = addr[1] - else: - arg = self._max_prefixlen - self.netmask, self._prefixlen = self._make_netmask(arg) - - if strict: - if (IPv4Address(int(self.network_address) & int(self.netmask)) != - self.network_address): - raise ValueError('%s has host bits set' % self) - self.network_address = IPv4Address(int(self.network_address) & - int(self.netmask)) - - if self._prefixlen == (self._max_prefixlen - 1): - self.hosts = self.__iter__ - - @property - def is_global(self): - """Test if this address is allocated for public networks. - - Returns: - A boolean, True if the address is not reserved per - iana-ipv4-special-registry. - - """ - return (not (self.network_address in IPv4Network('100.64.0.0/10') and - self.broadcast_address in IPv4Network('100.64.0.0/10')) and - not self.is_private) - - -class _IPv4Constants(object): - - _linklocal_network = IPv4Network('169.254.0.0/16') - - _loopback_network = IPv4Network('127.0.0.0/8') - - _multicast_network = IPv4Network('224.0.0.0/4') - - _public_network = IPv4Network('100.64.0.0/10') - - _private_networks = [ - IPv4Network('0.0.0.0/8'), - IPv4Network('10.0.0.0/8'), - IPv4Network('127.0.0.0/8'), - IPv4Network('169.254.0.0/16'), - IPv4Network('172.16.0.0/12'), - IPv4Network('192.0.0.0/29'), - IPv4Network('192.0.0.170/31'), - IPv4Network('192.0.2.0/24'), - IPv4Network('192.168.0.0/16'), - IPv4Network('198.18.0.0/15'), - IPv4Network('198.51.100.0/24'), - IPv4Network('203.0.113.0/24'), - IPv4Network('240.0.0.0/4'), - IPv4Network('255.255.255.255/32'), - ] - - _reserved_network = IPv4Network('240.0.0.0/4') - - _unspecified_address = IPv4Address('0.0.0.0') - - -IPv4Address._constants = _IPv4Constants - - -class _BaseV6(object): - - """Base IPv6 object. - - The following methods are used by IPv6 objects in both single IP - addresses and networks. - - """ - - __slots__ = () - _version = 6 - _ALL_ONES = (2 ** IPV6LENGTH) - 1 - _HEXTET_COUNT = 8 - _HEX_DIGITS = frozenset('0123456789ABCDEFabcdef') - _max_prefixlen = IPV6LENGTH - - # There are only a bunch of valid v6 netmasks, so we cache them all - # when constructed (see _make_netmask()). - _netmask_cache = {} - - @classmethod - def _make_netmask(cls, arg): - """Make a (netmask, prefix_len) tuple from the given argument. - - Argument can be: - - an integer (the prefix length) - - a string representing the prefix length (e.g. "24") - - a string representing the prefix netmask (e.g. "255.255.255.0") - """ - if arg not in cls._netmask_cache: - if isinstance(arg, _compat_int_types): - prefixlen = arg - else: - prefixlen = cls._prefix_from_prefix_string(arg) - netmask = IPv6Address(cls._ip_int_from_prefix(prefixlen)) - cls._netmask_cache[arg] = netmask, prefixlen - return cls._netmask_cache[arg] - - @classmethod - def _ip_int_from_string(cls, ip_str): - """Turn an IPv6 ip_str into an integer. - - Args: - ip_str: A string, the IPv6 ip_str. - - Returns: - An int, the IPv6 address - - Raises: - AddressValueError: if ip_str isn't a valid IPv6 Address. - - """ - if not ip_str: - raise AddressValueError('Address cannot be empty') - - parts = ip_str.split(':') - - # An IPv6 address needs at least 2 colons (3 parts). - _min_parts = 3 - if len(parts) < _min_parts: - msg = "At least %d parts expected in %r" % (_min_parts, ip_str) - raise AddressValueError(msg) - - # If the address has an IPv4-style suffix, convert it to hexadecimal. - if '.' in parts[-1]: - try: - ipv4_int = IPv4Address(parts.pop())._ip - except AddressValueError as exc: - raise AddressValueError("%s in %r" % (exc, ip_str)) - parts.append('%x' % ((ipv4_int >> 16) & 0xFFFF)) - parts.append('%x' % (ipv4_int & 0xFFFF)) - - # An IPv6 address can't have more than 8 colons (9 parts). - # The extra colon comes from using the "::" notation for a single - # leading or trailing zero part. - _max_parts = cls._HEXTET_COUNT + 1 - if len(parts) > _max_parts: - msg = "At most %d colons permitted in %r" % ( - _max_parts - 1, ip_str) - raise AddressValueError(msg) - - # Disregarding the endpoints, find '::' with nothing in between. - # This indicates that a run of zeroes has been skipped. - skip_index = None - for i in _compat_range(1, len(parts) - 1): - if not parts[i]: - if skip_index is not None: - # Can't have more than one '::' - msg = "At most one '::' permitted in %r" % ip_str - raise AddressValueError(msg) - skip_index = i - - # parts_hi is the number of parts to copy from above/before the '::' - # parts_lo is the number of parts to copy from below/after the '::' - if skip_index is not None: - # If we found a '::', then check if it also covers the endpoints. - parts_hi = skip_index - parts_lo = len(parts) - skip_index - 1 - if not parts[0]: - parts_hi -= 1 - if parts_hi: - msg = "Leading ':' only permitted as part of '::' in %r" - raise AddressValueError(msg % ip_str) # ^: requires ^:: - if not parts[-1]: - parts_lo -= 1 - if parts_lo: - msg = "Trailing ':' only permitted as part of '::' in %r" - raise AddressValueError(msg % ip_str) # :$ requires ::$ - parts_skipped = cls._HEXTET_COUNT - (parts_hi + parts_lo) - if parts_skipped < 1: - msg = "Expected at most %d other parts with '::' in %r" - raise AddressValueError(msg % (cls._HEXTET_COUNT - 1, ip_str)) - else: - # Otherwise, allocate the entire address to parts_hi. The - # endpoints could still be empty, but _parse_hextet() will check - # for that. - if len(parts) != cls._HEXTET_COUNT: - msg = "Exactly %d parts expected without '::' in %r" - raise AddressValueError(msg % (cls._HEXTET_COUNT, ip_str)) - if not parts[0]: - msg = "Leading ':' only permitted as part of '::' in %r" - raise AddressValueError(msg % ip_str) # ^: requires ^:: - if not parts[-1]: - msg = "Trailing ':' only permitted as part of '::' in %r" - raise AddressValueError(msg % ip_str) # :$ requires ::$ - parts_hi = len(parts) - parts_lo = 0 - parts_skipped = 0 - - try: - # Now, parse the hextets into a 128-bit integer. - ip_int = 0 - for i in range(parts_hi): - ip_int <<= 16 - ip_int |= cls._parse_hextet(parts[i]) - ip_int <<= 16 * parts_skipped - for i in range(-parts_lo, 0): - ip_int <<= 16 - ip_int |= cls._parse_hextet(parts[i]) - return ip_int - except ValueError as exc: - raise AddressValueError("%s in %r" % (exc, ip_str)) - - @classmethod - def _parse_hextet(cls, hextet_str): - """Convert an IPv6 hextet string into an integer. - - Args: - hextet_str: A string, the number to parse. - - Returns: - The hextet as an integer. - - Raises: - ValueError: if the input isn't strictly a hex number from - [0..FFFF]. - - """ - # Whitelist the characters, since int() allows a lot of bizarre stuff. - if not cls._HEX_DIGITS.issuperset(hextet_str): - raise ValueError("Only hex digits permitted in %r" % hextet_str) - # We do the length check second, since the invalid character error - # is likely to be more informative for the user - if len(hextet_str) > 4: - msg = "At most 4 characters permitted in %r" - raise ValueError(msg % hextet_str) - # Length check means we can skip checking the integer value - return int(hextet_str, 16) - - @classmethod - def _compress_hextets(cls, hextets): - """Compresses a list of hextets. - - Compresses a list of strings, replacing the longest continuous - sequence of "0" in the list with "" and adding empty strings at - the beginning or at the end of the string such that subsequently - calling ":".join(hextets) will produce the compressed version of - the IPv6 address. - - Args: - hextets: A list of strings, the hextets to compress. - - Returns: - A list of strings. - - """ - best_doublecolon_start = -1 - best_doublecolon_len = 0 - doublecolon_start = -1 - doublecolon_len = 0 - for index, hextet in enumerate(hextets): - if hextet == '0': - doublecolon_len += 1 - if doublecolon_start == -1: - # Start of a sequence of zeros. - doublecolon_start = index - if doublecolon_len > best_doublecolon_len: - # This is the longest sequence of zeros so far. - best_doublecolon_len = doublecolon_len - best_doublecolon_start = doublecolon_start - else: - doublecolon_len = 0 - doublecolon_start = -1 - - if best_doublecolon_len > 1: - best_doublecolon_end = (best_doublecolon_start + - best_doublecolon_len) - # For zeros at the end of the address. - if best_doublecolon_end == len(hextets): - hextets += [''] - hextets[best_doublecolon_start:best_doublecolon_end] = [''] - # For zeros at the beginning of the address. - if best_doublecolon_start == 0: - hextets = [''] + hextets - - return hextets - - @classmethod - def _string_from_ip_int(cls, ip_int=None): - """Turns a 128-bit integer into hexadecimal notation. - - Args: - ip_int: An integer, the IP address. - - Returns: - A string, the hexadecimal representation of the address. - - Raises: - ValueError: The address is bigger than 128 bits of all ones. - - """ - if ip_int is None: - ip_int = int(cls._ip) - - if ip_int > cls._ALL_ONES: - raise ValueError('IPv6 address is too large') - - hex_str = '%032x' % ip_int - hextets = ['%x' % int(hex_str[x:x + 4], 16) for x in range(0, 32, 4)] - - hextets = cls._compress_hextets(hextets) - return ':'.join(hextets) - - def _explode_shorthand_ip_string(self): - """Expand a shortened IPv6 address. - - Args: - ip_str: A string, the IPv6 address. - - Returns: - A string, the expanded IPv6 address. - - """ - if isinstance(self, IPv6Network): - ip_str = _compat_str(self.network_address) - elif isinstance(self, IPv6Interface): - ip_str = _compat_str(self.ip) - else: - ip_str = _compat_str(self) - - ip_int = self._ip_int_from_string(ip_str) - hex_str = '%032x' % ip_int - parts = [hex_str[x:x + 4] for x in range(0, 32, 4)] - if isinstance(self, (_BaseNetwork, IPv6Interface)): - return '%s/%d' % (':'.join(parts), self._prefixlen) - return ':'.join(parts) - - def _reverse_pointer(self): - """Return the reverse DNS pointer name for the IPv6 address. - - This implements the method described in RFC3596 2.5. - - """ - reverse_chars = self.exploded[::-1].replace(':', '') - return '.'.join(reverse_chars) + '.ip6.arpa' - - @property - def max_prefixlen(self): - return self._max_prefixlen - - @property - def version(self): - return self._version - - -class IPv6Address(_BaseV6, _BaseAddress): - - """Represent and manipulate single IPv6 Addresses.""" - - __slots__ = ('_ip', '__weakref__') - - def __init__(self, address): - """Instantiate a new IPv6 address object. - - Args: - address: A string or integer representing the IP - - Additionally, an integer can be passed, so - IPv6Address('2001:db8::') == - IPv6Address(42540766411282592856903984951653826560) - or, more generally - IPv6Address(int(IPv6Address('2001:db8::'))) == - IPv6Address('2001:db8::') - - Raises: - AddressValueError: If address isn't a valid IPv6 address. - - """ - # Efficient constructor from integer. - if isinstance(address, _compat_int_types): - self._check_int_address(address) - self._ip = address - return - - # Constructing from a packed address - if isinstance(address, bytes): - self._check_packed_address(address, 16) - bvs = _compat_bytes_to_byte_vals(address) - self._ip = _compat_int_from_byte_vals(bvs, 'big') - return - - # Assume input argument to be string or any object representation - # which converts into a formatted IP string. - addr_str = _compat_str(address) - if '/' in addr_str: - raise AddressValueError("Unexpected '/' in %r" % address) - self._ip = self._ip_int_from_string(addr_str) - - @property - def packed(self): - """The binary representation of this address.""" - return v6_int_to_packed(self._ip) - - @property - def is_multicast(self): - """Test if the address is reserved for multicast use. - - Returns: - A boolean, True if the address is a multicast address. - See RFC 2373 2.7 for details. - - """ - return self in self._constants._multicast_network - - @property - def is_reserved(self): - """Test if the address is otherwise IETF reserved. - - Returns: - A boolean, True if the address is within one of the - reserved IPv6 Network ranges. - - """ - return any(self in x for x in self._constants._reserved_networks) - - @property - def is_link_local(self): - """Test if the address is reserved for link-local. - - Returns: - A boolean, True if the address is reserved per RFC 4291. - - """ - return self in self._constants._linklocal_network - - @property - def is_site_local(self): - """Test if the address is reserved for site-local. - - Note that the site-local address space has been deprecated by RFC 3879. - Use is_private to test if this address is in the space of unique local - addresses as defined by RFC 4193. - - Returns: - A boolean, True if the address is reserved per RFC 3513 2.5.6. - - """ - return self in self._constants._sitelocal_network - - @property - def is_private(self): - """Test if this address is allocated for private networks. - - Returns: - A boolean, True if the address is reserved per - iana-ipv6-special-registry. - - """ - return any(self in net for net in self._constants._private_networks) - - @property - def is_global(self): - """Test if this address is allocated for public networks. - - Returns: - A boolean, true if the address is not reserved per - iana-ipv6-special-registry. - - """ - return not self.is_private - - @property - def is_unspecified(self): - """Test if the address is unspecified. - - Returns: - A boolean, True if this is the unspecified address as defined in - RFC 2373 2.5.2. - - """ - return self._ip == 0 - - @property - def is_loopback(self): - """Test if the address is a loopback address. - - Returns: - A boolean, True if the address is a loopback address as defined in - RFC 2373 2.5.3. - - """ - return self._ip == 1 - - @property - def ipv4_mapped(self): - """Return the IPv4 mapped address. - - Returns: - If the IPv6 address is a v4 mapped address, return the - IPv4 mapped address. Return None otherwise. - - """ - if (self._ip >> 32) != 0xFFFF: - return None - return IPv4Address(self._ip & 0xFFFFFFFF) - - @property - def teredo(self): - """Tuple of embedded teredo IPs. - - Returns: - Tuple of the (server, client) IPs or None if the address - doesn't appear to be a teredo address (doesn't start with - 2001::/32) - - """ - if (self._ip >> 96) != 0x20010000: - return None - return (IPv4Address((self._ip >> 64) & 0xFFFFFFFF), - IPv4Address(~self._ip & 0xFFFFFFFF)) - - @property - def sixtofour(self): - """Return the IPv4 6to4 embedded address. - - Returns: - The IPv4 6to4-embedded address if present or None if the - address doesn't appear to contain a 6to4 embedded address. - - """ - if (self._ip >> 112) != 0x2002: - return None - return IPv4Address((self._ip >> 80) & 0xFFFFFFFF) - - -class IPv6Interface(IPv6Address): - - def __init__(self, address): - if isinstance(address, (bytes, _compat_int_types)): - IPv6Address.__init__(self, address) - self.network = IPv6Network(self._ip) - self._prefixlen = self._max_prefixlen - return - if isinstance(address, tuple): - IPv6Address.__init__(self, address[0]) - if len(address) > 1: - self._prefixlen = int(address[1]) - else: - self._prefixlen = self._max_prefixlen - self.network = IPv6Network(address, strict=False) - self.netmask = self.network.netmask - self.hostmask = self.network.hostmask - return - - addr = _split_optional_netmask(address) - IPv6Address.__init__(self, addr[0]) - self.network = IPv6Network(address, strict=False) - self.netmask = self.network.netmask - self._prefixlen = self.network._prefixlen - self.hostmask = self.network.hostmask - - def __str__(self): - return '%s/%d' % (self._string_from_ip_int(self._ip), - self.network.prefixlen) - - def __eq__(self, other): - address_equal = IPv6Address.__eq__(self, other) - if not address_equal or address_equal is NotImplemented: - return address_equal - try: - return self.network == other.network - except AttributeError: - # An interface with an associated network is NOT the - # same as an unassociated address. That's why the hash - # takes the extra info into account. - return False - - def __lt__(self, other): - address_less = IPv6Address.__lt__(self, other) - if address_less is NotImplemented: - return NotImplemented - try: - return (self.network < other.network or - self.network == other.network and address_less) - except AttributeError: - # We *do* allow addresses and interfaces to be sorted. The - # unassociated address is considered less than all interfaces. - return False - - def __hash__(self): - return self._ip ^ self._prefixlen ^ int(self.network.network_address) - - __reduce__ = _IPAddressBase.__reduce__ - - @property - def ip(self): - return IPv6Address(self._ip) - - @property - def with_prefixlen(self): - return '%s/%s' % (self._string_from_ip_int(self._ip), - self._prefixlen) - - @property - def with_netmask(self): - return '%s/%s' % (self._string_from_ip_int(self._ip), - self.netmask) - - @property - def with_hostmask(self): - return '%s/%s' % (self._string_from_ip_int(self._ip), - self.hostmask) - - @property - def is_unspecified(self): - return self._ip == 0 and self.network.is_unspecified - - @property - def is_loopback(self): - return self._ip == 1 and self.network.is_loopback - - -class IPv6Network(_BaseV6, _BaseNetwork): - - """This class represents and manipulates 128-bit IPv6 networks. - - Attributes: [examples for IPv6('2001:db8::1000/124')] - .network_address: IPv6Address('2001:db8::1000') - .hostmask: IPv6Address('::f') - .broadcast_address: IPv6Address('2001:db8::100f') - .netmask: IPv6Address('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0') - .prefixlen: 124 - - """ - - # Class to use when creating address objects - _address_class = IPv6Address - - def __init__(self, address, strict=True): - """Instantiate a new IPv6 Network object. - - Args: - address: A string or integer representing the IPv6 network or the - IP and prefix/netmask. - '2001:db8::/128' - '2001:db8:0000:0000:0000:0000:0000:0000/128' - '2001:db8::' - are all functionally the same in IPv6. That is to say, - failing to provide a subnetmask will create an object with - a mask of /128. - - Additionally, an integer can be passed, so - IPv6Network('2001:db8::') == - IPv6Network(42540766411282592856903984951653826560) - or, more generally - IPv6Network(int(IPv6Network('2001:db8::'))) == - IPv6Network('2001:db8::') - - strict: A boolean. If true, ensure that we have been passed - A true network address, eg, 2001:db8::1000/124 and not an - IP address on a network, eg, 2001:db8::1/124. - - Raises: - AddressValueError: If address isn't a valid IPv6 address. - NetmaskValueError: If the netmask isn't valid for - an IPv6 address. - ValueError: If strict was True and a network address was not - supplied. - - """ - _BaseNetwork.__init__(self, address) - - # Efficient constructor from integer or packed address - if isinstance(address, (bytes, _compat_int_types)): - self.network_address = IPv6Address(address) - self.netmask, self._prefixlen = self._make_netmask( - self._max_prefixlen) - return - - if isinstance(address, tuple): - if len(address) > 1: - arg = address[1] - else: - arg = self._max_prefixlen - self.netmask, self._prefixlen = self._make_netmask(arg) - self.network_address = IPv6Address(address[0]) - packed = int(self.network_address) - if packed & int(self.netmask) != packed: - if strict: - raise ValueError('%s has host bits set' % self) - else: - self.network_address = IPv6Address(packed & - int(self.netmask)) - return - - # Assume input argument to be string or any object representation - # which converts into a formatted IP prefix string. - addr = _split_optional_netmask(address) - - self.network_address = IPv6Address(self._ip_int_from_string(addr[0])) - - if len(addr) == 2: - arg = addr[1] - else: - arg = self._max_prefixlen - self.netmask, self._prefixlen = self._make_netmask(arg) - - if strict: - if (IPv6Address(int(self.network_address) & int(self.netmask)) != - self.network_address): - raise ValueError('%s has host bits set' % self) - self.network_address = IPv6Address(int(self.network_address) & - int(self.netmask)) - - if self._prefixlen == (self._max_prefixlen - 1): - self.hosts = self.__iter__ - - def hosts(self): - """Generate Iterator over usable hosts in a network. - - This is like __iter__ except it doesn't return the - Subnet-Router anycast address. - - """ - network = int(self.network_address) - broadcast = int(self.broadcast_address) - for x in _compat_range(network + 1, broadcast + 1): - yield self._address_class(x) - - @property - def is_site_local(self): - """Test if the address is reserved for site-local. - - Note that the site-local address space has been deprecated by RFC 3879. - Use is_private to test if this address is in the space of unique local - addresses as defined by RFC 4193. - - Returns: - A boolean, True if the address is reserved per RFC 3513 2.5.6. - - """ - return (self.network_address.is_site_local and - self.broadcast_address.is_site_local) - - -class _IPv6Constants(object): - - _linklocal_network = IPv6Network('fe80::/10') - - _multicast_network = IPv6Network('ff00::/8') - - _private_networks = [ - IPv6Network('::1/128'), - IPv6Network('::/128'), - IPv6Network('::ffff:0:0/96'), - IPv6Network('100::/64'), - IPv6Network('2001::/23'), - IPv6Network('2001:2::/48'), - IPv6Network('2001:db8::/32'), - IPv6Network('2001:10::/28'), - IPv6Network('fc00::/7'), - IPv6Network('fe80::/10'), - ] - - _reserved_networks = [ - IPv6Network('::/8'), IPv6Network('100::/8'), - IPv6Network('200::/7'), IPv6Network('400::/6'), - IPv6Network('800::/5'), IPv6Network('1000::/4'), - IPv6Network('4000::/3'), IPv6Network('6000::/3'), - IPv6Network('8000::/3'), IPv6Network('A000::/3'), - IPv6Network('C000::/3'), IPv6Network('E000::/4'), - IPv6Network('F000::/5'), IPv6Network('F800::/6'), - IPv6Network('FE00::/9'), - ] - - _sitelocal_network = IPv6Network('fec0::/10') - - -IPv6Address._constants = _IPv6Constants diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/__init__.py deleted file mode 100644 index a6f44a5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/__init__.py +++ /dev/null @@ -1,347 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -lockfile.py - Platform-independent advisory file locks. - -Requires Python 2.5 unless you apply 2.4.diff -Locking is done on a per-thread basis instead of a per-process basis. - -Usage: - ->>> lock = LockFile('somefile') ->>> try: -... lock.acquire() -... except AlreadyLocked: -... print 'somefile', 'is locked already.' -... except LockFailed: -... print 'somefile', 'can\\'t be locked.' -... else: -... print 'got lock' -got lock ->>> print lock.is_locked() -True ->>> lock.release() - ->>> lock = LockFile('somefile') ->>> print lock.is_locked() -False ->>> with lock: -... print lock.is_locked() -True ->>> print lock.is_locked() -False - ->>> lock = LockFile('somefile') ->>> # It is okay to lock twice from the same thread... ->>> with lock: -... lock.acquire() -... ->>> # Though no counter is kept, so you can't unlock multiple times... ->>> print lock.is_locked() -False - -Exceptions: - - Error - base class for other exceptions - LockError - base class for all locking exceptions - AlreadyLocked - Another thread or process already holds the lock - LockFailed - Lock failed for some other reason - UnlockError - base class for all unlocking exceptions - AlreadyUnlocked - File was not locked. - NotMyLock - File was locked but not by the current thread/process -""" - -from __future__ import absolute_import - -import functools -import os -import socket -import threading -import warnings - -# Work with PEP8 and non-PEP8 versions of threading module. -if not hasattr(threading, "current_thread"): - threading.current_thread = threading.currentThread -if not hasattr(threading.Thread, "get_name"): - threading.Thread.get_name = threading.Thread.getName - -__all__ = ['Error', 'LockError', 'LockTimeout', 'AlreadyLocked', - 'LockFailed', 'UnlockError', 'NotLocked', 'NotMyLock', - 'LinkFileLock', 'MkdirFileLock', 'SQLiteFileLock', - 'LockBase', 'locked'] - - -class Error(Exception): - """ - Base class for other exceptions. - - >>> try: - ... raise Error - ... except Exception: - ... pass - """ - pass - - -class LockError(Error): - """ - Base class for error arising from attempts to acquire the lock. - - >>> try: - ... raise LockError - ... except Error: - ... pass - """ - pass - - -class LockTimeout(LockError): - """Raised when lock creation fails within a user-defined period of time. - - >>> try: - ... raise LockTimeout - ... except LockError: - ... pass - """ - pass - - -class AlreadyLocked(LockError): - """Some other thread/process is locking the file. - - >>> try: - ... raise AlreadyLocked - ... except LockError: - ... pass - """ - pass - - -class LockFailed(LockError): - """Lock file creation failed for some other reason. - - >>> try: - ... raise LockFailed - ... except LockError: - ... pass - """ - pass - - -class UnlockError(Error): - """ - Base class for errors arising from attempts to release the lock. - - >>> try: - ... raise UnlockError - ... except Error: - ... pass - """ - pass - - -class NotLocked(UnlockError): - """Raised when an attempt is made to unlock an unlocked file. - - >>> try: - ... raise NotLocked - ... except UnlockError: - ... pass - """ - pass - - -class NotMyLock(UnlockError): - """Raised when an attempt is made to unlock a file someone else locked. - - >>> try: - ... raise NotMyLock - ... except UnlockError: - ... pass - """ - pass - - -class _SharedBase(object): - def __init__(self, path): - self.path = path - - def acquire(self, timeout=None): - """ - Acquire the lock. - - * If timeout is omitted (or None), wait forever trying to lock the - file. - - * If timeout > 0, try to acquire the lock for that many seconds. If - the lock period expires and the file is still locked, raise - LockTimeout. - - * If timeout <= 0, raise AlreadyLocked immediately if the file is - already locked. - """ - raise NotImplemented("implement in subclass") - - def release(self): - """ - Release the lock. - - If the file is not locked, raise NotLocked. - """ - raise NotImplemented("implement in subclass") - - def __enter__(self): - """ - Context manager support. - """ - self.acquire() - return self - - def __exit__(self, *_exc): - """ - Context manager support. - """ - self.release() - - def __repr__(self): - return "<%s: %r>" % (self.__class__.__name__, self.path) - - -class LockBase(_SharedBase): - """Base class for platform-specific lock classes.""" - def __init__(self, path, threaded=True, timeout=None): - """ - >>> lock = LockBase('somefile') - >>> lock = LockBase('somefile', threaded=False) - """ - super(LockBase, self).__init__(path) - self.lock_file = os.path.abspath(path) + ".lock" - self.hostname = socket.gethostname() - self.pid = os.getpid() - if threaded: - t = threading.current_thread() - # Thread objects in Python 2.4 and earlier do not have ident - # attrs. Worm around that. - ident = getattr(t, "ident", hash(t)) - self.tname = "-%x" % (ident & 0xffffffff) - else: - self.tname = "" - dirname = os.path.dirname(self.lock_file) - - # unique name is mostly about the current process, but must - # also contain the path -- otherwise, two adjacent locked - # files conflict (one file gets locked, creating lock-file and - # unique file, the other one gets locked, creating lock-file - # and overwriting the already existing lock-file, then one - # gets unlocked, deleting both lock-file and unique file, - # finally the last lock errors out upon releasing. - self.unique_name = os.path.join(dirname, - "%s%s.%s%s" % (self.hostname, - self.tname, - self.pid, - hash(self.path))) - self.timeout = timeout - - def is_locked(self): - """ - Tell whether or not the file is locked. - """ - raise NotImplemented("implement in subclass") - - def i_am_locking(self): - """ - Return True if this object is locking the file. - """ - raise NotImplemented("implement in subclass") - - def break_lock(self): - """ - Remove a lock. Useful if a locking thread failed to unlock. - """ - raise NotImplemented("implement in subclass") - - def __repr__(self): - return "<%s: %r -- %r>" % (self.__class__.__name__, self.unique_name, - self.path) - - -def _fl_helper(cls, mod, *args, **kwds): - warnings.warn("Import from %s module instead of lockfile package" % mod, - DeprecationWarning, stacklevel=2) - # This is a bit funky, but it's only for awhile. The way the unit tests - # are constructed this function winds up as an unbound method, so it - # actually takes three args, not two. We want to toss out self. - if not isinstance(args[0], str): - # We are testing, avoid the first arg - args = args[1:] - if len(args) == 1 and not kwds: - kwds["threaded"] = True - return cls(*args, **kwds) - - -def LinkFileLock(*args, **kwds): - """Factory function provided for backwards compatibility. - - Do not use in new code. Instead, import LinkLockFile from the - lockfile.linklockfile module. - """ - from . import linklockfile - return _fl_helper(linklockfile.LinkLockFile, "lockfile.linklockfile", - *args, **kwds) - - -def MkdirFileLock(*args, **kwds): - """Factory function provided for backwards compatibility. - - Do not use in new code. Instead, import MkdirLockFile from the - lockfile.mkdirlockfile module. - """ - from . import mkdirlockfile - return _fl_helper(mkdirlockfile.MkdirLockFile, "lockfile.mkdirlockfile", - *args, **kwds) - - -def SQLiteFileLock(*args, **kwds): - """Factory function provided for backwards compatibility. - - Do not use in new code. Instead, import SQLiteLockFile from the - lockfile.mkdirlockfile module. - """ - from . import sqlitelockfile - return _fl_helper(sqlitelockfile.SQLiteLockFile, "lockfile.sqlitelockfile", - *args, **kwds) - - -def locked(path, timeout=None): - """Decorator which enables locks for decorated function. - - Arguments: - - path: path for lockfile. - - timeout (optional): Timeout for acquiring lock. - - Usage: - @locked('/var/run/myname', timeout=0) - def myname(...): - ... - """ - def decor(func): - @functools.wraps(func) - def wrapper(*args, **kwargs): - lock = FileLock(path, timeout=timeout) - lock.acquire() - try: - return func(*args, **kwargs) - finally: - lock.release() - return wrapper - return decor - - -if hasattr(os, "link"): - from . import linklockfile as _llf - LockFile = _llf.LinkLockFile -else: - from . import mkdirlockfile as _mlf - LockFile = _mlf.MkdirLockFile - -FileLock = LockFile diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/linklockfile.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/linklockfile.py deleted file mode 100644 index 2ca9be0..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/linklockfile.py +++ /dev/null @@ -1,73 +0,0 @@ -from __future__ import absolute_import - -import time -import os - -from . import (LockBase, LockFailed, NotLocked, NotMyLock, LockTimeout, - AlreadyLocked) - - -class LinkLockFile(LockBase): - """Lock access to a file using atomic property of link(2). - - >>> lock = LinkLockFile('somefile') - >>> lock = LinkLockFile('somefile', threaded=False) - """ - - def acquire(self, timeout=None): - try: - open(self.unique_name, "wb").close() - except IOError: - raise LockFailed("failed to create %s" % self.unique_name) - - timeout = timeout if timeout is not None else self.timeout - end_time = time.time() - if timeout is not None and timeout > 0: - end_time += timeout - - while True: - # Try and create a hard link to it. - try: - os.link(self.unique_name, self.lock_file) - except OSError: - # Link creation failed. Maybe we've double-locked? - nlinks = os.stat(self.unique_name).st_nlink - if nlinks == 2: - # The original link plus the one I created == 2. We're - # good to go. - return - else: - # Otherwise the lock creation failed. - if timeout is not None and time.time() > end_time: - os.unlink(self.unique_name) - if timeout > 0: - raise LockTimeout("Timeout waiting to acquire" - " lock for %s" % - self.path) - else: - raise AlreadyLocked("%s is already locked" % - self.path) - time.sleep(timeout is not None and timeout / 10 or 0.1) - else: - # Link creation succeeded. We're good to go. - return - - def release(self): - if not self.is_locked(): - raise NotLocked("%s is not locked" % self.path) - elif not os.path.exists(self.unique_name): - raise NotMyLock("%s is locked, but not by me" % self.path) - os.unlink(self.unique_name) - os.unlink(self.lock_file) - - def is_locked(self): - return os.path.exists(self.lock_file) - - def i_am_locking(self): - return (self.is_locked() and - os.path.exists(self.unique_name) and - os.stat(self.unique_name).st_nlink == 2) - - def break_lock(self): - if os.path.exists(self.lock_file): - os.unlink(self.lock_file) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/mkdirlockfile.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/mkdirlockfile.py deleted file mode 100644 index 05a8c96..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/mkdirlockfile.py +++ /dev/null @@ -1,84 +0,0 @@ -from __future__ import absolute_import, division - -import time -import os -import sys -import errno - -from . import (LockBase, LockFailed, NotLocked, NotMyLock, LockTimeout, - AlreadyLocked) - - -class MkdirLockFile(LockBase): - """Lock file by creating a directory.""" - def __init__(self, path, threaded=True, timeout=None): - """ - >>> lock = MkdirLockFile('somefile') - >>> lock = MkdirLockFile('somefile', threaded=False) - """ - LockBase.__init__(self, path, threaded, timeout) - # Lock file itself is a directory. Place the unique file name into - # it. - self.unique_name = os.path.join(self.lock_file, - "%s.%s%s" % (self.hostname, - self.tname, - self.pid)) - - def acquire(self, timeout=None): - timeout = timeout if timeout is not None else self.timeout - end_time = time.time() - if timeout is not None and timeout > 0: - end_time += timeout - - if timeout is None: - wait = 0.1 - else: - wait = max(0, timeout / 10) - - while True: - try: - os.mkdir(self.lock_file) - except OSError: - err = sys.exc_info()[1] - if err.errno == errno.EEXIST: - # Already locked. - if os.path.exists(self.unique_name): - # Already locked by me. - return - if timeout is not None and time.time() > end_time: - if timeout > 0: - raise LockTimeout("Timeout waiting to acquire" - " lock for %s" % - self.path) - else: - # Someone else has the lock. - raise AlreadyLocked("%s is already locked" % - self.path) - time.sleep(wait) - else: - # Couldn't create the lock for some other reason - raise LockFailed("failed to create %s" % self.lock_file) - else: - open(self.unique_name, "wb").close() - return - - def release(self): - if not self.is_locked(): - raise NotLocked("%s is not locked" % self.path) - elif not os.path.exists(self.unique_name): - raise NotMyLock("%s is locked, but not by me" % self.path) - os.unlink(self.unique_name) - os.rmdir(self.lock_file) - - def is_locked(self): - return os.path.exists(self.lock_file) - - def i_am_locking(self): - return (self.is_locked() and - os.path.exists(self.unique_name)) - - def break_lock(self): - if os.path.exists(self.lock_file): - for name in os.listdir(self.lock_file): - os.unlink(os.path.join(self.lock_file, name)) - os.rmdir(self.lock_file) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/pidlockfile.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/pidlockfile.py deleted file mode 100644 index 069e85b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/pidlockfile.py +++ /dev/null @@ -1,190 +0,0 @@ -# -*- coding: utf-8 -*- - -# pidlockfile.py -# -# Copyright © 2008–2009 Ben Finney <ben+python@benfinney.id.au> -# -# This is free software: you may copy, modify, and/or distribute this work -# under the terms of the Python Software Foundation License, version 2 or -# later as published by the Python Software Foundation. -# No warranty expressed or implied. See the file LICENSE.PSF-2 for details. - -""" Lockfile behaviour implemented via Unix PID files. - """ - -from __future__ import absolute_import - -import errno -import os -import time - -from . import (LockBase, AlreadyLocked, LockFailed, NotLocked, NotMyLock, - LockTimeout) - - -class PIDLockFile(LockBase): - """ Lockfile implemented as a Unix PID file. - - The lock file is a normal file named by the attribute `path`. - A lock's PID file contains a single line of text, containing - the process ID (PID) of the process that acquired the lock. - - >>> lock = PIDLockFile('somefile') - >>> lock = PIDLockFile('somefile') - """ - - def __init__(self, path, threaded=False, timeout=None): - # pid lockfiles don't support threaded operation, so always force - # False as the threaded arg. - LockBase.__init__(self, path, False, timeout) - self.unique_name = self.path - - def read_pid(self): - """ Get the PID from the lock file. - """ - return read_pid_from_pidfile(self.path) - - def is_locked(self): - """ Test if the lock is currently held. - - The lock is held if the PID file for this lock exists. - - """ - return os.path.exists(self.path) - - def i_am_locking(self): - """ Test if the lock is held by the current process. - - Returns ``True`` if the current process ID matches the - number stored in the PID file. - """ - return self.is_locked() and os.getpid() == self.read_pid() - - def acquire(self, timeout=None): - """ Acquire the lock. - - Creates the PID file for this lock, or raises an error if - the lock could not be acquired. - """ - - timeout = timeout if timeout is not None else self.timeout - end_time = time.time() - if timeout is not None and timeout > 0: - end_time += timeout - - while True: - try: - write_pid_to_pidfile(self.path) - except OSError as exc: - if exc.errno == errno.EEXIST: - # The lock creation failed. Maybe sleep a bit. - if time.time() > end_time: - if timeout is not None and timeout > 0: - raise LockTimeout("Timeout waiting to acquire" - " lock for %s" % - self.path) - else: - raise AlreadyLocked("%s is already locked" % - self.path) - time.sleep(timeout is not None and timeout / 10 or 0.1) - else: - raise LockFailed("failed to create %s" % self.path) - else: - return - - def release(self): - """ Release the lock. - - Removes the PID file to release the lock, or raises an - error if the current process does not hold the lock. - - """ - if not self.is_locked(): - raise NotLocked("%s is not locked" % self.path) - if not self.i_am_locking(): - raise NotMyLock("%s is locked, but not by me" % self.path) - remove_existing_pidfile(self.path) - - def break_lock(self): - """ Break an existing lock. - - Removes the PID file if it already exists, otherwise does - nothing. - - """ - remove_existing_pidfile(self.path) - - -def read_pid_from_pidfile(pidfile_path): - """ Read the PID recorded in the named PID file. - - Read and return the numeric PID recorded as text in the named - PID file. If the PID file cannot be read, or if the content is - not a valid PID, return ``None``. - - """ - pid = None - try: - pidfile = open(pidfile_path, 'r') - except IOError: - pass - else: - # According to the FHS 2.3 section on PID files in /var/run: - # - # The file must consist of the process identifier in - # ASCII-encoded decimal, followed by a newline character. - # - # Programs that read PID files should be somewhat flexible - # in what they accept; i.e., they should ignore extra - # whitespace, leading zeroes, absence of the trailing - # newline, or additional lines in the PID file. - - line = pidfile.readline().strip() - try: - pid = int(line) - except ValueError: - pass - pidfile.close() - - return pid - - -def write_pid_to_pidfile(pidfile_path): - """ Write the PID in the named PID file. - - Get the numeric process ID (“PID”) of the current process - and write it to the named file as a line of text. - - """ - open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) - open_mode = 0o644 - pidfile_fd = os.open(pidfile_path, open_flags, open_mode) - pidfile = os.fdopen(pidfile_fd, 'w') - - # According to the FHS 2.3 section on PID files in /var/run: - # - # The file must consist of the process identifier in - # ASCII-encoded decimal, followed by a newline character. For - # example, if crond was process number 25, /var/run/crond.pid - # would contain three characters: two, five, and newline. - - pid = os.getpid() - pidfile.write("%s\n" % pid) - pidfile.close() - - -def remove_existing_pidfile(pidfile_path): - """ Remove the named PID file if it exists. - - Removing a PID file that doesn't already exist puts us in the - desired state, so we ignore the condition if the file does not - exist. - - """ - try: - os.remove(pidfile_path) - except OSError as exc: - if exc.errno == errno.ENOENT: - pass - else: - raise diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/sqlitelockfile.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/sqlitelockfile.py deleted file mode 100644 index f997e24..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/sqlitelockfile.py +++ /dev/null @@ -1,156 +0,0 @@ -from __future__ import absolute_import, division - -import time -import os - -try: - unicode -except NameError: - unicode = str - -from . import LockBase, NotLocked, NotMyLock, LockTimeout, AlreadyLocked - - -class SQLiteLockFile(LockBase): - "Demonstrate SQL-based locking." - - testdb = None - - def __init__(self, path, threaded=True, timeout=None): - """ - >>> lock = SQLiteLockFile('somefile') - >>> lock = SQLiteLockFile('somefile', threaded=False) - """ - LockBase.__init__(self, path, threaded, timeout) - self.lock_file = unicode(self.lock_file) - self.unique_name = unicode(self.unique_name) - - if SQLiteLockFile.testdb is None: - import tempfile - _fd, testdb = tempfile.mkstemp() - os.close(_fd) - os.unlink(testdb) - del _fd, tempfile - SQLiteLockFile.testdb = testdb - - import sqlite3 - self.connection = sqlite3.connect(SQLiteLockFile.testdb) - - c = self.connection.cursor() - try: - c.execute("create table locks" - "(" - " lock_file varchar(32)," - " unique_name varchar(32)" - ")") - except sqlite3.OperationalError: - pass - else: - self.connection.commit() - import atexit - atexit.register(os.unlink, SQLiteLockFile.testdb) - - def acquire(self, timeout=None): - timeout = timeout if timeout is not None else self.timeout - end_time = time.time() - if timeout is not None and timeout > 0: - end_time += timeout - - if timeout is None: - wait = 0.1 - elif timeout <= 0: - wait = 0 - else: - wait = timeout / 10 - - cursor = self.connection.cursor() - - while True: - if not self.is_locked(): - # Not locked. Try to lock it. - cursor.execute("insert into locks" - " (lock_file, unique_name)" - " values" - " (?, ?)", - (self.lock_file, self.unique_name)) - self.connection.commit() - - # Check to see if we are the only lock holder. - cursor.execute("select * from locks" - " where unique_name = ?", - (self.unique_name,)) - rows = cursor.fetchall() - if len(rows) > 1: - # Nope. Someone else got there. Remove our lock. - cursor.execute("delete from locks" - " where unique_name = ?", - (self.unique_name,)) - self.connection.commit() - else: - # Yup. We're done, so go home. - return - else: - # Check to see if we are the only lock holder. - cursor.execute("select * from locks" - " where unique_name = ?", - (self.unique_name,)) - rows = cursor.fetchall() - if len(rows) == 1: - # We're the locker, so go home. - return - - # Maybe we should wait a bit longer. - if timeout is not None and time.time() > end_time: - if timeout > 0: - # No more waiting. - raise LockTimeout("Timeout waiting to acquire" - " lock for %s" % - self.path) - else: - # Someone else has the lock and we are impatient.. - raise AlreadyLocked("%s is already locked" % self.path) - - # Well, okay. We'll give it a bit longer. - time.sleep(wait) - - def release(self): - if not self.is_locked(): - raise NotLocked("%s is not locked" % self.path) - if not self.i_am_locking(): - raise NotMyLock("%s is locked, but not by me (by %s)" % - (self.unique_name, self._who_is_locking())) - cursor = self.connection.cursor() - cursor.execute("delete from locks" - " where unique_name = ?", - (self.unique_name,)) - self.connection.commit() - - def _who_is_locking(self): - cursor = self.connection.cursor() - cursor.execute("select unique_name from locks" - " where lock_file = ?", - (self.lock_file,)) - return cursor.fetchone()[0] - - def is_locked(self): - cursor = self.connection.cursor() - cursor.execute("select * from locks" - " where lock_file = ?", - (self.lock_file,)) - rows = cursor.fetchall() - return not not rows - - def i_am_locking(self): - cursor = self.connection.cursor() - cursor.execute("select * from locks" - " where lock_file = ?" - " and unique_name = ?", - (self.lock_file, self.unique_name)) - return not not cursor.fetchall() - - def break_lock(self): - cursor = self.connection.cursor() - cursor.execute("delete from locks" - " where lock_file = ?", - (self.lock_file,)) - self.connection.commit() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/symlinklockfile.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/symlinklockfile.py deleted file mode 100644 index 23b41f5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/symlinklockfile.py +++ /dev/null @@ -1,70 +0,0 @@ -from __future__ import absolute_import - -import os -import time - -from . import (LockBase, NotLocked, NotMyLock, LockTimeout, - AlreadyLocked) - - -class SymlinkLockFile(LockBase): - """Lock access to a file using symlink(2).""" - - def __init__(self, path, threaded=True, timeout=None): - # super(SymlinkLockFile).__init(...) - LockBase.__init__(self, path, threaded, timeout) - # split it back! - self.unique_name = os.path.split(self.unique_name)[1] - - def acquire(self, timeout=None): - # Hopefully unnecessary for symlink. - # try: - # open(self.unique_name, "wb").close() - # except IOError: - # raise LockFailed("failed to create %s" % self.unique_name) - timeout = timeout if timeout is not None else self.timeout - end_time = time.time() - if timeout is not None and timeout > 0: - end_time += timeout - - while True: - # Try and create a symbolic link to it. - try: - os.symlink(self.unique_name, self.lock_file) - except OSError: - # Link creation failed. Maybe we've double-locked? - if self.i_am_locking(): - # Linked to out unique name. Proceed. - return - else: - # Otherwise the lock creation failed. - if timeout is not None and time.time() > end_time: - if timeout > 0: - raise LockTimeout("Timeout waiting to acquire" - " lock for %s" % - self.path) - else: - raise AlreadyLocked("%s is already locked" % - self.path) - time.sleep(timeout / 10 if timeout is not None else 0.1) - else: - # Link creation succeeded. We're good to go. - return - - def release(self): - if not self.is_locked(): - raise NotLocked("%s is not locked" % self.path) - elif not self.i_am_locking(): - raise NotMyLock("%s is locked, but not by me" % self.path) - os.unlink(self.lock_file) - - def is_locked(self): - return os.path.islink(self.lock_file) - - def i_am_locking(self): - return (os.path.islink(self.lock_file) - and os.readlink(self.lock_file) == self.unique_name) - - def break_lock(self): - if os.path.islink(self.lock_file): # exists && link - os.unlink(self.lock_file) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/__init__.py deleted file mode 100644 index 2afca5a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/__init__.py +++ /dev/null @@ -1,66 +0,0 @@ -# coding: utf-8 -from pip._vendor.msgpack._version import version -from pip._vendor.msgpack.exceptions import * - -from collections import namedtuple - - -class ExtType(namedtuple('ExtType', 'code data')): - """ExtType represents ext type in msgpack.""" - def __new__(cls, code, data): - if not isinstance(code, int): - raise TypeError("code must be int") - if not isinstance(data, bytes): - raise TypeError("data must be bytes") - if not 0 <= code <= 127: - raise ValueError("code must be 0~127") - return super(ExtType, cls).__new__(cls, code, data) - - -import os -if os.environ.get('MSGPACK_PUREPYTHON'): - from pip._vendor.msgpack.fallback import Packer, unpackb, Unpacker -else: - try: - from pip._vendor.msgpack._packer import Packer - from pip._vendor.msgpack._unpacker import unpackb, Unpacker - except ImportError: - from pip._vendor.msgpack.fallback import Packer, unpackb, Unpacker - - -def pack(o, stream, **kwargs): - """ - Pack object `o` and write it to `stream` - - See :class:`Packer` for options. - """ - packer = Packer(**kwargs) - stream.write(packer.pack(o)) - - -def packb(o, **kwargs): - """ - Pack object `o` and return packed bytes - - See :class:`Packer` for options. - """ - return Packer(**kwargs).pack(o) - - -def unpack(stream, **kwargs): - """ - Unpack an object from `stream`. - - Raises `ExtraData` when `stream` contains extra bytes. - See :class:`Unpacker` for options. - """ - data = stream.read() - return unpackb(data, **kwargs) - - -# alias for compatibility to simplejson/marshal/pickle. -load = unpack -loads = unpackb - -dump = pack -dumps = packb diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/_version.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/_version.py deleted file mode 100644 index d28f0de..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/_version.py +++ /dev/null @@ -1 +0,0 @@ -version = (0, 5, 6) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/exceptions.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/exceptions.py deleted file mode 100644 index 9766881..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/exceptions.py +++ /dev/null @@ -1,41 +0,0 @@ -class UnpackException(Exception): - """Deprecated. Use Exception instead to catch all exception during unpacking.""" - - -class BufferFull(UnpackException): - pass - - -class OutOfData(UnpackException): - pass - - -class UnpackValueError(UnpackException, ValueError): - """Deprecated. Use ValueError instead.""" - - -class ExtraData(UnpackValueError): - def __init__(self, unpacked, extra): - self.unpacked = unpacked - self.extra = extra - - def __str__(self): - return "unpack(b) received extra data." - - -class PackException(Exception): - """Deprecated. Use Exception instead to catch all exception during packing.""" - - -class PackValueError(PackException, ValueError): - """PackValueError is raised when type of input data is supported but it's value is unsupported. - - Deprecated. Use ValueError instead. - """ - - -class PackOverflowError(PackValueError, OverflowError): - """PackOverflowError is raised when integer value is out of range of msgpack support [-2**31, 2**32). - - Deprecated. Use ValueError instead. - """ diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/fallback.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/fallback.py deleted file mode 100644 index 9418421..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/fallback.py +++ /dev/null @@ -1,977 +0,0 @@ -"""Fallback pure Python implementation of msgpack""" - -import sys -import struct -import warnings - -if sys.version_info[0] == 3: - PY3 = True - int_types = int - Unicode = str - xrange = range - def dict_iteritems(d): - return d.items() -else: - PY3 = False - int_types = (int, long) - Unicode = unicode - def dict_iteritems(d): - return d.iteritems() - - -if hasattr(sys, 'pypy_version_info'): - # cStringIO is slow on PyPy, StringIO is faster. However: PyPy's own - # StringBuilder is fastest. - from __pypy__ import newlist_hint - try: - from __pypy__.builders import BytesBuilder as StringBuilder - except ImportError: - from __pypy__.builders import StringBuilder - USING_STRINGBUILDER = True - class StringIO(object): - def __init__(self, s=b''): - if s: - self.builder = StringBuilder(len(s)) - self.builder.append(s) - else: - self.builder = StringBuilder() - def write(self, s): - if isinstance(s, memoryview): - s = s.tobytes() - elif isinstance(s, bytearray): - s = bytes(s) - self.builder.append(s) - def getvalue(self): - return self.builder.build() -else: - USING_STRINGBUILDER = False - from io import BytesIO as StringIO - newlist_hint = lambda size: [] - - -from pip._vendor.msgpack.exceptions import ( - BufferFull, - OutOfData, - UnpackValueError, - PackValueError, - PackOverflowError, - ExtraData) - -from pip._vendor.msgpack import ExtType - - -EX_SKIP = 0 -EX_CONSTRUCT = 1 -EX_READ_ARRAY_HEADER = 2 -EX_READ_MAP_HEADER = 3 - -TYPE_IMMEDIATE = 0 -TYPE_ARRAY = 1 -TYPE_MAP = 2 -TYPE_RAW = 3 -TYPE_BIN = 4 -TYPE_EXT = 5 - -DEFAULT_RECURSE_LIMIT = 511 - - -def _check_type_strict(obj, t, type=type, tuple=tuple): - if type(t) is tuple: - return type(obj) in t - else: - return type(obj) is t - - -def _get_data_from_buffer(obj): - try: - view = memoryview(obj) - except TypeError: - # try to use legacy buffer protocol if 2.7, otherwise re-raise - if not PY3: - view = memoryview(buffer(obj)) - warnings.warn("using old buffer interface to unpack %s; " - "this leads to unpacking errors if slicing is used and " - "will be removed in a future version" % type(obj), - RuntimeWarning) - else: - raise - if view.itemsize != 1: - raise ValueError("cannot unpack from multi-byte object") - return view - - -def unpack(stream, **kwargs): - warnings.warn( - "Direct calling implementation's unpack() is deprecated, Use msgpack.unpack() or unpackb() instead.", - PendingDeprecationWarning) - data = stream.read() - return unpackb(data, **kwargs) - - -def unpackb(packed, **kwargs): - """ - Unpack an object from `packed`. - - Raises `ExtraData` when `packed` contains extra bytes. - See :class:`Unpacker` for options. - """ - unpacker = Unpacker(None, **kwargs) - unpacker.feed(packed) - try: - ret = unpacker._unpack() - except OutOfData: - raise UnpackValueError("Data is not enough.") - if unpacker._got_extradata(): - raise ExtraData(ret, unpacker._get_extradata()) - return ret - - -class Unpacker(object): - """Streaming unpacker. - - arguments: - - :param file_like: - File-like object having `.read(n)` method. - If specified, unpacker reads serialized data from it and :meth:`feed()` is not usable. - - :param int read_size: - Used as `file_like.read(read_size)`. (default: `min(16*1024, max_buffer_size)`) - - :param bool use_list: - If true, unpack msgpack array to Python list. - Otherwise, unpack to Python tuple. (default: True) - - :param bool raw: - If true, unpack msgpack raw to Python bytes (default). - Otherwise, unpack to Python str (or unicode on Python 2) by decoding - with UTF-8 encoding (recommended). - Currently, the default is true, but it will be changed to false in - near future. So you must specify it explicitly for keeping backward - compatibility. - - *encoding* option which is deprecated overrides this option. - - :param callable object_hook: - When specified, it should be callable. - Unpacker calls it with a dict argument after unpacking msgpack map. - (See also simplejson) - - :param callable object_pairs_hook: - When specified, it should be callable. - Unpacker calls it with a list of key-value pairs after unpacking msgpack map. - (See also simplejson) - - :param str encoding: - Encoding used for decoding msgpack raw. - If it is None (default), msgpack raw is deserialized to Python bytes. - - :param str unicode_errors: - (deprecated) Used for decoding msgpack raw with *encoding*. - (default: `'strict'`) - - :param int max_buffer_size: - Limits size of data waiting unpacked. 0 means system's INT_MAX (default). - Raises `BufferFull` exception when it is insufficient. - You should set this parameter when unpacking data from untrusted source. - - :param int max_str_len: - Limits max length of str. (default: 2**31-1) - - :param int max_bin_len: - Limits max length of bin. (default: 2**31-1) - - :param int max_array_len: - Limits max length of array. (default: 2**31-1) - - :param int max_map_len: - Limits max length of map. (default: 2**31-1) - - - example of streaming deserialize from file-like object:: - - unpacker = Unpacker(file_like, raw=False) - for o in unpacker: - process(o) - - example of streaming deserialize from socket:: - - unpacker = Unpacker(raw=False) - while True: - buf = sock.recv(1024**2) - if not buf: - break - unpacker.feed(buf) - for o in unpacker: - process(o) - """ - - def __init__(self, file_like=None, read_size=0, use_list=True, raw=True, - object_hook=None, object_pairs_hook=None, list_hook=None, - encoding=None, unicode_errors=None, max_buffer_size=0, - ext_hook=ExtType, - max_str_len=2147483647, # 2**32-1 - max_bin_len=2147483647, - max_array_len=2147483647, - max_map_len=2147483647, - max_ext_len=2147483647): - - if encoding is not None: - warnings.warn( - "encoding is deprecated, Use raw=False instead.", - PendingDeprecationWarning) - - if unicode_errors is None: - unicode_errors = 'strict' - - if file_like is None: - self._feeding = True - else: - if not callable(file_like.read): - raise TypeError("`file_like.read` must be callable") - self.file_like = file_like - self._feeding = False - - #: array of bytes fed. - self._buffer = bytearray() - # Some very old pythons don't support `struct.unpack_from()` with a - # `bytearray`. So we wrap it in a `buffer()` there. - if sys.version_info < (2, 7, 6): - self._buffer_view = buffer(self._buffer) - else: - self._buffer_view = self._buffer - #: Which position we currently reads - self._buff_i = 0 - - # When Unpacker is used as an iterable, between the calls to next(), - # the buffer is not "consumed" completely, for efficiency sake. - # Instead, it is done sloppily. To make sure we raise BufferFull at - # the correct moments, we have to keep track of how sloppy we were. - # Furthermore, when the buffer is incomplete (that is: in the case - # we raise an OutOfData) we need to rollback the buffer to the correct - # state, which _buf_checkpoint records. - self._buf_checkpoint = 0 - - self._max_buffer_size = max_buffer_size or 2**31-1 - if read_size > self._max_buffer_size: - raise ValueError("read_size must be smaller than max_buffer_size") - self._read_size = read_size or min(self._max_buffer_size, 16*1024) - self._raw = bool(raw) - self._encoding = encoding - self._unicode_errors = unicode_errors - self._use_list = use_list - self._list_hook = list_hook - self._object_hook = object_hook - self._object_pairs_hook = object_pairs_hook - self._ext_hook = ext_hook - self._max_str_len = max_str_len - self._max_bin_len = max_bin_len - self._max_array_len = max_array_len - self._max_map_len = max_map_len - self._max_ext_len = max_ext_len - self._stream_offset = 0 - - if list_hook is not None and not callable(list_hook): - raise TypeError('`list_hook` is not callable') - if object_hook is not None and not callable(object_hook): - raise TypeError('`object_hook` is not callable') - if object_pairs_hook is not None and not callable(object_pairs_hook): - raise TypeError('`object_pairs_hook` is not callable') - if object_hook is not None and object_pairs_hook is not None: - raise TypeError("object_pairs_hook and object_hook are mutually " - "exclusive") - if not callable(ext_hook): - raise TypeError("`ext_hook` is not callable") - - def feed(self, next_bytes): - assert self._feeding - view = _get_data_from_buffer(next_bytes) - if (len(self._buffer) - self._buff_i + len(view) > self._max_buffer_size): - raise BufferFull - - # Strip buffer before checkpoint before reading file. - if self._buf_checkpoint > 0: - del self._buffer[:self._buf_checkpoint] - self._buff_i -= self._buf_checkpoint - self._buf_checkpoint = 0 - - self._buffer += view - - def _consume(self): - """ Gets rid of the used parts of the buffer. """ - self._stream_offset += self._buff_i - self._buf_checkpoint - self._buf_checkpoint = self._buff_i - - def _got_extradata(self): - return self._buff_i < len(self._buffer) - - def _get_extradata(self): - return self._buffer[self._buff_i:] - - def read_bytes(self, n): - return self._read(n) - - def _read(self, n): - # (int) -> bytearray - self._reserve(n) - i = self._buff_i - self._buff_i = i+n - return self._buffer[i:i+n] - - def _reserve(self, n): - remain_bytes = len(self._buffer) - self._buff_i - n - - # Fast path: buffer has n bytes already - if remain_bytes >= 0: - return - - if self._feeding: - self._buff_i = self._buf_checkpoint - raise OutOfData - - # Strip buffer before checkpoint before reading file. - if self._buf_checkpoint > 0: - del self._buffer[:self._buf_checkpoint] - self._buff_i -= self._buf_checkpoint - self._buf_checkpoint = 0 - - # Read from file - remain_bytes = -remain_bytes - while remain_bytes > 0: - to_read_bytes = max(self._read_size, remain_bytes) - read_data = self.file_like.read(to_read_bytes) - if not read_data: - break - assert isinstance(read_data, bytes) - self._buffer += read_data - remain_bytes -= len(read_data) - - if len(self._buffer) < n + self._buff_i: - self._buff_i = 0 # rollback - raise OutOfData - - def _read_header(self, execute=EX_CONSTRUCT): - typ = TYPE_IMMEDIATE - n = 0 - obj = None - self._reserve(1) - b = self._buffer[self._buff_i] - self._buff_i += 1 - if b & 0b10000000 == 0: - obj = b - elif b & 0b11100000 == 0b11100000: - obj = -1 - (b ^ 0xff) - elif b & 0b11100000 == 0b10100000: - n = b & 0b00011111 - typ = TYPE_RAW - if n > self._max_str_len: - raise UnpackValueError("%s exceeds max_str_len(%s)", n, self._max_str_len) - obj = self._read(n) - elif b & 0b11110000 == 0b10010000: - n = b & 0b00001111 - typ = TYPE_ARRAY - if n > self._max_array_len: - raise UnpackValueError("%s exceeds max_array_len(%s)", n, self._max_array_len) - elif b & 0b11110000 == 0b10000000: - n = b & 0b00001111 - typ = TYPE_MAP - if n > self._max_map_len: - raise UnpackValueError("%s exceeds max_map_len(%s)", n, self._max_map_len) - elif b == 0xc0: - obj = None - elif b == 0xc2: - obj = False - elif b == 0xc3: - obj = True - elif b == 0xc4: - typ = TYPE_BIN - self._reserve(1) - n = self._buffer[self._buff_i] - self._buff_i += 1 - if n > self._max_bin_len: - raise UnpackValueError("%s exceeds max_bin_len(%s)" % (n, self._max_bin_len)) - obj = self._read(n) - elif b == 0xc5: - typ = TYPE_BIN - self._reserve(2) - n = struct.unpack_from(">H", self._buffer_view, self._buff_i)[0] - self._buff_i += 2 - if n > self._max_bin_len: - raise UnpackValueError("%s exceeds max_bin_len(%s)" % (n, self._max_bin_len)) - obj = self._read(n) - elif b == 0xc6: - typ = TYPE_BIN - self._reserve(4) - n = struct.unpack_from(">I", self._buffer_view, self._buff_i)[0] - self._buff_i += 4 - if n > self._max_bin_len: - raise UnpackValueError("%s exceeds max_bin_len(%s)" % (n, self._max_bin_len)) - obj = self._read(n) - elif b == 0xc7: # ext 8 - typ = TYPE_EXT - self._reserve(2) - L, n = struct.unpack_from('Bb', self._buffer_view, self._buff_i) - self._buff_i += 2 - if L > self._max_ext_len: - raise UnpackValueError("%s exceeds max_ext_len(%s)" % (L, self._max_ext_len)) - obj = self._read(L) - elif b == 0xc8: # ext 16 - typ = TYPE_EXT - self._reserve(3) - L, n = struct.unpack_from('>Hb', self._buffer_view, self._buff_i) - self._buff_i += 3 - if L > self._max_ext_len: - raise UnpackValueError("%s exceeds max_ext_len(%s)" % (L, self._max_ext_len)) - obj = self._read(L) - elif b == 0xc9: # ext 32 - typ = TYPE_EXT - self._reserve(5) - L, n = struct.unpack_from('>Ib', self._buffer_view, self._buff_i) - self._buff_i += 5 - if L > self._max_ext_len: - raise UnpackValueError("%s exceeds max_ext_len(%s)" % (L, self._max_ext_len)) - obj = self._read(L) - elif b == 0xca: - self._reserve(4) - obj = struct.unpack_from(">f", self._buffer_view, self._buff_i)[0] - self._buff_i += 4 - elif b == 0xcb: - self._reserve(8) - obj = struct.unpack_from(">d", self._buffer_view, self._buff_i)[0] - self._buff_i += 8 - elif b == 0xcc: - self._reserve(1) - obj = self._buffer[self._buff_i] - self._buff_i += 1 - elif b == 0xcd: - self._reserve(2) - obj = struct.unpack_from(">H", self._buffer_view, self._buff_i)[0] - self._buff_i += 2 - elif b == 0xce: - self._reserve(4) - obj = struct.unpack_from(">I", self._buffer_view, self._buff_i)[0] - self._buff_i += 4 - elif b == 0xcf: - self._reserve(8) - obj = struct.unpack_from(">Q", self._buffer_view, self._buff_i)[0] - self._buff_i += 8 - elif b == 0xd0: - self._reserve(1) - obj = struct.unpack_from("b", self._buffer_view, self._buff_i)[0] - self._buff_i += 1 - elif b == 0xd1: - self._reserve(2) - obj = struct.unpack_from(">h", self._buffer_view, self._buff_i)[0] - self._buff_i += 2 - elif b == 0xd2: - self._reserve(4) - obj = struct.unpack_from(">i", self._buffer_view, self._buff_i)[0] - self._buff_i += 4 - elif b == 0xd3: - self._reserve(8) - obj = struct.unpack_from(">q", self._buffer_view, self._buff_i)[0] - self._buff_i += 8 - elif b == 0xd4: # fixext 1 - typ = TYPE_EXT - if self._max_ext_len < 1: - raise UnpackValueError("%s exceeds max_ext_len(%s)" % (1, self._max_ext_len)) - self._reserve(2) - n, obj = struct.unpack_from("b1s", self._buffer_view, self._buff_i) - self._buff_i += 2 - elif b == 0xd5: # fixext 2 - typ = TYPE_EXT - if self._max_ext_len < 2: - raise UnpackValueError("%s exceeds max_ext_len(%s)" % (2, self._max_ext_len)) - self._reserve(3) - n, obj = struct.unpack_from("b2s", self._buffer_view, self._buff_i) - self._buff_i += 3 - elif b == 0xd6: # fixext 4 - typ = TYPE_EXT - if self._max_ext_len < 4: - raise UnpackValueError("%s exceeds max_ext_len(%s)" % (4, self._max_ext_len)) - self._reserve(5) - n, obj = struct.unpack_from("b4s", self._buffer_view, self._buff_i) - self._buff_i += 5 - elif b == 0xd7: # fixext 8 - typ = TYPE_EXT - if self._max_ext_len < 8: - raise UnpackValueError("%s exceeds max_ext_len(%s)" % (8, self._max_ext_len)) - self._reserve(9) - n, obj = struct.unpack_from("b8s", self._buffer_view, self._buff_i) - self._buff_i += 9 - elif b == 0xd8: # fixext 16 - typ = TYPE_EXT - if self._max_ext_len < 16: - raise UnpackValueError("%s exceeds max_ext_len(%s)" % (16, self._max_ext_len)) - self._reserve(17) - n, obj = struct.unpack_from("b16s", self._buffer_view, self._buff_i) - self._buff_i += 17 - elif b == 0xd9: - typ = TYPE_RAW - self._reserve(1) - n = self._buffer[self._buff_i] - self._buff_i += 1 - if n > self._max_str_len: - raise UnpackValueError("%s exceeds max_str_len(%s)", n, self._max_str_len) - obj = self._read(n) - elif b == 0xda: - typ = TYPE_RAW - self._reserve(2) - n, = struct.unpack_from(">H", self._buffer_view, self._buff_i) - self._buff_i += 2 - if n > self._max_str_len: - raise UnpackValueError("%s exceeds max_str_len(%s)", n, self._max_str_len) - obj = self._read(n) - elif b == 0xdb: - typ = TYPE_RAW - self._reserve(4) - n, = struct.unpack_from(">I", self._buffer_view, self._buff_i) - self._buff_i += 4 - if n > self._max_str_len: - raise UnpackValueError("%s exceeds max_str_len(%s)", n, self._max_str_len) - obj = self._read(n) - elif b == 0xdc: - typ = TYPE_ARRAY - self._reserve(2) - n, = struct.unpack_from(">H", self._buffer_view, self._buff_i) - self._buff_i += 2 - if n > self._max_array_len: - raise UnpackValueError("%s exceeds max_array_len(%s)", n, self._max_array_len) - elif b == 0xdd: - typ = TYPE_ARRAY - self._reserve(4) - n, = struct.unpack_from(">I", self._buffer_view, self._buff_i) - self._buff_i += 4 - if n > self._max_array_len: - raise UnpackValueError("%s exceeds max_array_len(%s)", n, self._max_array_len) - elif b == 0xde: - self._reserve(2) - n, = struct.unpack_from(">H", self._buffer_view, self._buff_i) - self._buff_i += 2 - if n > self._max_map_len: - raise UnpackValueError("%s exceeds max_map_len(%s)", n, self._max_map_len) - typ = TYPE_MAP - elif b == 0xdf: - self._reserve(4) - n, = struct.unpack_from(">I", self._buffer_view, self._buff_i) - self._buff_i += 4 - if n > self._max_map_len: - raise UnpackValueError("%s exceeds max_map_len(%s)", n, self._max_map_len) - typ = TYPE_MAP - else: - raise UnpackValueError("Unknown header: 0x%x" % b) - return typ, n, obj - - def _unpack(self, execute=EX_CONSTRUCT): - typ, n, obj = self._read_header(execute) - - if execute == EX_READ_ARRAY_HEADER: - if typ != TYPE_ARRAY: - raise UnpackValueError("Expected array") - return n - if execute == EX_READ_MAP_HEADER: - if typ != TYPE_MAP: - raise UnpackValueError("Expected map") - return n - # TODO should we eliminate the recursion? - if typ == TYPE_ARRAY: - if execute == EX_SKIP: - for i in xrange(n): - # TODO check whether we need to call `list_hook` - self._unpack(EX_SKIP) - return - ret = newlist_hint(n) - for i in xrange(n): - ret.append(self._unpack(EX_CONSTRUCT)) - if self._list_hook is not None: - ret = self._list_hook(ret) - # TODO is the interaction between `list_hook` and `use_list` ok? - return ret if self._use_list else tuple(ret) - if typ == TYPE_MAP: - if execute == EX_SKIP: - for i in xrange(n): - # TODO check whether we need to call hooks - self._unpack(EX_SKIP) - self._unpack(EX_SKIP) - return - if self._object_pairs_hook is not None: - ret = self._object_pairs_hook( - (self._unpack(EX_CONSTRUCT), - self._unpack(EX_CONSTRUCT)) - for _ in xrange(n)) - else: - ret = {} - for _ in xrange(n): - key = self._unpack(EX_CONSTRUCT) - ret[key] = self._unpack(EX_CONSTRUCT) - if self._object_hook is not None: - ret = self._object_hook(ret) - return ret - if execute == EX_SKIP: - return - if typ == TYPE_RAW: - if self._encoding is not None: - obj = obj.decode(self._encoding, self._unicode_errors) - elif self._raw: - obj = bytes(obj) - else: - obj = obj.decode('utf_8') - return obj - if typ == TYPE_EXT: - return self._ext_hook(n, bytes(obj)) - if typ == TYPE_BIN: - return bytes(obj) - assert typ == TYPE_IMMEDIATE - return obj - - def __iter__(self): - return self - - def __next__(self): - try: - ret = self._unpack(EX_CONSTRUCT) - self._consume() - return ret - except OutOfData: - self._consume() - raise StopIteration - - next = __next__ - - def skip(self, write_bytes=None): - self._unpack(EX_SKIP) - if write_bytes is not None: - warnings.warn("`write_bytes` option is deprecated. Use `.tell()` instead.", DeprecationWarning) - write_bytes(self._buffer[self._buf_checkpoint:self._buff_i]) - self._consume() - - def unpack(self, write_bytes=None): - ret = self._unpack(EX_CONSTRUCT) - if write_bytes is not None: - warnings.warn("`write_bytes` option is deprecated. Use `.tell()` instead.", DeprecationWarning) - write_bytes(self._buffer[self._buf_checkpoint:self._buff_i]) - self._consume() - return ret - - def read_array_header(self, write_bytes=None): - ret = self._unpack(EX_READ_ARRAY_HEADER) - if write_bytes is not None: - warnings.warn("`write_bytes` option is deprecated. Use `.tell()` instead.", DeprecationWarning) - write_bytes(self._buffer[self._buf_checkpoint:self._buff_i]) - self._consume() - return ret - - def read_map_header(self, write_bytes=None): - ret = self._unpack(EX_READ_MAP_HEADER) - if write_bytes is not None: - warnings.warn("`write_bytes` option is deprecated. Use `.tell()` instead.", DeprecationWarning) - write_bytes(self._buffer[self._buf_checkpoint:self._buff_i]) - self._consume() - return ret - - def tell(self): - return self._stream_offset - - -class Packer(object): - """ - MessagePack Packer - - usage: - - packer = Packer() - astream.write(packer.pack(a)) - astream.write(packer.pack(b)) - - Packer's constructor has some keyword arguments: - - :param callable default: - Convert user type to builtin type that Packer supports. - See also simplejson's document. - - :param bool use_single_float: - Use single precision float type for float. (default: False) - - :param bool autoreset: - Reset buffer after each pack and return its content as `bytes`. (default: True). - If set this to false, use `bytes()` to get content and `.reset()` to clear buffer. - - :param bool use_bin_type: - Use bin type introduced in msgpack spec 2.0 for bytes. - It also enables str8 type for unicode. - - :param bool strict_types: - If set to true, types will be checked to be exact. Derived classes - from serializeable types will not be serialized and will be - treated as unsupported type and forwarded to default. - Additionally tuples will not be serialized as lists. - This is useful when trying to implement accurate serialization - for python types. - - :param str encoding: - (deprecated) Convert unicode to bytes with this encoding. (default: 'utf-8') - - :param str unicode_errors: - Error handler for encoding unicode. (default: 'strict') - """ - def __init__(self, default=None, encoding=None, unicode_errors=None, - use_single_float=False, autoreset=True, use_bin_type=False, - strict_types=False): - if encoding is None: - encoding = 'utf_8' - else: - warnings.warn( - "encoding is deprecated, Use raw=False instead.", - PendingDeprecationWarning) - - if unicode_errors is None: - unicode_errors = 'strict' - - self._strict_types = strict_types - self._use_float = use_single_float - self._autoreset = autoreset - self._use_bin_type = use_bin_type - self._encoding = encoding - self._unicode_errors = unicode_errors - self._buffer = StringIO() - if default is not None: - if not callable(default): - raise TypeError("default must be callable") - self._default = default - - def _pack(self, obj, nest_limit=DEFAULT_RECURSE_LIMIT, - check=isinstance, check_type_strict=_check_type_strict): - default_used = False - if self._strict_types: - check = check_type_strict - list_types = list - else: - list_types = (list, tuple) - while True: - if nest_limit < 0: - raise PackValueError("recursion limit exceeded") - if obj is None: - return self._buffer.write(b"\xc0") - if check(obj, bool): - if obj: - return self._buffer.write(b"\xc3") - return self._buffer.write(b"\xc2") - if check(obj, int_types): - if 0 <= obj < 0x80: - return self._buffer.write(struct.pack("B", obj)) - if -0x20 <= obj < 0: - return self._buffer.write(struct.pack("b", obj)) - if 0x80 <= obj <= 0xff: - return self._buffer.write(struct.pack("BB", 0xcc, obj)) - if -0x80 <= obj < 0: - return self._buffer.write(struct.pack(">Bb", 0xd0, obj)) - if 0xff < obj <= 0xffff: - return self._buffer.write(struct.pack(">BH", 0xcd, obj)) - if -0x8000 <= obj < -0x80: - return self._buffer.write(struct.pack(">Bh", 0xd1, obj)) - if 0xffff < obj <= 0xffffffff: - return self._buffer.write(struct.pack(">BI", 0xce, obj)) - if -0x80000000 <= obj < -0x8000: - return self._buffer.write(struct.pack(">Bi", 0xd2, obj)) - if 0xffffffff < obj <= 0xffffffffffffffff: - return self._buffer.write(struct.pack(">BQ", 0xcf, obj)) - if -0x8000000000000000 <= obj < -0x80000000: - return self._buffer.write(struct.pack(">Bq", 0xd3, obj)) - if not default_used and self._default is not None: - obj = self._default(obj) - default_used = True - continue - raise PackOverflowError("Integer value out of range") - if check(obj, (bytes, bytearray)): - n = len(obj) - if n >= 2**32: - raise PackValueError("%s is too large" % type(obj).__name__) - self._pack_bin_header(n) - return self._buffer.write(obj) - if check(obj, Unicode): - if self._encoding is None: - raise TypeError( - "Can't encode unicode string: " - "no encoding is specified") - obj = obj.encode(self._encoding, self._unicode_errors) - n = len(obj) - if n >= 2**32: - raise PackValueError("String is too large") - self._pack_raw_header(n) - return self._buffer.write(obj) - if check(obj, memoryview): - n = len(obj) * obj.itemsize - if n >= 2**32: - raise PackValueError("Memoryview is too large") - self._pack_bin_header(n) - return self._buffer.write(obj) - if check(obj, float): - if self._use_float: - return self._buffer.write(struct.pack(">Bf", 0xca, obj)) - return self._buffer.write(struct.pack(">Bd", 0xcb, obj)) - if check(obj, ExtType): - code = obj.code - data = obj.data - assert isinstance(code, int) - assert isinstance(data, bytes) - L = len(data) - if L == 1: - self._buffer.write(b'\xd4') - elif L == 2: - self._buffer.write(b'\xd5') - elif L == 4: - self._buffer.write(b'\xd6') - elif L == 8: - self._buffer.write(b'\xd7') - elif L == 16: - self._buffer.write(b'\xd8') - elif L <= 0xff: - self._buffer.write(struct.pack(">BB", 0xc7, L)) - elif L <= 0xffff: - self._buffer.write(struct.pack(">BH", 0xc8, L)) - else: - self._buffer.write(struct.pack(">BI", 0xc9, L)) - self._buffer.write(struct.pack("b", code)) - self._buffer.write(data) - return - if check(obj, list_types): - n = len(obj) - self._pack_array_header(n) - for i in xrange(n): - self._pack(obj[i], nest_limit - 1) - return - if check(obj, dict): - return self._pack_map_pairs(len(obj), dict_iteritems(obj), - nest_limit - 1) - if not default_used and self._default is not None: - obj = self._default(obj) - default_used = 1 - continue - raise TypeError("Cannot serialize %r" % (obj, )) - - def pack(self, obj): - try: - self._pack(obj) - except: - self._buffer = StringIO() # force reset - raise - ret = self._buffer.getvalue() - if self._autoreset: - self._buffer = StringIO() - elif USING_STRINGBUILDER: - self._buffer = StringIO(ret) - return ret - - def pack_map_pairs(self, pairs): - self._pack_map_pairs(len(pairs), pairs) - ret = self._buffer.getvalue() - if self._autoreset: - self._buffer = StringIO() - elif USING_STRINGBUILDER: - self._buffer = StringIO(ret) - return ret - - def pack_array_header(self, n): - if n >= 2**32: - raise PackValueError - self._pack_array_header(n) - ret = self._buffer.getvalue() - if self._autoreset: - self._buffer = StringIO() - elif USING_STRINGBUILDER: - self._buffer = StringIO(ret) - return ret - - def pack_map_header(self, n): - if n >= 2**32: - raise PackValueError - self._pack_map_header(n) - ret = self._buffer.getvalue() - if self._autoreset: - self._buffer = StringIO() - elif USING_STRINGBUILDER: - self._buffer = StringIO(ret) - return ret - - def pack_ext_type(self, typecode, data): - if not isinstance(typecode, int): - raise TypeError("typecode must have int type.") - if not 0 <= typecode <= 127: - raise ValueError("typecode should be 0-127") - if not isinstance(data, bytes): - raise TypeError("data must have bytes type") - L = len(data) - if L > 0xffffffff: - raise PackValueError("Too large data") - if L == 1: - self._buffer.write(b'\xd4') - elif L == 2: - self._buffer.write(b'\xd5') - elif L == 4: - self._buffer.write(b'\xd6') - elif L == 8: - self._buffer.write(b'\xd7') - elif L == 16: - self._buffer.write(b'\xd8') - elif L <= 0xff: - self._buffer.write(b'\xc7' + struct.pack('B', L)) - elif L <= 0xffff: - self._buffer.write(b'\xc8' + struct.pack('>H', L)) - else: - self._buffer.write(b'\xc9' + struct.pack('>I', L)) - self._buffer.write(struct.pack('B', typecode)) - self._buffer.write(data) - - def _pack_array_header(self, n): - if n <= 0x0f: - return self._buffer.write(struct.pack('B', 0x90 + n)) - if n <= 0xffff: - return self._buffer.write(struct.pack(">BH", 0xdc, n)) - if n <= 0xffffffff: - return self._buffer.write(struct.pack(">BI", 0xdd, n)) - raise PackValueError("Array is too large") - - def _pack_map_header(self, n): - if n <= 0x0f: - return self._buffer.write(struct.pack('B', 0x80 + n)) - if n <= 0xffff: - return self._buffer.write(struct.pack(">BH", 0xde, n)) - if n <= 0xffffffff: - return self._buffer.write(struct.pack(">BI", 0xdf, n)) - raise PackValueError("Dict is too large") - - def _pack_map_pairs(self, n, pairs, nest_limit=DEFAULT_RECURSE_LIMIT): - self._pack_map_header(n) - for (k, v) in pairs: - self._pack(k, nest_limit - 1) - self._pack(v, nest_limit - 1) - - def _pack_raw_header(self, n): - if n <= 0x1f: - self._buffer.write(struct.pack('B', 0xa0 + n)) - elif self._use_bin_type and n <= 0xff: - self._buffer.write(struct.pack('>BB', 0xd9, n)) - elif n <= 0xffff: - self._buffer.write(struct.pack(">BH", 0xda, n)) - elif n <= 0xffffffff: - self._buffer.write(struct.pack(">BI", 0xdb, n)) - else: - raise PackValueError('Raw is too large') - - def _pack_bin_header(self, n): - if not self._use_bin_type: - return self._pack_raw_header(n) - elif n <= 0xff: - return self._buffer.write(struct.pack('>BB', 0xc4, n)) - elif n <= 0xffff: - return self._buffer.write(struct.pack(">BH", 0xc5, n)) - elif n <= 0xffffffff: - return self._buffer.write(struct.pack(">BI", 0xc6, n)) - else: - raise PackValueError('Bin is too large') - - def bytes(self): - return self._buffer.getvalue() - - def reset(self): - self._buffer = StringIO() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__about__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__about__.py deleted file mode 100644 index 7481c9e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__about__.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. -from __future__ import absolute_import, division, print_function - -__all__ = [ - "__title__", - "__summary__", - "__uri__", - "__version__", - "__author__", - "__email__", - "__license__", - "__copyright__", -] - -__title__ = "packaging" -__summary__ = "Core utilities for Python packages" -__uri__ = "https://github.com/pypa/packaging" - -__version__ = "19.0" - -__author__ = "Donald Stufft and individual contributors" -__email__ = "donald@stufft.io" - -__license__ = "BSD or Apache License, Version 2.0" -__copyright__ = "Copyright 2014-2019 %s" % __author__ diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__init__.py deleted file mode 100644 index a0cf67d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. -from __future__ import absolute_import, division, print_function - -from .__about__ import ( - __author__, - __copyright__, - __email__, - __license__, - __summary__, - __title__, - __uri__, - __version__, -) - -__all__ = [ - "__title__", - "__summary__", - "__uri__", - "__version__", - "__author__", - "__email__", - "__license__", - "__copyright__", -] diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_compat.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_compat.py deleted file mode 100644 index 25da473..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_compat.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. -from __future__ import absolute_import, division, print_function - -import sys - - -PY2 = sys.version_info[0] == 2 -PY3 = sys.version_info[0] == 3 - -# flake8: noqa - -if PY3: - string_types = (str,) -else: - string_types = (basestring,) - - -def with_metaclass(meta, *bases): - """ - Create a base class with a metaclass. - """ - # This requires a bit of explanation: the basic idea is to make a dummy - # metaclass for one level of class instantiation that replaces itself with - # the actual metaclass. - class metaclass(meta): - def __new__(cls, name, this_bases, d): - return meta(name, bases, d) - - return type.__new__(metaclass, "temporary_class", (), {}) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_structures.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_structures.py deleted file mode 100644 index 68dcca6..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_structures.py +++ /dev/null @@ -1,68 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. -from __future__ import absolute_import, division, print_function - - -class Infinity(object): - def __repr__(self): - return "Infinity" - - def __hash__(self): - return hash(repr(self)) - - def __lt__(self, other): - return False - - def __le__(self, other): - return False - - def __eq__(self, other): - return isinstance(other, self.__class__) - - def __ne__(self, other): - return not isinstance(other, self.__class__) - - def __gt__(self, other): - return True - - def __ge__(self, other): - return True - - def __neg__(self): - return NegativeInfinity - - -Infinity = Infinity() - - -class NegativeInfinity(object): - def __repr__(self): - return "-Infinity" - - def __hash__(self): - return hash(repr(self)) - - def __lt__(self, other): - return True - - def __le__(self, other): - return True - - def __eq__(self, other): - return isinstance(other, self.__class__) - - def __ne__(self, other): - return not isinstance(other, self.__class__) - - def __gt__(self, other): - return False - - def __ge__(self, other): - return False - - def __neg__(self): - return Infinity - - -NegativeInfinity = NegativeInfinity() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/markers.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/markers.py deleted file mode 100644 index 5482476..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/markers.py +++ /dev/null @@ -1,296 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. -from __future__ import absolute_import, division, print_function - -import operator -import os -import platform -import sys - -from pip._vendor.pyparsing import ParseException, ParseResults, stringStart, stringEnd -from pip._vendor.pyparsing import ZeroOrMore, Group, Forward, QuotedString -from pip._vendor.pyparsing import Literal as L # noqa - -from ._compat import string_types -from .specifiers import Specifier, InvalidSpecifier - - -__all__ = [ - "InvalidMarker", - "UndefinedComparison", - "UndefinedEnvironmentName", - "Marker", - "default_environment", -] - - -class InvalidMarker(ValueError): - """ - An invalid marker was found, users should refer to PEP 508. - """ - - -class UndefinedComparison(ValueError): - """ - An invalid operation was attempted on a value that doesn't support it. - """ - - -class UndefinedEnvironmentName(ValueError): - """ - A name was attempted to be used that does not exist inside of the - environment. - """ - - -class Node(object): - def __init__(self, value): - self.value = value - - def __str__(self): - return str(self.value) - - def __repr__(self): - return "<{0}({1!r})>".format(self.__class__.__name__, str(self)) - - def serialize(self): - raise NotImplementedError - - -class Variable(Node): - def serialize(self): - return str(self) - - -class Value(Node): - def serialize(self): - return '"{0}"'.format(self) - - -class Op(Node): - def serialize(self): - return str(self) - - -VARIABLE = ( - L("implementation_version") - | L("platform_python_implementation") - | L("implementation_name") - | L("python_full_version") - | L("platform_release") - | L("platform_version") - | L("platform_machine") - | L("platform_system") - | L("python_version") - | L("sys_platform") - | L("os_name") - | L("os.name") - | L("sys.platform") # PEP-345 - | L("platform.version") # PEP-345 - | L("platform.machine") # PEP-345 - | L("platform.python_implementation") # PEP-345 - | L("python_implementation") # PEP-345 - | L("extra") # undocumented setuptools legacy -) -ALIASES = { - "os.name": "os_name", - "sys.platform": "sys_platform", - "platform.version": "platform_version", - "platform.machine": "platform_machine", - "platform.python_implementation": "platform_python_implementation", - "python_implementation": "platform_python_implementation", -} -VARIABLE.setParseAction(lambda s, l, t: Variable(ALIASES.get(t[0], t[0]))) - -VERSION_CMP = ( - L("===") | L("==") | L(">=") | L("<=") | L("!=") | L("~=") | L(">") | L("<") -) - -MARKER_OP = VERSION_CMP | L("not in") | L("in") -MARKER_OP.setParseAction(lambda s, l, t: Op(t[0])) - -MARKER_VALUE = QuotedString("'") | QuotedString('"') -MARKER_VALUE.setParseAction(lambda s, l, t: Value(t[0])) - -BOOLOP = L("and") | L("or") - -MARKER_VAR = VARIABLE | MARKER_VALUE - -MARKER_ITEM = Group(MARKER_VAR + MARKER_OP + MARKER_VAR) -MARKER_ITEM.setParseAction(lambda s, l, t: tuple(t[0])) - -LPAREN = L("(").suppress() -RPAREN = L(")").suppress() - -MARKER_EXPR = Forward() -MARKER_ATOM = MARKER_ITEM | Group(LPAREN + MARKER_EXPR + RPAREN) -MARKER_EXPR << MARKER_ATOM + ZeroOrMore(BOOLOP + MARKER_EXPR) - -MARKER = stringStart + MARKER_EXPR + stringEnd - - -def _coerce_parse_result(results): - if isinstance(results, ParseResults): - return [_coerce_parse_result(i) for i in results] - else: - return results - - -def _format_marker(marker, first=True): - assert isinstance(marker, (list, tuple, string_types)) - - # Sometimes we have a structure like [[...]] which is a single item list - # where the single item is itself it's own list. In that case we want skip - # the rest of this function so that we don't get extraneous () on the - # outside. - if ( - isinstance(marker, list) - and len(marker) == 1 - and isinstance(marker[0], (list, tuple)) - ): - return _format_marker(marker[0]) - - if isinstance(marker, list): - inner = (_format_marker(m, first=False) for m in marker) - if first: - return " ".join(inner) - else: - return "(" + " ".join(inner) + ")" - elif isinstance(marker, tuple): - return " ".join([m.serialize() for m in marker]) - else: - return marker - - -_operators = { - "in": lambda lhs, rhs: lhs in rhs, - "not in": lambda lhs, rhs: lhs not in rhs, - "<": operator.lt, - "<=": operator.le, - "==": operator.eq, - "!=": operator.ne, - ">=": operator.ge, - ">": operator.gt, -} - - -def _eval_op(lhs, op, rhs): - try: - spec = Specifier("".join([op.serialize(), rhs])) - except InvalidSpecifier: - pass - else: - return spec.contains(lhs) - - oper = _operators.get(op.serialize()) - if oper is None: - raise UndefinedComparison( - "Undefined {0!r} on {1!r} and {2!r}.".format(op, lhs, rhs) - ) - - return oper(lhs, rhs) - - -_undefined = object() - - -def _get_env(environment, name): - value = environment.get(name, _undefined) - - if value is _undefined: - raise UndefinedEnvironmentName( - "{0!r} does not exist in evaluation environment.".format(name) - ) - - return value - - -def _evaluate_markers(markers, environment): - groups = [[]] - - for marker in markers: - assert isinstance(marker, (list, tuple, string_types)) - - if isinstance(marker, list): - groups[-1].append(_evaluate_markers(marker, environment)) - elif isinstance(marker, tuple): - lhs, op, rhs = marker - - if isinstance(lhs, Variable): - lhs_value = _get_env(environment, lhs.value) - rhs_value = rhs.value - else: - lhs_value = lhs.value - rhs_value = _get_env(environment, rhs.value) - - groups[-1].append(_eval_op(lhs_value, op, rhs_value)) - else: - assert marker in ["and", "or"] - if marker == "or": - groups.append([]) - - return any(all(item) for item in groups) - - -def format_full_version(info): - version = "{0.major}.{0.minor}.{0.micro}".format(info) - kind = info.releaselevel - if kind != "final": - version += kind[0] + str(info.serial) - return version - - -def default_environment(): - if hasattr(sys, "implementation"): - iver = format_full_version(sys.implementation.version) - implementation_name = sys.implementation.name - else: - iver = "0" - implementation_name = "" - - return { - "implementation_name": implementation_name, - "implementation_version": iver, - "os_name": os.name, - "platform_machine": platform.machine(), - "platform_release": platform.release(), - "platform_system": platform.system(), - "platform_version": platform.version(), - "python_full_version": platform.python_version(), - "platform_python_implementation": platform.python_implementation(), - "python_version": platform.python_version()[:3], - "sys_platform": sys.platform, - } - - -class Marker(object): - def __init__(self, marker): - try: - self._markers = _coerce_parse_result(MARKER.parseString(marker)) - except ParseException as e: - err_str = "Invalid marker: {0!r}, parse error at {1!r}".format( - marker, marker[e.loc : e.loc + 8] - ) - raise InvalidMarker(err_str) - - def __str__(self): - return _format_marker(self._markers) - - def __repr__(self): - return "<Marker({0!r})>".format(str(self)) - - def evaluate(self, environment=None): - """Evaluate a marker. - - Return the boolean from evaluating the given marker against the - environment. environment is an optional argument to override all or - part of the determined environment. - - The environment is determined from the current Python process. - """ - current_environment = default_environment() - if environment is not None: - current_environment.update(environment) - - return _evaluate_markers(self._markers, current_environment) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/requirements.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/requirements.py deleted file mode 100644 index dbc5f11..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/requirements.py +++ /dev/null @@ -1,138 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. -from __future__ import absolute_import, division, print_function - -import string -import re - -from pip._vendor.pyparsing import stringStart, stringEnd, originalTextFor, ParseException -from pip._vendor.pyparsing import ZeroOrMore, Word, Optional, Regex, Combine -from pip._vendor.pyparsing import Literal as L # noqa -from pip._vendor.six.moves.urllib import parse as urlparse - -from .markers import MARKER_EXPR, Marker -from .specifiers import LegacySpecifier, Specifier, SpecifierSet - - -class InvalidRequirement(ValueError): - """ - An invalid requirement was found, users should refer to PEP 508. - """ - - -ALPHANUM = Word(string.ascii_letters + string.digits) - -LBRACKET = L("[").suppress() -RBRACKET = L("]").suppress() -LPAREN = L("(").suppress() -RPAREN = L(")").suppress() -COMMA = L(",").suppress() -SEMICOLON = L(";").suppress() -AT = L("@").suppress() - -PUNCTUATION = Word("-_.") -IDENTIFIER_END = ALPHANUM | (ZeroOrMore(PUNCTUATION) + ALPHANUM) -IDENTIFIER = Combine(ALPHANUM + ZeroOrMore(IDENTIFIER_END)) - -NAME = IDENTIFIER("name") -EXTRA = IDENTIFIER - -URI = Regex(r"[^ ]+")("url") -URL = AT + URI - -EXTRAS_LIST = EXTRA + ZeroOrMore(COMMA + EXTRA) -EXTRAS = (LBRACKET + Optional(EXTRAS_LIST) + RBRACKET)("extras") - -VERSION_PEP440 = Regex(Specifier._regex_str, re.VERBOSE | re.IGNORECASE) -VERSION_LEGACY = Regex(LegacySpecifier._regex_str, re.VERBOSE | re.IGNORECASE) - -VERSION_ONE = VERSION_PEP440 ^ VERSION_LEGACY -VERSION_MANY = Combine( - VERSION_ONE + ZeroOrMore(COMMA + VERSION_ONE), joinString=",", adjacent=False -)("_raw_spec") -_VERSION_SPEC = Optional(((LPAREN + VERSION_MANY + RPAREN) | VERSION_MANY)) -_VERSION_SPEC.setParseAction(lambda s, l, t: t._raw_spec or "") - -VERSION_SPEC = originalTextFor(_VERSION_SPEC)("specifier") -VERSION_SPEC.setParseAction(lambda s, l, t: t[1]) - -MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker") -MARKER_EXPR.setParseAction( - lambda s, l, t: Marker(s[t._original_start : t._original_end]) -) -MARKER_SEPARATOR = SEMICOLON -MARKER = MARKER_SEPARATOR + MARKER_EXPR - -VERSION_AND_MARKER = VERSION_SPEC + Optional(MARKER) -URL_AND_MARKER = URL + Optional(MARKER) - -NAMED_REQUIREMENT = NAME + Optional(EXTRAS) + (URL_AND_MARKER | VERSION_AND_MARKER) - -REQUIREMENT = stringStart + NAMED_REQUIREMENT + stringEnd -# pyparsing isn't thread safe during initialization, so we do it eagerly, see -# issue #104 -REQUIREMENT.parseString("x[]") - - -class Requirement(object): - """Parse a requirement. - - Parse a given requirement string into its parts, such as name, specifier, - URL, and extras. Raises InvalidRequirement on a badly-formed requirement - string. - """ - - # TODO: Can we test whether something is contained within a requirement? - # If so how do we do that? Do we need to test against the _name_ of - # the thing as well as the version? What about the markers? - # TODO: Can we normalize the name and extra name? - - def __init__(self, requirement_string): - try: - req = REQUIREMENT.parseString(requirement_string) - except ParseException as e: - raise InvalidRequirement( - 'Parse error at "{0!r}": {1}'.format( - requirement_string[e.loc : e.loc + 8], e.msg - ) - ) - - self.name = req.name - if req.url: - parsed_url = urlparse.urlparse(req.url) - if parsed_url.scheme == "file": - if urlparse.urlunparse(parsed_url) != req.url: - raise InvalidRequirement("Invalid URL given") - elif not (parsed_url.scheme and parsed_url.netloc) or ( - not parsed_url.scheme and not parsed_url.netloc - ): - raise InvalidRequirement("Invalid URL: {0}".format(req.url)) - self.url = req.url - else: - self.url = None - self.extras = set(req.extras.asList() if req.extras else []) - self.specifier = SpecifierSet(req.specifier) - self.marker = req.marker if req.marker else None - - def __str__(self): - parts = [self.name] - - if self.extras: - parts.append("[{0}]".format(",".join(sorted(self.extras)))) - - if self.specifier: - parts.append(str(self.specifier)) - - if self.url: - parts.append("@ {0}".format(self.url)) - if self.marker: - parts.append(" ") - - if self.marker: - parts.append("; {0}".format(self.marker)) - - return "".join(parts) - - def __repr__(self): - return "<Requirement({0!r})>".format(str(self)) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/specifiers.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/specifiers.py deleted file mode 100644 index 743576a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/specifiers.py +++ /dev/null @@ -1,749 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. -from __future__ import absolute_import, division, print_function - -import abc -import functools -import itertools -import re - -from ._compat import string_types, with_metaclass -from .version import Version, LegacyVersion, parse - - -class InvalidSpecifier(ValueError): - """ - An invalid specifier was found, users should refer to PEP 440. - """ - - -class BaseSpecifier(with_metaclass(abc.ABCMeta, object)): - @abc.abstractmethod - def __str__(self): - """ - Returns the str representation of this Specifier like object. This - should be representative of the Specifier itself. - """ - - @abc.abstractmethod - def __hash__(self): - """ - Returns a hash value for this Specifier like object. - """ - - @abc.abstractmethod - def __eq__(self, other): - """ - Returns a boolean representing whether or not the two Specifier like - objects are equal. - """ - - @abc.abstractmethod - def __ne__(self, other): - """ - Returns a boolean representing whether or not the two Specifier like - objects are not equal. - """ - - @abc.abstractproperty - def prereleases(self): - """ - Returns whether or not pre-releases as a whole are allowed by this - specifier. - """ - - @prereleases.setter - def prereleases(self, value): - """ - Sets whether or not pre-releases as a whole are allowed by this - specifier. - """ - - @abc.abstractmethod - def contains(self, item, prereleases=None): - """ - Determines if the given item is contained within this specifier. - """ - - @abc.abstractmethod - def filter(self, iterable, prereleases=None): - """ - Takes an iterable of items and filters them so that only items which - are contained within this specifier are allowed in it. - """ - - -class _IndividualSpecifier(BaseSpecifier): - - _operators = {} - - def __init__(self, spec="", prereleases=None): - match = self._regex.search(spec) - if not match: - raise InvalidSpecifier("Invalid specifier: '{0}'".format(spec)) - - self._spec = (match.group("operator").strip(), match.group("version").strip()) - - # Store whether or not this Specifier should accept prereleases - self._prereleases = prereleases - - def __repr__(self): - pre = ( - ", prereleases={0!r}".format(self.prereleases) - if self._prereleases is not None - else "" - ) - - return "<{0}({1!r}{2})>".format(self.__class__.__name__, str(self), pre) - - def __str__(self): - return "{0}{1}".format(*self._spec) - - def __hash__(self): - return hash(self._spec) - - def __eq__(self, other): - if isinstance(other, string_types): - try: - other = self.__class__(other) - except InvalidSpecifier: - return NotImplemented - elif not isinstance(other, self.__class__): - return NotImplemented - - return self._spec == other._spec - - def __ne__(self, other): - if isinstance(other, string_types): - try: - other = self.__class__(other) - except InvalidSpecifier: - return NotImplemented - elif not isinstance(other, self.__class__): - return NotImplemented - - return self._spec != other._spec - - def _get_operator(self, op): - return getattr(self, "_compare_{0}".format(self._operators[op])) - - def _coerce_version(self, version): - if not isinstance(version, (LegacyVersion, Version)): - version = parse(version) - return version - - @property - def operator(self): - return self._spec[0] - - @property - def version(self): - return self._spec[1] - - @property - def prereleases(self): - return self._prereleases - - @prereleases.setter - def prereleases(self, value): - self._prereleases = value - - def __contains__(self, item): - return self.contains(item) - - def contains(self, item, prereleases=None): - # Determine if prereleases are to be allowed or not. - if prereleases is None: - prereleases = self.prereleases - - # Normalize item to a Version or LegacyVersion, this allows us to have - # a shortcut for ``"2.0" in Specifier(">=2") - item = self._coerce_version(item) - - # Determine if we should be supporting prereleases in this specifier - # or not, if we do not support prereleases than we can short circuit - # logic if this version is a prereleases. - if item.is_prerelease and not prereleases: - return False - - # Actually do the comparison to determine if this item is contained - # within this Specifier or not. - return self._get_operator(self.operator)(item, self.version) - - def filter(self, iterable, prereleases=None): - yielded = False - found_prereleases = [] - - kw = {"prereleases": prereleases if prereleases is not None else True} - - # Attempt to iterate over all the values in the iterable and if any of - # them match, yield them. - for version in iterable: - parsed_version = self._coerce_version(version) - - if self.contains(parsed_version, **kw): - # If our version is a prerelease, and we were not set to allow - # prereleases, then we'll store it for later incase nothing - # else matches this specifier. - if parsed_version.is_prerelease and not ( - prereleases or self.prereleases - ): - found_prereleases.append(version) - # Either this is not a prerelease, or we should have been - # accepting prereleases from the beginning. - else: - yielded = True - yield version - - # Now that we've iterated over everything, determine if we've yielded - # any values, and if we have not and we have any prereleases stored up - # then we will go ahead and yield the prereleases. - if not yielded and found_prereleases: - for version in found_prereleases: - yield version - - -class LegacySpecifier(_IndividualSpecifier): - - _regex_str = r""" - (?P<operator>(==|!=|<=|>=|<|>)) - \s* - (?P<version> - [^,;\s)]* # Since this is a "legacy" specifier, and the version - # string can be just about anything, we match everything - # except for whitespace, a semi-colon for marker support, - # a closing paren since versions can be enclosed in - # them, and a comma since it's a version separator. - ) - """ - - _regex = re.compile(r"^\s*" + _regex_str + r"\s*$", re.VERBOSE | re.IGNORECASE) - - _operators = { - "==": "equal", - "!=": "not_equal", - "<=": "less_than_equal", - ">=": "greater_than_equal", - "<": "less_than", - ">": "greater_than", - } - - def _coerce_version(self, version): - if not isinstance(version, LegacyVersion): - version = LegacyVersion(str(version)) - return version - - def _compare_equal(self, prospective, spec): - return prospective == self._coerce_version(spec) - - def _compare_not_equal(self, prospective, spec): - return prospective != self._coerce_version(spec) - - def _compare_less_than_equal(self, prospective, spec): - return prospective <= self._coerce_version(spec) - - def _compare_greater_than_equal(self, prospective, spec): - return prospective >= self._coerce_version(spec) - - def _compare_less_than(self, prospective, spec): - return prospective < self._coerce_version(spec) - - def _compare_greater_than(self, prospective, spec): - return prospective > self._coerce_version(spec) - - -def _require_version_compare(fn): - @functools.wraps(fn) - def wrapped(self, prospective, spec): - if not isinstance(prospective, Version): - return False - return fn(self, prospective, spec) - - return wrapped - - -class Specifier(_IndividualSpecifier): - - _regex_str = r""" - (?P<operator>(~=|==|!=|<=|>=|<|>|===)) - (?P<version> - (?: - # The identity operators allow for an escape hatch that will - # do an exact string match of the version you wish to install. - # This will not be parsed by PEP 440 and we cannot determine - # any semantic meaning from it. This operator is discouraged - # but included entirely as an escape hatch. - (?<====) # Only match for the identity operator - \s* - [^\s]* # We just match everything, except for whitespace - # since we are only testing for strict identity. - ) - | - (?: - # The (non)equality operators allow for wild card and local - # versions to be specified so we have to define these two - # operators separately to enable that. - (?<===|!=) # Only match for equals and not equals - - \s* - v? - (?:[0-9]+!)? # epoch - [0-9]+(?:\.[0-9]+)* # release - (?: # pre release - [-_\.]? - (a|b|c|rc|alpha|beta|pre|preview) - [-_\.]? - [0-9]* - )? - (?: # post release - (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) - )? - - # You cannot use a wild card and a dev or local version - # together so group them with a | and make them optional. - (?: - (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release - (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local - | - \.\* # Wild card syntax of .* - )? - ) - | - (?: - # The compatible operator requires at least two digits in the - # release segment. - (?<=~=) # Only match for the compatible operator - - \s* - v? - (?:[0-9]+!)? # epoch - [0-9]+(?:\.[0-9]+)+ # release (We have a + instead of a *) - (?: # pre release - [-_\.]? - (a|b|c|rc|alpha|beta|pre|preview) - [-_\.]? - [0-9]* - )? - (?: # post release - (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) - )? - (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release - ) - | - (?: - # All other operators only allow a sub set of what the - # (non)equality operators do. Specifically they do not allow - # local versions to be specified nor do they allow the prefix - # matching wild cards. - (?<!==|!=|~=) # We have special cases for these - # operators so we want to make sure they - # don't match here. - - \s* - v? - (?:[0-9]+!)? # epoch - [0-9]+(?:\.[0-9]+)* # release - (?: # pre release - [-_\.]? - (a|b|c|rc|alpha|beta|pre|preview) - [-_\.]? - [0-9]* - )? - (?: # post release - (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) - )? - (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release - ) - ) - """ - - _regex = re.compile(r"^\s*" + _regex_str + r"\s*$", re.VERBOSE | re.IGNORECASE) - - _operators = { - "~=": "compatible", - "==": "equal", - "!=": "not_equal", - "<=": "less_than_equal", - ">=": "greater_than_equal", - "<": "less_than", - ">": "greater_than", - "===": "arbitrary", - } - - @_require_version_compare - def _compare_compatible(self, prospective, spec): - # Compatible releases have an equivalent combination of >= and ==. That - # is that ~=2.2 is equivalent to >=2.2,==2.*. This allows us to - # implement this in terms of the other specifiers instead of - # implementing it ourselves. The only thing we need to do is construct - # the other specifiers. - - # We want everything but the last item in the version, but we want to - # ignore post and dev releases and we want to treat the pre-release as - # it's own separate segment. - prefix = ".".join( - list( - itertools.takewhile( - lambda x: (not x.startswith("post") and not x.startswith("dev")), - _version_split(spec), - ) - )[:-1] - ) - - # Add the prefix notation to the end of our string - prefix += ".*" - - return self._get_operator(">=")(prospective, spec) and self._get_operator("==")( - prospective, prefix - ) - - @_require_version_compare - def _compare_equal(self, prospective, spec): - # We need special logic to handle prefix matching - if spec.endswith(".*"): - # In the case of prefix matching we want to ignore local segment. - prospective = Version(prospective.public) - # Split the spec out by dots, and pretend that there is an implicit - # dot in between a release segment and a pre-release segment. - spec = _version_split(spec[:-2]) # Remove the trailing .* - - # Split the prospective version out by dots, and pretend that there - # is an implicit dot in between a release segment and a pre-release - # segment. - prospective = _version_split(str(prospective)) - - # Shorten the prospective version to be the same length as the spec - # so that we can determine if the specifier is a prefix of the - # prospective version or not. - prospective = prospective[: len(spec)] - - # Pad out our two sides with zeros so that they both equal the same - # length. - spec, prospective = _pad_version(spec, prospective) - else: - # Convert our spec string into a Version - spec = Version(spec) - - # If the specifier does not have a local segment, then we want to - # act as if the prospective version also does not have a local - # segment. - if not spec.local: - prospective = Version(prospective.public) - - return prospective == spec - - @_require_version_compare - def _compare_not_equal(self, prospective, spec): - return not self._compare_equal(prospective, spec) - - @_require_version_compare - def _compare_less_than_equal(self, prospective, spec): - return prospective <= Version(spec) - - @_require_version_compare - def _compare_greater_than_equal(self, prospective, spec): - return prospective >= Version(spec) - - @_require_version_compare - def _compare_less_than(self, prospective, spec): - # Convert our spec to a Version instance, since we'll want to work with - # it as a version. - spec = Version(spec) - - # Check to see if the prospective version is less than the spec - # version. If it's not we can short circuit and just return False now - # instead of doing extra unneeded work. - if not prospective < spec: - return False - - # This special case is here so that, unless the specifier itself - # includes is a pre-release version, that we do not accept pre-release - # versions for the version mentioned in the specifier (e.g. <3.1 should - # not match 3.1.dev0, but should match 3.0.dev0). - if not spec.is_prerelease and prospective.is_prerelease: - if Version(prospective.base_version) == Version(spec.base_version): - return False - - # If we've gotten to here, it means that prospective version is both - # less than the spec version *and* it's not a pre-release of the same - # version in the spec. - return True - - @_require_version_compare - def _compare_greater_than(self, prospective, spec): - # Convert our spec to a Version instance, since we'll want to work with - # it as a version. - spec = Version(spec) - - # Check to see if the prospective version is greater than the spec - # version. If it's not we can short circuit and just return False now - # instead of doing extra unneeded work. - if not prospective > spec: - return False - - # This special case is here so that, unless the specifier itself - # includes is a post-release version, that we do not accept - # post-release versions for the version mentioned in the specifier - # (e.g. >3.1 should not match 3.0.post0, but should match 3.2.post0). - if not spec.is_postrelease and prospective.is_postrelease: - if Version(prospective.base_version) == Version(spec.base_version): - return False - - # Ensure that we do not allow a local version of the version mentioned - # in the specifier, which is technically greater than, to match. - if prospective.local is not None: - if Version(prospective.base_version) == Version(spec.base_version): - return False - - # If we've gotten to here, it means that prospective version is both - # greater than the spec version *and* it's not a pre-release of the - # same version in the spec. - return True - - def _compare_arbitrary(self, prospective, spec): - return str(prospective).lower() == str(spec).lower() - - @property - def prereleases(self): - # If there is an explicit prereleases set for this, then we'll just - # blindly use that. - if self._prereleases is not None: - return self._prereleases - - # Look at all of our specifiers and determine if they are inclusive - # operators, and if they are if they are including an explicit - # prerelease. - operator, version = self._spec - if operator in ["==", ">=", "<=", "~=", "==="]: - # The == specifier can include a trailing .*, if it does we - # want to remove before parsing. - if operator == "==" and version.endswith(".*"): - version = version[:-2] - - # Parse the version, and if it is a pre-release than this - # specifier allows pre-releases. - if parse(version).is_prerelease: - return True - - return False - - @prereleases.setter - def prereleases(self, value): - self._prereleases = value - - -_prefix_regex = re.compile(r"^([0-9]+)((?:a|b|c|rc)[0-9]+)$") - - -def _version_split(version): - result = [] - for item in version.split("."): - match = _prefix_regex.search(item) - if match: - result.extend(match.groups()) - else: - result.append(item) - return result - - -def _pad_version(left, right): - left_split, right_split = [], [] - - # Get the release segment of our versions - left_split.append(list(itertools.takewhile(lambda x: x.isdigit(), left))) - right_split.append(list(itertools.takewhile(lambda x: x.isdigit(), right))) - - # Get the rest of our versions - left_split.append(left[len(left_split[0]) :]) - right_split.append(right[len(right_split[0]) :]) - - # Insert our padding - left_split.insert(1, ["0"] * max(0, len(right_split[0]) - len(left_split[0]))) - right_split.insert(1, ["0"] * max(0, len(left_split[0]) - len(right_split[0]))) - - return (list(itertools.chain(*left_split)), list(itertools.chain(*right_split))) - - -class SpecifierSet(BaseSpecifier): - def __init__(self, specifiers="", prereleases=None): - # Split on , to break each indidivual specifier into it's own item, and - # strip each item to remove leading/trailing whitespace. - specifiers = [s.strip() for s in specifiers.split(",") if s.strip()] - - # Parsed each individual specifier, attempting first to make it a - # Specifier and falling back to a LegacySpecifier. - parsed = set() - for specifier in specifiers: - try: - parsed.add(Specifier(specifier)) - except InvalidSpecifier: - parsed.add(LegacySpecifier(specifier)) - - # Turn our parsed specifiers into a frozen set and save them for later. - self._specs = frozenset(parsed) - - # Store our prereleases value so we can use it later to determine if - # we accept prereleases or not. - self._prereleases = prereleases - - def __repr__(self): - pre = ( - ", prereleases={0!r}".format(self.prereleases) - if self._prereleases is not None - else "" - ) - - return "<SpecifierSet({0!r}{1})>".format(str(self), pre) - - def __str__(self): - return ",".join(sorted(str(s) for s in self._specs)) - - def __hash__(self): - return hash(self._specs) - - def __and__(self, other): - if isinstance(other, string_types): - other = SpecifierSet(other) - elif not isinstance(other, SpecifierSet): - return NotImplemented - - specifier = SpecifierSet() - specifier._specs = frozenset(self._specs | other._specs) - - if self._prereleases is None and other._prereleases is not None: - specifier._prereleases = other._prereleases - elif self._prereleases is not None and other._prereleases is None: - specifier._prereleases = self._prereleases - elif self._prereleases == other._prereleases: - specifier._prereleases = self._prereleases - else: - raise ValueError( - "Cannot combine SpecifierSets with True and False prerelease " - "overrides." - ) - - return specifier - - def __eq__(self, other): - if isinstance(other, string_types): - other = SpecifierSet(other) - elif isinstance(other, _IndividualSpecifier): - other = SpecifierSet(str(other)) - elif not isinstance(other, SpecifierSet): - return NotImplemented - - return self._specs == other._specs - - def __ne__(self, other): - if isinstance(other, string_types): - other = SpecifierSet(other) - elif isinstance(other, _IndividualSpecifier): - other = SpecifierSet(str(other)) - elif not isinstance(other, SpecifierSet): - return NotImplemented - - return self._specs != other._specs - - def __len__(self): - return len(self._specs) - - def __iter__(self): - return iter(self._specs) - - @property - def prereleases(self): - # If we have been given an explicit prerelease modifier, then we'll - # pass that through here. - if self._prereleases is not None: - return self._prereleases - - # If we don't have any specifiers, and we don't have a forced value, - # then we'll just return None since we don't know if this should have - # pre-releases or not. - if not self._specs: - return None - - # Otherwise we'll see if any of the given specifiers accept - # prereleases, if any of them do we'll return True, otherwise False. - return any(s.prereleases for s in self._specs) - - @prereleases.setter - def prereleases(self, value): - self._prereleases = value - - def __contains__(self, item): - return self.contains(item) - - def contains(self, item, prereleases=None): - # Ensure that our item is a Version or LegacyVersion instance. - if not isinstance(item, (LegacyVersion, Version)): - item = parse(item) - - # Determine if we're forcing a prerelease or not, if we're not forcing - # one for this particular filter call, then we'll use whatever the - # SpecifierSet thinks for whether or not we should support prereleases. - if prereleases is None: - prereleases = self.prereleases - - # We can determine if we're going to allow pre-releases by looking to - # see if any of the underlying items supports them. If none of them do - # and this item is a pre-release then we do not allow it and we can - # short circuit that here. - # Note: This means that 1.0.dev1 would not be contained in something - # like >=1.0.devabc however it would be in >=1.0.debabc,>0.0.dev0 - if not prereleases and item.is_prerelease: - return False - - # We simply dispatch to the underlying specs here to make sure that the - # given version is contained within all of them. - # Note: This use of all() here means that an empty set of specifiers - # will always return True, this is an explicit design decision. - return all(s.contains(item, prereleases=prereleases) for s in self._specs) - - def filter(self, iterable, prereleases=None): - # Determine if we're forcing a prerelease or not, if we're not forcing - # one for this particular filter call, then we'll use whatever the - # SpecifierSet thinks for whether or not we should support prereleases. - if prereleases is None: - prereleases = self.prereleases - - # If we have any specifiers, then we want to wrap our iterable in the - # filter method for each one, this will act as a logical AND amongst - # each specifier. - if self._specs: - for spec in self._specs: - iterable = spec.filter(iterable, prereleases=bool(prereleases)) - return iterable - # If we do not have any specifiers, then we need to have a rough filter - # which will filter out any pre-releases, unless there are no final - # releases, and which will filter out LegacyVersion in general. - else: - filtered = [] - found_prereleases = [] - - for item in iterable: - # Ensure that we some kind of Version class for this item. - if not isinstance(item, (LegacyVersion, Version)): - parsed_version = parse(item) - else: - parsed_version = item - - # Filter out any item which is parsed as a LegacyVersion - if isinstance(parsed_version, LegacyVersion): - continue - - # Store any item which is a pre-release for later unless we've - # already found a final version or we are accepting prereleases - if parsed_version.is_prerelease and not prereleases: - if not filtered: - found_prereleases.append(item) - else: - filtered.append(item) - - # If we've found no items except for pre-releases, then we'll go - # ahead and use the pre-releases - if not filtered and found_prereleases and prereleases is None: - return found_prereleases - - return filtered diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/utils.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/utils.py deleted file mode 100644 index 8841878..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/utils.py +++ /dev/null @@ -1,57 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. -from __future__ import absolute_import, division, print_function - -import re - -from .version import InvalidVersion, Version - - -_canonicalize_regex = re.compile(r"[-_.]+") - - -def canonicalize_name(name): - # This is taken from PEP 503. - return _canonicalize_regex.sub("-", name).lower() - - -def canonicalize_version(version): - """ - This is very similar to Version.__str__, but has one subtle differences - with the way it handles the release segment. - """ - - try: - version = Version(version) - except InvalidVersion: - # Legacy versions cannot be normalized - return version - - parts = [] - - # Epoch - if version.epoch != 0: - parts.append("{0}!".format(version.epoch)) - - # Release segment - # NB: This strips trailing '.0's to normalize - parts.append(re.sub(r"(\.0)+$", "", ".".join(str(x) for x in version.release))) - - # Pre-release - if version.pre is not None: - parts.append("".join(str(x) for x in version.pre)) - - # Post-release - if version.post is not None: - parts.append(".post{0}".format(version.post)) - - # Development release - if version.dev is not None: - parts.append(".dev{0}".format(version.dev)) - - # Local version segment - if version.local is not None: - parts.append("+{0}".format(version.local)) - - return "".join(parts) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/version.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/version.py deleted file mode 100644 index 95157a1..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/version.py +++ /dev/null @@ -1,420 +0,0 @@ -# This file is dual licensed under the terms of the Apache License, Version -# 2.0, and the BSD License. See the LICENSE file in the root of this repository -# for complete details. -from __future__ import absolute_import, division, print_function - -import collections -import itertools -import re - -from ._structures import Infinity - - -__all__ = ["parse", "Version", "LegacyVersion", "InvalidVersion", "VERSION_PATTERN"] - - -_Version = collections.namedtuple( - "_Version", ["epoch", "release", "dev", "pre", "post", "local"] -) - - -def parse(version): - """ - Parse the given version string and return either a :class:`Version` object - or a :class:`LegacyVersion` object depending on if the given version is - a valid PEP 440 version or a legacy version. - """ - try: - return Version(version) - except InvalidVersion: - return LegacyVersion(version) - - -class InvalidVersion(ValueError): - """ - An invalid version was found, users should refer to PEP 440. - """ - - -class _BaseVersion(object): - def __hash__(self): - return hash(self._key) - - def __lt__(self, other): - return self._compare(other, lambda s, o: s < o) - - def __le__(self, other): - return self._compare(other, lambda s, o: s <= o) - - def __eq__(self, other): - return self._compare(other, lambda s, o: s == o) - - def __ge__(self, other): - return self._compare(other, lambda s, o: s >= o) - - def __gt__(self, other): - return self._compare(other, lambda s, o: s > o) - - def __ne__(self, other): - return self._compare(other, lambda s, o: s != o) - - def _compare(self, other, method): - if not isinstance(other, _BaseVersion): - return NotImplemented - - return method(self._key, other._key) - - -class LegacyVersion(_BaseVersion): - def __init__(self, version): - self._version = str(version) - self._key = _legacy_cmpkey(self._version) - - def __str__(self): - return self._version - - def __repr__(self): - return "<LegacyVersion({0})>".format(repr(str(self))) - - @property - def public(self): - return self._version - - @property - def base_version(self): - return self._version - - @property - def epoch(self): - return -1 - - @property - def release(self): - return None - - @property - def pre(self): - return None - - @property - def post(self): - return None - - @property - def dev(self): - return None - - @property - def local(self): - return None - - @property - def is_prerelease(self): - return False - - @property - def is_postrelease(self): - return False - - @property - def is_devrelease(self): - return False - - -_legacy_version_component_re = re.compile(r"(\d+ | [a-z]+ | \.| -)", re.VERBOSE) - -_legacy_version_replacement_map = { - "pre": "c", - "preview": "c", - "-": "final-", - "rc": "c", - "dev": "@", -} - - -def _parse_version_parts(s): - for part in _legacy_version_component_re.split(s): - part = _legacy_version_replacement_map.get(part, part) - - if not part or part == ".": - continue - - if part[:1] in "0123456789": - # pad for numeric comparison - yield part.zfill(8) - else: - yield "*" + part - - # ensure that alpha/beta/candidate are before final - yield "*final" - - -def _legacy_cmpkey(version): - # We hardcode an epoch of -1 here. A PEP 440 version can only have a epoch - # greater than or equal to 0. This will effectively put the LegacyVersion, - # which uses the defacto standard originally implemented by setuptools, - # as before all PEP 440 versions. - epoch = -1 - - # This scheme is taken from pkg_resources.parse_version setuptools prior to - # it's adoption of the packaging library. - parts = [] - for part in _parse_version_parts(version.lower()): - if part.startswith("*"): - # remove "-" before a prerelease tag - if part < "*final": - while parts and parts[-1] == "*final-": - parts.pop() - - # remove trailing zeros from each series of numeric parts - while parts and parts[-1] == "00000000": - parts.pop() - - parts.append(part) - parts = tuple(parts) - - return epoch, parts - - -# Deliberately not anchored to the start and end of the string, to make it -# easier for 3rd party code to reuse -VERSION_PATTERN = r""" - v? - (?: - (?:(?P<epoch>[0-9]+)!)? # epoch - (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment - (?P<pre> # pre-release - [-_\.]? - (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview)) - [-_\.]? - (?P<pre_n>[0-9]+)? - )? - (?P<post> # post release - (?:-(?P<post_n1>[0-9]+)) - | - (?: - [-_\.]? - (?P<post_l>post|rev|r) - [-_\.]? - (?P<post_n2>[0-9]+)? - ) - )? - (?P<dev> # dev release - [-_\.]? - (?P<dev_l>dev) - [-_\.]? - (?P<dev_n>[0-9]+)? - )? - ) - (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version -""" - - -class Version(_BaseVersion): - - _regex = re.compile(r"^\s*" + VERSION_PATTERN + r"\s*$", re.VERBOSE | re.IGNORECASE) - - def __init__(self, version): - # Validate the version and parse it into pieces - match = self._regex.search(version) - if not match: - raise InvalidVersion("Invalid version: '{0}'".format(version)) - - # Store the parsed out pieces of the version - self._version = _Version( - epoch=int(match.group("epoch")) if match.group("epoch") else 0, - release=tuple(int(i) for i in match.group("release").split(".")), - pre=_parse_letter_version(match.group("pre_l"), match.group("pre_n")), - post=_parse_letter_version( - match.group("post_l"), match.group("post_n1") or match.group("post_n2") - ), - dev=_parse_letter_version(match.group("dev_l"), match.group("dev_n")), - local=_parse_local_version(match.group("local")), - ) - - # Generate a key which will be used for sorting - self._key = _cmpkey( - self._version.epoch, - self._version.release, - self._version.pre, - self._version.post, - self._version.dev, - self._version.local, - ) - - def __repr__(self): - return "<Version({0})>".format(repr(str(self))) - - def __str__(self): - parts = [] - - # Epoch - if self.epoch != 0: - parts.append("{0}!".format(self.epoch)) - - # Release segment - parts.append(".".join(str(x) for x in self.release)) - - # Pre-release - if self.pre is not None: - parts.append("".join(str(x) for x in self.pre)) - - # Post-release - if self.post is not None: - parts.append(".post{0}".format(self.post)) - - # Development release - if self.dev is not None: - parts.append(".dev{0}".format(self.dev)) - - # Local version segment - if self.local is not None: - parts.append("+{0}".format(self.local)) - - return "".join(parts) - - @property - def epoch(self): - return self._version.epoch - - @property - def release(self): - return self._version.release - - @property - def pre(self): - return self._version.pre - - @property - def post(self): - return self._version.post[1] if self._version.post else None - - @property - def dev(self): - return self._version.dev[1] if self._version.dev else None - - @property - def local(self): - if self._version.local: - return ".".join(str(x) for x in self._version.local) - else: - return None - - @property - def public(self): - return str(self).split("+", 1)[0] - - @property - def base_version(self): - parts = [] - - # Epoch - if self.epoch != 0: - parts.append("{0}!".format(self.epoch)) - - # Release segment - parts.append(".".join(str(x) for x in self.release)) - - return "".join(parts) - - @property - def is_prerelease(self): - return self.dev is not None or self.pre is not None - - @property - def is_postrelease(self): - return self.post is not None - - @property - def is_devrelease(self): - return self.dev is not None - - -def _parse_letter_version(letter, number): - if letter: - # We consider there to be an implicit 0 in a pre-release if there is - # not a numeral associated with it. - if number is None: - number = 0 - - # We normalize any letters to their lower case form - letter = letter.lower() - - # We consider some words to be alternate spellings of other words and - # in those cases we want to normalize the spellings to our preferred - # spelling. - if letter == "alpha": - letter = "a" - elif letter == "beta": - letter = "b" - elif letter in ["c", "pre", "preview"]: - letter = "rc" - elif letter in ["rev", "r"]: - letter = "post" - - return letter, int(number) - if not letter and number: - # We assume if we are given a number, but we are not given a letter - # then this is using the implicit post release syntax (e.g. 1.0-1) - letter = "post" - - return letter, int(number) - - -_local_version_separators = re.compile(r"[\._-]") - - -def _parse_local_version(local): - """ - Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve"). - """ - if local is not None: - return tuple( - part.lower() if not part.isdigit() else int(part) - for part in _local_version_separators.split(local) - ) - - -def _cmpkey(epoch, release, pre, post, dev, local): - # When we compare a release version, we want to compare it with all of the - # trailing zeros removed. So we'll use a reverse the list, drop all the now - # leading zeros until we come to something non zero, then take the rest - # re-reverse it back into the correct order and make it a tuple and use - # that for our sorting key. - release = tuple( - reversed(list(itertools.dropwhile(lambda x: x == 0, reversed(release)))) - ) - - # We need to "trick" the sorting algorithm to put 1.0.dev0 before 1.0a0. - # We'll do this by abusing the pre segment, but we _only_ want to do this - # if there is not a pre or a post segment. If we have one of those then - # the normal sorting rules will handle this case correctly. - if pre is None and post is None and dev is not None: - pre = -Infinity - # Versions without a pre-release (except as noted above) should sort after - # those with one. - elif pre is None: - pre = Infinity - - # Versions without a post segment should sort before those with one. - if post is None: - post = -Infinity - - # Versions without a development segment should sort after those with one. - if dev is None: - dev = Infinity - - if local is None: - # Versions without a local segment should sort before those with one. - local = -Infinity - else: - # Versions with a local segment need that segment parsed to implement - # the sorting rules in PEP440. - # - Alpha numeric segments sort before numeric segments - # - Alpha numeric segments sort lexicographically - # - Numeric segments sort numerically - # - Shorter versions sort before longer versions when the prefixes - # match exactly - local = tuple((i, "") if isinstance(i, int) else (-Infinity, i) for i in local) - - return epoch, release, pre, post, dev, local diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/__init__.py deleted file mode 100644 index 9c1a098..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -"""Wrappers to build Python packages using PEP 517 hooks -""" - -__version__ = '0.5.0' diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/_in_process.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/_in_process.py deleted file mode 100644 index d6524b6..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/_in_process.py +++ /dev/null @@ -1,207 +0,0 @@ -"""This is invoked in a subprocess to call the build backend hooks. - -It expects: -- Command line args: hook_name, control_dir -- Environment variable: PEP517_BUILD_BACKEND=entry.point:spec -- control_dir/input.json: - - {"kwargs": {...}} - -Results: -- control_dir/output.json - - {"return_val": ...} -""" -from glob import glob -from importlib import import_module -import os -from os.path import join as pjoin -import re -import shutil -import sys - -# This is run as a script, not a module, so it can't do a relative import -import compat - - -class BackendUnavailable(Exception): - """Raised if we cannot import the backend""" - - -def _build_backend(): - """Find and load the build backend""" - ep = os.environ['PEP517_BUILD_BACKEND'] - mod_path, _, obj_path = ep.partition(':') - try: - obj = import_module(mod_path) - except ImportError: - raise BackendUnavailable - if obj_path: - for path_part in obj_path.split('.'): - obj = getattr(obj, path_part) - return obj - - -def get_requires_for_build_wheel(config_settings): - """Invoke the optional get_requires_for_build_wheel hook - - Returns [] if the hook is not defined. - """ - backend = _build_backend() - try: - hook = backend.get_requires_for_build_wheel - except AttributeError: - return [] - else: - return hook(config_settings) - - -def prepare_metadata_for_build_wheel(metadata_directory, config_settings): - """Invoke optional prepare_metadata_for_build_wheel - - Implements a fallback by building a wheel if the hook isn't defined. - """ - backend = _build_backend() - try: - hook = backend.prepare_metadata_for_build_wheel - except AttributeError: - return _get_wheel_metadata_from_wheel(backend, metadata_directory, - config_settings) - else: - return hook(metadata_directory, config_settings) - - -WHEEL_BUILT_MARKER = 'PEP517_ALREADY_BUILT_WHEEL' - - -def _dist_info_files(whl_zip): - """Identify the .dist-info folder inside a wheel ZipFile.""" - res = [] - for path in whl_zip.namelist(): - m = re.match(r'[^/\\]+-[^/\\]+\.dist-info/', path) - if m: - res.append(path) - if res: - return res - raise Exception("No .dist-info folder found in wheel") - - -def _get_wheel_metadata_from_wheel( - backend, metadata_directory, config_settings): - """Build a wheel and extract the metadata from it. - - Fallback for when the build backend does not - define the 'get_wheel_metadata' hook. - """ - from zipfile import ZipFile - whl_basename = backend.build_wheel(metadata_directory, config_settings) - with open(os.path.join(metadata_directory, WHEEL_BUILT_MARKER), 'wb'): - pass # Touch marker file - - whl_file = os.path.join(metadata_directory, whl_basename) - with ZipFile(whl_file) as zipf: - dist_info = _dist_info_files(zipf) - zipf.extractall(path=metadata_directory, members=dist_info) - return dist_info[0].split('/')[0] - - -def _find_already_built_wheel(metadata_directory): - """Check for a wheel already built during the get_wheel_metadata hook. - """ - if not metadata_directory: - return None - metadata_parent = os.path.dirname(metadata_directory) - if not os.path.isfile(pjoin(metadata_parent, WHEEL_BUILT_MARKER)): - return None - - whl_files = glob(os.path.join(metadata_parent, '*.whl')) - if not whl_files: - print('Found wheel built marker, but no .whl files') - return None - if len(whl_files) > 1: - print('Found multiple .whl files; unspecified behaviour. ' - 'Will call build_wheel.') - return None - - # Exactly one .whl file - return whl_files[0] - - -def build_wheel(wheel_directory, config_settings, metadata_directory=None): - """Invoke the mandatory build_wheel hook. - - If a wheel was already built in the - prepare_metadata_for_build_wheel fallback, this - will copy it rather than rebuilding the wheel. - """ - prebuilt_whl = _find_already_built_wheel(metadata_directory) - if prebuilt_whl: - shutil.copy2(prebuilt_whl, wheel_directory) - return os.path.basename(prebuilt_whl) - - return _build_backend().build_wheel(wheel_directory, config_settings, - metadata_directory) - - -def get_requires_for_build_sdist(config_settings): - """Invoke the optional get_requires_for_build_wheel hook - - Returns [] if the hook is not defined. - """ - backend = _build_backend() - try: - hook = backend.get_requires_for_build_sdist - except AttributeError: - return [] - else: - return hook(config_settings) - - -class _DummyException(Exception): - """Nothing should ever raise this exception""" - - -class GotUnsupportedOperation(Exception): - """For internal use when backend raises UnsupportedOperation""" - - -def build_sdist(sdist_directory, config_settings): - """Invoke the mandatory build_sdist hook.""" - backend = _build_backend() - try: - return backend.build_sdist(sdist_directory, config_settings) - except getattr(backend, 'UnsupportedOperation', _DummyException): - raise GotUnsupportedOperation - - -HOOK_NAMES = { - 'get_requires_for_build_wheel', - 'prepare_metadata_for_build_wheel', - 'build_wheel', - 'get_requires_for_build_sdist', - 'build_sdist', -} - - -def main(): - if len(sys.argv) < 3: - sys.exit("Needs args: hook_name, control_dir") - hook_name = sys.argv[1] - control_dir = sys.argv[2] - if hook_name not in HOOK_NAMES: - sys.exit("Unknown hook: %s" % hook_name) - hook = globals()[hook_name] - - hook_input = compat.read_json(pjoin(control_dir, 'input.json')) - - json_out = {'unsupported': False, 'return_val': None} - try: - json_out['return_val'] = hook(**hook_input['kwargs']) - except BackendUnavailable: - json_out['no_backend'] = True - except GotUnsupportedOperation: - json_out['unsupported'] = True - - compat.write_json(json_out, pjoin(control_dir, 'output.json'), indent=2) - - -if __name__ == '__main__': - main() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/build.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/build.py deleted file mode 100644 index ac6c949..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/build.py +++ /dev/null @@ -1,108 +0,0 @@ -"""Build a project using PEP 517 hooks. -""" -import argparse -import logging -import os -import contextlib -from pip._vendor import pytoml -import shutil -import errno -import tempfile - -from .envbuild import BuildEnvironment -from .wrappers import Pep517HookCaller - -log = logging.getLogger(__name__) - - -@contextlib.contextmanager -def tempdir(): - td = tempfile.mkdtemp() - try: - yield td - finally: - shutil.rmtree(td) - - -def _do_build(hooks, env, dist, dest): - get_requires_name = 'get_requires_for_build_{dist}'.format(**locals()) - get_requires = getattr(hooks, get_requires_name) - reqs = get_requires({}) - log.info('Got build requires: %s', reqs) - - env.pip_install(reqs) - log.info('Installed dynamic build dependencies') - - with tempdir() as td: - log.info('Trying to build %s in %s', dist, td) - build_name = 'build_{dist}'.format(**locals()) - build = getattr(hooks, build_name) - filename = build(td, {}) - source = os.path.join(td, filename) - shutil.move(source, os.path.join(dest, os.path.basename(filename))) - - -def mkdir_p(*args, **kwargs): - """Like `mkdir`, but does not raise an exception if the - directory already exists. - """ - try: - return os.mkdir(*args, **kwargs) - except OSError as exc: - if exc.errno != errno.EEXIST: - raise - - -def build(source_dir, dist, dest=None): - pyproject = os.path.join(source_dir, 'pyproject.toml') - dest = os.path.join(source_dir, dest or 'dist') - mkdir_p(dest) - - with open(pyproject) as f: - pyproject_data = pytoml.load(f) - # Ensure the mandatory data can be loaded - buildsys = pyproject_data['build-system'] - requires = buildsys['requires'] - backend = buildsys['build-backend'] - - hooks = Pep517HookCaller(source_dir, backend) - - with BuildEnvironment() as env: - env.pip_install(requires) - _do_build(hooks, env, dist, dest) - - -parser = argparse.ArgumentParser() -parser.add_argument( - 'source_dir', - help="A directory containing pyproject.toml", -) -parser.add_argument( - '--binary', '-b', - action='store_true', - default=False, -) -parser.add_argument( - '--source', '-s', - action='store_true', - default=False, -) -parser.add_argument( - '--out-dir', '-o', - help="Destination in which to save the builds relative to source dir", -) - - -def main(args): - # determine which dists to build - dists = list(filter(None, ( - 'sdist' if args.source or not args.binary else None, - 'wheel' if args.binary or not args.source else None, - ))) - - for dist in dists: - build(args.source_dir, dist, args.out_dir) - - -if __name__ == '__main__': - main(parser.parse_args()) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/check.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/check.py deleted file mode 100644 index f4cdc6b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/check.py +++ /dev/null @@ -1,202 +0,0 @@ -"""Check a project and backend by attempting to build using PEP 517 hooks. -""" -import argparse -import logging -import os -from os.path import isfile, join as pjoin -from pip._vendor.pytoml import TomlError, load as toml_load -import shutil -from subprocess import CalledProcessError -import sys -import tarfile -from tempfile import mkdtemp -import zipfile - -from .colorlog import enable_colourful_output -from .envbuild import BuildEnvironment -from .wrappers import Pep517HookCaller - -log = logging.getLogger(__name__) - - -def check_build_sdist(hooks, build_sys_requires): - with BuildEnvironment() as env: - try: - env.pip_install(build_sys_requires) - log.info('Installed static build dependencies') - except CalledProcessError: - log.error('Failed to install static build dependencies') - return False - - try: - reqs = hooks.get_requires_for_build_sdist({}) - log.info('Got build requires: %s', reqs) - except Exception: - log.error('Failure in get_requires_for_build_sdist', exc_info=True) - return False - - try: - env.pip_install(reqs) - log.info('Installed dynamic build dependencies') - except CalledProcessError: - log.error('Failed to install dynamic build dependencies') - return False - - td = mkdtemp() - log.info('Trying to build sdist in %s', td) - try: - try: - filename = hooks.build_sdist(td, {}) - log.info('build_sdist returned %r', filename) - except Exception: - log.info('Failure in build_sdist', exc_info=True) - return False - - if not filename.endswith('.tar.gz'): - log.error( - "Filename %s doesn't have .tar.gz extension", filename) - return False - - path = pjoin(td, filename) - if isfile(path): - log.info("Output file %s exists", path) - else: - log.error("Output file %s does not exist", path) - return False - - if tarfile.is_tarfile(path): - log.info("Output file is a tar file") - else: - log.error("Output file is not a tar file") - return False - - finally: - shutil.rmtree(td) - - return True - - -def check_build_wheel(hooks, build_sys_requires): - with BuildEnvironment() as env: - try: - env.pip_install(build_sys_requires) - log.info('Installed static build dependencies') - except CalledProcessError: - log.error('Failed to install static build dependencies') - return False - - try: - reqs = hooks.get_requires_for_build_wheel({}) - log.info('Got build requires: %s', reqs) - except Exception: - log.error('Failure in get_requires_for_build_sdist', exc_info=True) - return False - - try: - env.pip_install(reqs) - log.info('Installed dynamic build dependencies') - except CalledProcessError: - log.error('Failed to install dynamic build dependencies') - return False - - td = mkdtemp() - log.info('Trying to build wheel in %s', td) - try: - try: - filename = hooks.build_wheel(td, {}) - log.info('build_wheel returned %r', filename) - except Exception: - log.info('Failure in build_wheel', exc_info=True) - return False - - if not filename.endswith('.whl'): - log.error("Filename %s doesn't have .whl extension", filename) - return False - - path = pjoin(td, filename) - if isfile(path): - log.info("Output file %s exists", path) - else: - log.error("Output file %s does not exist", path) - return False - - if zipfile.is_zipfile(path): - log.info("Output file is a zip file") - else: - log.error("Output file is not a zip file") - return False - - finally: - shutil.rmtree(td) - - return True - - -def check(source_dir): - pyproject = pjoin(source_dir, 'pyproject.toml') - if isfile(pyproject): - log.info('Found pyproject.toml') - else: - log.error('Missing pyproject.toml') - return False - - try: - with open(pyproject) as f: - pyproject_data = toml_load(f) - # Ensure the mandatory data can be loaded - buildsys = pyproject_data['build-system'] - requires = buildsys['requires'] - backend = buildsys['build-backend'] - log.info('Loaded pyproject.toml') - except (TomlError, KeyError): - log.error("Invalid pyproject.toml", exc_info=True) - return False - - hooks = Pep517HookCaller(source_dir, backend) - - sdist_ok = check_build_sdist(hooks, requires) - wheel_ok = check_build_wheel(hooks, requires) - - if not sdist_ok: - log.warning('Sdist checks failed; scroll up to see') - if not wheel_ok: - log.warning('Wheel checks failed') - - return sdist_ok - - -def main(argv=None): - ap = argparse.ArgumentParser() - ap.add_argument( - 'source_dir', - help="A directory containing pyproject.toml") - args = ap.parse_args(argv) - - enable_colourful_output() - - ok = check(args.source_dir) - - if ok: - print(ansi('Checks passed', 'green')) - else: - print(ansi('Checks failed', 'red')) - sys.exit(1) - - -ansi_codes = { - 'reset': '\x1b[0m', - 'bold': '\x1b[1m', - 'red': '\x1b[31m', - 'green': '\x1b[32m', -} - - -def ansi(s, attr): - if os.name != 'nt' and sys.stdout.isatty(): - return ansi_codes[attr] + str(s) + ansi_codes['reset'] - else: - return str(s) - - -if __name__ == '__main__': - main() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/colorlog.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/colorlog.py deleted file mode 100644 index 69c8a59..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/colorlog.py +++ /dev/null @@ -1,115 +0,0 @@ -"""Nicer log formatting with colours. - -Code copied from Tornado, Apache licensed. -""" -# Copyright 2012 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import logging -import sys - -try: - import curses -except ImportError: - curses = None - - -def _stderr_supports_color(): - color = False - if curses and hasattr(sys.stderr, 'isatty') and sys.stderr.isatty(): - try: - curses.setupterm() - if curses.tigetnum("colors") > 0: - color = True - except Exception: - pass - return color - - -class LogFormatter(logging.Formatter): - """Log formatter with colour support - """ - DEFAULT_COLORS = { - logging.INFO: 2, # Green - logging.WARNING: 3, # Yellow - logging.ERROR: 1, # Red - logging.CRITICAL: 1, - } - - def __init__(self, color=True, datefmt=None): - r""" - :arg bool color: Enables color support. - :arg string fmt: Log message format. - It will be applied to the attributes dict of log records. The - text between ``%(color)s`` and ``%(end_color)s`` will be colored - depending on the level if color support is on. - :arg dict colors: color mappings from logging level to terminal color - code - :arg string datefmt: Datetime format. - Used for formatting ``(asctime)`` placeholder in ``prefix_fmt``. - .. versionchanged:: 3.2 - Added ``fmt`` and ``datefmt`` arguments. - """ - logging.Formatter.__init__(self, datefmt=datefmt) - self._colors = {} - if color and _stderr_supports_color(): - # The curses module has some str/bytes confusion in - # python3. Until version 3.2.3, most methods return - # bytes, but only accept strings. In addition, we want to - # output these strings with the logging module, which - # works with unicode strings. The explicit calls to - # unicode() below are harmless in python2 but will do the - # right conversion in python 3. - fg_color = (curses.tigetstr("setaf") or - curses.tigetstr("setf") or "") - if (3, 0) < sys.version_info < (3, 2, 3): - fg_color = str(fg_color, "ascii") - - for levelno, code in self.DEFAULT_COLORS.items(): - self._colors[levelno] = str( - curses.tparm(fg_color, code), "ascii") - self._normal = str(curses.tigetstr("sgr0"), "ascii") - - scr = curses.initscr() - self.termwidth = scr.getmaxyx()[1] - curses.endwin() - else: - self._normal = '' - # Default width is usually 80, but too wide is - # worse than too narrow - self.termwidth = 70 - - def formatMessage(self, record): - mlen = len(record.message) - right_text = '{initial}-{name}'.format(initial=record.levelname[0], - name=record.name) - if mlen + len(right_text) < self.termwidth: - space = ' ' * (self.termwidth - (mlen + len(right_text))) - else: - space = ' ' - - if record.levelno in self._colors: - start_color = self._colors[record.levelno] - end_color = self._normal - else: - start_color = end_color = '' - - return record.message + space + start_color + right_text + end_color - - -def enable_colourful_output(level=logging.INFO): - handler = logging.StreamHandler() - handler.setFormatter(LogFormatter()) - logging.root.addHandler(handler) - logging.root.setLevel(level) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/compat.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/compat.py deleted file mode 100644 index 01c66fc..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/compat.py +++ /dev/null @@ -1,23 +0,0 @@ -"""Handle reading and writing JSON in UTF-8, on Python 3 and 2.""" -import json -import sys - -if sys.version_info[0] >= 3: - # Python 3 - def write_json(obj, path, **kwargs): - with open(path, 'w', encoding='utf-8') as f: - json.dump(obj, f, **kwargs) - - def read_json(path): - with open(path, 'r', encoding='utf-8') as f: - return json.load(f) - -else: - # Python 2 - def write_json(obj, path, **kwargs): - with open(path, 'wb') as f: - json.dump(obj, f, encoding='utf-8', **kwargs) - - def read_json(path): - with open(path, 'rb') as f: - return json.load(f) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/envbuild.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/envbuild.py deleted file mode 100644 index f7ac5f4..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/envbuild.py +++ /dev/null @@ -1,158 +0,0 @@ -"""Build wheels/sdists by installing build deps to a temporary environment. -""" - -import os -import logging -from pip._vendor import pytoml -import shutil -from subprocess import check_call -import sys -from sysconfig import get_paths -from tempfile import mkdtemp - -from .wrappers import Pep517HookCaller - -log = logging.getLogger(__name__) - - -def _load_pyproject(source_dir): - with open(os.path.join(source_dir, 'pyproject.toml')) as f: - pyproject_data = pytoml.load(f) - buildsys = pyproject_data['build-system'] - return buildsys['requires'], buildsys['build-backend'] - - -class BuildEnvironment(object): - """Context manager to install build deps in a simple temporary environment - - Based on code I wrote for pip, which is MIT licensed. - """ - # Copyright (c) 2008-2016 The pip developers (see AUTHORS.txt file) - # - # 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. - - path = None - - def __init__(self, cleanup=True): - self._cleanup = cleanup - - def __enter__(self): - self.path = mkdtemp(prefix='pep517-build-env-') - log.info('Temporary build environment: %s', self.path) - - self.save_path = os.environ.get('PATH', None) - self.save_pythonpath = os.environ.get('PYTHONPATH', None) - - install_scheme = 'nt' if (os.name == 'nt') else 'posix_prefix' - install_dirs = get_paths(install_scheme, vars={ - 'base': self.path, - 'platbase': self.path, - }) - - scripts = install_dirs['scripts'] - if self.save_path: - os.environ['PATH'] = scripts + os.pathsep + self.save_path - else: - os.environ['PATH'] = scripts + os.pathsep + os.defpath - - if install_dirs['purelib'] == install_dirs['platlib']: - lib_dirs = install_dirs['purelib'] - else: - lib_dirs = install_dirs['purelib'] + os.pathsep + \ - install_dirs['platlib'] - if self.save_pythonpath: - os.environ['PYTHONPATH'] = lib_dirs + os.pathsep + \ - self.save_pythonpath - else: - os.environ['PYTHONPATH'] = lib_dirs - - return self - - def pip_install(self, reqs): - """Install dependencies into this env by calling pip in a subprocess""" - if not reqs: - return - log.info('Calling pip to install %s', reqs) - check_call([ - sys.executable, '-m', 'pip', 'install', '--ignore-installed', - '--prefix', self.path] + list(reqs)) - - def __exit__(self, exc_type, exc_val, exc_tb): - needs_cleanup = ( - self._cleanup and - self.path is not None and - os.path.isdir(self.path) - ) - if needs_cleanup: - shutil.rmtree(self.path) - - if self.save_path is None: - os.environ.pop('PATH', None) - else: - os.environ['PATH'] = self.save_path - - if self.save_pythonpath is None: - os.environ.pop('PYTHONPATH', None) - else: - os.environ['PYTHONPATH'] = self.save_pythonpath - - -def build_wheel(source_dir, wheel_dir, config_settings=None): - """Build a wheel from a source directory using PEP 517 hooks. - - :param str source_dir: Source directory containing pyproject.toml - :param str wheel_dir: Target directory to create wheel in - :param dict config_settings: Options to pass to build backend - - This is a blocking function which will run pip in a subprocess to install - build requirements. - """ - if config_settings is None: - config_settings = {} - requires, backend = _load_pyproject(source_dir) - hooks = Pep517HookCaller(source_dir, backend) - - with BuildEnvironment() as env: - env.pip_install(requires) - reqs = hooks.get_requires_for_build_wheel(config_settings) - env.pip_install(reqs) - return hooks.build_wheel(wheel_dir, config_settings) - - -def build_sdist(source_dir, sdist_dir, config_settings=None): - """Build an sdist from a source directory using PEP 517 hooks. - - :param str source_dir: Source directory containing pyproject.toml - :param str sdist_dir: Target directory to place sdist in - :param dict config_settings: Options to pass to build backend - - This is a blocking function which will run pip in a subprocess to install - build requirements. - """ - if config_settings is None: - config_settings = {} - requires, backend = _load_pyproject(source_dir) - hooks = Pep517HookCaller(source_dir, backend) - - with BuildEnvironment() as env: - env.pip_install(requires) - reqs = hooks.get_requires_for_build_sdist(config_settings) - env.pip_install(reqs) - return hooks.build_sdist(sdist_dir, config_settings) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/wrappers.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/wrappers.py deleted file mode 100644 index b14b899..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/wrappers.py +++ /dev/null @@ -1,163 +0,0 @@ -from contextlib import contextmanager -import os -from os.path import dirname, abspath, join as pjoin -import shutil -from subprocess import check_call -import sys -from tempfile import mkdtemp - -from . import compat - -_in_proc_script = pjoin(dirname(abspath(__file__)), '_in_process.py') - - -@contextmanager -def tempdir(): - td = mkdtemp() - try: - yield td - finally: - shutil.rmtree(td) - - -class BackendUnavailable(Exception): - """Will be raised if the backend cannot be imported in the hook process.""" - - -class UnsupportedOperation(Exception): - """May be raised by build_sdist if the backend indicates that it can't.""" - - -def default_subprocess_runner(cmd, cwd=None, extra_environ=None): - """The default method of calling the wrapper subprocess.""" - env = os.environ.copy() - if extra_environ: - env.update(extra_environ) - - check_call(cmd, cwd=cwd, env=env) - - -class Pep517HookCaller(object): - """A wrapper around a source directory to be built with a PEP 517 backend. - - source_dir : The path to the source directory, containing pyproject.toml. - backend : The build backend spec, as per PEP 517, from pyproject.toml. - """ - def __init__(self, source_dir, build_backend): - self.source_dir = abspath(source_dir) - self.build_backend = build_backend - self._subprocess_runner = default_subprocess_runner - - # TODO: Is this over-engineered? Maybe frontends only need to - # set this when creating the wrapper, not on every call. - @contextmanager - def subprocess_runner(self, runner): - prev = self._subprocess_runner - self._subprocess_runner = runner - yield - self._subprocess_runner = prev - - def get_requires_for_build_wheel(self, config_settings=None): - """Identify packages required for building a wheel - - Returns a list of dependency specifications, e.g.: - ["wheel >= 0.25", "setuptools"] - - This does not include requirements specified in pyproject.toml. - It returns the result of calling the equivalently named hook in a - subprocess. - """ - return self._call_hook('get_requires_for_build_wheel', { - 'config_settings': config_settings - }) - - def prepare_metadata_for_build_wheel( - self, metadata_directory, config_settings=None): - """Prepare a *.dist-info folder with metadata for this project. - - Returns the name of the newly created folder. - - If the build backend defines a hook with this name, it will be called - in a subprocess. If not, the backend will be asked to build a wheel, - and the dist-info extracted from that. - """ - return self._call_hook('prepare_metadata_for_build_wheel', { - 'metadata_directory': abspath(metadata_directory), - 'config_settings': config_settings, - }) - - def build_wheel( - self, wheel_directory, config_settings=None, - metadata_directory=None): - """Build a wheel from this project. - - Returns the name of the newly created file. - - In general, this will call the 'build_wheel' hook in the backend. - However, if that was previously called by - 'prepare_metadata_for_build_wheel', and the same metadata_directory is - used, the previously built wheel will be copied to wheel_directory. - """ - if metadata_directory is not None: - metadata_directory = abspath(metadata_directory) - return self._call_hook('build_wheel', { - 'wheel_directory': abspath(wheel_directory), - 'config_settings': config_settings, - 'metadata_directory': metadata_directory, - }) - - def get_requires_for_build_sdist(self, config_settings=None): - """Identify packages required for building a wheel - - Returns a list of dependency specifications, e.g.: - ["setuptools >= 26"] - - This does not include requirements specified in pyproject.toml. - It returns the result of calling the equivalently named hook in a - subprocess. - """ - return self._call_hook('get_requires_for_build_sdist', { - 'config_settings': config_settings - }) - - def build_sdist(self, sdist_directory, config_settings=None): - """Build an sdist from this project. - - Returns the name of the newly created file. - - This calls the 'build_sdist' backend hook in a subprocess. - """ - return self._call_hook('build_sdist', { - 'sdist_directory': abspath(sdist_directory), - 'config_settings': config_settings, - }) - - def _call_hook(self, hook_name, kwargs): - # On Python 2, pytoml returns Unicode values (which is correct) but the - # environment passed to check_call needs to contain string values. We - # convert here by encoding using ASCII (the backend can only contain - # letters, digits and _, . and : characters, and will be used as a - # Python identifier, so non-ASCII content is wrong on Python 2 in - # any case). - if sys.version_info[0] == 2: - build_backend = self.build_backend.encode('ASCII') - else: - build_backend = self.build_backend - - with tempdir() as td: - compat.write_json({'kwargs': kwargs}, pjoin(td, 'input.json'), - indent=2) - - # Run the hook in a subprocess - self._subprocess_runner( - [sys.executable, _in_proc_script, hook_name, td], - cwd=self.source_dir, - extra_environ={'PEP517_BUILD_BACKEND': build_backend} - ) - - data = compat.read_json(pjoin(td, 'output.json')) - if data.get('unsupported'): - raise UnsupportedOperation - if data.get('no_backend'): - raise BackendUnavailable - return data['return_val'] diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/__init__.py deleted file mode 100644 index 9c4fd8e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/__init__.py +++ /dev/null @@ -1,3171 +0,0 @@ -# coding: utf-8 -""" -Package resource API --------------------- - -A resource is a logical file contained within a package, or a logical -subdirectory thereof. The package resource API expects resource names -to have their path parts separated with ``/``, *not* whatever the local -path separator is. Do not use os.path operations to manipulate resource -names being passed into the API. - -The package resource API is designed to work with normal filesystem packages, -.egg files, and unpacked .egg files. It can also work in a limited way with -.zip files and with custom PEP 302 loaders that support the ``get_data()`` -method. -""" - -from __future__ import absolute_import - -import sys -import os -import io -import time -import re -import types -import zipfile -import zipimport -import warnings -import stat -import functools -import pkgutil -import operator -import platform -import collections -import plistlib -import email.parser -import errno -import tempfile -import textwrap -import itertools -import inspect -from pkgutil import get_importer - -try: - import _imp -except ImportError: - # Python 3.2 compatibility - import imp as _imp - -try: - FileExistsError -except NameError: - FileExistsError = OSError - -from pip._vendor import six -from pip._vendor.six.moves import urllib, map, filter - -# capture these to bypass sandboxing -from os import utime -try: - from os import mkdir, rename, unlink - WRITE_SUPPORT = True -except ImportError: - # no write support, probably under GAE - WRITE_SUPPORT = False - -from os import open as os_open -from os.path import isdir, split - -try: - import importlib.machinery as importlib_machinery - # access attribute to force import under delayed import mechanisms. - importlib_machinery.__name__ -except ImportError: - importlib_machinery = None - -from . import py31compat -from pip._vendor import appdirs -from pip._vendor import packaging -__import__('pip._vendor.packaging.version') -__import__('pip._vendor.packaging.specifiers') -__import__('pip._vendor.packaging.requirements') -__import__('pip._vendor.packaging.markers') - - -__metaclass__ = type - - -if (3, 0) < sys.version_info < (3, 4): - raise RuntimeError("Python 3.4 or later is required") - -if six.PY2: - # Those builtin exceptions are only defined in Python 3 - PermissionError = None - NotADirectoryError = None - -# declare some globals that will be defined later to -# satisfy the linters. -require = None -working_set = None -add_activation_listener = None -resources_stream = None -cleanup_resources = None -resource_dir = None -resource_stream = None -set_extraction_path = None -resource_isdir = None -resource_string = None -iter_entry_points = None -resource_listdir = None -resource_filename = None -resource_exists = None -_distribution_finders = None -_namespace_handlers = None -_namespace_packages = None - - -class PEP440Warning(RuntimeWarning): - """ - Used when there is an issue with a version or specifier not complying with - PEP 440. - """ - - -def parse_version(v): - try: - return packaging.version.Version(v) - except packaging.version.InvalidVersion: - return packaging.version.LegacyVersion(v) - - -_state_vars = {} - - -def _declare_state(vartype, **kw): - globals().update(kw) - _state_vars.update(dict.fromkeys(kw, vartype)) - - -def __getstate__(): - state = {} - g = globals() - for k, v in _state_vars.items(): - state[k] = g['_sget_' + v](g[k]) - return state - - -def __setstate__(state): - g = globals() - for k, v in state.items(): - g['_sset_' + _state_vars[k]](k, g[k], v) - return state - - -def _sget_dict(val): - return val.copy() - - -def _sset_dict(key, ob, state): - ob.clear() - ob.update(state) - - -def _sget_object(val): - return val.__getstate__() - - -def _sset_object(key, ob, state): - ob.__setstate__(state) - - -_sget_none = _sset_none = lambda *args: None - - -def get_supported_platform(): - """Return this platform's maximum compatible version. - - distutils.util.get_platform() normally reports the minimum version - of Mac OS X that would be required to *use* extensions produced by - distutils. But what we want when checking compatibility is to know the - version of Mac OS X that we are *running*. To allow usage of packages that - explicitly require a newer version of Mac OS X, we must also know the - current version of the OS. - - If this condition occurs for any other platform with a version in its - platform strings, this function should be extended accordingly. - """ - plat = get_build_platform() - m = macosVersionString.match(plat) - if m is not None and sys.platform == "darwin": - try: - plat = 'macosx-%s-%s' % ('.'.join(_macosx_vers()[:2]), m.group(3)) - except ValueError: - # not Mac OS X - pass - return plat - - -__all__ = [ - # Basic resource access and distribution/entry point discovery - 'require', 'run_script', 'get_provider', 'get_distribution', - 'load_entry_point', 'get_entry_map', 'get_entry_info', - 'iter_entry_points', - 'resource_string', 'resource_stream', 'resource_filename', - 'resource_listdir', 'resource_exists', 'resource_isdir', - - # Environmental control - 'declare_namespace', 'working_set', 'add_activation_listener', - 'find_distributions', 'set_extraction_path', 'cleanup_resources', - 'get_default_cache', - - # Primary implementation classes - 'Environment', 'WorkingSet', 'ResourceManager', - 'Distribution', 'Requirement', 'EntryPoint', - - # Exceptions - 'ResolutionError', 'VersionConflict', 'DistributionNotFound', - 'UnknownExtra', 'ExtractionError', - - # Warnings - 'PEP440Warning', - - # Parsing functions and string utilities - 'parse_requirements', 'parse_version', 'safe_name', 'safe_version', - 'get_platform', 'compatible_platforms', 'yield_lines', 'split_sections', - 'safe_extra', 'to_filename', 'invalid_marker', 'evaluate_marker', - - # filesystem utilities - 'ensure_directory', 'normalize_path', - - # Distribution "precedence" constants - 'EGG_DIST', 'BINARY_DIST', 'SOURCE_DIST', 'CHECKOUT_DIST', 'DEVELOP_DIST', - - # "Provider" interfaces, implementations, and registration/lookup APIs - 'IMetadataProvider', 'IResourceProvider', 'FileMetadata', - 'PathMetadata', 'EggMetadata', 'EmptyProvider', 'empty_provider', - 'NullProvider', 'EggProvider', 'DefaultProvider', 'ZipProvider', - 'register_finder', 'register_namespace_handler', 'register_loader_type', - 'fixup_namespace_packages', 'get_importer', - - # Warnings - 'PkgResourcesDeprecationWarning', - - # Deprecated/backward compatibility only - 'run_main', 'AvailableDistributions', -] - - -class ResolutionError(Exception): - """Abstract base for dependency resolution errors""" - - def __repr__(self): - return self.__class__.__name__ + repr(self.args) - - -class VersionConflict(ResolutionError): - """ - An already-installed version conflicts with the requested version. - - Should be initialized with the installed Distribution and the requested - Requirement. - """ - - _template = "{self.dist} is installed but {self.req} is required" - - @property - def dist(self): - return self.args[0] - - @property - def req(self): - return self.args[1] - - def report(self): - return self._template.format(**locals()) - - def with_context(self, required_by): - """ - If required_by is non-empty, return a version of self that is a - ContextualVersionConflict. - """ - if not required_by: - return self - args = self.args + (required_by,) - return ContextualVersionConflict(*args) - - -class ContextualVersionConflict(VersionConflict): - """ - A VersionConflict that accepts a third parameter, the set of the - requirements that required the installed Distribution. - """ - - _template = VersionConflict._template + ' by {self.required_by}' - - @property - def required_by(self): - return self.args[2] - - -class DistributionNotFound(ResolutionError): - """A requested distribution was not found""" - - _template = ("The '{self.req}' distribution was not found " - "and is required by {self.requirers_str}") - - @property - def req(self): - return self.args[0] - - @property - def requirers(self): - return self.args[1] - - @property - def requirers_str(self): - if not self.requirers: - return 'the application' - return ', '.join(self.requirers) - - def report(self): - return self._template.format(**locals()) - - def __str__(self): - return self.report() - - -class UnknownExtra(ResolutionError): - """Distribution doesn't have an "extra feature" of the given name""" - - -_provider_factories = {} - -PY_MAJOR = sys.version[:3] -EGG_DIST = 3 -BINARY_DIST = 2 -SOURCE_DIST = 1 -CHECKOUT_DIST = 0 -DEVELOP_DIST = -1 - - -def register_loader_type(loader_type, provider_factory): - """Register `provider_factory` to make providers for `loader_type` - - `loader_type` is the type or class of a PEP 302 ``module.__loader__``, - and `provider_factory` is a function that, passed a *module* object, - returns an ``IResourceProvider`` for that module. - """ - _provider_factories[loader_type] = provider_factory - - -def get_provider(moduleOrReq): - """Return an IResourceProvider for the named module or requirement""" - if isinstance(moduleOrReq, Requirement): - return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0] - try: - module = sys.modules[moduleOrReq] - except KeyError: - __import__(moduleOrReq) - module = sys.modules[moduleOrReq] - loader = getattr(module, '__loader__', None) - return _find_adapter(_provider_factories, loader)(module) - - -def _macosx_vers(_cache=[]): - if not _cache: - version = platform.mac_ver()[0] - # fallback for MacPorts - if version == '': - plist = '/System/Library/CoreServices/SystemVersion.plist' - if os.path.exists(plist): - if hasattr(plistlib, 'readPlist'): - plist_content = plistlib.readPlist(plist) - if 'ProductVersion' in plist_content: - version = plist_content['ProductVersion'] - - _cache.append(version.split('.')) - return _cache[0] - - -def _macosx_arch(machine): - return {'PowerPC': 'ppc', 'Power_Macintosh': 'ppc'}.get(machine, machine) - - -def get_build_platform(): - """Return this platform's string for platform-specific distributions - - XXX Currently this is the same as ``distutils.util.get_platform()``, but it - needs some hacks for Linux and Mac OS X. - """ - from sysconfig import get_platform - - plat = get_platform() - if sys.platform == "darwin" and not plat.startswith('macosx-'): - try: - version = _macosx_vers() - machine = os.uname()[4].replace(" ", "_") - return "macosx-%d.%d-%s" % ( - int(version[0]), int(version[1]), - _macosx_arch(machine), - ) - except ValueError: - # if someone is running a non-Mac darwin system, this will fall - # through to the default implementation - pass - return plat - - -macosVersionString = re.compile(r"macosx-(\d+)\.(\d+)-(.*)") -darwinVersionString = re.compile(r"darwin-(\d+)\.(\d+)\.(\d+)-(.*)") -# XXX backward compat -get_platform = get_build_platform - - -def compatible_platforms(provided, required): - """Can code for the `provided` platform run on the `required` platform? - - Returns true if either platform is ``None``, or the platforms are equal. - - XXX Needs compatibility checks for Linux and other unixy OSes. - """ - if provided is None or required is None or provided == required: - # easy case - return True - - # Mac OS X special cases - reqMac = macosVersionString.match(required) - if reqMac: - provMac = macosVersionString.match(provided) - - # is this a Mac package? - if not provMac: - # this is backwards compatibility for packages built before - # setuptools 0.6. All packages built after this point will - # use the new macosx designation. - provDarwin = darwinVersionString.match(provided) - if provDarwin: - dversion = int(provDarwin.group(1)) - macosversion = "%s.%s" % (reqMac.group(1), reqMac.group(2)) - if dversion == 7 and macosversion >= "10.3" or \ - dversion == 8 and macosversion >= "10.4": - return True - # egg isn't macosx or legacy darwin - return False - - # are they the same major version and machine type? - if provMac.group(1) != reqMac.group(1) or \ - provMac.group(3) != reqMac.group(3): - return False - - # is the required OS major update >= the provided one? - if int(provMac.group(2)) > int(reqMac.group(2)): - return False - - return True - - # XXX Linux and other platforms' special cases should go here - return False - - -def run_script(dist_spec, script_name): - """Locate distribution `dist_spec` and run its `script_name` script""" - ns = sys._getframe(1).f_globals - name = ns['__name__'] - ns.clear() - ns['__name__'] = name - require(dist_spec)[0].run_script(script_name, ns) - - -# backward compatibility -run_main = run_script - - -def get_distribution(dist): - """Return a current distribution object for a Requirement or string""" - if isinstance(dist, six.string_types): - dist = Requirement.parse(dist) - if isinstance(dist, Requirement): - dist = get_provider(dist) - if not isinstance(dist, Distribution): - raise TypeError("Expected string, Requirement, or Distribution", dist) - return dist - - -def load_entry_point(dist, group, name): - """Return `name` entry point of `group` for `dist` or raise ImportError""" - return get_distribution(dist).load_entry_point(group, name) - - -def get_entry_map(dist, group=None): - """Return the entry point map for `group`, or the full entry map""" - return get_distribution(dist).get_entry_map(group) - - -def get_entry_info(dist, group, name): - """Return the EntryPoint object for `group`+`name`, or ``None``""" - return get_distribution(dist).get_entry_info(group, name) - - -class IMetadataProvider: - def has_metadata(name): - """Does the package's distribution contain the named metadata?""" - - def get_metadata(name): - """The named metadata resource as a string""" - - def get_metadata_lines(name): - """Yield named metadata resource as list of non-blank non-comment lines - - Leading and trailing whitespace is stripped from each line, and lines - with ``#`` as the first non-blank character are omitted.""" - - def metadata_isdir(name): - """Is the named metadata a directory? (like ``os.path.isdir()``)""" - - def metadata_listdir(name): - """List of metadata names in the directory (like ``os.listdir()``)""" - - def run_script(script_name, namespace): - """Execute the named script in the supplied namespace dictionary""" - - -class IResourceProvider(IMetadataProvider): - """An object that provides access to package resources""" - - def get_resource_filename(manager, resource_name): - """Return a true filesystem path for `resource_name` - - `manager` must be an ``IResourceManager``""" - - def get_resource_stream(manager, resource_name): - """Return a readable file-like object for `resource_name` - - `manager` must be an ``IResourceManager``""" - - def get_resource_string(manager, resource_name): - """Return a string containing the contents of `resource_name` - - `manager` must be an ``IResourceManager``""" - - def has_resource(resource_name): - """Does the package contain the named resource?""" - - def resource_isdir(resource_name): - """Is the named resource a directory? (like ``os.path.isdir()``)""" - - def resource_listdir(resource_name): - """List of resource names in the directory (like ``os.listdir()``)""" - - -class WorkingSet: - """A collection of active distributions on sys.path (or a similar list)""" - - def __init__(self, entries=None): - """Create working set from list of path entries (default=sys.path)""" - self.entries = [] - self.entry_keys = {} - self.by_key = {} - self.callbacks = [] - - if entries is None: - entries = sys.path - - for entry in entries: - self.add_entry(entry) - - @classmethod - def _build_master(cls): - """ - Prepare the master working set. - """ - ws = cls() - try: - from __main__ import __requires__ - except ImportError: - # The main program does not list any requirements - return ws - - # ensure the requirements are met - try: - ws.require(__requires__) - except VersionConflict: - return cls._build_from_requirements(__requires__) - - return ws - - @classmethod - def _build_from_requirements(cls, req_spec): - """ - Build a working set from a requirement spec. Rewrites sys.path. - """ - # try it without defaults already on sys.path - # by starting with an empty path - ws = cls([]) - reqs = parse_requirements(req_spec) - dists = ws.resolve(reqs, Environment()) - for dist in dists: - ws.add(dist) - - # add any missing entries from sys.path - for entry in sys.path: - if entry not in ws.entries: - ws.add_entry(entry) - - # then copy back to sys.path - sys.path[:] = ws.entries - return ws - - def add_entry(self, entry): - """Add a path item to ``.entries``, finding any distributions on it - - ``find_distributions(entry, True)`` is used to find distributions - corresponding to the path entry, and they are added. `entry` is - always appended to ``.entries``, even if it is already present. - (This is because ``sys.path`` can contain the same value more than - once, and the ``.entries`` of the ``sys.path`` WorkingSet should always - equal ``sys.path``.) - """ - self.entry_keys.setdefault(entry, []) - self.entries.append(entry) - for dist in find_distributions(entry, True): - self.add(dist, entry, False) - - def __contains__(self, dist): - """True if `dist` is the active distribution for its project""" - return self.by_key.get(dist.key) == dist - - def find(self, req): - """Find a distribution matching requirement `req` - - If there is an active distribution for the requested project, this - returns it as long as it meets the version requirement specified by - `req`. But, if there is an active distribution for the project and it - does *not* meet the `req` requirement, ``VersionConflict`` is raised. - If there is no active distribution for the requested project, ``None`` - is returned. - """ - dist = self.by_key.get(req.key) - if dist is not None and dist not in req: - # XXX add more info - raise VersionConflict(dist, req) - return dist - - def iter_entry_points(self, group, name=None): - """Yield entry point objects from `group` matching `name` - - If `name` is None, yields all entry points in `group` from all - distributions in the working set, otherwise only ones matching - both `group` and `name` are yielded (in distribution order). - """ - return ( - entry - for dist in self - for entry in dist.get_entry_map(group).values() - if name is None or name == entry.name - ) - - def run_script(self, requires, script_name): - """Locate distribution for `requires` and run `script_name` script""" - ns = sys._getframe(1).f_globals - name = ns['__name__'] - ns.clear() - ns['__name__'] = name - self.require(requires)[0].run_script(script_name, ns) - - def __iter__(self): - """Yield distributions for non-duplicate projects in the working set - - The yield order is the order in which the items' path entries were - added to the working set. - """ - seen = {} - for item in self.entries: - if item not in self.entry_keys: - # workaround a cache issue - continue - - for key in self.entry_keys[item]: - if key not in seen: - seen[key] = 1 - yield self.by_key[key] - - def add(self, dist, entry=None, insert=True, replace=False): - """Add `dist` to working set, associated with `entry` - - If `entry` is unspecified, it defaults to the ``.location`` of `dist`. - On exit from this routine, `entry` is added to the end of the working - set's ``.entries`` (if it wasn't already present). - - `dist` is only added to the working set if it's for a project that - doesn't already have a distribution in the set, unless `replace=True`. - If it's added, any callbacks registered with the ``subscribe()`` method - will be called. - """ - if insert: - dist.insert_on(self.entries, entry, replace=replace) - - if entry is None: - entry = dist.location - keys = self.entry_keys.setdefault(entry, []) - keys2 = self.entry_keys.setdefault(dist.location, []) - if not replace and dist.key in self.by_key: - # ignore hidden distros - return - - self.by_key[dist.key] = dist - if dist.key not in keys: - keys.append(dist.key) - if dist.key not in keys2: - keys2.append(dist.key) - self._added_new(dist) - - def resolve(self, requirements, env=None, installer=None, - replace_conflicting=False, extras=None): - """List all distributions needed to (recursively) meet `requirements` - - `requirements` must be a sequence of ``Requirement`` objects. `env`, - if supplied, should be an ``Environment`` instance. If - not supplied, it defaults to all distributions available within any - entry or distribution in the working set. `installer`, if supplied, - will be invoked with each requirement that cannot be met by an - already-installed distribution; it should return a ``Distribution`` or - ``None``. - - Unless `replace_conflicting=True`, raises a VersionConflict exception - if - any requirements are found on the path that have the correct name but - the wrong version. Otherwise, if an `installer` is supplied it will be - invoked to obtain the correct version of the requirement and activate - it. - - `extras` is a list of the extras to be used with these requirements. - This is important because extra requirements may look like `my_req; - extra = "my_extra"`, which would otherwise be interpreted as a purely - optional requirement. Instead, we want to be able to assert that these - requirements are truly required. - """ - - # set up the stack - requirements = list(requirements)[::-1] - # set of processed requirements - processed = {} - # key -> dist - best = {} - to_activate = [] - - req_extras = _ReqExtras() - - # Mapping of requirement to set of distributions that required it; - # useful for reporting info about conflicts. - required_by = collections.defaultdict(set) - - while requirements: - # process dependencies breadth-first - req = requirements.pop(0) - if req in processed: - # Ignore cyclic or redundant dependencies - continue - - if not req_extras.markers_pass(req, extras): - continue - - dist = best.get(req.key) - if dist is None: - # Find the best distribution and add it to the map - dist = self.by_key.get(req.key) - if dist is None or (dist not in req and replace_conflicting): - ws = self - if env is None: - if dist is None: - env = Environment(self.entries) - else: - # Use an empty environment and workingset to avoid - # any further conflicts with the conflicting - # distribution - env = Environment([]) - ws = WorkingSet([]) - dist = best[req.key] = env.best_match( - req, ws, installer, - replace_conflicting=replace_conflicting - ) - if dist is None: - requirers = required_by.get(req, None) - raise DistributionNotFound(req, requirers) - to_activate.append(dist) - if dist not in req: - # Oops, the "best" so far conflicts with a dependency - dependent_req = required_by[req] - raise VersionConflict(dist, req).with_context(dependent_req) - - # push the new requirements onto the stack - new_requirements = dist.requires(req.extras)[::-1] - requirements.extend(new_requirements) - - # Register the new requirements needed by req - for new_requirement in new_requirements: - required_by[new_requirement].add(req.project_name) - req_extras[new_requirement] = req.extras - - processed[req] = True - - # return list of distros to activate - return to_activate - - def find_plugins( - self, plugin_env, full_env=None, installer=None, fallback=True): - """Find all activatable distributions in `plugin_env` - - Example usage:: - - distributions, errors = working_set.find_plugins( - Environment(plugin_dirlist) - ) - # add plugins+libs to sys.path - map(working_set.add, distributions) - # display errors - print('Could not load', errors) - - The `plugin_env` should be an ``Environment`` instance that contains - only distributions that are in the project's "plugin directory" or - directories. The `full_env`, if supplied, should be an ``Environment`` - contains all currently-available distributions. If `full_env` is not - supplied, one is created automatically from the ``WorkingSet`` this - method is called on, which will typically mean that every directory on - ``sys.path`` will be scanned for distributions. - - `installer` is a standard installer callback as used by the - ``resolve()`` method. The `fallback` flag indicates whether we should - attempt to resolve older versions of a plugin if the newest version - cannot be resolved. - - This method returns a 2-tuple: (`distributions`, `error_info`), where - `distributions` is a list of the distributions found in `plugin_env` - that were loadable, along with any other distributions that are needed - to resolve their dependencies. `error_info` is a dictionary mapping - unloadable plugin distributions to an exception instance describing the - error that occurred. Usually this will be a ``DistributionNotFound`` or - ``VersionConflict`` instance. - """ - - plugin_projects = list(plugin_env) - # scan project names in alphabetic order - plugin_projects.sort() - - error_info = {} - distributions = {} - - if full_env is None: - env = Environment(self.entries) - env += plugin_env - else: - env = full_env + plugin_env - - shadow_set = self.__class__([]) - # put all our entries in shadow_set - list(map(shadow_set.add, self)) - - for project_name in plugin_projects: - - for dist in plugin_env[project_name]: - - req = [dist.as_requirement()] - - try: - resolvees = shadow_set.resolve(req, env, installer) - - except ResolutionError as v: - # save error info - error_info[dist] = v - if fallback: - # try the next older version of project - continue - else: - # give up on this project, keep going - break - - else: - list(map(shadow_set.add, resolvees)) - distributions.update(dict.fromkeys(resolvees)) - - # success, no need to try any more versions of this project - break - - distributions = list(distributions) - distributions.sort() - - return distributions, error_info - - def require(self, *requirements): - """Ensure that distributions matching `requirements` are activated - - `requirements` must be a string or a (possibly-nested) sequence - thereof, specifying the distributions and versions required. The - return value is a sequence of the distributions that needed to be - activated to fulfill the requirements; all relevant distributions are - included, even if they were already activated in this working set. - """ - needed = self.resolve(parse_requirements(requirements)) - - for dist in needed: - self.add(dist) - - return needed - - def subscribe(self, callback, existing=True): - """Invoke `callback` for all distributions - - If `existing=True` (default), - call on all existing ones, as well. - """ - if callback in self.callbacks: - return - self.callbacks.append(callback) - if not existing: - return - for dist in self: - callback(dist) - - def _added_new(self, dist): - for callback in self.callbacks: - callback(dist) - - def __getstate__(self): - return ( - self.entries[:], self.entry_keys.copy(), self.by_key.copy(), - self.callbacks[:] - ) - - def __setstate__(self, e_k_b_c): - entries, keys, by_key, callbacks = e_k_b_c - self.entries = entries[:] - self.entry_keys = keys.copy() - self.by_key = by_key.copy() - self.callbacks = callbacks[:] - - -class _ReqExtras(dict): - """ - Map each requirement to the extras that demanded it. - """ - - def markers_pass(self, req, extras=None): - """ - Evaluate markers for req against each extra that - demanded it. - - Return False if the req has a marker and fails - evaluation. Otherwise, return True. - """ - extra_evals = ( - req.marker.evaluate({'extra': extra}) - for extra in self.get(req, ()) + (extras or (None,)) - ) - return not req.marker or any(extra_evals) - - -class Environment: - """Searchable snapshot of distributions on a search path""" - - def __init__( - self, search_path=None, platform=get_supported_platform(), - python=PY_MAJOR): - """Snapshot distributions available on a search path - - Any distributions found on `search_path` are added to the environment. - `search_path` should be a sequence of ``sys.path`` items. If not - supplied, ``sys.path`` is used. - - `platform` is an optional string specifying the name of the platform - that platform-specific distributions must be compatible with. If - unspecified, it defaults to the current platform. `python` is an - optional string naming the desired version of Python (e.g. ``'3.6'``); - it defaults to the current version. - - You may explicitly set `platform` (and/or `python`) to ``None`` if you - wish to map *all* distributions, not just those compatible with the - running platform or Python version. - """ - self._distmap = {} - self.platform = platform - self.python = python - self.scan(search_path) - - def can_add(self, dist): - """Is distribution `dist` acceptable for this environment? - - The distribution must match the platform and python version - requirements specified when this environment was created, or False - is returned. - """ - py_compat = ( - self.python is None - or dist.py_version is None - or dist.py_version == self.python - ) - return py_compat and compatible_platforms(dist.platform, self.platform) - - def remove(self, dist): - """Remove `dist` from the environment""" - self._distmap[dist.key].remove(dist) - - def scan(self, search_path=None): - """Scan `search_path` for distributions usable in this environment - - Any distributions found are added to the environment. - `search_path` should be a sequence of ``sys.path`` items. If not - supplied, ``sys.path`` is used. Only distributions conforming to - the platform/python version defined at initialization are added. - """ - if search_path is None: - search_path = sys.path - - for item in search_path: - for dist in find_distributions(item): - self.add(dist) - - def __getitem__(self, project_name): - """Return a newest-to-oldest list of distributions for `project_name` - - Uses case-insensitive `project_name` comparison, assuming all the - project's distributions use their project's name converted to all - lowercase as their key. - - """ - distribution_key = project_name.lower() - return self._distmap.get(distribution_key, []) - - def add(self, dist): - """Add `dist` if we ``can_add()`` it and it has not already been added - """ - if self.can_add(dist) and dist.has_version(): - dists = self._distmap.setdefault(dist.key, []) - if dist not in dists: - dists.append(dist) - dists.sort(key=operator.attrgetter('hashcmp'), reverse=True) - - def best_match( - self, req, working_set, installer=None, replace_conflicting=False): - """Find distribution best matching `req` and usable on `working_set` - - This calls the ``find(req)`` method of the `working_set` to see if a - suitable distribution is already active. (This may raise - ``VersionConflict`` if an unsuitable version of the project is already - active in the specified `working_set`.) If a suitable distribution - isn't active, this method returns the newest distribution in the - environment that meets the ``Requirement`` in `req`. If no suitable - distribution is found, and `installer` is supplied, then the result of - calling the environment's ``obtain(req, installer)`` method will be - returned. - """ - try: - dist = working_set.find(req) - except VersionConflict: - if not replace_conflicting: - raise - dist = None - if dist is not None: - return dist - for dist in self[req.key]: - if dist in req: - return dist - # try to download/install - return self.obtain(req, installer) - - def obtain(self, requirement, installer=None): - """Obtain a distribution matching `requirement` (e.g. via download) - - Obtain a distro that matches requirement (e.g. via download). In the - base ``Environment`` class, this routine just returns - ``installer(requirement)``, unless `installer` is None, in which case - None is returned instead. This method is a hook that allows subclasses - to attempt other ways of obtaining a distribution before falling back - to the `installer` argument.""" - if installer is not None: - return installer(requirement) - - def __iter__(self): - """Yield the unique project names of the available distributions""" - for key in self._distmap.keys(): - if self[key]: - yield key - - def __iadd__(self, other): - """In-place addition of a distribution or environment""" - if isinstance(other, Distribution): - self.add(other) - elif isinstance(other, Environment): - for project in other: - for dist in other[project]: - self.add(dist) - else: - raise TypeError("Can't add %r to environment" % (other,)) - return self - - def __add__(self, other): - """Add an environment or distribution to an environment""" - new = self.__class__([], platform=None, python=None) - for env in self, other: - new += env - return new - - -# XXX backward compatibility -AvailableDistributions = Environment - - -class ExtractionError(RuntimeError): - """An error occurred extracting a resource - - The following attributes are available from instances of this exception: - - manager - The resource manager that raised this exception - - cache_path - The base directory for resource extraction - - original_error - The exception instance that caused extraction to fail - """ - - -class ResourceManager: - """Manage resource extraction and packages""" - extraction_path = None - - def __init__(self): - self.cached_files = {} - - def resource_exists(self, package_or_requirement, resource_name): - """Does the named resource exist?""" - return get_provider(package_or_requirement).has_resource(resource_name) - - def resource_isdir(self, package_or_requirement, resource_name): - """Is the named resource an existing directory?""" - return get_provider(package_or_requirement).resource_isdir( - resource_name - ) - - def resource_filename(self, package_or_requirement, resource_name): - """Return a true filesystem path for specified resource""" - return get_provider(package_or_requirement).get_resource_filename( - self, resource_name - ) - - def resource_stream(self, package_or_requirement, resource_name): - """Return a readable file-like object for specified resource""" - return get_provider(package_or_requirement).get_resource_stream( - self, resource_name - ) - - def resource_string(self, package_or_requirement, resource_name): - """Return specified resource as a string""" - return get_provider(package_or_requirement).get_resource_string( - self, resource_name - ) - - def resource_listdir(self, package_or_requirement, resource_name): - """List the contents of the named resource directory""" - return get_provider(package_or_requirement).resource_listdir( - resource_name - ) - - def extraction_error(self): - """Give an error message for problems extracting file(s)""" - - old_exc = sys.exc_info()[1] - cache_path = self.extraction_path or get_default_cache() - - tmpl = textwrap.dedent(""" - Can't extract file(s) to egg cache - - The following error occurred while trying to extract file(s) - to the Python egg cache: - - {old_exc} - - The Python egg cache directory is currently set to: - - {cache_path} - - Perhaps your account does not have write access to this directory? - You can change the cache directory by setting the PYTHON_EGG_CACHE - environment variable to point to an accessible directory. - """).lstrip() - err = ExtractionError(tmpl.format(**locals())) - err.manager = self - err.cache_path = cache_path - err.original_error = old_exc - raise err - - def get_cache_path(self, archive_name, names=()): - """Return absolute location in cache for `archive_name` and `names` - - The parent directory of the resulting path will be created if it does - not already exist. `archive_name` should be the base filename of the - enclosing egg (which may not be the name of the enclosing zipfile!), - including its ".egg" extension. `names`, if provided, should be a - sequence of path name parts "under" the egg's extraction location. - - This method should only be called by resource providers that need to - obtain an extraction location, and only for names they intend to - extract, as it tracks the generated names for possible cleanup later. - """ - extract_path = self.extraction_path or get_default_cache() - target_path = os.path.join(extract_path, archive_name + '-tmp', *names) - try: - _bypass_ensure_directory(target_path) - except Exception: - self.extraction_error() - - self._warn_unsafe_extraction_path(extract_path) - - self.cached_files[target_path] = 1 - return target_path - - @staticmethod - def _warn_unsafe_extraction_path(path): - """ - If the default extraction path is overridden and set to an insecure - location, such as /tmp, it opens up an opportunity for an attacker to - replace an extracted file with an unauthorized payload. Warn the user - if a known insecure location is used. - - See Distribute #375 for more details. - """ - if os.name == 'nt' and not path.startswith(os.environ['windir']): - # On Windows, permissions are generally restrictive by default - # and temp directories are not writable by other users, so - # bypass the warning. - return - mode = os.stat(path).st_mode - if mode & stat.S_IWOTH or mode & stat.S_IWGRP: - msg = ( - "%s is writable by group/others and vulnerable to attack " - "when " - "used with get_resource_filename. Consider a more secure " - "location (set with .set_extraction_path or the " - "PYTHON_EGG_CACHE environment variable)." % path - ) - warnings.warn(msg, UserWarning) - - def postprocess(self, tempname, filename): - """Perform any platform-specific postprocessing of `tempname` - - This is where Mac header rewrites should be done; other platforms don't - have anything special they should do. - - Resource providers should call this method ONLY after successfully - extracting a compressed resource. They must NOT call it on resources - that are already in the filesystem. - - `tempname` is the current (temporary) name of the file, and `filename` - is the name it will be renamed to by the caller after this routine - returns. - """ - - if os.name == 'posix': - # Make the resource executable - mode = ((os.stat(tempname).st_mode) | 0o555) & 0o7777 - os.chmod(tempname, mode) - - def set_extraction_path(self, path): - """Set the base path where resources will be extracted to, if needed. - - If you do not call this routine before any extractions take place, the - path defaults to the return value of ``get_default_cache()``. (Which - is based on the ``PYTHON_EGG_CACHE`` environment variable, with various - platform-specific fallbacks. See that routine's documentation for more - details.) - - Resources are extracted to subdirectories of this path based upon - information given by the ``IResourceProvider``. You may set this to a - temporary directory, but then you must call ``cleanup_resources()`` to - delete the extracted files when done. There is no guarantee that - ``cleanup_resources()`` will be able to remove all extracted files. - - (Note: you may not change the extraction path for a given resource - manager once resources have been extracted, unless you first call - ``cleanup_resources()``.) - """ - if self.cached_files: - raise ValueError( - "Can't change extraction path, files already extracted" - ) - - self.extraction_path = path - - def cleanup_resources(self, force=False): - """ - Delete all extracted resource files and directories, returning a list - of the file and directory names that could not be successfully removed. - This function does not have any concurrency protection, so it should - generally only be called when the extraction path is a temporary - directory exclusive to a single process. This method is not - automatically called; you must call it explicitly or register it as an - ``atexit`` function if you wish to ensure cleanup of a temporary - directory used for extractions. - """ - # XXX - - -def get_default_cache(): - """ - Return the ``PYTHON_EGG_CACHE`` environment variable - or a platform-relevant user cache dir for an app - named "Python-Eggs". - """ - return ( - os.environ.get('PYTHON_EGG_CACHE') - or appdirs.user_cache_dir(appname='Python-Eggs') - ) - - -def safe_name(name): - """Convert an arbitrary string to a standard distribution name - - Any runs of non-alphanumeric/. characters are replaced with a single '-'. - """ - return re.sub('[^A-Za-z0-9.]+', '-', name) - - -def safe_version(version): - """ - Convert an arbitrary string to a standard version string - """ - try: - # normalize the version - return str(packaging.version.Version(version)) - except packaging.version.InvalidVersion: - version = version.replace(' ', '.') - return re.sub('[^A-Za-z0-9.]+', '-', version) - - -def safe_extra(extra): - """Convert an arbitrary string to a standard 'extra' name - - Any runs of non-alphanumeric characters are replaced with a single '_', - and the result is always lowercased. - """ - return re.sub('[^A-Za-z0-9.-]+', '_', extra).lower() - - -def to_filename(name): - """Convert a project or version name to its filename-escaped form - - Any '-' characters are currently replaced with '_'. - """ - return name.replace('-', '_') - - -def invalid_marker(text): - """ - Validate text as a PEP 508 environment marker; return an exception - if invalid or False otherwise. - """ - try: - evaluate_marker(text) - except SyntaxError as e: - e.filename = None - e.lineno = None - return e - return False - - -def evaluate_marker(text, extra=None): - """ - Evaluate a PEP 508 environment marker. - Return a boolean indicating the marker result in this environment. - Raise SyntaxError if marker is invalid. - - This implementation uses the 'pyparsing' module. - """ - try: - marker = packaging.markers.Marker(text) - return marker.evaluate() - except packaging.markers.InvalidMarker as e: - raise SyntaxError(e) - - -class NullProvider: - """Try to implement resources and metadata for arbitrary PEP 302 loaders""" - - egg_name = None - egg_info = None - loader = None - - def __init__(self, module): - self.loader = getattr(module, '__loader__', None) - self.module_path = os.path.dirname(getattr(module, '__file__', '')) - - def get_resource_filename(self, manager, resource_name): - return self._fn(self.module_path, resource_name) - - def get_resource_stream(self, manager, resource_name): - return io.BytesIO(self.get_resource_string(manager, resource_name)) - - def get_resource_string(self, manager, resource_name): - return self._get(self._fn(self.module_path, resource_name)) - - def has_resource(self, resource_name): - return self._has(self._fn(self.module_path, resource_name)) - - def has_metadata(self, name): - return self.egg_info and self._has(self._fn(self.egg_info, name)) - - def get_metadata(self, name): - if not self.egg_info: - return "" - value = self._get(self._fn(self.egg_info, name)) - return value.decode('utf-8') if six.PY3 else value - - def get_metadata_lines(self, name): - return yield_lines(self.get_metadata(name)) - - def resource_isdir(self, resource_name): - return self._isdir(self._fn(self.module_path, resource_name)) - - def metadata_isdir(self, name): - return self.egg_info and self._isdir(self._fn(self.egg_info, name)) - - def resource_listdir(self, resource_name): - return self._listdir(self._fn(self.module_path, resource_name)) - - def metadata_listdir(self, name): - if self.egg_info: - return self._listdir(self._fn(self.egg_info, name)) - return [] - - def run_script(self, script_name, namespace): - script = 'scripts/' + script_name - if not self.has_metadata(script): - raise ResolutionError( - "Script {script!r} not found in metadata at {self.egg_info!r}" - .format(**locals()), - ) - script_text = self.get_metadata(script).replace('\r\n', '\n') - script_text = script_text.replace('\r', '\n') - script_filename = self._fn(self.egg_info, script) - namespace['__file__'] = script_filename - if os.path.exists(script_filename): - source = open(script_filename).read() - code = compile(source, script_filename, 'exec') - exec(code, namespace, namespace) - else: - from linecache import cache - cache[script_filename] = ( - len(script_text), 0, script_text.split('\n'), script_filename - ) - script_code = compile(script_text, script_filename, 'exec') - exec(script_code, namespace, namespace) - - def _has(self, path): - raise NotImplementedError( - "Can't perform this operation for unregistered loader type" - ) - - def _isdir(self, path): - raise NotImplementedError( - "Can't perform this operation for unregistered loader type" - ) - - def _listdir(self, path): - raise NotImplementedError( - "Can't perform this operation for unregistered loader type" - ) - - def _fn(self, base, resource_name): - if resource_name: - return os.path.join(base, *resource_name.split('/')) - return base - - def _get(self, path): - if hasattr(self.loader, 'get_data'): - return self.loader.get_data(path) - raise NotImplementedError( - "Can't perform this operation for loaders without 'get_data()'" - ) - - -register_loader_type(object, NullProvider) - - -class EggProvider(NullProvider): - """Provider based on a virtual filesystem""" - - def __init__(self, module): - NullProvider.__init__(self, module) - self._setup_prefix() - - def _setup_prefix(self): - # we assume here that our metadata may be nested inside a "basket" - # of multiple eggs; that's why we use module_path instead of .archive - path = self.module_path - old = None - while path != old: - if _is_egg_path(path): - self.egg_name = os.path.basename(path) - self.egg_info = os.path.join(path, 'EGG-INFO') - self.egg_root = path - break - old = path - path, base = os.path.split(path) - - -class DefaultProvider(EggProvider): - """Provides access to package resources in the filesystem""" - - def _has(self, path): - return os.path.exists(path) - - def _isdir(self, path): - return os.path.isdir(path) - - def _listdir(self, path): - return os.listdir(path) - - def get_resource_stream(self, manager, resource_name): - return open(self._fn(self.module_path, resource_name), 'rb') - - def _get(self, path): - with open(path, 'rb') as stream: - return stream.read() - - @classmethod - def _register(cls): - loader_names = 'SourceFileLoader', 'SourcelessFileLoader', - for name in loader_names: - loader_cls = getattr(importlib_machinery, name, type(None)) - register_loader_type(loader_cls, cls) - - -DefaultProvider._register() - - -class EmptyProvider(NullProvider): - """Provider that returns nothing for all requests""" - - module_path = None - - _isdir = _has = lambda self, path: False - - def _get(self, path): - return '' - - def _listdir(self, path): - return [] - - def __init__(self): - pass - - -empty_provider = EmptyProvider() - - -class ZipManifests(dict): - """ - zip manifest builder - """ - - @classmethod - def build(cls, path): - """ - Build a dictionary similar to the zipimport directory - caches, except instead of tuples, store ZipInfo objects. - - Use a platform-specific path separator (os.sep) for the path keys - for compatibility with pypy on Windows. - """ - with zipfile.ZipFile(path) as zfile: - items = ( - ( - name.replace('/', os.sep), - zfile.getinfo(name), - ) - for name in zfile.namelist() - ) - return dict(items) - - load = build - - -class MemoizedZipManifests(ZipManifests): - """ - Memoized zipfile manifests. - """ - manifest_mod = collections.namedtuple('manifest_mod', 'manifest mtime') - - def load(self, path): - """ - Load a manifest at path or return a suitable manifest already loaded. - """ - path = os.path.normpath(path) - mtime = os.stat(path).st_mtime - - if path not in self or self[path].mtime != mtime: - manifest = self.build(path) - self[path] = self.manifest_mod(manifest, mtime) - - return self[path].manifest - - -class ZipProvider(EggProvider): - """Resource support for zips and eggs""" - - eagers = None - _zip_manifests = MemoizedZipManifests() - - def __init__(self, module): - EggProvider.__init__(self, module) - self.zip_pre = self.loader.archive + os.sep - - def _zipinfo_name(self, fspath): - # Convert a virtual filename (full path to file) into a zipfile subpath - # usable with the zipimport directory cache for our target archive - fspath = fspath.rstrip(os.sep) - if fspath == self.loader.archive: - return '' - if fspath.startswith(self.zip_pre): - return fspath[len(self.zip_pre):] - raise AssertionError( - "%s is not a subpath of %s" % (fspath, self.zip_pre) - ) - - def _parts(self, zip_path): - # Convert a zipfile subpath into an egg-relative path part list. - # pseudo-fs path - fspath = self.zip_pre + zip_path - if fspath.startswith(self.egg_root + os.sep): - return fspath[len(self.egg_root) + 1:].split(os.sep) - raise AssertionError( - "%s is not a subpath of %s" % (fspath, self.egg_root) - ) - - @property - def zipinfo(self): - return self._zip_manifests.load(self.loader.archive) - - def get_resource_filename(self, manager, resource_name): - if not self.egg_name: - raise NotImplementedError( - "resource_filename() only supported for .egg, not .zip" - ) - # no need to lock for extraction, since we use temp names - zip_path = self._resource_to_zip(resource_name) - eagers = self._get_eager_resources() - if '/'.join(self._parts(zip_path)) in eagers: - for name in eagers: - self._extract_resource(manager, self._eager_to_zip(name)) - return self._extract_resource(manager, zip_path) - - @staticmethod - def _get_date_and_size(zip_stat): - size = zip_stat.file_size - # ymdhms+wday, yday, dst - date_time = zip_stat.date_time + (0, 0, -1) - # 1980 offset already done - timestamp = time.mktime(date_time) - return timestamp, size - - def _extract_resource(self, manager, zip_path): - - if zip_path in self._index(): - for name in self._index()[zip_path]: - last = self._extract_resource( - manager, os.path.join(zip_path, name) - ) - # return the extracted directory name - return os.path.dirname(last) - - timestamp, size = self._get_date_and_size(self.zipinfo[zip_path]) - - if not WRITE_SUPPORT: - raise IOError('"os.rename" and "os.unlink" are not supported ' - 'on this platform') - try: - - real_path = manager.get_cache_path( - self.egg_name, self._parts(zip_path) - ) - - if self._is_current(real_path, zip_path): - return real_path - - outf, tmpnam = _mkstemp( - ".$extract", - dir=os.path.dirname(real_path), - ) - os.write(outf, self.loader.get_data(zip_path)) - os.close(outf) - utime(tmpnam, (timestamp, timestamp)) - manager.postprocess(tmpnam, real_path) - - try: - rename(tmpnam, real_path) - - except os.error: - if os.path.isfile(real_path): - if self._is_current(real_path, zip_path): - # the file became current since it was checked above, - # so proceed. - return real_path - # Windows, del old file and retry - elif os.name == 'nt': - unlink(real_path) - rename(tmpnam, real_path) - return real_path - raise - - except os.error: - # report a user-friendly error - manager.extraction_error() - - return real_path - - def _is_current(self, file_path, zip_path): - """ - Return True if the file_path is current for this zip_path - """ - timestamp, size = self._get_date_and_size(self.zipinfo[zip_path]) - if not os.path.isfile(file_path): - return False - stat = os.stat(file_path) - if stat.st_size != size or stat.st_mtime != timestamp: - return False - # check that the contents match - zip_contents = self.loader.get_data(zip_path) - with open(file_path, 'rb') as f: - file_contents = f.read() - return zip_contents == file_contents - - def _get_eager_resources(self): - if self.eagers is None: - eagers = [] - for name in ('native_libs.txt', 'eager_resources.txt'): - if self.has_metadata(name): - eagers.extend(self.get_metadata_lines(name)) - self.eagers = eagers - return self.eagers - - def _index(self): - try: - return self._dirindex - except AttributeError: - ind = {} - for path in self.zipinfo: - parts = path.split(os.sep) - while parts: - parent = os.sep.join(parts[:-1]) - if parent in ind: - ind[parent].append(parts[-1]) - break - else: - ind[parent] = [parts.pop()] - self._dirindex = ind - return ind - - def _has(self, fspath): - zip_path = self._zipinfo_name(fspath) - return zip_path in self.zipinfo or zip_path in self._index() - - def _isdir(self, fspath): - return self._zipinfo_name(fspath) in self._index() - - def _listdir(self, fspath): - return list(self._index().get(self._zipinfo_name(fspath), ())) - - def _eager_to_zip(self, resource_name): - return self._zipinfo_name(self._fn(self.egg_root, resource_name)) - - def _resource_to_zip(self, resource_name): - return self._zipinfo_name(self._fn(self.module_path, resource_name)) - - -register_loader_type(zipimport.zipimporter, ZipProvider) - - -class FileMetadata(EmptyProvider): - """Metadata handler for standalone PKG-INFO files - - Usage:: - - metadata = FileMetadata("/path/to/PKG-INFO") - - This provider rejects all data and metadata requests except for PKG-INFO, - which is treated as existing, and will be the contents of the file at - the provided location. - """ - - def __init__(self, path): - self.path = path - - def has_metadata(self, name): - return name == 'PKG-INFO' and os.path.isfile(self.path) - - def get_metadata(self, name): - if name != 'PKG-INFO': - raise KeyError("No metadata except PKG-INFO is available") - - with io.open(self.path, encoding='utf-8', errors="replace") as f: - metadata = f.read() - self._warn_on_replacement(metadata) - return metadata - - def _warn_on_replacement(self, metadata): - # Python 2.7 compat for: replacement_char = '�' - replacement_char = b'\xef\xbf\xbd'.decode('utf-8') - if replacement_char in metadata: - tmpl = "{self.path} could not be properly decoded in UTF-8" - msg = tmpl.format(**locals()) - warnings.warn(msg) - - def get_metadata_lines(self, name): - return yield_lines(self.get_metadata(name)) - - -class PathMetadata(DefaultProvider): - """Metadata provider for egg directories - - Usage:: - - # Development eggs: - - egg_info = "/path/to/PackageName.egg-info" - base_dir = os.path.dirname(egg_info) - metadata = PathMetadata(base_dir, egg_info) - dist_name = os.path.splitext(os.path.basename(egg_info))[0] - dist = Distribution(basedir, project_name=dist_name, metadata=metadata) - - # Unpacked egg directories: - - egg_path = "/path/to/PackageName-ver-pyver-etc.egg" - metadata = PathMetadata(egg_path, os.path.join(egg_path,'EGG-INFO')) - dist = Distribution.from_filename(egg_path, metadata=metadata) - """ - - def __init__(self, path, egg_info): - self.module_path = path - self.egg_info = egg_info - - -class EggMetadata(ZipProvider): - """Metadata provider for .egg files""" - - def __init__(self, importer): - """Create a metadata provider from a zipimporter""" - - self.zip_pre = importer.archive + os.sep - self.loader = importer - if importer.prefix: - self.module_path = os.path.join(importer.archive, importer.prefix) - else: - self.module_path = importer.archive - self._setup_prefix() - - -_declare_state('dict', _distribution_finders={}) - - -def register_finder(importer_type, distribution_finder): - """Register `distribution_finder` to find distributions in sys.path items - - `importer_type` is the type or class of a PEP 302 "Importer" (sys.path item - handler), and `distribution_finder` is a callable that, passed a path - item and the importer instance, yields ``Distribution`` instances found on - that path item. See ``pkg_resources.find_on_path`` for an example.""" - _distribution_finders[importer_type] = distribution_finder - - -def find_distributions(path_item, only=False): - """Yield distributions accessible via `path_item`""" - importer = get_importer(path_item) - finder = _find_adapter(_distribution_finders, importer) - return finder(importer, path_item, only) - - -def find_eggs_in_zip(importer, path_item, only=False): - """ - Find eggs in zip files; possibly multiple nested eggs. - """ - if importer.archive.endswith('.whl'): - # wheels are not supported with this finder - # they don't have PKG-INFO metadata, and won't ever contain eggs - return - metadata = EggMetadata(importer) - if metadata.has_metadata('PKG-INFO'): - yield Distribution.from_filename(path_item, metadata=metadata) - if only: - # don't yield nested distros - return - for subitem in metadata.resource_listdir('/'): - if _is_egg_path(subitem): - subpath = os.path.join(path_item, subitem) - dists = find_eggs_in_zip(zipimport.zipimporter(subpath), subpath) - for dist in dists: - yield dist - elif subitem.lower().endswith('.dist-info'): - subpath = os.path.join(path_item, subitem) - submeta = EggMetadata(zipimport.zipimporter(subpath)) - submeta.egg_info = subpath - yield Distribution.from_location(path_item, subitem, submeta) - - -register_finder(zipimport.zipimporter, find_eggs_in_zip) - - -def find_nothing(importer, path_item, only=False): - return () - - -register_finder(object, find_nothing) - - -def _by_version_descending(names): - """ - Given a list of filenames, return them in descending order - by version number. - - >>> names = 'bar', 'foo', 'Python-2.7.10.egg', 'Python-2.7.2.egg' - >>> _by_version_descending(names) - ['Python-2.7.10.egg', 'Python-2.7.2.egg', 'foo', 'bar'] - >>> names = 'Setuptools-1.2.3b1.egg', 'Setuptools-1.2.3.egg' - >>> _by_version_descending(names) - ['Setuptools-1.2.3.egg', 'Setuptools-1.2.3b1.egg'] - >>> names = 'Setuptools-1.2.3b1.egg', 'Setuptools-1.2.3.post1.egg' - >>> _by_version_descending(names) - ['Setuptools-1.2.3.post1.egg', 'Setuptools-1.2.3b1.egg'] - """ - def _by_version(name): - """ - Parse each component of the filename - """ - name, ext = os.path.splitext(name) - parts = itertools.chain(name.split('-'), [ext]) - return [packaging.version.parse(part) for part in parts] - - return sorted(names, key=_by_version, reverse=True) - - -def find_on_path(importer, path_item, only=False): - """Yield distributions accessible on a sys.path directory""" - path_item = _normalize_cached(path_item) - - if _is_unpacked_egg(path_item): - yield Distribution.from_filename( - path_item, metadata=PathMetadata( - path_item, os.path.join(path_item, 'EGG-INFO') - ) - ) - return - - entries = safe_listdir(path_item) - - # for performance, before sorting by version, - # screen entries for only those that will yield - # distributions - filtered = ( - entry - for entry in entries - if dist_factory(path_item, entry, only) - ) - - # scan for .egg and .egg-info in directory - path_item_entries = _by_version_descending(filtered) - for entry in path_item_entries: - fullpath = os.path.join(path_item, entry) - factory = dist_factory(path_item, entry, only) - for dist in factory(fullpath): - yield dist - - -def dist_factory(path_item, entry, only): - """ - Return a dist_factory for a path_item and entry - """ - lower = entry.lower() - is_meta = any(map(lower.endswith, ('.egg-info', '.dist-info'))) - return ( - distributions_from_metadata - if is_meta else - find_distributions - if not only and _is_egg_path(entry) else - resolve_egg_link - if not only and lower.endswith('.egg-link') else - NoDists() - ) - - -class NoDists: - """ - >>> bool(NoDists()) - False - - >>> list(NoDists()('anything')) - [] - """ - def __bool__(self): - return False - if six.PY2: - __nonzero__ = __bool__ - - def __call__(self, fullpath): - return iter(()) - - -def safe_listdir(path): - """ - Attempt to list contents of path, but suppress some exceptions. - """ - try: - return os.listdir(path) - except (PermissionError, NotADirectoryError): - pass - except OSError as e: - # Ignore the directory if does not exist, not a directory or - # permission denied - ignorable = ( - e.errno in (errno.ENOTDIR, errno.EACCES, errno.ENOENT) - # Python 2 on Windows needs to be handled this way :( - or getattr(e, "winerror", None) == 267 - ) - if not ignorable: - raise - return () - - -def distributions_from_metadata(path): - root = os.path.dirname(path) - if os.path.isdir(path): - if len(os.listdir(path)) == 0: - # empty metadata dir; skip - return - metadata = PathMetadata(root, path) - else: - metadata = FileMetadata(path) - entry = os.path.basename(path) - yield Distribution.from_location( - root, entry, metadata, precedence=DEVELOP_DIST, - ) - - -def non_empty_lines(path): - """ - Yield non-empty lines from file at path - """ - with open(path) as f: - for line in f: - line = line.strip() - if line: - yield line - - -def resolve_egg_link(path): - """ - Given a path to an .egg-link, resolve distributions - present in the referenced path. - """ - referenced_paths = non_empty_lines(path) - resolved_paths = ( - os.path.join(os.path.dirname(path), ref) - for ref in referenced_paths - ) - dist_groups = map(find_distributions, resolved_paths) - return next(dist_groups, ()) - - -register_finder(pkgutil.ImpImporter, find_on_path) - -if hasattr(importlib_machinery, 'FileFinder'): - register_finder(importlib_machinery.FileFinder, find_on_path) - -_declare_state('dict', _namespace_handlers={}) -_declare_state('dict', _namespace_packages={}) - - -def register_namespace_handler(importer_type, namespace_handler): - """Register `namespace_handler` to declare namespace packages - - `importer_type` is the type or class of a PEP 302 "Importer" (sys.path item - handler), and `namespace_handler` is a callable like this:: - - def namespace_handler(importer, path_entry, moduleName, module): - # return a path_entry to use for child packages - - Namespace handlers are only called if the importer object has already - agreed that it can handle the relevant path item, and they should only - return a subpath if the module __path__ does not already contain an - equivalent subpath. For an example namespace handler, see - ``pkg_resources.file_ns_handler``. - """ - _namespace_handlers[importer_type] = namespace_handler - - -def _handle_ns(packageName, path_item): - """Ensure that named package includes a subpath of path_item (if needed)""" - - importer = get_importer(path_item) - if importer is None: - return None - - # capture warnings due to #1111 - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - loader = importer.find_module(packageName) - - if loader is None: - return None - module = sys.modules.get(packageName) - if module is None: - module = sys.modules[packageName] = types.ModuleType(packageName) - module.__path__ = [] - _set_parent_ns(packageName) - elif not hasattr(module, '__path__'): - raise TypeError("Not a package:", packageName) - handler = _find_adapter(_namespace_handlers, importer) - subpath = handler(importer, path_item, packageName, module) - if subpath is not None: - path = module.__path__ - path.append(subpath) - loader.load_module(packageName) - _rebuild_mod_path(path, packageName, module) - return subpath - - -def _rebuild_mod_path(orig_path, package_name, module): - """ - Rebuild module.__path__ ensuring that all entries are ordered - corresponding to their sys.path order - """ - sys_path = [_normalize_cached(p) for p in sys.path] - - def safe_sys_path_index(entry): - """ - Workaround for #520 and #513. - """ - try: - return sys_path.index(entry) - except ValueError: - return float('inf') - - def position_in_sys_path(path): - """ - Return the ordinal of the path based on its position in sys.path - """ - path_parts = path.split(os.sep) - module_parts = package_name.count('.') + 1 - parts = path_parts[:-module_parts] - return safe_sys_path_index(_normalize_cached(os.sep.join(parts))) - - new_path = sorted(orig_path, key=position_in_sys_path) - new_path = [_normalize_cached(p) for p in new_path] - - if isinstance(module.__path__, list): - module.__path__[:] = new_path - else: - module.__path__ = new_path - - -def declare_namespace(packageName): - """Declare that package 'packageName' is a namespace package""" - - _imp.acquire_lock() - try: - if packageName in _namespace_packages: - return - - path = sys.path - parent, _, _ = packageName.rpartition('.') - - if parent: - declare_namespace(parent) - if parent not in _namespace_packages: - __import__(parent) - try: - path = sys.modules[parent].__path__ - except AttributeError: - raise TypeError("Not a package:", parent) - - # Track what packages are namespaces, so when new path items are added, - # they can be updated - _namespace_packages.setdefault(parent or None, []).append(packageName) - _namespace_packages.setdefault(packageName, []) - - for path_item in path: - # Ensure all the parent's path items are reflected in the child, - # if they apply - _handle_ns(packageName, path_item) - - finally: - _imp.release_lock() - - -def fixup_namespace_packages(path_item, parent=None): - """Ensure that previously-declared namespace packages include path_item""" - _imp.acquire_lock() - try: - for package in _namespace_packages.get(parent, ()): - subpath = _handle_ns(package, path_item) - if subpath: - fixup_namespace_packages(subpath, package) - finally: - _imp.release_lock() - - -def file_ns_handler(importer, path_item, packageName, module): - """Compute an ns-package subpath for a filesystem or zipfile importer""" - - subpath = os.path.join(path_item, packageName.split('.')[-1]) - normalized = _normalize_cached(subpath) - for item in module.__path__: - if _normalize_cached(item) == normalized: - break - else: - # Only return the path if it's not already there - return subpath - - -register_namespace_handler(pkgutil.ImpImporter, file_ns_handler) -register_namespace_handler(zipimport.zipimporter, file_ns_handler) - -if hasattr(importlib_machinery, 'FileFinder'): - register_namespace_handler(importlib_machinery.FileFinder, file_ns_handler) - - -def null_ns_handler(importer, path_item, packageName, module): - return None - - -register_namespace_handler(object, null_ns_handler) - - -def normalize_path(filename): - """Normalize a file/dir name for comparison purposes""" - return os.path.normcase(os.path.realpath(os.path.normpath(_cygwin_patch(filename)))) - - -def _cygwin_patch(filename): # pragma: nocover - """ - Contrary to POSIX 2008, on Cygwin, getcwd (3) contains - symlink components. Using - os.path.abspath() works around this limitation. A fix in os.getcwd() - would probably better, in Cygwin even more so, except - that this seems to be by design... - """ - return os.path.abspath(filename) if sys.platform == 'cygwin' else filename - - -def _normalize_cached(filename, _cache={}): - try: - return _cache[filename] - except KeyError: - _cache[filename] = result = normalize_path(filename) - return result - - -def _is_egg_path(path): - """ - Determine if given path appears to be an egg. - """ - return path.lower().endswith('.egg') - - -def _is_unpacked_egg(path): - """ - Determine if given path appears to be an unpacked egg. - """ - return ( - _is_egg_path(path) and - os.path.isfile(os.path.join(path, 'EGG-INFO', 'PKG-INFO')) - ) - - -def _set_parent_ns(packageName): - parts = packageName.split('.') - name = parts.pop() - if parts: - parent = '.'.join(parts) - setattr(sys.modules[parent], name, sys.modules[packageName]) - - -def yield_lines(strs): - """Yield non-empty/non-comment lines of a string or sequence""" - if isinstance(strs, six.string_types): - for s in strs.splitlines(): - s = s.strip() - # skip blank lines/comments - if s and not s.startswith('#'): - yield s - else: - for ss in strs: - for s in yield_lines(ss): - yield s - - -MODULE = re.compile(r"\w+(\.\w+)*$").match -EGG_NAME = re.compile( - r""" - (?P<name>[^-]+) ( - -(?P<ver>[^-]+) ( - -py(?P<pyver>[^-]+) ( - -(?P<plat>.+) - )? - )? - )? - """, - re.VERBOSE | re.IGNORECASE, -).match - - -class EntryPoint: - """Object representing an advertised importable object""" - - def __init__(self, name, module_name, attrs=(), extras=(), dist=None): - if not MODULE(module_name): - raise ValueError("Invalid module name", module_name) - self.name = name - self.module_name = module_name - self.attrs = tuple(attrs) - self.extras = tuple(extras) - self.dist = dist - - def __str__(self): - s = "%s = %s" % (self.name, self.module_name) - if self.attrs: - s += ':' + '.'.join(self.attrs) - if self.extras: - s += ' [%s]' % ','.join(self.extras) - return s - - def __repr__(self): - return "EntryPoint.parse(%r)" % str(self) - - def load(self, require=True, *args, **kwargs): - """ - Require packages for this EntryPoint, then resolve it. - """ - if not require or args or kwargs: - warnings.warn( - "Parameters to load are deprecated. Call .resolve and " - ".require separately.", - PkgResourcesDeprecationWarning, - stacklevel=2, - ) - if require: - self.require(*args, **kwargs) - return self.resolve() - - def resolve(self): - """ - Resolve the entry point from its module and attrs. - """ - module = __import__(self.module_name, fromlist=['__name__'], level=0) - try: - return functools.reduce(getattr, self.attrs, module) - except AttributeError as exc: - raise ImportError(str(exc)) - - def require(self, env=None, installer=None): - if self.extras and not self.dist: - raise UnknownExtra("Can't require() without a distribution", self) - - # Get the requirements for this entry point with all its extras and - # then resolve them. We have to pass `extras` along when resolving so - # that the working set knows what extras we want. Otherwise, for - # dist-info distributions, the working set will assume that the - # requirements for that extra are purely optional and skip over them. - reqs = self.dist.requires(self.extras) - items = working_set.resolve(reqs, env, installer, extras=self.extras) - list(map(working_set.add, items)) - - pattern = re.compile( - r'\s*' - r'(?P<name>.+?)\s*' - r'=\s*' - r'(?P<module>[\w.]+)\s*' - r'(:\s*(?P<attr>[\w.]+))?\s*' - r'(?P<extras>\[.*\])?\s*$' - ) - - @classmethod - def parse(cls, src, dist=None): - """Parse a single entry point from string `src` - - Entry point syntax follows the form:: - - name = some.module:some.attr [extra1, extra2] - - The entry name and module name are required, but the ``:attrs`` and - ``[extras]`` parts are optional - """ - m = cls.pattern.match(src) - if not m: - msg = "EntryPoint must be in 'name=module:attrs [extras]' format" - raise ValueError(msg, src) - res = m.groupdict() - extras = cls._parse_extras(res['extras']) - attrs = res['attr'].split('.') if res['attr'] else () - return cls(res['name'], res['module'], attrs, extras, dist) - - @classmethod - def _parse_extras(cls, extras_spec): - if not extras_spec: - return () - req = Requirement.parse('x' + extras_spec) - if req.specs: - raise ValueError() - return req.extras - - @classmethod - def parse_group(cls, group, lines, dist=None): - """Parse an entry point group""" - if not MODULE(group): - raise ValueError("Invalid group name", group) - this = {} - for line in yield_lines(lines): - ep = cls.parse(line, dist) - if ep.name in this: - raise ValueError("Duplicate entry point", group, ep.name) - this[ep.name] = ep - return this - - @classmethod - def parse_map(cls, data, dist=None): - """Parse a map of entry point groups""" - if isinstance(data, dict): - data = data.items() - else: - data = split_sections(data) - maps = {} - for group, lines in data: - if group is None: - if not lines: - continue - raise ValueError("Entry points must be listed in groups") - group = group.strip() - if group in maps: - raise ValueError("Duplicate group name", group) - maps[group] = cls.parse_group(group, lines, dist) - return maps - - -def _remove_md5_fragment(location): - if not location: - return '' - parsed = urllib.parse.urlparse(location) - if parsed[-1].startswith('md5='): - return urllib.parse.urlunparse(parsed[:-1] + ('',)) - return location - - -def _version_from_file(lines): - """ - Given an iterable of lines from a Metadata file, return - the value of the Version field, if present, or None otherwise. - """ - def is_version_line(line): - return line.lower().startswith('version:') - version_lines = filter(is_version_line, lines) - line = next(iter(version_lines), '') - _, _, value = line.partition(':') - return safe_version(value.strip()) or None - - -class Distribution: - """Wrap an actual or potential sys.path entry w/metadata""" - PKG_INFO = 'PKG-INFO' - - def __init__( - self, location=None, metadata=None, project_name=None, - version=None, py_version=PY_MAJOR, platform=None, - precedence=EGG_DIST): - self.project_name = safe_name(project_name or 'Unknown') - if version is not None: - self._version = safe_version(version) - self.py_version = py_version - self.platform = platform - self.location = location - self.precedence = precedence - self._provider = metadata or empty_provider - - @classmethod - def from_location(cls, location, basename, metadata=None, **kw): - project_name, version, py_version, platform = [None] * 4 - basename, ext = os.path.splitext(basename) - if ext.lower() in _distributionImpl: - cls = _distributionImpl[ext.lower()] - - match = EGG_NAME(basename) - if match: - project_name, version, py_version, platform = match.group( - 'name', 'ver', 'pyver', 'plat' - ) - return cls( - location, metadata, project_name=project_name, version=version, - py_version=py_version, platform=platform, **kw - )._reload_version() - - def _reload_version(self): - return self - - @property - def hashcmp(self): - return ( - self.parsed_version, - self.precedence, - self.key, - _remove_md5_fragment(self.location), - self.py_version or '', - self.platform or '', - ) - - def __hash__(self): - return hash(self.hashcmp) - - def __lt__(self, other): - return self.hashcmp < other.hashcmp - - def __le__(self, other): - return self.hashcmp <= other.hashcmp - - def __gt__(self, other): - return self.hashcmp > other.hashcmp - - def __ge__(self, other): - return self.hashcmp >= other.hashcmp - - def __eq__(self, other): - if not isinstance(other, self.__class__): - # It's not a Distribution, so they are not equal - return False - return self.hashcmp == other.hashcmp - - def __ne__(self, other): - return not self == other - - # These properties have to be lazy so that we don't have to load any - # metadata until/unless it's actually needed. (i.e., some distributions - # may not know their name or version without loading PKG-INFO) - - @property - def key(self): - try: - return self._key - except AttributeError: - self._key = key = self.project_name.lower() - return key - - @property - def parsed_version(self): - if not hasattr(self, "_parsed_version"): - self._parsed_version = parse_version(self.version) - - return self._parsed_version - - def _warn_legacy_version(self): - LV = packaging.version.LegacyVersion - is_legacy = isinstance(self._parsed_version, LV) - if not is_legacy: - return - - # While an empty version is technically a legacy version and - # is not a valid PEP 440 version, it's also unlikely to - # actually come from someone and instead it is more likely that - # it comes from setuptools attempting to parse a filename and - # including it in the list. So for that we'll gate this warning - # on if the version is anything at all or not. - if not self.version: - return - - tmpl = textwrap.dedent(""" - '{project_name} ({version})' is being parsed as a legacy, - non PEP 440, - version. You may find odd behavior and sort order. - In particular it will be sorted as less than 0.0. It - is recommended to migrate to PEP 440 compatible - versions. - """).strip().replace('\n', ' ') - - warnings.warn(tmpl.format(**vars(self)), PEP440Warning) - - @property - def version(self): - try: - return self._version - except AttributeError: - version = _version_from_file(self._get_metadata(self.PKG_INFO)) - if version is None: - tmpl = "Missing 'Version:' header and/or %s file" - raise ValueError(tmpl % self.PKG_INFO, self) - return version - - @property - def _dep_map(self): - """ - A map of extra to its list of (direct) requirements - for this distribution, including the null extra. - """ - try: - return self.__dep_map - except AttributeError: - self.__dep_map = self._filter_extras(self._build_dep_map()) - return self.__dep_map - - @staticmethod - def _filter_extras(dm): - """ - Given a mapping of extras to dependencies, strip off - environment markers and filter out any dependencies - not matching the markers. - """ - for extra in list(filter(None, dm)): - new_extra = extra - reqs = dm.pop(extra) - new_extra, _, marker = extra.partition(':') - fails_marker = marker and ( - invalid_marker(marker) - or not evaluate_marker(marker) - ) - if fails_marker: - reqs = [] - new_extra = safe_extra(new_extra) or None - - dm.setdefault(new_extra, []).extend(reqs) - return dm - - def _build_dep_map(self): - dm = {} - for name in 'requires.txt', 'depends.txt': - for extra, reqs in split_sections(self._get_metadata(name)): - dm.setdefault(extra, []).extend(parse_requirements(reqs)) - return dm - - def requires(self, extras=()): - """List of Requirements needed for this distro if `extras` are used""" - dm = self._dep_map - deps = [] - deps.extend(dm.get(None, ())) - for ext in extras: - try: - deps.extend(dm[safe_extra(ext)]) - except KeyError: - raise UnknownExtra( - "%s has no such extra feature %r" % (self, ext) - ) - return deps - - def _get_metadata(self, name): - if self.has_metadata(name): - for line in self.get_metadata_lines(name): - yield line - - def activate(self, path=None, replace=False): - """Ensure distribution is importable on `path` (default=sys.path)""" - if path is None: - path = sys.path - self.insert_on(path, replace=replace) - if path is sys.path: - fixup_namespace_packages(self.location) - for pkg in self._get_metadata('namespace_packages.txt'): - if pkg in sys.modules: - declare_namespace(pkg) - - def egg_name(self): - """Return what this distribution's standard .egg filename should be""" - filename = "%s-%s-py%s" % ( - to_filename(self.project_name), to_filename(self.version), - self.py_version or PY_MAJOR - ) - - if self.platform: - filename += '-' + self.platform - return filename - - def __repr__(self): - if self.location: - return "%s (%s)" % (self, self.location) - else: - return str(self) - - def __str__(self): - try: - version = getattr(self, 'version', None) - except ValueError: - version = None - version = version or "[unknown version]" - return "%s %s" % (self.project_name, version) - - def __getattr__(self, attr): - """Delegate all unrecognized public attributes to .metadata provider""" - if attr.startswith('_'): - raise AttributeError(attr) - return getattr(self._provider, attr) - - def __dir__(self): - return list( - set(super(Distribution, self).__dir__()) - | set( - attr for attr in self._provider.__dir__() - if not attr.startswith('_') - ) - ) - - if not hasattr(object, '__dir__'): - # python 2.7 not supported - del __dir__ - - @classmethod - def from_filename(cls, filename, metadata=None, **kw): - return cls.from_location( - _normalize_cached(filename), os.path.basename(filename), metadata, - **kw - ) - - def as_requirement(self): - """Return a ``Requirement`` that matches this distribution exactly""" - if isinstance(self.parsed_version, packaging.version.Version): - spec = "%s==%s" % (self.project_name, self.parsed_version) - else: - spec = "%s===%s" % (self.project_name, self.parsed_version) - - return Requirement.parse(spec) - - def load_entry_point(self, group, name): - """Return the `name` entry point of `group` or raise ImportError""" - ep = self.get_entry_info(group, name) - if ep is None: - raise ImportError("Entry point %r not found" % ((group, name),)) - return ep.load() - - def get_entry_map(self, group=None): - """Return the entry point map for `group`, or the full entry map""" - try: - ep_map = self._ep_map - except AttributeError: - ep_map = self._ep_map = EntryPoint.parse_map( - self._get_metadata('entry_points.txt'), self - ) - if group is not None: - return ep_map.get(group, {}) - return ep_map - - def get_entry_info(self, group, name): - """Return the EntryPoint object for `group`+`name`, or ``None``""" - return self.get_entry_map(group).get(name) - - def insert_on(self, path, loc=None, replace=False): - """Ensure self.location is on path - - If replace=False (default): - - If location is already in path anywhere, do nothing. - - Else: - - If it's an egg and its parent directory is on path, - insert just ahead of the parent. - - Else: add to the end of path. - If replace=True: - - If location is already on path anywhere (not eggs) - or higher priority than its parent (eggs) - do nothing. - - Else: - - If it's an egg and its parent directory is on path, - insert just ahead of the parent, - removing any lower-priority entries. - - Else: add it to the front of path. - """ - - loc = loc or self.location - if not loc: - return - - nloc = _normalize_cached(loc) - bdir = os.path.dirname(nloc) - npath = [(p and _normalize_cached(p) or p) for p in path] - - for p, item in enumerate(npath): - if item == nloc: - if replace: - break - else: - # don't modify path (even removing duplicates) if - # found and not replace - return - elif item == bdir and self.precedence == EGG_DIST: - # if it's an .egg, give it precedence over its directory - # UNLESS it's already been added to sys.path and replace=False - if (not replace) and nloc in npath[p:]: - return - if path is sys.path: - self.check_version_conflict() - path.insert(p, loc) - npath.insert(p, nloc) - break - else: - if path is sys.path: - self.check_version_conflict() - if replace: - path.insert(0, loc) - else: - path.append(loc) - return - - # p is the spot where we found or inserted loc; now remove duplicates - while True: - try: - np = npath.index(nloc, p + 1) - except ValueError: - break - else: - del npath[np], path[np] - # ha! - p = np - - return - - def check_version_conflict(self): - if self.key == 'setuptools': - # ignore the inevitable setuptools self-conflicts :( - return - - nsp = dict.fromkeys(self._get_metadata('namespace_packages.txt')) - loc = normalize_path(self.location) - for modname in self._get_metadata('top_level.txt'): - if (modname not in sys.modules or modname in nsp - or modname in _namespace_packages): - continue - if modname in ('pkg_resources', 'setuptools', 'site'): - continue - fn = getattr(sys.modules[modname], '__file__', None) - if fn and (normalize_path(fn).startswith(loc) or - fn.startswith(self.location)): - continue - issue_warning( - "Module %s was already imported from %s, but %s is being added" - " to sys.path" % (modname, fn, self.location), - ) - - def has_version(self): - try: - self.version - except ValueError: - issue_warning("Unbuilt egg for " + repr(self)) - return False - return True - - def clone(self, **kw): - """Copy this distribution, substituting in any changed keyword args""" - names = 'project_name version py_version platform location precedence' - for attr in names.split(): - kw.setdefault(attr, getattr(self, attr, None)) - kw.setdefault('metadata', self._provider) - return self.__class__(**kw) - - @property - def extras(self): - return [dep for dep in self._dep_map if dep] - - -class EggInfoDistribution(Distribution): - def _reload_version(self): - """ - Packages installed by distutils (e.g. numpy or scipy), - which uses an old safe_version, and so - their version numbers can get mangled when - converted to filenames (e.g., 1.11.0.dev0+2329eae to - 1.11.0.dev0_2329eae). These distributions will not be - parsed properly - downstream by Distribution and safe_version, so - take an extra step and try to get the version number from - the metadata file itself instead of the filename. - """ - md_version = _version_from_file(self._get_metadata(self.PKG_INFO)) - if md_version: - self._version = md_version - return self - - -class DistInfoDistribution(Distribution): - """ - Wrap an actual or potential sys.path entry - w/metadata, .dist-info style. - """ - PKG_INFO = 'METADATA' - EQEQ = re.compile(r"([\(,])\s*(\d.*?)\s*([,\)])") - - @property - def _parsed_pkg_info(self): - """Parse and cache metadata""" - try: - return self._pkg_info - except AttributeError: - metadata = self.get_metadata(self.PKG_INFO) - self._pkg_info = email.parser.Parser().parsestr(metadata) - return self._pkg_info - - @property - def _dep_map(self): - try: - return self.__dep_map - except AttributeError: - self.__dep_map = self._compute_dependencies() - return self.__dep_map - - def _compute_dependencies(self): - """Recompute this distribution's dependencies.""" - dm = self.__dep_map = {None: []} - - reqs = [] - # Including any condition expressions - for req in self._parsed_pkg_info.get_all('Requires-Dist') or []: - reqs.extend(parse_requirements(req)) - - def reqs_for_extra(extra): - for req in reqs: - if not req.marker or req.marker.evaluate({'extra': extra}): - yield req - - common = frozenset(reqs_for_extra(None)) - dm[None].extend(common) - - for extra in self._parsed_pkg_info.get_all('Provides-Extra') or []: - s_extra = safe_extra(extra.strip()) - dm[s_extra] = list(frozenset(reqs_for_extra(extra)) - common) - - return dm - - -_distributionImpl = { - '.egg': Distribution, - '.egg-info': EggInfoDistribution, - '.dist-info': DistInfoDistribution, -} - - -def issue_warning(*args, **kw): - level = 1 - g = globals() - try: - # find the first stack frame that is *not* code in - # the pkg_resources module, to use for the warning - while sys._getframe(level).f_globals is g: - level += 1 - except ValueError: - pass - warnings.warn(stacklevel=level + 1, *args, **kw) - - -class RequirementParseError(ValueError): - def __str__(self): - return ' '.join(self.args) - - -def parse_requirements(strs): - """Yield ``Requirement`` objects for each specification in `strs` - - `strs` must be a string, or a (possibly-nested) iterable thereof. - """ - # create a steppable iterator, so we can handle \-continuations - lines = iter(yield_lines(strs)) - - for line in lines: - # Drop comments -- a hash without a space may be in a URL. - if ' #' in line: - line = line[:line.find(' #')] - # If there is a line continuation, drop it, and append the next line. - if line.endswith('\\'): - line = line[:-2].strip() - try: - line += next(lines) - except StopIteration: - return - yield Requirement(line) - - -class Requirement(packaging.requirements.Requirement): - def __init__(self, requirement_string): - """DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!""" - try: - super(Requirement, self).__init__(requirement_string) - except packaging.requirements.InvalidRequirement as e: - raise RequirementParseError(str(e)) - self.unsafe_name = self.name - project_name = safe_name(self.name) - self.project_name, self.key = project_name, project_name.lower() - self.specs = [ - (spec.operator, spec.version) for spec in self.specifier] - self.extras = tuple(map(safe_extra, self.extras)) - self.hashCmp = ( - self.key, - self.specifier, - frozenset(self.extras), - str(self.marker) if self.marker else None, - ) - self.__hash = hash(self.hashCmp) - - def __eq__(self, other): - return ( - isinstance(other, Requirement) and - self.hashCmp == other.hashCmp - ) - - def __ne__(self, other): - return not self == other - - def __contains__(self, item): - if isinstance(item, Distribution): - if item.key != self.key: - return False - - item = item.version - - # Allow prereleases always in order to match the previous behavior of - # this method. In the future this should be smarter and follow PEP 440 - # more accurately. - return self.specifier.contains(item, prereleases=True) - - def __hash__(self): - return self.__hash - - def __repr__(self): - return "Requirement.parse(%r)" % str(self) - - @staticmethod - def parse(s): - req, = parse_requirements(s) - return req - - -def _always_object(classes): - """ - Ensure object appears in the mro even - for old-style classes. - """ - if object not in classes: - return classes + (object,) - return classes - - -def _find_adapter(registry, ob): - """Return an adapter factory for `ob` from `registry`""" - types = _always_object(inspect.getmro(getattr(ob, '__class__', type(ob)))) - for t in types: - if t in registry: - return registry[t] - - -def ensure_directory(path): - """Ensure that the parent directory of `path` exists""" - dirname = os.path.dirname(path) - py31compat.makedirs(dirname, exist_ok=True) - - -def _bypass_ensure_directory(path): - """Sandbox-bypassing version of ensure_directory()""" - if not WRITE_SUPPORT: - raise IOError('"os.mkdir" not supported on this platform.') - dirname, filename = split(path) - if dirname and filename and not isdir(dirname): - _bypass_ensure_directory(dirname) - try: - mkdir(dirname, 0o755) - except FileExistsError: - pass - - -def split_sections(s): - """Split a string or iterable thereof into (section, content) pairs - - Each ``section`` is a stripped version of the section header ("[section]") - and each ``content`` is a list of stripped lines excluding blank lines and - comment-only lines. If there are any such lines before the first section - header, they're returned in a first ``section`` of ``None``. - """ - section = None - content = [] - for line in yield_lines(s): - if line.startswith("["): - if line.endswith("]"): - if section or content: - yield section, content - section = line[1:-1].strip() - content = [] - else: - raise ValueError("Invalid section heading", line) - else: - content.append(line) - - # wrap up last segment - yield section, content - - -def _mkstemp(*args, **kw): - old_open = os.open - try: - # temporarily bypass sandboxing - os.open = os_open - return tempfile.mkstemp(*args, **kw) - finally: - # and then put it back - os.open = old_open - - -# Silence the PEP440Warning by default, so that end users don't get hit by it -# randomly just because they use pkg_resources. We want to append the rule -# because we want earlier uses of filterwarnings to take precedence over this -# one. -warnings.filterwarnings("ignore", category=PEP440Warning, append=True) - - -# from jaraco.functools 1.3 -def _call_aside(f, *args, **kwargs): - f(*args, **kwargs) - return f - - -@_call_aside -def _initialize(g=globals()): - "Set up global resource manager (deliberately not state-saved)" - manager = ResourceManager() - g['_manager'] = manager - g.update( - (name, getattr(manager, name)) - for name in dir(manager) - if not name.startswith('_') - ) - - -@_call_aside -def _initialize_master_working_set(): - """ - Prepare the master working set and make the ``require()`` - API available. - - This function has explicit effects on the global state - of pkg_resources. It is intended to be invoked once at - the initialization of this module. - - Invocation by other packages is unsupported and done - at their own risk. - """ - working_set = WorkingSet._build_master() - _declare_state('object', working_set=working_set) - - require = working_set.require - iter_entry_points = working_set.iter_entry_points - add_activation_listener = working_set.subscribe - run_script = working_set.run_script - # backward compatibility - run_main = run_script - # Activate all distributions already on sys.path with replace=False and - # ensure that all distributions added to the working set in the future - # (e.g. by calling ``require()``) will get activated as well, - # with higher priority (replace=True). - tuple( - dist.activate(replace=False) - for dist in working_set - ) - add_activation_listener( - lambda dist: dist.activate(replace=True), - existing=False, - ) - working_set.entries = [] - # match order - list(map(working_set.add_entry, sys.path)) - globals().update(locals()) - -class PkgResourcesDeprecationWarning(Warning): - """ - Base class for warning about deprecations in ``pkg_resources`` - - This class is not derived from ``DeprecationWarning``, and as such is - visible by default. - """ diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/py31compat.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/py31compat.py deleted file mode 100644 index a2d3007..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/py31compat.py +++ /dev/null @@ -1,23 +0,0 @@ -import os -import errno -import sys - -from pip._vendor import six - - -def _makedirs_31(path, exist_ok=False): - try: - os.makedirs(path) - except OSError as exc: - if not exist_ok or exc.errno != errno.EEXIST: - raise - - -# rely on compatibility behavior until mode considerations -# and exists_ok considerations are disentangled. -# See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663 -needs_makedirs = ( - six.PY2 or - (3, 4) <= sys.version_info < (3, 4, 1) -) -makedirs = _makedirs_31 if needs_makedirs else os.makedirs diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/__init__.py deleted file mode 100644 index a41f65d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/__init__.py +++ /dev/null @@ -1,127 +0,0 @@ -# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> -# -# Permission to use, copy, modify, and distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -from __future__ import division - -from collections import deque -from datetime import timedelta -from math import ceil -from sys import stderr -from time import time - - -__version__ = '1.4' - - -class Infinite(object): - file = stderr - sma_window = 10 # Simple Moving Average window - - def __init__(self, *args, **kwargs): - self.index = 0 - self.start_ts = time() - self.avg = 0 - self._ts = self.start_ts - self._xput = deque(maxlen=self.sma_window) - for key, val in kwargs.items(): - setattr(self, key, val) - - def __getitem__(self, key): - if key.startswith('_'): - return None - return getattr(self, key, None) - - @property - def elapsed(self): - return int(time() - self.start_ts) - - @property - def elapsed_td(self): - return timedelta(seconds=self.elapsed) - - def update_avg(self, n, dt): - if n > 0: - self._xput.append(dt / n) - self.avg = sum(self._xput) / len(self._xput) - - def update(self): - pass - - def start(self): - pass - - def finish(self): - pass - - def next(self, n=1): - now = time() - dt = now - self._ts - self.update_avg(n, dt) - self._ts = now - self.index = self.index + n - self.update() - - def iter(self, it): - try: - for x in it: - yield x - self.next() - finally: - self.finish() - - -class Progress(Infinite): - def __init__(self, *args, **kwargs): - super(Progress, self).__init__(*args, **kwargs) - self.max = kwargs.get('max', 100) - - @property - def eta(self): - return int(ceil(self.avg * self.remaining)) - - @property - def eta_td(self): - return timedelta(seconds=self.eta) - - @property - def percent(self): - return self.progress * 100 - - @property - def progress(self): - return min(1, self.index / self.max) - - @property - def remaining(self): - return max(self.max - self.index, 0) - - def start(self): - self.update() - - def goto(self, index): - incr = index - self.index - self.next(incr) - - def iter(self, it): - try: - self.max = len(it) - except TypeError: - pass - - try: - for x in it: - yield x - self.next() - finally: - self.finish() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/bar.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/bar.py deleted file mode 100644 index 025e61c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/bar.py +++ /dev/null @@ -1,94 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> -# -# Permission to use, copy, modify, and distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -from __future__ import unicode_literals - -import sys - -from . import Progress -from .helpers import WritelnMixin - - -class Bar(WritelnMixin, Progress): - width = 32 - message = '' - suffix = '%(index)d/%(max)d' - bar_prefix = ' |' - bar_suffix = '| ' - empty_fill = ' ' - fill = '#' - hide_cursor = True - - def update(self): - filled_length = int(self.width * self.progress) - empty_length = self.width - filled_length - - message = self.message % self - bar = self.fill * filled_length - empty = self.empty_fill * empty_length - suffix = self.suffix % self - line = ''.join([message, self.bar_prefix, bar, empty, self.bar_suffix, - suffix]) - self.writeln(line) - - -class ChargingBar(Bar): - suffix = '%(percent)d%%' - bar_prefix = ' ' - bar_suffix = ' ' - empty_fill = '∙' - fill = '█' - - -class FillingSquaresBar(ChargingBar): - empty_fill = '▢' - fill = '▣' - - -class FillingCirclesBar(ChargingBar): - empty_fill = '◯' - fill = '◉' - - -class IncrementalBar(Bar): - if sys.platform.startswith('win'): - phases = (u' ', u'▌', u'█') - else: - phases = (' ', '▏', '▎', '▍', '▌', '▋', '▊', '▉', '█') - - def update(self): - nphases = len(self.phases) - filled_len = self.width * self.progress - nfull = int(filled_len) # Number of full chars - phase = int((filled_len - nfull) * nphases) # Phase of last char - nempty = self.width - nfull # Number of empty chars - - message = self.message % self - bar = self.phases[-1] * nfull - current = self.phases[phase] if phase > 0 else '' - empty = self.empty_fill * max(0, nempty - len(current)) - suffix = self.suffix % self - line = ''.join([message, self.bar_prefix, bar, current, empty, - self.bar_suffix, suffix]) - self.writeln(line) - - -class PixelBar(IncrementalBar): - phases = ('⡀', '⡄', '⡆', '⡇', '⣇', '⣧', '⣷', '⣿') - - -class ShadyBar(IncrementalBar): - phases = (' ', '░', '▒', '▓', '█') diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/counter.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/counter.py deleted file mode 100644 index 6b45a1e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/counter.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> -# -# Permission to use, copy, modify, and distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -from __future__ import unicode_literals -from . import Infinite, Progress -from .helpers import WriteMixin - - -class Counter(WriteMixin, Infinite): - message = '' - hide_cursor = True - - def update(self): - self.write(str(self.index)) - - -class Countdown(WriteMixin, Progress): - hide_cursor = True - - def update(self): - self.write(str(self.remaining)) - - -class Stack(WriteMixin, Progress): - phases = (' ', '▁', '▂', '▃', '▄', '▅', '▆', '▇', '█') - hide_cursor = True - - def update(self): - nphases = len(self.phases) - i = min(nphases - 1, int(self.progress * nphases)) - self.write(self.phases[i]) - - -class Pie(Stack): - phases = ('○', '◔', '◑', '◕', '●') diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/helpers.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/helpers.py deleted file mode 100644 index 0cde44e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/helpers.py +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> -# -# Permission to use, copy, modify, and distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -from __future__ import print_function - - -HIDE_CURSOR = '\x1b[?25l' -SHOW_CURSOR = '\x1b[?25h' - - -class WriteMixin(object): - hide_cursor = False - - def __init__(self, message=None, **kwargs): - super(WriteMixin, self).__init__(**kwargs) - self._width = 0 - if message: - self.message = message - - if self.file and self.file.isatty(): - if self.hide_cursor: - print(HIDE_CURSOR, end='', file=self.file) - print(self.message, end='', file=self.file) - self.file.flush() - - def write(self, s): - if self.file and self.file.isatty(): - b = '\b' * self._width - c = s.ljust(self._width) - print(b + c, end='', file=self.file) - self._width = max(self._width, len(s)) - self.file.flush() - - def finish(self): - if self.file and self.file.isatty() and self.hide_cursor: - print(SHOW_CURSOR, end='', file=self.file) - - -class WritelnMixin(object): - hide_cursor = False - - def __init__(self, message=None, **kwargs): - super(WritelnMixin, self).__init__(**kwargs) - if message: - self.message = message - - if self.file and self.file.isatty() and self.hide_cursor: - print(HIDE_CURSOR, end='', file=self.file) - - def clearln(self): - if self.file and self.file.isatty(): - print('\r\x1b[K', end='', file=self.file) - - def writeln(self, line): - if self.file and self.file.isatty(): - self.clearln() - print(line, end='', file=self.file) - self.file.flush() - - def finish(self): - if self.file and self.file.isatty(): - print(file=self.file) - if self.hide_cursor: - print(SHOW_CURSOR, end='', file=self.file) - - -from signal import signal, SIGINT -from sys import exit - - -class SigIntMixin(object): - """Registers a signal handler that calls finish on SIGINT""" - - def __init__(self, *args, **kwargs): - super(SigIntMixin, self).__init__(*args, **kwargs) - signal(SIGINT, self._sigint_handler) - - def _sigint_handler(self, signum, frame): - self.finish() - exit(0) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/spinner.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/spinner.py deleted file mode 100644 index 464c7b2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/spinner.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> -# -# Permission to use, copy, modify, and distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -from __future__ import unicode_literals -from . import Infinite -from .helpers import WriteMixin - - -class Spinner(WriteMixin, Infinite): - message = '' - phases = ('-', '\\', '|', '/') - hide_cursor = True - - def update(self): - i = self.index % len(self.phases) - self.write(self.phases[i]) - - -class PieSpinner(Spinner): - phases = ['◷', '◶', '◵', '◴'] - - -class MoonSpinner(Spinner): - phases = ['◑', '◒', '◐', '◓'] - - -class LineSpinner(Spinner): - phases = ['⎺', '⎻', '⎼', '⎽', '⎼', '⎻'] - -class PixelSpinner(Spinner): - phases = ['⣾','⣷', '⣯', '⣟', '⡿', '⢿', '⣻', '⣽'] diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pyparsing.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pyparsing.py deleted file mode 100644 index bea4d9c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pyparsing.py +++ /dev/null @@ -1,6452 +0,0 @@ -#-*- coding: utf-8 -*- -# module pyparsing.py -# -# Copyright (c) 2003-2019 Paul T. McGuire -# -# 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. -# - -__doc__ = \ -""" -pyparsing module - Classes and methods to define and execute parsing grammars -============================================================================= - -The pyparsing module is an alternative approach to creating and -executing simple grammars, vs. the traditional lex/yacc approach, or the -use of regular expressions. With pyparsing, you don't need to learn -a new syntax for defining grammars or matching expressions - the parsing -module provides a library of classes that you use to construct the -grammar directly in Python. - -Here is a program to parse "Hello, World!" (or any greeting of the form -``"<salutation>, <addressee>!"``), built up using :class:`Word`, -:class:`Literal`, and :class:`And` elements -(the :class:`'+'<ParserElement.__add__>` operators create :class:`And` expressions, -and the strings are auto-converted to :class:`Literal` expressions):: - - from pip._vendor.pyparsing import Word, alphas - - # define grammar of a greeting - greet = Word(alphas) + "," + Word(alphas) + "!" - - hello = "Hello, World!" - print (hello, "->", greet.parseString(hello)) - -The program outputs the following:: - - Hello, World! -> ['Hello', ',', 'World', '!'] - -The Python representation of the grammar is quite readable, owing to the -self-explanatory class names, and the use of '+', '|' and '^' operators. - -The :class:`ParseResults` object returned from -:class:`ParserElement.parseString` can be -accessed as a nested list, a dictionary, or an object with named -attributes. - -The pyparsing module handles some of the problems that are typically -vexing when writing text parsers: - - - extra or missing whitespace (the above program will also handle - "Hello,World!", "Hello , World !", etc.) - - quoted strings - - embedded comments - - -Getting Started - ------------------ -Visit the classes :class:`ParserElement` and :class:`ParseResults` to -see the base classes that most other pyparsing -classes inherit from. Use the docstrings for examples of how to: - - - construct literal match expressions from :class:`Literal` and - :class:`CaselessLiteral` classes - - construct character word-group expressions using the :class:`Word` - class - - see how to create repetitive expressions using :class:`ZeroOrMore` - and :class:`OneOrMore` classes - - use :class:`'+'<And>`, :class:`'|'<MatchFirst>`, :class:`'^'<Or>`, - and :class:`'&'<Each>` operators to combine simple expressions into - more complex ones - - associate names with your parsed results using - :class:`ParserElement.setResultsName` - - find some helpful expression short-cuts like :class:`delimitedList` - and :class:`oneOf` - - find more useful common expressions in the :class:`pyparsing_common` - namespace class -""" - -__version__ = "2.3.1" -__versionTime__ = "09 Jan 2019 23:26 UTC" -__author__ = "Paul McGuire <ptmcg@users.sourceforge.net>" - -import string -from weakref import ref as wkref -import copy -import sys -import warnings -import re -import sre_constants -import collections -import pprint -import traceback -import types -from datetime import datetime - -try: - # Python 3 - from itertools import filterfalse -except ImportError: - from itertools import ifilterfalse as filterfalse - -try: - from _thread import RLock -except ImportError: - from threading import RLock - -try: - # Python 3 - from collections.abc import Iterable - from collections.abc import MutableMapping -except ImportError: - # Python 2.7 - from collections import Iterable - from collections import MutableMapping - -try: - from collections import OrderedDict as _OrderedDict -except ImportError: - try: - from ordereddict import OrderedDict as _OrderedDict - except ImportError: - _OrderedDict = None - -try: - from types import SimpleNamespace -except ImportError: - class SimpleNamespace: pass - - -#~ sys.stderr.write( "testing pyparsing module, version %s, %s\n" % (__version__,__versionTime__ ) ) - -__all__ = [ -'And', 'CaselessKeyword', 'CaselessLiteral', 'CharsNotIn', 'Combine', 'Dict', 'Each', 'Empty', -'FollowedBy', 'Forward', 'GoToColumn', 'Group', 'Keyword', 'LineEnd', 'LineStart', 'Literal', -'PrecededBy', 'MatchFirst', 'NoMatch', 'NotAny', 'OneOrMore', 'OnlyOnce', 'Optional', 'Or', -'ParseBaseException', 'ParseElementEnhance', 'ParseException', 'ParseExpression', 'ParseFatalException', -'ParseResults', 'ParseSyntaxException', 'ParserElement', 'QuotedString', 'RecursiveGrammarException', -'Regex', 'SkipTo', 'StringEnd', 'StringStart', 'Suppress', 'Token', 'TokenConverter', -'White', 'Word', 'WordEnd', 'WordStart', 'ZeroOrMore', 'Char', -'alphanums', 'alphas', 'alphas8bit', 'anyCloseTag', 'anyOpenTag', 'cStyleComment', 'col', -'commaSeparatedList', 'commonHTMLEntity', 'countedArray', 'cppStyleComment', 'dblQuotedString', -'dblSlashComment', 'delimitedList', 'dictOf', 'downcaseTokens', 'empty', 'hexnums', -'htmlComment', 'javaStyleComment', 'line', 'lineEnd', 'lineStart', 'lineno', -'makeHTMLTags', 'makeXMLTags', 'matchOnlyAtCol', 'matchPreviousExpr', 'matchPreviousLiteral', -'nestedExpr', 'nullDebugAction', 'nums', 'oneOf', 'opAssoc', 'operatorPrecedence', 'printables', -'punc8bit', 'pythonStyleComment', 'quotedString', 'removeQuotes', 'replaceHTMLEntity', -'replaceWith', 'restOfLine', 'sglQuotedString', 'srange', 'stringEnd', -'stringStart', 'traceParseAction', 'unicodeString', 'upcaseTokens', 'withAttribute', -'indentedBlock', 'originalTextFor', 'ungroup', 'infixNotation','locatedExpr', 'withClass', -'CloseMatch', 'tokenMap', 'pyparsing_common', 'pyparsing_unicode', 'unicode_set', -] - -system_version = tuple(sys.version_info)[:3] -PY_3 = system_version[0] == 3 -if PY_3: - _MAX_INT = sys.maxsize - basestring = str - unichr = chr - unicode = str - _ustr = str - - # build list of single arg builtins, that can be used as parse actions - singleArgBuiltins = [sum, len, sorted, reversed, list, tuple, set, any, all, min, max] - -else: - _MAX_INT = sys.maxint - range = xrange - - def _ustr(obj): - """Drop-in replacement for str(obj) that tries to be Unicode - friendly. It first tries str(obj). If that fails with - a UnicodeEncodeError, then it tries unicode(obj). It then - < returns the unicode object | encodes it with the default - encoding | ... >. - """ - if isinstance(obj,unicode): - return obj - - try: - # If this works, then _ustr(obj) has the same behaviour as str(obj), so - # it won't break any existing code. - return str(obj) - - except UnicodeEncodeError: - # Else encode it - ret = unicode(obj).encode(sys.getdefaultencoding(), 'xmlcharrefreplace') - xmlcharref = Regex(r'&#\d+;') - xmlcharref.setParseAction(lambda t: '\\u' + hex(int(t[0][2:-1]))[2:]) - return xmlcharref.transformString(ret) - - # build list of single arg builtins, tolerant of Python version, that can be used as parse actions - singleArgBuiltins = [] - import __builtin__ - for fname in "sum len sorted reversed list tuple set any all min max".split(): - try: - singleArgBuiltins.append(getattr(__builtin__,fname)) - except AttributeError: - continue - -_generatorType = type((y for y in range(1))) - -def _xml_escape(data): - """Escape &, <, >, ", ', etc. in a string of data.""" - - # ampersand must be replaced first - from_symbols = '&><"\'' - to_symbols = ('&'+s+';' for s in "amp gt lt quot apos".split()) - for from_,to_ in zip(from_symbols, to_symbols): - data = data.replace(from_, to_) - return data - -alphas = string.ascii_uppercase + string.ascii_lowercase -nums = "0123456789" -hexnums = nums + "ABCDEFabcdef" -alphanums = alphas + nums -_bslash = chr(92) -printables = "".join(c for c in string.printable if c not in string.whitespace) - -class ParseBaseException(Exception): - """base exception class for all parsing runtime exceptions""" - # Performance tuning: we construct a *lot* of these, so keep this - # constructor as small and fast as possible - def __init__( self, pstr, loc=0, msg=None, elem=None ): - self.loc = loc - if msg is None: - self.msg = pstr - self.pstr = "" - else: - self.msg = msg - self.pstr = pstr - self.parserElement = elem - self.args = (pstr, loc, msg) - - @classmethod - def _from_exception(cls, pe): - """ - internal factory method to simplify creating one type of ParseException - from another - avoids having __init__ signature conflicts among subclasses - """ - return cls(pe.pstr, pe.loc, pe.msg, pe.parserElement) - - def __getattr__( self, aname ): - """supported attributes by name are: - - lineno - returns the line number of the exception text - - col - returns the column number of the exception text - - line - returns the line containing the exception text - """ - if( aname == "lineno" ): - return lineno( self.loc, self.pstr ) - elif( aname in ("col", "column") ): - return col( self.loc, self.pstr ) - elif( aname == "line" ): - return line( self.loc, self.pstr ) - else: - raise AttributeError(aname) - - def __str__( self ): - return "%s (at char %d), (line:%d, col:%d)" % \ - ( self.msg, self.loc, self.lineno, self.column ) - def __repr__( self ): - return _ustr(self) - def markInputline( self, markerString = ">!<" ): - """Extracts the exception line from the input string, and marks - the location of the exception with a special symbol. - """ - line_str = self.line - line_column = self.column - 1 - if markerString: - line_str = "".join((line_str[:line_column], - markerString, line_str[line_column:])) - return line_str.strip() - def __dir__(self): - return "lineno col line".split() + dir(type(self)) - -class ParseException(ParseBaseException): - """ - Exception thrown when parse expressions don't match class; - supported attributes by name are: - - lineno - returns the line number of the exception text - - col - returns the column number of the exception text - - line - returns the line containing the exception text - - Example:: - - try: - Word(nums).setName("integer").parseString("ABC") - except ParseException as pe: - print(pe) - print("column: {}".format(pe.col)) - - prints:: - - Expected integer (at char 0), (line:1, col:1) - column: 1 - - """ - - @staticmethod - def explain(exc, depth=16): - """ - Method to take an exception and translate the Python internal traceback into a list - of the pyparsing expressions that caused the exception to be raised. - - Parameters: - - - exc - exception raised during parsing (need not be a ParseException, in support - of Python exceptions that might be raised in a parse action) - - depth (default=16) - number of levels back in the stack trace to list expression - and function names; if None, the full stack trace names will be listed; if 0, only - the failing input line, marker, and exception string will be shown - - Returns a multi-line string listing the ParserElements and/or function names in the - exception's stack trace. - - Note: the diagnostic output will include string representations of the expressions - that failed to parse. These representations will be more helpful if you use `setName` to - give identifiable names to your expressions. Otherwise they will use the default string - forms, which may be cryptic to read. - - explain() is only supported under Python 3. - """ - import inspect - - if depth is None: - depth = sys.getrecursionlimit() - ret = [] - if isinstance(exc, ParseBaseException): - ret.append(exc.line) - ret.append(' ' * (exc.col - 1) + '^') - ret.append("{0}: {1}".format(type(exc).__name__, exc)) - - if depth > 0: - callers = inspect.getinnerframes(exc.__traceback__, context=depth) - seen = set() - for i, ff in enumerate(callers[-depth:]): - frm = ff.frame - - f_self = frm.f_locals.get('self', None) - if isinstance(f_self, ParserElement): - if frm.f_code.co_name not in ('parseImpl', '_parseNoCache'): - continue - if f_self in seen: - continue - seen.add(f_self) - - self_type = type(f_self) - ret.append("{0}.{1} - {2}".format(self_type.__module__, - self_type.__name__, - f_self)) - elif f_self is not None: - self_type = type(f_self) - ret.append("{0}.{1}".format(self_type.__module__, - self_type.__name__)) - else: - code = frm.f_code - if code.co_name in ('wrapper', '<module>'): - continue - - ret.append("{0}".format(code.co_name)) - - depth -= 1 - if not depth: - break - - return '\n'.join(ret) - - -class ParseFatalException(ParseBaseException): - """user-throwable exception thrown when inconsistent parse content - is found; stops all parsing immediately""" - pass - -class ParseSyntaxException(ParseFatalException): - """just like :class:`ParseFatalException`, but thrown internally - when an :class:`ErrorStop<And._ErrorStop>` ('-' operator) indicates - that parsing is to stop immediately because an unbacktrackable - syntax error has been found. - """ - pass - -#~ class ReparseException(ParseBaseException): - #~ """Experimental class - parse actions can raise this exception to cause - #~ pyparsing to reparse the input string: - #~ - with a modified input string, and/or - #~ - with a modified start location - #~ Set the values of the ReparseException in the constructor, and raise the - #~ exception in a parse action to cause pyparsing to use the new string/location. - #~ Setting the values as None causes no change to be made. - #~ """ - #~ def __init_( self, newstring, restartLoc ): - #~ self.newParseText = newstring - #~ self.reparseLoc = restartLoc - -class RecursiveGrammarException(Exception): - """exception thrown by :class:`ParserElement.validate` if the - grammar could be improperly recursive - """ - def __init__( self, parseElementList ): - self.parseElementTrace = parseElementList - - def __str__( self ): - return "RecursiveGrammarException: %s" % self.parseElementTrace - -class _ParseResultsWithOffset(object): - def __init__(self,p1,p2): - self.tup = (p1,p2) - def __getitem__(self,i): - return self.tup[i] - def __repr__(self): - return repr(self.tup[0]) - def setOffset(self,i): - self.tup = (self.tup[0],i) - -class ParseResults(object): - """Structured parse results, to provide multiple means of access to - the parsed data: - - - as a list (``len(results)``) - - by list index (``results[0], results[1]``, etc.) - - by attribute (``results.<resultsName>`` - see :class:`ParserElement.setResultsName`) - - Example:: - - integer = Word(nums) - date_str = (integer.setResultsName("year") + '/' - + integer.setResultsName("month") + '/' - + integer.setResultsName("day")) - # equivalent form: - # date_str = integer("year") + '/' + integer("month") + '/' + integer("day") - - # parseString returns a ParseResults object - result = date_str.parseString("1999/12/31") - - def test(s, fn=repr): - print("%s -> %s" % (s, fn(eval(s)))) - test("list(result)") - test("result[0]") - test("result['month']") - test("result.day") - test("'month' in result") - test("'minutes' in result") - test("result.dump()", str) - - prints:: - - list(result) -> ['1999', '/', '12', '/', '31'] - result[0] -> '1999' - result['month'] -> '12' - result.day -> '31' - 'month' in result -> True - 'minutes' in result -> False - result.dump() -> ['1999', '/', '12', '/', '31'] - - day: 31 - - month: 12 - - year: 1999 - """ - def __new__(cls, toklist=None, name=None, asList=True, modal=True ): - if isinstance(toklist, cls): - return toklist - retobj = object.__new__(cls) - retobj.__doinit = True - return retobj - - # Performance tuning: we construct a *lot* of these, so keep this - # constructor as small and fast as possible - def __init__( self, toklist=None, name=None, asList=True, modal=True, isinstance=isinstance ): - if self.__doinit: - self.__doinit = False - self.__name = None - self.__parent = None - self.__accumNames = {} - self.__asList = asList - self.__modal = modal - if toklist is None: - toklist = [] - if isinstance(toklist, list): - self.__toklist = toklist[:] - elif isinstance(toklist, _generatorType): - self.__toklist = list(toklist) - else: - self.__toklist = [toklist] - self.__tokdict = dict() - - if name is not None and name: - if not modal: - self.__accumNames[name] = 0 - if isinstance(name,int): - name = _ustr(name) # will always return a str, but use _ustr for consistency - self.__name = name - if not (isinstance(toklist, (type(None), basestring, list)) and toklist in (None,'',[])): - if isinstance(toklist,basestring): - toklist = [ toklist ] - if asList: - if isinstance(toklist,ParseResults): - self[name] = _ParseResultsWithOffset(ParseResults(toklist.__toklist), 0) - else: - self[name] = _ParseResultsWithOffset(ParseResults(toklist[0]),0) - self[name].__name = name - else: - try: - self[name] = toklist[0] - except (KeyError,TypeError,IndexError): - self[name] = toklist - - def __getitem__( self, i ): - if isinstance( i, (int,slice) ): - return self.__toklist[i] - else: - if i not in self.__accumNames: - return self.__tokdict[i][-1][0] - else: - return ParseResults([ v[0] for v in self.__tokdict[i] ]) - - def __setitem__( self, k, v, isinstance=isinstance ): - if isinstance(v,_ParseResultsWithOffset): - self.__tokdict[k] = self.__tokdict.get(k,list()) + [v] - sub = v[0] - elif isinstance(k,(int,slice)): - self.__toklist[k] = v - sub = v - else: - self.__tokdict[k] = self.__tokdict.get(k,list()) + [_ParseResultsWithOffset(v,0)] - sub = v - if isinstance(sub,ParseResults): - sub.__parent = wkref(self) - - def __delitem__( self, i ): - if isinstance(i,(int,slice)): - mylen = len( self.__toklist ) - del self.__toklist[i] - - # convert int to slice - if isinstance(i, int): - if i < 0: - i += mylen - i = slice(i, i+1) - # get removed indices - removed = list(range(*i.indices(mylen))) - removed.reverse() - # fixup indices in token dictionary - for name,occurrences in self.__tokdict.items(): - for j in removed: - for k, (value, position) in enumerate(occurrences): - occurrences[k] = _ParseResultsWithOffset(value, position - (position > j)) - else: - del self.__tokdict[i] - - def __contains__( self, k ): - return k in self.__tokdict - - def __len__( self ): return len( self.__toklist ) - def __bool__(self): return ( not not self.__toklist ) - __nonzero__ = __bool__ - def __iter__( self ): return iter( self.__toklist ) - def __reversed__( self ): return iter( self.__toklist[::-1] ) - def _iterkeys( self ): - if hasattr(self.__tokdict, "iterkeys"): - return self.__tokdict.iterkeys() - else: - return iter(self.__tokdict) - - def _itervalues( self ): - return (self[k] for k in self._iterkeys()) - - def _iteritems( self ): - return ((k, self[k]) for k in self._iterkeys()) - - if PY_3: - keys = _iterkeys - """Returns an iterator of all named result keys.""" - - values = _itervalues - """Returns an iterator of all named result values.""" - - items = _iteritems - """Returns an iterator of all named result key-value tuples.""" - - else: - iterkeys = _iterkeys - """Returns an iterator of all named result keys (Python 2.x only).""" - - itervalues = _itervalues - """Returns an iterator of all named result values (Python 2.x only).""" - - iteritems = _iteritems - """Returns an iterator of all named result key-value tuples (Python 2.x only).""" - - def keys( self ): - """Returns all named result keys (as a list in Python 2.x, as an iterator in Python 3.x).""" - return list(self.iterkeys()) - - def values( self ): - """Returns all named result values (as a list in Python 2.x, as an iterator in Python 3.x).""" - return list(self.itervalues()) - - def items( self ): - """Returns all named result key-values (as a list of tuples in Python 2.x, as an iterator in Python 3.x).""" - return list(self.iteritems()) - - def haskeys( self ): - """Since keys() returns an iterator, this method is helpful in bypassing - code that looks for the existence of any defined results names.""" - return bool(self.__tokdict) - - def pop( self, *args, **kwargs): - """ - Removes and returns item at specified index (default= ``last``). - Supports both ``list`` and ``dict`` semantics for ``pop()``. If - passed no argument or an integer argument, it will use ``list`` - semantics and pop tokens from the list of parsed tokens. If passed - a non-integer argument (most likely a string), it will use ``dict`` - semantics and pop the corresponding value from any defined results - names. A second default return value argument is supported, just as in - ``dict.pop()``. - - Example:: - - def remove_first(tokens): - tokens.pop(0) - print(OneOrMore(Word(nums)).parseString("0 123 321")) # -> ['0', '123', '321'] - print(OneOrMore(Word(nums)).addParseAction(remove_first).parseString("0 123 321")) # -> ['123', '321'] - - label = Word(alphas) - patt = label("LABEL") + OneOrMore(Word(nums)) - print(patt.parseString("AAB 123 321").dump()) - - # Use pop() in a parse action to remove named result (note that corresponding value is not - # removed from list form of results) - def remove_LABEL(tokens): - tokens.pop("LABEL") - return tokens - patt.addParseAction(remove_LABEL) - print(patt.parseString("AAB 123 321").dump()) - - prints:: - - ['AAB', '123', '321'] - - LABEL: AAB - - ['AAB', '123', '321'] - """ - if not args: - args = [-1] - for k,v in kwargs.items(): - if k == 'default': - args = (args[0], v) - else: - raise TypeError("pop() got an unexpected keyword argument '%s'" % k) - if (isinstance(args[0], int) or - len(args) == 1 or - args[0] in self): - index = args[0] - ret = self[index] - del self[index] - return ret - else: - defaultvalue = args[1] - return defaultvalue - - def get(self, key, defaultValue=None): - """ - Returns named result matching the given key, or if there is no - such name, then returns the given ``defaultValue`` or ``None`` if no - ``defaultValue`` is specified. - - Similar to ``dict.get()``. - - Example:: - - integer = Word(nums) - date_str = integer("year") + '/' + integer("month") + '/' + integer("day") - - result = date_str.parseString("1999/12/31") - print(result.get("year")) # -> '1999' - print(result.get("hour", "not specified")) # -> 'not specified' - print(result.get("hour")) # -> None - """ - if key in self: - return self[key] - else: - return defaultValue - - def insert( self, index, insStr ): - """ - Inserts new element at location index in the list of parsed tokens. - - Similar to ``list.insert()``. - - Example:: - - print(OneOrMore(Word(nums)).parseString("0 123 321")) # -> ['0', '123', '321'] - - # use a parse action to insert the parse location in the front of the parsed results - def insert_locn(locn, tokens): - tokens.insert(0, locn) - print(OneOrMore(Word(nums)).addParseAction(insert_locn).parseString("0 123 321")) # -> [0, '0', '123', '321'] - """ - self.__toklist.insert(index, insStr) - # fixup indices in token dictionary - for name,occurrences in self.__tokdict.items(): - for k, (value, position) in enumerate(occurrences): - occurrences[k] = _ParseResultsWithOffset(value, position + (position > index)) - - def append( self, item ): - """ - Add single element to end of ParseResults list of elements. - - Example:: - - print(OneOrMore(Word(nums)).parseString("0 123 321")) # -> ['0', '123', '321'] - - # use a parse action to compute the sum of the parsed integers, and add it to the end - def append_sum(tokens): - tokens.append(sum(map(int, tokens))) - print(OneOrMore(Word(nums)).addParseAction(append_sum).parseString("0 123 321")) # -> ['0', '123', '321', 444] - """ - self.__toklist.append(item) - - def extend( self, itemseq ): - """ - Add sequence of elements to end of ParseResults list of elements. - - Example:: - - patt = OneOrMore(Word(alphas)) - - # use a parse action to append the reverse of the matched strings, to make a palindrome - def make_palindrome(tokens): - tokens.extend(reversed([t[::-1] for t in tokens])) - return ''.join(tokens) - print(patt.addParseAction(make_palindrome).parseString("lskdj sdlkjf lksd")) # -> 'lskdjsdlkjflksddsklfjkldsjdksl' - """ - if isinstance(itemseq, ParseResults): - self += itemseq - else: - self.__toklist.extend(itemseq) - - def clear( self ): - """ - Clear all elements and results names. - """ - del self.__toklist[:] - self.__tokdict.clear() - - def __getattr__( self, name ): - try: - return self[name] - except KeyError: - return "" - - if name in self.__tokdict: - if name not in self.__accumNames: - return self.__tokdict[name][-1][0] - else: - return ParseResults([ v[0] for v in self.__tokdict[name] ]) - else: - return "" - - def __add__( self, other ): - ret = self.copy() - ret += other - return ret - - def __iadd__( self, other ): - if other.__tokdict: - offset = len(self.__toklist) - addoffset = lambda a: offset if a<0 else a+offset - otheritems = other.__tokdict.items() - otherdictitems = [(k, _ParseResultsWithOffset(v[0],addoffset(v[1])) ) - for (k,vlist) in otheritems for v in vlist] - for k,v in otherdictitems: - self[k] = v - if isinstance(v[0],ParseResults): - v[0].__parent = wkref(self) - - self.__toklist += other.__toklist - self.__accumNames.update( other.__accumNames ) - return self - - def __radd__(self, other): - if isinstance(other,int) and other == 0: - # useful for merging many ParseResults using sum() builtin - return self.copy() - else: - # this may raise a TypeError - so be it - return other + self - - def __repr__( self ): - return "(%s, %s)" % ( repr( self.__toklist ), repr( self.__tokdict ) ) - - def __str__( self ): - return '[' + ', '.join(_ustr(i) if isinstance(i, ParseResults) else repr(i) for i in self.__toklist) + ']' - - def _asStringList( self, sep='' ): - out = [] - for item in self.__toklist: - if out and sep: - out.append(sep) - if isinstance( item, ParseResults ): - out += item._asStringList() - else: - out.append( _ustr(item) ) - return out - - def asList( self ): - """ - Returns the parse results as a nested list of matching tokens, all converted to strings. - - Example:: - - patt = OneOrMore(Word(alphas)) - result = patt.parseString("sldkj lsdkj sldkj") - # even though the result prints in string-like form, it is actually a pyparsing ParseResults - print(type(result), result) # -> <class 'pyparsing.ParseResults'> ['sldkj', 'lsdkj', 'sldkj'] - - # Use asList() to create an actual list - result_list = result.asList() - print(type(result_list), result_list) # -> <class 'list'> ['sldkj', 'lsdkj', 'sldkj'] - """ - return [res.asList() if isinstance(res,ParseResults) else res for res in self.__toklist] - - def asDict( self ): - """ - Returns the named parse results as a nested dictionary. - - Example:: - - integer = Word(nums) - date_str = integer("year") + '/' + integer("month") + '/' + integer("day") - - result = date_str.parseString('12/31/1999') - print(type(result), repr(result)) # -> <class 'pyparsing.ParseResults'> (['12', '/', '31', '/', '1999'], {'day': [('1999', 4)], 'year': [('12', 0)], 'month': [('31', 2)]}) - - result_dict = result.asDict() - print(type(result_dict), repr(result_dict)) # -> <class 'dict'> {'day': '1999', 'year': '12', 'month': '31'} - - # even though a ParseResults supports dict-like access, sometime you just need to have a dict - import json - print(json.dumps(result)) # -> Exception: TypeError: ... is not JSON serializable - print(json.dumps(result.asDict())) # -> {"month": "31", "day": "1999", "year": "12"} - """ - if PY_3: - item_fn = self.items - else: - item_fn = self.iteritems - - def toItem(obj): - if isinstance(obj, ParseResults): - if obj.haskeys(): - return obj.asDict() - else: - return [toItem(v) for v in obj] - else: - return obj - - return dict((k,toItem(v)) for k,v in item_fn()) - - def copy( self ): - """ - Returns a new copy of a :class:`ParseResults` object. - """ - ret = ParseResults( self.__toklist ) - ret.__tokdict = dict(self.__tokdict.items()) - ret.__parent = self.__parent - ret.__accumNames.update( self.__accumNames ) - ret.__name = self.__name - return ret - - def asXML( self, doctag=None, namedItemsOnly=False, indent="", formatted=True ): - """ - (Deprecated) Returns the parse results as XML. Tags are created for tokens and lists that have defined results names. - """ - nl = "\n" - out = [] - namedItems = dict((v[1],k) for (k,vlist) in self.__tokdict.items() - for v in vlist) - nextLevelIndent = indent + " " - - # collapse out indents if formatting is not desired - if not formatted: - indent = "" - nextLevelIndent = "" - nl = "" - - selfTag = None - if doctag is not None: - selfTag = doctag - else: - if self.__name: - selfTag = self.__name - - if not selfTag: - if namedItemsOnly: - return "" - else: - selfTag = "ITEM" - - out += [ nl, indent, "<", selfTag, ">" ] - - for i,res in enumerate(self.__toklist): - if isinstance(res,ParseResults): - if i in namedItems: - out += [ res.asXML(namedItems[i], - namedItemsOnly and doctag is None, - nextLevelIndent, - formatted)] - else: - out += [ res.asXML(None, - namedItemsOnly and doctag is None, - nextLevelIndent, - formatted)] - else: - # individual token, see if there is a name for it - resTag = None - if i in namedItems: - resTag = namedItems[i] - if not resTag: - if namedItemsOnly: - continue - else: - resTag = "ITEM" - xmlBodyText = _xml_escape(_ustr(res)) - out += [ nl, nextLevelIndent, "<", resTag, ">", - xmlBodyText, - "</", resTag, ">" ] - - out += [ nl, indent, "</", selfTag, ">" ] - return "".join(out) - - def __lookup(self,sub): - for k,vlist in self.__tokdict.items(): - for v,loc in vlist: - if sub is v: - return k - return None - - def getName(self): - r""" - Returns the results name for this token expression. Useful when several - different expressions might match at a particular location. - - Example:: - - integer = Word(nums) - ssn_expr = Regex(r"\d\d\d-\d\d-\d\d\d\d") - house_number_expr = Suppress('#') + Word(nums, alphanums) - user_data = (Group(house_number_expr)("house_number") - | Group(ssn_expr)("ssn") - | Group(integer)("age")) - user_info = OneOrMore(user_data) - - result = user_info.parseString("22 111-22-3333 #221B") - for item in result: - print(item.getName(), ':', item[0]) - - prints:: - - age : 22 - ssn : 111-22-3333 - house_number : 221B - """ - if self.__name: - return self.__name - elif self.__parent: - par = self.__parent() - if par: - return par.__lookup(self) - else: - return None - elif (len(self) == 1 and - len(self.__tokdict) == 1 and - next(iter(self.__tokdict.values()))[0][1] in (0,-1)): - return next(iter(self.__tokdict.keys())) - else: - return None - - def dump(self, indent='', depth=0, full=True): - """ - Diagnostic method for listing out the contents of - a :class:`ParseResults`. Accepts an optional ``indent`` argument so - that this string can be embedded in a nested display of other data. - - Example:: - - integer = Word(nums) - date_str = integer("year") + '/' + integer("month") + '/' + integer("day") - - result = date_str.parseString('12/31/1999') - print(result.dump()) - - prints:: - - ['12', '/', '31', '/', '1999'] - - day: 1999 - - month: 31 - - year: 12 - """ - out = [] - NL = '\n' - out.append( indent+_ustr(self.asList()) ) - if full: - if self.haskeys(): - items = sorted((str(k), v) for k,v in self.items()) - for k,v in items: - if out: - out.append(NL) - out.append( "%s%s- %s: " % (indent,(' '*depth), k) ) - if isinstance(v,ParseResults): - if v: - out.append( v.dump(indent,depth+1) ) - else: - out.append(_ustr(v)) - else: - out.append(repr(v)) - elif any(isinstance(vv,ParseResults) for vv in self): - v = self - for i,vv in enumerate(v): - if isinstance(vv,ParseResults): - out.append("\n%s%s[%d]:\n%s%s%s" % (indent,(' '*(depth)),i,indent,(' '*(depth+1)),vv.dump(indent,depth+1) )) - else: - out.append("\n%s%s[%d]:\n%s%s%s" % (indent,(' '*(depth)),i,indent,(' '*(depth+1)),_ustr(vv))) - - return "".join(out) - - def pprint(self, *args, **kwargs): - """ - Pretty-printer for parsed results as a list, using the - `pprint <https://docs.python.org/3/library/pprint.html>`_ module. - Accepts additional positional or keyword args as defined for - `pprint.pprint <https://docs.python.org/3/library/pprint.html#pprint.pprint>`_ . - - Example:: - - ident = Word(alphas, alphanums) - num = Word(nums) - func = Forward() - term = ident | num | Group('(' + func + ')') - func <<= ident + Group(Optional(delimitedList(term))) - result = func.parseString("fna a,b,(fnb c,d,200),100") - result.pprint(width=40) - - prints:: - - ['fna', - ['a', - 'b', - ['(', 'fnb', ['c', 'd', '200'], ')'], - '100']] - """ - pprint.pprint(self.asList(), *args, **kwargs) - - # add support for pickle protocol - def __getstate__(self): - return ( self.__toklist, - ( self.__tokdict.copy(), - self.__parent is not None and self.__parent() or None, - self.__accumNames, - self.__name ) ) - - def __setstate__(self,state): - self.__toklist = state[0] - (self.__tokdict, - par, - inAccumNames, - self.__name) = state[1] - self.__accumNames = {} - self.__accumNames.update(inAccumNames) - if par is not None: - self.__parent = wkref(par) - else: - self.__parent = None - - def __getnewargs__(self): - return self.__toklist, self.__name, self.__asList, self.__modal - - def __dir__(self): - return (dir(type(self)) + list(self.keys())) - -MutableMapping.register(ParseResults) - -def col (loc,strg): - """Returns current column within a string, counting newlines as line separators. - The first column is number 1. - - Note: the default parsing behavior is to expand tabs in the input string - before starting the parsing process. See - :class:`ParserElement.parseString` for more - information on parsing strings containing ``<TAB>`` s, and suggested - methods to maintain a consistent view of the parsed string, the parse - location, and line and column positions within the parsed string. - """ - s = strg - return 1 if 0<loc<len(s) and s[loc-1] == '\n' else loc - s.rfind("\n", 0, loc) - -def lineno(loc,strg): - """Returns current line number within a string, counting newlines as line separators. - The first line is number 1. - - Note - the default parsing behavior is to expand tabs in the input string - before starting the parsing process. See :class:`ParserElement.parseString` - for more information on parsing strings containing ``<TAB>`` s, and - suggested methods to maintain a consistent view of the parsed string, the - parse location, and line and column positions within the parsed string. - """ - return strg.count("\n",0,loc) + 1 - -def line( loc, strg ): - """Returns the line of text containing loc within a string, counting newlines as line separators. - """ - lastCR = strg.rfind("\n", 0, loc) - nextCR = strg.find("\n", loc) - if nextCR >= 0: - return strg[lastCR+1:nextCR] - else: - return strg[lastCR+1:] - -def _defaultStartDebugAction( instring, loc, expr ): - print (("Match " + _ustr(expr) + " at loc " + _ustr(loc) + "(%d,%d)" % ( lineno(loc,instring), col(loc,instring) ))) - -def _defaultSuccessDebugAction( instring, startloc, endloc, expr, toks ): - print ("Matched " + _ustr(expr) + " -> " + str(toks.asList())) - -def _defaultExceptionDebugAction( instring, loc, expr, exc ): - print ("Exception raised:" + _ustr(exc)) - -def nullDebugAction(*args): - """'Do-nothing' debug action, to suppress debugging output during parsing.""" - pass - -# Only works on Python 3.x - nonlocal is toxic to Python 2 installs -#~ 'decorator to trim function calls to match the arity of the target' -#~ def _trim_arity(func, maxargs=3): - #~ if func in singleArgBuiltins: - #~ return lambda s,l,t: func(t) - #~ limit = 0 - #~ foundArity = False - #~ def wrapper(*args): - #~ nonlocal limit,foundArity - #~ while 1: - #~ try: - #~ ret = func(*args[limit:]) - #~ foundArity = True - #~ return ret - #~ except TypeError: - #~ if limit == maxargs or foundArity: - #~ raise - #~ limit += 1 - #~ continue - #~ return wrapper - -# this version is Python 2.x-3.x cross-compatible -'decorator to trim function calls to match the arity of the target' -def _trim_arity(func, maxargs=2): - if func in singleArgBuiltins: - return lambda s,l,t: func(t) - limit = [0] - foundArity = [False] - - # traceback return data structure changed in Py3.5 - normalize back to plain tuples - if system_version[:2] >= (3,5): - def extract_stack(limit=0): - # special handling for Python 3.5.0 - extra deep call stack by 1 - offset = -3 if system_version == (3,5,0) else -2 - frame_summary = traceback.extract_stack(limit=-offset+limit-1)[offset] - return [frame_summary[:2]] - def extract_tb(tb, limit=0): - frames = traceback.extract_tb(tb, limit=limit) - frame_summary = frames[-1] - return [frame_summary[:2]] - else: - extract_stack = traceback.extract_stack - extract_tb = traceback.extract_tb - - # synthesize what would be returned by traceback.extract_stack at the call to - # user's parse action 'func', so that we don't incur call penalty at parse time - - LINE_DIFF = 6 - # IF ANY CODE CHANGES, EVEN JUST COMMENTS OR BLANK LINES, BETWEEN THE NEXT LINE AND - # THE CALL TO FUNC INSIDE WRAPPER, LINE_DIFF MUST BE MODIFIED!!!! - this_line = extract_stack(limit=2)[-1] - pa_call_line_synth = (this_line[0], this_line[1]+LINE_DIFF) - - def wrapper(*args): - while 1: - try: - ret = func(*args[limit[0]:]) - foundArity[0] = True - return ret - except TypeError: - # re-raise TypeErrors if they did not come from our arity testing - if foundArity[0]: - raise - else: - try: - tb = sys.exc_info()[-1] - if not extract_tb(tb, limit=2)[-1][:2] == pa_call_line_synth: - raise - finally: - del tb - - if limit[0] <= maxargs: - limit[0] += 1 - continue - raise - - # copy func name to wrapper for sensible debug output - func_name = "<parse action>" - try: - func_name = getattr(func, '__name__', - getattr(func, '__class__').__name__) - except Exception: - func_name = str(func) - wrapper.__name__ = func_name - - return wrapper - -class ParserElement(object): - """Abstract base level parser element class.""" - DEFAULT_WHITE_CHARS = " \n\t\r" - verbose_stacktrace = False - - @staticmethod - def setDefaultWhitespaceChars( chars ): - r""" - Overrides the default whitespace chars - - Example:: - - # default whitespace chars are space, <TAB> and newline - OneOrMore(Word(alphas)).parseString("abc def\nghi jkl") # -> ['abc', 'def', 'ghi', 'jkl'] - - # change to just treat newline as significant - ParserElement.setDefaultWhitespaceChars(" \t") - OneOrMore(Word(alphas)).parseString("abc def\nghi jkl") # -> ['abc', 'def'] - """ - ParserElement.DEFAULT_WHITE_CHARS = chars - - @staticmethod - def inlineLiteralsUsing(cls): - """ - Set class to be used for inclusion of string literals into a parser. - - Example:: - - # default literal class used is Literal - integer = Word(nums) - date_str = integer("year") + '/' + integer("month") + '/' + integer("day") - - date_str.parseString("1999/12/31") # -> ['1999', '/', '12', '/', '31'] - - - # change to Suppress - ParserElement.inlineLiteralsUsing(Suppress) - date_str = integer("year") + '/' + integer("month") + '/' + integer("day") - - date_str.parseString("1999/12/31") # -> ['1999', '12', '31'] - """ - ParserElement._literalStringClass = cls - - def __init__( self, savelist=False ): - self.parseAction = list() - self.failAction = None - #~ self.name = "<unknown>" # don't define self.name, let subclasses try/except upcall - self.strRepr = None - self.resultsName = None - self.saveAsList = savelist - self.skipWhitespace = True - self.whiteChars = set(ParserElement.DEFAULT_WHITE_CHARS) - self.copyDefaultWhiteChars = True - self.mayReturnEmpty = False # used when checking for left-recursion - self.keepTabs = False - self.ignoreExprs = list() - self.debug = False - self.streamlined = False - self.mayIndexError = True # used to optimize exception handling for subclasses that don't advance parse index - self.errmsg = "" - self.modalResults = True # used to mark results names as modal (report only last) or cumulative (list all) - self.debugActions = ( None, None, None ) #custom debug actions - self.re = None - self.callPreparse = True # used to avoid redundant calls to preParse - self.callDuringTry = False - - def copy( self ): - """ - Make a copy of this :class:`ParserElement`. Useful for defining - different parse actions for the same parsing pattern, using copies of - the original parse element. - - Example:: - - integer = Word(nums).setParseAction(lambda toks: int(toks[0])) - integerK = integer.copy().addParseAction(lambda toks: toks[0]*1024) + Suppress("K") - integerM = integer.copy().addParseAction(lambda toks: toks[0]*1024*1024) + Suppress("M") - - print(OneOrMore(integerK | integerM | integer).parseString("5K 100 640K 256M")) - - prints:: - - [5120, 100, 655360, 268435456] - - Equivalent form of ``expr.copy()`` is just ``expr()``:: - - integerM = integer().addParseAction(lambda toks: toks[0]*1024*1024) + Suppress("M") - """ - cpy = copy.copy( self ) - cpy.parseAction = self.parseAction[:] - cpy.ignoreExprs = self.ignoreExprs[:] - if self.copyDefaultWhiteChars: - cpy.whiteChars = ParserElement.DEFAULT_WHITE_CHARS - return cpy - - def setName( self, name ): - """ - Define name for this expression, makes debugging and exception messages clearer. - - Example:: - - Word(nums).parseString("ABC") # -> Exception: Expected W:(0123...) (at char 0), (line:1, col:1) - Word(nums).setName("integer").parseString("ABC") # -> Exception: Expected integer (at char 0), (line:1, col:1) - """ - self.name = name - self.errmsg = "Expected " + self.name - if hasattr(self,"exception"): - self.exception.msg = self.errmsg - return self - - def setResultsName( self, name, listAllMatches=False ): - """ - Define name for referencing matching tokens as a nested attribute - of the returned parse results. - NOTE: this returns a *copy* of the original :class:`ParserElement` object; - this is so that the client can define a basic element, such as an - integer, and reference it in multiple places with different names. - - You can also set results names using the abbreviated syntax, - ``expr("name")`` in place of ``expr.setResultsName("name")`` - - see :class:`__call__`. - - Example:: - - date_str = (integer.setResultsName("year") + '/' - + integer.setResultsName("month") + '/' - + integer.setResultsName("day")) - - # equivalent form: - date_str = integer("year") + '/' + integer("month") + '/' + integer("day") - """ - newself = self.copy() - if name.endswith("*"): - name = name[:-1] - listAllMatches=True - newself.resultsName = name - newself.modalResults = not listAllMatches - return newself - - def setBreak(self,breakFlag = True): - """Method to invoke the Python pdb debugger when this element is - about to be parsed. Set ``breakFlag`` to True to enable, False to - disable. - """ - if breakFlag: - _parseMethod = self._parse - def breaker(instring, loc, doActions=True, callPreParse=True): - import pdb - pdb.set_trace() - return _parseMethod( instring, loc, doActions, callPreParse ) - breaker._originalParseMethod = _parseMethod - self._parse = breaker - else: - if hasattr(self._parse,"_originalParseMethod"): - self._parse = self._parse._originalParseMethod - return self - - def setParseAction( self, *fns, **kwargs ): - """ - Define one or more actions to perform when successfully matching parse element definition. - Parse action fn is a callable method with 0-3 arguments, called as ``fn(s,loc,toks)`` , - ``fn(loc,toks)`` , ``fn(toks)`` , or just ``fn()`` , where: - - - s = the original string being parsed (see note below) - - loc = the location of the matching substring - - toks = a list of the matched tokens, packaged as a :class:`ParseResults` object - - If the functions in fns modify the tokens, they can return them as the return - value from fn, and the modified list of tokens will replace the original. - Otherwise, fn does not need to return any value. - - Optional keyword arguments: - - callDuringTry = (default= ``False`` ) indicate if parse action should be run during lookaheads and alternate testing - - Note: the default parsing behavior is to expand tabs in the input string - before starting the parsing process. See :class:`parseString for more - information on parsing strings containing ``<TAB>`` s, and suggested - methods to maintain a consistent view of the parsed string, the parse - location, and line and column positions within the parsed string. - - Example:: - - integer = Word(nums) - date_str = integer + '/' + integer + '/' + integer - - date_str.parseString("1999/12/31") # -> ['1999', '/', '12', '/', '31'] - - # use parse action to convert to ints at parse time - integer = Word(nums).setParseAction(lambda toks: int(toks[0])) - date_str = integer + '/' + integer + '/' + integer - - # note that integer fields are now ints, not strings - date_str.parseString("1999/12/31") # -> [1999, '/', 12, '/', 31] - """ - self.parseAction = list(map(_trim_arity, list(fns))) - self.callDuringTry = kwargs.get("callDuringTry", False) - return self - - def addParseAction( self, *fns, **kwargs ): - """ - Add one or more parse actions to expression's list of parse actions. See :class:`setParseAction`. - - See examples in :class:`copy`. - """ - self.parseAction += list(map(_trim_arity, list(fns))) - self.callDuringTry = self.callDuringTry or kwargs.get("callDuringTry", False) - return self - - def addCondition(self, *fns, **kwargs): - """Add a boolean predicate function to expression's list of parse actions. See - :class:`setParseAction` for function call signatures. Unlike ``setParseAction``, - functions passed to ``addCondition`` need to return boolean success/fail of the condition. - - Optional keyword arguments: - - message = define a custom message to be used in the raised exception - - fatal = if True, will raise ParseFatalException to stop parsing immediately; otherwise will raise ParseException - - Example:: - - integer = Word(nums).setParseAction(lambda toks: int(toks[0])) - year_int = integer.copy() - year_int.addCondition(lambda toks: toks[0] >= 2000, message="Only support years 2000 and later") - date_str = year_int + '/' + integer + '/' + integer - - result = date_str.parseString("1999/12/31") # -> Exception: Only support years 2000 and later (at char 0), (line:1, col:1) - """ - msg = kwargs.get("message", "failed user-defined condition") - exc_type = ParseFatalException if kwargs.get("fatal", False) else ParseException - for fn in fns: - fn = _trim_arity(fn) - def pa(s,l,t): - if not bool(fn(s,l,t)): - raise exc_type(s,l,msg) - self.parseAction.append(pa) - self.callDuringTry = self.callDuringTry or kwargs.get("callDuringTry", False) - return self - - def setFailAction( self, fn ): - """Define action to perform if parsing fails at this expression. - Fail acton fn is a callable function that takes the arguments - ``fn(s,loc,expr,err)`` where: - - s = string being parsed - - loc = location where expression match was attempted and failed - - expr = the parse expression that failed - - err = the exception thrown - The function returns no value. It may throw :class:`ParseFatalException` - if it is desired to stop parsing immediately.""" - self.failAction = fn - return self - - def _skipIgnorables( self, instring, loc ): - exprsFound = True - while exprsFound: - exprsFound = False - for e in self.ignoreExprs: - try: - while 1: - loc,dummy = e._parse( instring, loc ) - exprsFound = True - except ParseException: - pass - return loc - - def preParse( self, instring, loc ): - if self.ignoreExprs: - loc = self._skipIgnorables( instring, loc ) - - if self.skipWhitespace: - wt = self.whiteChars - instrlen = len(instring) - while loc < instrlen and instring[loc] in wt: - loc += 1 - - return loc - - def parseImpl( self, instring, loc, doActions=True ): - return loc, [] - - def postParse( self, instring, loc, tokenlist ): - return tokenlist - - #~ @profile - def _parseNoCache( self, instring, loc, doActions=True, callPreParse=True ): - debugging = ( self.debug ) #and doActions ) - - if debugging or self.failAction: - #~ print ("Match",self,"at loc",loc,"(%d,%d)" % ( lineno(loc,instring), col(loc,instring) )) - if (self.debugActions[0] ): - self.debugActions[0]( instring, loc, self ) - if callPreParse and self.callPreparse: - preloc = self.preParse( instring, loc ) - else: - preloc = loc - tokensStart = preloc - try: - try: - loc,tokens = self.parseImpl( instring, preloc, doActions ) - except IndexError: - raise ParseException( instring, len(instring), self.errmsg, self ) - except ParseBaseException as err: - #~ print ("Exception raised:", err) - if self.debugActions[2]: - self.debugActions[2]( instring, tokensStart, self, err ) - if self.failAction: - self.failAction( instring, tokensStart, self, err ) - raise - else: - if callPreParse and self.callPreparse: - preloc = self.preParse( instring, loc ) - else: - preloc = loc - tokensStart = preloc - if self.mayIndexError or preloc >= len(instring): - try: - loc,tokens = self.parseImpl( instring, preloc, doActions ) - except IndexError: - raise ParseException( instring, len(instring), self.errmsg, self ) - else: - loc,tokens = self.parseImpl( instring, preloc, doActions ) - - tokens = self.postParse( instring, loc, tokens ) - - retTokens = ParseResults( tokens, self.resultsName, asList=self.saveAsList, modal=self.modalResults ) - if self.parseAction and (doActions or self.callDuringTry): - if debugging: - try: - for fn in self.parseAction: - try: - tokens = fn( instring, tokensStart, retTokens ) - except IndexError as parse_action_exc: - exc = ParseException("exception raised in parse action") - exc.__cause__ = parse_action_exc - raise exc - - if tokens is not None and tokens is not retTokens: - retTokens = ParseResults( tokens, - self.resultsName, - asList=self.saveAsList and isinstance(tokens,(ParseResults,list)), - modal=self.modalResults ) - except ParseBaseException as err: - #~ print "Exception raised in user parse action:", err - if (self.debugActions[2] ): - self.debugActions[2]( instring, tokensStart, self, err ) - raise - else: - for fn in self.parseAction: - try: - tokens = fn( instring, tokensStart, retTokens ) - except IndexError as parse_action_exc: - exc = ParseException("exception raised in parse action") - exc.__cause__ = parse_action_exc - raise exc - - if tokens is not None and tokens is not retTokens: - retTokens = ParseResults( tokens, - self.resultsName, - asList=self.saveAsList and isinstance(tokens,(ParseResults,list)), - modal=self.modalResults ) - if debugging: - #~ print ("Matched",self,"->",retTokens.asList()) - if (self.debugActions[1] ): - self.debugActions[1]( instring, tokensStart, loc, self, retTokens ) - - return loc, retTokens - - def tryParse( self, instring, loc ): - try: - return self._parse( instring, loc, doActions=False )[0] - except ParseFatalException: - raise ParseException( instring, loc, self.errmsg, self) - - def canParseNext(self, instring, loc): - try: - self.tryParse(instring, loc) - except (ParseException, IndexError): - return False - else: - return True - - class _UnboundedCache(object): - def __init__(self): - cache = {} - self.not_in_cache = not_in_cache = object() - - def get(self, key): - return cache.get(key, not_in_cache) - - def set(self, key, value): - cache[key] = value - - def clear(self): - cache.clear() - - def cache_len(self): - return len(cache) - - self.get = types.MethodType(get, self) - self.set = types.MethodType(set, self) - self.clear = types.MethodType(clear, self) - self.__len__ = types.MethodType(cache_len, self) - - if _OrderedDict is not None: - class _FifoCache(object): - def __init__(self, size): - self.not_in_cache = not_in_cache = object() - - cache = _OrderedDict() - - def get(self, key): - return cache.get(key, not_in_cache) - - def set(self, key, value): - cache[key] = value - while len(cache) > size: - try: - cache.popitem(False) - except KeyError: - pass - - def clear(self): - cache.clear() - - def cache_len(self): - return len(cache) - - self.get = types.MethodType(get, self) - self.set = types.MethodType(set, self) - self.clear = types.MethodType(clear, self) - self.__len__ = types.MethodType(cache_len, self) - - else: - class _FifoCache(object): - def __init__(self, size): - self.not_in_cache = not_in_cache = object() - - cache = {} - key_fifo = collections.deque([], size) - - def get(self, key): - return cache.get(key, not_in_cache) - - def set(self, key, value): - cache[key] = value - while len(key_fifo) > size: - cache.pop(key_fifo.popleft(), None) - key_fifo.append(key) - - def clear(self): - cache.clear() - key_fifo.clear() - - def cache_len(self): - return len(cache) - - self.get = types.MethodType(get, self) - self.set = types.MethodType(set, self) - self.clear = types.MethodType(clear, self) - self.__len__ = types.MethodType(cache_len, self) - - # argument cache for optimizing repeated calls when backtracking through recursive expressions - packrat_cache = {} # this is set later by enabledPackrat(); this is here so that resetCache() doesn't fail - packrat_cache_lock = RLock() - packrat_cache_stats = [0, 0] - - # this method gets repeatedly called during backtracking with the same arguments - - # we can cache these arguments and save ourselves the trouble of re-parsing the contained expression - def _parseCache( self, instring, loc, doActions=True, callPreParse=True ): - HIT, MISS = 0, 1 - lookup = (self, instring, loc, callPreParse, doActions) - with ParserElement.packrat_cache_lock: - cache = ParserElement.packrat_cache - value = cache.get(lookup) - if value is cache.not_in_cache: - ParserElement.packrat_cache_stats[MISS] += 1 - try: - value = self._parseNoCache(instring, loc, doActions, callPreParse) - except ParseBaseException as pe: - # cache a copy of the exception, without the traceback - cache.set(lookup, pe.__class__(*pe.args)) - raise - else: - cache.set(lookup, (value[0], value[1].copy())) - return value - else: - ParserElement.packrat_cache_stats[HIT] += 1 - if isinstance(value, Exception): - raise value - return (value[0], value[1].copy()) - - _parse = _parseNoCache - - @staticmethod - def resetCache(): - ParserElement.packrat_cache.clear() - ParserElement.packrat_cache_stats[:] = [0] * len(ParserElement.packrat_cache_stats) - - _packratEnabled = False - @staticmethod - def enablePackrat(cache_size_limit=128): - """Enables "packrat" parsing, which adds memoizing to the parsing logic. - Repeated parse attempts at the same string location (which happens - often in many complex grammars) can immediately return a cached value, - instead of re-executing parsing/validating code. Memoizing is done of - both valid results and parsing exceptions. - - Parameters: - - - cache_size_limit - (default= ``128``) - if an integer value is provided - will limit the size of the packrat cache; if None is passed, then - the cache size will be unbounded; if 0 is passed, the cache will - be effectively disabled. - - This speedup may break existing programs that use parse actions that - have side-effects. For this reason, packrat parsing is disabled when - you first import pyparsing. To activate the packrat feature, your - program must call the class method :class:`ParserElement.enablePackrat`. - For best results, call ``enablePackrat()`` immediately after - importing pyparsing. - - Example:: - - from pip._vendor import pyparsing - pyparsing.ParserElement.enablePackrat() - """ - if not ParserElement._packratEnabled: - ParserElement._packratEnabled = True - if cache_size_limit is None: - ParserElement.packrat_cache = ParserElement._UnboundedCache() - else: - ParserElement.packrat_cache = ParserElement._FifoCache(cache_size_limit) - ParserElement._parse = ParserElement._parseCache - - def parseString( self, instring, parseAll=False ): - """ - Execute the parse expression with the given string. - This is the main interface to the client code, once the complete - expression has been built. - - If you want the grammar to require that the entire input string be - successfully parsed, then set ``parseAll`` to True (equivalent to ending - the grammar with ``StringEnd()``). - - Note: ``parseString`` implicitly calls ``expandtabs()`` on the input string, - in order to report proper column numbers in parse actions. - If the input string contains tabs and - the grammar uses parse actions that use the ``loc`` argument to index into the - string being parsed, you can ensure you have a consistent view of the input - string by: - - - calling ``parseWithTabs`` on your grammar before calling ``parseString`` - (see :class:`parseWithTabs`) - - define your parse action using the full ``(s,loc,toks)`` signature, and - reference the input string using the parse action's ``s`` argument - - explictly expand the tabs in your input string before calling - ``parseString`` - - Example:: - - Word('a').parseString('aaaaabaaa') # -> ['aaaaa'] - Word('a').parseString('aaaaabaaa', parseAll=True) # -> Exception: Expected end of text - """ - ParserElement.resetCache() - if not self.streamlined: - self.streamline() - #~ self.saveAsList = True - for e in self.ignoreExprs: - e.streamline() - if not self.keepTabs: - instring = instring.expandtabs() - try: - loc, tokens = self._parse( instring, 0 ) - if parseAll: - loc = self.preParse( instring, loc ) - se = Empty() + StringEnd() - se._parse( instring, loc ) - except ParseBaseException as exc: - if ParserElement.verbose_stacktrace: - raise - else: - # catch and re-raise exception from here, clears out pyparsing internal stack trace - raise exc - else: - return tokens - - def scanString( self, instring, maxMatches=_MAX_INT, overlap=False ): - """ - Scan the input string for expression matches. Each match will return the - matching tokens, start location, and end location. May be called with optional - ``maxMatches`` argument, to clip scanning after 'n' matches are found. If - ``overlap`` is specified, then overlapping matches will be reported. - - Note that the start and end locations are reported relative to the string - being parsed. See :class:`parseString` for more information on parsing - strings with embedded tabs. - - Example:: - - source = "sldjf123lsdjjkf345sldkjf879lkjsfd987" - print(source) - for tokens,start,end in Word(alphas).scanString(source): - print(' '*start + '^'*(end-start)) - print(' '*start + tokens[0]) - - prints:: - - sldjf123lsdjjkf345sldkjf879lkjsfd987 - ^^^^^ - sldjf - ^^^^^^^ - lsdjjkf - ^^^^^^ - sldkjf - ^^^^^^ - lkjsfd - """ - if not self.streamlined: - self.streamline() - for e in self.ignoreExprs: - e.streamline() - - if not self.keepTabs: - instring = _ustr(instring).expandtabs() - instrlen = len(instring) - loc = 0 - preparseFn = self.preParse - parseFn = self._parse - ParserElement.resetCache() - matches = 0 - try: - while loc <= instrlen and matches < maxMatches: - try: - preloc = preparseFn( instring, loc ) - nextLoc,tokens = parseFn( instring, preloc, callPreParse=False ) - except ParseException: - loc = preloc+1 - else: - if nextLoc > loc: - matches += 1 - yield tokens, preloc, nextLoc - if overlap: - nextloc = preparseFn( instring, loc ) - if nextloc > loc: - loc = nextLoc - else: - loc += 1 - else: - loc = nextLoc - else: - loc = preloc+1 - except ParseBaseException as exc: - if ParserElement.verbose_stacktrace: - raise - else: - # catch and re-raise exception from here, clears out pyparsing internal stack trace - raise exc - - def transformString( self, instring ): - """ - Extension to :class:`scanString`, to modify matching text with modified tokens that may - be returned from a parse action. To use ``transformString``, define a grammar and - attach a parse action to it that modifies the returned token list. - Invoking ``transformString()`` on a target string will then scan for matches, - and replace the matched text patterns according to the logic in the parse - action. ``transformString()`` returns the resulting transformed string. - - Example:: - - wd = Word(alphas) - wd.setParseAction(lambda toks: toks[0].title()) - - print(wd.transformString("now is the winter of our discontent made glorious summer by this sun of york.")) - - prints:: - - Now Is The Winter Of Our Discontent Made Glorious Summer By This Sun Of York. - """ - out = [] - lastE = 0 - # force preservation of <TAB>s, to minimize unwanted transformation of string, and to - # keep string locs straight between transformString and scanString - self.keepTabs = True - try: - for t,s,e in self.scanString( instring ): - out.append( instring[lastE:s] ) - if t: - if isinstance(t,ParseResults): - out += t.asList() - elif isinstance(t,list): - out += t - else: - out.append(t) - lastE = e - out.append(instring[lastE:]) - out = [o for o in out if o] - return "".join(map(_ustr,_flatten(out))) - except ParseBaseException as exc: - if ParserElement.verbose_stacktrace: - raise - else: - # catch and re-raise exception from here, clears out pyparsing internal stack trace - raise exc - - def searchString( self, instring, maxMatches=_MAX_INT ): - """ - Another extension to :class:`scanString`, simplifying the access to the tokens found - to match the given parse expression. May be called with optional - ``maxMatches`` argument, to clip searching after 'n' matches are found. - - Example:: - - # a capitalized word starts with an uppercase letter, followed by zero or more lowercase letters - cap_word = Word(alphas.upper(), alphas.lower()) - - print(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity")) - - # the sum() builtin can be used to merge results into a single ParseResults object - print(sum(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity"))) - - prints:: - - [['More'], ['Iron'], ['Lead'], ['Gold'], ['I'], ['Electricity']] - ['More', 'Iron', 'Lead', 'Gold', 'I', 'Electricity'] - """ - try: - return ParseResults([ t for t,s,e in self.scanString( instring, maxMatches ) ]) - except ParseBaseException as exc: - if ParserElement.verbose_stacktrace: - raise - else: - # catch and re-raise exception from here, clears out pyparsing internal stack trace - raise exc - - def split(self, instring, maxsplit=_MAX_INT, includeSeparators=False): - """ - Generator method to split a string using the given expression as a separator. - May be called with optional ``maxsplit`` argument, to limit the number of splits; - and the optional ``includeSeparators`` argument (default= ``False``), if the separating - matching text should be included in the split results. - - Example:: - - punc = oneOf(list(".,;:/-!?")) - print(list(punc.split("This, this?, this sentence, is badly punctuated!"))) - - prints:: - - ['This', ' this', '', ' this sentence', ' is badly punctuated', ''] - """ - splits = 0 - last = 0 - for t,s,e in self.scanString(instring, maxMatches=maxsplit): - yield instring[last:s] - if includeSeparators: - yield t[0] - last = e - yield instring[last:] - - def __add__(self, other ): - """ - Implementation of + operator - returns :class:`And`. Adding strings to a ParserElement - converts them to :class:`Literal`s by default. - - Example:: - - greet = Word(alphas) + "," + Word(alphas) + "!" - hello = "Hello, World!" - print (hello, "->", greet.parseString(hello)) - - prints:: - - Hello, World! -> ['Hello', ',', 'World', '!'] - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return And( [ self, other ] ) - - def __radd__(self, other ): - """ - Implementation of + operator when left operand is not a :class:`ParserElement` - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other + self - - def __sub__(self, other): - """ - Implementation of - operator, returns :class:`And` with error stop - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return self + And._ErrorStop() + other - - def __rsub__(self, other ): - """ - Implementation of - operator when left operand is not a :class:`ParserElement` - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other - self - - def __mul__(self,other): - """ - Implementation of * operator, allows use of ``expr * 3`` in place of - ``expr + expr + expr``. Expressions may also me multiplied by a 2-integer - tuple, similar to ``{min,max}`` multipliers in regular expressions. Tuples - may also include ``None`` as in: - - ``expr*(n,None)`` or ``expr*(n,)`` is equivalent - to ``expr*n + ZeroOrMore(expr)`` - (read as "at least n instances of ``expr``") - - ``expr*(None,n)`` is equivalent to ``expr*(0,n)`` - (read as "0 to n instances of ``expr``") - - ``expr*(None,None)`` is equivalent to ``ZeroOrMore(expr)`` - - ``expr*(1,None)`` is equivalent to ``OneOrMore(expr)`` - - Note that ``expr*(None,n)`` does not raise an exception if - more than n exprs exist in the input stream; that is, - ``expr*(None,n)`` does not enforce a maximum number of expr - occurrences. If this behavior is desired, then write - ``expr*(None,n) + ~expr`` - """ - if isinstance(other,int): - minElements, optElements = other,0 - elif isinstance(other,tuple): - other = (other + (None, None))[:2] - if other[0] is None: - other = (0, other[1]) - if isinstance(other[0],int) and other[1] is None: - if other[0] == 0: - return ZeroOrMore(self) - if other[0] == 1: - return OneOrMore(self) - else: - return self*other[0] + ZeroOrMore(self) - elif isinstance(other[0],int) and isinstance(other[1],int): - minElements, optElements = other - optElements -= minElements - else: - raise TypeError("cannot multiply 'ParserElement' and ('%s','%s') objects", type(other[0]),type(other[1])) - else: - raise TypeError("cannot multiply 'ParserElement' and '%s' objects", type(other)) - - if minElements < 0: - raise ValueError("cannot multiply ParserElement by negative value") - if optElements < 0: - raise ValueError("second tuple value must be greater or equal to first tuple value") - if minElements == optElements == 0: - raise ValueError("cannot multiply ParserElement by 0 or (0,0)") - - if (optElements): - def makeOptionalList(n): - if n>1: - return Optional(self + makeOptionalList(n-1)) - else: - return Optional(self) - if minElements: - if minElements == 1: - ret = self + makeOptionalList(optElements) - else: - ret = And([self]*minElements) + makeOptionalList(optElements) - else: - ret = makeOptionalList(optElements) - else: - if minElements == 1: - ret = self - else: - ret = And([self]*minElements) - return ret - - def __rmul__(self, other): - return self.__mul__(other) - - def __or__(self, other ): - """ - Implementation of | operator - returns :class:`MatchFirst` - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return MatchFirst( [ self, other ] ) - - def __ror__(self, other ): - """ - Implementation of | operator when left operand is not a :class:`ParserElement` - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other | self - - def __xor__(self, other ): - """ - Implementation of ^ operator - returns :class:`Or` - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return Or( [ self, other ] ) - - def __rxor__(self, other ): - """ - Implementation of ^ operator when left operand is not a :class:`ParserElement` - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other ^ self - - def __and__(self, other ): - """ - Implementation of & operator - returns :class:`Each` - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return Each( [ self, other ] ) - - def __rand__(self, other ): - """ - Implementation of & operator when left operand is not a :class:`ParserElement` - """ - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - if not isinstance( other, ParserElement ): - warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), - SyntaxWarning, stacklevel=2) - return None - return other & self - - def __invert__( self ): - """ - Implementation of ~ operator - returns :class:`NotAny` - """ - return NotAny( self ) - - def __call__(self, name=None): - """ - Shortcut for :class:`setResultsName`, with ``listAllMatches=False``. - - If ``name`` is given with a trailing ``'*'`` character, then ``listAllMatches`` will be - passed as ``True``. - - If ``name` is omitted, same as calling :class:`copy`. - - Example:: - - # these are equivalent - userdata = Word(alphas).setResultsName("name") + Word(nums+"-").setResultsName("socsecno") - userdata = Word(alphas)("name") + Word(nums+"-")("socsecno") - """ - if name is not None: - return self.setResultsName(name) - else: - return self.copy() - - def suppress( self ): - """ - Suppresses the output of this :class:`ParserElement`; useful to keep punctuation from - cluttering up returned output. - """ - return Suppress( self ) - - def leaveWhitespace( self ): - """ - Disables the skipping of whitespace before matching the characters in the - :class:`ParserElement`'s defined pattern. This is normally only used internally by - the pyparsing module, but may be needed in some whitespace-sensitive grammars. - """ - self.skipWhitespace = False - return self - - def setWhitespaceChars( self, chars ): - """ - Overrides the default whitespace chars - """ - self.skipWhitespace = True - self.whiteChars = chars - self.copyDefaultWhiteChars = False - return self - - def parseWithTabs( self ): - """ - Overrides default behavior to expand ``<TAB>``s to spaces before parsing the input string. - Must be called before ``parseString`` when the input grammar contains elements that - match ``<TAB>`` characters. - """ - self.keepTabs = True - return self - - def ignore( self, other ): - """ - Define expression to be ignored (e.g., comments) while doing pattern - matching; may be called repeatedly, to define multiple comment or other - ignorable patterns. - - Example:: - - patt = OneOrMore(Word(alphas)) - patt.parseString('ablaj /* comment */ lskjd') # -> ['ablaj'] - - patt.ignore(cStyleComment) - patt.parseString('ablaj /* comment */ lskjd') # -> ['ablaj', 'lskjd'] - """ - if isinstance(other, basestring): - other = Suppress(other) - - if isinstance( other, Suppress ): - if other not in self.ignoreExprs: - self.ignoreExprs.append(other) - else: - self.ignoreExprs.append( Suppress( other.copy() ) ) - return self - - def setDebugActions( self, startAction, successAction, exceptionAction ): - """ - Enable display of debugging messages while doing pattern matching. - """ - self.debugActions = (startAction or _defaultStartDebugAction, - successAction or _defaultSuccessDebugAction, - exceptionAction or _defaultExceptionDebugAction) - self.debug = True - return self - - def setDebug( self, flag=True ): - """ - Enable display of debugging messages while doing pattern matching. - Set ``flag`` to True to enable, False to disable. - - Example:: - - wd = Word(alphas).setName("alphaword") - integer = Word(nums).setName("numword") - term = wd | integer - - # turn on debugging for wd - wd.setDebug() - - OneOrMore(term).parseString("abc 123 xyz 890") - - prints:: - - Match alphaword at loc 0(1,1) - Matched alphaword -> ['abc'] - Match alphaword at loc 3(1,4) - Exception raised:Expected alphaword (at char 4), (line:1, col:5) - Match alphaword at loc 7(1,8) - Matched alphaword -> ['xyz'] - Match alphaword at loc 11(1,12) - Exception raised:Expected alphaword (at char 12), (line:1, col:13) - Match alphaword at loc 15(1,16) - Exception raised:Expected alphaword (at char 15), (line:1, col:16) - - The output shown is that produced by the default debug actions - custom debug actions can be - specified using :class:`setDebugActions`. Prior to attempting - to match the ``wd`` expression, the debugging message ``"Match <exprname> at loc <n>(<line>,<col>)"`` - is shown. Then if the parse succeeds, a ``"Matched"`` message is shown, or an ``"Exception raised"`` - message is shown. Also note the use of :class:`setName` to assign a human-readable name to the expression, - which makes debugging and exception messages easier to understand - for instance, the default - name created for the :class:`Word` expression without calling ``setName`` is ``"W:(ABCD...)"``. - """ - if flag: - self.setDebugActions( _defaultStartDebugAction, _defaultSuccessDebugAction, _defaultExceptionDebugAction ) - else: - self.debug = False - return self - - def __str__( self ): - return self.name - - def __repr__( self ): - return _ustr(self) - - def streamline( self ): - self.streamlined = True - self.strRepr = None - return self - - def checkRecursion( self, parseElementList ): - pass - - def validate( self, validateTrace=[] ): - """ - Check defined expressions for valid structure, check for infinite recursive definitions. - """ - self.checkRecursion( [] ) - - def parseFile( self, file_or_filename, parseAll=False ): - """ - Execute the parse expression on the given file or filename. - If a filename is specified (instead of a file object), - the entire file is opened, read, and closed before parsing. - """ - try: - file_contents = file_or_filename.read() - except AttributeError: - with open(file_or_filename, "r") as f: - file_contents = f.read() - try: - return self.parseString(file_contents, parseAll) - except ParseBaseException as exc: - if ParserElement.verbose_stacktrace: - raise - else: - # catch and re-raise exception from here, clears out pyparsing internal stack trace - raise exc - - def __eq__(self,other): - if isinstance(other, ParserElement): - return self is other or vars(self) == vars(other) - elif isinstance(other, basestring): - return self.matches(other) - else: - return super(ParserElement,self)==other - - def __ne__(self,other): - return not (self == other) - - def __hash__(self): - return hash(id(self)) - - def __req__(self,other): - return self == other - - def __rne__(self,other): - return not (self == other) - - def matches(self, testString, parseAll=True): - """ - Method for quick testing of a parser against a test string. Good for simple - inline microtests of sub expressions while building up larger parser. - - Parameters: - - testString - to test against this expression for a match - - parseAll - (default= ``True``) - flag to pass to :class:`parseString` when running tests - - Example:: - - expr = Word(nums) - assert expr.matches("100") - """ - try: - self.parseString(_ustr(testString), parseAll=parseAll) - return True - except ParseBaseException: - return False - - def runTests(self, tests, parseAll=True, comment='#', - fullDump=True, printResults=True, failureTests=False, postParse=None): - """ - Execute the parse expression on a series of test strings, showing each - test, the parsed results or where the parse failed. Quick and easy way to - run a parse expression against a list of sample strings. - - Parameters: - - tests - a list of separate test strings, or a multiline string of test strings - - parseAll - (default= ``True``) - flag to pass to :class:`parseString` when running tests - - comment - (default= ``'#'``) - expression for indicating embedded comments in the test - string; pass None to disable comment filtering - - fullDump - (default= ``True``) - dump results as list followed by results names in nested outline; - if False, only dump nested list - - printResults - (default= ``True``) prints test output to stdout - - failureTests - (default= ``False``) indicates if these tests are expected to fail parsing - - postParse - (default= ``None``) optional callback for successful parse results; called as - `fn(test_string, parse_results)` and returns a string to be added to the test output - - Returns: a (success, results) tuple, where success indicates that all tests succeeded - (or failed if ``failureTests`` is True), and the results contain a list of lines of each - test's output - - Example:: - - number_expr = pyparsing_common.number.copy() - - result = number_expr.runTests(''' - # unsigned integer - 100 - # negative integer - -100 - # float with scientific notation - 6.02e23 - # integer with scientific notation - 1e-12 - ''') - print("Success" if result[0] else "Failed!") - - result = number_expr.runTests(''' - # stray character - 100Z - # missing leading digit before '.' - -.100 - # too many '.' - 3.14.159 - ''', failureTests=True) - print("Success" if result[0] else "Failed!") - - prints:: - - # unsigned integer - 100 - [100] - - # negative integer - -100 - [-100] - - # float with scientific notation - 6.02e23 - [6.02e+23] - - # integer with scientific notation - 1e-12 - [1e-12] - - Success - - # stray character - 100Z - ^ - FAIL: Expected end of text (at char 3), (line:1, col:4) - - # missing leading digit before '.' - -.100 - ^ - FAIL: Expected {real number with scientific notation | real number | signed integer} (at char 0), (line:1, col:1) - - # too many '.' - 3.14.159 - ^ - FAIL: Expected end of text (at char 4), (line:1, col:5) - - Success - - Each test string must be on a single line. If you want to test a string that spans multiple - lines, create a test like this:: - - expr.runTest(r"this is a test\\n of strings that spans \\n 3 lines") - - (Note that this is a raw string literal, you must include the leading 'r'.) - """ - if isinstance(tests, basestring): - tests = list(map(str.strip, tests.rstrip().splitlines())) - if isinstance(comment, basestring): - comment = Literal(comment) - allResults = [] - comments = [] - success = True - for t in tests: - if comment is not None and comment.matches(t, False) or comments and not t: - comments.append(t) - continue - if not t: - continue - out = ['\n'.join(comments), t] - comments = [] - try: - # convert newline marks to actual newlines, and strip leading BOM if present - t = t.replace(r'\n','\n').lstrip('\ufeff') - result = self.parseString(t, parseAll=parseAll) - out.append(result.dump(full=fullDump)) - success = success and not failureTests - if postParse is not None: - try: - pp_value = postParse(t, result) - if pp_value is not None: - out.append(str(pp_value)) - except Exception as e: - out.append("{0} failed: {1}: {2}".format(postParse.__name__, type(e).__name__, e)) - except ParseBaseException as pe: - fatal = "(FATAL)" if isinstance(pe, ParseFatalException) else "" - if '\n' in t: - out.append(line(pe.loc, t)) - out.append(' '*(col(pe.loc,t)-1) + '^' + fatal) - else: - out.append(' '*pe.loc + '^' + fatal) - out.append("FAIL: " + str(pe)) - success = success and failureTests - result = pe - except Exception as exc: - out.append("FAIL-EXCEPTION: " + str(exc)) - success = success and failureTests - result = exc - - if printResults: - if fullDump: - out.append('') - print('\n'.join(out)) - - allResults.append((t, result)) - - return success, allResults - - -class Token(ParserElement): - """Abstract :class:`ParserElement` subclass, for defining atomic - matching patterns. - """ - def __init__( self ): - super(Token,self).__init__( savelist=False ) - - -class Empty(Token): - """An empty token, will always match. - """ - def __init__( self ): - super(Empty,self).__init__() - self.name = "Empty" - self.mayReturnEmpty = True - self.mayIndexError = False - - -class NoMatch(Token): - """A token that will never match. - """ - def __init__( self ): - super(NoMatch,self).__init__() - self.name = "NoMatch" - self.mayReturnEmpty = True - self.mayIndexError = False - self.errmsg = "Unmatchable token" - - def parseImpl( self, instring, loc, doActions=True ): - raise ParseException(instring, loc, self.errmsg, self) - - -class Literal(Token): - """Token to exactly match a specified string. - - Example:: - - Literal('blah').parseString('blah') # -> ['blah'] - Literal('blah').parseString('blahfooblah') # -> ['blah'] - Literal('blah').parseString('bla') # -> Exception: Expected "blah" - - For case-insensitive matching, use :class:`CaselessLiteral`. - - For keyword matching (force word break before and after the matched string), - use :class:`Keyword` or :class:`CaselessKeyword`. - """ - def __init__( self, matchString ): - super(Literal,self).__init__() - self.match = matchString - self.matchLen = len(matchString) - try: - self.firstMatchChar = matchString[0] - except IndexError: - warnings.warn("null string passed to Literal; use Empty() instead", - SyntaxWarning, stacklevel=2) - self.__class__ = Empty - self.name = '"%s"' % _ustr(self.match) - self.errmsg = "Expected " + self.name - self.mayReturnEmpty = False - self.mayIndexError = False - - # Performance tuning: this routine gets called a *lot* - # if this is a single character match string and the first character matches, - # short-circuit as quickly as possible, and avoid calling startswith - #~ @profile - def parseImpl( self, instring, loc, doActions=True ): - if (instring[loc] == self.firstMatchChar and - (self.matchLen==1 or instring.startswith(self.match,loc)) ): - return loc+self.matchLen, self.match - raise ParseException(instring, loc, self.errmsg, self) -_L = Literal -ParserElement._literalStringClass = Literal - -class Keyword(Token): - """Token to exactly match a specified string as a keyword, that is, - it must be immediately followed by a non-keyword character. Compare - with :class:`Literal`: - - - ``Literal("if")`` will match the leading ``'if'`` in - ``'ifAndOnlyIf'``. - - ``Keyword("if")`` will not; it will only match the leading - ``'if'`` in ``'if x=1'``, or ``'if(y==2)'`` - - Accepts two optional constructor arguments in addition to the - keyword string: - - - ``identChars`` is a string of characters that would be valid - identifier characters, defaulting to all alphanumerics + "_" and - "$" - - ``caseless`` allows case-insensitive matching, default is ``False``. - - Example:: - - Keyword("start").parseString("start") # -> ['start'] - Keyword("start").parseString("starting") # -> Exception - - For case-insensitive matching, use :class:`CaselessKeyword`. - """ - DEFAULT_KEYWORD_CHARS = alphanums+"_$" - - def __init__( self, matchString, identChars=None, caseless=False ): - super(Keyword,self).__init__() - if identChars is None: - identChars = Keyword.DEFAULT_KEYWORD_CHARS - self.match = matchString - self.matchLen = len(matchString) - try: - self.firstMatchChar = matchString[0] - except IndexError: - warnings.warn("null string passed to Keyword; use Empty() instead", - SyntaxWarning, stacklevel=2) - self.name = '"%s"' % self.match - self.errmsg = "Expected " + self.name - self.mayReturnEmpty = False - self.mayIndexError = False - self.caseless = caseless - if caseless: - self.caselessmatch = matchString.upper() - identChars = identChars.upper() - self.identChars = set(identChars) - - def parseImpl( self, instring, loc, doActions=True ): - if self.caseless: - if ( (instring[ loc:loc+self.matchLen ].upper() == self.caselessmatch) and - (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen].upper() not in self.identChars) and - (loc == 0 or instring[loc-1].upper() not in self.identChars) ): - return loc+self.matchLen, self.match - else: - if (instring[loc] == self.firstMatchChar and - (self.matchLen==1 or instring.startswith(self.match,loc)) and - (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen] not in self.identChars) and - (loc == 0 or instring[loc-1] not in self.identChars) ): - return loc+self.matchLen, self.match - raise ParseException(instring, loc, self.errmsg, self) - - def copy(self): - c = super(Keyword,self).copy() - c.identChars = Keyword.DEFAULT_KEYWORD_CHARS - return c - - @staticmethod - def setDefaultKeywordChars( chars ): - """Overrides the default Keyword chars - """ - Keyword.DEFAULT_KEYWORD_CHARS = chars - -class CaselessLiteral(Literal): - """Token to match a specified string, ignoring case of letters. - Note: the matched results will always be in the case of the given - match string, NOT the case of the input text. - - Example:: - - OneOrMore(CaselessLiteral("CMD")).parseString("cmd CMD Cmd10") # -> ['CMD', 'CMD', 'CMD'] - - (Contrast with example for :class:`CaselessKeyword`.) - """ - def __init__( self, matchString ): - super(CaselessLiteral,self).__init__( matchString.upper() ) - # Preserve the defining literal. - self.returnString = matchString - self.name = "'%s'" % self.returnString - self.errmsg = "Expected " + self.name - - def parseImpl( self, instring, loc, doActions=True ): - if instring[ loc:loc+self.matchLen ].upper() == self.match: - return loc+self.matchLen, self.returnString - raise ParseException(instring, loc, self.errmsg, self) - -class CaselessKeyword(Keyword): - """ - Caseless version of :class:`Keyword`. - - Example:: - - OneOrMore(CaselessKeyword("CMD")).parseString("cmd CMD Cmd10") # -> ['CMD', 'CMD'] - - (Contrast with example for :class:`CaselessLiteral`.) - """ - def __init__( self, matchString, identChars=None ): - super(CaselessKeyword,self).__init__( matchString, identChars, caseless=True ) - -class CloseMatch(Token): - """A variation on :class:`Literal` which matches "close" matches, - that is, strings with at most 'n' mismatching characters. - :class:`CloseMatch` takes parameters: - - - ``match_string`` - string to be matched - - ``maxMismatches`` - (``default=1``) maximum number of - mismatches allowed to count as a match - - The results from a successful parse will contain the matched text - from the input string and the following named results: - - - ``mismatches`` - a list of the positions within the - match_string where mismatches were found - - ``original`` - the original match_string used to compare - against the input string - - If ``mismatches`` is an empty list, then the match was an exact - match. - - Example:: - - patt = CloseMatch("ATCATCGAATGGA") - patt.parseString("ATCATCGAAXGGA") # -> (['ATCATCGAAXGGA'], {'mismatches': [[9]], 'original': ['ATCATCGAATGGA']}) - patt.parseString("ATCAXCGAAXGGA") # -> Exception: Expected 'ATCATCGAATGGA' (with up to 1 mismatches) (at char 0), (line:1, col:1) - - # exact match - patt.parseString("ATCATCGAATGGA") # -> (['ATCATCGAATGGA'], {'mismatches': [[]], 'original': ['ATCATCGAATGGA']}) - - # close match allowing up to 2 mismatches - patt = CloseMatch("ATCATCGAATGGA", maxMismatches=2) - patt.parseString("ATCAXCGAAXGGA") # -> (['ATCAXCGAAXGGA'], {'mismatches': [[4, 9]], 'original': ['ATCATCGAATGGA']}) - """ - def __init__(self, match_string, maxMismatches=1): - super(CloseMatch,self).__init__() - self.name = match_string - self.match_string = match_string - self.maxMismatches = maxMismatches - self.errmsg = "Expected %r (with up to %d mismatches)" % (self.match_string, self.maxMismatches) - self.mayIndexError = False - self.mayReturnEmpty = False - - def parseImpl( self, instring, loc, doActions=True ): - start = loc - instrlen = len(instring) - maxloc = start + len(self.match_string) - - if maxloc <= instrlen: - match_string = self.match_string - match_stringloc = 0 - mismatches = [] - maxMismatches = self.maxMismatches - - for match_stringloc,s_m in enumerate(zip(instring[loc:maxloc], self.match_string)): - src,mat = s_m - if src != mat: - mismatches.append(match_stringloc) - if len(mismatches) > maxMismatches: - break - else: - loc = match_stringloc + 1 - results = ParseResults([instring[start:loc]]) - results['original'] = self.match_string - results['mismatches'] = mismatches - return loc, results - - raise ParseException(instring, loc, self.errmsg, self) - - -class Word(Token): - """Token for matching words composed of allowed character sets. - Defined with string containing all allowed initial characters, an - optional string containing allowed body characters (if omitted, - defaults to the initial character set), and an optional minimum, - maximum, and/or exact length. The default value for ``min`` is - 1 (a minimum value < 1 is not valid); the default values for - ``max`` and ``exact`` are 0, meaning no maximum or exact - length restriction. An optional ``excludeChars`` parameter can - list characters that might be found in the input ``bodyChars`` - string; useful to define a word of all printables except for one or - two characters, for instance. - - :class:`srange` is useful for defining custom character set strings - for defining ``Word`` expressions, using range notation from - regular expression character sets. - - A common mistake is to use :class:`Word` to match a specific literal - string, as in ``Word("Address")``. Remember that :class:`Word` - uses the string argument to define *sets* of matchable characters. - This expression would match "Add", "AAA", "dAred", or any other word - made up of the characters 'A', 'd', 'r', 'e', and 's'. To match an - exact literal string, use :class:`Literal` or :class:`Keyword`. - - pyparsing includes helper strings for building Words: - - - :class:`alphas` - - :class:`nums` - - :class:`alphanums` - - :class:`hexnums` - - :class:`alphas8bit` (alphabetic characters in ASCII range 128-255 - - accented, tilded, umlauted, etc.) - - :class:`punc8bit` (non-alphabetic characters in ASCII range - 128-255 - currency, symbols, superscripts, diacriticals, etc.) - - :class:`printables` (any non-whitespace character) - - Example:: - - # a word composed of digits - integer = Word(nums) # equivalent to Word("0123456789") or Word(srange("0-9")) - - # a word with a leading capital, and zero or more lowercase - capital_word = Word(alphas.upper(), alphas.lower()) - - # hostnames are alphanumeric, with leading alpha, and '-' - hostname = Word(alphas, alphanums+'-') - - # roman numeral (not a strict parser, accepts invalid mix of characters) - roman = Word("IVXLCDM") - - # any string of non-whitespace characters, except for ',' - csv_value = Word(printables, excludeChars=",") - """ - def __init__( self, initChars, bodyChars=None, min=1, max=0, exact=0, asKeyword=False, excludeChars=None ): - super(Word,self).__init__() - if excludeChars: - initChars = ''.join(c for c in initChars if c not in excludeChars) - if bodyChars: - bodyChars = ''.join(c for c in bodyChars if c not in excludeChars) - self.initCharsOrig = initChars - self.initChars = set(initChars) - if bodyChars : - self.bodyCharsOrig = bodyChars - self.bodyChars = set(bodyChars) - else: - self.bodyCharsOrig = initChars - self.bodyChars = set(initChars) - - self.maxSpecified = max > 0 - - if min < 1: - raise ValueError("cannot specify a minimum length < 1; use Optional(Word()) if zero-length word is permitted") - - self.minLen = min - - if max > 0: - self.maxLen = max - else: - self.maxLen = _MAX_INT - - if exact > 0: - self.maxLen = exact - self.minLen = exact - - self.name = _ustr(self) - self.errmsg = "Expected " + self.name - self.mayIndexError = False - self.asKeyword = asKeyword - - if ' ' not in self.initCharsOrig+self.bodyCharsOrig and (min==1 and max==0 and exact==0): - if self.bodyCharsOrig == self.initCharsOrig: - self.reString = "[%s]+" % _escapeRegexRangeChars(self.initCharsOrig) - elif len(self.initCharsOrig) == 1: - self.reString = "%s[%s]*" % \ - (re.escape(self.initCharsOrig), - _escapeRegexRangeChars(self.bodyCharsOrig),) - else: - self.reString = "[%s][%s]*" % \ - (_escapeRegexRangeChars(self.initCharsOrig), - _escapeRegexRangeChars(self.bodyCharsOrig),) - if self.asKeyword: - self.reString = r"\b"+self.reString+r"\b" - try: - self.re = re.compile( self.reString ) - except Exception: - self.re = None - - def parseImpl( self, instring, loc, doActions=True ): - if self.re: - result = self.re.match(instring,loc) - if not result: - raise ParseException(instring, loc, self.errmsg, self) - - loc = result.end() - return loc, result.group() - - if not(instring[ loc ] in self.initChars): - raise ParseException(instring, loc, self.errmsg, self) - - start = loc - loc += 1 - instrlen = len(instring) - bodychars = self.bodyChars - maxloc = start + self.maxLen - maxloc = min( maxloc, instrlen ) - while loc < maxloc and instring[loc] in bodychars: - loc += 1 - - throwException = False - if loc - start < self.minLen: - throwException = True - if self.maxSpecified and loc < instrlen and instring[loc] in bodychars: - throwException = True - if self.asKeyword: - if (start>0 and instring[start-1] in bodychars) or (loc<instrlen and instring[loc] in bodychars): - throwException = True - - if throwException: - raise ParseException(instring, loc, self.errmsg, self) - - return loc, instring[start:loc] - - def __str__( self ): - try: - return super(Word,self).__str__() - except Exception: - pass - - - if self.strRepr is None: - - def charsAsStr(s): - if len(s)>4: - return s[:4]+"..." - else: - return s - - if ( self.initCharsOrig != self.bodyCharsOrig ): - self.strRepr = "W:(%s,%s)" % ( charsAsStr(self.initCharsOrig), charsAsStr(self.bodyCharsOrig) ) - else: - self.strRepr = "W:(%s)" % charsAsStr(self.initCharsOrig) - - return self.strRepr - - -class Char(Word): - """A short-cut class for defining ``Word(characters, exact=1)``, - when defining a match of any single character in a string of - characters. - """ - def __init__(self, charset): - super(Char, self).__init__(charset, exact=1) - self.reString = "[%s]" % _escapeRegexRangeChars(self.initCharsOrig) - self.re = re.compile( self.reString ) - - -class Regex(Token): - r"""Token for matching strings that match a given regular - expression. Defined with string specifying the regular expression in - a form recognized by the stdlib Python `re module <https://docs.python.org/3/library/re.html>`_. - If the given regex contains named groups (defined using ``(?P<name>...)``), - these will be preserved as named parse results. - - Example:: - - realnum = Regex(r"[+-]?\d+\.\d*") - date = Regex(r'(?P<year>\d{4})-(?P<month>\d\d?)-(?P<day>\d\d?)') - # ref: https://stackoverflow.com/questions/267399/how-do-you-match-only-valid-roman-numerals-with-a-regular-expression - roman = Regex(r"M{0,4}(CM|CD|D?{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})") - """ - compiledREtype = type(re.compile("[A-Z]")) - def __init__( self, pattern, flags=0, asGroupList=False, asMatch=False): - """The parameters ``pattern`` and ``flags`` are passed - to the ``re.compile()`` function as-is. See the Python - `re module <https://docs.python.org/3/library/re.html>`_ module for an - explanation of the acceptable patterns and flags. - """ - super(Regex,self).__init__() - - if isinstance(pattern, basestring): - if not pattern: - warnings.warn("null string passed to Regex; use Empty() instead", - SyntaxWarning, stacklevel=2) - - self.pattern = pattern - self.flags = flags - - try: - self.re = re.compile(self.pattern, self.flags) - self.reString = self.pattern - except sre_constants.error: - warnings.warn("invalid pattern (%s) passed to Regex" % pattern, - SyntaxWarning, stacklevel=2) - raise - - elif isinstance(pattern, Regex.compiledREtype): - self.re = pattern - self.pattern = \ - self.reString = str(pattern) - self.flags = flags - - else: - raise ValueError("Regex may only be constructed with a string or a compiled RE object") - - self.name = _ustr(self) - self.errmsg = "Expected " + self.name - self.mayIndexError = False - self.mayReturnEmpty = True - self.asGroupList = asGroupList - self.asMatch = asMatch - - def parseImpl( self, instring, loc, doActions=True ): - result = self.re.match(instring,loc) - if not result: - raise ParseException(instring, loc, self.errmsg, self) - - loc = result.end() - if self.asMatch: - ret = result - elif self.asGroupList: - ret = result.groups() - else: - ret = ParseResults(result.group()) - d = result.groupdict() - if d: - for k, v in d.items(): - ret[k] = v - return loc,ret - - def __str__( self ): - try: - return super(Regex,self).__str__() - except Exception: - pass - - if self.strRepr is None: - self.strRepr = "Re:(%s)" % repr(self.pattern) - - return self.strRepr - - def sub(self, repl): - """ - Return Regex with an attached parse action to transform the parsed - result as if called using `re.sub(expr, repl, string) <https://docs.python.org/3/library/re.html#re.sub>`_. - - Example:: - - make_html = Regex(r"(\w+):(.*?):").sub(r"<\1>\2</\1>") - print(make_html.transformString("h1:main title:")) - # prints "<h1>main title</h1>" - """ - if self.asGroupList: - warnings.warn("cannot use sub() with Regex(asGroupList=True)", - SyntaxWarning, stacklevel=2) - raise SyntaxError() - - if self.asMatch and callable(repl): - warnings.warn("cannot use sub() with a callable with Regex(asMatch=True)", - SyntaxWarning, stacklevel=2) - raise SyntaxError() - - if self.asMatch: - def pa(tokens): - return tokens[0].expand(repl) - else: - def pa(tokens): - return self.re.sub(repl, tokens[0]) - return self.addParseAction(pa) - -class QuotedString(Token): - r""" - Token for matching strings that are delimited by quoting characters. - - Defined with the following parameters: - - - quoteChar - string of one or more characters defining the - quote delimiting string - - escChar - character to escape quotes, typically backslash - (default= ``None`` ) - - escQuote - special quote sequence to escape an embedded quote - string (such as SQL's ``""`` to escape an embedded ``"``) - (default= ``None`` ) - - multiline - boolean indicating whether quotes can span - multiple lines (default= ``False`` ) - - unquoteResults - boolean indicating whether the matched text - should be unquoted (default= ``True`` ) - - endQuoteChar - string of one or more characters defining the - end of the quote delimited string (default= ``None`` => same as - quoteChar) - - convertWhitespaceEscapes - convert escaped whitespace - (``'\t'``, ``'\n'``, etc.) to actual whitespace - (default= ``True`` ) - - Example:: - - qs = QuotedString('"') - print(qs.searchString('lsjdf "This is the quote" sldjf')) - complex_qs = QuotedString('{{', endQuoteChar='}}') - print(complex_qs.searchString('lsjdf {{This is the "quote"}} sldjf')) - sql_qs = QuotedString('"', escQuote='""') - print(sql_qs.searchString('lsjdf "This is the quote with ""embedded"" quotes" sldjf')) - - prints:: - - [['This is the quote']] - [['This is the "quote"']] - [['This is the quote with "embedded" quotes']] - """ - def __init__( self, quoteChar, escChar=None, escQuote=None, multiline=False, unquoteResults=True, endQuoteChar=None, convertWhitespaceEscapes=True): - super(QuotedString,self).__init__() - - # remove white space from quote chars - wont work anyway - quoteChar = quoteChar.strip() - if not quoteChar: - warnings.warn("quoteChar cannot be the empty string",SyntaxWarning,stacklevel=2) - raise SyntaxError() - - if endQuoteChar is None: - endQuoteChar = quoteChar - else: - endQuoteChar = endQuoteChar.strip() - if not endQuoteChar: - warnings.warn("endQuoteChar cannot be the empty string",SyntaxWarning,stacklevel=2) - raise SyntaxError() - - self.quoteChar = quoteChar - self.quoteCharLen = len(quoteChar) - self.firstQuoteChar = quoteChar[0] - self.endQuoteChar = endQuoteChar - self.endQuoteCharLen = len(endQuoteChar) - self.escChar = escChar - self.escQuote = escQuote - self.unquoteResults = unquoteResults - self.convertWhitespaceEscapes = convertWhitespaceEscapes - - if multiline: - self.flags = re.MULTILINE | re.DOTALL - self.pattern = r'%s(?:[^%s%s]' % \ - ( re.escape(self.quoteChar), - _escapeRegexRangeChars(self.endQuoteChar[0]), - (escChar is not None and _escapeRegexRangeChars(escChar) or '') ) - else: - self.flags = 0 - self.pattern = r'%s(?:[^%s\n\r%s]' % \ - ( re.escape(self.quoteChar), - _escapeRegexRangeChars(self.endQuoteChar[0]), - (escChar is not None and _escapeRegexRangeChars(escChar) or '') ) - if len(self.endQuoteChar) > 1: - self.pattern += ( - '|(?:' + ')|(?:'.join("%s[^%s]" % (re.escape(self.endQuoteChar[:i]), - _escapeRegexRangeChars(self.endQuoteChar[i])) - for i in range(len(self.endQuoteChar)-1,0,-1)) + ')' - ) - if escQuote: - self.pattern += (r'|(?:%s)' % re.escape(escQuote)) - if escChar: - self.pattern += (r'|(?:%s.)' % re.escape(escChar)) - self.escCharReplacePattern = re.escape(self.escChar)+"(.)" - self.pattern += (r')*%s' % re.escape(self.endQuoteChar)) - - try: - self.re = re.compile(self.pattern, self.flags) - self.reString = self.pattern - except sre_constants.error: - warnings.warn("invalid pattern (%s) passed to Regex" % self.pattern, - SyntaxWarning, stacklevel=2) - raise - - self.name = _ustr(self) - self.errmsg = "Expected " + self.name - self.mayIndexError = False - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - result = instring[loc] == self.firstQuoteChar and self.re.match(instring,loc) or None - if not result: - raise ParseException(instring, loc, self.errmsg, self) - - loc = result.end() - ret = result.group() - - if self.unquoteResults: - - # strip off quotes - ret = ret[self.quoteCharLen:-self.endQuoteCharLen] - - if isinstance(ret,basestring): - # replace escaped whitespace - if '\\' in ret and self.convertWhitespaceEscapes: - ws_map = { - r'\t' : '\t', - r'\n' : '\n', - r'\f' : '\f', - r'\r' : '\r', - } - for wslit,wschar in ws_map.items(): - ret = ret.replace(wslit, wschar) - - # replace escaped characters - if self.escChar: - ret = re.sub(self.escCharReplacePattern, r"\g<1>", ret) - - # replace escaped quotes - if self.escQuote: - ret = ret.replace(self.escQuote, self.endQuoteChar) - - return loc, ret - - def __str__( self ): - try: - return super(QuotedString,self).__str__() - except Exception: - pass - - if self.strRepr is None: - self.strRepr = "quoted string, starting with %s ending with %s" % (self.quoteChar, self.endQuoteChar) - - return self.strRepr - - -class CharsNotIn(Token): - """Token for matching words composed of characters *not* in a given - set (will include whitespace in matched characters if not listed in - the provided exclusion set - see example). Defined with string - containing all disallowed characters, and an optional minimum, - maximum, and/or exact length. The default value for ``min`` is - 1 (a minimum value < 1 is not valid); the default values for - ``max`` and ``exact`` are 0, meaning no maximum or exact - length restriction. - - Example:: - - # define a comma-separated-value as anything that is not a ',' - csv_value = CharsNotIn(',') - print(delimitedList(csv_value).parseString("dkls,lsdkjf,s12 34,@!#,213")) - - prints:: - - ['dkls', 'lsdkjf', 's12 34', '@!#', '213'] - """ - def __init__( self, notChars, min=1, max=0, exact=0 ): - super(CharsNotIn,self).__init__() - self.skipWhitespace = False - self.notChars = notChars - - if min < 1: - raise ValueError( - "cannot specify a minimum length < 1; use " + - "Optional(CharsNotIn()) if zero-length char group is permitted") - - self.minLen = min - - if max > 0: - self.maxLen = max - else: - self.maxLen = _MAX_INT - - if exact > 0: - self.maxLen = exact - self.minLen = exact - - self.name = _ustr(self) - self.errmsg = "Expected " + self.name - self.mayReturnEmpty = ( self.minLen == 0 ) - self.mayIndexError = False - - def parseImpl( self, instring, loc, doActions=True ): - if instring[loc] in self.notChars: - raise ParseException(instring, loc, self.errmsg, self) - - start = loc - loc += 1 - notchars = self.notChars - maxlen = min( start+self.maxLen, len(instring) ) - while loc < maxlen and \ - (instring[loc] not in notchars): - loc += 1 - - if loc - start < self.minLen: - raise ParseException(instring, loc, self.errmsg, self) - - return loc, instring[start:loc] - - def __str__( self ): - try: - return super(CharsNotIn, self).__str__() - except Exception: - pass - - if self.strRepr is None: - if len(self.notChars) > 4: - self.strRepr = "!W:(%s...)" % self.notChars[:4] - else: - self.strRepr = "!W:(%s)" % self.notChars - - return self.strRepr - -class White(Token): - """Special matching class for matching whitespace. Normally, - whitespace is ignored by pyparsing grammars. This class is included - when some whitespace structures are significant. Define with - a string containing the whitespace characters to be matched; default - is ``" \\t\\r\\n"``. Also takes optional ``min``, - ``max``, and ``exact`` arguments, as defined for the - :class:`Word` class. - """ - whiteStrs = { - ' ' : '<SP>', - '\t': '<TAB>', - '\n': '<LF>', - '\r': '<CR>', - '\f': '<FF>', - 'u\00A0': '<NBSP>', - 'u\1680': '<OGHAM_SPACE_MARK>', - 'u\180E': '<MONGOLIAN_VOWEL_SEPARATOR>', - 'u\2000': '<EN_QUAD>', - 'u\2001': '<EM_QUAD>', - 'u\2002': '<EN_SPACE>', - 'u\2003': '<EM_SPACE>', - 'u\2004': '<THREE-PER-EM_SPACE>', - 'u\2005': '<FOUR-PER-EM_SPACE>', - 'u\2006': '<SIX-PER-EM_SPACE>', - 'u\2007': '<FIGURE_SPACE>', - 'u\2008': '<PUNCTUATION_SPACE>', - 'u\2009': '<THIN_SPACE>', - 'u\200A': '<HAIR_SPACE>', - 'u\200B': '<ZERO_WIDTH_SPACE>', - 'u\202F': '<NNBSP>', - 'u\205F': '<MMSP>', - 'u\3000': '<IDEOGRAPHIC_SPACE>', - } - def __init__(self, ws=" \t\r\n", min=1, max=0, exact=0): - super(White,self).__init__() - self.matchWhite = ws - self.setWhitespaceChars( "".join(c for c in self.whiteChars if c not in self.matchWhite) ) - #~ self.leaveWhitespace() - self.name = ("".join(White.whiteStrs[c] for c in self.matchWhite)) - self.mayReturnEmpty = True - self.errmsg = "Expected " + self.name - - self.minLen = min - - if max > 0: - self.maxLen = max - else: - self.maxLen = _MAX_INT - - if exact > 0: - self.maxLen = exact - self.minLen = exact - - def parseImpl( self, instring, loc, doActions=True ): - if not(instring[ loc ] in self.matchWhite): - raise ParseException(instring, loc, self.errmsg, self) - start = loc - loc += 1 - maxloc = start + self.maxLen - maxloc = min( maxloc, len(instring) ) - while loc < maxloc and instring[loc] in self.matchWhite: - loc += 1 - - if loc - start < self.minLen: - raise ParseException(instring, loc, self.errmsg, self) - - return loc, instring[start:loc] - - -class _PositionToken(Token): - def __init__( self ): - super(_PositionToken,self).__init__() - self.name=self.__class__.__name__ - self.mayReturnEmpty = True - self.mayIndexError = False - -class GoToColumn(_PositionToken): - """Token to advance to a specific column of input text; useful for - tabular report scraping. - """ - def __init__( self, colno ): - super(GoToColumn,self).__init__() - self.col = colno - - def preParse( self, instring, loc ): - if col(loc,instring) != self.col: - instrlen = len(instring) - if self.ignoreExprs: - loc = self._skipIgnorables( instring, loc ) - while loc < instrlen and instring[loc].isspace() and col( loc, instring ) != self.col : - loc += 1 - return loc - - def parseImpl( self, instring, loc, doActions=True ): - thiscol = col( loc, instring ) - if thiscol > self.col: - raise ParseException( instring, loc, "Text not in expected column", self ) - newloc = loc + self.col - thiscol - ret = instring[ loc: newloc ] - return newloc, ret - - -class LineStart(_PositionToken): - """Matches if current position is at the beginning of a line within - the parse string - - Example:: - - test = '''\ - AAA this line - AAA and this line - AAA but not this one - B AAA and definitely not this one - ''' - - for t in (LineStart() + 'AAA' + restOfLine).searchString(test): - print(t) - - prints:: - - ['AAA', ' this line'] - ['AAA', ' and this line'] - - """ - def __init__( self ): - super(LineStart,self).__init__() - self.errmsg = "Expected start of line" - - def parseImpl( self, instring, loc, doActions=True ): - if col(loc, instring) == 1: - return loc, [] - raise ParseException(instring, loc, self.errmsg, self) - -class LineEnd(_PositionToken): - """Matches if current position is at the end of a line within the - parse string - """ - def __init__( self ): - super(LineEnd,self).__init__() - self.setWhitespaceChars( ParserElement.DEFAULT_WHITE_CHARS.replace("\n","") ) - self.errmsg = "Expected end of line" - - def parseImpl( self, instring, loc, doActions=True ): - if loc<len(instring): - if instring[loc] == "\n": - return loc+1, "\n" - else: - raise ParseException(instring, loc, self.errmsg, self) - elif loc == len(instring): - return loc+1, [] - else: - raise ParseException(instring, loc, self.errmsg, self) - -class StringStart(_PositionToken): - """Matches if current position is at the beginning of the parse - string - """ - def __init__( self ): - super(StringStart,self).__init__() - self.errmsg = "Expected start of text" - - def parseImpl( self, instring, loc, doActions=True ): - if loc != 0: - # see if entire string up to here is just whitespace and ignoreables - if loc != self.preParse( instring, 0 ): - raise ParseException(instring, loc, self.errmsg, self) - return loc, [] - -class StringEnd(_PositionToken): - """Matches if current position is at the end of the parse string - """ - def __init__( self ): - super(StringEnd,self).__init__() - self.errmsg = "Expected end of text" - - def parseImpl( self, instring, loc, doActions=True ): - if loc < len(instring): - raise ParseException(instring, loc, self.errmsg, self) - elif loc == len(instring): - return loc+1, [] - elif loc > len(instring): - return loc, [] - else: - raise ParseException(instring, loc, self.errmsg, self) - -class WordStart(_PositionToken): - """Matches if the current position is at the beginning of a Word, - and is not preceded by any character in a given set of - ``wordChars`` (default= ``printables``). To emulate the - ``\b`` behavior of regular expressions, use - ``WordStart(alphanums)``. ``WordStart`` will also match at - the beginning of the string being parsed, or at the beginning of - a line. - """ - def __init__(self, wordChars = printables): - super(WordStart,self).__init__() - self.wordChars = set(wordChars) - self.errmsg = "Not at the start of a word" - - def parseImpl(self, instring, loc, doActions=True ): - if loc != 0: - if (instring[loc-1] in self.wordChars or - instring[loc] not in self.wordChars): - raise ParseException(instring, loc, self.errmsg, self) - return loc, [] - -class WordEnd(_PositionToken): - """Matches if the current position is at the end of a Word, and is - not followed by any character in a given set of ``wordChars`` - (default= ``printables``). To emulate the ``\b`` behavior of - regular expressions, use ``WordEnd(alphanums)``. ``WordEnd`` - will also match at the end of the string being parsed, or at the end - of a line. - """ - def __init__(self, wordChars = printables): - super(WordEnd,self).__init__() - self.wordChars = set(wordChars) - self.skipWhitespace = False - self.errmsg = "Not at the end of a word" - - def parseImpl(self, instring, loc, doActions=True ): - instrlen = len(instring) - if instrlen>0 and loc<instrlen: - if (instring[loc] in self.wordChars or - instring[loc-1] not in self.wordChars): - raise ParseException(instring, loc, self.errmsg, self) - return loc, [] - - -class ParseExpression(ParserElement): - """Abstract subclass of ParserElement, for combining and - post-processing parsed tokens. - """ - def __init__( self, exprs, savelist = False ): - super(ParseExpression,self).__init__(savelist) - if isinstance( exprs, _generatorType ): - exprs = list(exprs) - - if isinstance( exprs, basestring ): - self.exprs = [ ParserElement._literalStringClass( exprs ) ] - elif isinstance( exprs, Iterable ): - exprs = list(exprs) - # if sequence of strings provided, wrap with Literal - if all(isinstance(expr, basestring) for expr in exprs): - exprs = map(ParserElement._literalStringClass, exprs) - self.exprs = list(exprs) - else: - try: - self.exprs = list( exprs ) - except TypeError: - self.exprs = [ exprs ] - self.callPreparse = False - - def __getitem__( self, i ): - return self.exprs[i] - - def append( self, other ): - self.exprs.append( other ) - self.strRepr = None - return self - - def leaveWhitespace( self ): - """Extends ``leaveWhitespace`` defined in base class, and also invokes ``leaveWhitespace`` on - all contained expressions.""" - self.skipWhitespace = False - self.exprs = [ e.copy() for e in self.exprs ] - for e in self.exprs: - e.leaveWhitespace() - return self - - def ignore( self, other ): - if isinstance( other, Suppress ): - if other not in self.ignoreExprs: - super( ParseExpression, self).ignore( other ) - for e in self.exprs: - e.ignore( self.ignoreExprs[-1] ) - else: - super( ParseExpression, self).ignore( other ) - for e in self.exprs: - e.ignore( self.ignoreExprs[-1] ) - return self - - def __str__( self ): - try: - return super(ParseExpression,self).__str__() - except Exception: - pass - - if self.strRepr is None: - self.strRepr = "%s:(%s)" % ( self.__class__.__name__, _ustr(self.exprs) ) - return self.strRepr - - def streamline( self ): - super(ParseExpression,self).streamline() - - for e in self.exprs: - e.streamline() - - # collapse nested And's of the form And( And( And( a,b), c), d) to And( a,b,c,d ) - # but only if there are no parse actions or resultsNames on the nested And's - # (likewise for Or's and MatchFirst's) - if ( len(self.exprs) == 2 ): - other = self.exprs[0] - if ( isinstance( other, self.__class__ ) and - not(other.parseAction) and - other.resultsName is None and - not other.debug ): - self.exprs = other.exprs[:] + [ self.exprs[1] ] - self.strRepr = None - self.mayReturnEmpty |= other.mayReturnEmpty - self.mayIndexError |= other.mayIndexError - - other = self.exprs[-1] - if ( isinstance( other, self.__class__ ) and - not(other.parseAction) and - other.resultsName is None and - not other.debug ): - self.exprs = self.exprs[:-1] + other.exprs[:] - self.strRepr = None - self.mayReturnEmpty |= other.mayReturnEmpty - self.mayIndexError |= other.mayIndexError - - self.errmsg = "Expected " + _ustr(self) - - return self - - def setResultsName( self, name, listAllMatches=False ): - ret = super(ParseExpression,self).setResultsName(name,listAllMatches) - return ret - - def validate( self, validateTrace=[] ): - tmp = validateTrace[:]+[self] - for e in self.exprs: - e.validate(tmp) - self.checkRecursion( [] ) - - def copy(self): - ret = super(ParseExpression,self).copy() - ret.exprs = [e.copy() for e in self.exprs] - return ret - -class And(ParseExpression): - """ - Requires all given :class:`ParseExpression` s to be found in the given order. - Expressions may be separated by whitespace. - May be constructed using the ``'+'`` operator. - May also be constructed using the ``'-'`` operator, which will - suppress backtracking. - - Example:: - - integer = Word(nums) - name_expr = OneOrMore(Word(alphas)) - - expr = And([integer("id"),name_expr("name"),integer("age")]) - # more easily written as: - expr = integer("id") + name_expr("name") + integer("age") - """ - - class _ErrorStop(Empty): - def __init__(self, *args, **kwargs): - super(And._ErrorStop,self).__init__(*args, **kwargs) - self.name = '-' - self.leaveWhitespace() - - def __init__( self, exprs, savelist = True ): - super(And,self).__init__(exprs, savelist) - self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs) - self.setWhitespaceChars( self.exprs[0].whiteChars ) - self.skipWhitespace = self.exprs[0].skipWhitespace - self.callPreparse = True - - def streamline(self): - super(And, self).streamline() - self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs) - return self - - def parseImpl( self, instring, loc, doActions=True ): - # pass False as last arg to _parse for first element, since we already - # pre-parsed the string as part of our And pre-parsing - loc, resultlist = self.exprs[0]._parse( instring, loc, doActions, callPreParse=False ) - errorStop = False - for e in self.exprs[1:]: - if isinstance(e, And._ErrorStop): - errorStop = True - continue - if errorStop: - try: - loc, exprtokens = e._parse( instring, loc, doActions ) - except ParseSyntaxException: - raise - except ParseBaseException as pe: - pe.__traceback__ = None - raise ParseSyntaxException._from_exception(pe) - except IndexError: - raise ParseSyntaxException(instring, len(instring), self.errmsg, self) - else: - loc, exprtokens = e._parse( instring, loc, doActions ) - if exprtokens or exprtokens.haskeys(): - resultlist += exprtokens - return loc, resultlist - - def __iadd__(self, other ): - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - return self.append( other ) #And( [ self, other ] ) - - def checkRecursion( self, parseElementList ): - subRecCheckList = parseElementList[:] + [ self ] - for e in self.exprs: - e.checkRecursion( subRecCheckList ) - if not e.mayReturnEmpty: - break - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "{" + " ".join(_ustr(e) for e in self.exprs) + "}" - - return self.strRepr - - -class Or(ParseExpression): - """Requires that at least one :class:`ParseExpression` is found. If - two expressions match, the expression that matches the longest - string will be used. May be constructed using the ``'^'`` - operator. - - Example:: - - # construct Or using '^' operator - - number = Word(nums) ^ Combine(Word(nums) + '.' + Word(nums)) - print(number.searchString("123 3.1416 789")) - - prints:: - - [['123'], ['3.1416'], ['789']] - """ - def __init__( self, exprs, savelist = False ): - super(Or,self).__init__(exprs, savelist) - if self.exprs: - self.mayReturnEmpty = any(e.mayReturnEmpty for e in self.exprs) - else: - self.mayReturnEmpty = True - - def streamline(self): - super(Or, self).streamline() - self.saveAsList = any(e.saveAsList for e in self.exprs) - return self - - def parseImpl( self, instring, loc, doActions=True ): - maxExcLoc = -1 - maxException = None - matches = [] - for e in self.exprs: - try: - loc2 = e.tryParse( instring, loc ) - except ParseException as err: - err.__traceback__ = None - if err.loc > maxExcLoc: - maxException = err - maxExcLoc = err.loc - except IndexError: - if len(instring) > maxExcLoc: - maxException = ParseException(instring,len(instring),e.errmsg,self) - maxExcLoc = len(instring) - else: - # save match among all matches, to retry longest to shortest - matches.append((loc2, e)) - - if matches: - matches.sort(key=lambda x: -x[0]) - for _,e in matches: - try: - return e._parse( instring, loc, doActions ) - except ParseException as err: - err.__traceback__ = None - if err.loc > maxExcLoc: - maxException = err - maxExcLoc = err.loc - - if maxException is not None: - maxException.msg = self.errmsg - raise maxException - else: - raise ParseException(instring, loc, "no defined alternatives to match", self) - - - def __ixor__(self, other ): - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - return self.append( other ) #Or( [ self, other ] ) - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "{" + " ^ ".join(_ustr(e) for e in self.exprs) + "}" - - return self.strRepr - - def checkRecursion( self, parseElementList ): - subRecCheckList = parseElementList[:] + [ self ] - for e in self.exprs: - e.checkRecursion( subRecCheckList ) - - -class MatchFirst(ParseExpression): - """Requires that at least one :class:`ParseExpression` is found. If - two expressions match, the first one listed is the one that will - match. May be constructed using the ``'|'`` operator. - - Example:: - - # construct MatchFirst using '|' operator - - # watch the order of expressions to match - number = Word(nums) | Combine(Word(nums) + '.' + Word(nums)) - print(number.searchString("123 3.1416 789")) # Fail! -> [['123'], ['3'], ['1416'], ['789']] - - # put more selective expression first - number = Combine(Word(nums) + '.' + Word(nums)) | Word(nums) - print(number.searchString("123 3.1416 789")) # Better -> [['123'], ['3.1416'], ['789']] - """ - def __init__( self, exprs, savelist = False ): - super(MatchFirst,self).__init__(exprs, savelist) - if self.exprs: - self.mayReturnEmpty = any(e.mayReturnEmpty for e in self.exprs) - # self.saveAsList = any(e.saveAsList for e in self.exprs) - else: - self.mayReturnEmpty = True - - def streamline(self): - super(MatchFirst, self).streamline() - self.saveAsList = any(e.saveAsList for e in self.exprs) - return self - - def parseImpl( self, instring, loc, doActions=True ): - maxExcLoc = -1 - maxException = None - for e in self.exprs: - try: - ret = e._parse( instring, loc, doActions ) - return ret - except ParseException as err: - if err.loc > maxExcLoc: - maxException = err - maxExcLoc = err.loc - except IndexError: - if len(instring) > maxExcLoc: - maxException = ParseException(instring,len(instring),e.errmsg,self) - maxExcLoc = len(instring) - - # only got here if no expression matched, raise exception for match that made it the furthest - else: - if maxException is not None: - maxException.msg = self.errmsg - raise maxException - else: - raise ParseException(instring, loc, "no defined alternatives to match", self) - - def __ior__(self, other ): - if isinstance( other, basestring ): - other = ParserElement._literalStringClass( other ) - return self.append( other ) #MatchFirst( [ self, other ] ) - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}" - - return self.strRepr - - def checkRecursion( self, parseElementList ): - subRecCheckList = parseElementList[:] + [ self ] - for e in self.exprs: - e.checkRecursion( subRecCheckList ) - - -class Each(ParseExpression): - """Requires all given :class:`ParseExpression` s to be found, but in - any order. Expressions may be separated by whitespace. - - May be constructed using the ``'&'`` operator. - - Example:: - - color = oneOf("RED ORANGE YELLOW GREEN BLUE PURPLE BLACK WHITE BROWN") - shape_type = oneOf("SQUARE CIRCLE TRIANGLE STAR HEXAGON OCTAGON") - integer = Word(nums) - shape_attr = "shape:" + shape_type("shape") - posn_attr = "posn:" + Group(integer("x") + ',' + integer("y"))("posn") - color_attr = "color:" + color("color") - size_attr = "size:" + integer("size") - - # use Each (using operator '&') to accept attributes in any order - # (shape and posn are required, color and size are optional) - shape_spec = shape_attr & posn_attr & Optional(color_attr) & Optional(size_attr) - - shape_spec.runTests(''' - shape: SQUARE color: BLACK posn: 100, 120 - shape: CIRCLE size: 50 color: BLUE posn: 50,80 - color:GREEN size:20 shape:TRIANGLE posn:20,40 - ''' - ) - - prints:: - - shape: SQUARE color: BLACK posn: 100, 120 - ['shape:', 'SQUARE', 'color:', 'BLACK', 'posn:', ['100', ',', '120']] - - color: BLACK - - posn: ['100', ',', '120'] - - x: 100 - - y: 120 - - shape: SQUARE - - - shape: CIRCLE size: 50 color: BLUE posn: 50,80 - ['shape:', 'CIRCLE', 'size:', '50', 'color:', 'BLUE', 'posn:', ['50', ',', '80']] - - color: BLUE - - posn: ['50', ',', '80'] - - x: 50 - - y: 80 - - shape: CIRCLE - - size: 50 - - - color: GREEN size: 20 shape: TRIANGLE posn: 20,40 - ['color:', 'GREEN', 'size:', '20', 'shape:', 'TRIANGLE', 'posn:', ['20', ',', '40']] - - color: GREEN - - posn: ['20', ',', '40'] - - x: 20 - - y: 40 - - shape: TRIANGLE - - size: 20 - """ - def __init__( self, exprs, savelist = True ): - super(Each,self).__init__(exprs, savelist) - self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs) - self.skipWhitespace = True - self.initExprGroups = True - self.saveAsList = True - - def streamline(self): - super(Each, self).streamline() - self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs) - return self - - def parseImpl( self, instring, loc, doActions=True ): - if self.initExprGroups: - self.opt1map = dict((id(e.expr),e) for e in self.exprs if isinstance(e,Optional)) - opt1 = [ e.expr for e in self.exprs if isinstance(e,Optional) ] - opt2 = [ e for e in self.exprs if e.mayReturnEmpty and not isinstance(e,Optional)] - self.optionals = opt1 + opt2 - self.multioptionals = [ e.expr for e in self.exprs if isinstance(e,ZeroOrMore) ] - self.multirequired = [ e.expr for e in self.exprs if isinstance(e,OneOrMore) ] - self.required = [ e for e in self.exprs if not isinstance(e,(Optional,ZeroOrMore,OneOrMore)) ] - self.required += self.multirequired - self.initExprGroups = False - tmpLoc = loc - tmpReqd = self.required[:] - tmpOpt = self.optionals[:] - matchOrder = [] - - keepMatching = True - while keepMatching: - tmpExprs = tmpReqd + tmpOpt + self.multioptionals + self.multirequired - failed = [] - for e in tmpExprs: - try: - tmpLoc = e.tryParse( instring, tmpLoc ) - except ParseException: - failed.append(e) - else: - matchOrder.append(self.opt1map.get(id(e),e)) - if e in tmpReqd: - tmpReqd.remove(e) - elif e in tmpOpt: - tmpOpt.remove(e) - if len(failed) == len(tmpExprs): - keepMatching = False - - if tmpReqd: - missing = ", ".join(_ustr(e) for e in tmpReqd) - raise ParseException(instring,loc,"Missing one or more required elements (%s)" % missing ) - - # add any unmatched Optionals, in case they have default values defined - matchOrder += [e for e in self.exprs if isinstance(e,Optional) and e.expr in tmpOpt] - - resultlist = [] - for e in matchOrder: - loc,results = e._parse(instring,loc,doActions) - resultlist.append(results) - - finalResults = sum(resultlist, ParseResults([])) - return loc, finalResults - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "{" + " & ".join(_ustr(e) for e in self.exprs) + "}" - - return self.strRepr - - def checkRecursion( self, parseElementList ): - subRecCheckList = parseElementList[:] + [ self ] - for e in self.exprs: - e.checkRecursion( subRecCheckList ) - - -class ParseElementEnhance(ParserElement): - """Abstract subclass of :class:`ParserElement`, for combining and - post-processing parsed tokens. - """ - def __init__( self, expr, savelist=False ): - super(ParseElementEnhance,self).__init__(savelist) - if isinstance( expr, basestring ): - if issubclass(ParserElement._literalStringClass, Token): - expr = ParserElement._literalStringClass(expr) - else: - expr = ParserElement._literalStringClass(Literal(expr)) - self.expr = expr - self.strRepr = None - if expr is not None: - self.mayIndexError = expr.mayIndexError - self.mayReturnEmpty = expr.mayReturnEmpty - self.setWhitespaceChars( expr.whiteChars ) - self.skipWhitespace = expr.skipWhitespace - self.saveAsList = expr.saveAsList - self.callPreparse = expr.callPreparse - self.ignoreExprs.extend(expr.ignoreExprs) - - def parseImpl( self, instring, loc, doActions=True ): - if self.expr is not None: - return self.expr._parse( instring, loc, doActions, callPreParse=False ) - else: - raise ParseException("",loc,self.errmsg,self) - - def leaveWhitespace( self ): - self.skipWhitespace = False - self.expr = self.expr.copy() - if self.expr is not None: - self.expr.leaveWhitespace() - return self - - def ignore( self, other ): - if isinstance( other, Suppress ): - if other not in self.ignoreExprs: - super( ParseElementEnhance, self).ignore( other ) - if self.expr is not None: - self.expr.ignore( self.ignoreExprs[-1] ) - else: - super( ParseElementEnhance, self).ignore( other ) - if self.expr is not None: - self.expr.ignore( self.ignoreExprs[-1] ) - return self - - def streamline( self ): - super(ParseElementEnhance,self).streamline() - if self.expr is not None: - self.expr.streamline() - return self - - def checkRecursion( self, parseElementList ): - if self in parseElementList: - raise RecursiveGrammarException( parseElementList+[self] ) - subRecCheckList = parseElementList[:] + [ self ] - if self.expr is not None: - self.expr.checkRecursion( subRecCheckList ) - - def validate( self, validateTrace=[] ): - tmp = validateTrace[:]+[self] - if self.expr is not None: - self.expr.validate(tmp) - self.checkRecursion( [] ) - - def __str__( self ): - try: - return super(ParseElementEnhance,self).__str__() - except Exception: - pass - - if self.strRepr is None and self.expr is not None: - self.strRepr = "%s:(%s)" % ( self.__class__.__name__, _ustr(self.expr) ) - return self.strRepr - - -class FollowedBy(ParseElementEnhance): - """Lookahead matching of the given parse expression. - ``FollowedBy`` does *not* advance the parsing position within - the input string, it only verifies that the specified parse - expression matches at the current position. ``FollowedBy`` - always returns a null token list. If any results names are defined - in the lookahead expression, those *will* be returned for access by - name. - - Example:: - - # use FollowedBy to match a label only if it is followed by a ':' - data_word = Word(alphas) - label = data_word + FollowedBy(':') - attr_expr = Group(label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join)) - - OneOrMore(attr_expr).parseString("shape: SQUARE color: BLACK posn: upper left").pprint() - - prints:: - - [['shape', 'SQUARE'], ['color', 'BLACK'], ['posn', 'upper left']] - """ - def __init__( self, expr ): - super(FollowedBy,self).__init__(expr) - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - _, ret = self.expr._parse(instring, loc, doActions=doActions) - del ret[:] - return loc, ret - - -class PrecededBy(ParseElementEnhance): - """Lookbehind matching of the given parse expression. - ``PrecededBy`` does not advance the parsing position within the - input string, it only verifies that the specified parse expression - matches prior to the current position. ``PrecededBy`` always - returns a null token list, but if a results name is defined on the - given expression, it is returned. - - Parameters: - - - expr - expression that must match prior to the current parse - location - - retreat - (default= ``None``) - (int) maximum number of characters - to lookbehind prior to the current parse location - - If the lookbehind expression is a string, Literal, Keyword, or - a Word or CharsNotIn with a specified exact or maximum length, then - the retreat parameter is not required. Otherwise, retreat must be - specified to give a maximum number of characters to look back from - the current parse position for a lookbehind match. - - Example:: - - # VB-style variable names with type prefixes - int_var = PrecededBy("#") + pyparsing_common.identifier - str_var = PrecededBy("$") + pyparsing_common.identifier - - """ - def __init__(self, expr, retreat=None): - super(PrecededBy, self).__init__(expr) - self.expr = self.expr().leaveWhitespace() - self.mayReturnEmpty = True - self.mayIndexError = False - self.exact = False - if isinstance(expr, str): - retreat = len(expr) - self.exact = True - elif isinstance(expr, (Literal, Keyword)): - retreat = expr.matchLen - self.exact = True - elif isinstance(expr, (Word, CharsNotIn)) and expr.maxLen != _MAX_INT: - retreat = expr.maxLen - self.exact = True - elif isinstance(expr, _PositionToken): - retreat = 0 - self.exact = True - self.retreat = retreat - self.errmsg = "not preceded by " + str(expr) - self.skipWhitespace = False - - def parseImpl(self, instring, loc=0, doActions=True): - if self.exact: - if loc < self.retreat: - raise ParseException(instring, loc, self.errmsg) - start = loc - self.retreat - _, ret = self.expr._parse(instring, start) - else: - # retreat specified a maximum lookbehind window, iterate - test_expr = self.expr + StringEnd() - instring_slice = instring[:loc] - last_expr = ParseException(instring, loc, self.errmsg) - for offset in range(1, min(loc, self.retreat+1)): - try: - _, ret = test_expr._parse(instring_slice, loc-offset) - except ParseBaseException as pbe: - last_expr = pbe - else: - break - else: - raise last_expr - # return empty list of tokens, but preserve any defined results names - del ret[:] - return loc, ret - - -class NotAny(ParseElementEnhance): - """Lookahead to disallow matching with the given parse expression. - ``NotAny`` does *not* advance the parsing position within the - input string, it only verifies that the specified parse expression - does *not* match at the current position. Also, ``NotAny`` does - *not* skip over leading whitespace. ``NotAny`` always returns - a null token list. May be constructed using the '~' operator. - - Example:: - - AND, OR, NOT = map(CaselessKeyword, "AND OR NOT".split()) - - # take care not to mistake keywords for identifiers - ident = ~(AND | OR | NOT) + Word(alphas) - boolean_term = Optional(NOT) + ident - - # very crude boolean expression - to support parenthesis groups and - # operation hierarchy, use infixNotation - boolean_expr = boolean_term + ZeroOrMore((AND | OR) + boolean_term) - - # integers that are followed by "." are actually floats - integer = Word(nums) + ~Char(".") - """ - def __init__( self, expr ): - super(NotAny,self).__init__(expr) - #~ self.leaveWhitespace() - self.skipWhitespace = False # do NOT use self.leaveWhitespace(), don't want to propagate to exprs - self.mayReturnEmpty = True - self.errmsg = "Found unwanted token, "+_ustr(self.expr) - - def parseImpl( self, instring, loc, doActions=True ): - if self.expr.canParseNext(instring, loc): - raise ParseException(instring, loc, self.errmsg, self) - return loc, [] - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "~{" + _ustr(self.expr) + "}" - - return self.strRepr - -class _MultipleMatch(ParseElementEnhance): - def __init__( self, expr, stopOn=None): - super(_MultipleMatch, self).__init__(expr) - self.saveAsList = True - ender = stopOn - if isinstance(ender, basestring): - ender = ParserElement._literalStringClass(ender) - self.not_ender = ~ender if ender is not None else None - - def parseImpl( self, instring, loc, doActions=True ): - self_expr_parse = self.expr._parse - self_skip_ignorables = self._skipIgnorables - check_ender = self.not_ender is not None - if check_ender: - try_not_ender = self.not_ender.tryParse - - # must be at least one (but first see if we are the stopOn sentinel; - # if so, fail) - if check_ender: - try_not_ender(instring, loc) - loc, tokens = self_expr_parse( instring, loc, doActions, callPreParse=False ) - try: - hasIgnoreExprs = (not not self.ignoreExprs) - while 1: - if check_ender: - try_not_ender(instring, loc) - if hasIgnoreExprs: - preloc = self_skip_ignorables( instring, loc ) - else: - preloc = loc - loc, tmptokens = self_expr_parse( instring, preloc, doActions ) - if tmptokens or tmptokens.haskeys(): - tokens += tmptokens - except (ParseException,IndexError): - pass - - return loc, tokens - -class OneOrMore(_MultipleMatch): - """Repetition of one or more of the given expression. - - Parameters: - - expr - expression that must match one or more times - - stopOn - (default= ``None``) - expression for a terminating sentinel - (only required if the sentinel would ordinarily match the repetition - expression) - - Example:: - - data_word = Word(alphas) - label = data_word + FollowedBy(':') - attr_expr = Group(label + Suppress(':') + OneOrMore(data_word).setParseAction(' '.join)) - - text = "shape: SQUARE posn: upper left color: BLACK" - OneOrMore(attr_expr).parseString(text).pprint() # Fail! read 'color' as data instead of next label -> [['shape', 'SQUARE color']] - - # use stopOn attribute for OneOrMore to avoid reading label string as part of the data - attr_expr = Group(label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join)) - OneOrMore(attr_expr).parseString(text).pprint() # Better -> [['shape', 'SQUARE'], ['posn', 'upper left'], ['color', 'BLACK']] - - # could also be written as - (attr_expr * (1,)).parseString(text).pprint() - """ - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "{" + _ustr(self.expr) + "}..." - - return self.strRepr - -class ZeroOrMore(_MultipleMatch): - """Optional repetition of zero or more of the given expression. - - Parameters: - - expr - expression that must match zero or more times - - stopOn - (default= ``None``) - expression for a terminating sentinel - (only required if the sentinel would ordinarily match the repetition - expression) - - Example: similar to :class:`OneOrMore` - """ - def __init__( self, expr, stopOn=None): - super(ZeroOrMore,self).__init__(expr, stopOn=stopOn) - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - try: - return super(ZeroOrMore, self).parseImpl(instring, loc, doActions) - except (ParseException,IndexError): - return loc, [] - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "[" + _ustr(self.expr) + "]..." - - return self.strRepr - -class _NullToken(object): - def __bool__(self): - return False - __nonzero__ = __bool__ - def __str__(self): - return "" - -_optionalNotMatched = _NullToken() -class Optional(ParseElementEnhance): - """Optional matching of the given expression. - - Parameters: - - expr - expression that must match zero or more times - - default (optional) - value to be returned if the optional expression is not found. - - Example:: - - # US postal code can be a 5-digit zip, plus optional 4-digit qualifier - zip = Combine(Word(nums, exact=5) + Optional('-' + Word(nums, exact=4))) - zip.runTests(''' - # traditional ZIP code - 12345 - - # ZIP+4 form - 12101-0001 - - # invalid ZIP - 98765- - ''') - - prints:: - - # traditional ZIP code - 12345 - ['12345'] - - # ZIP+4 form - 12101-0001 - ['12101-0001'] - - # invalid ZIP - 98765- - ^ - FAIL: Expected end of text (at char 5), (line:1, col:6) - """ - def __init__( self, expr, default=_optionalNotMatched ): - super(Optional,self).__init__( expr, savelist=False ) - self.saveAsList = self.expr.saveAsList - self.defaultValue = default - self.mayReturnEmpty = True - - def parseImpl( self, instring, loc, doActions=True ): - try: - loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False ) - except (ParseException,IndexError): - if self.defaultValue is not _optionalNotMatched: - if self.expr.resultsName: - tokens = ParseResults([ self.defaultValue ]) - tokens[self.expr.resultsName] = self.defaultValue - else: - tokens = [ self.defaultValue ] - else: - tokens = [] - return loc, tokens - - def __str__( self ): - if hasattr(self,"name"): - return self.name - - if self.strRepr is None: - self.strRepr = "[" + _ustr(self.expr) + "]" - - return self.strRepr - -class SkipTo(ParseElementEnhance): - """Token for skipping over all undefined text until the matched - expression is found. - - Parameters: - - expr - target expression marking the end of the data to be skipped - - include - (default= ``False``) if True, the target expression is also parsed - (the skipped text and target expression are returned as a 2-element list). - - ignore - (default= ``None``) used to define grammars (typically quoted strings and - comments) that might contain false matches to the target expression - - failOn - (default= ``None``) define expressions that are not allowed to be - included in the skipped test; if found before the target expression is found, - the SkipTo is not a match - - Example:: - - report = ''' - Outstanding Issues Report - 1 Jan 2000 - - # | Severity | Description | Days Open - -----+----------+-------------------------------------------+----------- - 101 | Critical | Intermittent system crash | 6 - 94 | Cosmetic | Spelling error on Login ('log|n') | 14 - 79 | Minor | System slow when running too many reports | 47 - ''' - integer = Word(nums) - SEP = Suppress('|') - # use SkipTo to simply match everything up until the next SEP - # - ignore quoted strings, so that a '|' character inside a quoted string does not match - # - parse action will call token.strip() for each matched token, i.e., the description body - string_data = SkipTo(SEP, ignore=quotedString) - string_data.setParseAction(tokenMap(str.strip)) - ticket_expr = (integer("issue_num") + SEP - + string_data("sev") + SEP - + string_data("desc") + SEP - + integer("days_open")) - - for tkt in ticket_expr.searchString(report): - print tkt.dump() - - prints:: - - ['101', 'Critical', 'Intermittent system crash', '6'] - - days_open: 6 - - desc: Intermittent system crash - - issue_num: 101 - - sev: Critical - ['94', 'Cosmetic', "Spelling error on Login ('log|n')", '14'] - - days_open: 14 - - desc: Spelling error on Login ('log|n') - - issue_num: 94 - - sev: Cosmetic - ['79', 'Minor', 'System slow when running too many reports', '47'] - - days_open: 47 - - desc: System slow when running too many reports - - issue_num: 79 - - sev: Minor - """ - def __init__( self, other, include=False, ignore=None, failOn=None ): - super( SkipTo, self ).__init__( other ) - self.ignoreExpr = ignore - self.mayReturnEmpty = True - self.mayIndexError = False - self.includeMatch = include - self.saveAsList = False - if isinstance(failOn, basestring): - self.failOn = ParserElement._literalStringClass(failOn) - else: - self.failOn = failOn - self.errmsg = "No match found for "+_ustr(self.expr) - - def parseImpl( self, instring, loc, doActions=True ): - startloc = loc - instrlen = len(instring) - expr = self.expr - expr_parse = self.expr._parse - self_failOn_canParseNext = self.failOn.canParseNext if self.failOn is not None else None - self_ignoreExpr_tryParse = self.ignoreExpr.tryParse if self.ignoreExpr is not None else None - - tmploc = loc - while tmploc <= instrlen: - if self_failOn_canParseNext is not None: - # break if failOn expression matches - if self_failOn_canParseNext(instring, tmploc): - break - - if self_ignoreExpr_tryParse is not None: - # advance past ignore expressions - while 1: - try: - tmploc = self_ignoreExpr_tryParse(instring, tmploc) - except ParseBaseException: - break - - try: - expr_parse(instring, tmploc, doActions=False, callPreParse=False) - except (ParseException, IndexError): - # no match, advance loc in string - tmploc += 1 - else: - # matched skipto expr, done - break - - else: - # ran off the end of the input string without matching skipto expr, fail - raise ParseException(instring, loc, self.errmsg, self) - - # build up return values - loc = tmploc - skiptext = instring[startloc:loc] - skipresult = ParseResults(skiptext) - - if self.includeMatch: - loc, mat = expr_parse(instring,loc,doActions,callPreParse=False) - skipresult += mat - - return loc, skipresult - -class Forward(ParseElementEnhance): - """Forward declaration of an expression to be defined later - - used for recursive grammars, such as algebraic infix notation. - When the expression is known, it is assigned to the ``Forward`` - variable using the '<<' operator. - - Note: take care when assigning to ``Forward`` not to overlook - precedence of operators. - - Specifically, '|' has a lower precedence than '<<', so that:: - - fwdExpr << a | b | c - - will actually be evaluated as:: - - (fwdExpr << a) | b | c - - thereby leaving b and c out as parseable alternatives. It is recommended that you - explicitly group the values inserted into the ``Forward``:: - - fwdExpr << (a | b | c) - - Converting to use the '<<=' operator instead will avoid this problem. - - See :class:`ParseResults.pprint` for an example of a recursive - parser created using ``Forward``. - """ - def __init__( self, other=None ): - super(Forward,self).__init__( other, savelist=False ) - - def __lshift__( self, other ): - if isinstance( other, basestring ): - other = ParserElement._literalStringClass(other) - self.expr = other - self.strRepr = None - self.mayIndexError = self.expr.mayIndexError - self.mayReturnEmpty = self.expr.mayReturnEmpty - self.setWhitespaceChars( self.expr.whiteChars ) - self.skipWhitespace = self.expr.skipWhitespace - self.saveAsList = self.expr.saveAsList - self.ignoreExprs.extend(self.expr.ignoreExprs) - return self - - def __ilshift__(self, other): - return self << other - - def leaveWhitespace( self ): - self.skipWhitespace = False - return self - - def streamline( self ): - if not self.streamlined: - self.streamlined = True - if self.expr is not None: - self.expr.streamline() - return self - - def validate( self, validateTrace=[] ): - if self not in validateTrace: - tmp = validateTrace[:]+[self] - if self.expr is not None: - self.expr.validate(tmp) - self.checkRecursion([]) - - def __str__( self ): - if hasattr(self,"name"): - return self.name - return self.__class__.__name__ + ": ..." - - # stubbed out for now - creates awful memory and perf issues - self._revertClass = self.__class__ - self.__class__ = _ForwardNoRecurse - try: - if self.expr is not None: - retString = _ustr(self.expr) - else: - retString = "None" - finally: - self.__class__ = self._revertClass - return self.__class__.__name__ + ": " + retString - - def copy(self): - if self.expr is not None: - return super(Forward,self).copy() - else: - ret = Forward() - ret <<= self - return ret - -class _ForwardNoRecurse(Forward): - def __str__( self ): - return "..." - -class TokenConverter(ParseElementEnhance): - """ - Abstract subclass of :class:`ParseExpression`, for converting parsed results. - """ - def __init__( self, expr, savelist=False ): - super(TokenConverter,self).__init__( expr )#, savelist ) - self.saveAsList = False - -class Combine(TokenConverter): - """Converter to concatenate all matching tokens to a single string. - By default, the matching patterns must also be contiguous in the - input string; this can be disabled by specifying - ``'adjacent=False'`` in the constructor. - - Example:: - - real = Word(nums) + '.' + Word(nums) - print(real.parseString('3.1416')) # -> ['3', '.', '1416'] - # will also erroneously match the following - print(real.parseString('3. 1416')) # -> ['3', '.', '1416'] - - real = Combine(Word(nums) + '.' + Word(nums)) - print(real.parseString('3.1416')) # -> ['3.1416'] - # no match when there are internal spaces - print(real.parseString('3. 1416')) # -> Exception: Expected W:(0123...) - """ - def __init__( self, expr, joinString="", adjacent=True ): - super(Combine,self).__init__( expr ) - # suppress whitespace-stripping in contained parse expressions, but re-enable it on the Combine itself - if adjacent: - self.leaveWhitespace() - self.adjacent = adjacent - self.skipWhitespace = True - self.joinString = joinString - self.callPreparse = True - - def ignore( self, other ): - if self.adjacent: - ParserElement.ignore(self, other) - else: - super( Combine, self).ignore( other ) - return self - - def postParse( self, instring, loc, tokenlist ): - retToks = tokenlist.copy() - del retToks[:] - retToks += ParseResults([ "".join(tokenlist._asStringList(self.joinString)) ], modal=self.modalResults) - - if self.resultsName and retToks.haskeys(): - return [ retToks ] - else: - return retToks - -class Group(TokenConverter): - """Converter to return the matched tokens as a list - useful for - returning tokens of :class:`ZeroOrMore` and :class:`OneOrMore` expressions. - - Example:: - - ident = Word(alphas) - num = Word(nums) - term = ident | num - func = ident + Optional(delimitedList(term)) - print(func.parseString("fn a,b,100")) # -> ['fn', 'a', 'b', '100'] - - func = ident + Group(Optional(delimitedList(term))) - print(func.parseString("fn a,b,100")) # -> ['fn', ['a', 'b', '100']] - """ - def __init__( self, expr ): - super(Group,self).__init__( expr ) - self.saveAsList = expr.saveAsList - - def postParse( self, instring, loc, tokenlist ): - return [ tokenlist ] - -class Dict(TokenConverter): - """Converter to return a repetitive expression as a list, but also - as a dictionary. Each element can also be referenced using the first - token in the expression as its key. Useful for tabular report - scraping when the first column can be used as a item key. - - Example:: - - data_word = Word(alphas) - label = data_word + FollowedBy(':') - attr_expr = Group(label + Suppress(':') + OneOrMore(data_word).setParseAction(' '.join)) - - text = "shape: SQUARE posn: upper left color: light blue texture: burlap" - attr_expr = (label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join)) - - # print attributes as plain groups - print(OneOrMore(attr_expr).parseString(text).dump()) - - # instead of OneOrMore(expr), parse using Dict(OneOrMore(Group(expr))) - Dict will auto-assign names - result = Dict(OneOrMore(Group(attr_expr))).parseString(text) - print(result.dump()) - - # access named fields as dict entries, or output as dict - print(result['shape']) - print(result.asDict()) - - prints:: - - ['shape', 'SQUARE', 'posn', 'upper left', 'color', 'light blue', 'texture', 'burlap'] - [['shape', 'SQUARE'], ['posn', 'upper left'], ['color', 'light blue'], ['texture', 'burlap']] - - color: light blue - - posn: upper left - - shape: SQUARE - - texture: burlap - SQUARE - {'color': 'light blue', 'posn': 'upper left', 'texture': 'burlap', 'shape': 'SQUARE'} - - See more examples at :class:`ParseResults` of accessing fields by results name. - """ - def __init__( self, expr ): - super(Dict,self).__init__( expr ) - self.saveAsList = True - - def postParse( self, instring, loc, tokenlist ): - for i,tok in enumerate(tokenlist): - if len(tok) == 0: - continue - ikey = tok[0] - if isinstance(ikey,int): - ikey = _ustr(tok[0]).strip() - if len(tok)==1: - tokenlist[ikey] = _ParseResultsWithOffset("",i) - elif len(tok)==2 and not isinstance(tok[1],ParseResults): - tokenlist[ikey] = _ParseResultsWithOffset(tok[1],i) - else: - dictvalue = tok.copy() #ParseResults(i) - del dictvalue[0] - if len(dictvalue)!= 1 or (isinstance(dictvalue,ParseResults) and dictvalue.haskeys()): - tokenlist[ikey] = _ParseResultsWithOffset(dictvalue,i) - else: - tokenlist[ikey] = _ParseResultsWithOffset(dictvalue[0],i) - - if self.resultsName: - return [ tokenlist ] - else: - return tokenlist - - -class Suppress(TokenConverter): - """Converter for ignoring the results of a parsed expression. - - Example:: - - source = "a, b, c,d" - wd = Word(alphas) - wd_list1 = wd + ZeroOrMore(',' + wd) - print(wd_list1.parseString(source)) - - # often, delimiters that are useful during parsing are just in the - # way afterward - use Suppress to keep them out of the parsed output - wd_list2 = wd + ZeroOrMore(Suppress(',') + wd) - print(wd_list2.parseString(source)) - - prints:: - - ['a', ',', 'b', ',', 'c', ',', 'd'] - ['a', 'b', 'c', 'd'] - - (See also :class:`delimitedList`.) - """ - def postParse( self, instring, loc, tokenlist ): - return [] - - def suppress( self ): - return self - - -class OnlyOnce(object): - """Wrapper for parse actions, to ensure they are only called once. - """ - def __init__(self, methodCall): - self.callable = _trim_arity(methodCall) - self.called = False - def __call__(self,s,l,t): - if not self.called: - results = self.callable(s,l,t) - self.called = True - return results - raise ParseException(s,l,"") - def reset(self): - self.called = False - -def traceParseAction(f): - """Decorator for debugging parse actions. - - When the parse action is called, this decorator will print - ``">> entering method-name(line:<current_source_line>, <parse_location>, <matched_tokens>)"``. - When the parse action completes, the decorator will print - ``"<<"`` followed by the returned value, or any exception that the parse action raised. - - Example:: - - wd = Word(alphas) - - @traceParseAction - def remove_duplicate_chars(tokens): - return ''.join(sorted(set(''.join(tokens)))) - - wds = OneOrMore(wd).setParseAction(remove_duplicate_chars) - print(wds.parseString("slkdjs sld sldd sdlf sdljf")) - - prints:: - - >>entering remove_duplicate_chars(line: 'slkdjs sld sldd sdlf sdljf', 0, (['slkdjs', 'sld', 'sldd', 'sdlf', 'sdljf'], {})) - <<leaving remove_duplicate_chars (ret: 'dfjkls') - ['dfjkls'] - """ - f = _trim_arity(f) - def z(*paArgs): - thisFunc = f.__name__ - s,l,t = paArgs[-3:] - if len(paArgs)>3: - thisFunc = paArgs[0].__class__.__name__ + '.' + thisFunc - sys.stderr.write( ">>entering %s(line: '%s', %d, %r)\n" % (thisFunc,line(l,s),l,t) ) - try: - ret = f(*paArgs) - except Exception as exc: - sys.stderr.write( "<<leaving %s (exception: %s)\n" % (thisFunc,exc) ) - raise - sys.stderr.write( "<<leaving %s (ret: %r)\n" % (thisFunc,ret) ) - return ret - try: - z.__name__ = f.__name__ - except AttributeError: - pass - return z - -# -# global helpers -# -def delimitedList( expr, delim=",", combine=False ): - """Helper to define a delimited list of expressions - the delimiter - defaults to ','. By default, the list elements and delimiters can - have intervening whitespace, and comments, but this can be - overridden by passing ``combine=True`` in the constructor. If - ``combine`` is set to ``True``, the matching tokens are - returned as a single token string, with the delimiters included; - otherwise, the matching tokens are returned as a list of tokens, - with the delimiters suppressed. - - Example:: - - delimitedList(Word(alphas)).parseString("aa,bb,cc") # -> ['aa', 'bb', 'cc'] - delimitedList(Word(hexnums), delim=':', combine=True).parseString("AA:BB:CC:DD:EE") # -> ['AA:BB:CC:DD:EE'] - """ - dlName = _ustr(expr)+" ["+_ustr(delim)+" "+_ustr(expr)+"]..." - if combine: - return Combine( expr + ZeroOrMore( delim + expr ) ).setName(dlName) - else: - return ( expr + ZeroOrMore( Suppress( delim ) + expr ) ).setName(dlName) - -def countedArray( expr, intExpr=None ): - """Helper to define a counted list of expressions. - - This helper defines a pattern of the form:: - - integer expr expr expr... - - where the leading integer tells how many expr expressions follow. - The matched tokens returns the array of expr tokens as a list - the - leading count token is suppressed. - - If ``intExpr`` is specified, it should be a pyparsing expression - that produces an integer value. - - Example:: - - countedArray(Word(alphas)).parseString('2 ab cd ef') # -> ['ab', 'cd'] - - # in this parser, the leading integer value is given in binary, - # '10' indicating that 2 values are in the array - binaryConstant = Word('01').setParseAction(lambda t: int(t[0], 2)) - countedArray(Word(alphas), intExpr=binaryConstant).parseString('10 ab cd ef') # -> ['ab', 'cd'] - """ - arrayExpr = Forward() - def countFieldParseAction(s,l,t): - n = t[0] - arrayExpr << (n and Group(And([expr]*n)) or Group(empty)) - return [] - if intExpr is None: - intExpr = Word(nums).setParseAction(lambda t:int(t[0])) - else: - intExpr = intExpr.copy() - intExpr.setName("arrayLen") - intExpr.addParseAction(countFieldParseAction, callDuringTry=True) - return ( intExpr + arrayExpr ).setName('(len) ' + _ustr(expr) + '...') - -def _flatten(L): - ret = [] - for i in L: - if isinstance(i,list): - ret.extend(_flatten(i)) - else: - ret.append(i) - return ret - -def matchPreviousLiteral(expr): - """Helper to define an expression that is indirectly defined from - the tokens matched in a previous expression, that is, it looks for - a 'repeat' of a previous expression. For example:: - - first = Word(nums) - second = matchPreviousLiteral(first) - matchExpr = first + ":" + second - - will match ``"1:1"``, but not ``"1:2"``. Because this - matches a previous literal, will also match the leading - ``"1:1"`` in ``"1:10"``. If this is not desired, use - :class:`matchPreviousExpr`. Do *not* use with packrat parsing - enabled. - """ - rep = Forward() - def copyTokenToRepeater(s,l,t): - if t: - if len(t) == 1: - rep << t[0] - else: - # flatten t tokens - tflat = _flatten(t.asList()) - rep << And(Literal(tt) for tt in tflat) - else: - rep << Empty() - expr.addParseAction(copyTokenToRepeater, callDuringTry=True) - rep.setName('(prev) ' + _ustr(expr)) - return rep - -def matchPreviousExpr(expr): - """Helper to define an expression that is indirectly defined from - the tokens matched in a previous expression, that is, it looks for - a 'repeat' of a previous expression. For example:: - - first = Word(nums) - second = matchPreviousExpr(first) - matchExpr = first + ":" + second - - will match ``"1:1"``, but not ``"1:2"``. Because this - matches by expressions, will *not* match the leading ``"1:1"`` - in ``"1:10"``; the expressions are evaluated first, and then - compared, so ``"1"`` is compared with ``"10"``. Do *not* use - with packrat parsing enabled. - """ - rep = Forward() - e2 = expr.copy() - rep <<= e2 - def copyTokenToRepeater(s,l,t): - matchTokens = _flatten(t.asList()) - def mustMatchTheseTokens(s,l,t): - theseTokens = _flatten(t.asList()) - if theseTokens != matchTokens: - raise ParseException("",0,"") - rep.setParseAction( mustMatchTheseTokens, callDuringTry=True ) - expr.addParseAction(copyTokenToRepeater, callDuringTry=True) - rep.setName('(prev) ' + _ustr(expr)) - return rep - -def _escapeRegexRangeChars(s): - #~ escape these chars: ^-] - for c in r"\^-]": - s = s.replace(c,_bslash+c) - s = s.replace("\n",r"\n") - s = s.replace("\t",r"\t") - return _ustr(s) - -def oneOf( strs, caseless=False, useRegex=True ): - """Helper to quickly define a set of alternative Literals, and makes - sure to do longest-first testing when there is a conflict, - regardless of the input order, but returns - a :class:`MatchFirst` for best performance. - - Parameters: - - - strs - a string of space-delimited literals, or a collection of - string literals - - caseless - (default= ``False``) - treat all literals as - caseless - - useRegex - (default= ``True``) - as an optimization, will - generate a Regex object; otherwise, will generate - a :class:`MatchFirst` object (if ``caseless=True``, or if - creating a :class:`Regex` raises an exception) - - Example:: - - comp_oper = oneOf("< = > <= >= !=") - var = Word(alphas) - number = Word(nums) - term = var | number - comparison_expr = term + comp_oper + term - print(comparison_expr.searchString("B = 12 AA=23 B<=AA AA>12")) - - prints:: - - [['B', '=', '12'], ['AA', '=', '23'], ['B', '<=', 'AA'], ['AA', '>', '12']] - """ - if caseless: - isequal = ( lambda a,b: a.upper() == b.upper() ) - masks = ( lambda a,b: b.upper().startswith(a.upper()) ) - parseElementClass = CaselessLiteral - else: - isequal = ( lambda a,b: a == b ) - masks = ( lambda a,b: b.startswith(a) ) - parseElementClass = Literal - - symbols = [] - if isinstance(strs,basestring): - symbols = strs.split() - elif isinstance(strs, Iterable): - symbols = list(strs) - else: - warnings.warn("Invalid argument to oneOf, expected string or iterable", - SyntaxWarning, stacklevel=2) - if not symbols: - return NoMatch() - - i = 0 - while i < len(symbols)-1: - cur = symbols[i] - for j,other in enumerate(symbols[i+1:]): - if ( isequal(other, cur) ): - del symbols[i+j+1] - break - elif ( masks(cur, other) ): - del symbols[i+j+1] - symbols.insert(i,other) - cur = other - break - else: - i += 1 - - if not caseless and useRegex: - #~ print (strs,"->", "|".join( [ _escapeRegexChars(sym) for sym in symbols] )) - try: - if len(symbols)==len("".join(symbols)): - return Regex( "[%s]" % "".join(_escapeRegexRangeChars(sym) for sym in symbols) ).setName(' | '.join(symbols)) - else: - return Regex( "|".join(re.escape(sym) for sym in symbols) ).setName(' | '.join(symbols)) - except Exception: - warnings.warn("Exception creating Regex for oneOf, building MatchFirst", - SyntaxWarning, stacklevel=2) - - - # last resort, just use MatchFirst - return MatchFirst(parseElementClass(sym) for sym in symbols).setName(' | '.join(symbols)) - -def dictOf( key, value ): - """Helper to easily and clearly define a dictionary by specifying - the respective patterns for the key and value. Takes care of - defining the :class:`Dict`, :class:`ZeroOrMore`, and - :class:`Group` tokens in the proper order. The key pattern - can include delimiting markers or punctuation, as long as they are - suppressed, thereby leaving the significant key text. The value - pattern can include named results, so that the :class:`Dict` results - can include named token fields. - - Example:: - - text = "shape: SQUARE posn: upper left color: light blue texture: burlap" - attr_expr = (label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join)) - print(OneOrMore(attr_expr).parseString(text).dump()) - - attr_label = label - attr_value = Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join) - - # similar to Dict, but simpler call format - result = dictOf(attr_label, attr_value).parseString(text) - print(result.dump()) - print(result['shape']) - print(result.shape) # object attribute access works too - print(result.asDict()) - - prints:: - - [['shape', 'SQUARE'], ['posn', 'upper left'], ['color', 'light blue'], ['texture', 'burlap']] - - color: light blue - - posn: upper left - - shape: SQUARE - - texture: burlap - SQUARE - SQUARE - {'color': 'light blue', 'shape': 'SQUARE', 'posn': 'upper left', 'texture': 'burlap'} - """ - return Dict(OneOrMore(Group(key + value))) - -def originalTextFor(expr, asString=True): - """Helper to return the original, untokenized text for a given - expression. Useful to restore the parsed fields of an HTML start - tag into the raw tag text itself, or to revert separate tokens with - intervening whitespace back to the original matching input text. By - default, returns astring containing the original parsed text. - - If the optional ``asString`` argument is passed as - ``False``, then the return value is - a :class:`ParseResults` containing any results names that - were originally matched, and a single token containing the original - matched text from the input string. So if the expression passed to - :class:`originalTextFor` contains expressions with defined - results names, you must set ``asString`` to ``False`` if you - want to preserve those results name values. - - Example:: - - src = "this is test <b> bold <i>text</i> </b> normal text " - for tag in ("b","i"): - opener,closer = makeHTMLTags(tag) - patt = originalTextFor(opener + SkipTo(closer) + closer) - print(patt.searchString(src)[0]) - - prints:: - - ['<b> bold <i>text</i> </b>'] - ['<i>text</i>'] - """ - locMarker = Empty().setParseAction(lambda s,loc,t: loc) - endlocMarker = locMarker.copy() - endlocMarker.callPreparse = False - matchExpr = locMarker("_original_start") + expr + endlocMarker("_original_end") - if asString: - extractText = lambda s,l,t: s[t._original_start:t._original_end] - else: - def extractText(s,l,t): - t[:] = [s[t.pop('_original_start'):t.pop('_original_end')]] - matchExpr.setParseAction(extractText) - matchExpr.ignoreExprs = expr.ignoreExprs - return matchExpr - -def ungroup(expr): - """Helper to undo pyparsing's default grouping of And expressions, - even if all but one are non-empty. - """ - return TokenConverter(expr).setParseAction(lambda t:t[0]) - -def locatedExpr(expr): - """Helper to decorate a returned token with its starting and ending - locations in the input string. - - This helper adds the following results names: - - - locn_start = location where matched expression begins - - locn_end = location where matched expression ends - - value = the actual parsed results - - Be careful if the input text contains ``<TAB>`` characters, you - may want to call :class:`ParserElement.parseWithTabs` - - Example:: - - wd = Word(alphas) - for match in locatedExpr(wd).searchString("ljsdf123lksdjjf123lkkjj1222"): - print(match) - - prints:: - - [[0, 'ljsdf', 5]] - [[8, 'lksdjjf', 15]] - [[18, 'lkkjj', 23]] - """ - locator = Empty().setParseAction(lambda s,l,t: l) - return Group(locator("locn_start") + expr("value") + locator.copy().leaveWhitespace()("locn_end")) - - -# convenience constants for positional expressions -empty = Empty().setName("empty") -lineStart = LineStart().setName("lineStart") -lineEnd = LineEnd().setName("lineEnd") -stringStart = StringStart().setName("stringStart") -stringEnd = StringEnd().setName("stringEnd") - -_escapedPunc = Word( _bslash, r"\[]-*.$+^?()~ ", exact=2 ).setParseAction(lambda s,l,t:t[0][1]) -_escapedHexChar = Regex(r"\\0?[xX][0-9a-fA-F]+").setParseAction(lambda s,l,t:unichr(int(t[0].lstrip(r'\0x'),16))) -_escapedOctChar = Regex(r"\\0[0-7]+").setParseAction(lambda s,l,t:unichr(int(t[0][1:],8))) -_singleChar = _escapedPunc | _escapedHexChar | _escapedOctChar | CharsNotIn(r'\]', exact=1) -_charRange = Group(_singleChar + Suppress("-") + _singleChar) -_reBracketExpr = Literal("[") + Optional("^").setResultsName("negate") + Group( OneOrMore( _charRange | _singleChar ) ).setResultsName("body") + "]" - -def srange(s): - r"""Helper to easily define string ranges for use in Word - construction. Borrows syntax from regexp '[]' string range - definitions:: - - srange("[0-9]") -> "0123456789" - srange("[a-z]") -> "abcdefghijklmnopqrstuvwxyz" - srange("[a-z$_]") -> "abcdefghijklmnopqrstuvwxyz$_" - - The input string must be enclosed in []'s, and the returned string - is the expanded character set joined into a single string. The - values enclosed in the []'s may be: - - - a single character - - an escaped character with a leading backslash (such as ``\-`` - or ``\]``) - - an escaped hex character with a leading ``'\x'`` - (``\x21``, which is a ``'!'`` character) (``\0x##`` - is also supported for backwards compatibility) - - an escaped octal character with a leading ``'\0'`` - (``\041``, which is a ``'!'`` character) - - a range of any of the above, separated by a dash (``'a-z'``, - etc.) - - any combination of the above (``'aeiouy'``, - ``'a-zA-Z0-9_$'``, etc.) - """ - _expanded = lambda p: p if not isinstance(p,ParseResults) else ''.join(unichr(c) for c in range(ord(p[0]),ord(p[1])+1)) - try: - return "".join(_expanded(part) for part in _reBracketExpr.parseString(s).body) - except Exception: - return "" - -def matchOnlyAtCol(n): - """Helper method for defining parse actions that require matching at - a specific column in the input text. - """ - def verifyCol(strg,locn,toks): - if col(locn,strg) != n: - raise ParseException(strg,locn,"matched token not at column %d" % n) - return verifyCol - -def replaceWith(replStr): - """Helper method for common parse actions that simply return - a literal value. Especially useful when used with - :class:`transformString<ParserElement.transformString>` (). - - Example:: - - num = Word(nums).setParseAction(lambda toks: int(toks[0])) - na = oneOf("N/A NA").setParseAction(replaceWith(math.nan)) - term = na | num - - OneOrMore(term).parseString("324 234 N/A 234") # -> [324, 234, nan, 234] - """ - return lambda s,l,t: [replStr] - -def removeQuotes(s,l,t): - """Helper parse action for removing quotation marks from parsed - quoted strings. - - Example:: - - # by default, quotation marks are included in parsed results - quotedString.parseString("'Now is the Winter of our Discontent'") # -> ["'Now is the Winter of our Discontent'"] - - # use removeQuotes to strip quotation marks from parsed results - quotedString.setParseAction(removeQuotes) - quotedString.parseString("'Now is the Winter of our Discontent'") # -> ["Now is the Winter of our Discontent"] - """ - return t[0][1:-1] - -def tokenMap(func, *args): - """Helper to define a parse action by mapping a function to all - elements of a ParseResults list. If any additional args are passed, - they are forwarded to the given function as additional arguments - after the token, as in - ``hex_integer = Word(hexnums).setParseAction(tokenMap(int, 16))``, - which will convert the parsed data to an integer using base 16. - - Example (compare the last to example in :class:`ParserElement.transformString`:: - - hex_ints = OneOrMore(Word(hexnums)).setParseAction(tokenMap(int, 16)) - hex_ints.runTests(''' - 00 11 22 aa FF 0a 0d 1a - ''') - - upperword = Word(alphas).setParseAction(tokenMap(str.upper)) - OneOrMore(upperword).runTests(''' - my kingdom for a horse - ''') - - wd = Word(alphas).setParseAction(tokenMap(str.title)) - OneOrMore(wd).setParseAction(' '.join).runTests(''' - now is the winter of our discontent made glorious summer by this sun of york - ''') - - prints:: - - 00 11 22 aa FF 0a 0d 1a - [0, 17, 34, 170, 255, 10, 13, 26] - - my kingdom for a horse - ['MY', 'KINGDOM', 'FOR', 'A', 'HORSE'] - - now is the winter of our discontent made glorious summer by this sun of york - ['Now Is The Winter Of Our Discontent Made Glorious Summer By This Sun Of York'] - """ - def pa(s,l,t): - return [func(tokn, *args) for tokn in t] - - try: - func_name = getattr(func, '__name__', - getattr(func, '__class__').__name__) - except Exception: - func_name = str(func) - pa.__name__ = func_name - - return pa - -upcaseTokens = tokenMap(lambda t: _ustr(t).upper()) -"""(Deprecated) Helper parse action to convert tokens to upper case. -Deprecated in favor of :class:`pyparsing_common.upcaseTokens`""" - -downcaseTokens = tokenMap(lambda t: _ustr(t).lower()) -"""(Deprecated) Helper parse action to convert tokens to lower case. -Deprecated in favor of :class:`pyparsing_common.downcaseTokens`""" - -def _makeTags(tagStr, xml): - """Internal helper to construct opening and closing tag expressions, given a tag name""" - if isinstance(tagStr,basestring): - resname = tagStr - tagStr = Keyword(tagStr, caseless=not xml) - else: - resname = tagStr.name - - tagAttrName = Word(alphas,alphanums+"_-:") - if (xml): - tagAttrValue = dblQuotedString.copy().setParseAction( removeQuotes ) - openTag = Suppress("<") + tagStr("tag") + \ - Dict(ZeroOrMore(Group( tagAttrName + Suppress("=") + tagAttrValue ))) + \ - Optional("/",default=[False]).setResultsName("empty").setParseAction(lambda s,l,t:t[0]=='/') + Suppress(">") - else: - printablesLessRAbrack = "".join(c for c in printables if c not in ">") - tagAttrValue = quotedString.copy().setParseAction( removeQuotes ) | Word(printablesLessRAbrack) - openTag = Suppress("<") + tagStr("tag") + \ - Dict(ZeroOrMore(Group( tagAttrName.setParseAction(downcaseTokens) + \ - Optional( Suppress("=") + tagAttrValue ) ))) + \ - Optional("/",default=[False]).setResultsName("empty").setParseAction(lambda s,l,t:t[0]=='/') + Suppress(">") - closeTag = Combine(_L("</") + tagStr + ">") - - openTag = openTag.setResultsName("start"+"".join(resname.replace(":"," ").title().split())).setName("<%s>" % resname) - closeTag = closeTag.setResultsName("end"+"".join(resname.replace(":"," ").title().split())).setName("</%s>" % resname) - openTag.tag = resname - closeTag.tag = resname - return openTag, closeTag - -def makeHTMLTags(tagStr): - """Helper to construct opening and closing tag expressions for HTML, - given a tag name. Matches tags in either upper or lower case, - attributes with namespaces and with quoted or unquoted values. - - Example:: - - text = '<td>More info at the <a href="https://github.com/pyparsing/pyparsing/wiki">pyparsing</a> wiki page</td>' - # makeHTMLTags returns pyparsing expressions for the opening and - # closing tags as a 2-tuple - a,a_end = makeHTMLTags("A") - link_expr = a + SkipTo(a_end)("link_text") + a_end - - for link in link_expr.searchString(text): - # attributes in the <A> tag (like "href" shown here) are - # also accessible as named results - print(link.link_text, '->', link.href) - - prints:: - - pyparsing -> https://github.com/pyparsing/pyparsing/wiki - """ - return _makeTags( tagStr, False ) - -def makeXMLTags(tagStr): - """Helper to construct opening and closing tag expressions for XML, - given a tag name. Matches tags only in the given upper/lower case. - - Example: similar to :class:`makeHTMLTags` - """ - return _makeTags( tagStr, True ) - -def withAttribute(*args,**attrDict): - """Helper to create a validating parse action to be used with start - tags created with :class:`makeXMLTags` or - :class:`makeHTMLTags`. Use ``withAttribute`` to qualify - a starting tag with a required attribute value, to avoid false - matches on common tags such as ``<TD>`` or ``<DIV>``. - - Call ``withAttribute`` with a series of attribute names and - values. Specify the list of filter attributes names and values as: - - - keyword arguments, as in ``(align="right")``, or - - as an explicit dict with ``**`` operator, when an attribute - name is also a Python reserved word, as in ``**{"class":"Customer", "align":"right"}`` - - a list of name-value tuples, as in ``(("ns1:class", "Customer"), ("ns2:align","right"))`` - - For attribute names with a namespace prefix, you must use the second - form. Attribute names are matched insensitive to upper/lower case. - - If just testing for ``class`` (with or without a namespace), use - :class:`withClass`. - - To verify that the attribute exists, but without specifying a value, - pass ``withAttribute.ANY_VALUE`` as the value. - - Example:: - - html = ''' - <div> - Some text - <div type="grid">1 4 0 1 0</div> - <div type="graph">1,3 2,3 1,1</div> - <div>this has no type</div> - </div> - - ''' - div,div_end = makeHTMLTags("div") - - # only match div tag having a type attribute with value "grid" - div_grid = div().setParseAction(withAttribute(type="grid")) - grid_expr = div_grid + SkipTo(div | div_end)("body") - for grid_header in grid_expr.searchString(html): - print(grid_header.body) - - # construct a match with any div tag having a type attribute, regardless of the value - div_any_type = div().setParseAction(withAttribute(type=withAttribute.ANY_VALUE)) - div_expr = div_any_type + SkipTo(div | div_end)("body") - for div_header in div_expr.searchString(html): - print(div_header.body) - - prints:: - - 1 4 0 1 0 - - 1 4 0 1 0 - 1,3 2,3 1,1 - """ - if args: - attrs = args[:] - else: - attrs = attrDict.items() - attrs = [(k,v) for k,v in attrs] - def pa(s,l,tokens): - for attrName,attrValue in attrs: - if attrName not in tokens: - raise ParseException(s,l,"no matching attribute " + attrName) - if attrValue != withAttribute.ANY_VALUE and tokens[attrName] != attrValue: - raise ParseException(s,l,"attribute '%s' has value '%s', must be '%s'" % - (attrName, tokens[attrName], attrValue)) - return pa -withAttribute.ANY_VALUE = object() - -def withClass(classname, namespace=''): - """Simplified version of :class:`withAttribute` when - matching on a div class - made difficult because ``class`` is - a reserved word in Python. - - Example:: - - html = ''' - <div> - Some text - <div class="grid">1 4 0 1 0</div> - <div class="graph">1,3 2,3 1,1</div> - <div>this <div> has no class</div> - </div> - - ''' - div,div_end = makeHTMLTags("div") - div_grid = div().setParseAction(withClass("grid")) - - grid_expr = div_grid + SkipTo(div | div_end)("body") - for grid_header in grid_expr.searchString(html): - print(grid_header.body) - - div_any_type = div().setParseAction(withClass(withAttribute.ANY_VALUE)) - div_expr = div_any_type + SkipTo(div | div_end)("body") - for div_header in div_expr.searchString(html): - print(div_header.body) - - prints:: - - 1 4 0 1 0 - - 1 4 0 1 0 - 1,3 2,3 1,1 - """ - classattr = "%s:class" % namespace if namespace else "class" - return withAttribute(**{classattr : classname}) - -opAssoc = SimpleNamespace() -opAssoc.LEFT = object() -opAssoc.RIGHT = object() - -def infixNotation( baseExpr, opList, lpar=Suppress('('), rpar=Suppress(')') ): - """Helper method for constructing grammars of expressions made up of - operators working in a precedence hierarchy. Operators may be unary - or binary, left- or right-associative. Parse actions can also be - attached to operator expressions. The generated parser will also - recognize the use of parentheses to override operator precedences - (see example below). - - Note: if you define a deep operator list, you may see performance - issues when using infixNotation. See - :class:`ParserElement.enablePackrat` for a mechanism to potentially - improve your parser performance. - - Parameters: - - baseExpr - expression representing the most basic element for the - nested - - opList - list of tuples, one for each operator precedence level - in the expression grammar; each tuple is of the form ``(opExpr, - numTerms, rightLeftAssoc, parseAction)``, where: - - - opExpr is the pyparsing expression for the operator; may also - be a string, which will be converted to a Literal; if numTerms - is 3, opExpr is a tuple of two expressions, for the two - operators separating the 3 terms - - numTerms is the number of terms for this operator (must be 1, - 2, or 3) - - rightLeftAssoc is the indicator whether the operator is right - or left associative, using the pyparsing-defined constants - ``opAssoc.RIGHT`` and ``opAssoc.LEFT``. - - parseAction is the parse action to be associated with - expressions matching this operator expression (the parse action - tuple member may be omitted); if the parse action is passed - a tuple or list of functions, this is equivalent to calling - ``setParseAction(*fn)`` - (:class:`ParserElement.setParseAction`) - - lpar - expression for matching left-parentheses - (default= ``Suppress('(')``) - - rpar - expression for matching right-parentheses - (default= ``Suppress(')')``) - - Example:: - - # simple example of four-function arithmetic with ints and - # variable names - integer = pyparsing_common.signed_integer - varname = pyparsing_common.identifier - - arith_expr = infixNotation(integer | varname, - [ - ('-', 1, opAssoc.RIGHT), - (oneOf('* /'), 2, opAssoc.LEFT), - (oneOf('+ -'), 2, opAssoc.LEFT), - ]) - - arith_expr.runTests(''' - 5+3*6 - (5+3)*6 - -2--11 - ''', fullDump=False) - - prints:: - - 5+3*6 - [[5, '+', [3, '*', 6]]] - - (5+3)*6 - [[[5, '+', 3], '*', 6]] - - -2--11 - [[['-', 2], '-', ['-', 11]]] - """ - # captive version of FollowedBy that does not do parse actions or capture results names - class _FB(FollowedBy): - def parseImpl(self, instring, loc, doActions=True): - self.expr.tryParse(instring, loc) - return loc, [] - - ret = Forward() - lastExpr = baseExpr | ( lpar + ret + rpar ) - for i,operDef in enumerate(opList): - opExpr,arity,rightLeftAssoc,pa = (operDef + (None,))[:4] - termName = "%s term" % opExpr if arity < 3 else "%s%s term" % opExpr - if arity == 3: - if opExpr is None or len(opExpr) != 2: - raise ValueError( - "if numterms=3, opExpr must be a tuple or list of two expressions") - opExpr1, opExpr2 = opExpr - thisExpr = Forward().setName(termName) - if rightLeftAssoc == opAssoc.LEFT: - if arity == 1: - matchExpr = _FB(lastExpr + opExpr) + Group( lastExpr + OneOrMore( opExpr ) ) - elif arity == 2: - if opExpr is not None: - matchExpr = _FB(lastExpr + opExpr + lastExpr) + Group( lastExpr + OneOrMore( opExpr + lastExpr ) ) - else: - matchExpr = _FB(lastExpr+lastExpr) + Group( lastExpr + OneOrMore(lastExpr) ) - elif arity == 3: - matchExpr = _FB(lastExpr + opExpr1 + lastExpr + opExpr2 + lastExpr) + \ - Group( lastExpr + opExpr1 + lastExpr + opExpr2 + lastExpr ) - else: - raise ValueError("operator must be unary (1), binary (2), or ternary (3)") - elif rightLeftAssoc == opAssoc.RIGHT: - if arity == 1: - # try to avoid LR with this extra test - if not isinstance(opExpr, Optional): - opExpr = Optional(opExpr) - matchExpr = _FB(opExpr.expr + thisExpr) + Group( opExpr + thisExpr ) - elif arity == 2: - if opExpr is not None: - matchExpr = _FB(lastExpr + opExpr + thisExpr) + Group( lastExpr + OneOrMore( opExpr + thisExpr ) ) - else: - matchExpr = _FB(lastExpr + thisExpr) + Group( lastExpr + OneOrMore( thisExpr ) ) - elif arity == 3: - matchExpr = _FB(lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr) + \ - Group( lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr ) - else: - raise ValueError("operator must be unary (1), binary (2), or ternary (3)") - else: - raise ValueError("operator must indicate right or left associativity") - if pa: - if isinstance(pa, (tuple, list)): - matchExpr.setParseAction(*pa) - else: - matchExpr.setParseAction(pa) - thisExpr <<= ( matchExpr.setName(termName) | lastExpr ) - lastExpr = thisExpr - ret <<= lastExpr - return ret - -operatorPrecedence = infixNotation -"""(Deprecated) Former name of :class:`infixNotation`, will be -dropped in a future release.""" - -dblQuotedString = Combine(Regex(r'"(?:[^"\n\r\\]|(?:"")|(?:\\(?:[^x]|x[0-9a-fA-F]+)))*')+'"').setName("string enclosed in double quotes") -sglQuotedString = Combine(Regex(r"'(?:[^'\n\r\\]|(?:'')|(?:\\(?:[^x]|x[0-9a-fA-F]+)))*")+"'").setName("string enclosed in single quotes") -quotedString = Combine(Regex(r'"(?:[^"\n\r\\]|(?:"")|(?:\\(?:[^x]|x[0-9a-fA-F]+)))*')+'"'| - Regex(r"'(?:[^'\n\r\\]|(?:'')|(?:\\(?:[^x]|x[0-9a-fA-F]+)))*")+"'").setName("quotedString using single or double quotes") -unicodeString = Combine(_L('u') + quotedString.copy()).setName("unicode string literal") - -def nestedExpr(opener="(", closer=")", content=None, ignoreExpr=quotedString.copy()): - """Helper method for defining nested lists enclosed in opening and - closing delimiters ("(" and ")" are the default). - - Parameters: - - opener - opening character for a nested list - (default= ``"("``); can also be a pyparsing expression - - closer - closing character for a nested list - (default= ``")"``); can also be a pyparsing expression - - content - expression for items within the nested lists - (default= ``None``) - - ignoreExpr - expression for ignoring opening and closing - delimiters (default= :class:`quotedString`) - - If an expression is not provided for the content argument, the - nested expression will capture all whitespace-delimited content - between delimiters as a list of separate values. - - Use the ``ignoreExpr`` argument to define expressions that may - contain opening or closing characters that should not be treated as - opening or closing characters for nesting, such as quotedString or - a comment expression. Specify multiple expressions using an - :class:`Or` or :class:`MatchFirst`. The default is - :class:`quotedString`, but if no expressions are to be ignored, then - pass ``None`` for this argument. - - Example:: - - data_type = oneOf("void int short long char float double") - decl_data_type = Combine(data_type + Optional(Word('*'))) - ident = Word(alphas+'_', alphanums+'_') - number = pyparsing_common.number - arg = Group(decl_data_type + ident) - LPAR,RPAR = map(Suppress, "()") - - code_body = nestedExpr('{', '}', ignoreExpr=(quotedString | cStyleComment)) - - c_function = (decl_data_type("type") - + ident("name") - + LPAR + Optional(delimitedList(arg), [])("args") + RPAR - + code_body("body")) - c_function.ignore(cStyleComment) - - source_code = ''' - int is_odd(int x) { - return (x%2); - } - - int dec_to_hex(char hchar) { - if (hchar >= '0' && hchar <= '9') { - return (ord(hchar)-ord('0')); - } else { - return (10+ord(hchar)-ord('A')); - } - } - ''' - for func in c_function.searchString(source_code): - print("%(name)s (%(type)s) args: %(args)s" % func) - - - prints:: - - is_odd (int) args: [['int', 'x']] - dec_to_hex (int) args: [['char', 'hchar']] - """ - if opener == closer: - raise ValueError("opening and closing strings cannot be the same") - if content is None: - if isinstance(opener,basestring) and isinstance(closer,basestring): - if len(opener) == 1 and len(closer)==1: - if ignoreExpr is not None: - content = (Combine(OneOrMore(~ignoreExpr + - CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS,exact=1)) - ).setParseAction(lambda t:t[0].strip())) - else: - content = (empty.copy()+CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS - ).setParseAction(lambda t:t[0].strip())) - else: - if ignoreExpr is not None: - content = (Combine(OneOrMore(~ignoreExpr + - ~Literal(opener) + ~Literal(closer) + - CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS,exact=1)) - ).setParseAction(lambda t:t[0].strip())) - else: - content = (Combine(OneOrMore(~Literal(opener) + ~Literal(closer) + - CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS,exact=1)) - ).setParseAction(lambda t:t[0].strip())) - else: - raise ValueError("opening and closing arguments must be strings if no content expression is given") - ret = Forward() - if ignoreExpr is not None: - ret <<= Group( Suppress(opener) + ZeroOrMore( ignoreExpr | ret | content ) + Suppress(closer) ) - else: - ret <<= Group( Suppress(opener) + ZeroOrMore( ret | content ) + Suppress(closer) ) - ret.setName('nested %s%s expression' % (opener,closer)) - return ret - -def indentedBlock(blockStatementExpr, indentStack, indent=True): - """Helper method for defining space-delimited indentation blocks, - such as those used to define block statements in Python source code. - - Parameters: - - - blockStatementExpr - expression defining syntax of statement that - is repeated within the indented block - - indentStack - list created by caller to manage indentation stack - (multiple statementWithIndentedBlock expressions within a single - grammar should share a common indentStack) - - indent - boolean indicating whether block must be indented beyond - the the current level; set to False for block of left-most - statements (default= ``True``) - - A valid block must contain at least one ``blockStatement``. - - Example:: - - data = ''' - def A(z): - A1 - B = 100 - G = A2 - A2 - A3 - B - def BB(a,b,c): - BB1 - def BBA(): - bba1 - bba2 - bba3 - C - D - def spam(x,y): - def eggs(z): - pass - ''' - - - indentStack = [1] - stmt = Forward() - - identifier = Word(alphas, alphanums) - funcDecl = ("def" + identifier + Group( "(" + Optional( delimitedList(identifier) ) + ")" ) + ":") - func_body = indentedBlock(stmt, indentStack) - funcDef = Group( funcDecl + func_body ) - - rvalue = Forward() - funcCall = Group(identifier + "(" + Optional(delimitedList(rvalue)) + ")") - rvalue << (funcCall | identifier | Word(nums)) - assignment = Group(identifier + "=" + rvalue) - stmt << ( funcDef | assignment | identifier ) - - module_body = OneOrMore(stmt) - - parseTree = module_body.parseString(data) - parseTree.pprint() - - prints:: - - [['def', - 'A', - ['(', 'z', ')'], - ':', - [['A1'], [['B', '=', '100']], [['G', '=', 'A2']], ['A2'], ['A3']]], - 'B', - ['def', - 'BB', - ['(', 'a', 'b', 'c', ')'], - ':', - [['BB1'], [['def', 'BBA', ['(', ')'], ':', [['bba1'], ['bba2'], ['bba3']]]]]], - 'C', - 'D', - ['def', - 'spam', - ['(', 'x', 'y', ')'], - ':', - [[['def', 'eggs', ['(', 'z', ')'], ':', [['pass']]]]]]] - """ - def checkPeerIndent(s,l,t): - if l >= len(s): return - curCol = col(l,s) - if curCol != indentStack[-1]: - if curCol > indentStack[-1]: - raise ParseFatalException(s,l,"illegal nesting") - raise ParseException(s,l,"not a peer entry") - - def checkSubIndent(s,l,t): - curCol = col(l,s) - if curCol > indentStack[-1]: - indentStack.append( curCol ) - else: - raise ParseException(s,l,"not a subentry") - - def checkUnindent(s,l,t): - if l >= len(s): return - curCol = col(l,s) - if not(indentStack and curCol < indentStack[-1] and curCol <= indentStack[-2]): - raise ParseException(s,l,"not an unindent") - indentStack.pop() - - NL = OneOrMore(LineEnd().setWhitespaceChars("\t ").suppress()) - INDENT = (Empty() + Empty().setParseAction(checkSubIndent)).setName('INDENT') - PEER = Empty().setParseAction(checkPeerIndent).setName('') - UNDENT = Empty().setParseAction(checkUnindent).setName('UNINDENT') - if indent: - smExpr = Group( Optional(NL) + - #~ FollowedBy(blockStatementExpr) + - INDENT + (OneOrMore( PEER + Group(blockStatementExpr) + Optional(NL) )) + UNDENT) - else: - smExpr = Group( Optional(NL) + - (OneOrMore( PEER + Group(blockStatementExpr) + Optional(NL) )) ) - blockStatementExpr.ignore(_bslash + LineEnd()) - return smExpr.setName('indented block') - -alphas8bit = srange(r"[\0xc0-\0xd6\0xd8-\0xf6\0xf8-\0xff]") -punc8bit = srange(r"[\0xa1-\0xbf\0xd7\0xf7]") - -anyOpenTag,anyCloseTag = makeHTMLTags(Word(alphas,alphanums+"_:").setName('any tag')) -_htmlEntityMap = dict(zip("gt lt amp nbsp quot apos".split(),'><& "\'')) -commonHTMLEntity = Regex('&(?P<entity>' + '|'.join(_htmlEntityMap.keys()) +");").setName("common HTML entity") -def replaceHTMLEntity(t): - """Helper parser action to replace common HTML entities with their special characters""" - return _htmlEntityMap.get(t.entity) - -# it's easy to get these comment structures wrong - they're very common, so may as well make them available -cStyleComment = Combine(Regex(r"/\*(?:[^*]|\*(?!/))*") + '*/').setName("C style comment") -"Comment of the form ``/* ... */``" - -htmlComment = Regex(r"<!--[\s\S]*?-->").setName("HTML comment") -"Comment of the form ``<!-- ... -->``" - -restOfLine = Regex(r".*").leaveWhitespace().setName("rest of line") -dblSlashComment = Regex(r"//(?:\\\n|[^\n])*").setName("// comment") -"Comment of the form ``// ... (to end of line)``" - -cppStyleComment = Combine(Regex(r"/\*(?:[^*]|\*(?!/))*") + '*/'| dblSlashComment).setName("C++ style comment") -"Comment of either form :class:`cStyleComment` or :class:`dblSlashComment`" - -javaStyleComment = cppStyleComment -"Same as :class:`cppStyleComment`" - -pythonStyleComment = Regex(r"#.*").setName("Python style comment") -"Comment of the form ``# ... (to end of line)``" - -_commasepitem = Combine(OneOrMore(Word(printables, excludeChars=',') + - Optional( Word(" \t") + - ~Literal(",") + ~LineEnd() ) ) ).streamline().setName("commaItem") -commaSeparatedList = delimitedList( Optional( quotedString.copy() | _commasepitem, default="") ).setName("commaSeparatedList") -"""(Deprecated) Predefined expression of 1 or more printable words or -quoted strings, separated by commas. - -This expression is deprecated in favor of :class:`pyparsing_common.comma_separated_list`. -""" - -# some other useful expressions - using lower-case class name since we are really using this as a namespace -class pyparsing_common: - """Here are some common low-level expressions that may be useful in - jump-starting parser development: - - - numeric forms (:class:`integers<integer>`, :class:`reals<real>`, - :class:`scientific notation<sci_real>`) - - common :class:`programming identifiers<identifier>` - - network addresses (:class:`MAC<mac_address>`, - :class:`IPv4<ipv4_address>`, :class:`IPv6<ipv6_address>`) - - ISO8601 :class:`dates<iso8601_date>` and - :class:`datetime<iso8601_datetime>` - - :class:`UUID<uuid>` - - :class:`comma-separated list<comma_separated_list>` - - Parse actions: - - - :class:`convertToInteger` - - :class:`convertToFloat` - - :class:`convertToDate` - - :class:`convertToDatetime` - - :class:`stripHTMLTags` - - :class:`upcaseTokens` - - :class:`downcaseTokens` - - Example:: - - pyparsing_common.number.runTests(''' - # any int or real number, returned as the appropriate type - 100 - -100 - +100 - 3.14159 - 6.02e23 - 1e-12 - ''') - - pyparsing_common.fnumber.runTests(''' - # any int or real number, returned as float - 100 - -100 - +100 - 3.14159 - 6.02e23 - 1e-12 - ''') - - pyparsing_common.hex_integer.runTests(''' - # hex numbers - 100 - FF - ''') - - pyparsing_common.fraction.runTests(''' - # fractions - 1/2 - -3/4 - ''') - - pyparsing_common.mixed_integer.runTests(''' - # mixed fractions - 1 - 1/2 - -3/4 - 1-3/4 - ''') - - import uuid - pyparsing_common.uuid.setParseAction(tokenMap(uuid.UUID)) - pyparsing_common.uuid.runTests(''' - # uuid - 12345678-1234-5678-1234-567812345678 - ''') - - prints:: - - # any int or real number, returned as the appropriate type - 100 - [100] - - -100 - [-100] - - +100 - [100] - - 3.14159 - [3.14159] - - 6.02e23 - [6.02e+23] - - 1e-12 - [1e-12] - - # any int or real number, returned as float - 100 - [100.0] - - -100 - [-100.0] - - +100 - [100.0] - - 3.14159 - [3.14159] - - 6.02e23 - [6.02e+23] - - 1e-12 - [1e-12] - - # hex numbers - 100 - [256] - - FF - [255] - - # fractions - 1/2 - [0.5] - - -3/4 - [-0.75] - - # mixed fractions - 1 - [1] - - 1/2 - [0.5] - - -3/4 - [-0.75] - - 1-3/4 - [1.75] - - # uuid - 12345678-1234-5678-1234-567812345678 - [UUID('12345678-1234-5678-1234-567812345678')] - """ - - convertToInteger = tokenMap(int) - """ - Parse action for converting parsed integers to Python int - """ - - convertToFloat = tokenMap(float) - """ - Parse action for converting parsed numbers to Python float - """ - - integer = Word(nums).setName("integer").setParseAction(convertToInteger) - """expression that parses an unsigned integer, returns an int""" - - hex_integer = Word(hexnums).setName("hex integer").setParseAction(tokenMap(int,16)) - """expression that parses a hexadecimal integer, returns an int""" - - signed_integer = Regex(r'[+-]?\d+').setName("signed integer").setParseAction(convertToInteger) - """expression that parses an integer with optional leading sign, returns an int""" - - fraction = (signed_integer().setParseAction(convertToFloat) + '/' + signed_integer().setParseAction(convertToFloat)).setName("fraction") - """fractional expression of an integer divided by an integer, returns a float""" - fraction.addParseAction(lambda t: t[0]/t[-1]) - - mixed_integer = (fraction | signed_integer + Optional(Optional('-').suppress() + fraction)).setName("fraction or mixed integer-fraction") - """mixed integer of the form 'integer - fraction', with optional leading integer, returns float""" - mixed_integer.addParseAction(sum) - - real = Regex(r'[+-]?\d+\.\d*').setName("real number").setParseAction(convertToFloat) - """expression that parses a floating point number and returns a float""" - - sci_real = Regex(r'[+-]?\d+([eE][+-]?\d+|\.\d*([eE][+-]?\d+)?)').setName("real number with scientific notation").setParseAction(convertToFloat) - """expression that parses a floating point number with optional - scientific notation and returns a float""" - - # streamlining this expression makes the docs nicer-looking - number = (sci_real | real | signed_integer).streamline() - """any numeric expression, returns the corresponding Python type""" - - fnumber = Regex(r'[+-]?\d+\.?\d*([eE][+-]?\d+)?').setName("fnumber").setParseAction(convertToFloat) - """any int or real number, returned as float""" - - identifier = Word(alphas+'_', alphanums+'_').setName("identifier") - """typical code identifier (leading alpha or '_', followed by 0 or more alphas, nums, or '_')""" - - ipv4_address = Regex(r'(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})){3}').setName("IPv4 address") - "IPv4 address (``0.0.0.0 - 255.255.255.255``)" - - _ipv6_part = Regex(r'[0-9a-fA-F]{1,4}').setName("hex_integer") - _full_ipv6_address = (_ipv6_part + (':' + _ipv6_part)*7).setName("full IPv6 address") - _short_ipv6_address = (Optional(_ipv6_part + (':' + _ipv6_part)*(0,6)) + "::" + Optional(_ipv6_part + (':' + _ipv6_part)*(0,6))).setName("short IPv6 address") - _short_ipv6_address.addCondition(lambda t: sum(1 for tt in t if pyparsing_common._ipv6_part.matches(tt)) < 8) - _mixed_ipv6_address = ("::ffff:" + ipv4_address).setName("mixed IPv6 address") - ipv6_address = Combine((_full_ipv6_address | _mixed_ipv6_address | _short_ipv6_address).setName("IPv6 address")).setName("IPv6 address") - "IPv6 address (long, short, or mixed form)" - - mac_address = Regex(r'[0-9a-fA-F]{2}([:.-])[0-9a-fA-F]{2}(?:\1[0-9a-fA-F]{2}){4}').setName("MAC address") - "MAC address xx:xx:xx:xx:xx (may also have '-' or '.' delimiters)" - - @staticmethod - def convertToDate(fmt="%Y-%m-%d"): - """ - Helper to create a parse action for converting parsed date string to Python datetime.date - - Params - - - fmt - format to be passed to datetime.strptime (default= ``"%Y-%m-%d"``) - - Example:: - - date_expr = pyparsing_common.iso8601_date.copy() - date_expr.setParseAction(pyparsing_common.convertToDate()) - print(date_expr.parseString("1999-12-31")) - - prints:: - - [datetime.date(1999, 12, 31)] - """ - def cvt_fn(s,l,t): - try: - return datetime.strptime(t[0], fmt).date() - except ValueError as ve: - raise ParseException(s, l, str(ve)) - return cvt_fn - - @staticmethod - def convertToDatetime(fmt="%Y-%m-%dT%H:%M:%S.%f"): - """Helper to create a parse action for converting parsed - datetime string to Python datetime.datetime - - Params - - - fmt - format to be passed to datetime.strptime (default= ``"%Y-%m-%dT%H:%M:%S.%f"``) - - Example:: - - dt_expr = pyparsing_common.iso8601_datetime.copy() - dt_expr.setParseAction(pyparsing_common.convertToDatetime()) - print(dt_expr.parseString("1999-12-31T23:59:59.999")) - - prints:: - - [datetime.datetime(1999, 12, 31, 23, 59, 59, 999000)] - """ - def cvt_fn(s,l,t): - try: - return datetime.strptime(t[0], fmt) - except ValueError as ve: - raise ParseException(s, l, str(ve)) - return cvt_fn - - iso8601_date = Regex(r'(?P<year>\d{4})(?:-(?P<month>\d\d)(?:-(?P<day>\d\d))?)?').setName("ISO8601 date") - "ISO8601 date (``yyyy-mm-dd``)" - - iso8601_datetime = Regex(r'(?P<year>\d{4})-(?P<month>\d\d)-(?P<day>\d\d)[T ](?P<hour>\d\d):(?P<minute>\d\d)(:(?P<second>\d\d(\.\d*)?)?)?(?P<tz>Z|[+-]\d\d:?\d\d)?').setName("ISO8601 datetime") - "ISO8601 datetime (``yyyy-mm-ddThh:mm:ss.s(Z|+-00:00)``) - trailing seconds, milliseconds, and timezone optional; accepts separating ``'T'`` or ``' '``" - - uuid = Regex(r'[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}').setName("UUID") - "UUID (``xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx``)" - - _html_stripper = anyOpenTag.suppress() | anyCloseTag.suppress() - @staticmethod - def stripHTMLTags(s, l, tokens): - """Parse action to remove HTML tags from web page HTML source - - Example:: - - # strip HTML links from normal text - text = '<td>More info at the <a href="https://github.com/pyparsing/pyparsing/wiki">pyparsing</a> wiki page</td>' - td,td_end = makeHTMLTags("TD") - table_text = td + SkipTo(td_end).setParseAction(pyparsing_common.stripHTMLTags)("body") + td_end - print(table_text.parseString(text).body) - - Prints:: - - More info at the pyparsing wiki page - """ - return pyparsing_common._html_stripper.transformString(tokens[0]) - - _commasepitem = Combine(OneOrMore(~Literal(",") + ~LineEnd() + Word(printables, excludeChars=',') - + Optional( White(" \t") ) ) ).streamline().setName("commaItem") - comma_separated_list = delimitedList( Optional( quotedString.copy() | _commasepitem, default="") ).setName("comma separated list") - """Predefined expression of 1 or more printable words or quoted strings, separated by commas.""" - - upcaseTokens = staticmethod(tokenMap(lambda t: _ustr(t).upper())) - """Parse action to convert tokens to upper case.""" - - downcaseTokens = staticmethod(tokenMap(lambda t: _ustr(t).lower())) - """Parse action to convert tokens to lower case.""" - - -class _lazyclassproperty(object): - def __init__(self, fn): - self.fn = fn - self.__doc__ = fn.__doc__ - self.__name__ = fn.__name__ - - def __get__(self, obj, cls): - if cls is None: - cls = type(obj) - if not hasattr(cls, '_intern') or any(cls._intern is getattr(superclass, '_intern', []) for superclass in cls.__mro__[1:]): - cls._intern = {} - attrname = self.fn.__name__ - if attrname not in cls._intern: - cls._intern[attrname] = self.fn(cls) - return cls._intern[attrname] - - -class unicode_set(object): - """ - A set of Unicode characters, for language-specific strings for - ``alphas``, ``nums``, ``alphanums``, and ``printables``. - A unicode_set is defined by a list of ranges in the Unicode character - set, in a class attribute ``_ranges``, such as:: - - _ranges = [(0x0020, 0x007e), (0x00a0, 0x00ff),] - - A unicode set can also be defined using multiple inheritance of other unicode sets:: - - class CJK(Chinese, Japanese, Korean): - pass - """ - _ranges = [] - - @classmethod - def _get_chars_for_ranges(cls): - ret = [] - for cc in cls.__mro__: - if cc is unicode_set: - break - for rr in cc._ranges: - ret.extend(range(rr[0], rr[-1]+1)) - return [unichr(c) for c in sorted(set(ret))] - - @_lazyclassproperty - def printables(cls): - "all non-whitespace characters in this range" - return u''.join(filterfalse(unicode.isspace, cls._get_chars_for_ranges())) - - @_lazyclassproperty - def alphas(cls): - "all alphabetic characters in this range" - return u''.join(filter(unicode.isalpha, cls._get_chars_for_ranges())) - - @_lazyclassproperty - def nums(cls): - "all numeric digit characters in this range" - return u''.join(filter(unicode.isdigit, cls._get_chars_for_ranges())) - - @_lazyclassproperty - def alphanums(cls): - "all alphanumeric characters in this range" - return cls.alphas + cls.nums - - -class pyparsing_unicode(unicode_set): - """ - A namespace class for defining common language unicode_sets. - """ - _ranges = [(32, sys.maxunicode)] - - class Latin1(unicode_set): - "Unicode set for Latin-1 Unicode Character Range" - _ranges = [(0x0020, 0x007e), (0x00a0, 0x00ff),] - - class LatinA(unicode_set): - "Unicode set for Latin-A Unicode Character Range" - _ranges = [(0x0100, 0x017f),] - - class LatinB(unicode_set): - "Unicode set for Latin-B Unicode Character Range" - _ranges = [(0x0180, 0x024f),] - - class Greek(unicode_set): - "Unicode set for Greek Unicode Character Ranges" - _ranges = [ - (0x0370, 0x03ff), (0x1f00, 0x1f15), (0x1f18, 0x1f1d), (0x1f20, 0x1f45), (0x1f48, 0x1f4d), - (0x1f50, 0x1f57), (0x1f59,), (0x1f5b,), (0x1f5d,), (0x1f5f, 0x1f7d), (0x1f80, 0x1fb4), (0x1fb6, 0x1fc4), - (0x1fc6, 0x1fd3), (0x1fd6, 0x1fdb), (0x1fdd, 0x1fef), (0x1ff2, 0x1ff4), (0x1ff6, 0x1ffe), - ] - - class Cyrillic(unicode_set): - "Unicode set for Cyrillic Unicode Character Range" - _ranges = [(0x0400, 0x04ff)] - - class Chinese(unicode_set): - "Unicode set for Chinese Unicode Character Range" - _ranges = [(0x4e00, 0x9fff), (0x3000, 0x303f), ] - - class Japanese(unicode_set): - "Unicode set for Japanese Unicode Character Range, combining Kanji, Hiragana, and Katakana ranges" - _ranges = [ ] - - class Kanji(unicode_set): - "Unicode set for Kanji Unicode Character Range" - _ranges = [(0x4E00, 0x9Fbf), (0x3000, 0x303f), ] - - class Hiragana(unicode_set): - "Unicode set for Hiragana Unicode Character Range" - _ranges = [(0x3040, 0x309f), ] - - class Katakana(unicode_set): - "Unicode set for Katakana Unicode Character Range" - _ranges = [(0x30a0, 0x30ff), ] - - class Korean(unicode_set): - "Unicode set for Korean Unicode Character Range" - _ranges = [(0xac00, 0xd7af), (0x1100, 0x11ff), (0x3130, 0x318f), (0xa960, 0xa97f), (0xd7b0, 0xd7ff), (0x3000, 0x303f), ] - - class CJK(Chinese, Japanese, Korean): - "Unicode set for combined Chinese, Japanese, and Korean (CJK) Unicode Character Range" - pass - - class Thai(unicode_set): - "Unicode set for Thai Unicode Character Range" - _ranges = [(0x0e01, 0x0e3a), (0x0e3f, 0x0e5b), ] - - class Arabic(unicode_set): - "Unicode set for Arabic Unicode Character Range" - _ranges = [(0x0600, 0x061b), (0x061e, 0x06ff), (0x0700, 0x077f), ] - - class Hebrew(unicode_set): - "Unicode set for Hebrew Unicode Character Range" - _ranges = [(0x0590, 0x05ff), ] - - class Devanagari(unicode_set): - "Unicode set for Devanagari Unicode Character Range" - _ranges = [(0x0900, 0x097f), (0xa8e0, 0xa8ff)] - -pyparsing_unicode.Japanese._ranges = (pyparsing_unicode.Japanese.Kanji._ranges - + pyparsing_unicode.Japanese.Hiragana._ranges - + pyparsing_unicode.Japanese.Katakana._ranges) - -# define ranges in language character sets -if PY_3: - setattr(pyparsing_unicode, "العربية", pyparsing_unicode.Arabic) - setattr(pyparsing_unicode, "中文", pyparsing_unicode.Chinese) - setattr(pyparsing_unicode, "кириллица", pyparsing_unicode.Cyrillic) - setattr(pyparsing_unicode, "Ελληνικά", pyparsing_unicode.Greek) - setattr(pyparsing_unicode, "עִברִית", pyparsing_unicode.Hebrew) - setattr(pyparsing_unicode, "日本語", pyparsing_unicode.Japanese) - setattr(pyparsing_unicode.Japanese, "漢字", pyparsing_unicode.Japanese.Kanji) - setattr(pyparsing_unicode.Japanese, "カタカナ", pyparsing_unicode.Japanese.Katakana) - setattr(pyparsing_unicode.Japanese, "ひらがな", pyparsing_unicode.Japanese.Hiragana) - setattr(pyparsing_unicode, "한국어", pyparsing_unicode.Korean) - setattr(pyparsing_unicode, "ไทย", pyparsing_unicode.Thai) - setattr(pyparsing_unicode, "देवनागरी", pyparsing_unicode.Devanagari) - - -if __name__ == "__main__": - - selectToken = CaselessLiteral("select") - fromToken = CaselessLiteral("from") - - ident = Word(alphas, alphanums + "_$") - - columnName = delimitedList(ident, ".", combine=True).setParseAction(upcaseTokens) - columnNameList = Group(delimitedList(columnName)).setName("columns") - columnSpec = ('*' | columnNameList) - - tableName = delimitedList(ident, ".", combine=True).setParseAction(upcaseTokens) - tableNameList = Group(delimitedList(tableName)).setName("tables") - - simpleSQL = selectToken("command") + columnSpec("columns") + fromToken + tableNameList("tables") - - # demo runTests method, including embedded comments in test string - simpleSQL.runTests(""" - # '*' as column list and dotted table name - select * from SYS.XYZZY - - # caseless match on "SELECT", and casts back to "select" - SELECT * from XYZZY, ABC - - # list of column names, and mixed case SELECT keyword - Select AA,BB,CC from Sys.dual - - # multiple tables - Select A, B, C from Sys.dual, Table2 - - # invalid SELECT keyword - should fail - Xelect A, B, C from Sys.dual - - # incomplete command - should fail - Select - - # invalid column name - should fail - Select ^^^ frox Sys.dual - - """) - - pyparsing_common.number.runTests(""" - 100 - -100 - +100 - 3.14159 - 6.02e23 - 1e-12 - """) - - # any int or real number, returned as float - pyparsing_common.fnumber.runTests(""" - 100 - -100 - +100 - 3.14159 - 6.02e23 - 1e-12 - """) - - pyparsing_common.hex_integer.runTests(""" - 100 - FF - """) - - import uuid - pyparsing_common.uuid.setParseAction(tokenMap(uuid.UUID)) - pyparsing_common.uuid.runTests(""" - 12345678-1234-5678-1234-567812345678 - """) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/__init__.py deleted file mode 100644 index 8ed060f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .core import TomlError -from .parser import load, loads -from .test import translate_to_test -from .writer import dump, dumps \ No newline at end of file diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/core.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/core.py deleted file mode 100644 index c182734..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/core.py +++ /dev/null @@ -1,13 +0,0 @@ -class TomlError(RuntimeError): - def __init__(self, message, line, col, filename): - RuntimeError.__init__(self, message, line, col, filename) - self.message = message - self.line = line - self.col = col - self.filename = filename - - def __str__(self): - return '{}({}, {}): {}'.format(self.filename, self.line, self.col, self.message) - - def __repr__(self): - return 'TomlError({!r}, {!r}, {!r}, {!r})'.format(self.message, self.line, self.col, self.filename) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/parser.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/parser.py deleted file mode 100644 index 3493aa6..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/parser.py +++ /dev/null @@ -1,341 +0,0 @@ -import string, re, sys, datetime -from .core import TomlError -from .utils import rfc3339_re, parse_rfc3339_re - -if sys.version_info[0] == 2: - _chr = unichr -else: - _chr = chr - -def load(fin, translate=lambda t, x, v: v, object_pairs_hook=dict): - return loads(fin.read(), translate=translate, object_pairs_hook=object_pairs_hook, filename=getattr(fin, 'name', repr(fin))) - -def loads(s, filename='<string>', translate=lambda t, x, v: v, object_pairs_hook=dict): - if isinstance(s, bytes): - s = s.decode('utf-8') - - s = s.replace('\r\n', '\n') - - root = object_pairs_hook() - tables = object_pairs_hook() - scope = root - - src = _Source(s, filename=filename) - ast = _p_toml(src, object_pairs_hook=object_pairs_hook) - - def error(msg): - raise TomlError(msg, pos[0], pos[1], filename) - - def process_value(v, object_pairs_hook): - kind, text, value, pos = v - if kind == 'str' and value.startswith('\n'): - value = value[1:] - if kind == 'array': - if value and any(k != value[0][0] for k, t, v, p in value[1:]): - error('array-type-mismatch') - value = [process_value(item, object_pairs_hook=object_pairs_hook) for item in value] - elif kind == 'table': - value = object_pairs_hook([(k, process_value(value[k], object_pairs_hook=object_pairs_hook)) for k in value]) - return translate(kind, text, value) - - for kind, value, pos in ast: - if kind == 'kv': - k, v = value - if k in scope: - error('duplicate_keys. Key "{0}" was used more than once.'.format(k)) - scope[k] = process_value(v, object_pairs_hook=object_pairs_hook) - else: - is_table_array = (kind == 'table_array') - cur = tables - for name in value[:-1]: - if isinstance(cur.get(name), list): - d, cur = cur[name][-1] - else: - d, cur = cur.setdefault(name, (None, object_pairs_hook())) - - scope = object_pairs_hook() - name = value[-1] - if name not in cur: - if is_table_array: - cur[name] = [(scope, object_pairs_hook())] - else: - cur[name] = (scope, object_pairs_hook()) - elif isinstance(cur[name], list): - if not is_table_array: - error('table_type_mismatch') - cur[name].append((scope, object_pairs_hook())) - else: - if is_table_array: - error('table_type_mismatch') - old_scope, next_table = cur[name] - if old_scope is not None: - error('duplicate_tables') - cur[name] = (scope, next_table) - - def merge_tables(scope, tables): - if scope is None: - scope = object_pairs_hook() - for k in tables: - if k in scope: - error('key_table_conflict') - v = tables[k] - if isinstance(v, list): - scope[k] = [merge_tables(sc, tbl) for sc, tbl in v] - else: - scope[k] = merge_tables(v[0], v[1]) - return scope - - return merge_tables(root, tables) - -class _Source: - def __init__(self, s, filename=None): - self.s = s - self._pos = (1, 1) - self._last = None - self._filename = filename - self.backtrack_stack = [] - - def last(self): - return self._last - - def pos(self): - return self._pos - - def fail(self): - return self._expect(None) - - def consume_dot(self): - if self.s: - self._last = self.s[0] - self.s = self[1:] - self._advance(self._last) - return self._last - return None - - def expect_dot(self): - return self._expect(self.consume_dot()) - - def consume_eof(self): - if not self.s: - self._last = '' - return True - return False - - def expect_eof(self): - return self._expect(self.consume_eof()) - - def consume(self, s): - if self.s.startswith(s): - self.s = self.s[len(s):] - self._last = s - self._advance(s) - return True - return False - - def expect(self, s): - return self._expect(self.consume(s)) - - def consume_re(self, re): - m = re.match(self.s) - if m: - self.s = self.s[len(m.group(0)):] - self._last = m - self._advance(m.group(0)) - return m - return None - - def expect_re(self, re): - return self._expect(self.consume_re(re)) - - def __enter__(self): - self.backtrack_stack.append((self.s, self._pos)) - - def __exit__(self, type, value, traceback): - if type is None: - self.backtrack_stack.pop() - else: - self.s, self._pos = self.backtrack_stack.pop() - return type == TomlError - - def commit(self): - self.backtrack_stack[-1] = (self.s, self._pos) - - def _expect(self, r): - if not r: - raise TomlError('msg', self._pos[0], self._pos[1], self._filename) - return r - - def _advance(self, s): - suffix_pos = s.rfind('\n') - if suffix_pos == -1: - self._pos = (self._pos[0], self._pos[1] + len(s)) - else: - self._pos = (self._pos[0] + s.count('\n'), len(s) - suffix_pos) - -_ews_re = re.compile(r'(?:[ \t]|#[^\n]*\n|#[^\n]*\Z|\n)*') -def _p_ews(s): - s.expect_re(_ews_re) - -_ws_re = re.compile(r'[ \t]*') -def _p_ws(s): - s.expect_re(_ws_re) - -_escapes = { 'b': '\b', 'n': '\n', 'r': '\r', 't': '\t', '"': '"', - '\\': '\\', 'f': '\f' } - -_basicstr_re = re.compile(r'[^"\\\000-\037]*') -_short_uni_re = re.compile(r'u([0-9a-fA-F]{4})') -_long_uni_re = re.compile(r'U([0-9a-fA-F]{8})') -_escapes_re = re.compile(r'[btnfr\"\\]') -_newline_esc_re = re.compile('\n[ \t\n]*') -def _p_basicstr_content(s, content=_basicstr_re): - res = [] - while True: - res.append(s.expect_re(content).group(0)) - if not s.consume('\\'): - break - if s.consume_re(_newline_esc_re): - pass - elif s.consume_re(_short_uni_re) or s.consume_re(_long_uni_re): - v = int(s.last().group(1), 16) - if 0xd800 <= v < 0xe000: - s.fail() - res.append(_chr(v)) - else: - s.expect_re(_escapes_re) - res.append(_escapes[s.last().group(0)]) - return ''.join(res) - -_key_re = re.compile(r'[0-9a-zA-Z-_]+') -def _p_key(s): - with s: - s.expect('"') - r = _p_basicstr_content(s, _basicstr_re) - s.expect('"') - return r - if s.consume('\''): - if s.consume('\'\''): - r = s.expect_re(_litstr_ml_re).group(0) - s.expect('\'\'\'') - else: - r = s.expect_re(_litstr_re).group(0) - s.expect('\'') - return r - return s.expect_re(_key_re).group(0) - -_float_re = re.compile(r'[+-]?(?:0|[1-9](?:_?\d)*)(?:\.\d(?:_?\d)*)?(?:[eE][+-]?(?:\d(?:_?\d)*))?') - -_basicstr_ml_re = re.compile(r'(?:""?(?!")|[^"\\\000-\011\013-\037])*') -_litstr_re = re.compile(r"[^'\000\010\012-\037]*") -_litstr_ml_re = re.compile(r"(?:(?:|'|'')(?:[^'\000-\010\013-\037]))*") -def _p_value(s, object_pairs_hook): - pos = s.pos() - - if s.consume('true'): - return 'bool', s.last(), True, pos - if s.consume('false'): - return 'bool', s.last(), False, pos - - if s.consume('"'): - if s.consume('""'): - r = _p_basicstr_content(s, _basicstr_ml_re) - s.expect('"""') - else: - r = _p_basicstr_content(s, _basicstr_re) - s.expect('"') - return 'str', r, r, pos - - if s.consume('\''): - if s.consume('\'\''): - r = s.expect_re(_litstr_ml_re).group(0) - s.expect('\'\'\'') - else: - r = s.expect_re(_litstr_re).group(0) - s.expect('\'') - return 'str', r, r, pos - - if s.consume_re(rfc3339_re): - m = s.last() - return 'datetime', m.group(0), parse_rfc3339_re(m), pos - - if s.consume_re(_float_re): - m = s.last().group(0) - r = m.replace('_','') - if '.' in m or 'e' in m or 'E' in m: - return 'float', m, float(r), pos - else: - return 'int', m, int(r, 10), pos - - if s.consume('['): - items = [] - with s: - while True: - _p_ews(s) - items.append(_p_value(s, object_pairs_hook=object_pairs_hook)) - s.commit() - _p_ews(s) - s.expect(',') - s.commit() - _p_ews(s) - s.expect(']') - return 'array', None, items, pos - - if s.consume('{'): - _p_ws(s) - items = object_pairs_hook() - if not s.consume('}'): - k = _p_key(s) - _p_ws(s) - s.expect('=') - _p_ws(s) - items[k] = _p_value(s, object_pairs_hook=object_pairs_hook) - _p_ws(s) - while s.consume(','): - _p_ws(s) - k = _p_key(s) - _p_ws(s) - s.expect('=') - _p_ws(s) - items[k] = _p_value(s, object_pairs_hook=object_pairs_hook) - _p_ws(s) - s.expect('}') - return 'table', None, items, pos - - s.fail() - -def _p_stmt(s, object_pairs_hook): - pos = s.pos() - if s.consume( '['): - is_array = s.consume('[') - _p_ws(s) - keys = [_p_key(s)] - _p_ws(s) - while s.consume('.'): - _p_ws(s) - keys.append(_p_key(s)) - _p_ws(s) - s.expect(']') - if is_array: - s.expect(']') - return 'table_array' if is_array else 'table', keys, pos - - key = _p_key(s) - _p_ws(s) - s.expect('=') - _p_ws(s) - value = _p_value(s, object_pairs_hook=object_pairs_hook) - return 'kv', (key, value), pos - -_stmtsep_re = re.compile(r'(?:[ \t]*(?:#[^\n]*)?\n)+[ \t]*') -def _p_toml(s, object_pairs_hook): - stmts = [] - _p_ews(s) - with s: - stmts.append(_p_stmt(s, object_pairs_hook=object_pairs_hook)) - while True: - s.commit() - s.expect_re(_stmtsep_re) - stmts.append(_p_stmt(s, object_pairs_hook=object_pairs_hook)) - _p_ews(s) - s.expect_eof() - return stmts diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/test.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/test.py deleted file mode 100644 index ec8abfc..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/test.py +++ /dev/null @@ -1,30 +0,0 @@ -import datetime -from .utils import format_rfc3339 - -try: - _string_types = (str, unicode) - _int_types = (int, long) -except NameError: - _string_types = str - _int_types = int - -def translate_to_test(v): - if isinstance(v, dict): - return { k: translate_to_test(v) for k, v in v.items() } - if isinstance(v, list): - a = [translate_to_test(x) for x in v] - if v and isinstance(v[0], dict): - return a - else: - return {'type': 'array', 'value': a} - if isinstance(v, datetime.datetime): - return {'type': 'datetime', 'value': format_rfc3339(v)} - if isinstance(v, bool): - return {'type': 'bool', 'value': 'true' if v else 'false'} - if isinstance(v, _int_types): - return {'type': 'integer', 'value': str(v)} - if isinstance(v, float): - return {'type': 'float', 'value': '{:.17}'.format(v)} - if isinstance(v, _string_types): - return {'type': 'string', 'value': v} - raise RuntimeError('unexpected value: {!r}'.format(v)) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/utils.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/utils.py deleted file mode 100644 index 636a680..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/utils.py +++ /dev/null @@ -1,67 +0,0 @@ -import datetime -import re - -rfc3339_re = re.compile(r'(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?(?:Z|([+-]\d{2}):(\d{2}))') - -def parse_rfc3339(v): - m = rfc3339_re.match(v) - if not m or m.group(0) != v: - return None - return parse_rfc3339_re(m) - -def parse_rfc3339_re(m): - r = map(int, m.groups()[:6]) - if m.group(7): - micro = float(m.group(7)) - else: - micro = 0 - - if m.group(8): - g = int(m.group(8), 10) * 60 + int(m.group(9), 10) - tz = _TimeZone(datetime.timedelta(0, g * 60)) - else: - tz = _TimeZone(datetime.timedelta(0, 0)) - - y, m, d, H, M, S = r - return datetime.datetime(y, m, d, H, M, S, int(micro * 1000000), tz) - - -def format_rfc3339(v): - offs = v.utcoffset() - offs = int(offs.total_seconds()) // 60 if offs is not None else 0 - - if offs == 0: - suffix = 'Z' - else: - if offs > 0: - suffix = '+' - else: - suffix = '-' - offs = -offs - suffix = '{0}{1:02}:{2:02}'.format(suffix, offs // 60, offs % 60) - - if v.microsecond: - return v.strftime('%Y-%m-%dT%H:%M:%S.%f') + suffix - else: - return v.strftime('%Y-%m-%dT%H:%M:%S') + suffix - -class _TimeZone(datetime.tzinfo): - def __init__(self, offset): - self._offset = offset - - def utcoffset(self, dt): - return self._offset - - def dst(self, dt): - return None - - def tzname(self, dt): - m = self._offset.total_seconds() // 60 - if m < 0: - res = '-' - m = -m - else: - res = '+' - h = m // 60 - m = m - h * 60 - return '{}{:.02}{:.02}'.format(res, h, m) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/writer.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/writer.py deleted file mode 100644 index 73b5089..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/writer.py +++ /dev/null @@ -1,106 +0,0 @@ -from __future__ import unicode_literals -import io, datetime, math, string, sys - -from .utils import format_rfc3339 - -if sys.version_info[0] == 3: - long = int - unicode = str - - -def dumps(obj, sort_keys=False): - fout = io.StringIO() - dump(obj, fout, sort_keys=sort_keys) - return fout.getvalue() - - -_escapes = {'\n': 'n', '\r': 'r', '\\': '\\', '\t': 't', '\b': 'b', '\f': 'f', '"': '"'} - - -def _escape_string(s): - res = [] - start = 0 - - def flush(): - if start != i: - res.append(s[start:i]) - return i + 1 - - i = 0 - while i < len(s): - c = s[i] - if c in '"\\\n\r\t\b\f': - start = flush() - res.append('\\' + _escapes[c]) - elif ord(c) < 0x20: - start = flush() - res.append('\\u%04x' % ord(c)) - i += 1 - - flush() - return '"' + ''.join(res) + '"' - - -_key_chars = string.digits + string.ascii_letters + '-_' -def _escape_id(s): - if any(c not in _key_chars for c in s): - return _escape_string(s) - return s - - -def _format_value(v): - if isinstance(v, bool): - return 'true' if v else 'false' - if isinstance(v, int) or isinstance(v, long): - return unicode(v) - if isinstance(v, float): - if math.isnan(v) or math.isinf(v): - raise ValueError("{0} is not a valid TOML value".format(v)) - else: - return repr(v) - elif isinstance(v, unicode) or isinstance(v, bytes): - return _escape_string(v) - elif isinstance(v, datetime.datetime): - return format_rfc3339(v) - elif isinstance(v, list): - return '[{0}]'.format(', '.join(_format_value(obj) for obj in v)) - elif isinstance(v, dict): - return '{{{0}}}'.format(', '.join('{} = {}'.format(_escape_id(k), _format_value(obj)) for k, obj in v.items())) - else: - raise RuntimeError(v) - - -def dump(obj, fout, sort_keys=False): - tables = [((), obj, False)] - - while tables: - name, table, is_array = tables.pop() - if name: - section_name = '.'.join(_escape_id(c) for c in name) - if is_array: - fout.write('[[{0}]]\n'.format(section_name)) - else: - fout.write('[{0}]\n'.format(section_name)) - - table_keys = sorted(table.keys()) if sort_keys else table.keys() - new_tables = [] - has_kv = False - for k in table_keys: - v = table[k] - if isinstance(v, dict): - new_tables.append((name + (k,), v, False)) - elif isinstance(v, list) and v and all(isinstance(o, dict) for o in v): - new_tables.extend((name + (k,), d, True) for d in v) - elif v is None: - # based on mojombo's comment: https://github.com/toml-lang/toml/issues/146#issuecomment-25019344 - fout.write( - '#{} = null # To use: uncomment and replace null with value\n'.format(_escape_id(k))) - has_kv = True - else: - fout.write('{0} = {1}\n'.format(_escape_id(k), _format_value(v))) - has_kv = True - - tables.extend(reversed(new_tables)) - - if (name or has_kv) and tables: - fout.write('\n') diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__init__.py deleted file mode 100644 index 80c4ce1..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__init__.py +++ /dev/null @@ -1,133 +0,0 @@ -# -*- coding: utf-8 -*- - -# __ -# /__) _ _ _ _ _/ _ -# / ( (- (/ (/ (- _) / _) -# / - -""" -Requests HTTP Library -~~~~~~~~~~~~~~~~~~~~~ - -Requests is an HTTP library, written in Python, for human beings. Basic GET -usage: - - >>> import requests - >>> r = requests.get('https://www.python.org') - >>> r.status_code - 200 - >>> 'Python is a programming language' in r.content - True - -... or POST: - - >>> payload = dict(key1='value1', key2='value2') - >>> r = requests.post('https://httpbin.org/post', data=payload) - >>> print(r.text) - { - ... - "form": { - "key2": "value2", - "key1": "value1" - }, - ... - } - -The other HTTP methods are supported - see `requests.api`. Full documentation -is at <http://python-requests.org>. - -:copyright: (c) 2017 by Kenneth Reitz. -:license: Apache 2.0, see LICENSE for more details. -""" - -from pip._vendor import urllib3 -from pip._vendor import chardet -import warnings -from .exceptions import RequestsDependencyWarning - - -def check_compatibility(urllib3_version, chardet_version): - urllib3_version = urllib3_version.split('.') - assert urllib3_version != ['dev'] # Verify urllib3 isn't installed from git. - - # Sometimes, urllib3 only reports its version as 16.1. - if len(urllib3_version) == 2: - urllib3_version.append('0') - - # Check urllib3 for compatibility. - major, minor, patch = urllib3_version # noqa: F811 - major, minor, patch = int(major), int(minor), int(patch) - # urllib3 >= 1.21.1, <= 1.24 - assert major == 1 - assert minor >= 21 - assert minor <= 24 - - # Check chardet for compatibility. - major, minor, patch = chardet_version.split('.')[:3] - major, minor, patch = int(major), int(minor), int(patch) - # chardet >= 3.0.2, < 3.1.0 - assert major == 3 - assert minor < 1 - assert patch >= 2 - - -def _check_cryptography(cryptography_version): - # cryptography < 1.3.4 - try: - cryptography_version = list(map(int, cryptography_version.split('.'))) - except ValueError: - return - - if cryptography_version < [1, 3, 4]: - warning = 'Old version of cryptography ({}) may cause slowdown.'.format(cryptography_version) - warnings.warn(warning, RequestsDependencyWarning) - -# Check imported dependencies for compatibility. -try: - check_compatibility(urllib3.__version__, chardet.__version__) -except (AssertionError, ValueError): - warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported " - "version!".format(urllib3.__version__, chardet.__version__), - RequestsDependencyWarning) - -# Attempt to enable urllib3's SNI support, if possible -from pip._internal.utils.compat import WINDOWS -if not WINDOWS: - try: - from pip._vendor.urllib3.contrib import pyopenssl - pyopenssl.inject_into_urllib3() - - # Check cryptography version - from cryptography import __version__ as cryptography_version - _check_cryptography(cryptography_version) - except ImportError: - pass - -# urllib3's DependencyWarnings should be silenced. -from pip._vendor.urllib3.exceptions import DependencyWarning -warnings.simplefilter('ignore', DependencyWarning) - -from .__version__ import __title__, __description__, __url__, __version__ -from .__version__ import __build__, __author__, __author_email__, __license__ -from .__version__ import __copyright__, __cake__ - -from . import utils -from . import packages -from .models import Request, Response, PreparedRequest -from .api import request, get, head, post, patch, put, delete, options -from .sessions import session, Session -from .status_codes import codes -from .exceptions import ( - RequestException, Timeout, URLRequired, - TooManyRedirects, HTTPError, ConnectionError, - FileModeWarning, ConnectTimeout, ReadTimeout -) - -# Set default logging handler to avoid "No handler found" warnings. -import logging -from logging import NullHandler - -logging.getLogger(__name__).addHandler(NullHandler()) - -# FileModeWarnings go off per the default. -warnings.simplefilter('default', FileModeWarning, append=True) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__version__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__version__.py deleted file mode 100644 index f5b5d03..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__version__.py +++ /dev/null @@ -1,14 +0,0 @@ -# .-. .-. .-. . . .-. .-. .-. .-. -# |( |- |.| | | |- `-. | `-. -# ' ' `-' `-`.`-' `-' `-' ' `-' - -__title__ = 'requests' -__description__ = 'Python HTTP for Humans.' -__url__ = 'http://python-requests.org' -__version__ = '2.21.0' -__build__ = 0x022100 -__author__ = 'Kenneth Reitz' -__author_email__ = 'me@kennethreitz.org' -__license__ = 'Apache 2.0' -__copyright__ = 'Copyright 2018 Kenneth Reitz' -__cake__ = u'\u2728 \U0001f370 \u2728' diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/_internal_utils.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/_internal_utils.py deleted file mode 100644 index 759d9a5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/_internal_utils.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests._internal_utils -~~~~~~~~~~~~~~ - -Provides utility functions that are consumed internally by Requests -which depend on extremely few external helpers (such as compat) -""" - -from .compat import is_py2, builtin_str, str - - -def to_native_string(string, encoding='ascii'): - """Given a string object, regardless of type, returns a representation of - that string in the native string type, encoding and decoding where - necessary. This assumes ASCII unless told otherwise. - """ - if isinstance(string, builtin_str): - out = string - else: - if is_py2: - out = string.encode(encoding) - else: - out = string.decode(encoding) - - return out - - -def unicode_is_ascii(u_string): - """Determine if unicode string only contains ASCII characters. - - :param str u_string: unicode string to check. Must be unicode - and not Python 2 `str`. - :rtype: bool - """ - assert isinstance(u_string, str) - try: - u_string.encode('ascii') - return True - except UnicodeEncodeError: - return False diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/adapters.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/adapters.py deleted file mode 100644 index c30e7c9..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/adapters.py +++ /dev/null @@ -1,533 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.adapters -~~~~~~~~~~~~~~~~~ - -This module contains the transport adapters that Requests uses to define -and maintain connections. -""" - -import os.path -import socket - -from pip._vendor.urllib3.poolmanager import PoolManager, proxy_from_url -from pip._vendor.urllib3.response import HTTPResponse -from pip._vendor.urllib3.util import parse_url -from pip._vendor.urllib3.util import Timeout as TimeoutSauce -from pip._vendor.urllib3.util.retry import Retry -from pip._vendor.urllib3.exceptions import ClosedPoolError -from pip._vendor.urllib3.exceptions import ConnectTimeoutError -from pip._vendor.urllib3.exceptions import HTTPError as _HTTPError -from pip._vendor.urllib3.exceptions import MaxRetryError -from pip._vendor.urllib3.exceptions import NewConnectionError -from pip._vendor.urllib3.exceptions import ProxyError as _ProxyError -from pip._vendor.urllib3.exceptions import ProtocolError -from pip._vendor.urllib3.exceptions import ReadTimeoutError -from pip._vendor.urllib3.exceptions import SSLError as _SSLError -from pip._vendor.urllib3.exceptions import ResponseError -from pip._vendor.urllib3.exceptions import LocationValueError - -from .models import Response -from .compat import urlparse, basestring -from .utils import (DEFAULT_CA_BUNDLE_PATH, extract_zipped_paths, - get_encoding_from_headers, prepend_scheme_if_needed, - get_auth_from_url, urldefragauth, select_proxy) -from .structures import CaseInsensitiveDict -from .cookies import extract_cookies_to_jar -from .exceptions import (ConnectionError, ConnectTimeout, ReadTimeout, SSLError, - ProxyError, RetryError, InvalidSchema, InvalidProxyURL, - InvalidURL) -from .auth import _basic_auth_str - -try: - from pip._vendor.urllib3.contrib.socks import SOCKSProxyManager -except ImportError: - def SOCKSProxyManager(*args, **kwargs): - raise InvalidSchema("Missing dependencies for SOCKS support.") - -DEFAULT_POOLBLOCK = False -DEFAULT_POOLSIZE = 10 -DEFAULT_RETRIES = 0 -DEFAULT_POOL_TIMEOUT = None - - -class BaseAdapter(object): - """The Base Transport Adapter""" - - def __init__(self): - super(BaseAdapter, self).__init__() - - def send(self, request, stream=False, timeout=None, verify=True, - cert=None, proxies=None): - """Sends PreparedRequest object. Returns Response object. - - :param request: The :class:`PreparedRequest <PreparedRequest>` being sent. - :param stream: (optional) Whether to stream the request content. - :param timeout: (optional) How long to wait for the server to send - data before giving up, as a float, or a :ref:`(connect timeout, - read timeout) <timeouts>` tuple. - :type timeout: float or tuple - :param verify: (optional) Either a boolean, in which case it controls whether we verify - the server's TLS certificate, or a string, in which case it must be a path - to a CA bundle to use - :param cert: (optional) Any user-provided SSL certificate to be trusted. - :param proxies: (optional) The proxies dictionary to apply to the request. - """ - raise NotImplementedError - - def close(self): - """Cleans up adapter specific items.""" - raise NotImplementedError - - -class HTTPAdapter(BaseAdapter): - """The built-in HTTP Adapter for urllib3. - - Provides a general-case interface for Requests sessions to contact HTTP and - HTTPS urls by implementing the Transport Adapter interface. This class will - usually be created by the :class:`Session <Session>` class under the - covers. - - :param pool_connections: The number of urllib3 connection pools to cache. - :param pool_maxsize: The maximum number of connections to save in the pool. - :param max_retries: The maximum number of retries each connection - should attempt. Note, this applies only to failed DNS lookups, socket - connections and connection timeouts, never to requests where data has - made it to the server. By default, Requests does not retry failed - connections. If you need granular control over the conditions under - which we retry a request, import urllib3's ``Retry`` class and pass - that instead. - :param pool_block: Whether the connection pool should block for connections. - - Usage:: - - >>> import requests - >>> s = requests.Session() - >>> a = requests.adapters.HTTPAdapter(max_retries=3) - >>> s.mount('http://', a) - """ - __attrs__ = ['max_retries', 'config', '_pool_connections', '_pool_maxsize', - '_pool_block'] - - def __init__(self, pool_connections=DEFAULT_POOLSIZE, - pool_maxsize=DEFAULT_POOLSIZE, max_retries=DEFAULT_RETRIES, - pool_block=DEFAULT_POOLBLOCK): - if max_retries == DEFAULT_RETRIES: - self.max_retries = Retry(0, read=False) - else: - self.max_retries = Retry.from_int(max_retries) - self.config = {} - self.proxy_manager = {} - - super(HTTPAdapter, self).__init__() - - self._pool_connections = pool_connections - self._pool_maxsize = pool_maxsize - self._pool_block = pool_block - - self.init_poolmanager(pool_connections, pool_maxsize, block=pool_block) - - def __getstate__(self): - return {attr: getattr(self, attr, None) for attr in self.__attrs__} - - def __setstate__(self, state): - # Can't handle by adding 'proxy_manager' to self.__attrs__ because - # self.poolmanager uses a lambda function, which isn't pickleable. - self.proxy_manager = {} - self.config = {} - - for attr, value in state.items(): - setattr(self, attr, value) - - self.init_poolmanager(self._pool_connections, self._pool_maxsize, - block=self._pool_block) - - def init_poolmanager(self, connections, maxsize, block=DEFAULT_POOLBLOCK, **pool_kwargs): - """Initializes a urllib3 PoolManager. - - This method should not be called from user code, and is only - exposed for use when subclassing the - :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. - - :param connections: The number of urllib3 connection pools to cache. - :param maxsize: The maximum number of connections to save in the pool. - :param block: Block when no free connections are available. - :param pool_kwargs: Extra keyword arguments used to initialize the Pool Manager. - """ - # save these values for pickling - self._pool_connections = connections - self._pool_maxsize = maxsize - self._pool_block = block - - self.poolmanager = PoolManager(num_pools=connections, maxsize=maxsize, - block=block, strict=True, **pool_kwargs) - - def proxy_manager_for(self, proxy, **proxy_kwargs): - """Return urllib3 ProxyManager for the given proxy. - - This method should not be called from user code, and is only - exposed for use when subclassing the - :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. - - :param proxy: The proxy to return a urllib3 ProxyManager for. - :param proxy_kwargs: Extra keyword arguments used to configure the Proxy Manager. - :returns: ProxyManager - :rtype: urllib3.ProxyManager - """ - if proxy in self.proxy_manager: - manager = self.proxy_manager[proxy] - elif proxy.lower().startswith('socks'): - username, password = get_auth_from_url(proxy) - manager = self.proxy_manager[proxy] = SOCKSProxyManager( - proxy, - username=username, - password=password, - num_pools=self._pool_connections, - maxsize=self._pool_maxsize, - block=self._pool_block, - **proxy_kwargs - ) - else: - proxy_headers = self.proxy_headers(proxy) - manager = self.proxy_manager[proxy] = proxy_from_url( - proxy, - proxy_headers=proxy_headers, - num_pools=self._pool_connections, - maxsize=self._pool_maxsize, - block=self._pool_block, - **proxy_kwargs) - - return manager - - def cert_verify(self, conn, url, verify, cert): - """Verify a SSL certificate. This method should not be called from user - code, and is only exposed for use when subclassing the - :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. - - :param conn: The urllib3 connection object associated with the cert. - :param url: The requested URL. - :param verify: Either a boolean, in which case it controls whether we verify - the server's TLS certificate, or a string, in which case it must be a path - to a CA bundle to use - :param cert: The SSL certificate to verify. - """ - if url.lower().startswith('https') and verify: - - cert_loc = None - - # Allow self-specified cert location. - if verify is not True: - cert_loc = verify - - if not cert_loc: - cert_loc = extract_zipped_paths(DEFAULT_CA_BUNDLE_PATH) - - if not cert_loc or not os.path.exists(cert_loc): - raise IOError("Could not find a suitable TLS CA certificate bundle, " - "invalid path: {}".format(cert_loc)) - - conn.cert_reqs = 'CERT_REQUIRED' - - if not os.path.isdir(cert_loc): - conn.ca_certs = cert_loc - else: - conn.ca_cert_dir = cert_loc - else: - conn.cert_reqs = 'CERT_NONE' - conn.ca_certs = None - conn.ca_cert_dir = None - - if cert: - if not isinstance(cert, basestring): - conn.cert_file = cert[0] - conn.key_file = cert[1] - else: - conn.cert_file = cert - conn.key_file = None - if conn.cert_file and not os.path.exists(conn.cert_file): - raise IOError("Could not find the TLS certificate file, " - "invalid path: {}".format(conn.cert_file)) - if conn.key_file and not os.path.exists(conn.key_file): - raise IOError("Could not find the TLS key file, " - "invalid path: {}".format(conn.key_file)) - - def build_response(self, req, resp): - """Builds a :class:`Response <requests.Response>` object from a urllib3 - response. This should not be called from user code, and is only exposed - for use when subclassing the - :class:`HTTPAdapter <requests.adapters.HTTPAdapter>` - - :param req: The :class:`PreparedRequest <PreparedRequest>` used to generate the response. - :param resp: The urllib3 response object. - :rtype: requests.Response - """ - response = Response() - - # Fallback to None if there's no status_code, for whatever reason. - response.status_code = getattr(resp, 'status', None) - - # Make headers case-insensitive. - response.headers = CaseInsensitiveDict(getattr(resp, 'headers', {})) - - # Set encoding. - response.encoding = get_encoding_from_headers(response.headers) - response.raw = resp - response.reason = response.raw.reason - - if isinstance(req.url, bytes): - response.url = req.url.decode('utf-8') - else: - response.url = req.url - - # Add new cookies from the server. - extract_cookies_to_jar(response.cookies, req, resp) - - # Give the Response some context. - response.request = req - response.connection = self - - return response - - def get_connection(self, url, proxies=None): - """Returns a urllib3 connection for the given URL. This should not be - called from user code, and is only exposed for use when subclassing the - :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. - - :param url: The URL to connect to. - :param proxies: (optional) A Requests-style dictionary of proxies used on this request. - :rtype: urllib3.ConnectionPool - """ - proxy = select_proxy(url, proxies) - - if proxy: - proxy = prepend_scheme_if_needed(proxy, 'http') - proxy_url = parse_url(proxy) - if not proxy_url.host: - raise InvalidProxyURL("Please check proxy URL. It is malformed" - " and could be missing the host.") - proxy_manager = self.proxy_manager_for(proxy) - conn = proxy_manager.connection_from_url(url) - else: - # Only scheme should be lower case - parsed = urlparse(url) - url = parsed.geturl() - conn = self.poolmanager.connection_from_url(url) - - return conn - - def close(self): - """Disposes of any internal state. - - Currently, this closes the PoolManager and any active ProxyManager, - which closes any pooled connections. - """ - self.poolmanager.clear() - for proxy in self.proxy_manager.values(): - proxy.clear() - - def request_url(self, request, proxies): - """Obtain the url to use when making the final request. - - If the message is being sent through a HTTP proxy, the full URL has to - be used. Otherwise, we should only use the path portion of the URL. - - This should not be called from user code, and is only exposed for use - when subclassing the - :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. - - :param request: The :class:`PreparedRequest <PreparedRequest>` being sent. - :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs. - :rtype: str - """ - proxy = select_proxy(request.url, proxies) - scheme = urlparse(request.url).scheme - - is_proxied_http_request = (proxy and scheme != 'https') - using_socks_proxy = False - if proxy: - proxy_scheme = urlparse(proxy).scheme.lower() - using_socks_proxy = proxy_scheme.startswith('socks') - - url = request.path_url - if is_proxied_http_request and not using_socks_proxy: - url = urldefragauth(request.url) - - return url - - def add_headers(self, request, **kwargs): - """Add any headers needed by the connection. As of v2.0 this does - nothing by default, but is left for overriding by users that subclass - the :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. - - This should not be called from user code, and is only exposed for use - when subclassing the - :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. - - :param request: The :class:`PreparedRequest <PreparedRequest>` to add headers to. - :param kwargs: The keyword arguments from the call to send(). - """ - pass - - def proxy_headers(self, proxy): - """Returns a dictionary of the headers to add to any request sent - through a proxy. This works with urllib3 magic to ensure that they are - correctly sent to the proxy, rather than in a tunnelled request if - CONNECT is being used. - - This should not be called from user code, and is only exposed for use - when subclassing the - :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. - - :param proxy: The url of the proxy being used for this request. - :rtype: dict - """ - headers = {} - username, password = get_auth_from_url(proxy) - - if username: - headers['Proxy-Authorization'] = _basic_auth_str(username, - password) - - return headers - - def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None): - """Sends PreparedRequest object. Returns Response object. - - :param request: The :class:`PreparedRequest <PreparedRequest>` being sent. - :param stream: (optional) Whether to stream the request content. - :param timeout: (optional) How long to wait for the server to send - data before giving up, as a float, or a :ref:`(connect timeout, - read timeout) <timeouts>` tuple. - :type timeout: float or tuple or urllib3 Timeout object - :param verify: (optional) Either a boolean, in which case it controls whether - we verify the server's TLS certificate, or a string, in which case it - must be a path to a CA bundle to use - :param cert: (optional) Any user-provided SSL certificate to be trusted. - :param proxies: (optional) The proxies dictionary to apply to the request. - :rtype: requests.Response - """ - - try: - conn = self.get_connection(request.url, proxies) - except LocationValueError as e: - raise InvalidURL(e, request=request) - - self.cert_verify(conn, request.url, verify, cert) - url = self.request_url(request, proxies) - self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies) - - chunked = not (request.body is None or 'Content-Length' in request.headers) - - if isinstance(timeout, tuple): - try: - connect, read = timeout - timeout = TimeoutSauce(connect=connect, read=read) - except ValueError as e: - # this may raise a string formatting error. - err = ("Invalid timeout {}. Pass a (connect, read) " - "timeout tuple, or a single float to set " - "both timeouts to the same value".format(timeout)) - raise ValueError(err) - elif isinstance(timeout, TimeoutSauce): - pass - else: - timeout = TimeoutSauce(connect=timeout, read=timeout) - - try: - if not chunked: - resp = conn.urlopen( - method=request.method, - url=url, - body=request.body, - headers=request.headers, - redirect=False, - assert_same_host=False, - preload_content=False, - decode_content=False, - retries=self.max_retries, - timeout=timeout - ) - - # Send the request. - else: - if hasattr(conn, 'proxy_pool'): - conn = conn.proxy_pool - - low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT) - - try: - low_conn.putrequest(request.method, - url, - skip_accept_encoding=True) - - for header, value in request.headers.items(): - low_conn.putheader(header, value) - - low_conn.endheaders() - - for i in request.body: - low_conn.send(hex(len(i))[2:].encode('utf-8')) - low_conn.send(b'\r\n') - low_conn.send(i) - low_conn.send(b'\r\n') - low_conn.send(b'0\r\n\r\n') - - # Receive the response from the server - try: - # For Python 2.7, use buffering of HTTP responses - r = low_conn.getresponse(buffering=True) - except TypeError: - # For compatibility with Python 3.3+ - r = low_conn.getresponse() - - resp = HTTPResponse.from_httplib( - r, - pool=conn, - connection=low_conn, - preload_content=False, - decode_content=False - ) - except: - # If we hit any problems here, clean up the connection. - # Then, reraise so that we can handle the actual exception. - low_conn.close() - raise - - except (ProtocolError, socket.error) as err: - raise ConnectionError(err, request=request) - - except MaxRetryError as e: - if isinstance(e.reason, ConnectTimeoutError): - # TODO: Remove this in 3.0.0: see #2811 - if not isinstance(e.reason, NewConnectionError): - raise ConnectTimeout(e, request=request) - - if isinstance(e.reason, ResponseError): - raise RetryError(e, request=request) - - if isinstance(e.reason, _ProxyError): - raise ProxyError(e, request=request) - - if isinstance(e.reason, _SSLError): - # This branch is for urllib3 v1.22 and later. - raise SSLError(e, request=request) - - raise ConnectionError(e, request=request) - - except ClosedPoolError as e: - raise ConnectionError(e, request=request) - - except _ProxyError as e: - raise ProxyError(e) - - except (_SSLError, _HTTPError) as e: - if isinstance(e, _SSLError): - # This branch is for urllib3 versions earlier than v1.22 - raise SSLError(e, request=request) - elif isinstance(e, ReadTimeoutError): - raise ReadTimeout(e, request=request) - else: - raise - - return self.build_response(request, resp) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/api.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/api.py deleted file mode 100644 index abada96..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/api.py +++ /dev/null @@ -1,158 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.api -~~~~~~~~~~~~ - -This module implements the Requests API. - -:copyright: (c) 2012 by Kenneth Reitz. -:license: Apache2, see LICENSE for more details. -""" - -from . import sessions - - -def request(method, url, **kwargs): - """Constructs and sends a :class:`Request <Request>`. - - :param method: method for the new :class:`Request` object. - :param url: URL for the new :class:`Request` object. - :param params: (optional) Dictionary, list of tuples or bytes to send - in the body of the :class:`Request`. - :param data: (optional) Dictionary, list of tuples, bytes, or file-like - object to send in the body of the :class:`Request`. - :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`. - :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`. - :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`. - :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload. - ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')`` - or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string - defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers - to add for the file. - :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth. - :param timeout: (optional) How many seconds to wait for the server to send data - before giving up, as a float, or a :ref:`(connect timeout, read - timeout) <timeouts>` tuple. - :type timeout: float or tuple - :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to ``True``. - :type allow_redirects: bool - :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy. - :param verify: (optional) Either a boolean, in which case it controls whether we verify - the server's TLS certificate, or a string, in which case it must be a path - to a CA bundle to use. Defaults to ``True``. - :param stream: (optional) if ``False``, the response content will be immediately downloaded. - :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair. - :return: :class:`Response <Response>` object - :rtype: requests.Response - - Usage:: - - >>> import requests - >>> req = requests.request('GET', 'https://httpbin.org/get') - <Response [200]> - """ - - # By using the 'with' statement we are sure the session is closed, thus we - # avoid leaving sockets open which can trigger a ResourceWarning in some - # cases, and look like a memory leak in others. - with sessions.Session() as session: - return session.request(method=method, url=url, **kwargs) - - -def get(url, params=None, **kwargs): - r"""Sends a GET request. - - :param url: URL for the new :class:`Request` object. - :param params: (optional) Dictionary, list of tuples or bytes to send - in the body of the :class:`Request`. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :return: :class:`Response <Response>` object - :rtype: requests.Response - """ - - kwargs.setdefault('allow_redirects', True) - return request('get', url, params=params, **kwargs) - - -def options(url, **kwargs): - r"""Sends an OPTIONS request. - - :param url: URL for the new :class:`Request` object. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :return: :class:`Response <Response>` object - :rtype: requests.Response - """ - - kwargs.setdefault('allow_redirects', True) - return request('options', url, **kwargs) - - -def head(url, **kwargs): - r"""Sends a HEAD request. - - :param url: URL for the new :class:`Request` object. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :return: :class:`Response <Response>` object - :rtype: requests.Response - """ - - kwargs.setdefault('allow_redirects', False) - return request('head', url, **kwargs) - - -def post(url, data=None, json=None, **kwargs): - r"""Sends a POST request. - - :param url: URL for the new :class:`Request` object. - :param data: (optional) Dictionary, list of tuples, bytes, or file-like - object to send in the body of the :class:`Request`. - :param json: (optional) json data to send in the body of the :class:`Request`. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :return: :class:`Response <Response>` object - :rtype: requests.Response - """ - - return request('post', url, data=data, json=json, **kwargs) - - -def put(url, data=None, **kwargs): - r"""Sends a PUT request. - - :param url: URL for the new :class:`Request` object. - :param data: (optional) Dictionary, list of tuples, bytes, or file-like - object to send in the body of the :class:`Request`. - :param json: (optional) json data to send in the body of the :class:`Request`. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :return: :class:`Response <Response>` object - :rtype: requests.Response - """ - - return request('put', url, data=data, **kwargs) - - -def patch(url, data=None, **kwargs): - r"""Sends a PATCH request. - - :param url: URL for the new :class:`Request` object. - :param data: (optional) Dictionary, list of tuples, bytes, or file-like - object to send in the body of the :class:`Request`. - :param json: (optional) json data to send in the body of the :class:`Request`. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :return: :class:`Response <Response>` object - :rtype: requests.Response - """ - - return request('patch', url, data=data, **kwargs) - - -def delete(url, **kwargs): - r"""Sends a DELETE request. - - :param url: URL for the new :class:`Request` object. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :return: :class:`Response <Response>` object - :rtype: requests.Response - """ - - return request('delete', url, **kwargs) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/auth.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/auth.py deleted file mode 100644 index bdde51c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/auth.py +++ /dev/null @@ -1,305 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.auth -~~~~~~~~~~~~~ - -This module contains the authentication handlers for Requests. -""" - -import os -import re -import time -import hashlib -import threading -import warnings - -from base64 import b64encode - -from .compat import urlparse, str, basestring -from .cookies import extract_cookies_to_jar -from ._internal_utils import to_native_string -from .utils import parse_dict_header - -CONTENT_TYPE_FORM_URLENCODED = 'application/x-www-form-urlencoded' -CONTENT_TYPE_MULTI_PART = 'multipart/form-data' - - -def _basic_auth_str(username, password): - """Returns a Basic Auth string.""" - - # "I want us to put a big-ol' comment on top of it that - # says that this behaviour is dumb but we need to preserve - # it because people are relying on it." - # - Lukasa - # - # These are here solely to maintain backwards compatibility - # for things like ints. This will be removed in 3.0.0. - if not isinstance(username, basestring): - warnings.warn( - "Non-string usernames will no longer be supported in Requests " - "3.0.0. Please convert the object you've passed in ({!r}) to " - "a string or bytes object in the near future to avoid " - "problems.".format(username), - category=DeprecationWarning, - ) - username = str(username) - - if not isinstance(password, basestring): - warnings.warn( - "Non-string passwords will no longer be supported in Requests " - "3.0.0. Please convert the object you've passed in ({!r}) to " - "a string or bytes object in the near future to avoid " - "problems.".format(password), - category=DeprecationWarning, - ) - password = str(password) - # -- End Removal -- - - if isinstance(username, str): - username = username.encode('latin1') - - if isinstance(password, str): - password = password.encode('latin1') - - authstr = 'Basic ' + to_native_string( - b64encode(b':'.join((username, password))).strip() - ) - - return authstr - - -class AuthBase(object): - """Base class that all auth implementations derive from""" - - def __call__(self, r): - raise NotImplementedError('Auth hooks must be callable.') - - -class HTTPBasicAuth(AuthBase): - """Attaches HTTP Basic Authentication to the given Request object.""" - - def __init__(self, username, password): - self.username = username - self.password = password - - def __eq__(self, other): - return all([ - self.username == getattr(other, 'username', None), - self.password == getattr(other, 'password', None) - ]) - - def __ne__(self, other): - return not self == other - - def __call__(self, r): - r.headers['Authorization'] = _basic_auth_str(self.username, self.password) - return r - - -class HTTPProxyAuth(HTTPBasicAuth): - """Attaches HTTP Proxy Authentication to a given Request object.""" - - def __call__(self, r): - r.headers['Proxy-Authorization'] = _basic_auth_str(self.username, self.password) - return r - - -class HTTPDigestAuth(AuthBase): - """Attaches HTTP Digest Authentication to the given Request object.""" - - def __init__(self, username, password): - self.username = username - self.password = password - # Keep state in per-thread local storage - self._thread_local = threading.local() - - def init_per_thread_state(self): - # Ensure state is initialized just once per-thread - if not hasattr(self._thread_local, 'init'): - self._thread_local.init = True - self._thread_local.last_nonce = '' - self._thread_local.nonce_count = 0 - self._thread_local.chal = {} - self._thread_local.pos = None - self._thread_local.num_401_calls = None - - def build_digest_header(self, method, url): - """ - :rtype: str - """ - - realm = self._thread_local.chal['realm'] - nonce = self._thread_local.chal['nonce'] - qop = self._thread_local.chal.get('qop') - algorithm = self._thread_local.chal.get('algorithm') - opaque = self._thread_local.chal.get('opaque') - hash_utf8 = None - - if algorithm is None: - _algorithm = 'MD5' - else: - _algorithm = algorithm.upper() - # lambdas assume digest modules are imported at the top level - if _algorithm == 'MD5' or _algorithm == 'MD5-SESS': - def md5_utf8(x): - if isinstance(x, str): - x = x.encode('utf-8') - return hashlib.md5(x).hexdigest() - hash_utf8 = md5_utf8 - elif _algorithm == 'SHA': - def sha_utf8(x): - if isinstance(x, str): - x = x.encode('utf-8') - return hashlib.sha1(x).hexdigest() - hash_utf8 = sha_utf8 - elif _algorithm == 'SHA-256': - def sha256_utf8(x): - if isinstance(x, str): - x = x.encode('utf-8') - return hashlib.sha256(x).hexdigest() - hash_utf8 = sha256_utf8 - elif _algorithm == 'SHA-512': - def sha512_utf8(x): - if isinstance(x, str): - x = x.encode('utf-8') - return hashlib.sha512(x).hexdigest() - hash_utf8 = sha512_utf8 - - KD = lambda s, d: hash_utf8("%s:%s" % (s, d)) - - if hash_utf8 is None: - return None - - # XXX not implemented yet - entdig = None - p_parsed = urlparse(url) - #: path is request-uri defined in RFC 2616 which should not be empty - path = p_parsed.path or "/" - if p_parsed.query: - path += '?' + p_parsed.query - - A1 = '%s:%s:%s' % (self.username, realm, self.password) - A2 = '%s:%s' % (method, path) - - HA1 = hash_utf8(A1) - HA2 = hash_utf8(A2) - - if nonce == self._thread_local.last_nonce: - self._thread_local.nonce_count += 1 - else: - self._thread_local.nonce_count = 1 - ncvalue = '%08x' % self._thread_local.nonce_count - s = str(self._thread_local.nonce_count).encode('utf-8') - s += nonce.encode('utf-8') - s += time.ctime().encode('utf-8') - s += os.urandom(8) - - cnonce = (hashlib.sha1(s).hexdigest()[:16]) - if _algorithm == 'MD5-SESS': - HA1 = hash_utf8('%s:%s:%s' % (HA1, nonce, cnonce)) - - if not qop: - respdig = KD(HA1, "%s:%s" % (nonce, HA2)) - elif qop == 'auth' or 'auth' in qop.split(','): - noncebit = "%s:%s:%s:%s:%s" % ( - nonce, ncvalue, cnonce, 'auth', HA2 - ) - respdig = KD(HA1, noncebit) - else: - # XXX handle auth-int. - return None - - self._thread_local.last_nonce = nonce - - # XXX should the partial digests be encoded too? - base = 'username="%s", realm="%s", nonce="%s", uri="%s", ' \ - 'response="%s"' % (self.username, realm, nonce, path, respdig) - if opaque: - base += ', opaque="%s"' % opaque - if algorithm: - base += ', algorithm="%s"' % algorithm - if entdig: - base += ', digest="%s"' % entdig - if qop: - base += ', qop="auth", nc=%s, cnonce="%s"' % (ncvalue, cnonce) - - return 'Digest %s' % (base) - - def handle_redirect(self, r, **kwargs): - """Reset num_401_calls counter on redirects.""" - if r.is_redirect: - self._thread_local.num_401_calls = 1 - - def handle_401(self, r, **kwargs): - """ - Takes the given response and tries digest-auth, if needed. - - :rtype: requests.Response - """ - - # If response is not 4xx, do not auth - # See https://github.com/requests/requests/issues/3772 - if not 400 <= r.status_code < 500: - self._thread_local.num_401_calls = 1 - return r - - if self._thread_local.pos is not None: - # Rewind the file position indicator of the body to where - # it was to resend the request. - r.request.body.seek(self._thread_local.pos) - s_auth = r.headers.get('www-authenticate', '') - - if 'digest' in s_auth.lower() and self._thread_local.num_401_calls < 2: - - self._thread_local.num_401_calls += 1 - pat = re.compile(r'digest ', flags=re.IGNORECASE) - self._thread_local.chal = parse_dict_header(pat.sub('', s_auth, count=1)) - - # Consume content and release the original connection - # to allow our new request to reuse the same one. - r.content - r.close() - prep = r.request.copy() - extract_cookies_to_jar(prep._cookies, r.request, r.raw) - prep.prepare_cookies(prep._cookies) - - prep.headers['Authorization'] = self.build_digest_header( - prep.method, prep.url) - _r = r.connection.send(prep, **kwargs) - _r.history.append(r) - _r.request = prep - - return _r - - self._thread_local.num_401_calls = 1 - return r - - def __call__(self, r): - # Initialize per-thread state, if needed - self.init_per_thread_state() - # If we have a saved nonce, skip the 401 - if self._thread_local.last_nonce: - r.headers['Authorization'] = self.build_digest_header(r.method, r.url) - try: - self._thread_local.pos = r.body.tell() - except AttributeError: - # In the case of HTTPDigestAuth being reused and the body of - # the previous request was a file-like object, pos has the - # file position of the previous body. Ensure it's set to - # None. - self._thread_local.pos = None - r.register_hook('response', self.handle_401) - r.register_hook('response', self.handle_redirect) - self._thread_local.num_401_calls = 1 - - return r - - def __eq__(self, other): - return all([ - self.username == getattr(other, 'username', None), - self.password == getattr(other, 'password', None) - ]) - - def __ne__(self, other): - return not self == other diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/certs.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/certs.py deleted file mode 100644 index 06a594e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/certs.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" -requests.certs -~~~~~~~~~~~~~~ - -This module returns the preferred default CA certificate bundle. There is -only one — the one from the certifi package. - -If you are packaging Requests, e.g., for a Linux distribution or a managed -environment, you can change the definition of where() to return a separately -packaged CA bundle. -""" -from pip._vendor.certifi import where - -if __name__ == '__main__': - print(where()) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/compat.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/compat.py deleted file mode 100644 index 6a86893..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/compat.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.compat -~~~~~~~~~~~~~~~ - -This module handles import compatibility issues between Python 2 and -Python 3. -""" - -from pip._vendor import chardet - -import sys - -# ------- -# Pythons -# ------- - -# Syntax sugar. -_ver = sys.version_info - -#: Python 2.x? -is_py2 = (_ver[0] == 2) - -#: Python 3.x? -is_py3 = (_ver[0] == 3) - -# Note: We've patched out simplejson support in pip because it prevents -# upgrading simplejson on Windows. -# try: -# import simplejson as json -# except (ImportError, SyntaxError): -# # simplejson does not support Python 3.2, it throws a SyntaxError -# # because of u'...' Unicode literals. -import json - -# --------- -# Specifics -# --------- - -if is_py2: - from urllib import ( - quote, unquote, quote_plus, unquote_plus, urlencode, getproxies, - proxy_bypass, proxy_bypass_environment, getproxies_environment) - from urlparse import urlparse, urlunparse, urljoin, urlsplit, urldefrag - from urllib2 import parse_http_list - import cookielib - from Cookie import Morsel - from StringIO import StringIO - from collections import Callable, Mapping, MutableMapping, OrderedDict - - - builtin_str = str - bytes = str - str = unicode - basestring = basestring - numeric_types = (int, long, float) - integer_types = (int, long) - -elif is_py3: - from urllib.parse import urlparse, urlunparse, urljoin, urlsplit, urlencode, quote, unquote, quote_plus, unquote_plus, urldefrag - from urllib.request import parse_http_list, getproxies, proxy_bypass, proxy_bypass_environment, getproxies_environment - from http import cookiejar as cookielib - from http.cookies import Morsel - from io import StringIO - from collections import OrderedDict - from collections.abc import Callable, Mapping, MutableMapping - - builtin_str = str - str = str - bytes = bytes - basestring = (str, bytes) - numeric_types = (int, float) - integer_types = (int,) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/cookies.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/cookies.py deleted file mode 100644 index 56fccd9..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/cookies.py +++ /dev/null @@ -1,549 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.cookies -~~~~~~~~~~~~~~~~ - -Compatibility code to be able to use `cookielib.CookieJar` with requests. - -requests.utils imports from here, so be careful with imports. -""" - -import copy -import time -import calendar - -from ._internal_utils import to_native_string -from .compat import cookielib, urlparse, urlunparse, Morsel, MutableMapping - -try: - import threading -except ImportError: - import dummy_threading as threading - - -class MockRequest(object): - """Wraps a `requests.Request` to mimic a `urllib2.Request`. - - The code in `cookielib.CookieJar` expects this interface in order to correctly - manage cookie policies, i.e., determine whether a cookie can be set, given the - domains of the request and the cookie. - - The original request object is read-only. The client is responsible for collecting - the new headers via `get_new_headers()` and interpreting them appropriately. You - probably want `get_cookie_header`, defined below. - """ - - def __init__(self, request): - self._r = request - self._new_headers = {} - self.type = urlparse(self._r.url).scheme - - def get_type(self): - return self.type - - def get_host(self): - return urlparse(self._r.url).netloc - - def get_origin_req_host(self): - return self.get_host() - - def get_full_url(self): - # Only return the response's URL if the user hadn't set the Host - # header - if not self._r.headers.get('Host'): - return self._r.url - # If they did set it, retrieve it and reconstruct the expected domain - host = to_native_string(self._r.headers['Host'], encoding='utf-8') - parsed = urlparse(self._r.url) - # Reconstruct the URL as we expect it - return urlunparse([ - parsed.scheme, host, parsed.path, parsed.params, parsed.query, - parsed.fragment - ]) - - def is_unverifiable(self): - return True - - def has_header(self, name): - return name in self._r.headers or name in self._new_headers - - def get_header(self, name, default=None): - return self._r.headers.get(name, self._new_headers.get(name, default)) - - def add_header(self, key, val): - """cookielib has no legitimate use for this method; add it back if you find one.""" - raise NotImplementedError("Cookie headers should be added with add_unredirected_header()") - - def add_unredirected_header(self, name, value): - self._new_headers[name] = value - - def get_new_headers(self): - return self._new_headers - - @property - def unverifiable(self): - return self.is_unverifiable() - - @property - def origin_req_host(self): - return self.get_origin_req_host() - - @property - def host(self): - return self.get_host() - - -class MockResponse(object): - """Wraps a `httplib.HTTPMessage` to mimic a `urllib.addinfourl`. - - ...what? Basically, expose the parsed HTTP headers from the server response - the way `cookielib` expects to see them. - """ - - def __init__(self, headers): - """Make a MockResponse for `cookielib` to read. - - :param headers: a httplib.HTTPMessage or analogous carrying the headers - """ - self._headers = headers - - def info(self): - return self._headers - - def getheaders(self, name): - self._headers.getheaders(name) - - -def extract_cookies_to_jar(jar, request, response): - """Extract the cookies from the response into a CookieJar. - - :param jar: cookielib.CookieJar (not necessarily a RequestsCookieJar) - :param request: our own requests.Request object - :param response: urllib3.HTTPResponse object - """ - if not (hasattr(response, '_original_response') and - response._original_response): - return - # the _original_response field is the wrapped httplib.HTTPResponse object, - req = MockRequest(request) - # pull out the HTTPMessage with the headers and put it in the mock: - res = MockResponse(response._original_response.msg) - jar.extract_cookies(res, req) - - -def get_cookie_header(jar, request): - """ - Produce an appropriate Cookie header string to be sent with `request`, or None. - - :rtype: str - """ - r = MockRequest(request) - jar.add_cookie_header(r) - return r.get_new_headers().get('Cookie') - - -def remove_cookie_by_name(cookiejar, name, domain=None, path=None): - """Unsets a cookie by name, by default over all domains and paths. - - Wraps CookieJar.clear(), is O(n). - """ - clearables = [] - for cookie in cookiejar: - if cookie.name != name: - continue - if domain is not None and domain != cookie.domain: - continue - if path is not None and path != cookie.path: - continue - clearables.append((cookie.domain, cookie.path, cookie.name)) - - for domain, path, name in clearables: - cookiejar.clear(domain, path, name) - - -class CookieConflictError(RuntimeError): - """There are two cookies that meet the criteria specified in the cookie jar. - Use .get and .set and include domain and path args in order to be more specific. - """ - - -class RequestsCookieJar(cookielib.CookieJar, MutableMapping): - """Compatibility class; is a cookielib.CookieJar, but exposes a dict - interface. - - This is the CookieJar we create by default for requests and sessions that - don't specify one, since some clients may expect response.cookies and - session.cookies to support dict operations. - - Requests does not use the dict interface internally; it's just for - compatibility with external client code. All requests code should work - out of the box with externally provided instances of ``CookieJar``, e.g. - ``LWPCookieJar`` and ``FileCookieJar``. - - Unlike a regular CookieJar, this class is pickleable. - - .. warning:: dictionary operations that are normally O(1) may be O(n). - """ - - def get(self, name, default=None, domain=None, path=None): - """Dict-like get() that also supports optional domain and path args in - order to resolve naming collisions from using one cookie jar over - multiple domains. - - .. warning:: operation is O(n), not O(1). - """ - try: - return self._find_no_duplicates(name, domain, path) - except KeyError: - return default - - def set(self, name, value, **kwargs): - """Dict-like set() that also supports optional domain and path args in - order to resolve naming collisions from using one cookie jar over - multiple domains. - """ - # support client code that unsets cookies by assignment of a None value: - if value is None: - remove_cookie_by_name(self, name, domain=kwargs.get('domain'), path=kwargs.get('path')) - return - - if isinstance(value, Morsel): - c = morsel_to_cookie(value) - else: - c = create_cookie(name, value, **kwargs) - self.set_cookie(c) - return c - - def iterkeys(self): - """Dict-like iterkeys() that returns an iterator of names of cookies - from the jar. - - .. seealso:: itervalues() and iteritems(). - """ - for cookie in iter(self): - yield cookie.name - - def keys(self): - """Dict-like keys() that returns a list of names of cookies from the - jar. - - .. seealso:: values() and items(). - """ - return list(self.iterkeys()) - - def itervalues(self): - """Dict-like itervalues() that returns an iterator of values of cookies - from the jar. - - .. seealso:: iterkeys() and iteritems(). - """ - for cookie in iter(self): - yield cookie.value - - def values(self): - """Dict-like values() that returns a list of values of cookies from the - jar. - - .. seealso:: keys() and items(). - """ - return list(self.itervalues()) - - def iteritems(self): - """Dict-like iteritems() that returns an iterator of name-value tuples - from the jar. - - .. seealso:: iterkeys() and itervalues(). - """ - for cookie in iter(self): - yield cookie.name, cookie.value - - def items(self): - """Dict-like items() that returns a list of name-value tuples from the - jar. Allows client-code to call ``dict(RequestsCookieJar)`` and get a - vanilla python dict of key value pairs. - - .. seealso:: keys() and values(). - """ - return list(self.iteritems()) - - def list_domains(self): - """Utility method to list all the domains in the jar.""" - domains = [] - for cookie in iter(self): - if cookie.domain not in domains: - domains.append(cookie.domain) - return domains - - def list_paths(self): - """Utility method to list all the paths in the jar.""" - paths = [] - for cookie in iter(self): - if cookie.path not in paths: - paths.append(cookie.path) - return paths - - def multiple_domains(self): - """Returns True if there are multiple domains in the jar. - Returns False otherwise. - - :rtype: bool - """ - domains = [] - for cookie in iter(self): - if cookie.domain is not None and cookie.domain in domains: - return True - domains.append(cookie.domain) - return False # there is only one domain in jar - - def get_dict(self, domain=None, path=None): - """Takes as an argument an optional domain and path and returns a plain - old Python dict of name-value pairs of cookies that meet the - requirements. - - :rtype: dict - """ - dictionary = {} - for cookie in iter(self): - if ( - (domain is None or cookie.domain == domain) and - (path is None or cookie.path == path) - ): - dictionary[cookie.name] = cookie.value - return dictionary - - def __contains__(self, name): - try: - return super(RequestsCookieJar, self).__contains__(name) - except CookieConflictError: - return True - - def __getitem__(self, name): - """Dict-like __getitem__() for compatibility with client code. Throws - exception if there are more than one cookie with name. In that case, - use the more explicit get() method instead. - - .. warning:: operation is O(n), not O(1). - """ - return self._find_no_duplicates(name) - - def __setitem__(self, name, value): - """Dict-like __setitem__ for compatibility with client code. Throws - exception if there is already a cookie of that name in the jar. In that - case, use the more explicit set() method instead. - """ - self.set(name, value) - - def __delitem__(self, name): - """Deletes a cookie given a name. Wraps ``cookielib.CookieJar``'s - ``remove_cookie_by_name()``. - """ - remove_cookie_by_name(self, name) - - def set_cookie(self, cookie, *args, **kwargs): - if hasattr(cookie.value, 'startswith') and cookie.value.startswith('"') and cookie.value.endswith('"'): - cookie.value = cookie.value.replace('\\"', '') - return super(RequestsCookieJar, self).set_cookie(cookie, *args, **kwargs) - - def update(self, other): - """Updates this jar with cookies from another CookieJar or dict-like""" - if isinstance(other, cookielib.CookieJar): - for cookie in other: - self.set_cookie(copy.copy(cookie)) - else: - super(RequestsCookieJar, self).update(other) - - def _find(self, name, domain=None, path=None): - """Requests uses this method internally to get cookie values. - - If there are conflicting cookies, _find arbitrarily chooses one. - See _find_no_duplicates if you want an exception thrown if there are - conflicting cookies. - - :param name: a string containing name of cookie - :param domain: (optional) string containing domain of cookie - :param path: (optional) string containing path of cookie - :return: cookie.value - """ - for cookie in iter(self): - if cookie.name == name: - if domain is None or cookie.domain == domain: - if path is None or cookie.path == path: - return cookie.value - - raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path)) - - def _find_no_duplicates(self, name, domain=None, path=None): - """Both ``__get_item__`` and ``get`` call this function: it's never - used elsewhere in Requests. - - :param name: a string containing name of cookie - :param domain: (optional) string containing domain of cookie - :param path: (optional) string containing path of cookie - :raises KeyError: if cookie is not found - :raises CookieConflictError: if there are multiple cookies - that match name and optionally domain and path - :return: cookie.value - """ - toReturn = None - for cookie in iter(self): - if cookie.name == name: - if domain is None or cookie.domain == domain: - if path is None or cookie.path == path: - if toReturn is not None: # if there are multiple cookies that meet passed in criteria - raise CookieConflictError('There are multiple cookies with name, %r' % (name)) - toReturn = cookie.value # we will eventually return this as long as no cookie conflict - - if toReturn: - return toReturn - raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path)) - - def __getstate__(self): - """Unlike a normal CookieJar, this class is pickleable.""" - state = self.__dict__.copy() - # remove the unpickleable RLock object - state.pop('_cookies_lock') - return state - - def __setstate__(self, state): - """Unlike a normal CookieJar, this class is pickleable.""" - self.__dict__.update(state) - if '_cookies_lock' not in self.__dict__: - self._cookies_lock = threading.RLock() - - def copy(self): - """Return a copy of this RequestsCookieJar.""" - new_cj = RequestsCookieJar() - new_cj.set_policy(self.get_policy()) - new_cj.update(self) - return new_cj - - def get_policy(self): - """Return the CookiePolicy instance used.""" - return self._policy - - -def _copy_cookie_jar(jar): - if jar is None: - return None - - if hasattr(jar, 'copy'): - # We're dealing with an instance of RequestsCookieJar - return jar.copy() - # We're dealing with a generic CookieJar instance - new_jar = copy.copy(jar) - new_jar.clear() - for cookie in jar: - new_jar.set_cookie(copy.copy(cookie)) - return new_jar - - -def create_cookie(name, value, **kwargs): - """Make a cookie from underspecified parameters. - - By default, the pair of `name` and `value` will be set for the domain '' - and sent on every request (this is sometimes called a "supercookie"). - """ - result = { - 'version': 0, - 'name': name, - 'value': value, - 'port': None, - 'domain': '', - 'path': '/', - 'secure': False, - 'expires': None, - 'discard': True, - 'comment': None, - 'comment_url': None, - 'rest': {'HttpOnly': None}, - 'rfc2109': False, - } - - badargs = set(kwargs) - set(result) - if badargs: - err = 'create_cookie() got unexpected keyword arguments: %s' - raise TypeError(err % list(badargs)) - - result.update(kwargs) - result['port_specified'] = bool(result['port']) - result['domain_specified'] = bool(result['domain']) - result['domain_initial_dot'] = result['domain'].startswith('.') - result['path_specified'] = bool(result['path']) - - return cookielib.Cookie(**result) - - -def morsel_to_cookie(morsel): - """Convert a Morsel object into a Cookie containing the one k/v pair.""" - - expires = None - if morsel['max-age']: - try: - expires = int(time.time() + int(morsel['max-age'])) - except ValueError: - raise TypeError('max-age: %s must be integer' % morsel['max-age']) - elif morsel['expires']: - time_template = '%a, %d-%b-%Y %H:%M:%S GMT' - expires = calendar.timegm( - time.strptime(morsel['expires'], time_template) - ) - return create_cookie( - comment=morsel['comment'], - comment_url=bool(morsel['comment']), - discard=False, - domain=morsel['domain'], - expires=expires, - name=morsel.key, - path=morsel['path'], - port=None, - rest={'HttpOnly': morsel['httponly']}, - rfc2109=False, - secure=bool(morsel['secure']), - value=morsel.value, - version=morsel['version'] or 0, - ) - - -def cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True): - """Returns a CookieJar from a key/value dictionary. - - :param cookie_dict: Dict of key/values to insert into CookieJar. - :param cookiejar: (optional) A cookiejar to add the cookies to. - :param overwrite: (optional) If False, will not replace cookies - already in the jar with new ones. - :rtype: CookieJar - """ - if cookiejar is None: - cookiejar = RequestsCookieJar() - - if cookie_dict is not None: - names_from_jar = [cookie.name for cookie in cookiejar] - for name in cookie_dict: - if overwrite or (name not in names_from_jar): - cookiejar.set_cookie(create_cookie(name, cookie_dict[name])) - - return cookiejar - - -def merge_cookies(cookiejar, cookies): - """Add cookies to cookiejar and returns a merged CookieJar. - - :param cookiejar: CookieJar object to add the cookies to. - :param cookies: Dictionary or CookieJar object to be added. - :rtype: CookieJar - """ - if not isinstance(cookiejar, cookielib.CookieJar): - raise ValueError('You can only merge into CookieJar') - - if isinstance(cookies, dict): - cookiejar = cookiejar_from_dict( - cookies, cookiejar=cookiejar, overwrite=False) - elif isinstance(cookies, cookielib.CookieJar): - try: - cookiejar.update(cookies) - except AttributeError: - for cookie_in_jar in cookies: - cookiejar.set_cookie(cookie_in_jar) - - return cookiejar diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/exceptions.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/exceptions.py deleted file mode 100644 index a91e1fd..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/exceptions.py +++ /dev/null @@ -1,126 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.exceptions -~~~~~~~~~~~~~~~~~~~ - -This module contains the set of Requests' exceptions. -""" -from pip._vendor.urllib3.exceptions import HTTPError as BaseHTTPError - - -class RequestException(IOError): - """There was an ambiguous exception that occurred while handling your - request. - """ - - def __init__(self, *args, **kwargs): - """Initialize RequestException with `request` and `response` objects.""" - response = kwargs.pop('response', None) - self.response = response - self.request = kwargs.pop('request', None) - if (response is not None and not self.request and - hasattr(response, 'request')): - self.request = self.response.request - super(RequestException, self).__init__(*args, **kwargs) - - -class HTTPError(RequestException): - """An HTTP error occurred.""" - - -class ConnectionError(RequestException): - """A Connection error occurred.""" - - -class ProxyError(ConnectionError): - """A proxy error occurred.""" - - -class SSLError(ConnectionError): - """An SSL error occurred.""" - - -class Timeout(RequestException): - """The request timed out. - - Catching this error will catch both - :exc:`~requests.exceptions.ConnectTimeout` and - :exc:`~requests.exceptions.ReadTimeout` errors. - """ - - -class ConnectTimeout(ConnectionError, Timeout): - """The request timed out while trying to connect to the remote server. - - Requests that produced this error are safe to retry. - """ - - -class ReadTimeout(Timeout): - """The server did not send any data in the allotted amount of time.""" - - -class URLRequired(RequestException): - """A valid URL is required to make a request.""" - - -class TooManyRedirects(RequestException): - """Too many redirects.""" - - -class MissingSchema(RequestException, ValueError): - """The URL schema (e.g. http or https) is missing.""" - - -class InvalidSchema(RequestException, ValueError): - """See defaults.py for valid schemas.""" - - -class InvalidURL(RequestException, ValueError): - """The URL provided was somehow invalid.""" - - -class InvalidHeader(RequestException, ValueError): - """The header value provided was somehow invalid.""" - - -class InvalidProxyURL(InvalidURL): - """The proxy URL provided is invalid.""" - - -class ChunkedEncodingError(RequestException): - """The server declared chunked encoding but sent an invalid chunk.""" - - -class ContentDecodingError(RequestException, BaseHTTPError): - """Failed to decode response content""" - - -class StreamConsumedError(RequestException, TypeError): - """The content for this response was already consumed""" - - -class RetryError(RequestException): - """Custom retries logic failed""" - - -class UnrewindableBodyError(RequestException): - """Requests encountered an error when trying to rewind a body""" - -# Warnings - - -class RequestsWarning(Warning): - """Base warning for Requests.""" - pass - - -class FileModeWarning(RequestsWarning, DeprecationWarning): - """A file was opened in text mode, but Requests determined its binary length.""" - pass - - -class RequestsDependencyWarning(RequestsWarning): - """An imported dependency doesn't match the expected version range.""" - pass diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/help.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/help.py deleted file mode 100644 index 3c3072b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/help.py +++ /dev/null @@ -1,119 +0,0 @@ -"""Module containing bug report helper(s).""" -from __future__ import print_function - -import json -import platform -import sys -import ssl - -from pip._vendor import idna -from pip._vendor import urllib3 -from pip._vendor import chardet - -from . import __version__ as requests_version - -try: - from pip._vendor.urllib3.contrib import pyopenssl -except ImportError: - pyopenssl = None - OpenSSL = None - cryptography = None -else: - import OpenSSL - import cryptography - - -def _implementation(): - """Return a dict with the Python implementation and version. - - Provide both the name and the version of the Python implementation - currently running. For example, on CPython 2.7.5 it will return - {'name': 'CPython', 'version': '2.7.5'}. - - This function works best on CPython and PyPy: in particular, it probably - doesn't work for Jython or IronPython. Future investigation should be done - to work out the correct shape of the code for those platforms. - """ - implementation = platform.python_implementation() - - if implementation == 'CPython': - implementation_version = platform.python_version() - elif implementation == 'PyPy': - implementation_version = '%s.%s.%s' % (sys.pypy_version_info.major, - sys.pypy_version_info.minor, - sys.pypy_version_info.micro) - if sys.pypy_version_info.releaselevel != 'final': - implementation_version = ''.join([ - implementation_version, sys.pypy_version_info.releaselevel - ]) - elif implementation == 'Jython': - implementation_version = platform.python_version() # Complete Guess - elif implementation == 'IronPython': - implementation_version = platform.python_version() # Complete Guess - else: - implementation_version = 'Unknown' - - return {'name': implementation, 'version': implementation_version} - - -def info(): - """Generate information for a bug report.""" - try: - platform_info = { - 'system': platform.system(), - 'release': platform.release(), - } - except IOError: - platform_info = { - 'system': 'Unknown', - 'release': 'Unknown', - } - - implementation_info = _implementation() - urllib3_info = {'version': urllib3.__version__} - chardet_info = {'version': chardet.__version__} - - pyopenssl_info = { - 'version': None, - 'openssl_version': '', - } - if OpenSSL: - pyopenssl_info = { - 'version': OpenSSL.__version__, - 'openssl_version': '%x' % OpenSSL.SSL.OPENSSL_VERSION_NUMBER, - } - cryptography_info = { - 'version': getattr(cryptography, '__version__', ''), - } - idna_info = { - 'version': getattr(idna, '__version__', ''), - } - - system_ssl = ssl.OPENSSL_VERSION_NUMBER - system_ssl_info = { - 'version': '%x' % system_ssl if system_ssl is not None else '' - } - - return { - 'platform': platform_info, - 'implementation': implementation_info, - 'system_ssl': system_ssl_info, - 'using_pyopenssl': pyopenssl is not None, - 'pyOpenSSL': pyopenssl_info, - 'urllib3': urllib3_info, - 'chardet': chardet_info, - 'cryptography': cryptography_info, - 'idna': idna_info, - 'requests': { - 'version': requests_version, - }, - } - - -def main(): - """Pretty-print the bug information as JSON.""" - print(json.dumps(info(), sort_keys=True, indent=2)) - - -if __name__ == '__main__': - main() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/hooks.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/hooks.py deleted file mode 100644 index 7a51f21..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/hooks.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.hooks -~~~~~~~~~~~~~~ - -This module provides the capabilities for the Requests hooks system. - -Available hooks: - -``response``: - The response generated from a Request. -""" -HOOKS = ['response'] - - -def default_hooks(): - return {event: [] for event in HOOKS} - -# TODO: response is the only one - - -def dispatch_hook(key, hooks, hook_data, **kwargs): - """Dispatches a hook dictionary on a given piece of data.""" - hooks = hooks or {} - hooks = hooks.get(key) - if hooks: - if hasattr(hooks, '__call__'): - hooks = [hooks] - for hook in hooks: - _hook_data = hook(hook_data, **kwargs) - if _hook_data is not None: - hook_data = _hook_data - return hook_data diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/models.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/models.py deleted file mode 100644 index 0839957..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/models.py +++ /dev/null @@ -1,953 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.models -~~~~~~~~~~~~~~~ - -This module contains the primary objects that power Requests. -""" - -import datetime -import sys - -# Import encoding now, to avoid implicit import later. -# Implicit import within threads may cause LookupError when standard library is in a ZIP, -# such as in Embedded Python. See https://github.com/requests/requests/issues/3578. -import encodings.idna - -from pip._vendor.urllib3.fields import RequestField -from pip._vendor.urllib3.filepost import encode_multipart_formdata -from pip._vendor.urllib3.util import parse_url -from pip._vendor.urllib3.exceptions import ( - DecodeError, ReadTimeoutError, ProtocolError, LocationParseError) - -from io import UnsupportedOperation -from .hooks import default_hooks -from .structures import CaseInsensitiveDict - -from .auth import HTTPBasicAuth -from .cookies import cookiejar_from_dict, get_cookie_header, _copy_cookie_jar -from .exceptions import ( - HTTPError, MissingSchema, InvalidURL, ChunkedEncodingError, - ContentDecodingError, ConnectionError, StreamConsumedError) -from ._internal_utils import to_native_string, unicode_is_ascii -from .utils import ( - guess_filename, get_auth_from_url, requote_uri, - stream_decode_response_unicode, to_key_val_list, parse_header_links, - iter_slices, guess_json_utf, super_len, check_header_validity) -from .compat import ( - Callable, Mapping, - cookielib, urlunparse, urlsplit, urlencode, str, bytes, - is_py2, chardet, builtin_str, basestring) -from .compat import json as complexjson -from .status_codes import codes - -#: The set of HTTP status codes that indicate an automatically -#: processable redirect. -REDIRECT_STATI = ( - codes.moved, # 301 - codes.found, # 302 - codes.other, # 303 - codes.temporary_redirect, # 307 - codes.permanent_redirect, # 308 -) - -DEFAULT_REDIRECT_LIMIT = 30 -CONTENT_CHUNK_SIZE = 10 * 1024 -ITER_CHUNK_SIZE = 512 - - -class RequestEncodingMixin(object): - @property - def path_url(self): - """Build the path URL to use.""" - - url = [] - - p = urlsplit(self.url) - - path = p.path - if not path: - path = '/' - - url.append(path) - - query = p.query - if query: - url.append('?') - url.append(query) - - return ''.join(url) - - @staticmethod - def _encode_params(data): - """Encode parameters in a piece of data. - - Will successfully encode parameters when passed as a dict or a list of - 2-tuples. Order is retained if data is a list of 2-tuples but arbitrary - if parameters are supplied as a dict. - """ - - if isinstance(data, (str, bytes)): - return data - elif hasattr(data, 'read'): - return data - elif hasattr(data, '__iter__'): - result = [] - for k, vs in to_key_val_list(data): - if isinstance(vs, basestring) or not hasattr(vs, '__iter__'): - vs = [vs] - for v in vs: - if v is not None: - result.append( - (k.encode('utf-8') if isinstance(k, str) else k, - v.encode('utf-8') if isinstance(v, str) else v)) - return urlencode(result, doseq=True) - else: - return data - - @staticmethod - def _encode_files(files, data): - """Build the body for a multipart/form-data request. - - Will successfully encode files when passed as a dict or a list of - tuples. Order is retained if data is a list of tuples but arbitrary - if parameters are supplied as a dict. - The tuples may be 2-tuples (filename, fileobj), 3-tuples (filename, fileobj, contentype) - or 4-tuples (filename, fileobj, contentype, custom_headers). - """ - if (not files): - raise ValueError("Files must be provided.") - elif isinstance(data, basestring): - raise ValueError("Data must not be a string.") - - new_fields = [] - fields = to_key_val_list(data or {}) - files = to_key_val_list(files or {}) - - for field, val in fields: - if isinstance(val, basestring) or not hasattr(val, '__iter__'): - val = [val] - for v in val: - if v is not None: - # Don't call str() on bytestrings: in Py3 it all goes wrong. - if not isinstance(v, bytes): - v = str(v) - - new_fields.append( - (field.decode('utf-8') if isinstance(field, bytes) else field, - v.encode('utf-8') if isinstance(v, str) else v)) - - for (k, v) in files: - # support for explicit filename - ft = None - fh = None - if isinstance(v, (tuple, list)): - if len(v) == 2: - fn, fp = v - elif len(v) == 3: - fn, fp, ft = v - else: - fn, fp, ft, fh = v - else: - fn = guess_filename(v) or k - fp = v - - if isinstance(fp, (str, bytes, bytearray)): - fdata = fp - elif hasattr(fp, 'read'): - fdata = fp.read() - elif fp is None: - continue - else: - fdata = fp - - rf = RequestField(name=k, data=fdata, filename=fn, headers=fh) - rf.make_multipart(content_type=ft) - new_fields.append(rf) - - body, content_type = encode_multipart_formdata(new_fields) - - return body, content_type - - -class RequestHooksMixin(object): - def register_hook(self, event, hook): - """Properly register a hook.""" - - if event not in self.hooks: - raise ValueError('Unsupported event specified, with event name "%s"' % (event)) - - if isinstance(hook, Callable): - self.hooks[event].append(hook) - elif hasattr(hook, '__iter__'): - self.hooks[event].extend(h for h in hook if isinstance(h, Callable)) - - def deregister_hook(self, event, hook): - """Deregister a previously registered hook. - Returns True if the hook existed, False if not. - """ - - try: - self.hooks[event].remove(hook) - return True - except ValueError: - return False - - -class Request(RequestHooksMixin): - """A user-created :class:`Request <Request>` object. - - Used to prepare a :class:`PreparedRequest <PreparedRequest>`, which is sent to the server. - - :param method: HTTP method to use. - :param url: URL to send. - :param headers: dictionary of headers to send. - :param files: dictionary of {filename: fileobject} files to multipart upload. - :param data: the body to attach to the request. If a dictionary or - list of tuples ``[(key, value)]`` is provided, form-encoding will - take place. - :param json: json for the body to attach to the request (if files or data is not specified). - :param params: URL parameters to append to the URL. If a dictionary or - list of tuples ``[(key, value)]`` is provided, form-encoding will - take place. - :param auth: Auth handler or (user, pass) tuple. - :param cookies: dictionary or CookieJar of cookies to attach to this request. - :param hooks: dictionary of callback hooks, for internal usage. - - Usage:: - - >>> import requests - >>> req = requests.Request('GET', 'https://httpbin.org/get') - >>> req.prepare() - <PreparedRequest [GET]> - """ - - def __init__(self, - method=None, url=None, headers=None, files=None, data=None, - params=None, auth=None, cookies=None, hooks=None, json=None): - - # Default empty dicts for dict params. - data = [] if data is None else data - files = [] if files is None else files - headers = {} if headers is None else headers - params = {} if params is None else params - hooks = {} if hooks is None else hooks - - self.hooks = default_hooks() - for (k, v) in list(hooks.items()): - self.register_hook(event=k, hook=v) - - self.method = method - self.url = url - self.headers = headers - self.files = files - self.data = data - self.json = json - self.params = params - self.auth = auth - self.cookies = cookies - - def __repr__(self): - return '<Request [%s]>' % (self.method) - - def prepare(self): - """Constructs a :class:`PreparedRequest <PreparedRequest>` for transmission and returns it.""" - p = PreparedRequest() - p.prepare( - method=self.method, - url=self.url, - headers=self.headers, - files=self.files, - data=self.data, - json=self.json, - params=self.params, - auth=self.auth, - cookies=self.cookies, - hooks=self.hooks, - ) - return p - - -class PreparedRequest(RequestEncodingMixin, RequestHooksMixin): - """The fully mutable :class:`PreparedRequest <PreparedRequest>` object, - containing the exact bytes that will be sent to the server. - - Generated from either a :class:`Request <Request>` object or manually. - - Usage:: - - >>> import requests - >>> req = requests.Request('GET', 'https://httpbin.org/get') - >>> r = req.prepare() - <PreparedRequest [GET]> - - >>> s = requests.Session() - >>> s.send(r) - <Response [200]> - """ - - def __init__(self): - #: HTTP verb to send to the server. - self.method = None - #: HTTP URL to send the request to. - self.url = None - #: dictionary of HTTP headers. - self.headers = None - # The `CookieJar` used to create the Cookie header will be stored here - # after prepare_cookies is called - self._cookies = None - #: request body to send to the server. - self.body = None - #: dictionary of callback hooks, for internal usage. - self.hooks = default_hooks() - #: integer denoting starting position of a readable file-like body. - self._body_position = None - - def prepare(self, - method=None, url=None, headers=None, files=None, data=None, - params=None, auth=None, cookies=None, hooks=None, json=None): - """Prepares the entire request with the given parameters.""" - - self.prepare_method(method) - self.prepare_url(url, params) - self.prepare_headers(headers) - self.prepare_cookies(cookies) - self.prepare_body(data, files, json) - self.prepare_auth(auth, url) - - # Note that prepare_auth must be last to enable authentication schemes - # such as OAuth to work on a fully prepared request. - - # This MUST go after prepare_auth. Authenticators could add a hook - self.prepare_hooks(hooks) - - def __repr__(self): - return '<PreparedRequest [%s]>' % (self.method) - - def copy(self): - p = PreparedRequest() - p.method = self.method - p.url = self.url - p.headers = self.headers.copy() if self.headers is not None else None - p._cookies = _copy_cookie_jar(self._cookies) - p.body = self.body - p.hooks = self.hooks - p._body_position = self._body_position - return p - - def prepare_method(self, method): - """Prepares the given HTTP method.""" - self.method = method - if self.method is not None: - self.method = to_native_string(self.method.upper()) - - @staticmethod - def _get_idna_encoded_host(host): - from pip._vendor import idna - - try: - host = idna.encode(host, uts46=True).decode('utf-8') - except idna.IDNAError: - raise UnicodeError - return host - - def prepare_url(self, url, params): - """Prepares the given HTTP URL.""" - #: Accept objects that have string representations. - #: We're unable to blindly call unicode/str functions - #: as this will include the bytestring indicator (b'') - #: on python 3.x. - #: https://github.com/requests/requests/pull/2238 - if isinstance(url, bytes): - url = url.decode('utf8') - else: - url = unicode(url) if is_py2 else str(url) - - # Remove leading whitespaces from url - url = url.lstrip() - - # Don't do any URL preparation for non-HTTP schemes like `mailto`, - # `data` etc to work around exceptions from `url_parse`, which - # handles RFC 3986 only. - if ':' in url and not url.lower().startswith('http'): - self.url = url - return - - # Support for unicode domain names and paths. - try: - scheme, auth, host, port, path, query, fragment = parse_url(url) - except LocationParseError as e: - raise InvalidURL(*e.args) - - if not scheme: - error = ("Invalid URL {0!r}: No schema supplied. Perhaps you meant http://{0}?") - error = error.format(to_native_string(url, 'utf8')) - - raise MissingSchema(error) - - if not host: - raise InvalidURL("Invalid URL %r: No host supplied" % url) - - # In general, we want to try IDNA encoding the hostname if the string contains - # non-ASCII characters. This allows users to automatically get the correct IDNA - # behaviour. For strings containing only ASCII characters, we need to also verify - # it doesn't start with a wildcard (*), before allowing the unencoded hostname. - if not unicode_is_ascii(host): - try: - host = self._get_idna_encoded_host(host) - except UnicodeError: - raise InvalidURL('URL has an invalid label.') - elif host.startswith(u'*'): - raise InvalidURL('URL has an invalid label.') - - # Carefully reconstruct the network location - netloc = auth or '' - if netloc: - netloc += '@' - netloc += host - if port: - netloc += ':' + str(port) - - # Bare domains aren't valid URLs. - if not path: - path = '/' - - if is_py2: - if isinstance(scheme, str): - scheme = scheme.encode('utf-8') - if isinstance(netloc, str): - netloc = netloc.encode('utf-8') - if isinstance(path, str): - path = path.encode('utf-8') - if isinstance(query, str): - query = query.encode('utf-8') - if isinstance(fragment, str): - fragment = fragment.encode('utf-8') - - if isinstance(params, (str, bytes)): - params = to_native_string(params) - - enc_params = self._encode_params(params) - if enc_params: - if query: - query = '%s&%s' % (query, enc_params) - else: - query = enc_params - - url = requote_uri(urlunparse([scheme, netloc, path, None, query, fragment])) - self.url = url - - def prepare_headers(self, headers): - """Prepares the given HTTP headers.""" - - self.headers = CaseInsensitiveDict() - if headers: - for header in headers.items(): - # Raise exception on invalid header value. - check_header_validity(header) - name, value = header - self.headers[to_native_string(name)] = value - - def prepare_body(self, data, files, json=None): - """Prepares the given HTTP body data.""" - - # Check if file, fo, generator, iterator. - # If not, run through normal process. - - # Nottin' on you. - body = None - content_type = None - - if not data and json is not None: - # urllib3 requires a bytes-like body. Python 2's json.dumps - # provides this natively, but Python 3 gives a Unicode string. - content_type = 'application/json' - body = complexjson.dumps(json) - if not isinstance(body, bytes): - body = body.encode('utf-8') - - is_stream = all([ - hasattr(data, '__iter__'), - not isinstance(data, (basestring, list, tuple, Mapping)) - ]) - - try: - length = super_len(data) - except (TypeError, AttributeError, UnsupportedOperation): - length = None - - if is_stream: - body = data - - if getattr(body, 'tell', None) is not None: - # Record the current file position before reading. - # This will allow us to rewind a file in the event - # of a redirect. - try: - self._body_position = body.tell() - except (IOError, OSError): - # This differentiates from None, allowing us to catch - # a failed `tell()` later when trying to rewind the body - self._body_position = object() - - if files: - raise NotImplementedError('Streamed bodies and files are mutually exclusive.') - - if length: - self.headers['Content-Length'] = builtin_str(length) - else: - self.headers['Transfer-Encoding'] = 'chunked' - else: - # Multi-part file uploads. - if files: - (body, content_type) = self._encode_files(files, data) - else: - if data: - body = self._encode_params(data) - if isinstance(data, basestring) or hasattr(data, 'read'): - content_type = None - else: - content_type = 'application/x-www-form-urlencoded' - - self.prepare_content_length(body) - - # Add content-type if it wasn't explicitly provided. - if content_type and ('content-type' not in self.headers): - self.headers['Content-Type'] = content_type - - self.body = body - - def prepare_content_length(self, body): - """Prepare Content-Length header based on request method and body""" - if body is not None: - length = super_len(body) - if length: - # If length exists, set it. Otherwise, we fallback - # to Transfer-Encoding: chunked. - self.headers['Content-Length'] = builtin_str(length) - elif self.method not in ('GET', 'HEAD') and self.headers.get('Content-Length') is None: - # Set Content-Length to 0 for methods that can have a body - # but don't provide one. (i.e. not GET or HEAD) - self.headers['Content-Length'] = '0' - - def prepare_auth(self, auth, url=''): - """Prepares the given HTTP auth data.""" - - # If no Auth is explicitly provided, extract it from the URL first. - if auth is None: - url_auth = get_auth_from_url(self.url) - auth = url_auth if any(url_auth) else None - - if auth: - if isinstance(auth, tuple) and len(auth) == 2: - # special-case basic HTTP auth - auth = HTTPBasicAuth(*auth) - - # Allow auth to make its changes. - r = auth(self) - - # Update self to reflect the auth changes. - self.__dict__.update(r.__dict__) - - # Recompute Content-Length - self.prepare_content_length(self.body) - - def prepare_cookies(self, cookies): - """Prepares the given HTTP cookie data. - - This function eventually generates a ``Cookie`` header from the - given cookies using cookielib. Due to cookielib's design, the header - will not be regenerated if it already exists, meaning this function - can only be called once for the life of the - :class:`PreparedRequest <PreparedRequest>` object. Any subsequent calls - to ``prepare_cookies`` will have no actual effect, unless the "Cookie" - header is removed beforehand. - """ - if isinstance(cookies, cookielib.CookieJar): - self._cookies = cookies - else: - self._cookies = cookiejar_from_dict(cookies) - - cookie_header = get_cookie_header(self._cookies, self) - if cookie_header is not None: - self.headers['Cookie'] = cookie_header - - def prepare_hooks(self, hooks): - """Prepares the given hooks.""" - # hooks can be passed as None to the prepare method and to this - # method. To prevent iterating over None, simply use an empty list - # if hooks is False-y - hooks = hooks or [] - for event in hooks: - self.register_hook(event, hooks[event]) - - -class Response(object): - """The :class:`Response <Response>` object, which contains a - server's response to an HTTP request. - """ - - __attrs__ = [ - '_content', 'status_code', 'headers', 'url', 'history', - 'encoding', 'reason', 'cookies', 'elapsed', 'request' - ] - - def __init__(self): - self._content = False - self._content_consumed = False - self._next = None - - #: Integer Code of responded HTTP Status, e.g. 404 or 200. - self.status_code = None - - #: Case-insensitive Dictionary of Response Headers. - #: For example, ``headers['content-encoding']`` will return the - #: value of a ``'Content-Encoding'`` response header. - self.headers = CaseInsensitiveDict() - - #: File-like object representation of response (for advanced usage). - #: Use of ``raw`` requires that ``stream=True`` be set on the request. - # This requirement does not apply for use internally to Requests. - self.raw = None - - #: Final URL location of Response. - self.url = None - - #: Encoding to decode with when accessing r.text. - self.encoding = None - - #: A list of :class:`Response <Response>` objects from - #: the history of the Request. Any redirect responses will end - #: up here. The list is sorted from the oldest to the most recent request. - self.history = [] - - #: Textual reason of responded HTTP Status, e.g. "Not Found" or "OK". - self.reason = None - - #: A CookieJar of Cookies the server sent back. - self.cookies = cookiejar_from_dict({}) - - #: The amount of time elapsed between sending the request - #: and the arrival of the response (as a timedelta). - #: This property specifically measures the time taken between sending - #: the first byte of the request and finishing parsing the headers. It - #: is therefore unaffected by consuming the response content or the - #: value of the ``stream`` keyword argument. - self.elapsed = datetime.timedelta(0) - - #: The :class:`PreparedRequest <PreparedRequest>` object to which this - #: is a response. - self.request = None - - def __enter__(self): - return self - - def __exit__(self, *args): - self.close() - - def __getstate__(self): - # Consume everything; accessing the content attribute makes - # sure the content has been fully read. - if not self._content_consumed: - self.content - - return {attr: getattr(self, attr, None) for attr in self.__attrs__} - - def __setstate__(self, state): - for name, value in state.items(): - setattr(self, name, value) - - # pickled objects do not have .raw - setattr(self, '_content_consumed', True) - setattr(self, 'raw', None) - - def __repr__(self): - return '<Response [%s]>' % (self.status_code) - - def __bool__(self): - """Returns True if :attr:`status_code` is less than 400. - - This attribute checks if the status code of the response is between - 400 and 600 to see if there was a client error or a server error. If - the status code, is between 200 and 400, this will return True. This - is **not** a check to see if the response code is ``200 OK``. - """ - return self.ok - - def __nonzero__(self): - """Returns True if :attr:`status_code` is less than 400. - - This attribute checks if the status code of the response is between - 400 and 600 to see if there was a client error or a server error. If - the status code, is between 200 and 400, this will return True. This - is **not** a check to see if the response code is ``200 OK``. - """ - return self.ok - - def __iter__(self): - """Allows you to use a response as an iterator.""" - return self.iter_content(128) - - @property - def ok(self): - """Returns True if :attr:`status_code` is less than 400, False if not. - - This attribute checks if the status code of the response is between - 400 and 600 to see if there was a client error or a server error. If - the status code is between 200 and 400, this will return True. This - is **not** a check to see if the response code is ``200 OK``. - """ - try: - self.raise_for_status() - except HTTPError: - return False - return True - - @property - def is_redirect(self): - """True if this Response is a well-formed HTTP redirect that could have - been processed automatically (by :meth:`Session.resolve_redirects`). - """ - return ('location' in self.headers and self.status_code in REDIRECT_STATI) - - @property - def is_permanent_redirect(self): - """True if this Response one of the permanent versions of redirect.""" - return ('location' in self.headers and self.status_code in (codes.moved_permanently, codes.permanent_redirect)) - - @property - def next(self): - """Returns a PreparedRequest for the next request in a redirect chain, if there is one.""" - return self._next - - @property - def apparent_encoding(self): - """The apparent encoding, provided by the chardet library.""" - return chardet.detect(self.content)['encoding'] - - def iter_content(self, chunk_size=1, decode_unicode=False): - """Iterates over the response data. When stream=True is set on the - request, this avoids reading the content at once into memory for - large responses. The chunk size is the number of bytes it should - read into memory. This is not necessarily the length of each item - returned as decoding can take place. - - chunk_size must be of type int or None. A value of None will - function differently depending on the value of `stream`. - stream=True will read data as it arrives in whatever size the - chunks are received. If stream=False, data is returned as - a single chunk. - - If decode_unicode is True, content will be decoded using the best - available encoding based on the response. - """ - - def generate(): - # Special case for urllib3. - if hasattr(self.raw, 'stream'): - try: - for chunk in self.raw.stream(chunk_size, decode_content=True): - yield chunk - except ProtocolError as e: - raise ChunkedEncodingError(e) - except DecodeError as e: - raise ContentDecodingError(e) - except ReadTimeoutError as e: - raise ConnectionError(e) - else: - # Standard file-like object. - while True: - chunk = self.raw.read(chunk_size) - if not chunk: - break - yield chunk - - self._content_consumed = True - - if self._content_consumed and isinstance(self._content, bool): - raise StreamConsumedError() - elif chunk_size is not None and not isinstance(chunk_size, int): - raise TypeError("chunk_size must be an int, it is instead a %s." % type(chunk_size)) - # simulate reading small chunks of the content - reused_chunks = iter_slices(self._content, chunk_size) - - stream_chunks = generate() - - chunks = reused_chunks if self._content_consumed else stream_chunks - - if decode_unicode: - chunks = stream_decode_response_unicode(chunks, self) - - return chunks - - def iter_lines(self, chunk_size=ITER_CHUNK_SIZE, decode_unicode=False, delimiter=None): - """Iterates over the response data, one line at a time. When - stream=True is set on the request, this avoids reading the - content at once into memory for large responses. - - .. note:: This method is not reentrant safe. - """ - - pending = None - - for chunk in self.iter_content(chunk_size=chunk_size, decode_unicode=decode_unicode): - - if pending is not None: - chunk = pending + chunk - - if delimiter: - lines = chunk.split(delimiter) - else: - lines = chunk.splitlines() - - if lines and lines[-1] and chunk and lines[-1][-1] == chunk[-1]: - pending = lines.pop() - else: - pending = None - - for line in lines: - yield line - - if pending is not None: - yield pending - - @property - def content(self): - """Content of the response, in bytes.""" - - if self._content is False: - # Read the contents. - if self._content_consumed: - raise RuntimeError( - 'The content for this response was already consumed') - - if self.status_code == 0 or self.raw is None: - self._content = None - else: - self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b'' - - self._content_consumed = True - # don't need to release the connection; that's been handled by urllib3 - # since we exhausted the data. - return self._content - - @property - def text(self): - """Content of the response, in unicode. - - If Response.encoding is None, encoding will be guessed using - ``chardet``. - - The encoding of the response content is determined based solely on HTTP - headers, following RFC 2616 to the letter. If you can take advantage of - non-HTTP knowledge to make a better guess at the encoding, you should - set ``r.encoding`` appropriately before accessing this property. - """ - - # Try charset from content-type - content = None - encoding = self.encoding - - if not self.content: - return str('') - - # Fallback to auto-detected encoding. - if self.encoding is None: - encoding = self.apparent_encoding - - # Decode unicode from given encoding. - try: - content = str(self.content, encoding, errors='replace') - except (LookupError, TypeError): - # A LookupError is raised if the encoding was not found which could - # indicate a misspelling or similar mistake. - # - # A TypeError can be raised if encoding is None - # - # So we try blindly encoding. - content = str(self.content, errors='replace') - - return content - - def json(self, **kwargs): - r"""Returns the json-encoded content of a response, if any. - - :param \*\*kwargs: Optional arguments that ``json.loads`` takes. - :raises ValueError: If the response body does not contain valid json. - """ - - if not self.encoding and self.content and len(self.content) > 3: - # No encoding set. JSON RFC 4627 section 3 states we should expect - # UTF-8, -16 or -32. Detect which one to use; If the detection or - # decoding fails, fall back to `self.text` (using chardet to make - # a best guess). - encoding = guess_json_utf(self.content) - if encoding is not None: - try: - return complexjson.loads( - self.content.decode(encoding), **kwargs - ) - except UnicodeDecodeError: - # Wrong UTF codec detected; usually because it's not UTF-8 - # but some other 8-bit codec. This is an RFC violation, - # and the server didn't bother to tell us what codec *was* - # used. - pass - return complexjson.loads(self.text, **kwargs) - - @property - def links(self): - """Returns the parsed header links of the response, if any.""" - - header = self.headers.get('link') - - # l = MultiDict() - l = {} - - if header: - links = parse_header_links(header) - - for link in links: - key = link.get('rel') or link.get('url') - l[key] = link - - return l - - def raise_for_status(self): - """Raises stored :class:`HTTPError`, if one occurred.""" - - http_error_msg = '' - if isinstance(self.reason, bytes): - # We attempt to decode utf-8 first because some servers - # choose to localize their reason strings. If the string - # isn't utf-8, we fall back to iso-8859-1 for all other - # encodings. (See PR #3538) - try: - reason = self.reason.decode('utf-8') - except UnicodeDecodeError: - reason = self.reason.decode('iso-8859-1') - else: - reason = self.reason - - if 400 <= self.status_code < 500: - http_error_msg = u'%s Client Error: %s for url: %s' % (self.status_code, reason, self.url) - - elif 500 <= self.status_code < 600: - http_error_msg = u'%s Server Error: %s for url: %s' % (self.status_code, reason, self.url) - - if http_error_msg: - raise HTTPError(http_error_msg, response=self) - - def close(self): - """Releases the connection back to the pool. Once this method has been - called the underlying ``raw`` object must not be accessed again. - - *Note: Should not normally need to be called explicitly.* - """ - if not self._content_consumed: - self.raw.close() - - release_conn = getattr(self.raw, 'release_conn', None) - if release_conn is not None: - release_conn() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/packages.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/packages.py deleted file mode 100644 index 9582fa7..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/packages.py +++ /dev/null @@ -1,16 +0,0 @@ -import sys - -# This code exists for backwards compatibility reasons. -# I don't like it either. Just look the other way. :) - -for package in ('urllib3', 'idna', 'chardet'): - vendored_package = "pip._vendor." + package - locals()[package] = __import__(vendored_package) - # This traversal is apparently necessary such that the identities are - # preserved (requests.packages.urllib3.* is urllib3.*) - for mod in list(sys.modules): - if mod == vendored_package or mod.startswith(vendored_package + '.'): - unprefixed_mod = mod[len("pip._vendor."):] - sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod] - -# Kinda cool, though, right? diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/sessions.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/sessions.py deleted file mode 100644 index d73d700..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/sessions.py +++ /dev/null @@ -1,770 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.session -~~~~~~~~~~~~~~~~ - -This module provides a Session object to manage and persist settings across -requests (cookies, auth, proxies). -""" -import os -import sys -import time -from datetime import timedelta - -from .auth import _basic_auth_str -from .compat import cookielib, is_py3, OrderedDict, urljoin, urlparse, Mapping -from .cookies import ( - cookiejar_from_dict, extract_cookies_to_jar, RequestsCookieJar, merge_cookies) -from .models import Request, PreparedRequest, DEFAULT_REDIRECT_LIMIT -from .hooks import default_hooks, dispatch_hook -from ._internal_utils import to_native_string -from .utils import to_key_val_list, default_headers, DEFAULT_PORTS -from .exceptions import ( - TooManyRedirects, InvalidSchema, ChunkedEncodingError, ContentDecodingError) - -from .structures import CaseInsensitiveDict -from .adapters import HTTPAdapter - -from .utils import ( - requote_uri, get_environ_proxies, get_netrc_auth, should_bypass_proxies, - get_auth_from_url, rewind_body -) - -from .status_codes import codes - -# formerly defined here, reexposed here for backward compatibility -from .models import REDIRECT_STATI - -# Preferred clock, based on which one is more accurate on a given system. -if sys.platform == 'win32': - try: # Python 3.4+ - preferred_clock = time.perf_counter - except AttributeError: # Earlier than Python 3. - preferred_clock = time.clock -else: - preferred_clock = time.time - - -def merge_setting(request_setting, session_setting, dict_class=OrderedDict): - """Determines appropriate setting for a given request, taking into account - the explicit setting on that request, and the setting in the session. If a - setting is a dictionary, they will be merged together using `dict_class` - """ - - if session_setting is None: - return request_setting - - if request_setting is None: - return session_setting - - # Bypass if not a dictionary (e.g. verify) - if not ( - isinstance(session_setting, Mapping) and - isinstance(request_setting, Mapping) - ): - return request_setting - - merged_setting = dict_class(to_key_val_list(session_setting)) - merged_setting.update(to_key_val_list(request_setting)) - - # Remove keys that are set to None. Extract keys first to avoid altering - # the dictionary during iteration. - none_keys = [k for (k, v) in merged_setting.items() if v is None] - for key in none_keys: - del merged_setting[key] - - return merged_setting - - -def merge_hooks(request_hooks, session_hooks, dict_class=OrderedDict): - """Properly merges both requests and session hooks. - - This is necessary because when request_hooks == {'response': []}, the - merge breaks Session hooks entirely. - """ - if session_hooks is None or session_hooks.get('response') == []: - return request_hooks - - if request_hooks is None or request_hooks.get('response') == []: - return session_hooks - - return merge_setting(request_hooks, session_hooks, dict_class) - - -class SessionRedirectMixin(object): - - def get_redirect_target(self, resp): - """Receives a Response. Returns a redirect URI or ``None``""" - # Due to the nature of how requests processes redirects this method will - # be called at least once upon the original response and at least twice - # on each subsequent redirect response (if any). - # If a custom mixin is used to handle this logic, it may be advantageous - # to cache the redirect location onto the response object as a private - # attribute. - if resp.is_redirect: - location = resp.headers['location'] - # Currently the underlying http module on py3 decode headers - # in latin1, but empirical evidence suggests that latin1 is very - # rarely used with non-ASCII characters in HTTP headers. - # It is more likely to get UTF8 header rather than latin1. - # This causes incorrect handling of UTF8 encoded location headers. - # To solve this, we re-encode the location in latin1. - if is_py3: - location = location.encode('latin1') - return to_native_string(location, 'utf8') - return None - - def should_strip_auth(self, old_url, new_url): - """Decide whether Authorization header should be removed when redirecting""" - old_parsed = urlparse(old_url) - new_parsed = urlparse(new_url) - if old_parsed.hostname != new_parsed.hostname: - return True - # Special case: allow http -> https redirect when using the standard - # ports. This isn't specified by RFC 7235, but is kept to avoid - # breaking backwards compatibility with older versions of requests - # that allowed any redirects on the same host. - if (old_parsed.scheme == 'http' and old_parsed.port in (80, None) - and new_parsed.scheme == 'https' and new_parsed.port in (443, None)): - return False - - # Handle default port usage corresponding to scheme. - changed_port = old_parsed.port != new_parsed.port - changed_scheme = old_parsed.scheme != new_parsed.scheme - default_port = (DEFAULT_PORTS.get(old_parsed.scheme, None), None) - if (not changed_scheme and old_parsed.port in default_port - and new_parsed.port in default_port): - return False - - # Standard case: root URI must match - return changed_port or changed_scheme - - def resolve_redirects(self, resp, req, stream=False, timeout=None, - verify=True, cert=None, proxies=None, yield_requests=False, **adapter_kwargs): - """Receives a Response. Returns a generator of Responses or Requests.""" - - hist = [] # keep track of history - - url = self.get_redirect_target(resp) - previous_fragment = urlparse(req.url).fragment - while url: - prepared_request = req.copy() - - # Update history and keep track of redirects. - # resp.history must ignore the original request in this loop - hist.append(resp) - resp.history = hist[1:] - - try: - resp.content # Consume socket so it can be released - except (ChunkedEncodingError, ContentDecodingError, RuntimeError): - resp.raw.read(decode_content=False) - - if len(resp.history) >= self.max_redirects: - raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp) - - # Release the connection back into the pool. - resp.close() - - # Handle redirection without scheme (see: RFC 1808 Section 4) - if url.startswith('//'): - parsed_rurl = urlparse(resp.url) - url = '%s:%s' % (to_native_string(parsed_rurl.scheme), url) - - # Normalize url case and attach previous fragment if needed (RFC 7231 7.1.2) - parsed = urlparse(url) - if parsed.fragment == '' and previous_fragment: - parsed = parsed._replace(fragment=previous_fragment) - elif parsed.fragment: - previous_fragment = parsed.fragment - url = parsed.geturl() - - # Facilitate relative 'location' headers, as allowed by RFC 7231. - # (e.g. '/path/to/resource' instead of 'http://domain.tld/path/to/resource') - # Compliant with RFC3986, we percent encode the url. - if not parsed.netloc: - url = urljoin(resp.url, requote_uri(url)) - else: - url = requote_uri(url) - - prepared_request.url = to_native_string(url) - - self.rebuild_method(prepared_request, resp) - - # https://github.com/requests/requests/issues/1084 - if resp.status_code not in (codes.temporary_redirect, codes.permanent_redirect): - # https://github.com/requests/requests/issues/3490 - purged_headers = ('Content-Length', 'Content-Type', 'Transfer-Encoding') - for header in purged_headers: - prepared_request.headers.pop(header, None) - prepared_request.body = None - - headers = prepared_request.headers - try: - del headers['Cookie'] - except KeyError: - pass - - # Extract any cookies sent on the response to the cookiejar - # in the new request. Because we've mutated our copied prepared - # request, use the old one that we haven't yet touched. - extract_cookies_to_jar(prepared_request._cookies, req, resp.raw) - merge_cookies(prepared_request._cookies, self.cookies) - prepared_request.prepare_cookies(prepared_request._cookies) - - # Rebuild auth and proxy information. - proxies = self.rebuild_proxies(prepared_request, proxies) - self.rebuild_auth(prepared_request, resp) - - # A failed tell() sets `_body_position` to `object()`. This non-None - # value ensures `rewindable` will be True, allowing us to raise an - # UnrewindableBodyError, instead of hanging the connection. - rewindable = ( - prepared_request._body_position is not None and - ('Content-Length' in headers or 'Transfer-Encoding' in headers) - ) - - # Attempt to rewind consumed file-like object. - if rewindable: - rewind_body(prepared_request) - - # Override the original request. - req = prepared_request - - if yield_requests: - yield req - else: - - resp = self.send( - req, - stream=stream, - timeout=timeout, - verify=verify, - cert=cert, - proxies=proxies, - allow_redirects=False, - **adapter_kwargs - ) - - extract_cookies_to_jar(self.cookies, prepared_request, resp.raw) - - # extract redirect url, if any, for the next loop - url = self.get_redirect_target(resp) - yield resp - - def rebuild_auth(self, prepared_request, response): - """When being redirected we may want to strip authentication from the - request to avoid leaking credentials. This method intelligently removes - and reapplies authentication where possible to avoid credential loss. - """ - headers = prepared_request.headers - url = prepared_request.url - - if 'Authorization' in headers and self.should_strip_auth(response.request.url, url): - # If we get redirected to a new host, we should strip out any - # authentication headers. - del headers['Authorization'] - - # .netrc might have more auth for us on our new host. - new_auth = get_netrc_auth(url) if self.trust_env else None - if new_auth is not None: - prepared_request.prepare_auth(new_auth) - - return - - def rebuild_proxies(self, prepared_request, proxies): - """This method re-evaluates the proxy configuration by considering the - environment variables. If we are redirected to a URL covered by - NO_PROXY, we strip the proxy configuration. Otherwise, we set missing - proxy keys for this URL (in case they were stripped by a previous - redirect). - - This method also replaces the Proxy-Authorization header where - necessary. - - :rtype: dict - """ - proxies = proxies if proxies is not None else {} - headers = prepared_request.headers - url = prepared_request.url - scheme = urlparse(url).scheme - new_proxies = proxies.copy() - no_proxy = proxies.get('no_proxy') - - bypass_proxy = should_bypass_proxies(url, no_proxy=no_proxy) - if self.trust_env and not bypass_proxy: - environ_proxies = get_environ_proxies(url, no_proxy=no_proxy) - - proxy = environ_proxies.get(scheme, environ_proxies.get('all')) - - if proxy: - new_proxies.setdefault(scheme, proxy) - - if 'Proxy-Authorization' in headers: - del headers['Proxy-Authorization'] - - try: - username, password = get_auth_from_url(new_proxies[scheme]) - except KeyError: - username, password = None, None - - if username and password: - headers['Proxy-Authorization'] = _basic_auth_str(username, password) - - return new_proxies - - def rebuild_method(self, prepared_request, response): - """When being redirected we may want to change the method of the request - based on certain specs or browser behavior. - """ - method = prepared_request.method - - # https://tools.ietf.org/html/rfc7231#section-6.4.4 - if response.status_code == codes.see_other and method != 'HEAD': - method = 'GET' - - # Do what the browsers do, despite standards... - # First, turn 302s into GETs. - if response.status_code == codes.found and method != 'HEAD': - method = 'GET' - - # Second, if a POST is responded to with a 301, turn it into a GET. - # This bizarre behaviour is explained in Issue 1704. - if response.status_code == codes.moved and method == 'POST': - method = 'GET' - - prepared_request.method = method - - -class Session(SessionRedirectMixin): - """A Requests session. - - Provides cookie persistence, connection-pooling, and configuration. - - Basic Usage:: - - >>> import requests - >>> s = requests.Session() - >>> s.get('https://httpbin.org/get') - <Response [200]> - - Or as a context manager:: - - >>> with requests.Session() as s: - >>> s.get('https://httpbin.org/get') - <Response [200]> - """ - - __attrs__ = [ - 'headers', 'cookies', 'auth', 'proxies', 'hooks', 'params', 'verify', - 'cert', 'prefetch', 'adapters', 'stream', 'trust_env', - 'max_redirects', - ] - - def __init__(self): - - #: A case-insensitive dictionary of headers to be sent on each - #: :class:`Request <Request>` sent from this - #: :class:`Session <Session>`. - self.headers = default_headers() - - #: Default Authentication tuple or object to attach to - #: :class:`Request <Request>`. - self.auth = None - - #: Dictionary mapping protocol or protocol and host to the URL of the proxy - #: (e.g. {'http': 'foo.bar:3128', 'http://host.name': 'foo.bar:4012'}) to - #: be used on each :class:`Request <Request>`. - self.proxies = {} - - #: Event-handling hooks. - self.hooks = default_hooks() - - #: Dictionary of querystring data to attach to each - #: :class:`Request <Request>`. The dictionary values may be lists for - #: representing multivalued query parameters. - self.params = {} - - #: Stream response content default. - self.stream = False - - #: SSL Verification default. - self.verify = True - - #: SSL client certificate default, if String, path to ssl client - #: cert file (.pem). If Tuple, ('cert', 'key') pair. - self.cert = None - - #: Maximum number of redirects allowed. If the request exceeds this - #: limit, a :class:`TooManyRedirects` exception is raised. - #: This defaults to requests.models.DEFAULT_REDIRECT_LIMIT, which is - #: 30. - self.max_redirects = DEFAULT_REDIRECT_LIMIT - - #: Trust environment settings for proxy configuration, default - #: authentication and similar. - self.trust_env = True - - #: A CookieJar containing all currently outstanding cookies set on this - #: session. By default it is a - #: :class:`RequestsCookieJar <requests.cookies.RequestsCookieJar>`, but - #: may be any other ``cookielib.CookieJar`` compatible object. - self.cookies = cookiejar_from_dict({}) - - # Default connection adapters. - self.adapters = OrderedDict() - self.mount('https://', HTTPAdapter()) - self.mount('http://', HTTPAdapter()) - - def __enter__(self): - return self - - def __exit__(self, *args): - self.close() - - def prepare_request(self, request): - """Constructs a :class:`PreparedRequest <PreparedRequest>` for - transmission and returns it. The :class:`PreparedRequest` has settings - merged from the :class:`Request <Request>` instance and those of the - :class:`Session`. - - :param request: :class:`Request` instance to prepare with this - session's settings. - :rtype: requests.PreparedRequest - """ - cookies = request.cookies or {} - - # Bootstrap CookieJar. - if not isinstance(cookies, cookielib.CookieJar): - cookies = cookiejar_from_dict(cookies) - - # Merge with session cookies - merged_cookies = merge_cookies( - merge_cookies(RequestsCookieJar(), self.cookies), cookies) - - # Set environment's basic authentication if not explicitly set. - auth = request.auth - if self.trust_env and not auth and not self.auth: - auth = get_netrc_auth(request.url) - - p = PreparedRequest() - p.prepare( - method=request.method.upper(), - url=request.url, - files=request.files, - data=request.data, - json=request.json, - headers=merge_setting(request.headers, self.headers, dict_class=CaseInsensitiveDict), - params=merge_setting(request.params, self.params), - auth=merge_setting(auth, self.auth), - cookies=merged_cookies, - hooks=merge_hooks(request.hooks, self.hooks), - ) - return p - - def request(self, method, url, - params=None, data=None, headers=None, cookies=None, files=None, - auth=None, timeout=None, allow_redirects=True, proxies=None, - hooks=None, stream=None, verify=None, cert=None, json=None): - """Constructs a :class:`Request <Request>`, prepares it and sends it. - Returns :class:`Response <Response>` object. - - :param method: method for the new :class:`Request` object. - :param url: URL for the new :class:`Request` object. - :param params: (optional) Dictionary or bytes to be sent in the query - string for the :class:`Request`. - :param data: (optional) Dictionary, list of tuples, bytes, or file-like - object to send in the body of the :class:`Request`. - :param json: (optional) json to send in the body of the - :class:`Request`. - :param headers: (optional) Dictionary of HTTP Headers to send with the - :class:`Request`. - :param cookies: (optional) Dict or CookieJar object to send with the - :class:`Request`. - :param files: (optional) Dictionary of ``'filename': file-like-objects`` - for multipart encoding upload. - :param auth: (optional) Auth tuple or callable to enable - Basic/Digest/Custom HTTP Auth. - :param timeout: (optional) How long to wait for the server to send - data before giving up, as a float, or a :ref:`(connect timeout, - read timeout) <timeouts>` tuple. - :type timeout: float or tuple - :param allow_redirects: (optional) Set to True by default. - :type allow_redirects: bool - :param proxies: (optional) Dictionary mapping protocol or protocol and - hostname to the URL of the proxy. - :param stream: (optional) whether to immediately download the response - content. Defaults to ``False``. - :param verify: (optional) Either a boolean, in which case it controls whether we verify - the server's TLS certificate, or a string, in which case it must be a path - to a CA bundle to use. Defaults to ``True``. - :param cert: (optional) if String, path to ssl client cert file (.pem). - If Tuple, ('cert', 'key') pair. - :rtype: requests.Response - """ - # Create the Request. - req = Request( - method=method.upper(), - url=url, - headers=headers, - files=files, - data=data or {}, - json=json, - params=params or {}, - auth=auth, - cookies=cookies, - hooks=hooks, - ) - prep = self.prepare_request(req) - - proxies = proxies or {} - - settings = self.merge_environment_settings( - prep.url, proxies, stream, verify, cert - ) - - # Send the request. - send_kwargs = { - 'timeout': timeout, - 'allow_redirects': allow_redirects, - } - send_kwargs.update(settings) - resp = self.send(prep, **send_kwargs) - - return resp - - def get(self, url, **kwargs): - r"""Sends a GET request. Returns :class:`Response` object. - - :param url: URL for the new :class:`Request` object. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :rtype: requests.Response - """ - - kwargs.setdefault('allow_redirects', True) - return self.request('GET', url, **kwargs) - - def options(self, url, **kwargs): - r"""Sends a OPTIONS request. Returns :class:`Response` object. - - :param url: URL for the new :class:`Request` object. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :rtype: requests.Response - """ - - kwargs.setdefault('allow_redirects', True) - return self.request('OPTIONS', url, **kwargs) - - def head(self, url, **kwargs): - r"""Sends a HEAD request. Returns :class:`Response` object. - - :param url: URL for the new :class:`Request` object. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :rtype: requests.Response - """ - - kwargs.setdefault('allow_redirects', False) - return self.request('HEAD', url, **kwargs) - - def post(self, url, data=None, json=None, **kwargs): - r"""Sends a POST request. Returns :class:`Response` object. - - :param url: URL for the new :class:`Request` object. - :param data: (optional) Dictionary, list of tuples, bytes, or file-like - object to send in the body of the :class:`Request`. - :param json: (optional) json to send in the body of the :class:`Request`. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :rtype: requests.Response - """ - - return self.request('POST', url, data=data, json=json, **kwargs) - - def put(self, url, data=None, **kwargs): - r"""Sends a PUT request. Returns :class:`Response` object. - - :param url: URL for the new :class:`Request` object. - :param data: (optional) Dictionary, list of tuples, bytes, or file-like - object to send in the body of the :class:`Request`. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :rtype: requests.Response - """ - - return self.request('PUT', url, data=data, **kwargs) - - def patch(self, url, data=None, **kwargs): - r"""Sends a PATCH request. Returns :class:`Response` object. - - :param url: URL for the new :class:`Request` object. - :param data: (optional) Dictionary, list of tuples, bytes, or file-like - object to send in the body of the :class:`Request`. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :rtype: requests.Response - """ - - return self.request('PATCH', url, data=data, **kwargs) - - def delete(self, url, **kwargs): - r"""Sends a DELETE request. Returns :class:`Response` object. - - :param url: URL for the new :class:`Request` object. - :param \*\*kwargs: Optional arguments that ``request`` takes. - :rtype: requests.Response - """ - - return self.request('DELETE', url, **kwargs) - - def send(self, request, **kwargs): - """Send a given PreparedRequest. - - :rtype: requests.Response - """ - # Set defaults that the hooks can utilize to ensure they always have - # the correct parameters to reproduce the previous request. - kwargs.setdefault('stream', self.stream) - kwargs.setdefault('verify', self.verify) - kwargs.setdefault('cert', self.cert) - kwargs.setdefault('proxies', self.proxies) - - # It's possible that users might accidentally send a Request object. - # Guard against that specific failure case. - if isinstance(request, Request): - raise ValueError('You can only send PreparedRequests.') - - # Set up variables needed for resolve_redirects and dispatching of hooks - allow_redirects = kwargs.pop('allow_redirects', True) - stream = kwargs.get('stream') - hooks = request.hooks - - # Get the appropriate adapter to use - adapter = self.get_adapter(url=request.url) - - # Start time (approximately) of the request - start = preferred_clock() - - # Send the request - r = adapter.send(request, **kwargs) - - # Total elapsed time of the request (approximately) - elapsed = preferred_clock() - start - r.elapsed = timedelta(seconds=elapsed) - - # Response manipulation hooks - r = dispatch_hook('response', hooks, r, **kwargs) - - # Persist cookies - if r.history: - - # If the hooks create history then we want those cookies too - for resp in r.history: - extract_cookies_to_jar(self.cookies, resp.request, resp.raw) - - extract_cookies_to_jar(self.cookies, request, r.raw) - - # Redirect resolving generator. - gen = self.resolve_redirects(r, request, **kwargs) - - # Resolve redirects if allowed. - history = [resp for resp in gen] if allow_redirects else [] - - # Shuffle things around if there's history. - if history: - # Insert the first (original) request at the start - history.insert(0, r) - # Get the last request made - r = history.pop() - r.history = history - - # If redirects aren't being followed, store the response on the Request for Response.next(). - if not allow_redirects: - try: - r._next = next(self.resolve_redirects(r, request, yield_requests=True, **kwargs)) - except StopIteration: - pass - - if not stream: - r.content - - return r - - def merge_environment_settings(self, url, proxies, stream, verify, cert): - """ - Check the environment and merge it with some settings. - - :rtype: dict - """ - # Gather clues from the surrounding environment. - if self.trust_env: - # Set environment's proxies. - no_proxy = proxies.get('no_proxy') if proxies is not None else None - env_proxies = get_environ_proxies(url, no_proxy=no_proxy) - for (k, v) in env_proxies.items(): - proxies.setdefault(k, v) - - # Look for requests environment configuration and be compatible - # with cURL. - if verify is True or verify is None: - verify = (os.environ.get('REQUESTS_CA_BUNDLE') or - os.environ.get('CURL_CA_BUNDLE')) - - # Merge all the kwargs. - proxies = merge_setting(proxies, self.proxies) - stream = merge_setting(stream, self.stream) - verify = merge_setting(verify, self.verify) - cert = merge_setting(cert, self.cert) - - return {'verify': verify, 'proxies': proxies, 'stream': stream, - 'cert': cert} - - def get_adapter(self, url): - """ - Returns the appropriate connection adapter for the given URL. - - :rtype: requests.adapters.BaseAdapter - """ - for (prefix, adapter) in self.adapters.items(): - - if url.lower().startswith(prefix.lower()): - return adapter - - # Nothing matches :-/ - raise InvalidSchema("No connection adapters were found for '%s'" % url) - - def close(self): - """Closes all adapters and as such the session""" - for v in self.adapters.values(): - v.close() - - def mount(self, prefix, adapter): - """Registers a connection adapter to a prefix. - - Adapters are sorted in descending order by prefix length. - """ - self.adapters[prefix] = adapter - keys_to_move = [k for k in self.adapters if len(k) < len(prefix)] - - for key in keys_to_move: - self.adapters[key] = self.adapters.pop(key) - - def __getstate__(self): - state = {attr: getattr(self, attr, None) for attr in self.__attrs__} - return state - - def __setstate__(self, state): - for attr, value in state.items(): - setattr(self, attr, value) - - -def session(): - """ - Returns a :class:`Session` for context-management. - - .. deprecated:: 1.0.0 - - This method has been deprecated since version 1.0.0 and is only kept for - backwards compatibility. New code should use :class:`~requests.sessions.Session` - to create a session. This may be removed at a future date. - - :rtype: Session - """ - return Session() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/status_codes.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/status_codes.py deleted file mode 100644 index 813e8c4..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/status_codes.py +++ /dev/null @@ -1,120 +0,0 @@ -# -*- coding: utf-8 -*- - -r""" -The ``codes`` object defines a mapping from common names for HTTP statuses -to their numerical codes, accessible either as attributes or as dictionary -items. - ->>> requests.codes['temporary_redirect'] -307 ->>> requests.codes.teapot -418 ->>> requests.codes['\o/'] -200 - -Some codes have multiple names, and both upper- and lower-case versions of -the names are allowed. For example, ``codes.ok``, ``codes.OK``, and -``codes.okay`` all correspond to the HTTP status code 200. -""" - -from .structures import LookupDict - -_codes = { - - # Informational. - 100: ('continue',), - 101: ('switching_protocols',), - 102: ('processing',), - 103: ('checkpoint',), - 122: ('uri_too_long', 'request_uri_too_long'), - 200: ('ok', 'okay', 'all_ok', 'all_okay', 'all_good', '\\o/', '✓'), - 201: ('created',), - 202: ('accepted',), - 203: ('non_authoritative_info', 'non_authoritative_information'), - 204: ('no_content',), - 205: ('reset_content', 'reset'), - 206: ('partial_content', 'partial'), - 207: ('multi_status', 'multiple_status', 'multi_stati', 'multiple_stati'), - 208: ('already_reported',), - 226: ('im_used',), - - # Redirection. - 300: ('multiple_choices',), - 301: ('moved_permanently', 'moved', '\\o-'), - 302: ('found',), - 303: ('see_other', 'other'), - 304: ('not_modified',), - 305: ('use_proxy',), - 306: ('switch_proxy',), - 307: ('temporary_redirect', 'temporary_moved', 'temporary'), - 308: ('permanent_redirect', - 'resume_incomplete', 'resume',), # These 2 to be removed in 3.0 - - # Client Error. - 400: ('bad_request', 'bad'), - 401: ('unauthorized',), - 402: ('payment_required', 'payment'), - 403: ('forbidden',), - 404: ('not_found', '-o-'), - 405: ('method_not_allowed', 'not_allowed'), - 406: ('not_acceptable',), - 407: ('proxy_authentication_required', 'proxy_auth', 'proxy_authentication'), - 408: ('request_timeout', 'timeout'), - 409: ('conflict',), - 410: ('gone',), - 411: ('length_required',), - 412: ('precondition_failed', 'precondition'), - 413: ('request_entity_too_large',), - 414: ('request_uri_too_large',), - 415: ('unsupported_media_type', 'unsupported_media', 'media_type'), - 416: ('requested_range_not_satisfiable', 'requested_range', 'range_not_satisfiable'), - 417: ('expectation_failed',), - 418: ('im_a_teapot', 'teapot', 'i_am_a_teapot'), - 421: ('misdirected_request',), - 422: ('unprocessable_entity', 'unprocessable'), - 423: ('locked',), - 424: ('failed_dependency', 'dependency'), - 425: ('unordered_collection', 'unordered'), - 426: ('upgrade_required', 'upgrade'), - 428: ('precondition_required', 'precondition'), - 429: ('too_many_requests', 'too_many'), - 431: ('header_fields_too_large', 'fields_too_large'), - 444: ('no_response', 'none'), - 449: ('retry_with', 'retry'), - 450: ('blocked_by_windows_parental_controls', 'parental_controls'), - 451: ('unavailable_for_legal_reasons', 'legal_reasons'), - 499: ('client_closed_request',), - - # Server Error. - 500: ('internal_server_error', 'server_error', '/o\\', '✗'), - 501: ('not_implemented',), - 502: ('bad_gateway',), - 503: ('service_unavailable', 'unavailable'), - 504: ('gateway_timeout',), - 505: ('http_version_not_supported', 'http_version'), - 506: ('variant_also_negotiates',), - 507: ('insufficient_storage',), - 509: ('bandwidth_limit_exceeded', 'bandwidth'), - 510: ('not_extended',), - 511: ('network_authentication_required', 'network_auth', 'network_authentication'), -} - -codes = LookupDict(name='status_codes') - -def _init(): - for code, titles in _codes.items(): - for title in titles: - setattr(codes, title, code) - if not title.startswith(('\\', '/')): - setattr(codes, title.upper(), code) - - def doc(code): - names = ', '.join('``%s``' % n for n in _codes[code]) - return '* %d: %s' % (code, names) - - global __doc__ - __doc__ = (__doc__ + '\n' + - '\n'.join(doc(code) for code in sorted(_codes)) - if __doc__ is not None else None) - -_init() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/structures.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/structures.py deleted file mode 100644 index da930e2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/structures.py +++ /dev/null @@ -1,103 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.structures -~~~~~~~~~~~~~~~~~~~ - -Data structures that power Requests. -""" - -from .compat import OrderedDict, Mapping, MutableMapping - - -class CaseInsensitiveDict(MutableMapping): - """A case-insensitive ``dict``-like object. - - Implements all methods and operations of - ``MutableMapping`` as well as dict's ``copy``. Also - provides ``lower_items``. - - All keys are expected to be strings. The structure remembers the - case of the last key to be set, and ``iter(instance)``, - ``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()`` - will contain case-sensitive keys. However, querying and contains - testing is case insensitive:: - - cid = CaseInsensitiveDict() - cid['Accept'] = 'application/json' - cid['aCCEPT'] == 'application/json' # True - list(cid) == ['Accept'] # True - - For example, ``headers['content-encoding']`` will return the - value of a ``'Content-Encoding'`` response header, regardless - of how the header name was originally stored. - - If the constructor, ``.update``, or equality comparison - operations are given keys that have equal ``.lower()``s, the - behavior is undefined. - """ - - def __init__(self, data=None, **kwargs): - self._store = OrderedDict() - if data is None: - data = {} - self.update(data, **kwargs) - - def __setitem__(self, key, value): - # Use the lowercased key for lookups, but store the actual - # key alongside the value. - self._store[key.lower()] = (key, value) - - def __getitem__(self, key): - return self._store[key.lower()][1] - - def __delitem__(self, key): - del self._store[key.lower()] - - def __iter__(self): - return (casedkey for casedkey, mappedvalue in self._store.values()) - - def __len__(self): - return len(self._store) - - def lower_items(self): - """Like iteritems(), but with all lowercase keys.""" - return ( - (lowerkey, keyval[1]) - for (lowerkey, keyval) - in self._store.items() - ) - - def __eq__(self, other): - if isinstance(other, Mapping): - other = CaseInsensitiveDict(other) - else: - return NotImplemented - # Compare insensitively - return dict(self.lower_items()) == dict(other.lower_items()) - - # Copy is required - def copy(self): - return CaseInsensitiveDict(self._store.values()) - - def __repr__(self): - return str(dict(self.items())) - - -class LookupDict(dict): - """Dictionary lookup object.""" - - def __init__(self, name=None): - self.name = name - super(LookupDict, self).__init__() - - def __repr__(self): - return '<lookup \'%s\'>' % (self.name) - - def __getitem__(self, key): - # We allow fall-through here, so values default to None - - return self.__dict__.get(key, None) - - def get(self, key, default=None): - return self.__dict__.get(key, default) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/utils.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/utils.py deleted file mode 100644 index 8170a8d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/utils.py +++ /dev/null @@ -1,977 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -requests.utils -~~~~~~~~~~~~~~ - -This module provides utility functions that are used within Requests -that are also useful for external consumption. -""" - -import codecs -import contextlib -import io -import os -import re -import socket -import struct -import sys -import tempfile -import warnings -import zipfile - -from .__version__ import __version__ -from . import certs -# to_native_string is unused here, but imported here for backwards compatibility -from ._internal_utils import to_native_string -from .compat import parse_http_list as _parse_list_header -from .compat import ( - quote, urlparse, bytes, str, OrderedDict, unquote, getproxies, - proxy_bypass, urlunparse, basestring, integer_types, is_py3, - proxy_bypass_environment, getproxies_environment, Mapping) -from .cookies import cookiejar_from_dict -from .structures import CaseInsensitiveDict -from .exceptions import ( - InvalidURL, InvalidHeader, FileModeWarning, UnrewindableBodyError) - -NETRC_FILES = ('.netrc', '_netrc') - -DEFAULT_CA_BUNDLE_PATH = certs.where() - -DEFAULT_PORTS = {'http': 80, 'https': 443} - - -if sys.platform == 'win32': - # provide a proxy_bypass version on Windows without DNS lookups - - def proxy_bypass_registry(host): - try: - if is_py3: - import winreg - else: - import _winreg as winreg - except ImportError: - return False - - try: - internetSettings = winreg.OpenKey(winreg.HKEY_CURRENT_USER, - r'Software\Microsoft\Windows\CurrentVersion\Internet Settings') - # ProxyEnable could be REG_SZ or REG_DWORD, normalizing it - proxyEnable = int(winreg.QueryValueEx(internetSettings, - 'ProxyEnable')[0]) - # ProxyOverride is almost always a string - proxyOverride = winreg.QueryValueEx(internetSettings, - 'ProxyOverride')[0] - except OSError: - return False - if not proxyEnable or not proxyOverride: - return False - - # make a check value list from the registry entry: replace the - # '<local>' string by the localhost entry and the corresponding - # canonical entry. - proxyOverride = proxyOverride.split(';') - # now check if we match one of the registry values. - for test in proxyOverride: - if test == '<local>': - if '.' not in host: - return True - test = test.replace(".", r"\.") # mask dots - test = test.replace("*", r".*") # change glob sequence - test = test.replace("?", r".") # change glob char - if re.match(test, host, re.I): - return True - return False - - def proxy_bypass(host): # noqa - """Return True, if the host should be bypassed. - - Checks proxy settings gathered from the environment, if specified, - or the registry. - """ - if getproxies_environment(): - return proxy_bypass_environment(host) - else: - return proxy_bypass_registry(host) - - -def dict_to_sequence(d): - """Returns an internal sequence dictionary update.""" - - if hasattr(d, 'items'): - d = d.items() - - return d - - -def super_len(o): - total_length = None - current_position = 0 - - if hasattr(o, '__len__'): - total_length = len(o) - - elif hasattr(o, 'len'): - total_length = o.len - - elif hasattr(o, 'fileno'): - try: - fileno = o.fileno() - except io.UnsupportedOperation: - pass - else: - total_length = os.fstat(fileno).st_size - - # Having used fstat to determine the file length, we need to - # confirm that this file was opened up in binary mode. - if 'b' not in o.mode: - warnings.warn(( - "Requests has determined the content-length for this " - "request using the binary size of the file: however, the " - "file has been opened in text mode (i.e. without the 'b' " - "flag in the mode). This may lead to an incorrect " - "content-length. In Requests 3.0, support will be removed " - "for files in text mode."), - FileModeWarning - ) - - if hasattr(o, 'tell'): - try: - current_position = o.tell() - except (OSError, IOError): - # This can happen in some weird situations, such as when the file - # is actually a special file descriptor like stdin. In this - # instance, we don't know what the length is, so set it to zero and - # let requests chunk it instead. - if total_length is not None: - current_position = total_length - else: - if hasattr(o, 'seek') and total_length is None: - # StringIO and BytesIO have seek but no useable fileno - try: - # seek to end of file - o.seek(0, 2) - total_length = o.tell() - - # seek back to current position to support - # partially read file-like objects - o.seek(current_position or 0) - except (OSError, IOError): - total_length = 0 - - if total_length is None: - total_length = 0 - - return max(0, total_length - current_position) - - -def get_netrc_auth(url, raise_errors=False): - """Returns the Requests tuple auth for a given url from netrc.""" - - try: - from netrc import netrc, NetrcParseError - - netrc_path = None - - for f in NETRC_FILES: - try: - loc = os.path.expanduser('~/{}'.format(f)) - except KeyError: - # os.path.expanduser can fail when $HOME is undefined and - # getpwuid fails. See https://bugs.python.org/issue20164 & - # https://github.com/requests/requests/issues/1846 - return - - if os.path.exists(loc): - netrc_path = loc - break - - # Abort early if there isn't one. - if netrc_path is None: - return - - ri = urlparse(url) - - # Strip port numbers from netloc. This weird `if...encode`` dance is - # used for Python 3.2, which doesn't support unicode literals. - splitstr = b':' - if isinstance(url, str): - splitstr = splitstr.decode('ascii') - host = ri.netloc.split(splitstr)[0] - - try: - _netrc = netrc(netrc_path).authenticators(host) - if _netrc: - # Return with login / password - login_i = (0 if _netrc[0] else 1) - return (_netrc[login_i], _netrc[2]) - except (NetrcParseError, IOError): - # If there was a parsing error or a permissions issue reading the file, - # we'll just skip netrc auth unless explicitly asked to raise errors. - if raise_errors: - raise - - # AppEngine hackiness. - except (ImportError, AttributeError): - pass - - -def guess_filename(obj): - """Tries to guess the filename of the given object.""" - name = getattr(obj, 'name', None) - if (name and isinstance(name, basestring) and name[0] != '<' and - name[-1] != '>'): - return os.path.basename(name) - - -def extract_zipped_paths(path): - """Replace nonexistent paths that look like they refer to a member of a zip - archive with the location of an extracted copy of the target, or else - just return the provided path unchanged. - """ - if os.path.exists(path): - # this is already a valid path, no need to do anything further - return path - - # find the first valid part of the provided path and treat that as a zip archive - # assume the rest of the path is the name of a member in the archive - archive, member = os.path.split(path) - while archive and not os.path.exists(archive): - archive, prefix = os.path.split(archive) - member = '/'.join([prefix, member]) - - if not zipfile.is_zipfile(archive): - return path - - zip_file = zipfile.ZipFile(archive) - if member not in zip_file.namelist(): - return path - - # we have a valid zip archive and a valid member of that archive - tmp = tempfile.gettempdir() - extracted_path = os.path.join(tmp, *member.split('/')) - if not os.path.exists(extracted_path): - extracted_path = zip_file.extract(member, path=tmp) - - return extracted_path - - -def from_key_val_list(value): - """Take an object and test to see if it can be represented as a - dictionary. Unless it can not be represented as such, return an - OrderedDict, e.g., - - :: - - >>> from_key_val_list([('key', 'val')]) - OrderedDict([('key', 'val')]) - >>> from_key_val_list('string') - ValueError: cannot encode objects that are not 2-tuples - >>> from_key_val_list({'key': 'val'}) - OrderedDict([('key', 'val')]) - - :rtype: OrderedDict - """ - if value is None: - return None - - if isinstance(value, (str, bytes, bool, int)): - raise ValueError('cannot encode objects that are not 2-tuples') - - return OrderedDict(value) - - -def to_key_val_list(value): - """Take an object and test to see if it can be represented as a - dictionary. If it can be, return a list of tuples, e.g., - - :: - - >>> to_key_val_list([('key', 'val')]) - [('key', 'val')] - >>> to_key_val_list({'key': 'val'}) - [('key', 'val')] - >>> to_key_val_list('string') - ValueError: cannot encode objects that are not 2-tuples. - - :rtype: list - """ - if value is None: - return None - - if isinstance(value, (str, bytes, bool, int)): - raise ValueError('cannot encode objects that are not 2-tuples') - - if isinstance(value, Mapping): - value = value.items() - - return list(value) - - -# From mitsuhiko/werkzeug (used with permission). -def parse_list_header(value): - """Parse lists as described by RFC 2068 Section 2. - - In particular, parse comma-separated lists where the elements of - the list may include quoted-strings. A quoted-string could - contain a comma. A non-quoted string could have quotes in the - middle. Quotes are removed automatically after parsing. - - It basically works like :func:`parse_set_header` just that items - may appear multiple times and case sensitivity is preserved. - - The return value is a standard :class:`list`: - - >>> parse_list_header('token, "quoted value"') - ['token', 'quoted value'] - - To create a header from the :class:`list` again, use the - :func:`dump_header` function. - - :param value: a string with a list header. - :return: :class:`list` - :rtype: list - """ - result = [] - for item in _parse_list_header(value): - if item[:1] == item[-1:] == '"': - item = unquote_header_value(item[1:-1]) - result.append(item) - return result - - -# From mitsuhiko/werkzeug (used with permission). -def parse_dict_header(value): - """Parse lists of key, value pairs as described by RFC 2068 Section 2 and - convert them into a python dict: - - >>> d = parse_dict_header('foo="is a fish", bar="as well"') - >>> type(d) is dict - True - >>> sorted(d.items()) - [('bar', 'as well'), ('foo', 'is a fish')] - - If there is no value for a key it will be `None`: - - >>> parse_dict_header('key_without_value') - {'key_without_value': None} - - To create a header from the :class:`dict` again, use the - :func:`dump_header` function. - - :param value: a string with a dict header. - :return: :class:`dict` - :rtype: dict - """ - result = {} - for item in _parse_list_header(value): - if '=' not in item: - result[item] = None - continue - name, value = item.split('=', 1) - if value[:1] == value[-1:] == '"': - value = unquote_header_value(value[1:-1]) - result[name] = value - return result - - -# From mitsuhiko/werkzeug (used with permission). -def unquote_header_value(value, is_filename=False): - r"""Unquotes a header value. (Reversal of :func:`quote_header_value`). - This does not use the real unquoting but what browsers are actually - using for quoting. - - :param value: the header value to unquote. - :rtype: str - """ - if value and value[0] == value[-1] == '"': - # this is not the real unquoting, but fixing this so that the - # RFC is met will result in bugs with internet explorer and - # probably some other browsers as well. IE for example is - # uploading files with "C:\foo\bar.txt" as filename - value = value[1:-1] - - # if this is a filename and the starting characters look like - # a UNC path, then just return the value without quotes. Using the - # replace sequence below on a UNC path has the effect of turning - # the leading double slash into a single slash and then - # _fix_ie_filename() doesn't work correctly. See #458. - if not is_filename or value[:2] != '\\\\': - return value.replace('\\\\', '\\').replace('\\"', '"') - return value - - -def dict_from_cookiejar(cj): - """Returns a key/value dictionary from a CookieJar. - - :param cj: CookieJar object to extract cookies from. - :rtype: dict - """ - - cookie_dict = {} - - for cookie in cj: - cookie_dict[cookie.name] = cookie.value - - return cookie_dict - - -def add_dict_to_cookiejar(cj, cookie_dict): - """Returns a CookieJar from a key/value dictionary. - - :param cj: CookieJar to insert cookies into. - :param cookie_dict: Dict of key/values to insert into CookieJar. - :rtype: CookieJar - """ - - return cookiejar_from_dict(cookie_dict, cj) - - -def get_encodings_from_content(content): - """Returns encodings from given content string. - - :param content: bytestring to extract encodings from. - """ - warnings.warn(( - 'In requests 3.0, get_encodings_from_content will be removed. For ' - 'more information, please see the discussion on issue #2266. (This' - ' warning should only appear once.)'), - DeprecationWarning) - - charset_re = re.compile(r'<meta.*?charset=["\']*(.+?)["\'>]', flags=re.I) - pragma_re = re.compile(r'<meta.*?content=["\']*;?charset=(.+?)["\'>]', flags=re.I) - xml_re = re.compile(r'^<\?xml.*?encoding=["\']*(.+?)["\'>]') - - return (charset_re.findall(content) + - pragma_re.findall(content) + - xml_re.findall(content)) - - -def _parse_content_type_header(header): - """Returns content type and parameters from given header - - :param header: string - :return: tuple containing content type and dictionary of - parameters - """ - - tokens = header.split(';') - content_type, params = tokens[0].strip(), tokens[1:] - params_dict = {} - items_to_strip = "\"' " - - for param in params: - param = param.strip() - if param: - key, value = param, True - index_of_equals = param.find("=") - if index_of_equals != -1: - key = param[:index_of_equals].strip(items_to_strip) - value = param[index_of_equals + 1:].strip(items_to_strip) - params_dict[key.lower()] = value - return content_type, params_dict - - -def get_encoding_from_headers(headers): - """Returns encodings from given HTTP Header Dict. - - :param headers: dictionary to extract encoding from. - :rtype: str - """ - - content_type = headers.get('content-type') - - if not content_type: - return None - - content_type, params = _parse_content_type_header(content_type) - - if 'charset' in params: - return params['charset'].strip("'\"") - - if 'text' in content_type: - return 'ISO-8859-1' - - -def stream_decode_response_unicode(iterator, r): - """Stream decodes a iterator.""" - - if r.encoding is None: - for item in iterator: - yield item - return - - decoder = codecs.getincrementaldecoder(r.encoding)(errors='replace') - for chunk in iterator: - rv = decoder.decode(chunk) - if rv: - yield rv - rv = decoder.decode(b'', final=True) - if rv: - yield rv - - -def iter_slices(string, slice_length): - """Iterate over slices of a string.""" - pos = 0 - if slice_length is None or slice_length <= 0: - slice_length = len(string) - while pos < len(string): - yield string[pos:pos + slice_length] - pos += slice_length - - -def get_unicode_from_response(r): - """Returns the requested content back in unicode. - - :param r: Response object to get unicode content from. - - Tried: - - 1. charset from content-type - 2. fall back and replace all unicode characters - - :rtype: str - """ - warnings.warn(( - 'In requests 3.0, get_unicode_from_response will be removed. For ' - 'more information, please see the discussion on issue #2266. (This' - ' warning should only appear once.)'), - DeprecationWarning) - - tried_encodings = [] - - # Try charset from content-type - encoding = get_encoding_from_headers(r.headers) - - if encoding: - try: - return str(r.content, encoding) - except UnicodeError: - tried_encodings.append(encoding) - - # Fall back: - try: - return str(r.content, encoding, errors='replace') - except TypeError: - return r.content - - -# The unreserved URI characters (RFC 3986) -UNRESERVED_SET = frozenset( - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + "0123456789-._~") - - -def unquote_unreserved(uri): - """Un-escape any percent-escape sequences in a URI that are unreserved - characters. This leaves all reserved, illegal and non-ASCII bytes encoded. - - :rtype: str - """ - parts = uri.split('%') - for i in range(1, len(parts)): - h = parts[i][0:2] - if len(h) == 2 and h.isalnum(): - try: - c = chr(int(h, 16)) - except ValueError: - raise InvalidURL("Invalid percent-escape sequence: '%s'" % h) - - if c in UNRESERVED_SET: - parts[i] = c + parts[i][2:] - else: - parts[i] = '%' + parts[i] - else: - parts[i] = '%' + parts[i] - return ''.join(parts) - - -def requote_uri(uri): - """Re-quote the given URI. - - This function passes the given URI through an unquote/quote cycle to - ensure that it is fully and consistently quoted. - - :rtype: str - """ - safe_with_percent = "!#$%&'()*+,/:;=?@[]~" - safe_without_percent = "!#$&'()*+,/:;=?@[]~" - try: - # Unquote only the unreserved characters - # Then quote only illegal characters (do not quote reserved, - # unreserved, or '%') - return quote(unquote_unreserved(uri), safe=safe_with_percent) - except InvalidURL: - # We couldn't unquote the given URI, so let's try quoting it, but - # there may be unquoted '%'s in the URI. We need to make sure they're - # properly quoted so they do not cause issues elsewhere. - return quote(uri, safe=safe_without_percent) - - -def address_in_network(ip, net): - """This function allows you to check if an IP belongs to a network subnet - - Example: returns True if ip = 192.168.1.1 and net = 192.168.1.0/24 - returns False if ip = 192.168.1.1 and net = 192.168.100.0/24 - - :rtype: bool - """ - ipaddr = struct.unpack('=L', socket.inet_aton(ip))[0] - netaddr, bits = net.split('/') - netmask = struct.unpack('=L', socket.inet_aton(dotted_netmask(int(bits))))[0] - network = struct.unpack('=L', socket.inet_aton(netaddr))[0] & netmask - return (ipaddr & netmask) == (network & netmask) - - -def dotted_netmask(mask): - """Converts mask from /xx format to xxx.xxx.xxx.xxx - - Example: if mask is 24 function returns 255.255.255.0 - - :rtype: str - """ - bits = 0xffffffff ^ (1 << 32 - mask) - 1 - return socket.inet_ntoa(struct.pack('>I', bits)) - - -def is_ipv4_address(string_ip): - """ - :rtype: bool - """ - try: - socket.inet_aton(string_ip) - except socket.error: - return False - return True - - -def is_valid_cidr(string_network): - """ - Very simple check of the cidr format in no_proxy variable. - - :rtype: bool - """ - if string_network.count('/') == 1: - try: - mask = int(string_network.split('/')[1]) - except ValueError: - return False - - if mask < 1 or mask > 32: - return False - - try: - socket.inet_aton(string_network.split('/')[0]) - except socket.error: - return False - else: - return False - return True - - -@contextlib.contextmanager -def set_environ(env_name, value): - """Set the environment variable 'env_name' to 'value' - - Save previous value, yield, and then restore the previous value stored in - the environment variable 'env_name'. - - If 'value' is None, do nothing""" - value_changed = value is not None - if value_changed: - old_value = os.environ.get(env_name) - os.environ[env_name] = value - try: - yield - finally: - if value_changed: - if old_value is None: - del os.environ[env_name] - else: - os.environ[env_name] = old_value - - -def should_bypass_proxies(url, no_proxy): - """ - Returns whether we should bypass proxies or not. - - :rtype: bool - """ - # Prioritize lowercase environment variables over uppercase - # to keep a consistent behaviour with other http projects (curl, wget). - get_proxy = lambda k: os.environ.get(k) or os.environ.get(k.upper()) - - # First check whether no_proxy is defined. If it is, check that the URL - # we're getting isn't in the no_proxy list. - no_proxy_arg = no_proxy - if no_proxy is None: - no_proxy = get_proxy('no_proxy') - parsed = urlparse(url) - - if parsed.hostname is None: - # URLs don't always have hostnames, e.g. file:/// urls. - return True - - if no_proxy: - # We need to check whether we match here. We need to see if we match - # the end of the hostname, both with and without the port. - no_proxy = ( - host for host in no_proxy.replace(' ', '').split(',') if host - ) - - if is_ipv4_address(parsed.hostname): - for proxy_ip in no_proxy: - if is_valid_cidr(proxy_ip): - if address_in_network(parsed.hostname, proxy_ip): - return True - elif parsed.hostname == proxy_ip: - # If no_proxy ip was defined in plain IP notation instead of cidr notation & - # matches the IP of the index - return True - else: - host_with_port = parsed.hostname - if parsed.port: - host_with_port += ':{}'.format(parsed.port) - - for host in no_proxy: - if parsed.hostname.endswith(host) or host_with_port.endswith(host): - # The URL does match something in no_proxy, so we don't want - # to apply the proxies on this URL. - return True - - with set_environ('no_proxy', no_proxy_arg): - # parsed.hostname can be `None` in cases such as a file URI. - try: - bypass = proxy_bypass(parsed.hostname) - except (TypeError, socket.gaierror): - bypass = False - - if bypass: - return True - - return False - - -def get_environ_proxies(url, no_proxy=None): - """ - Return a dict of environment proxies. - - :rtype: dict - """ - if should_bypass_proxies(url, no_proxy=no_proxy): - return {} - else: - return getproxies() - - -def select_proxy(url, proxies): - """Select a proxy for the url, if applicable. - - :param url: The url being for the request - :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs - """ - proxies = proxies or {} - urlparts = urlparse(url) - if urlparts.hostname is None: - return proxies.get(urlparts.scheme, proxies.get('all')) - - proxy_keys = [ - urlparts.scheme + '://' + urlparts.hostname, - urlparts.scheme, - 'all://' + urlparts.hostname, - 'all', - ] - proxy = None - for proxy_key in proxy_keys: - if proxy_key in proxies: - proxy = proxies[proxy_key] - break - - return proxy - - -def default_user_agent(name="python-requests"): - """ - Return a string representing the default user agent. - - :rtype: str - """ - return '%s/%s' % (name, __version__) - - -def default_headers(): - """ - :rtype: requests.structures.CaseInsensitiveDict - """ - return CaseInsensitiveDict({ - 'User-Agent': default_user_agent(), - 'Accept-Encoding': ', '.join(('gzip', 'deflate')), - 'Accept': '*/*', - 'Connection': 'keep-alive', - }) - - -def parse_header_links(value): - """Return a list of parsed link headers proxies. - - i.e. Link: <http:/.../front.jpeg>; rel=front; type="image/jpeg",<http://.../back.jpeg>; rel=back;type="image/jpeg" - - :rtype: list - """ - - links = [] - - replace_chars = ' \'"' - - value = value.strip(replace_chars) - if not value: - return links - - for val in re.split(', *<', value): - try: - url, params = val.split(';', 1) - except ValueError: - url, params = val, '' - - link = {'url': url.strip('<> \'"')} - - for param in params.split(';'): - try: - key, value = param.split('=') - except ValueError: - break - - link[key.strip(replace_chars)] = value.strip(replace_chars) - - links.append(link) - - return links - - -# Null bytes; no need to recreate these on each call to guess_json_utf -_null = '\x00'.encode('ascii') # encoding to ASCII for Python 3 -_null2 = _null * 2 -_null3 = _null * 3 - - -def guess_json_utf(data): - """ - :rtype: str - """ - # JSON always starts with two ASCII characters, so detection is as - # easy as counting the nulls and from their location and count - # determine the encoding. Also detect a BOM, if present. - sample = data[:4] - if sample in (codecs.BOM_UTF32_LE, codecs.BOM_UTF32_BE): - return 'utf-32' # BOM included - if sample[:3] == codecs.BOM_UTF8: - return 'utf-8-sig' # BOM included, MS style (discouraged) - if sample[:2] in (codecs.BOM_UTF16_LE, codecs.BOM_UTF16_BE): - return 'utf-16' # BOM included - nullcount = sample.count(_null) - if nullcount == 0: - return 'utf-8' - if nullcount == 2: - if sample[::2] == _null2: # 1st and 3rd are null - return 'utf-16-be' - if sample[1::2] == _null2: # 2nd and 4th are null - return 'utf-16-le' - # Did not detect 2 valid UTF-16 ascii-range characters - if nullcount == 3: - if sample[:3] == _null3: - return 'utf-32-be' - if sample[1:] == _null3: - return 'utf-32-le' - # Did not detect a valid UTF-32 ascii-range character - return None - - -def prepend_scheme_if_needed(url, new_scheme): - """Given a URL that may or may not have a scheme, prepend the given scheme. - Does not replace a present scheme with the one provided as an argument. - - :rtype: str - """ - scheme, netloc, path, params, query, fragment = urlparse(url, new_scheme) - - # urlparse is a finicky beast, and sometimes decides that there isn't a - # netloc present. Assume that it's being over-cautious, and switch netloc - # and path if urlparse decided there was no netloc. - if not netloc: - netloc, path = path, netloc - - return urlunparse((scheme, netloc, path, params, query, fragment)) - - -def get_auth_from_url(url): - """Given a url with authentication components, extract them into a tuple of - username,password. - - :rtype: (str,str) - """ - parsed = urlparse(url) - - try: - auth = (unquote(parsed.username), unquote(parsed.password)) - except (AttributeError, TypeError): - auth = ('', '') - - return auth - - -# Moved outside of function to avoid recompile every call -_CLEAN_HEADER_REGEX_BYTE = re.compile(b'^\\S[^\\r\\n]*$|^$') -_CLEAN_HEADER_REGEX_STR = re.compile(r'^\S[^\r\n]*$|^$') - - -def check_header_validity(header): - """Verifies that header value is a string which doesn't contain - leading whitespace or return characters. This prevents unintended - header injection. - - :param header: tuple, in the format (name, value). - """ - name, value = header - - if isinstance(value, bytes): - pat = _CLEAN_HEADER_REGEX_BYTE - else: - pat = _CLEAN_HEADER_REGEX_STR - try: - if not pat.match(value): - raise InvalidHeader("Invalid return character or leading space in header: %s" % name) - except TypeError: - raise InvalidHeader("Value for header {%s: %s} must be of type str or " - "bytes, not %s" % (name, value, type(value))) - - -def urldefragauth(url): - """ - Given a url remove the fragment and the authentication part. - - :rtype: str - """ - scheme, netloc, path, params, query, fragment = urlparse(url) - - # see func:`prepend_scheme_if_needed` - if not netloc: - netloc, path = path, netloc - - netloc = netloc.rsplit('@', 1)[-1] - - return urlunparse((scheme, netloc, path, params, query, '')) - - -def rewind_body(prepared_request): - """Move file pointer back to its recorded starting position - so it can be read again on redirect. - """ - body_seek = getattr(prepared_request.body, 'seek', None) - if body_seek is not None and isinstance(prepared_request._body_position, integer_types): - try: - body_seek(prepared_request._body_position) - except (IOError, OSError): - raise UnrewindableBodyError("An error occurred when rewinding request " - "body for redirect.") - else: - raise UnrewindableBodyError("Unable to rewind request body for redirect.") diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/retrying.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/retrying.py deleted file mode 100644 index 6d1e627..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/retrying.py +++ /dev/null @@ -1,267 +0,0 @@ -## Copyright 2013-2014 Ray Holder -## -## Licensed under the Apache License, Version 2.0 (the "License"); -## you may not use this file except in compliance with the License. -## You may obtain a copy of the License at -## -## http://www.apache.org/licenses/LICENSE-2.0 -## -## Unless required by applicable law or agreed to in writing, software -## distributed under the License is distributed on an "AS IS" BASIS, -## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -## See the License for the specific language governing permissions and -## limitations under the License. - -import random -from pip._vendor import six -import sys -import time -import traceback - - -# sys.maxint / 2, since Python 3.2 doesn't have a sys.maxint... -MAX_WAIT = 1073741823 - - -def retry(*dargs, **dkw): - """ - Decorator function that instantiates the Retrying object - @param *dargs: positional arguments passed to Retrying object - @param **dkw: keyword arguments passed to the Retrying object - """ - # support both @retry and @retry() as valid syntax - if len(dargs) == 1 and callable(dargs[0]): - def wrap_simple(f): - - @six.wraps(f) - def wrapped_f(*args, **kw): - return Retrying().call(f, *args, **kw) - - return wrapped_f - - return wrap_simple(dargs[0]) - - else: - def wrap(f): - - @six.wraps(f) - def wrapped_f(*args, **kw): - return Retrying(*dargs, **dkw).call(f, *args, **kw) - - return wrapped_f - - return wrap - - -class Retrying(object): - - def __init__(self, - stop=None, wait=None, - stop_max_attempt_number=None, - stop_max_delay=None, - wait_fixed=None, - wait_random_min=None, wait_random_max=None, - wait_incrementing_start=None, wait_incrementing_increment=None, - wait_exponential_multiplier=None, wait_exponential_max=None, - retry_on_exception=None, - retry_on_result=None, - wrap_exception=False, - stop_func=None, - wait_func=None, - wait_jitter_max=None): - - self._stop_max_attempt_number = 5 if stop_max_attempt_number is None else stop_max_attempt_number - self._stop_max_delay = 100 if stop_max_delay is None else stop_max_delay - self._wait_fixed = 1000 if wait_fixed is None else wait_fixed - self._wait_random_min = 0 if wait_random_min is None else wait_random_min - self._wait_random_max = 1000 if wait_random_max is None else wait_random_max - self._wait_incrementing_start = 0 if wait_incrementing_start is None else wait_incrementing_start - self._wait_incrementing_increment = 100 if wait_incrementing_increment is None else wait_incrementing_increment - self._wait_exponential_multiplier = 1 if wait_exponential_multiplier is None else wait_exponential_multiplier - self._wait_exponential_max = MAX_WAIT if wait_exponential_max is None else wait_exponential_max - self._wait_jitter_max = 0 if wait_jitter_max is None else wait_jitter_max - - # TODO add chaining of stop behaviors - # stop behavior - stop_funcs = [] - if stop_max_attempt_number is not None: - stop_funcs.append(self.stop_after_attempt) - - if stop_max_delay is not None: - stop_funcs.append(self.stop_after_delay) - - if stop_func is not None: - self.stop = stop_func - - elif stop is None: - self.stop = lambda attempts, delay: any(f(attempts, delay) for f in stop_funcs) - - else: - self.stop = getattr(self, stop) - - # TODO add chaining of wait behaviors - # wait behavior - wait_funcs = [lambda *args, **kwargs: 0] - if wait_fixed is not None: - wait_funcs.append(self.fixed_sleep) - - if wait_random_min is not None or wait_random_max is not None: - wait_funcs.append(self.random_sleep) - - if wait_incrementing_start is not None or wait_incrementing_increment is not None: - wait_funcs.append(self.incrementing_sleep) - - if wait_exponential_multiplier is not None or wait_exponential_max is not None: - wait_funcs.append(self.exponential_sleep) - - if wait_func is not None: - self.wait = wait_func - - elif wait is None: - self.wait = lambda attempts, delay: max(f(attempts, delay) for f in wait_funcs) - - else: - self.wait = getattr(self, wait) - - # retry on exception filter - if retry_on_exception is None: - self._retry_on_exception = self.always_reject - else: - self._retry_on_exception = retry_on_exception - - # TODO simplify retrying by Exception types - # retry on result filter - if retry_on_result is None: - self._retry_on_result = self.never_reject - else: - self._retry_on_result = retry_on_result - - self._wrap_exception = wrap_exception - - def stop_after_attempt(self, previous_attempt_number, delay_since_first_attempt_ms): - """Stop after the previous attempt >= stop_max_attempt_number.""" - return previous_attempt_number >= self._stop_max_attempt_number - - def stop_after_delay(self, previous_attempt_number, delay_since_first_attempt_ms): - """Stop after the time from the first attempt >= stop_max_delay.""" - return delay_since_first_attempt_ms >= self._stop_max_delay - - def no_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): - """Don't sleep at all before retrying.""" - return 0 - - def fixed_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): - """Sleep a fixed amount of time between each retry.""" - return self._wait_fixed - - def random_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): - """Sleep a random amount of time between wait_random_min and wait_random_max""" - return random.randint(self._wait_random_min, self._wait_random_max) - - def incrementing_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): - """ - Sleep an incremental amount of time after each attempt, starting at - wait_incrementing_start and incrementing by wait_incrementing_increment - """ - result = self._wait_incrementing_start + (self._wait_incrementing_increment * (previous_attempt_number - 1)) - if result < 0: - result = 0 - return result - - def exponential_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): - exp = 2 ** previous_attempt_number - result = self._wait_exponential_multiplier * exp - if result > self._wait_exponential_max: - result = self._wait_exponential_max - if result < 0: - result = 0 - return result - - def never_reject(self, result): - return False - - def always_reject(self, result): - return True - - def should_reject(self, attempt): - reject = False - if attempt.has_exception: - reject |= self._retry_on_exception(attempt.value[1]) - else: - reject |= self._retry_on_result(attempt.value) - - return reject - - def call(self, fn, *args, **kwargs): - start_time = int(round(time.time() * 1000)) - attempt_number = 1 - while True: - try: - attempt = Attempt(fn(*args, **kwargs), attempt_number, False) - except: - tb = sys.exc_info() - attempt = Attempt(tb, attempt_number, True) - - if not self.should_reject(attempt): - return attempt.get(self._wrap_exception) - - delay_since_first_attempt_ms = int(round(time.time() * 1000)) - start_time - if self.stop(attempt_number, delay_since_first_attempt_ms): - if not self._wrap_exception and attempt.has_exception: - # get() on an attempt with an exception should cause it to be raised, but raise just in case - raise attempt.get() - else: - raise RetryError(attempt) - else: - sleep = self.wait(attempt_number, delay_since_first_attempt_ms) - if self._wait_jitter_max: - jitter = random.random() * self._wait_jitter_max - sleep = sleep + max(0, jitter) - time.sleep(sleep / 1000.0) - - attempt_number += 1 - - -class Attempt(object): - """ - An Attempt encapsulates a call to a target function that may end as a - normal return value from the function or an Exception depending on what - occurred during the execution. - """ - - def __init__(self, value, attempt_number, has_exception): - self.value = value - self.attempt_number = attempt_number - self.has_exception = has_exception - - def get(self, wrap_exception=False): - """ - Return the return value of this Attempt instance or raise an Exception. - If wrap_exception is true, this Attempt is wrapped inside of a - RetryError before being raised. - """ - if self.has_exception: - if wrap_exception: - raise RetryError(self) - else: - six.reraise(self.value[0], self.value[1], self.value[2]) - else: - return self.value - - def __repr__(self): - if self.has_exception: - return "Attempts: {0}, Error:\n{1}".format(self.attempt_number, "".join(traceback.format_tb(self.value[2]))) - else: - return "Attempts: {0}, Value: {1}".format(self.attempt_number, self.value) - - -class RetryError(Exception): - """ - A RetryError encapsulates the last Attempt instance right before giving up. - """ - - def __init__(self, last_attempt): - self.last_attempt = last_attempt - - def __str__(self): - return "RetryError[{0}]".format(self.last_attempt) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/six.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/six.py deleted file mode 100644 index 89b2188..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/six.py +++ /dev/null @@ -1,952 +0,0 @@ -# Copyright (c) 2010-2018 Benjamin Peterson -# -# 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. - -"""Utilities for writing code that runs on Python 2 and 3""" - -from __future__ import absolute_import - -import functools -import itertools -import operator -import sys -import types - -__author__ = "Benjamin Peterson <benjamin@python.org>" -__version__ = "1.12.0" - - -# Useful for very coarse version differentiation. -PY2 = sys.version_info[0] == 2 -PY3 = sys.version_info[0] == 3 -PY34 = sys.version_info[0:2] >= (3, 4) - -if PY3: - string_types = str, - integer_types = int, - class_types = type, - text_type = str - binary_type = bytes - - MAXSIZE = sys.maxsize -else: - string_types = basestring, - integer_types = (int, long) - class_types = (type, types.ClassType) - text_type = unicode - binary_type = str - - if sys.platform.startswith("java"): - # Jython always uses 32 bits. - MAXSIZE = int((1 << 31) - 1) - else: - # It's possible to have sizeof(long) != sizeof(Py_ssize_t). - class X(object): - - def __len__(self): - return 1 << 31 - try: - len(X()) - except OverflowError: - # 32-bit - MAXSIZE = int((1 << 31) - 1) - else: - # 64-bit - MAXSIZE = int((1 << 63) - 1) - del X - - -def _add_doc(func, doc): - """Add documentation to a function.""" - func.__doc__ = doc - - -def _import_module(name): - """Import module, returning the module after the last dot.""" - __import__(name) - return sys.modules[name] - - -class _LazyDescr(object): - - def __init__(self, name): - self.name = name - - def __get__(self, obj, tp): - result = self._resolve() - setattr(obj, self.name, result) # Invokes __set__. - try: - # This is a bit ugly, but it avoids running this again by - # removing this descriptor. - delattr(obj.__class__, self.name) - except AttributeError: - pass - return result - - -class MovedModule(_LazyDescr): - - def __init__(self, name, old, new=None): - super(MovedModule, self).__init__(name) - if PY3: - if new is None: - new = name - self.mod = new - else: - self.mod = old - - def _resolve(self): - return _import_module(self.mod) - - def __getattr__(self, attr): - _module = self._resolve() - value = getattr(_module, attr) - setattr(self, attr, value) - return value - - -class _LazyModule(types.ModuleType): - - def __init__(self, name): - super(_LazyModule, self).__init__(name) - self.__doc__ = self.__class__.__doc__ - - def __dir__(self): - attrs = ["__doc__", "__name__"] - attrs += [attr.name for attr in self._moved_attributes] - return attrs - - # Subclasses should override this - _moved_attributes = [] - - -class MovedAttribute(_LazyDescr): - - def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): - super(MovedAttribute, self).__init__(name) - if PY3: - if new_mod is None: - new_mod = name - self.mod = new_mod - if new_attr is None: - if old_attr is None: - new_attr = name - else: - new_attr = old_attr - self.attr = new_attr - else: - self.mod = old_mod - if old_attr is None: - old_attr = name - self.attr = old_attr - - def _resolve(self): - module = _import_module(self.mod) - return getattr(module, self.attr) - - -class _SixMetaPathImporter(object): - - """ - A meta path importer to import six.moves and its submodules. - - This class implements a PEP302 finder and loader. It should be compatible - with Python 2.5 and all existing versions of Python3 - """ - - def __init__(self, six_module_name): - self.name = six_module_name - self.known_modules = {} - - def _add_module(self, mod, *fullnames): - for fullname in fullnames: - self.known_modules[self.name + "." + fullname] = mod - - def _get_module(self, fullname): - return self.known_modules[self.name + "." + fullname] - - def find_module(self, fullname, path=None): - if fullname in self.known_modules: - return self - return None - - def __get_module(self, fullname): - try: - return self.known_modules[fullname] - except KeyError: - raise ImportError("This loader does not know module " + fullname) - - def load_module(self, fullname): - try: - # in case of a reload - return sys.modules[fullname] - except KeyError: - pass - mod = self.__get_module(fullname) - if isinstance(mod, MovedModule): - mod = mod._resolve() - else: - mod.__loader__ = self - sys.modules[fullname] = mod - return mod - - def is_package(self, fullname): - """ - Return true, if the named module is a package. - - We need this method to get correct spec objects with - Python 3.4 (see PEP451) - """ - return hasattr(self.__get_module(fullname), "__path__") - - def get_code(self, fullname): - """Return None - - Required, if is_package is implemented""" - self.__get_module(fullname) # eventually raises ImportError - return None - get_source = get_code # same as get_code - -_importer = _SixMetaPathImporter(__name__) - - -class _MovedItems(_LazyModule): - - """Lazy loading of moved objects""" - __path__ = [] # mark as package - - -_moved_attributes = [ - MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), - MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"), - MovedAttribute("filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse"), - MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), - MovedAttribute("intern", "__builtin__", "sys"), - MovedAttribute("map", "itertools", "builtins", "imap", "map"), - MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"), - MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"), - MovedAttribute("getoutput", "commands", "subprocess"), - MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"), - MovedAttribute("reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload"), - MovedAttribute("reduce", "__builtin__", "functools"), - MovedAttribute("shlex_quote", "pipes", "shlex", "quote"), - MovedAttribute("StringIO", "StringIO", "io"), - MovedAttribute("UserDict", "UserDict", "collections"), - MovedAttribute("UserList", "UserList", "collections"), - MovedAttribute("UserString", "UserString", "collections"), - MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), - MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), - MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), - MovedModule("builtins", "__builtin__"), - MovedModule("configparser", "ConfigParser"), - MovedModule("copyreg", "copy_reg"), - MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), - MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread"), - MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), - MovedModule("http_cookies", "Cookie", "http.cookies"), - MovedModule("html_entities", "htmlentitydefs", "html.entities"), - MovedModule("html_parser", "HTMLParser", "html.parser"), - MovedModule("http_client", "httplib", "http.client"), - MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), - MovedModule("email_mime_image", "email.MIMEImage", "email.mime.image"), - MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), - MovedModule("email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart"), - MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), - MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), - MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), - MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), - MovedModule("cPickle", "cPickle", "pickle"), - MovedModule("queue", "Queue"), - MovedModule("reprlib", "repr"), - MovedModule("socketserver", "SocketServer"), - MovedModule("_thread", "thread", "_thread"), - MovedModule("tkinter", "Tkinter"), - MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), - MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), - MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), - MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), - MovedModule("tkinter_tix", "Tix", "tkinter.tix"), - MovedModule("tkinter_ttk", "ttk", "tkinter.ttk"), - MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), - MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), - MovedModule("tkinter_colorchooser", "tkColorChooser", - "tkinter.colorchooser"), - MovedModule("tkinter_commondialog", "tkCommonDialog", - "tkinter.commondialog"), - MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), - MovedModule("tkinter_font", "tkFont", "tkinter.font"), - MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), - MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", - "tkinter.simpledialog"), - MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"), - MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"), - MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"), - MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), - MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"), - MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"), -] -# Add windows specific modules. -if sys.platform == "win32": - _moved_attributes += [ - MovedModule("winreg", "_winreg"), - ] - -for attr in _moved_attributes: - setattr(_MovedItems, attr.name, attr) - if isinstance(attr, MovedModule): - _importer._add_module(attr, "moves." + attr.name) -del attr - -_MovedItems._moved_attributes = _moved_attributes - -moves = _MovedItems(__name__ + ".moves") -_importer._add_module(moves, "moves") - - -class Module_six_moves_urllib_parse(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_parse""" - - -_urllib_parse_moved_attributes = [ - MovedAttribute("ParseResult", "urlparse", "urllib.parse"), - MovedAttribute("SplitResult", "urlparse", "urllib.parse"), - MovedAttribute("parse_qs", "urlparse", "urllib.parse"), - MovedAttribute("parse_qsl", "urlparse", "urllib.parse"), - MovedAttribute("urldefrag", "urlparse", "urllib.parse"), - MovedAttribute("urljoin", "urlparse", "urllib.parse"), - MovedAttribute("urlparse", "urlparse", "urllib.parse"), - MovedAttribute("urlsplit", "urlparse", "urllib.parse"), - MovedAttribute("urlunparse", "urlparse", "urllib.parse"), - MovedAttribute("urlunsplit", "urlparse", "urllib.parse"), - MovedAttribute("quote", "urllib", "urllib.parse"), - MovedAttribute("quote_plus", "urllib", "urllib.parse"), - MovedAttribute("unquote", "urllib", "urllib.parse"), - MovedAttribute("unquote_plus", "urllib", "urllib.parse"), - MovedAttribute("unquote_to_bytes", "urllib", "urllib.parse", "unquote", "unquote_to_bytes"), - MovedAttribute("urlencode", "urllib", "urllib.parse"), - MovedAttribute("splitquery", "urllib", "urllib.parse"), - MovedAttribute("splittag", "urllib", "urllib.parse"), - MovedAttribute("splituser", "urllib", "urllib.parse"), - MovedAttribute("splitvalue", "urllib", "urllib.parse"), - MovedAttribute("uses_fragment", "urlparse", "urllib.parse"), - MovedAttribute("uses_netloc", "urlparse", "urllib.parse"), - MovedAttribute("uses_params", "urlparse", "urllib.parse"), - MovedAttribute("uses_query", "urlparse", "urllib.parse"), - MovedAttribute("uses_relative", "urlparse", "urllib.parse"), -] -for attr in _urllib_parse_moved_attributes: - setattr(Module_six_moves_urllib_parse, attr.name, attr) -del attr - -Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes - -_importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse"), - "moves.urllib_parse", "moves.urllib.parse") - - -class Module_six_moves_urllib_error(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_error""" - - -_urllib_error_moved_attributes = [ - MovedAttribute("URLError", "urllib2", "urllib.error"), - MovedAttribute("HTTPError", "urllib2", "urllib.error"), - MovedAttribute("ContentTooShortError", "urllib", "urllib.error"), -] -for attr in _urllib_error_moved_attributes: - setattr(Module_six_moves_urllib_error, attr.name, attr) -del attr - -Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes - -_importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.error"), - "moves.urllib_error", "moves.urllib.error") - - -class Module_six_moves_urllib_request(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_request""" - - -_urllib_request_moved_attributes = [ - MovedAttribute("urlopen", "urllib2", "urllib.request"), - MovedAttribute("install_opener", "urllib2", "urllib.request"), - MovedAttribute("build_opener", "urllib2", "urllib.request"), - MovedAttribute("pathname2url", "urllib", "urllib.request"), - MovedAttribute("url2pathname", "urllib", "urllib.request"), - MovedAttribute("getproxies", "urllib", "urllib.request"), - MovedAttribute("Request", "urllib2", "urllib.request"), - MovedAttribute("OpenerDirector", "urllib2", "urllib.request"), - MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"), - MovedAttribute("ProxyHandler", "urllib2", "urllib.request"), - MovedAttribute("BaseHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"), - MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"), - MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"), - MovedAttribute("FileHandler", "urllib2", "urllib.request"), - MovedAttribute("FTPHandler", "urllib2", "urllib.request"), - MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"), - MovedAttribute("UnknownHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"), - MovedAttribute("urlretrieve", "urllib", "urllib.request"), - MovedAttribute("urlcleanup", "urllib", "urllib.request"), - MovedAttribute("URLopener", "urllib", "urllib.request"), - MovedAttribute("FancyURLopener", "urllib", "urllib.request"), - MovedAttribute("proxy_bypass", "urllib", "urllib.request"), - MovedAttribute("parse_http_list", "urllib2", "urllib.request"), - MovedAttribute("parse_keqv_list", "urllib2", "urllib.request"), -] -for attr in _urllib_request_moved_attributes: - setattr(Module_six_moves_urllib_request, attr.name, attr) -del attr - -Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes - -_importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib.request"), - "moves.urllib_request", "moves.urllib.request") - - -class Module_six_moves_urllib_response(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_response""" - - -_urllib_response_moved_attributes = [ - MovedAttribute("addbase", "urllib", "urllib.response"), - MovedAttribute("addclosehook", "urllib", "urllib.response"), - MovedAttribute("addinfo", "urllib", "urllib.response"), - MovedAttribute("addinfourl", "urllib", "urllib.response"), -] -for attr in _urllib_response_moved_attributes: - setattr(Module_six_moves_urllib_response, attr.name, attr) -del attr - -Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes - -_importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib.response"), - "moves.urllib_response", "moves.urllib.response") - - -class Module_six_moves_urllib_robotparser(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_robotparser""" - - -_urllib_robotparser_moved_attributes = [ - MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"), -] -for attr in _urllib_robotparser_moved_attributes: - setattr(Module_six_moves_urllib_robotparser, attr.name, attr) -del attr - -Module_six_moves_urllib_robotparser._moved_attributes = _urllib_robotparser_moved_attributes - -_importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser"), - "moves.urllib_robotparser", "moves.urllib.robotparser") - - -class Module_six_moves_urllib(types.ModuleType): - - """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" - __path__ = [] # mark as package - parse = _importer._get_module("moves.urllib_parse") - error = _importer._get_module("moves.urllib_error") - request = _importer._get_module("moves.urllib_request") - response = _importer._get_module("moves.urllib_response") - robotparser = _importer._get_module("moves.urllib_robotparser") - - def __dir__(self): - return ['parse', 'error', 'request', 'response', 'robotparser'] - -_importer._add_module(Module_six_moves_urllib(__name__ + ".moves.urllib"), - "moves.urllib") - - -def add_move(move): - """Add an item to six.moves.""" - setattr(_MovedItems, move.name, move) - - -def remove_move(name): - """Remove item from six.moves.""" - try: - delattr(_MovedItems, name) - except AttributeError: - try: - del moves.__dict__[name] - except KeyError: - raise AttributeError("no such move, %r" % (name,)) - - -if PY3: - _meth_func = "__func__" - _meth_self = "__self__" - - _func_closure = "__closure__" - _func_code = "__code__" - _func_defaults = "__defaults__" - _func_globals = "__globals__" -else: - _meth_func = "im_func" - _meth_self = "im_self" - - _func_closure = "func_closure" - _func_code = "func_code" - _func_defaults = "func_defaults" - _func_globals = "func_globals" - - -try: - advance_iterator = next -except NameError: - def advance_iterator(it): - return it.next() -next = advance_iterator - - -try: - callable = callable -except NameError: - def callable(obj): - return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) - - -if PY3: - def get_unbound_function(unbound): - return unbound - - create_bound_method = types.MethodType - - def create_unbound_method(func, cls): - return func - - Iterator = object -else: - def get_unbound_function(unbound): - return unbound.im_func - - def create_bound_method(func, obj): - return types.MethodType(func, obj, obj.__class__) - - def create_unbound_method(func, cls): - return types.MethodType(func, None, cls) - - class Iterator(object): - - def next(self): - return type(self).__next__(self) - - callable = callable -_add_doc(get_unbound_function, - """Get the function out of a possibly unbound function""") - - -get_method_function = operator.attrgetter(_meth_func) -get_method_self = operator.attrgetter(_meth_self) -get_function_closure = operator.attrgetter(_func_closure) -get_function_code = operator.attrgetter(_func_code) -get_function_defaults = operator.attrgetter(_func_defaults) -get_function_globals = operator.attrgetter(_func_globals) - - -if PY3: - def iterkeys(d, **kw): - return iter(d.keys(**kw)) - - def itervalues(d, **kw): - return iter(d.values(**kw)) - - def iteritems(d, **kw): - return iter(d.items(**kw)) - - def iterlists(d, **kw): - return iter(d.lists(**kw)) - - viewkeys = operator.methodcaller("keys") - - viewvalues = operator.methodcaller("values") - - viewitems = operator.methodcaller("items") -else: - def iterkeys(d, **kw): - return d.iterkeys(**kw) - - def itervalues(d, **kw): - return d.itervalues(**kw) - - def iteritems(d, **kw): - return d.iteritems(**kw) - - def iterlists(d, **kw): - return d.iterlists(**kw) - - viewkeys = operator.methodcaller("viewkeys") - - viewvalues = operator.methodcaller("viewvalues") - - viewitems = operator.methodcaller("viewitems") - -_add_doc(iterkeys, "Return an iterator over the keys of a dictionary.") -_add_doc(itervalues, "Return an iterator over the values of a dictionary.") -_add_doc(iteritems, - "Return an iterator over the (key, value) pairs of a dictionary.") -_add_doc(iterlists, - "Return an iterator over the (key, [values]) pairs of a dictionary.") - - -if PY3: - def b(s): - return s.encode("latin-1") - - def u(s): - return s - unichr = chr - import struct - int2byte = struct.Struct(">B").pack - del struct - byte2int = operator.itemgetter(0) - indexbytes = operator.getitem - iterbytes = iter - import io - StringIO = io.StringIO - BytesIO = io.BytesIO - _assertCountEqual = "assertCountEqual" - if sys.version_info[1] <= 1: - _assertRaisesRegex = "assertRaisesRegexp" - _assertRegex = "assertRegexpMatches" - else: - _assertRaisesRegex = "assertRaisesRegex" - _assertRegex = "assertRegex" -else: - def b(s): - return s - # Workaround for standalone backslash - - def u(s): - return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape") - unichr = unichr - int2byte = chr - - def byte2int(bs): - return ord(bs[0]) - - def indexbytes(buf, i): - return ord(buf[i]) - iterbytes = functools.partial(itertools.imap, ord) - import StringIO - StringIO = BytesIO = StringIO.StringIO - _assertCountEqual = "assertItemsEqual" - _assertRaisesRegex = "assertRaisesRegexp" - _assertRegex = "assertRegexpMatches" -_add_doc(b, """Byte literal""") -_add_doc(u, """Text literal""") - - -def assertCountEqual(self, *args, **kwargs): - return getattr(self, _assertCountEqual)(*args, **kwargs) - - -def assertRaisesRegex(self, *args, **kwargs): - return getattr(self, _assertRaisesRegex)(*args, **kwargs) - - -def assertRegex(self, *args, **kwargs): - return getattr(self, _assertRegex)(*args, **kwargs) - - -if PY3: - exec_ = getattr(moves.builtins, "exec") - - def reraise(tp, value, tb=None): - try: - if value is None: - value = tp() - if value.__traceback__ is not tb: - raise value.with_traceback(tb) - raise value - finally: - value = None - tb = None - -else: - def exec_(_code_, _globs_=None, _locs_=None): - """Execute code in a namespace.""" - if _globs_ is None: - frame = sys._getframe(1) - _globs_ = frame.f_globals - if _locs_ is None: - _locs_ = frame.f_locals - del frame - elif _locs_ is None: - _locs_ = _globs_ - exec("""exec _code_ in _globs_, _locs_""") - - exec_("""def reraise(tp, value, tb=None): - try: - raise tp, value, tb - finally: - tb = None -""") - - -if sys.version_info[:2] == (3, 2): - exec_("""def raise_from(value, from_value): - try: - if from_value is None: - raise value - raise value from from_value - finally: - value = None -""") -elif sys.version_info[:2] > (3, 2): - exec_("""def raise_from(value, from_value): - try: - raise value from from_value - finally: - value = None -""") -else: - def raise_from(value, from_value): - raise value - - -print_ = getattr(moves.builtins, "print", None) -if print_ is None: - def print_(*args, **kwargs): - """The new-style print function for Python 2.4 and 2.5.""" - fp = kwargs.pop("file", sys.stdout) - if fp is None: - return - - def write(data): - if not isinstance(data, basestring): - data = str(data) - # If the file has an encoding, encode unicode with it. - if (isinstance(fp, file) and - isinstance(data, unicode) and - fp.encoding is not None): - errors = getattr(fp, "errors", None) - if errors is None: - errors = "strict" - data = data.encode(fp.encoding, errors) - fp.write(data) - want_unicode = False - sep = kwargs.pop("sep", None) - if sep is not None: - if isinstance(sep, unicode): - want_unicode = True - elif not isinstance(sep, str): - raise TypeError("sep must be None or a string") - end = kwargs.pop("end", None) - if end is not None: - if isinstance(end, unicode): - want_unicode = True - elif not isinstance(end, str): - raise TypeError("end must be None or a string") - if kwargs: - raise TypeError("invalid keyword arguments to print()") - if not want_unicode: - for arg in args: - if isinstance(arg, unicode): - want_unicode = True - break - if want_unicode: - newline = unicode("\n") - space = unicode(" ") - else: - newline = "\n" - space = " " - if sep is None: - sep = space - if end is None: - end = newline - for i, arg in enumerate(args): - if i: - write(sep) - write(arg) - write(end) -if sys.version_info[:2] < (3, 3): - _print = print_ - - def print_(*args, **kwargs): - fp = kwargs.get("file", sys.stdout) - flush = kwargs.pop("flush", False) - _print(*args, **kwargs) - if flush and fp is not None: - fp.flush() - -_add_doc(reraise, """Reraise an exception.""") - -if sys.version_info[0:2] < (3, 4): - def wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, - updated=functools.WRAPPER_UPDATES): - def wrapper(f): - f = functools.wraps(wrapped, assigned, updated)(f) - f.__wrapped__ = wrapped - return f - return wrapper -else: - wraps = functools.wraps - - -def with_metaclass(meta, *bases): - """Create a base class with a metaclass.""" - # This requires a bit of explanation: the basic idea is to make a dummy - # metaclass for one level of class instantiation that replaces itself with - # the actual metaclass. - class metaclass(type): - - def __new__(cls, name, this_bases, d): - return meta(name, bases, d) - - @classmethod - def __prepare__(cls, name, this_bases): - return meta.__prepare__(name, bases) - return type.__new__(metaclass, 'temporary_class', (), {}) - - -def add_metaclass(metaclass): - """Class decorator for creating a class with a metaclass.""" - def wrapper(cls): - orig_vars = cls.__dict__.copy() - slots = orig_vars.get('__slots__') - if slots is not None: - if isinstance(slots, str): - slots = [slots] - for slots_var in slots: - orig_vars.pop(slots_var) - orig_vars.pop('__dict__', None) - orig_vars.pop('__weakref__', None) - if hasattr(cls, '__qualname__'): - orig_vars['__qualname__'] = cls.__qualname__ - return metaclass(cls.__name__, cls.__bases__, orig_vars) - return wrapper - - -def ensure_binary(s, encoding='utf-8', errors='strict'): - """Coerce **s** to six.binary_type. - - For Python 2: - - `unicode` -> encoded to `str` - - `str` -> `str` - - For Python 3: - - `str` -> encoded to `bytes` - - `bytes` -> `bytes` - """ - if isinstance(s, text_type): - return s.encode(encoding, errors) - elif isinstance(s, binary_type): - return s - else: - raise TypeError("not expecting type '%s'" % type(s)) - - -def ensure_str(s, encoding='utf-8', errors='strict'): - """Coerce *s* to `str`. - - For Python 2: - - `unicode` -> encoded to `str` - - `str` -> `str` - - For Python 3: - - `str` -> `str` - - `bytes` -> decoded to `str` - """ - if not isinstance(s, (text_type, binary_type)): - raise TypeError("not expecting type '%s'" % type(s)) - if PY2 and isinstance(s, text_type): - s = s.encode(encoding, errors) - elif PY3 and isinstance(s, binary_type): - s = s.decode(encoding, errors) - return s - - -def ensure_text(s, encoding='utf-8', errors='strict'): - """Coerce *s* to six.text_type. - - For Python 2: - - `unicode` -> `unicode` - - `str` -> `unicode` - - For Python 3: - - `str` -> `str` - - `bytes` -> decoded to `str` - """ - if isinstance(s, binary_type): - return s.decode(encoding, errors) - elif isinstance(s, text_type): - return s - else: - raise TypeError("not expecting type '%s'" % type(s)) - - - -def python_2_unicode_compatible(klass): - """ - A decorator that defines __unicode__ and __str__ methods under Python 2. - Under Python 3 it does nothing. - - To support Python 2 and 3 with a single code base, define a __str__ method - returning text and apply this decorator to the class. - """ - if PY2: - if '__str__' not in klass.__dict__: - raise ValueError("@python_2_unicode_compatible cannot be applied " - "to %s because it doesn't define __str__()." % - klass.__name__) - klass.__unicode__ = klass.__str__ - klass.__str__ = lambda self: self.__unicode__().encode('utf-8') - return klass - - -# Complete the moves implementation. -# This code is at the end of this module to speed up module loading. -# Turn this module into a package. -__path__ = [] # required for PEP 302 and PEP 451 -__package__ = __name__ # see PEP 366 @ReservedAssignment -if globals().get("__spec__") is not None: - __spec__.submodule_search_locations = [] # PEP 451 @UndefinedVariable -# Remove other six meta path importers, since they cause problems. This can -# happen if six is removed from sys.modules and then reloaded. (Setuptools does -# this for some reason.) -if sys.meta_path: - for i, importer in enumerate(sys.meta_path): - # Here's some real nastiness: Another "instance" of the six module might - # be floating around. Therefore, we can't use isinstance() to check for - # the six meta path importer, since the other six instance will have - # inserted an importer with different class. - if (type(importer).__name__ == "_SixMetaPathImporter" and - importer.name == __name__): - del sys.meta_path[i] - break - del i, importer -# Finally, add the importer to the meta path import hook. -sys.meta_path.append(_importer) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/__init__.py deleted file mode 100644 index 148a9c3..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/__init__.py +++ /dev/null @@ -1,92 +0,0 @@ -""" -urllib3 - Thread-safe connection pooling and re-using. -""" - -from __future__ import absolute_import -import warnings - -from .connectionpool import ( - HTTPConnectionPool, - HTTPSConnectionPool, - connection_from_url -) - -from . import exceptions -from .filepost import encode_multipart_formdata -from .poolmanager import PoolManager, ProxyManager, proxy_from_url -from .response import HTTPResponse -from .util.request import make_headers -from .util.url import get_host -from .util.timeout import Timeout -from .util.retry import Retry - - -# Set default logging handler to avoid "No handler found" warnings. -import logging -from logging import NullHandler - -__author__ = 'Andrey Petrov (andrey.petrov@shazow.net)' -__license__ = 'MIT' -__version__ = '1.24.1' - -__all__ = ( - 'HTTPConnectionPool', - 'HTTPSConnectionPool', - 'PoolManager', - 'ProxyManager', - 'HTTPResponse', - 'Retry', - 'Timeout', - 'add_stderr_logger', - 'connection_from_url', - 'disable_warnings', - 'encode_multipart_formdata', - 'get_host', - 'make_headers', - 'proxy_from_url', -) - -logging.getLogger(__name__).addHandler(NullHandler()) - - -def add_stderr_logger(level=logging.DEBUG): - """ - Helper for quickly adding a StreamHandler to the logger. Useful for - debugging. - - Returns the handler after adding it. - """ - # This method needs to be in this __init__.py to get the __name__ correct - # even if urllib3 is vendored within another package. - logger = logging.getLogger(__name__) - handler = logging.StreamHandler() - handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s %(message)s')) - logger.addHandler(handler) - logger.setLevel(level) - logger.debug('Added a stderr logging handler to logger: %s', __name__) - return handler - - -# ... Clean up. -del NullHandler - - -# All warning filters *must* be appended unless you're really certain that they -# shouldn't be: otherwise, it's very hard for users to use most Python -# mechanisms to silence them. -# SecurityWarning's always go off by default. -warnings.simplefilter('always', exceptions.SecurityWarning, append=True) -# SubjectAltNameWarning's should go off once per host -warnings.simplefilter('default', exceptions.SubjectAltNameWarning, append=True) -# InsecurePlatformWarning's don't vary between requests, so we keep it default. -warnings.simplefilter('default', exceptions.InsecurePlatformWarning, - append=True) -# SNIMissingWarnings should go off only once. -warnings.simplefilter('default', exceptions.SNIMissingWarning, append=True) - - -def disable_warnings(category=exceptions.HTTPWarning): - """ - Helper for quickly disabling all urllib3 warnings. - """ - warnings.simplefilter('ignore', category) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/_collections.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/_collections.py deleted file mode 100644 index 34f2381..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/_collections.py +++ /dev/null @@ -1,329 +0,0 @@ -from __future__ import absolute_import -try: - from collections.abc import Mapping, MutableMapping -except ImportError: - from collections import Mapping, MutableMapping -try: - from threading import RLock -except ImportError: # Platform-specific: No threads available - class RLock: - def __enter__(self): - pass - - def __exit__(self, exc_type, exc_value, traceback): - pass - - -from collections import OrderedDict -from .exceptions import InvalidHeader -from .packages.six import iterkeys, itervalues, PY3 - - -__all__ = ['RecentlyUsedContainer', 'HTTPHeaderDict'] - - -_Null = object() - - -class RecentlyUsedContainer(MutableMapping): - """ - Provides a thread-safe dict-like container which maintains up to - ``maxsize`` keys while throwing away the least-recently-used keys beyond - ``maxsize``. - - :param maxsize: - Maximum number of recent elements to retain. - - :param dispose_func: - Every time an item is evicted from the container, - ``dispose_func(value)`` is called. Callback which will get called - """ - - ContainerCls = OrderedDict - - def __init__(self, maxsize=10, dispose_func=None): - self._maxsize = maxsize - self.dispose_func = dispose_func - - self._container = self.ContainerCls() - self.lock = RLock() - - def __getitem__(self, key): - # Re-insert the item, moving it to the end of the eviction line. - with self.lock: - item = self._container.pop(key) - self._container[key] = item - return item - - def __setitem__(self, key, value): - evicted_value = _Null - with self.lock: - # Possibly evict the existing value of 'key' - evicted_value = self._container.get(key, _Null) - self._container[key] = value - - # If we didn't evict an existing value, we might have to evict the - # least recently used item from the beginning of the container. - if len(self._container) > self._maxsize: - _key, evicted_value = self._container.popitem(last=False) - - if self.dispose_func and evicted_value is not _Null: - self.dispose_func(evicted_value) - - def __delitem__(self, key): - with self.lock: - value = self._container.pop(key) - - if self.dispose_func: - self.dispose_func(value) - - def __len__(self): - with self.lock: - return len(self._container) - - def __iter__(self): - raise NotImplementedError('Iteration over this class is unlikely to be threadsafe.') - - def clear(self): - with self.lock: - # Copy pointers to all values, then wipe the mapping - values = list(itervalues(self._container)) - self._container.clear() - - if self.dispose_func: - for value in values: - self.dispose_func(value) - - def keys(self): - with self.lock: - return list(iterkeys(self._container)) - - -class HTTPHeaderDict(MutableMapping): - """ - :param headers: - An iterable of field-value pairs. Must not contain multiple field names - when compared case-insensitively. - - :param kwargs: - Additional field-value pairs to pass in to ``dict.update``. - - A ``dict`` like container for storing HTTP Headers. - - Field names are stored and compared case-insensitively in compliance with - RFC 7230. Iteration provides the first case-sensitive key seen for each - case-insensitive pair. - - Using ``__setitem__`` syntax overwrites fields that compare equal - case-insensitively in order to maintain ``dict``'s api. For fields that - compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add`` - in a loop. - - If multiple fields that are equal case-insensitively are passed to the - constructor or ``.update``, the behavior is undefined and some will be - lost. - - >>> headers = HTTPHeaderDict() - >>> headers.add('Set-Cookie', 'foo=bar') - >>> headers.add('set-cookie', 'baz=quxx') - >>> headers['content-length'] = '7' - >>> headers['SET-cookie'] - 'foo=bar, baz=quxx' - >>> headers['Content-Length'] - '7' - """ - - def __init__(self, headers=None, **kwargs): - super(HTTPHeaderDict, self).__init__() - self._container = OrderedDict() - if headers is not None: - if isinstance(headers, HTTPHeaderDict): - self._copy_from(headers) - else: - self.extend(headers) - if kwargs: - self.extend(kwargs) - - def __setitem__(self, key, val): - self._container[key.lower()] = [key, val] - return self._container[key.lower()] - - def __getitem__(self, key): - val = self._container[key.lower()] - return ', '.join(val[1:]) - - def __delitem__(self, key): - del self._container[key.lower()] - - def __contains__(self, key): - return key.lower() in self._container - - def __eq__(self, other): - if not isinstance(other, Mapping) and not hasattr(other, 'keys'): - return False - if not isinstance(other, type(self)): - other = type(self)(other) - return (dict((k.lower(), v) for k, v in self.itermerged()) == - dict((k.lower(), v) for k, v in other.itermerged())) - - def __ne__(self, other): - return not self.__eq__(other) - - if not PY3: # Python 2 - iterkeys = MutableMapping.iterkeys - itervalues = MutableMapping.itervalues - - __marker = object() - - def __len__(self): - return len(self._container) - - def __iter__(self): - # Only provide the originally cased names - for vals in self._container.values(): - yield vals[0] - - def pop(self, key, default=__marker): - '''D.pop(k[,d]) -> v, remove specified key and return the corresponding value. - If key is not found, d is returned if given, otherwise KeyError is raised. - ''' - # Using the MutableMapping function directly fails due to the private marker. - # Using ordinary dict.pop would expose the internal structures. - # So let's reinvent the wheel. - try: - value = self[key] - except KeyError: - if default is self.__marker: - raise - return default - else: - del self[key] - return value - - def discard(self, key): - try: - del self[key] - except KeyError: - pass - - def add(self, key, val): - """Adds a (name, value) pair, doesn't overwrite the value if it already - exists. - - >>> headers = HTTPHeaderDict(foo='bar') - >>> headers.add('Foo', 'baz') - >>> headers['foo'] - 'bar, baz' - """ - key_lower = key.lower() - new_vals = [key, val] - # Keep the common case aka no item present as fast as possible - vals = self._container.setdefault(key_lower, new_vals) - if new_vals is not vals: - vals.append(val) - - def extend(self, *args, **kwargs): - """Generic import function for any type of header-like object. - Adapted version of MutableMapping.update in order to insert items - with self.add instead of self.__setitem__ - """ - if len(args) > 1: - raise TypeError("extend() takes at most 1 positional " - "arguments ({0} given)".format(len(args))) - other = args[0] if len(args) >= 1 else () - - if isinstance(other, HTTPHeaderDict): - for key, val in other.iteritems(): - self.add(key, val) - elif isinstance(other, Mapping): - for key in other: - self.add(key, other[key]) - elif hasattr(other, "keys"): - for key in other.keys(): - self.add(key, other[key]) - else: - for key, value in other: - self.add(key, value) - - for key, value in kwargs.items(): - self.add(key, value) - - def getlist(self, key, default=__marker): - """Returns a list of all the values for the named field. Returns an - empty list if the key doesn't exist.""" - try: - vals = self._container[key.lower()] - except KeyError: - if default is self.__marker: - return [] - return default - else: - return vals[1:] - - # Backwards compatibility for httplib - getheaders = getlist - getallmatchingheaders = getlist - iget = getlist - - # Backwards compatibility for http.cookiejar - get_all = getlist - - def __repr__(self): - return "%s(%s)" % (type(self).__name__, dict(self.itermerged())) - - def _copy_from(self, other): - for key in other: - val = other.getlist(key) - if isinstance(val, list): - # Don't need to convert tuples - val = list(val) - self._container[key.lower()] = [key] + val - - def copy(self): - clone = type(self)() - clone._copy_from(self) - return clone - - def iteritems(self): - """Iterate over all header lines, including duplicate ones.""" - for key in self: - vals = self._container[key.lower()] - for val in vals[1:]: - yield vals[0], val - - def itermerged(self): - """Iterate over all headers, merging duplicate ones together.""" - for key in self: - val = self._container[key.lower()] - yield val[0], ', '.join(val[1:]) - - def items(self): - return list(self.iteritems()) - - @classmethod - def from_httplib(cls, message): # Python 2 - """Read headers from a Python 2 httplib message object.""" - # python2.7 does not expose a proper API for exporting multiheaders - # efficiently. This function re-reads raw lines from the message - # object and extracts the multiheaders properly. - obs_fold_continued_leaders = (' ', '\t') - headers = [] - - for line in message.headers: - if line.startswith(obs_fold_continued_leaders): - if not headers: - # We received a header line that starts with OWS as described - # in RFC-7230 S3.2.4. This indicates a multiline header, but - # there exists no previous header to which we can attach it. - raise InvalidHeader( - 'Header continuation with no previous header: %s' % line - ) - else: - key, value = headers[-1] - headers[-1] = (key, value + ' ' + line.strip()) - continue - - key, value = line.split(':', 1) - headers.append((key, value.strip())) - - return cls(headers) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connection.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connection.py deleted file mode 100644 index 02b3665..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connection.py +++ /dev/null @@ -1,391 +0,0 @@ -from __future__ import absolute_import -import datetime -import logging -import os -import socket -from socket import error as SocketError, timeout as SocketTimeout -import warnings -from .packages import six -from .packages.six.moves.http_client import HTTPConnection as _HTTPConnection -from .packages.six.moves.http_client import HTTPException # noqa: F401 - -try: # Compiled with SSL? - import ssl - BaseSSLError = ssl.SSLError -except (ImportError, AttributeError): # Platform-specific: No SSL. - ssl = None - - class BaseSSLError(BaseException): - pass - - -try: # Python 3: - # Not a no-op, we're adding this to the namespace so it can be imported. - ConnectionError = ConnectionError -except NameError: # Python 2: - class ConnectionError(Exception): - pass - - -from .exceptions import ( - NewConnectionError, - ConnectTimeoutError, - SubjectAltNameWarning, - SystemTimeWarning, -) -from .packages.ssl_match_hostname import match_hostname, CertificateError - -from .util.ssl_ import ( - resolve_cert_reqs, - resolve_ssl_version, - assert_fingerprint, - create_urllib3_context, - ssl_wrap_socket -) - - -from .util import connection - -from ._collections import HTTPHeaderDict - -log = logging.getLogger(__name__) - -port_by_scheme = { - 'http': 80, - 'https': 443, -} - -# When updating RECENT_DATE, move it to within two years of the current date, -# and not less than 6 months ago. -# Example: if Today is 2018-01-01, then RECENT_DATE should be any date on or -# after 2016-01-01 (today - 2 years) AND before 2017-07-01 (today - 6 months) -RECENT_DATE = datetime.date(2017, 6, 30) - - -class DummyConnection(object): - """Used to detect a failed ConnectionCls import.""" - pass - - -class HTTPConnection(_HTTPConnection, object): - """ - Based on httplib.HTTPConnection but provides an extra constructor - backwards-compatibility layer between older and newer Pythons. - - Additional keyword parameters are used to configure attributes of the connection. - Accepted parameters include: - - - ``strict``: See the documentation on :class:`urllib3.connectionpool.HTTPConnectionPool` - - ``source_address``: Set the source address for the current connection. - - ``socket_options``: Set specific options on the underlying socket. If not specified, then - defaults are loaded from ``HTTPConnection.default_socket_options`` which includes disabling - Nagle's algorithm (sets TCP_NODELAY to 1) unless the connection is behind a proxy. - - For example, if you wish to enable TCP Keep Alive in addition to the defaults, - you might pass:: - - HTTPConnection.default_socket_options + [ - (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1), - ] - - Or you may want to disable the defaults by passing an empty list (e.g., ``[]``). - """ - - default_port = port_by_scheme['http'] - - #: Disable Nagle's algorithm by default. - #: ``[(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)]`` - default_socket_options = [(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)] - - #: Whether this connection verifies the host's certificate. - is_verified = False - - def __init__(self, *args, **kw): - if six.PY3: # Python 3 - kw.pop('strict', None) - - # Pre-set source_address. - self.source_address = kw.get('source_address') - - #: The socket options provided by the user. If no options are - #: provided, we use the default options. - self.socket_options = kw.pop('socket_options', self.default_socket_options) - - _HTTPConnection.__init__(self, *args, **kw) - - @property - def host(self): - """ - Getter method to remove any trailing dots that indicate the hostname is an FQDN. - - In general, SSL certificates don't include the trailing dot indicating a - fully-qualified domain name, and thus, they don't validate properly when - checked against a domain name that includes the dot. In addition, some - servers may not expect to receive the trailing dot when provided. - - However, the hostname with trailing dot is critical to DNS resolution; doing a - lookup with the trailing dot will properly only resolve the appropriate FQDN, - whereas a lookup without a trailing dot will search the system's search domain - list. Thus, it's important to keep the original host around for use only in - those cases where it's appropriate (i.e., when doing DNS lookup to establish the - actual TCP connection across which we're going to send HTTP requests). - """ - return self._dns_host.rstrip('.') - - @host.setter - def host(self, value): - """ - Setter for the `host` property. - - We assume that only urllib3 uses the _dns_host attribute; httplib itself - only uses `host`, and it seems reasonable that other libraries follow suit. - """ - self._dns_host = value - - def _new_conn(self): - """ Establish a socket connection and set nodelay settings on it. - - :return: New socket connection. - """ - extra_kw = {} - if self.source_address: - extra_kw['source_address'] = self.source_address - - if self.socket_options: - extra_kw['socket_options'] = self.socket_options - - try: - conn = connection.create_connection( - (self._dns_host, self.port), self.timeout, **extra_kw) - - except SocketTimeout as e: - raise ConnectTimeoutError( - self, "Connection to %s timed out. (connect timeout=%s)" % - (self.host, self.timeout)) - - except SocketError as e: - raise NewConnectionError( - self, "Failed to establish a new connection: %s" % e) - - return conn - - def _prepare_conn(self, conn): - self.sock = conn - if self._tunnel_host: - # TODO: Fix tunnel so it doesn't depend on self.sock state. - self._tunnel() - # Mark this connection as not reusable - self.auto_open = 0 - - def connect(self): - conn = self._new_conn() - self._prepare_conn(conn) - - def request_chunked(self, method, url, body=None, headers=None): - """ - Alternative to the common request method, which sends the - body with chunked encoding and not as one block - """ - headers = HTTPHeaderDict(headers if headers is not None else {}) - skip_accept_encoding = 'accept-encoding' in headers - skip_host = 'host' in headers - self.putrequest( - method, - url, - skip_accept_encoding=skip_accept_encoding, - skip_host=skip_host - ) - for header, value in headers.items(): - self.putheader(header, value) - if 'transfer-encoding' not in headers: - self.putheader('Transfer-Encoding', 'chunked') - self.endheaders() - - if body is not None: - stringish_types = six.string_types + (bytes,) - if isinstance(body, stringish_types): - body = (body,) - for chunk in body: - if not chunk: - continue - if not isinstance(chunk, bytes): - chunk = chunk.encode('utf8') - len_str = hex(len(chunk))[2:] - self.send(len_str.encode('utf-8')) - self.send(b'\r\n') - self.send(chunk) - self.send(b'\r\n') - - # After the if clause, to always have a closed body - self.send(b'0\r\n\r\n') - - -class HTTPSConnection(HTTPConnection): - default_port = port_by_scheme['https'] - - ssl_version = None - - def __init__(self, host, port=None, key_file=None, cert_file=None, - strict=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, - ssl_context=None, server_hostname=None, **kw): - - HTTPConnection.__init__(self, host, port, strict=strict, - timeout=timeout, **kw) - - self.key_file = key_file - self.cert_file = cert_file - self.ssl_context = ssl_context - self.server_hostname = server_hostname - - # Required property for Google AppEngine 1.9.0 which otherwise causes - # HTTPS requests to go out as HTTP. (See Issue #356) - self._protocol = 'https' - - def connect(self): - conn = self._new_conn() - self._prepare_conn(conn) - - if self.ssl_context is None: - self.ssl_context = create_urllib3_context( - ssl_version=resolve_ssl_version(None), - cert_reqs=resolve_cert_reqs(None), - ) - - self.sock = ssl_wrap_socket( - sock=conn, - keyfile=self.key_file, - certfile=self.cert_file, - ssl_context=self.ssl_context, - server_hostname=self.server_hostname - ) - - -class VerifiedHTTPSConnection(HTTPSConnection): - """ - Based on httplib.HTTPSConnection but wraps the socket with - SSL certification. - """ - cert_reqs = None - ca_certs = None - ca_cert_dir = None - ssl_version = None - assert_fingerprint = None - - def set_cert(self, key_file=None, cert_file=None, - cert_reqs=None, ca_certs=None, - assert_hostname=None, assert_fingerprint=None, - ca_cert_dir=None): - """ - This method should only be called once, before the connection is used. - """ - # If cert_reqs is not provided, we can try to guess. If the user gave - # us a cert database, we assume they want to use it: otherwise, if - # they gave us an SSL Context object we should use whatever is set for - # it. - if cert_reqs is None: - if ca_certs or ca_cert_dir: - cert_reqs = 'CERT_REQUIRED' - elif self.ssl_context is not None: - cert_reqs = self.ssl_context.verify_mode - - self.key_file = key_file - self.cert_file = cert_file - self.cert_reqs = cert_reqs - self.assert_hostname = assert_hostname - self.assert_fingerprint = assert_fingerprint - self.ca_certs = ca_certs and os.path.expanduser(ca_certs) - self.ca_cert_dir = ca_cert_dir and os.path.expanduser(ca_cert_dir) - - def connect(self): - # Add certificate verification - conn = self._new_conn() - hostname = self.host - - if self._tunnel_host: - self.sock = conn - # Calls self._set_hostport(), so self.host is - # self._tunnel_host below. - self._tunnel() - # Mark this connection as not reusable - self.auto_open = 0 - - # Override the host with the one we're requesting data from. - hostname = self._tunnel_host - - server_hostname = hostname - if self.server_hostname is not None: - server_hostname = self.server_hostname - - is_time_off = datetime.date.today() < RECENT_DATE - if is_time_off: - warnings.warn(( - 'System time is way off (before {0}). This will probably ' - 'lead to SSL verification errors').format(RECENT_DATE), - SystemTimeWarning - ) - - # Wrap socket using verification with the root certs in - # trusted_root_certs - if self.ssl_context is None: - self.ssl_context = create_urllib3_context( - ssl_version=resolve_ssl_version(self.ssl_version), - cert_reqs=resolve_cert_reqs(self.cert_reqs), - ) - - context = self.ssl_context - context.verify_mode = resolve_cert_reqs(self.cert_reqs) - self.sock = ssl_wrap_socket( - sock=conn, - keyfile=self.key_file, - certfile=self.cert_file, - ca_certs=self.ca_certs, - ca_cert_dir=self.ca_cert_dir, - server_hostname=server_hostname, - ssl_context=context) - - if self.assert_fingerprint: - assert_fingerprint(self.sock.getpeercert(binary_form=True), - self.assert_fingerprint) - elif context.verify_mode != ssl.CERT_NONE \ - and not getattr(context, 'check_hostname', False) \ - and self.assert_hostname is not False: - # While urllib3 attempts to always turn off hostname matching from - # the TLS library, this cannot always be done. So we check whether - # the TLS Library still thinks it's matching hostnames. - cert = self.sock.getpeercert() - if not cert.get('subjectAltName', ()): - warnings.warn(( - 'Certificate for {0} has no `subjectAltName`, falling back to check for a ' - '`commonName` for now. This feature is being removed by major browsers and ' - 'deprecated by RFC 2818. (See https://github.com/shazow/urllib3/issues/497 ' - 'for details.)'.format(hostname)), - SubjectAltNameWarning - ) - _match_hostname(cert, self.assert_hostname or server_hostname) - - self.is_verified = ( - context.verify_mode == ssl.CERT_REQUIRED or - self.assert_fingerprint is not None - ) - - -def _match_hostname(cert, asserted_hostname): - try: - match_hostname(cert, asserted_hostname) - except CertificateError as e: - log.error( - 'Certificate did not match expected hostname: %s. ' - 'Certificate: %s', asserted_hostname, cert - ) - # Add cert to exception and reraise so client code can inspect - # the cert when catching the exception, if they want to - e._peer_cert = cert - raise - - -if ssl: - # Make a copy for testing. - UnverifiedHTTPSConnection = HTTPSConnection - HTTPSConnection = VerifiedHTTPSConnection -else: - HTTPSConnection = DummyConnection diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connectionpool.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connectionpool.py deleted file mode 100644 index f7a8f19..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connectionpool.py +++ /dev/null @@ -1,896 +0,0 @@ -from __future__ import absolute_import -import errno -import logging -import sys -import warnings - -from socket import error as SocketError, timeout as SocketTimeout -import socket - - -from .exceptions import ( - ClosedPoolError, - ProtocolError, - EmptyPoolError, - HeaderParsingError, - HostChangedError, - LocationValueError, - MaxRetryError, - ProxyError, - ReadTimeoutError, - SSLError, - TimeoutError, - InsecureRequestWarning, - NewConnectionError, -) -from .packages.ssl_match_hostname import CertificateError -from .packages import six -from .packages.six.moves import queue -from .connection import ( - port_by_scheme, - DummyConnection, - HTTPConnection, HTTPSConnection, VerifiedHTTPSConnection, - HTTPException, BaseSSLError, -) -from .request import RequestMethods -from .response import HTTPResponse - -from .util.connection import is_connection_dropped -from .util.request import set_file_position -from .util.response import assert_header_parsing -from .util.retry import Retry -from .util.timeout import Timeout -from .util.url import get_host, Url, NORMALIZABLE_SCHEMES -from .util.queue import LifoQueue - - -xrange = six.moves.xrange - -log = logging.getLogger(__name__) - -_Default = object() - - -# Pool objects -class ConnectionPool(object): - """ - Base class for all connection pools, such as - :class:`.HTTPConnectionPool` and :class:`.HTTPSConnectionPool`. - """ - - scheme = None - QueueCls = LifoQueue - - def __init__(self, host, port=None): - if not host: - raise LocationValueError("No host specified.") - - self.host = _ipv6_host(host, self.scheme) - self._proxy_host = host.lower() - self.port = port - - def __str__(self): - return '%s(host=%r, port=%r)' % (type(self).__name__, - self.host, self.port) - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - self.close() - # Return False to re-raise any potential exceptions - return False - - def close(self): - """ - Close all pooled connections and disable the pool. - """ - pass - - -# This is taken from http://hg.python.org/cpython/file/7aaba721ebc0/Lib/socket.py#l252 -_blocking_errnos = {errno.EAGAIN, errno.EWOULDBLOCK} - - -class HTTPConnectionPool(ConnectionPool, RequestMethods): - """ - Thread-safe connection pool for one host. - - :param host: - Host used for this HTTP Connection (e.g. "localhost"), passed into - :class:`httplib.HTTPConnection`. - - :param port: - Port used for this HTTP Connection (None is equivalent to 80), passed - into :class:`httplib.HTTPConnection`. - - :param strict: - Causes BadStatusLine to be raised if the status line can't be parsed - as a valid HTTP/1.0 or 1.1 status line, passed into - :class:`httplib.HTTPConnection`. - - .. note:: - Only works in Python 2. This parameter is ignored in Python 3. - - :param timeout: - Socket timeout in seconds for each individual connection. This can - be a float or integer, which sets the timeout for the HTTP request, - or an instance of :class:`urllib3.util.Timeout` which gives you more - fine-grained control over request timeouts. After the constructor has - been parsed, this is always a `urllib3.util.Timeout` object. - - :param maxsize: - Number of connections to save that can be reused. More than 1 is useful - in multithreaded situations. If ``block`` is set to False, more - connections will be created but they will not be saved once they've - been used. - - :param block: - If set to True, no more than ``maxsize`` connections will be used at - a time. When no free connections are available, the call will block - until a connection has been released. This is a useful side effect for - particular multithreaded situations where one does not want to use more - than maxsize connections per host to prevent flooding. - - :param headers: - Headers to include with all requests, unless other headers are given - explicitly. - - :param retries: - Retry configuration to use by default with requests in this pool. - - :param _proxy: - Parsed proxy URL, should not be used directly, instead, see - :class:`urllib3.connectionpool.ProxyManager`" - - :param _proxy_headers: - A dictionary with proxy headers, should not be used directly, - instead, see :class:`urllib3.connectionpool.ProxyManager`" - - :param \\**conn_kw: - Additional parameters are used to create fresh :class:`urllib3.connection.HTTPConnection`, - :class:`urllib3.connection.HTTPSConnection` instances. - """ - - scheme = 'http' - ConnectionCls = HTTPConnection - ResponseCls = HTTPResponse - - def __init__(self, host, port=None, strict=False, - timeout=Timeout.DEFAULT_TIMEOUT, maxsize=1, block=False, - headers=None, retries=None, - _proxy=None, _proxy_headers=None, - **conn_kw): - ConnectionPool.__init__(self, host, port) - RequestMethods.__init__(self, headers) - - self.strict = strict - - if not isinstance(timeout, Timeout): - timeout = Timeout.from_float(timeout) - - if retries is None: - retries = Retry.DEFAULT - - self.timeout = timeout - self.retries = retries - - self.pool = self.QueueCls(maxsize) - self.block = block - - self.proxy = _proxy - self.proxy_headers = _proxy_headers or {} - - # Fill the queue up so that doing get() on it will block properly - for _ in xrange(maxsize): - self.pool.put(None) - - # These are mostly for testing and debugging purposes. - self.num_connections = 0 - self.num_requests = 0 - self.conn_kw = conn_kw - - if self.proxy: - # Enable Nagle's algorithm for proxies, to avoid packet fragmentation. - # We cannot know if the user has added default socket options, so we cannot replace the - # list. - self.conn_kw.setdefault('socket_options', []) - - def _new_conn(self): - """ - Return a fresh :class:`HTTPConnection`. - """ - self.num_connections += 1 - log.debug("Starting new HTTP connection (%d): %s:%s", - self.num_connections, self.host, self.port or "80") - - conn = self.ConnectionCls(host=self.host, port=self.port, - timeout=self.timeout.connect_timeout, - strict=self.strict, **self.conn_kw) - return conn - - def _get_conn(self, timeout=None): - """ - Get a connection. Will return a pooled connection if one is available. - - If no connections are available and :prop:`.block` is ``False``, then a - fresh connection is returned. - - :param timeout: - Seconds to wait before giving up and raising - :class:`urllib3.exceptions.EmptyPoolError` if the pool is empty and - :prop:`.block` is ``True``. - """ - conn = None - try: - conn = self.pool.get(block=self.block, timeout=timeout) - - except AttributeError: # self.pool is None - raise ClosedPoolError(self, "Pool is closed.") - - except queue.Empty: - if self.block: - raise EmptyPoolError(self, - "Pool reached maximum size and no more " - "connections are allowed.") - pass # Oh well, we'll create a new connection then - - # If this is a persistent connection, check if it got disconnected - if conn and is_connection_dropped(conn): - log.debug("Resetting dropped connection: %s", self.host) - conn.close() - if getattr(conn, 'auto_open', 1) == 0: - # This is a proxied connection that has been mutated by - # httplib._tunnel() and cannot be reused (since it would - # attempt to bypass the proxy) - conn = None - - return conn or self._new_conn() - - def _put_conn(self, conn): - """ - Put a connection back into the pool. - - :param conn: - Connection object for the current host and port as returned by - :meth:`._new_conn` or :meth:`._get_conn`. - - If the pool is already full, the connection is closed and discarded - because we exceeded maxsize. If connections are discarded frequently, - then maxsize should be increased. - - If the pool is closed, then the connection will be closed and discarded. - """ - try: - self.pool.put(conn, block=False) - return # Everything is dandy, done. - except AttributeError: - # self.pool is None. - pass - except queue.Full: - # This should never happen if self.block == True - log.warning( - "Connection pool is full, discarding connection: %s", - self.host) - - # Connection never got put back into the pool, close it. - if conn: - conn.close() - - def _validate_conn(self, conn): - """ - Called right before a request is made, after the socket is created. - """ - pass - - def _prepare_proxy(self, conn): - # Nothing to do for HTTP connections. - pass - - def _get_timeout(self, timeout): - """ Helper that always returns a :class:`urllib3.util.Timeout` """ - if timeout is _Default: - return self.timeout.clone() - - if isinstance(timeout, Timeout): - return timeout.clone() - else: - # User passed us an int/float. This is for backwards compatibility, - # can be removed later - return Timeout.from_float(timeout) - - def _raise_timeout(self, err, url, timeout_value): - """Is the error actually a timeout? Will raise a ReadTimeout or pass""" - - if isinstance(err, SocketTimeout): - raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value) - - # See the above comment about EAGAIN in Python 3. In Python 2 we have - # to specifically catch it and throw the timeout error - if hasattr(err, 'errno') and err.errno in _blocking_errnos: - raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value) - - # Catch possible read timeouts thrown as SSL errors. If not the - # case, rethrow the original. We need to do this because of: - # http://bugs.python.org/issue10272 - if 'timed out' in str(err) or 'did not complete (read)' in str(err): # Python < 2.7.4 - raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value) - - def _make_request(self, conn, method, url, timeout=_Default, chunked=False, - **httplib_request_kw): - """ - Perform a request on a given urllib connection object taken from our - pool. - - :param conn: - a connection from one of our connection pools - - :param timeout: - Socket timeout in seconds for the request. This can be a - float or integer, which will set the same timeout value for - the socket connect and the socket read, or an instance of - :class:`urllib3.util.Timeout`, which gives you more fine-grained - control over your timeouts. - """ - self.num_requests += 1 - - timeout_obj = self._get_timeout(timeout) - timeout_obj.start_connect() - conn.timeout = timeout_obj.connect_timeout - - # Trigger any extra validation we need to do. - try: - self._validate_conn(conn) - except (SocketTimeout, BaseSSLError) as e: - # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout. - self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) - raise - - # conn.request() calls httplib.*.request, not the method in - # urllib3.request. It also calls makefile (recv) on the socket. - if chunked: - conn.request_chunked(method, url, **httplib_request_kw) - else: - conn.request(method, url, **httplib_request_kw) - - # Reset the timeout for the recv() on the socket - read_timeout = timeout_obj.read_timeout - - # App Engine doesn't have a sock attr - if getattr(conn, 'sock', None): - # In Python 3 socket.py will catch EAGAIN and return None when you - # try and read into the file pointer created by http.client, which - # instead raises a BadStatusLine exception. Instead of catching - # the exception and assuming all BadStatusLine exceptions are read - # timeouts, check for a zero timeout before making the request. - if read_timeout == 0: - raise ReadTimeoutError( - self, url, "Read timed out. (read timeout=%s)" % read_timeout) - if read_timeout is Timeout.DEFAULT_TIMEOUT: - conn.sock.settimeout(socket.getdefaulttimeout()) - else: # None or a value - conn.sock.settimeout(read_timeout) - - # Receive the response from the server - try: - try: # Python 2.7, use buffering of HTTP responses - httplib_response = conn.getresponse(buffering=True) - except TypeError: # Python 3 - try: - httplib_response = conn.getresponse() - except Exception as e: - # Remove the TypeError from the exception chain in Python 3; - # otherwise it looks like a programming error was the cause. - six.raise_from(e, None) - except (SocketTimeout, BaseSSLError, SocketError) as e: - self._raise_timeout(err=e, url=url, timeout_value=read_timeout) - raise - - # AppEngine doesn't have a version attr. - http_version = getattr(conn, '_http_vsn_str', 'HTTP/?') - log.debug("%s://%s:%s \"%s %s %s\" %s %s", self.scheme, self.host, self.port, - method, url, http_version, httplib_response.status, - httplib_response.length) - - try: - assert_header_parsing(httplib_response.msg) - except (HeaderParsingError, TypeError) as hpe: # Platform-specific: Python 3 - log.warning( - 'Failed to parse headers (url=%s): %s', - self._absolute_url(url), hpe, exc_info=True) - - return httplib_response - - def _absolute_url(self, path): - return Url(scheme=self.scheme, host=self.host, port=self.port, path=path).url - - def close(self): - """ - Close all pooled connections and disable the pool. - """ - if self.pool is None: - return - # Disable access to the pool - old_pool, self.pool = self.pool, None - - try: - while True: - conn = old_pool.get(block=False) - if conn: - conn.close() - - except queue.Empty: - pass # Done. - - def is_same_host(self, url): - """ - Check if the given ``url`` is a member of the same host as this - connection pool. - """ - if url.startswith('/'): - return True - - # TODO: Add optional support for socket.gethostbyname checking. - scheme, host, port = get_host(url) - - host = _ipv6_host(host, self.scheme) - - # Use explicit default port for comparison when none is given - if self.port and not port: - port = port_by_scheme.get(scheme) - elif not self.port and port == port_by_scheme.get(scheme): - port = None - - return (scheme, host, port) == (self.scheme, self.host, self.port) - - def urlopen(self, method, url, body=None, headers=None, retries=None, - redirect=True, assert_same_host=True, timeout=_Default, - pool_timeout=None, release_conn=None, chunked=False, - body_pos=None, **response_kw): - """ - Get a connection from the pool and perform an HTTP request. This is the - lowest level call for making a request, so you'll need to specify all - the raw details. - - .. note:: - - More commonly, it's appropriate to use a convenience method provided - by :class:`.RequestMethods`, such as :meth:`request`. - - .. note:: - - `release_conn` will only behave as expected if - `preload_content=False` because we want to make - `preload_content=False` the default behaviour someday soon without - breaking backwards compatibility. - - :param method: - HTTP request method (such as GET, POST, PUT, etc.) - - :param body: - Data to send in the request body (useful for creating - POST requests, see HTTPConnectionPool.post_url for - more convenience). - - :param headers: - Dictionary of custom headers to send, such as User-Agent, - If-None-Match, etc. If None, pool headers are used. If provided, - these headers completely replace any pool-specific headers. - - :param retries: - Configure the number of retries to allow before raising a - :class:`~urllib3.exceptions.MaxRetryError` exception. - - Pass ``None`` to retry until you receive a response. Pass a - :class:`~urllib3.util.retry.Retry` object for fine-grained control - over different types of retries. - Pass an integer number to retry connection errors that many times, - but no other types of errors. Pass zero to never retry. - - If ``False``, then retries are disabled and any exception is raised - immediately. Also, instead of raising a MaxRetryError on redirects, - the redirect response will be returned. - - :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. - - :param redirect: - If True, automatically handle redirects (status codes 301, 302, - 303, 307, 308). Each redirect counts as a retry. Disabling retries - will disable redirect, too. - - :param assert_same_host: - If ``True``, will make sure that the host of the pool requests is - consistent else will raise HostChangedError. When False, you can - use the pool on an HTTP proxy and request foreign hosts. - - :param timeout: - If specified, overrides the default timeout for this one - request. It may be a float (in seconds) or an instance of - :class:`urllib3.util.Timeout`. - - :param pool_timeout: - If set and the pool is set to block=True, then this method will - block for ``pool_timeout`` seconds and raise EmptyPoolError if no - connection is available within the time period. - - :param release_conn: - If False, then the urlopen call will not release the connection - back into the pool once a response is received (but will release if - you read the entire contents of the response such as when - `preload_content=True`). This is useful if you're not preloading - the response's content immediately. You will need to call - ``r.release_conn()`` on the response ``r`` to return the connection - back into the pool. If None, it takes the value of - ``response_kw.get('preload_content', True)``. - - :param chunked: - If True, urllib3 will send the body using chunked transfer - encoding. Otherwise, urllib3 will send the body using the standard - content-length form. Defaults to False. - - :param int body_pos: - Position to seek to in file-like body in the event of a retry or - redirect. Typically this won't need to be set because urllib3 will - auto-populate the value when needed. - - :param \\**response_kw: - Additional parameters are passed to - :meth:`urllib3.response.HTTPResponse.from_httplib` - """ - if headers is None: - headers = self.headers - - if not isinstance(retries, Retry): - retries = Retry.from_int(retries, redirect=redirect, default=self.retries) - - if release_conn is None: - release_conn = response_kw.get('preload_content', True) - - # Check host - if assert_same_host and not self.is_same_host(url): - raise HostChangedError(self, url, retries) - - conn = None - - # Track whether `conn` needs to be released before - # returning/raising/recursing. Update this variable if necessary, and - # leave `release_conn` constant throughout the function. That way, if - # the function recurses, the original value of `release_conn` will be - # passed down into the recursive call, and its value will be respected. - # - # See issue #651 [1] for details. - # - # [1] <https://github.com/shazow/urllib3/issues/651> - release_this_conn = release_conn - - # Merge the proxy headers. Only do this in HTTP. We have to copy the - # headers dict so we can safely change it without those changes being - # reflected in anyone else's copy. - if self.scheme == 'http': - headers = headers.copy() - headers.update(self.proxy_headers) - - # Must keep the exception bound to a separate variable or else Python 3 - # complains about UnboundLocalError. - err = None - - # Keep track of whether we cleanly exited the except block. This - # ensures we do proper cleanup in finally. - clean_exit = False - - # Rewind body position, if needed. Record current position - # for future rewinds in the event of a redirect/retry. - body_pos = set_file_position(body, body_pos) - - try: - # Request a connection from the queue. - timeout_obj = self._get_timeout(timeout) - conn = self._get_conn(timeout=pool_timeout) - - conn.timeout = timeout_obj.connect_timeout - - is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None) - if is_new_proxy_conn: - self._prepare_proxy(conn) - - # Make the request on the httplib connection object. - httplib_response = self._make_request(conn, method, url, - timeout=timeout_obj, - body=body, headers=headers, - chunked=chunked) - - # If we're going to release the connection in ``finally:``, then - # the response doesn't need to know about the connection. Otherwise - # it will also try to release it and we'll have a double-release - # mess. - response_conn = conn if not release_conn else None - - # Pass method to Response for length checking - response_kw['request_method'] = method - - # Import httplib's response into our own wrapper object - response = self.ResponseCls.from_httplib(httplib_response, - pool=self, - connection=response_conn, - retries=retries, - **response_kw) - - # Everything went great! - clean_exit = True - - except queue.Empty: - # Timed out by queue. - raise EmptyPoolError(self, "No pool connections are available.") - - except (TimeoutError, HTTPException, SocketError, ProtocolError, - BaseSSLError, SSLError, CertificateError) as e: - # Discard the connection for these exceptions. It will be - # replaced during the next _get_conn() call. - clean_exit = False - if isinstance(e, (BaseSSLError, CertificateError)): - e = SSLError(e) - elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy: - e = ProxyError('Cannot connect to proxy.', e) - elif isinstance(e, (SocketError, HTTPException)): - e = ProtocolError('Connection aborted.', e) - - retries = retries.increment(method, url, error=e, _pool=self, - _stacktrace=sys.exc_info()[2]) - retries.sleep() - - # Keep track of the error for the retry warning. - err = e - - finally: - if not clean_exit: - # We hit some kind of exception, handled or otherwise. We need - # to throw the connection away unless explicitly told not to. - # Close the connection, set the variable to None, and make sure - # we put the None back in the pool to avoid leaking it. - conn = conn and conn.close() - release_this_conn = True - - if release_this_conn: - # Put the connection back to be reused. If the connection is - # expired then it will be None, which will get replaced with a - # fresh connection during _get_conn. - self._put_conn(conn) - - if not conn: - # Try again - log.warning("Retrying (%r) after connection " - "broken by '%r': %s", retries, err, url) - return self.urlopen(method, url, body, headers, retries, - redirect, assert_same_host, - timeout=timeout, pool_timeout=pool_timeout, - release_conn=release_conn, body_pos=body_pos, - **response_kw) - - def drain_and_release_conn(response): - try: - # discard any remaining response body, the connection will be - # released back to the pool once the entire response is read - response.read() - except (TimeoutError, HTTPException, SocketError, ProtocolError, - BaseSSLError, SSLError) as e: - pass - - # Handle redirect? - redirect_location = redirect and response.get_redirect_location() - if redirect_location: - if response.status == 303: - method = 'GET' - - try: - retries = retries.increment(method, url, response=response, _pool=self) - except MaxRetryError: - if retries.raise_on_redirect: - # Drain and release the connection for this response, since - # we're not returning it to be released manually. - drain_and_release_conn(response) - raise - return response - - # drain and return the connection to the pool before recursing - drain_and_release_conn(response) - - retries.sleep_for_retry(response) - log.debug("Redirecting %s -> %s", url, redirect_location) - return self.urlopen( - method, redirect_location, body, headers, - retries=retries, redirect=redirect, - assert_same_host=assert_same_host, - timeout=timeout, pool_timeout=pool_timeout, - release_conn=release_conn, body_pos=body_pos, - **response_kw) - - # Check if we should retry the HTTP response. - has_retry_after = bool(response.getheader('Retry-After')) - if retries.is_retry(method, response.status, has_retry_after): - try: - retries = retries.increment(method, url, response=response, _pool=self) - except MaxRetryError: - if retries.raise_on_status: - # Drain and release the connection for this response, since - # we're not returning it to be released manually. - drain_and_release_conn(response) - raise - return response - - # drain and return the connection to the pool before recursing - drain_and_release_conn(response) - - retries.sleep(response) - log.debug("Retry: %s", url) - return self.urlopen( - method, url, body, headers, - retries=retries, redirect=redirect, - assert_same_host=assert_same_host, - timeout=timeout, pool_timeout=pool_timeout, - release_conn=release_conn, - body_pos=body_pos, **response_kw) - - return response - - -class HTTPSConnectionPool(HTTPConnectionPool): - """ - Same as :class:`.HTTPConnectionPool`, but HTTPS. - - When Python is compiled with the :mod:`ssl` module, then - :class:`.VerifiedHTTPSConnection` is used, which *can* verify certificates, - instead of :class:`.HTTPSConnection`. - - :class:`.VerifiedHTTPSConnection` uses one of ``assert_fingerprint``, - ``assert_hostname`` and ``host`` in this order to verify connections. - If ``assert_hostname`` is False, no verification is done. - - The ``key_file``, ``cert_file``, ``cert_reqs``, ``ca_certs``, - ``ca_cert_dir``, and ``ssl_version`` are only used if :mod:`ssl` is - available and are fed into :meth:`urllib3.util.ssl_wrap_socket` to upgrade - the connection socket into an SSL socket. - """ - - scheme = 'https' - ConnectionCls = HTTPSConnection - - def __init__(self, host, port=None, - strict=False, timeout=Timeout.DEFAULT_TIMEOUT, maxsize=1, - block=False, headers=None, retries=None, - _proxy=None, _proxy_headers=None, - key_file=None, cert_file=None, cert_reqs=None, - ca_certs=None, ssl_version=None, - assert_hostname=None, assert_fingerprint=None, - ca_cert_dir=None, **conn_kw): - - HTTPConnectionPool.__init__(self, host, port, strict, timeout, maxsize, - block, headers, retries, _proxy, _proxy_headers, - **conn_kw) - - if ca_certs and cert_reqs is None: - cert_reqs = 'CERT_REQUIRED' - - self.key_file = key_file - self.cert_file = cert_file - self.cert_reqs = cert_reqs - self.ca_certs = ca_certs - self.ca_cert_dir = ca_cert_dir - self.ssl_version = ssl_version - self.assert_hostname = assert_hostname - self.assert_fingerprint = assert_fingerprint - - def _prepare_conn(self, conn): - """ - Prepare the ``connection`` for :meth:`urllib3.util.ssl_wrap_socket` - and establish the tunnel if proxy is used. - """ - - if isinstance(conn, VerifiedHTTPSConnection): - conn.set_cert(key_file=self.key_file, - cert_file=self.cert_file, - cert_reqs=self.cert_reqs, - ca_certs=self.ca_certs, - ca_cert_dir=self.ca_cert_dir, - assert_hostname=self.assert_hostname, - assert_fingerprint=self.assert_fingerprint) - conn.ssl_version = self.ssl_version - return conn - - def _prepare_proxy(self, conn): - """ - Establish tunnel connection early, because otherwise httplib - would improperly set Host: header to proxy's IP:port. - """ - conn.set_tunnel(self._proxy_host, self.port, self.proxy_headers) - conn.connect() - - def _new_conn(self): - """ - Return a fresh :class:`httplib.HTTPSConnection`. - """ - self.num_connections += 1 - log.debug("Starting new HTTPS connection (%d): %s:%s", - self.num_connections, self.host, self.port or "443") - - if not self.ConnectionCls or self.ConnectionCls is DummyConnection: - raise SSLError("Can't connect to HTTPS URL because the SSL " - "module is not available.") - - actual_host = self.host - actual_port = self.port - if self.proxy is not None: - actual_host = self.proxy.host - actual_port = self.proxy.port - - conn = self.ConnectionCls(host=actual_host, port=actual_port, - timeout=self.timeout.connect_timeout, - strict=self.strict, **self.conn_kw) - - return self._prepare_conn(conn) - - def _validate_conn(self, conn): - """ - Called right before a request is made, after the socket is created. - """ - super(HTTPSConnectionPool, self)._validate_conn(conn) - - # Force connect early to allow us to validate the connection. - if not getattr(conn, 'sock', None): # AppEngine might not have `.sock` - conn.connect() - - if not conn.is_verified: - warnings.warn(( - 'Unverified HTTPS request is being made. ' - 'Adding certificate verification is strongly advised. See: ' - 'https://urllib3.readthedocs.io/en/latest/advanced-usage.html' - '#ssl-warnings'), - InsecureRequestWarning) - - -def connection_from_url(url, **kw): - """ - Given a url, return an :class:`.ConnectionPool` instance of its host. - - This is a shortcut for not having to parse out the scheme, host, and port - of the url before creating an :class:`.ConnectionPool` instance. - - :param url: - Absolute URL string that must include the scheme. Port is optional. - - :param \\**kw: - Passes additional parameters to the constructor of the appropriate - :class:`.ConnectionPool`. Useful for specifying things like - timeout, maxsize, headers, etc. - - Example:: - - >>> conn = connection_from_url('http://google.com/') - >>> r = conn.request('GET', '/') - """ - scheme, host, port = get_host(url) - port = port or port_by_scheme.get(scheme, 80) - if scheme == 'https': - return HTTPSConnectionPool(host, port=port, **kw) - else: - return HTTPConnectionPool(host, port=port, **kw) - - -def _ipv6_host(host, scheme): - """ - Process IPv6 address literals - """ - - # httplib doesn't like it when we include brackets in IPv6 addresses - # Specifically, if we include brackets but also pass the port then - # httplib crazily doubles up the square brackets on the Host header. - # Instead, we need to make sure we never pass ``None`` as the port. - # However, for backward compatibility reasons we can't actually - # *assert* that. See http://bugs.python.org/issue28539 - # - # Also if an IPv6 address literal has a zone identifier, the - # percent sign might be URIencoded, convert it back into ASCII - if host.startswith('[') and host.endswith(']'): - host = host.replace('%25', '%').strip('[]') - if scheme in NORMALIZABLE_SCHEMES: - host = host.lower() - return host diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py deleted file mode 100644 index f3e0094..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py +++ /dev/null @@ -1,30 +0,0 @@ -""" -This module provides means to detect the App Engine environment. -""" - -import os - - -def is_appengine(): - return (is_local_appengine() or - is_prod_appengine() or - is_prod_appengine_mvms()) - - -def is_appengine_sandbox(): - return is_appengine() and not is_prod_appengine_mvms() - - -def is_local_appengine(): - return ('APPENGINE_RUNTIME' in os.environ and - 'Development/' in os.environ['SERVER_SOFTWARE']) - - -def is_prod_appengine(): - return ('APPENGINE_RUNTIME' in os.environ and - 'Google App Engine/' in os.environ['SERVER_SOFTWARE'] and - not is_prod_appengine_mvms()) - - -def is_prod_appengine_mvms(): - return os.environ.get('GAE_VM', False) == 'true' diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py deleted file mode 100644 index bcf41c0..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +++ /dev/null @@ -1,593 +0,0 @@ -""" -This module uses ctypes to bind a whole bunch of functions and constants from -SecureTransport. The goal here is to provide the low-level API to -SecureTransport. These are essentially the C-level functions and constants, and -they're pretty gross to work with. - -This code is a bastardised version of the code found in Will Bond's oscrypto -library. An enormous debt is owed to him for blazing this trail for us. For -that reason, this code should be considered to be covered both by urllib3's -license and by oscrypto's: - - Copyright (c) 2015-2016 Will Bond <will@wbond.net> - - 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. -""" -from __future__ import absolute_import - -import platform -from ctypes.util import find_library -from ctypes import ( - c_void_p, c_int32, c_char_p, c_size_t, c_byte, c_uint32, c_ulong, c_long, - c_bool -) -from ctypes import CDLL, POINTER, CFUNCTYPE - - -security_path = find_library('Security') -if not security_path: - raise ImportError('The library Security could not be found') - - -core_foundation_path = find_library('CoreFoundation') -if not core_foundation_path: - raise ImportError('The library CoreFoundation could not be found') - - -version = platform.mac_ver()[0] -version_info = tuple(map(int, version.split('.'))) -if version_info < (10, 8): - raise OSError( - 'Only OS X 10.8 and newer are supported, not %s.%s' % ( - version_info[0], version_info[1] - ) - ) - -Security = CDLL(security_path, use_errno=True) -CoreFoundation = CDLL(core_foundation_path, use_errno=True) - -Boolean = c_bool -CFIndex = c_long -CFStringEncoding = c_uint32 -CFData = c_void_p -CFString = c_void_p -CFArray = c_void_p -CFMutableArray = c_void_p -CFDictionary = c_void_p -CFError = c_void_p -CFType = c_void_p -CFTypeID = c_ulong - -CFTypeRef = POINTER(CFType) -CFAllocatorRef = c_void_p - -OSStatus = c_int32 - -CFDataRef = POINTER(CFData) -CFStringRef = POINTER(CFString) -CFArrayRef = POINTER(CFArray) -CFMutableArrayRef = POINTER(CFMutableArray) -CFDictionaryRef = POINTER(CFDictionary) -CFArrayCallBacks = c_void_p -CFDictionaryKeyCallBacks = c_void_p -CFDictionaryValueCallBacks = c_void_p - -SecCertificateRef = POINTER(c_void_p) -SecExternalFormat = c_uint32 -SecExternalItemType = c_uint32 -SecIdentityRef = POINTER(c_void_p) -SecItemImportExportFlags = c_uint32 -SecItemImportExportKeyParameters = c_void_p -SecKeychainRef = POINTER(c_void_p) -SSLProtocol = c_uint32 -SSLCipherSuite = c_uint32 -SSLContextRef = POINTER(c_void_p) -SecTrustRef = POINTER(c_void_p) -SSLConnectionRef = c_uint32 -SecTrustResultType = c_uint32 -SecTrustOptionFlags = c_uint32 -SSLProtocolSide = c_uint32 -SSLConnectionType = c_uint32 -SSLSessionOption = c_uint32 - - -try: - Security.SecItemImport.argtypes = [ - CFDataRef, - CFStringRef, - POINTER(SecExternalFormat), - POINTER(SecExternalItemType), - SecItemImportExportFlags, - POINTER(SecItemImportExportKeyParameters), - SecKeychainRef, - POINTER(CFArrayRef), - ] - Security.SecItemImport.restype = OSStatus - - Security.SecCertificateGetTypeID.argtypes = [] - Security.SecCertificateGetTypeID.restype = CFTypeID - - Security.SecIdentityGetTypeID.argtypes = [] - Security.SecIdentityGetTypeID.restype = CFTypeID - - Security.SecKeyGetTypeID.argtypes = [] - Security.SecKeyGetTypeID.restype = CFTypeID - - Security.SecCertificateCreateWithData.argtypes = [ - CFAllocatorRef, - CFDataRef - ] - Security.SecCertificateCreateWithData.restype = SecCertificateRef - - Security.SecCertificateCopyData.argtypes = [ - SecCertificateRef - ] - Security.SecCertificateCopyData.restype = CFDataRef - - Security.SecCopyErrorMessageString.argtypes = [ - OSStatus, - c_void_p - ] - Security.SecCopyErrorMessageString.restype = CFStringRef - - Security.SecIdentityCreateWithCertificate.argtypes = [ - CFTypeRef, - SecCertificateRef, - POINTER(SecIdentityRef) - ] - Security.SecIdentityCreateWithCertificate.restype = OSStatus - - Security.SecKeychainCreate.argtypes = [ - c_char_p, - c_uint32, - c_void_p, - Boolean, - c_void_p, - POINTER(SecKeychainRef) - ] - Security.SecKeychainCreate.restype = OSStatus - - Security.SecKeychainDelete.argtypes = [ - SecKeychainRef - ] - Security.SecKeychainDelete.restype = OSStatus - - Security.SecPKCS12Import.argtypes = [ - CFDataRef, - CFDictionaryRef, - POINTER(CFArrayRef) - ] - Security.SecPKCS12Import.restype = OSStatus - - SSLReadFunc = CFUNCTYPE(OSStatus, SSLConnectionRef, c_void_p, POINTER(c_size_t)) - SSLWriteFunc = CFUNCTYPE(OSStatus, SSLConnectionRef, POINTER(c_byte), POINTER(c_size_t)) - - Security.SSLSetIOFuncs.argtypes = [ - SSLContextRef, - SSLReadFunc, - SSLWriteFunc - ] - Security.SSLSetIOFuncs.restype = OSStatus - - Security.SSLSetPeerID.argtypes = [ - SSLContextRef, - c_char_p, - c_size_t - ] - Security.SSLSetPeerID.restype = OSStatus - - Security.SSLSetCertificate.argtypes = [ - SSLContextRef, - CFArrayRef - ] - Security.SSLSetCertificate.restype = OSStatus - - Security.SSLSetCertificateAuthorities.argtypes = [ - SSLContextRef, - CFTypeRef, - Boolean - ] - Security.SSLSetCertificateAuthorities.restype = OSStatus - - Security.SSLSetConnection.argtypes = [ - SSLContextRef, - SSLConnectionRef - ] - Security.SSLSetConnection.restype = OSStatus - - Security.SSLSetPeerDomainName.argtypes = [ - SSLContextRef, - c_char_p, - c_size_t - ] - Security.SSLSetPeerDomainName.restype = OSStatus - - Security.SSLHandshake.argtypes = [ - SSLContextRef - ] - Security.SSLHandshake.restype = OSStatus - - Security.SSLRead.argtypes = [ - SSLContextRef, - c_char_p, - c_size_t, - POINTER(c_size_t) - ] - Security.SSLRead.restype = OSStatus - - Security.SSLWrite.argtypes = [ - SSLContextRef, - c_char_p, - c_size_t, - POINTER(c_size_t) - ] - Security.SSLWrite.restype = OSStatus - - Security.SSLClose.argtypes = [ - SSLContextRef - ] - Security.SSLClose.restype = OSStatus - - Security.SSLGetNumberSupportedCiphers.argtypes = [ - SSLContextRef, - POINTER(c_size_t) - ] - Security.SSLGetNumberSupportedCiphers.restype = OSStatus - - Security.SSLGetSupportedCiphers.argtypes = [ - SSLContextRef, - POINTER(SSLCipherSuite), - POINTER(c_size_t) - ] - Security.SSLGetSupportedCiphers.restype = OSStatus - - Security.SSLSetEnabledCiphers.argtypes = [ - SSLContextRef, - POINTER(SSLCipherSuite), - c_size_t - ] - Security.SSLSetEnabledCiphers.restype = OSStatus - - Security.SSLGetNumberEnabledCiphers.argtype = [ - SSLContextRef, - POINTER(c_size_t) - ] - Security.SSLGetNumberEnabledCiphers.restype = OSStatus - - Security.SSLGetEnabledCiphers.argtypes = [ - SSLContextRef, - POINTER(SSLCipherSuite), - POINTER(c_size_t) - ] - Security.SSLGetEnabledCiphers.restype = OSStatus - - Security.SSLGetNegotiatedCipher.argtypes = [ - SSLContextRef, - POINTER(SSLCipherSuite) - ] - Security.SSLGetNegotiatedCipher.restype = OSStatus - - Security.SSLGetNegotiatedProtocolVersion.argtypes = [ - SSLContextRef, - POINTER(SSLProtocol) - ] - Security.SSLGetNegotiatedProtocolVersion.restype = OSStatus - - Security.SSLCopyPeerTrust.argtypes = [ - SSLContextRef, - POINTER(SecTrustRef) - ] - Security.SSLCopyPeerTrust.restype = OSStatus - - Security.SecTrustSetAnchorCertificates.argtypes = [ - SecTrustRef, - CFArrayRef - ] - Security.SecTrustSetAnchorCertificates.restype = OSStatus - - Security.SecTrustSetAnchorCertificatesOnly.argstypes = [ - SecTrustRef, - Boolean - ] - Security.SecTrustSetAnchorCertificatesOnly.restype = OSStatus - - Security.SecTrustEvaluate.argtypes = [ - SecTrustRef, - POINTER(SecTrustResultType) - ] - Security.SecTrustEvaluate.restype = OSStatus - - Security.SecTrustGetCertificateCount.argtypes = [ - SecTrustRef - ] - Security.SecTrustGetCertificateCount.restype = CFIndex - - Security.SecTrustGetCertificateAtIndex.argtypes = [ - SecTrustRef, - CFIndex - ] - Security.SecTrustGetCertificateAtIndex.restype = SecCertificateRef - - Security.SSLCreateContext.argtypes = [ - CFAllocatorRef, - SSLProtocolSide, - SSLConnectionType - ] - Security.SSLCreateContext.restype = SSLContextRef - - Security.SSLSetSessionOption.argtypes = [ - SSLContextRef, - SSLSessionOption, - Boolean - ] - Security.SSLSetSessionOption.restype = OSStatus - - Security.SSLSetProtocolVersionMin.argtypes = [ - SSLContextRef, - SSLProtocol - ] - Security.SSLSetProtocolVersionMin.restype = OSStatus - - Security.SSLSetProtocolVersionMax.argtypes = [ - SSLContextRef, - SSLProtocol - ] - Security.SSLSetProtocolVersionMax.restype = OSStatus - - Security.SecCopyErrorMessageString.argtypes = [ - OSStatus, - c_void_p - ] - Security.SecCopyErrorMessageString.restype = CFStringRef - - Security.SSLReadFunc = SSLReadFunc - Security.SSLWriteFunc = SSLWriteFunc - Security.SSLContextRef = SSLContextRef - Security.SSLProtocol = SSLProtocol - Security.SSLCipherSuite = SSLCipherSuite - Security.SecIdentityRef = SecIdentityRef - Security.SecKeychainRef = SecKeychainRef - Security.SecTrustRef = SecTrustRef - Security.SecTrustResultType = SecTrustResultType - Security.SecExternalFormat = SecExternalFormat - Security.OSStatus = OSStatus - - Security.kSecImportExportPassphrase = CFStringRef.in_dll( - Security, 'kSecImportExportPassphrase' - ) - Security.kSecImportItemIdentity = CFStringRef.in_dll( - Security, 'kSecImportItemIdentity' - ) - - # CoreFoundation time! - CoreFoundation.CFRetain.argtypes = [ - CFTypeRef - ] - CoreFoundation.CFRetain.restype = CFTypeRef - - CoreFoundation.CFRelease.argtypes = [ - CFTypeRef - ] - CoreFoundation.CFRelease.restype = None - - CoreFoundation.CFGetTypeID.argtypes = [ - CFTypeRef - ] - CoreFoundation.CFGetTypeID.restype = CFTypeID - - CoreFoundation.CFStringCreateWithCString.argtypes = [ - CFAllocatorRef, - c_char_p, - CFStringEncoding - ] - CoreFoundation.CFStringCreateWithCString.restype = CFStringRef - - CoreFoundation.CFStringGetCStringPtr.argtypes = [ - CFStringRef, - CFStringEncoding - ] - CoreFoundation.CFStringGetCStringPtr.restype = c_char_p - - CoreFoundation.CFStringGetCString.argtypes = [ - CFStringRef, - c_char_p, - CFIndex, - CFStringEncoding - ] - CoreFoundation.CFStringGetCString.restype = c_bool - - CoreFoundation.CFDataCreate.argtypes = [ - CFAllocatorRef, - c_char_p, - CFIndex - ] - CoreFoundation.CFDataCreate.restype = CFDataRef - - CoreFoundation.CFDataGetLength.argtypes = [ - CFDataRef - ] - CoreFoundation.CFDataGetLength.restype = CFIndex - - CoreFoundation.CFDataGetBytePtr.argtypes = [ - CFDataRef - ] - CoreFoundation.CFDataGetBytePtr.restype = c_void_p - - CoreFoundation.CFDictionaryCreate.argtypes = [ - CFAllocatorRef, - POINTER(CFTypeRef), - POINTER(CFTypeRef), - CFIndex, - CFDictionaryKeyCallBacks, - CFDictionaryValueCallBacks - ] - CoreFoundation.CFDictionaryCreate.restype = CFDictionaryRef - - CoreFoundation.CFDictionaryGetValue.argtypes = [ - CFDictionaryRef, - CFTypeRef - ] - CoreFoundation.CFDictionaryGetValue.restype = CFTypeRef - - CoreFoundation.CFArrayCreate.argtypes = [ - CFAllocatorRef, - POINTER(CFTypeRef), - CFIndex, - CFArrayCallBacks, - ] - CoreFoundation.CFArrayCreate.restype = CFArrayRef - - CoreFoundation.CFArrayCreateMutable.argtypes = [ - CFAllocatorRef, - CFIndex, - CFArrayCallBacks - ] - CoreFoundation.CFArrayCreateMutable.restype = CFMutableArrayRef - - CoreFoundation.CFArrayAppendValue.argtypes = [ - CFMutableArrayRef, - c_void_p - ] - CoreFoundation.CFArrayAppendValue.restype = None - - CoreFoundation.CFArrayGetCount.argtypes = [ - CFArrayRef - ] - CoreFoundation.CFArrayGetCount.restype = CFIndex - - CoreFoundation.CFArrayGetValueAtIndex.argtypes = [ - CFArrayRef, - CFIndex - ] - CoreFoundation.CFArrayGetValueAtIndex.restype = c_void_p - - CoreFoundation.kCFAllocatorDefault = CFAllocatorRef.in_dll( - CoreFoundation, 'kCFAllocatorDefault' - ) - CoreFoundation.kCFTypeArrayCallBacks = c_void_p.in_dll(CoreFoundation, 'kCFTypeArrayCallBacks') - CoreFoundation.kCFTypeDictionaryKeyCallBacks = c_void_p.in_dll( - CoreFoundation, 'kCFTypeDictionaryKeyCallBacks' - ) - CoreFoundation.kCFTypeDictionaryValueCallBacks = c_void_p.in_dll( - CoreFoundation, 'kCFTypeDictionaryValueCallBacks' - ) - - CoreFoundation.CFTypeRef = CFTypeRef - CoreFoundation.CFArrayRef = CFArrayRef - CoreFoundation.CFStringRef = CFStringRef - CoreFoundation.CFDictionaryRef = CFDictionaryRef - -except (AttributeError): - raise ImportError('Error initializing ctypes') - - -class CFConst(object): - """ - A class object that acts as essentially a namespace for CoreFoundation - constants. - """ - kCFStringEncodingUTF8 = CFStringEncoding(0x08000100) - - -class SecurityConst(object): - """ - A class object that acts as essentially a namespace for Security constants. - """ - kSSLSessionOptionBreakOnServerAuth = 0 - - kSSLProtocol2 = 1 - kSSLProtocol3 = 2 - kTLSProtocol1 = 4 - kTLSProtocol11 = 7 - kTLSProtocol12 = 8 - - kSSLClientSide = 1 - kSSLStreamType = 0 - - kSecFormatPEMSequence = 10 - - kSecTrustResultInvalid = 0 - kSecTrustResultProceed = 1 - # This gap is present on purpose: this was kSecTrustResultConfirm, which - # is deprecated. - kSecTrustResultDeny = 3 - kSecTrustResultUnspecified = 4 - kSecTrustResultRecoverableTrustFailure = 5 - kSecTrustResultFatalTrustFailure = 6 - kSecTrustResultOtherError = 7 - - errSSLProtocol = -9800 - errSSLWouldBlock = -9803 - errSSLClosedGraceful = -9805 - errSSLClosedNoNotify = -9816 - errSSLClosedAbort = -9806 - - errSSLXCertChainInvalid = -9807 - errSSLCrypto = -9809 - errSSLInternal = -9810 - errSSLCertExpired = -9814 - errSSLCertNotYetValid = -9815 - errSSLUnknownRootCert = -9812 - errSSLNoRootCert = -9813 - errSSLHostNameMismatch = -9843 - errSSLPeerHandshakeFail = -9824 - errSSLPeerUserCancelled = -9839 - errSSLWeakPeerEphemeralDHKey = -9850 - errSSLServerAuthCompleted = -9841 - errSSLRecordOverflow = -9847 - - errSecVerifyFailed = -67808 - errSecNoTrustSettings = -25263 - errSecItemNotFound = -25300 - errSecInvalidTrustSettings = -25262 - - # Cipher suites. We only pick the ones our default cipher string allows. - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02C - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 0xC030 - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02B - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 0xC02F - TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = 0x00A3 - TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 0x009F - TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = 0x00A2 - TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 0x009E - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 0xC024 - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 0xC028 - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 0xC00A - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 0xC014 - TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x006B - TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 0x006A - TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x0039 - TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 0x0038 - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 0xC023 - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 0xC027 - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 0xC009 - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 0xC013 - TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x0067 - TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 0x0040 - TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x0033 - TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 0x0032 - TLS_RSA_WITH_AES_256_GCM_SHA384 = 0x009D - TLS_RSA_WITH_AES_128_GCM_SHA256 = 0x009C - TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x003D - TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x003C - TLS_RSA_WITH_AES_256_CBC_SHA = 0x0035 - TLS_RSA_WITH_AES_128_CBC_SHA = 0x002F - TLS_AES_128_GCM_SHA256 = 0x1301 - TLS_AES_256_GCM_SHA384 = 0x1302 - TLS_CHACHA20_POLY1305_SHA256 = 0x1303 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py deleted file mode 100644 index b13cd9e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +++ /dev/null @@ -1,346 +0,0 @@ -""" -Low-level helpers for the SecureTransport bindings. - -These are Python functions that are not directly related to the high-level APIs -but are necessary to get them to work. They include a whole bunch of low-level -CoreFoundation messing about and memory management. The concerns in this module -are almost entirely about trying to avoid memory leaks and providing -appropriate and useful assistance to the higher-level code. -""" -import base64 -import ctypes -import itertools -import re -import os -import ssl -import tempfile - -from .bindings import Security, CoreFoundation, CFConst - - -# This regular expression is used to grab PEM data out of a PEM bundle. -_PEM_CERTS_RE = re.compile( - b"-----BEGIN CERTIFICATE-----\n(.*?)\n-----END CERTIFICATE-----", re.DOTALL -) - - -def _cf_data_from_bytes(bytestring): - """ - Given a bytestring, create a CFData object from it. This CFData object must - be CFReleased by the caller. - """ - return CoreFoundation.CFDataCreate( - CoreFoundation.kCFAllocatorDefault, bytestring, len(bytestring) - ) - - -def _cf_dictionary_from_tuples(tuples): - """ - Given a list of Python tuples, create an associated CFDictionary. - """ - dictionary_size = len(tuples) - - # We need to get the dictionary keys and values out in the same order. - keys = (t[0] for t in tuples) - values = (t[1] for t in tuples) - cf_keys = (CoreFoundation.CFTypeRef * dictionary_size)(*keys) - cf_values = (CoreFoundation.CFTypeRef * dictionary_size)(*values) - - return CoreFoundation.CFDictionaryCreate( - CoreFoundation.kCFAllocatorDefault, - cf_keys, - cf_values, - dictionary_size, - CoreFoundation.kCFTypeDictionaryKeyCallBacks, - CoreFoundation.kCFTypeDictionaryValueCallBacks, - ) - - -def _cf_string_to_unicode(value): - """ - Creates a Unicode string from a CFString object. Used entirely for error - reporting. - - Yes, it annoys me quite a lot that this function is this complex. - """ - value_as_void_p = ctypes.cast(value, ctypes.POINTER(ctypes.c_void_p)) - - string = CoreFoundation.CFStringGetCStringPtr( - value_as_void_p, - CFConst.kCFStringEncodingUTF8 - ) - if string is None: - buffer = ctypes.create_string_buffer(1024) - result = CoreFoundation.CFStringGetCString( - value_as_void_p, - buffer, - 1024, - CFConst.kCFStringEncodingUTF8 - ) - if not result: - raise OSError('Error copying C string from CFStringRef') - string = buffer.value - if string is not None: - string = string.decode('utf-8') - return string - - -def _assert_no_error(error, exception_class=None): - """ - Checks the return code and throws an exception if there is an error to - report - """ - if error == 0: - return - - cf_error_string = Security.SecCopyErrorMessageString(error, None) - output = _cf_string_to_unicode(cf_error_string) - CoreFoundation.CFRelease(cf_error_string) - - if output is None or output == u'': - output = u'OSStatus %s' % error - - if exception_class is None: - exception_class = ssl.SSLError - - raise exception_class(output) - - -def _cert_array_from_pem(pem_bundle): - """ - Given a bundle of certs in PEM format, turns them into a CFArray of certs - that can be used to validate a cert chain. - """ - # Normalize the PEM bundle's line endings. - pem_bundle = pem_bundle.replace(b"\r\n", b"\n") - - der_certs = [ - base64.b64decode(match.group(1)) - for match in _PEM_CERTS_RE.finditer(pem_bundle) - ] - if not der_certs: - raise ssl.SSLError("No root certificates specified") - - cert_array = CoreFoundation.CFArrayCreateMutable( - CoreFoundation.kCFAllocatorDefault, - 0, - ctypes.byref(CoreFoundation.kCFTypeArrayCallBacks) - ) - if not cert_array: - raise ssl.SSLError("Unable to allocate memory!") - - try: - for der_bytes in der_certs: - certdata = _cf_data_from_bytes(der_bytes) - if not certdata: - raise ssl.SSLError("Unable to allocate memory!") - cert = Security.SecCertificateCreateWithData( - CoreFoundation.kCFAllocatorDefault, certdata - ) - CoreFoundation.CFRelease(certdata) - if not cert: - raise ssl.SSLError("Unable to build cert object!") - - CoreFoundation.CFArrayAppendValue(cert_array, cert) - CoreFoundation.CFRelease(cert) - except Exception: - # We need to free the array before the exception bubbles further. - # We only want to do that if an error occurs: otherwise, the caller - # should free. - CoreFoundation.CFRelease(cert_array) - - return cert_array - - -def _is_cert(item): - """ - Returns True if a given CFTypeRef is a certificate. - """ - expected = Security.SecCertificateGetTypeID() - return CoreFoundation.CFGetTypeID(item) == expected - - -def _is_identity(item): - """ - Returns True if a given CFTypeRef is an identity. - """ - expected = Security.SecIdentityGetTypeID() - return CoreFoundation.CFGetTypeID(item) == expected - - -def _temporary_keychain(): - """ - This function creates a temporary Mac keychain that we can use to work with - credentials. This keychain uses a one-time password and a temporary file to - store the data. We expect to have one keychain per socket. The returned - SecKeychainRef must be freed by the caller, including calling - SecKeychainDelete. - - Returns a tuple of the SecKeychainRef and the path to the temporary - directory that contains it. - """ - # Unfortunately, SecKeychainCreate requires a path to a keychain. This - # means we cannot use mkstemp to use a generic temporary file. Instead, - # we're going to create a temporary directory and a filename to use there. - # This filename will be 8 random bytes expanded into base64. We also need - # some random bytes to password-protect the keychain we're creating, so we - # ask for 40 random bytes. - random_bytes = os.urandom(40) - filename = base64.b16encode(random_bytes[:8]).decode('utf-8') - password = base64.b16encode(random_bytes[8:]) # Must be valid UTF-8 - tempdirectory = tempfile.mkdtemp() - - keychain_path = os.path.join(tempdirectory, filename).encode('utf-8') - - # We now want to create the keychain itself. - keychain = Security.SecKeychainRef() - status = Security.SecKeychainCreate( - keychain_path, - len(password), - password, - False, - None, - ctypes.byref(keychain) - ) - _assert_no_error(status) - - # Having created the keychain, we want to pass it off to the caller. - return keychain, tempdirectory - - -def _load_items_from_file(keychain, path): - """ - Given a single file, loads all the trust objects from it into arrays and - the keychain. - Returns a tuple of lists: the first list is a list of identities, the - second a list of certs. - """ - certificates = [] - identities = [] - result_array = None - - with open(path, 'rb') as f: - raw_filedata = f.read() - - try: - filedata = CoreFoundation.CFDataCreate( - CoreFoundation.kCFAllocatorDefault, - raw_filedata, - len(raw_filedata) - ) - result_array = CoreFoundation.CFArrayRef() - result = Security.SecItemImport( - filedata, # cert data - None, # Filename, leaving it out for now - None, # What the type of the file is, we don't care - None, # what's in the file, we don't care - 0, # import flags - None, # key params, can include passphrase in the future - keychain, # The keychain to insert into - ctypes.byref(result_array) # Results - ) - _assert_no_error(result) - - # A CFArray is not very useful to us as an intermediary - # representation, so we are going to extract the objects we want - # and then free the array. We don't need to keep hold of keys: the - # keychain already has them! - result_count = CoreFoundation.CFArrayGetCount(result_array) - for index in range(result_count): - item = CoreFoundation.CFArrayGetValueAtIndex( - result_array, index - ) - item = ctypes.cast(item, CoreFoundation.CFTypeRef) - - if _is_cert(item): - CoreFoundation.CFRetain(item) - certificates.append(item) - elif _is_identity(item): - CoreFoundation.CFRetain(item) - identities.append(item) - finally: - if result_array: - CoreFoundation.CFRelease(result_array) - - CoreFoundation.CFRelease(filedata) - - return (identities, certificates) - - -def _load_client_cert_chain(keychain, *paths): - """ - Load certificates and maybe keys from a number of files. Has the end goal - of returning a CFArray containing one SecIdentityRef, and then zero or more - SecCertificateRef objects, suitable for use as a client certificate trust - chain. - """ - # Ok, the strategy. - # - # This relies on knowing that macOS will not give you a SecIdentityRef - # unless you have imported a key into a keychain. This is a somewhat - # artificial limitation of macOS (for example, it doesn't necessarily - # affect iOS), but there is nothing inside Security.framework that lets you - # get a SecIdentityRef without having a key in a keychain. - # - # So the policy here is we take all the files and iterate them in order. - # Each one will use SecItemImport to have one or more objects loaded from - # it. We will also point at a keychain that macOS can use to work with the - # private key. - # - # Once we have all the objects, we'll check what we actually have. If we - # already have a SecIdentityRef in hand, fab: we'll use that. Otherwise, - # we'll take the first certificate (which we assume to be our leaf) and - # ask the keychain to give us a SecIdentityRef with that cert's associated - # key. - # - # We'll then return a CFArray containing the trust chain: one - # SecIdentityRef and then zero-or-more SecCertificateRef objects. The - # responsibility for freeing this CFArray will be with the caller. This - # CFArray must remain alive for the entire connection, so in practice it - # will be stored with a single SSLSocket, along with the reference to the - # keychain. - certificates = [] - identities = [] - - # Filter out bad paths. - paths = (path for path in paths if path) - - try: - for file_path in paths: - new_identities, new_certs = _load_items_from_file( - keychain, file_path - ) - identities.extend(new_identities) - certificates.extend(new_certs) - - # Ok, we have everything. The question is: do we have an identity? If - # not, we want to grab one from the first cert we have. - if not identities: - new_identity = Security.SecIdentityRef() - status = Security.SecIdentityCreateWithCertificate( - keychain, - certificates[0], - ctypes.byref(new_identity) - ) - _assert_no_error(status) - identities.append(new_identity) - - # We now want to release the original certificate, as we no longer - # need it. - CoreFoundation.CFRelease(certificates.pop(0)) - - # We now need to build a new CFArray that holds the trust chain. - trust_chain = CoreFoundation.CFArrayCreateMutable( - CoreFoundation.kCFAllocatorDefault, - 0, - ctypes.byref(CoreFoundation.kCFTypeArrayCallBacks), - ) - for item in itertools.chain(identities, certificates): - # ArrayAppendValue does a CFRetain on the item. That's fine, - # because the finally block will release our other refs to them. - CoreFoundation.CFArrayAppendValue(trust_chain, item) - - return trust_chain - finally: - for obj in itertools.chain(identities, certificates): - CoreFoundation.CFRelease(obj) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/appengine.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/appengine.py deleted file mode 100644 index 9b42952..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/appengine.py +++ /dev/null @@ -1,289 +0,0 @@ -""" -This module provides a pool manager that uses Google App Engine's -`URLFetch Service <https://cloud.google.com/appengine/docs/python/urlfetch>`_. - -Example usage:: - - from pip._vendor.urllib3 import PoolManager - from pip._vendor.urllib3.contrib.appengine import AppEngineManager, is_appengine_sandbox - - if is_appengine_sandbox(): - # AppEngineManager uses AppEngine's URLFetch API behind the scenes - http = AppEngineManager() - else: - # PoolManager uses a socket-level API behind the scenes - http = PoolManager() - - r = http.request('GET', 'https://google.com/') - -There are `limitations <https://cloud.google.com/appengine/docs/python/\ -urlfetch/#Python_Quotas_and_limits>`_ to the URLFetch service and it may not be -the best choice for your application. There are three options for using -urllib3 on Google App Engine: - -1. You can use :class:`AppEngineManager` with URLFetch. URLFetch is - cost-effective in many circumstances as long as your usage is within the - limitations. -2. You can use a normal :class:`~urllib3.PoolManager` by enabling sockets. - Sockets also have `limitations and restrictions - <https://cloud.google.com/appengine/docs/python/sockets/\ - #limitations-and-restrictions>`_ and have a lower free quota than URLFetch. - To use sockets, be sure to specify the following in your ``app.yaml``:: - - env_variables: - GAE_USE_SOCKETS_HTTPLIB : 'true' - -3. If you are using `App Engine Flexible -<https://cloud.google.com/appengine/docs/flexible/>`_, you can use the standard -:class:`PoolManager` without any configuration or special environment variables. -""" - -from __future__ import absolute_import -import io -import logging -import warnings -from ..packages.six.moves.urllib.parse import urljoin - -from ..exceptions import ( - HTTPError, - HTTPWarning, - MaxRetryError, - ProtocolError, - TimeoutError, - SSLError -) - -from ..request import RequestMethods -from ..response import HTTPResponse -from ..util.timeout import Timeout -from ..util.retry import Retry -from . import _appengine_environ - -try: - from google.appengine.api import urlfetch -except ImportError: - urlfetch = None - - -log = logging.getLogger(__name__) - - -class AppEnginePlatformWarning(HTTPWarning): - pass - - -class AppEnginePlatformError(HTTPError): - pass - - -class AppEngineManager(RequestMethods): - """ - Connection manager for Google App Engine sandbox applications. - - This manager uses the URLFetch service directly instead of using the - emulated httplib, and is subject to URLFetch limitations as described in - the App Engine documentation `here - <https://cloud.google.com/appengine/docs/python/urlfetch>`_. - - Notably it will raise an :class:`AppEnginePlatformError` if: - * URLFetch is not available. - * If you attempt to use this on App Engine Flexible, as full socket - support is available. - * If a request size is more than 10 megabytes. - * If a response size is more than 32 megabtyes. - * If you use an unsupported request method such as OPTIONS. - - Beyond those cases, it will raise normal urllib3 errors. - """ - - def __init__(self, headers=None, retries=None, validate_certificate=True, - urlfetch_retries=True): - if not urlfetch: - raise AppEnginePlatformError( - "URLFetch is not available in this environment.") - - if is_prod_appengine_mvms(): - raise AppEnginePlatformError( - "Use normal urllib3.PoolManager instead of AppEngineManager" - "on Managed VMs, as using URLFetch is not necessary in " - "this environment.") - - warnings.warn( - "urllib3 is using URLFetch on Google App Engine sandbox instead " - "of sockets. To use sockets directly instead of URLFetch see " - "https://urllib3.readthedocs.io/en/latest/reference/urllib3.contrib.html.", - AppEnginePlatformWarning) - - RequestMethods.__init__(self, headers) - self.validate_certificate = validate_certificate - self.urlfetch_retries = urlfetch_retries - - self.retries = retries or Retry.DEFAULT - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - # Return False to re-raise any potential exceptions - return False - - def urlopen(self, method, url, body=None, headers=None, - retries=None, redirect=True, timeout=Timeout.DEFAULT_TIMEOUT, - **response_kw): - - retries = self._get_retries(retries, redirect) - - try: - follow_redirects = ( - redirect and - retries.redirect != 0 and - retries.total) - response = urlfetch.fetch( - url, - payload=body, - method=method, - headers=headers or {}, - allow_truncated=False, - follow_redirects=self.urlfetch_retries and follow_redirects, - deadline=self._get_absolute_timeout(timeout), - validate_certificate=self.validate_certificate, - ) - except urlfetch.DeadlineExceededError as e: - raise TimeoutError(self, e) - - except urlfetch.InvalidURLError as e: - if 'too large' in str(e): - raise AppEnginePlatformError( - "URLFetch request too large, URLFetch only " - "supports requests up to 10mb in size.", e) - raise ProtocolError(e) - - except urlfetch.DownloadError as e: - if 'Too many redirects' in str(e): - raise MaxRetryError(self, url, reason=e) - raise ProtocolError(e) - - except urlfetch.ResponseTooLargeError as e: - raise AppEnginePlatformError( - "URLFetch response too large, URLFetch only supports" - "responses up to 32mb in size.", e) - - except urlfetch.SSLCertificateError as e: - raise SSLError(e) - - except urlfetch.InvalidMethodError as e: - raise AppEnginePlatformError( - "URLFetch does not support method: %s" % method, e) - - http_response = self._urlfetch_response_to_http_response( - response, retries=retries, **response_kw) - - # Handle redirect? - redirect_location = redirect and http_response.get_redirect_location() - if redirect_location: - # Check for redirect response - if (self.urlfetch_retries and retries.raise_on_redirect): - raise MaxRetryError(self, url, "too many redirects") - else: - if http_response.status == 303: - method = 'GET' - - try: - retries = retries.increment(method, url, response=http_response, _pool=self) - except MaxRetryError: - if retries.raise_on_redirect: - raise MaxRetryError(self, url, "too many redirects") - return http_response - - retries.sleep_for_retry(http_response) - log.debug("Redirecting %s -> %s", url, redirect_location) - redirect_url = urljoin(url, redirect_location) - return self.urlopen( - method, redirect_url, body, headers, - retries=retries, redirect=redirect, - timeout=timeout, **response_kw) - - # Check if we should retry the HTTP response. - has_retry_after = bool(http_response.getheader('Retry-After')) - if retries.is_retry(method, http_response.status, has_retry_after): - retries = retries.increment( - method, url, response=http_response, _pool=self) - log.debug("Retry: %s", url) - retries.sleep(http_response) - return self.urlopen( - method, url, - body=body, headers=headers, - retries=retries, redirect=redirect, - timeout=timeout, **response_kw) - - return http_response - - def _urlfetch_response_to_http_response(self, urlfetch_resp, **response_kw): - - if is_prod_appengine(): - # Production GAE handles deflate encoding automatically, but does - # not remove the encoding header. - content_encoding = urlfetch_resp.headers.get('content-encoding') - - if content_encoding == 'deflate': - del urlfetch_resp.headers['content-encoding'] - - transfer_encoding = urlfetch_resp.headers.get('transfer-encoding') - # We have a full response's content, - # so let's make sure we don't report ourselves as chunked data. - if transfer_encoding == 'chunked': - encodings = transfer_encoding.split(",") - encodings.remove('chunked') - urlfetch_resp.headers['transfer-encoding'] = ','.join(encodings) - - original_response = HTTPResponse( - # In order for decoding to work, we must present the content as - # a file-like object. - body=io.BytesIO(urlfetch_resp.content), - msg=urlfetch_resp.header_msg, - headers=urlfetch_resp.headers, - status=urlfetch_resp.status_code, - **response_kw - ) - - return HTTPResponse( - body=io.BytesIO(urlfetch_resp.content), - headers=urlfetch_resp.headers, - status=urlfetch_resp.status_code, - original_response=original_response, - **response_kw - ) - - def _get_absolute_timeout(self, timeout): - if timeout is Timeout.DEFAULT_TIMEOUT: - return None # Defer to URLFetch's default. - if isinstance(timeout, Timeout): - if timeout._read is not None or timeout._connect is not None: - warnings.warn( - "URLFetch does not support granular timeout settings, " - "reverting to total or default URLFetch timeout.", - AppEnginePlatformWarning) - return timeout.total - return timeout - - def _get_retries(self, retries, redirect): - if not isinstance(retries, Retry): - retries = Retry.from_int( - retries, redirect=redirect, default=self.retries) - - if retries.connect or retries.read or retries.redirect: - warnings.warn( - "URLFetch only supports total retries and does not " - "recognize connect, read, or redirect retry parameters.", - AppEnginePlatformWarning) - - return retries - - -# Alias methods from _appengine_environ to maintain public API interface. - -is_appengine = _appengine_environ.is_appengine -is_appengine_sandbox = _appengine_environ.is_appengine_sandbox -is_local_appengine = _appengine_environ.is_local_appengine -is_prod_appengine = _appengine_environ.is_prod_appengine -is_prod_appengine_mvms = _appengine_environ.is_prod_appengine_mvms diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/ntlmpool.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/ntlmpool.py deleted file mode 100644 index 8ea127c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/ntlmpool.py +++ /dev/null @@ -1,111 +0,0 @@ -""" -NTLM authenticating pool, contributed by erikcederstran - -Issue #10, see: http://code.google.com/p/urllib3/issues/detail?id=10 -""" -from __future__ import absolute_import - -from logging import getLogger -from ntlm import ntlm - -from .. import HTTPSConnectionPool -from ..packages.six.moves.http_client import HTTPSConnection - - -log = getLogger(__name__) - - -class NTLMConnectionPool(HTTPSConnectionPool): - """ - Implements an NTLM authentication version of an urllib3 connection pool - """ - - scheme = 'https' - - def __init__(self, user, pw, authurl, *args, **kwargs): - """ - authurl is a random URL on the server that is protected by NTLM. - user is the Windows user, probably in the DOMAIN\\username format. - pw is the password for the user. - """ - super(NTLMConnectionPool, self).__init__(*args, **kwargs) - self.authurl = authurl - self.rawuser = user - user_parts = user.split('\\', 1) - self.domain = user_parts[0].upper() - self.user = user_parts[1] - self.pw = pw - - def _new_conn(self): - # Performs the NTLM handshake that secures the connection. The socket - # must be kept open while requests are performed. - self.num_connections += 1 - log.debug('Starting NTLM HTTPS connection no. %d: https://%s%s', - self.num_connections, self.host, self.authurl) - - headers = {'Connection': 'Keep-Alive'} - req_header = 'Authorization' - resp_header = 'www-authenticate' - - conn = HTTPSConnection(host=self.host, port=self.port) - - # Send negotiation message - headers[req_header] = ( - 'NTLM %s' % ntlm.create_NTLM_NEGOTIATE_MESSAGE(self.rawuser)) - log.debug('Request headers: %s', headers) - conn.request('GET', self.authurl, None, headers) - res = conn.getresponse() - reshdr = dict(res.getheaders()) - log.debug('Response status: %s %s', res.status, res.reason) - log.debug('Response headers: %s', reshdr) - log.debug('Response data: %s [...]', res.read(100)) - - # Remove the reference to the socket, so that it can not be closed by - # the response object (we want to keep the socket open) - res.fp = None - - # Server should respond with a challenge message - auth_header_values = reshdr[resp_header].split(', ') - auth_header_value = None - for s in auth_header_values: - if s[:5] == 'NTLM ': - auth_header_value = s[5:] - if auth_header_value is None: - raise Exception('Unexpected %s response header: %s' % - (resp_header, reshdr[resp_header])) - - # Send authentication message - ServerChallenge, NegotiateFlags = \ - ntlm.parse_NTLM_CHALLENGE_MESSAGE(auth_header_value) - auth_msg = ntlm.create_NTLM_AUTHENTICATE_MESSAGE(ServerChallenge, - self.user, - self.domain, - self.pw, - NegotiateFlags) - headers[req_header] = 'NTLM %s' % auth_msg - log.debug('Request headers: %s', headers) - conn.request('GET', self.authurl, None, headers) - res = conn.getresponse() - log.debug('Response status: %s %s', res.status, res.reason) - log.debug('Response headers: %s', dict(res.getheaders())) - log.debug('Response data: %s [...]', res.read()[:100]) - if res.status != 200: - if res.status == 401: - raise Exception('Server rejected request: wrong ' - 'username or password') - raise Exception('Wrong server response: %s %s' % - (res.status, res.reason)) - - res.fp = None - log.debug('Connection established') - return conn - - def urlopen(self, method, url, body=None, headers=None, retries=3, - redirect=True, assert_same_host=True): - if headers is None: - headers = {} - headers['Connection'] = 'Keep-Alive' - return super(NTLMConnectionPool, self).urlopen(method, url, body, - headers, retries, - redirect, - assert_same_host) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/pyopenssl.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/pyopenssl.py deleted file mode 100644 index 363667c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/pyopenssl.py +++ /dev/null @@ -1,466 +0,0 @@ -""" -SSL with SNI_-support for Python 2. Follow these instructions if you would -like to verify SSL certificates in Python 2. Note, the default libraries do -*not* do certificate checking; you need to do additional work to validate -certificates yourself. - -This needs the following packages installed: - -* pyOpenSSL (tested with 16.0.0) -* cryptography (minimum 1.3.4, from pyopenssl) -* idna (minimum 2.0, from cryptography) - -However, pyopenssl depends on cryptography, which depends on idna, so while we -use all three directly here we end up having relatively few packages required. - -You can install them with the following command: - - pip install pyopenssl cryptography idna - -To activate certificate checking, call -:func:`~urllib3.contrib.pyopenssl.inject_into_urllib3` from your Python code -before you begin making HTTP requests. This can be done in a ``sitecustomize`` -module, or at any other time before your application begins using ``urllib3``, -like this:: - - try: - import urllib3.contrib.pyopenssl - urllib3.contrib.pyopenssl.inject_into_urllib3() - except ImportError: - pass - -Now you can use :mod:`urllib3` as you normally would, and it will support SNI -when the required modules are installed. - -Activating this module also has the positive side effect of disabling SSL/TLS -compression in Python 2 (see `CRIME attack`_). - -If you want to configure the default list of supported cipher suites, you can -set the ``urllib3.contrib.pyopenssl.DEFAULT_SSL_CIPHER_LIST`` variable. - -.. _sni: https://en.wikipedia.org/wiki/Server_Name_Indication -.. _crime attack: https://en.wikipedia.org/wiki/CRIME_(security_exploit) -""" -from __future__ import absolute_import - -import OpenSSL.SSL -from cryptography import x509 -from cryptography.hazmat.backends.openssl import backend as openssl_backend -from cryptography.hazmat.backends.openssl.x509 import _Certificate -try: - from cryptography.x509 import UnsupportedExtension -except ImportError: - # UnsupportedExtension is gone in cryptography >= 2.1.0 - class UnsupportedExtension(Exception): - pass - -from socket import timeout, error as SocketError -from io import BytesIO - -try: # Platform-specific: Python 2 - from socket import _fileobject -except ImportError: # Platform-specific: Python 3 - _fileobject = None - from ..packages.backports.makefile import backport_makefile - -import logging -import ssl -from ..packages import six -import sys - -from .. import util - -__all__ = ['inject_into_urllib3', 'extract_from_urllib3'] - -# SNI always works. -HAS_SNI = True - -# Map from urllib3 to PyOpenSSL compatible parameter-values. -_openssl_versions = { - ssl.PROTOCOL_SSLv23: OpenSSL.SSL.SSLv23_METHOD, - ssl.PROTOCOL_TLSv1: OpenSSL.SSL.TLSv1_METHOD, -} - -if hasattr(ssl, 'PROTOCOL_TLSv1_1') and hasattr(OpenSSL.SSL, 'TLSv1_1_METHOD'): - _openssl_versions[ssl.PROTOCOL_TLSv1_1] = OpenSSL.SSL.TLSv1_1_METHOD - -if hasattr(ssl, 'PROTOCOL_TLSv1_2') and hasattr(OpenSSL.SSL, 'TLSv1_2_METHOD'): - _openssl_versions[ssl.PROTOCOL_TLSv1_2] = OpenSSL.SSL.TLSv1_2_METHOD - -try: - _openssl_versions.update({ssl.PROTOCOL_SSLv3: OpenSSL.SSL.SSLv3_METHOD}) -except AttributeError: - pass - -_stdlib_to_openssl_verify = { - ssl.CERT_NONE: OpenSSL.SSL.VERIFY_NONE, - ssl.CERT_OPTIONAL: OpenSSL.SSL.VERIFY_PEER, - ssl.CERT_REQUIRED: - OpenSSL.SSL.VERIFY_PEER + OpenSSL.SSL.VERIFY_FAIL_IF_NO_PEER_CERT, -} -_openssl_to_stdlib_verify = dict( - (v, k) for k, v in _stdlib_to_openssl_verify.items() -) - -# OpenSSL will only write 16K at a time -SSL_WRITE_BLOCKSIZE = 16384 - -orig_util_HAS_SNI = util.HAS_SNI -orig_util_SSLContext = util.ssl_.SSLContext - - -log = logging.getLogger(__name__) - - -def inject_into_urllib3(): - 'Monkey-patch urllib3 with PyOpenSSL-backed SSL-support.' - - _validate_dependencies_met() - - util.ssl_.SSLContext = PyOpenSSLContext - util.HAS_SNI = HAS_SNI - util.ssl_.HAS_SNI = HAS_SNI - util.IS_PYOPENSSL = True - util.ssl_.IS_PYOPENSSL = True - - -def extract_from_urllib3(): - 'Undo monkey-patching by :func:`inject_into_urllib3`.' - - util.ssl_.SSLContext = orig_util_SSLContext - util.HAS_SNI = orig_util_HAS_SNI - util.ssl_.HAS_SNI = orig_util_HAS_SNI - util.IS_PYOPENSSL = False - util.ssl_.IS_PYOPENSSL = False - - -def _validate_dependencies_met(): - """ - Verifies that PyOpenSSL's package-level dependencies have been met. - Throws `ImportError` if they are not met. - """ - # Method added in `cryptography==1.1`; not available in older versions - from cryptography.x509.extensions import Extensions - if getattr(Extensions, "get_extension_for_class", None) is None: - raise ImportError("'cryptography' module missing required functionality. " - "Try upgrading to v1.3.4 or newer.") - - # pyOpenSSL 0.14 and above use cryptography for OpenSSL bindings. The _x509 - # attribute is only present on those versions. - from OpenSSL.crypto import X509 - x509 = X509() - if getattr(x509, "_x509", None) is None: - raise ImportError("'pyOpenSSL' module missing required functionality. " - "Try upgrading to v0.14 or newer.") - - -def _dnsname_to_stdlib(name): - """ - Converts a dNSName SubjectAlternativeName field to the form used by the - standard library on the given Python version. - - Cryptography produces a dNSName as a unicode string that was idna-decoded - from ASCII bytes. We need to idna-encode that string to get it back, and - then on Python 3 we also need to convert to unicode via UTF-8 (the stdlib - uses PyUnicode_FromStringAndSize on it, which decodes via UTF-8). - - If the name cannot be idna-encoded then we return None signalling that - the name given should be skipped. - """ - def idna_encode(name): - """ - Borrowed wholesale from the Python Cryptography Project. It turns out - that we can't just safely call `idna.encode`: it can explode for - wildcard names. This avoids that problem. - """ - from pip._vendor import idna - - try: - for prefix in [u'*.', u'.']: - if name.startswith(prefix): - name = name[len(prefix):] - return prefix.encode('ascii') + idna.encode(name) - return idna.encode(name) - except idna.core.IDNAError: - return None - - name = idna_encode(name) - if name is None: - return None - elif sys.version_info >= (3, 0): - name = name.decode('utf-8') - return name - - -def get_subj_alt_name(peer_cert): - """ - Given an PyOpenSSL certificate, provides all the subject alternative names. - """ - # Pass the cert to cryptography, which has much better APIs for this. - if hasattr(peer_cert, "to_cryptography"): - cert = peer_cert.to_cryptography() - else: - # This is technically using private APIs, but should work across all - # relevant versions before PyOpenSSL got a proper API for this. - cert = _Certificate(openssl_backend, peer_cert._x509) - - # We want to find the SAN extension. Ask Cryptography to locate it (it's - # faster than looping in Python) - try: - ext = cert.extensions.get_extension_for_class( - x509.SubjectAlternativeName - ).value - except x509.ExtensionNotFound: - # No such extension, return the empty list. - return [] - except (x509.DuplicateExtension, UnsupportedExtension, - x509.UnsupportedGeneralNameType, UnicodeError) as e: - # A problem has been found with the quality of the certificate. Assume - # no SAN field is present. - log.warning( - "A problem was encountered with the certificate that prevented " - "urllib3 from finding the SubjectAlternativeName field. This can " - "affect certificate validation. The error was %s", - e, - ) - return [] - - # We want to return dNSName and iPAddress fields. We need to cast the IPs - # back to strings because the match_hostname function wants them as - # strings. - # Sadly the DNS names need to be idna encoded and then, on Python 3, UTF-8 - # decoded. This is pretty frustrating, but that's what the standard library - # does with certificates, and so we need to attempt to do the same. - # We also want to skip over names which cannot be idna encoded. - names = [ - ('DNS', name) for name in map(_dnsname_to_stdlib, ext.get_values_for_type(x509.DNSName)) - if name is not None - ] - names.extend( - ('IP Address', str(name)) - for name in ext.get_values_for_type(x509.IPAddress) - ) - - return names - - -class WrappedSocket(object): - '''API-compatibility wrapper for Python OpenSSL's Connection-class. - - Note: _makefile_refs, _drop() and _reuse() are needed for the garbage - collector of pypy. - ''' - - def __init__(self, connection, socket, suppress_ragged_eofs=True): - self.connection = connection - self.socket = socket - self.suppress_ragged_eofs = suppress_ragged_eofs - self._makefile_refs = 0 - self._closed = False - - def fileno(self): - return self.socket.fileno() - - # Copy-pasted from Python 3.5 source code - def _decref_socketios(self): - if self._makefile_refs > 0: - self._makefile_refs -= 1 - if self._closed: - self.close() - - def recv(self, *args, **kwargs): - try: - data = self.connection.recv(*args, **kwargs) - except OpenSSL.SSL.SysCallError as e: - if self.suppress_ragged_eofs and e.args == (-1, 'Unexpected EOF'): - return b'' - else: - raise SocketError(str(e)) - except OpenSSL.SSL.ZeroReturnError as e: - if self.connection.get_shutdown() == OpenSSL.SSL.RECEIVED_SHUTDOWN: - return b'' - else: - raise - except OpenSSL.SSL.WantReadError: - if not util.wait_for_read(self.socket, self.socket.gettimeout()): - raise timeout('The read operation timed out') - else: - return self.recv(*args, **kwargs) - else: - return data - - def recv_into(self, *args, **kwargs): - try: - return self.connection.recv_into(*args, **kwargs) - except OpenSSL.SSL.SysCallError as e: - if self.suppress_ragged_eofs and e.args == (-1, 'Unexpected EOF'): - return 0 - else: - raise SocketError(str(e)) - except OpenSSL.SSL.ZeroReturnError as e: - if self.connection.get_shutdown() == OpenSSL.SSL.RECEIVED_SHUTDOWN: - return 0 - else: - raise - except OpenSSL.SSL.WantReadError: - if not util.wait_for_read(self.socket, self.socket.gettimeout()): - raise timeout('The read operation timed out') - else: - return self.recv_into(*args, **kwargs) - - def settimeout(self, timeout): - return self.socket.settimeout(timeout) - - def _send_until_done(self, data): - while True: - try: - return self.connection.send(data) - except OpenSSL.SSL.WantWriteError: - if not util.wait_for_write(self.socket, self.socket.gettimeout()): - raise timeout() - continue - except OpenSSL.SSL.SysCallError as e: - raise SocketError(str(e)) - - def sendall(self, data): - total_sent = 0 - while total_sent < len(data): - sent = self._send_until_done(data[total_sent:total_sent + SSL_WRITE_BLOCKSIZE]) - total_sent += sent - - def shutdown(self): - # FIXME rethrow compatible exceptions should we ever use this - self.connection.shutdown() - - def close(self): - if self._makefile_refs < 1: - try: - self._closed = True - return self.connection.close() - except OpenSSL.SSL.Error: - return - else: - self._makefile_refs -= 1 - - def getpeercert(self, binary_form=False): - x509 = self.connection.get_peer_certificate() - - if not x509: - return x509 - - if binary_form: - return OpenSSL.crypto.dump_certificate( - OpenSSL.crypto.FILETYPE_ASN1, - x509) - - return { - 'subject': ( - (('commonName', x509.get_subject().CN),), - ), - 'subjectAltName': get_subj_alt_name(x509) - } - - def _reuse(self): - self._makefile_refs += 1 - - def _drop(self): - if self._makefile_refs < 1: - self.close() - else: - self._makefile_refs -= 1 - - -if _fileobject: # Platform-specific: Python 2 - def makefile(self, mode, bufsize=-1): - self._makefile_refs += 1 - return _fileobject(self, mode, bufsize, close=True) -else: # Platform-specific: Python 3 - makefile = backport_makefile - -WrappedSocket.makefile = makefile - - -class PyOpenSSLContext(object): - """ - I am a wrapper class for the PyOpenSSL ``Context`` object. I am responsible - for translating the interface of the standard library ``SSLContext`` object - to calls into PyOpenSSL. - """ - def __init__(self, protocol): - self.protocol = _openssl_versions[protocol] - self._ctx = OpenSSL.SSL.Context(self.protocol) - self._options = 0 - self.check_hostname = False - - @property - def options(self): - return self._options - - @options.setter - def options(self, value): - self._options = value - self._ctx.set_options(value) - - @property - def verify_mode(self): - return _openssl_to_stdlib_verify[self._ctx.get_verify_mode()] - - @verify_mode.setter - def verify_mode(self, value): - self._ctx.set_verify( - _stdlib_to_openssl_verify[value], - _verify_callback - ) - - def set_default_verify_paths(self): - self._ctx.set_default_verify_paths() - - def set_ciphers(self, ciphers): - if isinstance(ciphers, six.text_type): - ciphers = ciphers.encode('utf-8') - self._ctx.set_cipher_list(ciphers) - - def load_verify_locations(self, cafile=None, capath=None, cadata=None): - if cafile is not None: - cafile = cafile.encode('utf-8') - if capath is not None: - capath = capath.encode('utf-8') - self._ctx.load_verify_locations(cafile, capath) - if cadata is not None: - self._ctx.load_verify_locations(BytesIO(cadata)) - - def load_cert_chain(self, certfile, keyfile=None, password=None): - self._ctx.use_certificate_chain_file(certfile) - if password is not None: - self._ctx.set_passwd_cb(lambda max_length, prompt_twice, userdata: password) - self._ctx.use_privatekey_file(keyfile or certfile) - - def wrap_socket(self, sock, server_side=False, - do_handshake_on_connect=True, suppress_ragged_eofs=True, - server_hostname=None): - cnx = OpenSSL.SSL.Connection(self._ctx, sock) - - if isinstance(server_hostname, six.text_type): # Platform-specific: Python 3 - server_hostname = server_hostname.encode('utf-8') - - if server_hostname is not None: - cnx.set_tlsext_host_name(server_hostname) - - cnx.set_connect_state() - - while True: - try: - cnx.do_handshake() - except OpenSSL.SSL.WantReadError: - if not util.wait_for_read(sock, sock.gettimeout()): - raise timeout('select timed out') - continue - except OpenSSL.SSL.Error as e: - raise ssl.SSLError('bad handshake: %r' % e) - break - - return WrappedSocket(cnx, sock) - - -def _verify_callback(cnx, x509, err_no, err_depth, return_code): - return err_no == 0 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/securetransport.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/securetransport.py deleted file mode 100644 index 77cb59e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/securetransport.py +++ /dev/null @@ -1,804 +0,0 @@ -""" -SecureTranport support for urllib3 via ctypes. - -This makes platform-native TLS available to urllib3 users on macOS without the -use of a compiler. This is an important feature because the Python Package -Index is moving to become a TLSv1.2-or-higher server, and the default OpenSSL -that ships with macOS is not capable of doing TLSv1.2. The only way to resolve -this is to give macOS users an alternative solution to the problem, and that -solution is to use SecureTransport. - -We use ctypes here because this solution must not require a compiler. That's -because pip is not allowed to require a compiler either. - -This is not intended to be a seriously long-term solution to this problem. -The hope is that PEP 543 will eventually solve this issue for us, at which -point we can retire this contrib module. But in the short term, we need to -solve the impending tire fire that is Python on Mac without this kind of -contrib module. So...here we are. - -To use this module, simply import and inject it:: - - import urllib3.contrib.securetransport - urllib3.contrib.securetransport.inject_into_urllib3() - -Happy TLSing! -""" -from __future__ import absolute_import - -import contextlib -import ctypes -import errno -import os.path -import shutil -import socket -import ssl -import threading -import weakref - -from .. import util -from ._securetransport.bindings import ( - Security, SecurityConst, CoreFoundation -) -from ._securetransport.low_level import ( - _assert_no_error, _cert_array_from_pem, _temporary_keychain, - _load_client_cert_chain -) - -try: # Platform-specific: Python 2 - from socket import _fileobject -except ImportError: # Platform-specific: Python 3 - _fileobject = None - from ..packages.backports.makefile import backport_makefile - -__all__ = ['inject_into_urllib3', 'extract_from_urllib3'] - -# SNI always works -HAS_SNI = True - -orig_util_HAS_SNI = util.HAS_SNI -orig_util_SSLContext = util.ssl_.SSLContext - -# This dictionary is used by the read callback to obtain a handle to the -# calling wrapped socket. This is a pretty silly approach, but for now it'll -# do. I feel like I should be able to smuggle a handle to the wrapped socket -# directly in the SSLConnectionRef, but for now this approach will work I -# guess. -# -# We need to lock around this structure for inserts, but we don't do it for -# reads/writes in the callbacks. The reasoning here goes as follows: -# -# 1. It is not possible to call into the callbacks before the dictionary is -# populated, so once in the callback the id must be in the dictionary. -# 2. The callbacks don't mutate the dictionary, they only read from it, and -# so cannot conflict with any of the insertions. -# -# This is good: if we had to lock in the callbacks we'd drastically slow down -# the performance of this code. -_connection_refs = weakref.WeakValueDictionary() -_connection_ref_lock = threading.Lock() - -# Limit writes to 16kB. This is OpenSSL's limit, but we'll cargo-cult it over -# for no better reason than we need *a* limit, and this one is right there. -SSL_WRITE_BLOCKSIZE = 16384 - -# This is our equivalent of util.ssl_.DEFAULT_CIPHERS, but expanded out to -# individual cipher suites. We need to do this because this is how -# SecureTransport wants them. -CIPHER_SUITES = [ - SecurityConst.TLS_AES_256_GCM_SHA384, - SecurityConst.TLS_CHACHA20_POLY1305_SHA256, - SecurityConst.TLS_AES_128_GCM_SHA256, - SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, - SecurityConst.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, - SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, - SecurityConst.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, - SecurityConst.TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, - SecurityConst.TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, - SecurityConst.TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, - SecurityConst.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, - SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, - SecurityConst.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, - SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, - SecurityConst.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, - SecurityConst.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, - SecurityConst.TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, - SecurityConst.TLS_DHE_RSA_WITH_AES_256_CBC_SHA, - SecurityConst.TLS_DHE_DSS_WITH_AES_256_CBC_SHA, - SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, - SecurityConst.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, - SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, - SecurityConst.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, - SecurityConst.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, - SecurityConst.TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, - SecurityConst.TLS_DHE_RSA_WITH_AES_128_CBC_SHA, - SecurityConst.TLS_DHE_DSS_WITH_AES_128_CBC_SHA, - SecurityConst.TLS_RSA_WITH_AES_256_GCM_SHA384, - SecurityConst.TLS_RSA_WITH_AES_128_GCM_SHA256, - SecurityConst.TLS_RSA_WITH_AES_256_CBC_SHA256, - SecurityConst.TLS_RSA_WITH_AES_128_CBC_SHA256, - SecurityConst.TLS_RSA_WITH_AES_256_CBC_SHA, - SecurityConst.TLS_RSA_WITH_AES_128_CBC_SHA, -] - -# Basically this is simple: for PROTOCOL_SSLv23 we turn it into a low of -# TLSv1 and a high of TLSv1.2. For everything else, we pin to that version. -_protocol_to_min_max = { - ssl.PROTOCOL_SSLv23: (SecurityConst.kTLSProtocol1, SecurityConst.kTLSProtocol12), -} - -if hasattr(ssl, "PROTOCOL_SSLv2"): - _protocol_to_min_max[ssl.PROTOCOL_SSLv2] = ( - SecurityConst.kSSLProtocol2, SecurityConst.kSSLProtocol2 - ) -if hasattr(ssl, "PROTOCOL_SSLv3"): - _protocol_to_min_max[ssl.PROTOCOL_SSLv3] = ( - SecurityConst.kSSLProtocol3, SecurityConst.kSSLProtocol3 - ) -if hasattr(ssl, "PROTOCOL_TLSv1"): - _protocol_to_min_max[ssl.PROTOCOL_TLSv1] = ( - SecurityConst.kTLSProtocol1, SecurityConst.kTLSProtocol1 - ) -if hasattr(ssl, "PROTOCOL_TLSv1_1"): - _protocol_to_min_max[ssl.PROTOCOL_TLSv1_1] = ( - SecurityConst.kTLSProtocol11, SecurityConst.kTLSProtocol11 - ) -if hasattr(ssl, "PROTOCOL_TLSv1_2"): - _protocol_to_min_max[ssl.PROTOCOL_TLSv1_2] = ( - SecurityConst.kTLSProtocol12, SecurityConst.kTLSProtocol12 - ) -if hasattr(ssl, "PROTOCOL_TLS"): - _protocol_to_min_max[ssl.PROTOCOL_TLS] = _protocol_to_min_max[ssl.PROTOCOL_SSLv23] - - -def inject_into_urllib3(): - """ - Monkey-patch urllib3 with SecureTransport-backed SSL-support. - """ - util.ssl_.SSLContext = SecureTransportContext - util.HAS_SNI = HAS_SNI - util.ssl_.HAS_SNI = HAS_SNI - util.IS_SECURETRANSPORT = True - util.ssl_.IS_SECURETRANSPORT = True - - -def extract_from_urllib3(): - """ - Undo monkey-patching by :func:`inject_into_urllib3`. - """ - util.ssl_.SSLContext = orig_util_SSLContext - util.HAS_SNI = orig_util_HAS_SNI - util.ssl_.HAS_SNI = orig_util_HAS_SNI - util.IS_SECURETRANSPORT = False - util.ssl_.IS_SECURETRANSPORT = False - - -def _read_callback(connection_id, data_buffer, data_length_pointer): - """ - SecureTransport read callback. This is called by ST to request that data - be returned from the socket. - """ - wrapped_socket = None - try: - wrapped_socket = _connection_refs.get(connection_id) - if wrapped_socket is None: - return SecurityConst.errSSLInternal - base_socket = wrapped_socket.socket - - requested_length = data_length_pointer[0] - - timeout = wrapped_socket.gettimeout() - error = None - read_count = 0 - - try: - while read_count < requested_length: - if timeout is None or timeout >= 0: - if not util.wait_for_read(base_socket, timeout): - raise socket.error(errno.EAGAIN, 'timed out') - - remaining = requested_length - read_count - buffer = (ctypes.c_char * remaining).from_address( - data_buffer + read_count - ) - chunk_size = base_socket.recv_into(buffer, remaining) - read_count += chunk_size - if not chunk_size: - if not read_count: - return SecurityConst.errSSLClosedGraceful - break - except (socket.error) as e: - error = e.errno - - if error is not None and error != errno.EAGAIN: - data_length_pointer[0] = read_count - if error == errno.ECONNRESET or error == errno.EPIPE: - return SecurityConst.errSSLClosedAbort - raise - - data_length_pointer[0] = read_count - - if read_count != requested_length: - return SecurityConst.errSSLWouldBlock - - return 0 - except Exception as e: - if wrapped_socket is not None: - wrapped_socket._exception = e - return SecurityConst.errSSLInternal - - -def _write_callback(connection_id, data_buffer, data_length_pointer): - """ - SecureTransport write callback. This is called by ST to request that data - actually be sent on the network. - """ - wrapped_socket = None - try: - wrapped_socket = _connection_refs.get(connection_id) - if wrapped_socket is None: - return SecurityConst.errSSLInternal - base_socket = wrapped_socket.socket - - bytes_to_write = data_length_pointer[0] - data = ctypes.string_at(data_buffer, bytes_to_write) - - timeout = wrapped_socket.gettimeout() - error = None - sent = 0 - - try: - while sent < bytes_to_write: - if timeout is None or timeout >= 0: - if not util.wait_for_write(base_socket, timeout): - raise socket.error(errno.EAGAIN, 'timed out') - chunk_sent = base_socket.send(data) - sent += chunk_sent - - # This has some needless copying here, but I'm not sure there's - # much value in optimising this data path. - data = data[chunk_sent:] - except (socket.error) as e: - error = e.errno - - if error is not None and error != errno.EAGAIN: - data_length_pointer[0] = sent - if error == errno.ECONNRESET or error == errno.EPIPE: - return SecurityConst.errSSLClosedAbort - raise - - data_length_pointer[0] = sent - - if sent != bytes_to_write: - return SecurityConst.errSSLWouldBlock - - return 0 - except Exception as e: - if wrapped_socket is not None: - wrapped_socket._exception = e - return SecurityConst.errSSLInternal - - -# We need to keep these two objects references alive: if they get GC'd while -# in use then SecureTransport could attempt to call a function that is in freed -# memory. That would be...uh...bad. Yeah, that's the word. Bad. -_read_callback_pointer = Security.SSLReadFunc(_read_callback) -_write_callback_pointer = Security.SSLWriteFunc(_write_callback) - - -class WrappedSocket(object): - """ - API-compatibility wrapper for Python's OpenSSL wrapped socket object. - - Note: _makefile_refs, _drop(), and _reuse() are needed for the garbage - collector of PyPy. - """ - def __init__(self, socket): - self.socket = socket - self.context = None - self._makefile_refs = 0 - self._closed = False - self._exception = None - self._keychain = None - self._keychain_dir = None - self._client_cert_chain = None - - # We save off the previously-configured timeout and then set it to - # zero. This is done because we use select and friends to handle the - # timeouts, but if we leave the timeout set on the lower socket then - # Python will "kindly" call select on that socket again for us. Avoid - # that by forcing the timeout to zero. - self._timeout = self.socket.gettimeout() - self.socket.settimeout(0) - - @contextlib.contextmanager - def _raise_on_error(self): - """ - A context manager that can be used to wrap calls that do I/O from - SecureTransport. If any of the I/O callbacks hit an exception, this - context manager will correctly propagate the exception after the fact. - This avoids silently swallowing those exceptions. - - It also correctly forces the socket closed. - """ - self._exception = None - - # We explicitly don't catch around this yield because in the unlikely - # event that an exception was hit in the block we don't want to swallow - # it. - yield - if self._exception is not None: - exception, self._exception = self._exception, None - self.close() - raise exception - - def _set_ciphers(self): - """ - Sets up the allowed ciphers. By default this matches the set in - util.ssl_.DEFAULT_CIPHERS, at least as supported by macOS. This is done - custom and doesn't allow changing at this time, mostly because parsing - OpenSSL cipher strings is going to be a freaking nightmare. - """ - ciphers = (Security.SSLCipherSuite * len(CIPHER_SUITES))(*CIPHER_SUITES) - result = Security.SSLSetEnabledCiphers( - self.context, ciphers, len(CIPHER_SUITES) - ) - _assert_no_error(result) - - def _custom_validate(self, verify, trust_bundle): - """ - Called when we have set custom validation. We do this in two cases: - first, when cert validation is entirely disabled; and second, when - using a custom trust DB. - """ - # If we disabled cert validation, just say: cool. - if not verify: - return - - # We want data in memory, so load it up. - if os.path.isfile(trust_bundle): - with open(trust_bundle, 'rb') as f: - trust_bundle = f.read() - - cert_array = None - trust = Security.SecTrustRef() - - try: - # Get a CFArray that contains the certs we want. - cert_array = _cert_array_from_pem(trust_bundle) - - # Ok, now the hard part. We want to get the SecTrustRef that ST has - # created for this connection, shove our CAs into it, tell ST to - # ignore everything else it knows, and then ask if it can build a - # chain. This is a buuuunch of code. - result = Security.SSLCopyPeerTrust( - self.context, ctypes.byref(trust) - ) - _assert_no_error(result) - if not trust: - raise ssl.SSLError("Failed to copy trust reference") - - result = Security.SecTrustSetAnchorCertificates(trust, cert_array) - _assert_no_error(result) - - result = Security.SecTrustSetAnchorCertificatesOnly(trust, True) - _assert_no_error(result) - - trust_result = Security.SecTrustResultType() - result = Security.SecTrustEvaluate( - trust, ctypes.byref(trust_result) - ) - _assert_no_error(result) - finally: - if trust: - CoreFoundation.CFRelease(trust) - - if cert_array is not None: - CoreFoundation.CFRelease(cert_array) - - # Ok, now we can look at what the result was. - successes = ( - SecurityConst.kSecTrustResultUnspecified, - SecurityConst.kSecTrustResultProceed - ) - if trust_result.value not in successes: - raise ssl.SSLError( - "certificate verify failed, error code: %d" % - trust_result.value - ) - - def handshake(self, - server_hostname, - verify, - trust_bundle, - min_version, - max_version, - client_cert, - client_key, - client_key_passphrase): - """ - Actually performs the TLS handshake. This is run automatically by - wrapped socket, and shouldn't be needed in user code. - """ - # First, we do the initial bits of connection setup. We need to create - # a context, set its I/O funcs, and set the connection reference. - self.context = Security.SSLCreateContext( - None, SecurityConst.kSSLClientSide, SecurityConst.kSSLStreamType - ) - result = Security.SSLSetIOFuncs( - self.context, _read_callback_pointer, _write_callback_pointer - ) - _assert_no_error(result) - - # Here we need to compute the handle to use. We do this by taking the - # id of self modulo 2**31 - 1. If this is already in the dictionary, we - # just keep incrementing by one until we find a free space. - with _connection_ref_lock: - handle = id(self) % 2147483647 - while handle in _connection_refs: - handle = (handle + 1) % 2147483647 - _connection_refs[handle] = self - - result = Security.SSLSetConnection(self.context, handle) - _assert_no_error(result) - - # If we have a server hostname, we should set that too. - if server_hostname: - if not isinstance(server_hostname, bytes): - server_hostname = server_hostname.encode('utf-8') - - result = Security.SSLSetPeerDomainName( - self.context, server_hostname, len(server_hostname) - ) - _assert_no_error(result) - - # Setup the ciphers. - self._set_ciphers() - - # Set the minimum and maximum TLS versions. - result = Security.SSLSetProtocolVersionMin(self.context, min_version) - _assert_no_error(result) - result = Security.SSLSetProtocolVersionMax(self.context, max_version) - _assert_no_error(result) - - # If there's a trust DB, we need to use it. We do that by telling - # SecureTransport to break on server auth. We also do that if we don't - # want to validate the certs at all: we just won't actually do any - # authing in that case. - if not verify or trust_bundle is not None: - result = Security.SSLSetSessionOption( - self.context, - SecurityConst.kSSLSessionOptionBreakOnServerAuth, - True - ) - _assert_no_error(result) - - # If there's a client cert, we need to use it. - if client_cert: - self._keychain, self._keychain_dir = _temporary_keychain() - self._client_cert_chain = _load_client_cert_chain( - self._keychain, client_cert, client_key - ) - result = Security.SSLSetCertificate( - self.context, self._client_cert_chain - ) - _assert_no_error(result) - - while True: - with self._raise_on_error(): - result = Security.SSLHandshake(self.context) - - if result == SecurityConst.errSSLWouldBlock: - raise socket.timeout("handshake timed out") - elif result == SecurityConst.errSSLServerAuthCompleted: - self._custom_validate(verify, trust_bundle) - continue - else: - _assert_no_error(result) - break - - def fileno(self): - return self.socket.fileno() - - # Copy-pasted from Python 3.5 source code - def _decref_socketios(self): - if self._makefile_refs > 0: - self._makefile_refs -= 1 - if self._closed: - self.close() - - def recv(self, bufsiz): - buffer = ctypes.create_string_buffer(bufsiz) - bytes_read = self.recv_into(buffer, bufsiz) - data = buffer[:bytes_read] - return data - - def recv_into(self, buffer, nbytes=None): - # Read short on EOF. - if self._closed: - return 0 - - if nbytes is None: - nbytes = len(buffer) - - buffer = (ctypes.c_char * nbytes).from_buffer(buffer) - processed_bytes = ctypes.c_size_t(0) - - with self._raise_on_error(): - result = Security.SSLRead( - self.context, buffer, nbytes, ctypes.byref(processed_bytes) - ) - - # There are some result codes that we want to treat as "not always - # errors". Specifically, those are errSSLWouldBlock, - # errSSLClosedGraceful, and errSSLClosedNoNotify. - if (result == SecurityConst.errSSLWouldBlock): - # If we didn't process any bytes, then this was just a time out. - # However, we can get errSSLWouldBlock in situations when we *did* - # read some data, and in those cases we should just read "short" - # and return. - if processed_bytes.value == 0: - # Timed out, no data read. - raise socket.timeout("recv timed out") - elif result in (SecurityConst.errSSLClosedGraceful, SecurityConst.errSSLClosedNoNotify): - # The remote peer has closed this connection. We should do so as - # well. Note that we don't actually return here because in - # principle this could actually be fired along with return data. - # It's unlikely though. - self.close() - else: - _assert_no_error(result) - - # Ok, we read and probably succeeded. We should return whatever data - # was actually read. - return processed_bytes.value - - def settimeout(self, timeout): - self._timeout = timeout - - def gettimeout(self): - return self._timeout - - def send(self, data): - processed_bytes = ctypes.c_size_t(0) - - with self._raise_on_error(): - result = Security.SSLWrite( - self.context, data, len(data), ctypes.byref(processed_bytes) - ) - - if result == SecurityConst.errSSLWouldBlock and processed_bytes.value == 0: - # Timed out - raise socket.timeout("send timed out") - else: - _assert_no_error(result) - - # We sent, and probably succeeded. Tell them how much we sent. - return processed_bytes.value - - def sendall(self, data): - total_sent = 0 - while total_sent < len(data): - sent = self.send(data[total_sent:total_sent + SSL_WRITE_BLOCKSIZE]) - total_sent += sent - - def shutdown(self): - with self._raise_on_error(): - Security.SSLClose(self.context) - - def close(self): - # TODO: should I do clean shutdown here? Do I have to? - if self._makefile_refs < 1: - self._closed = True - if self.context: - CoreFoundation.CFRelease(self.context) - self.context = None - if self._client_cert_chain: - CoreFoundation.CFRelease(self._client_cert_chain) - self._client_cert_chain = None - if self._keychain: - Security.SecKeychainDelete(self._keychain) - CoreFoundation.CFRelease(self._keychain) - shutil.rmtree(self._keychain_dir) - self._keychain = self._keychain_dir = None - return self.socket.close() - else: - self._makefile_refs -= 1 - - def getpeercert(self, binary_form=False): - # Urgh, annoying. - # - # Here's how we do this: - # - # 1. Call SSLCopyPeerTrust to get hold of the trust object for this - # connection. - # 2. Call SecTrustGetCertificateAtIndex for index 0 to get the leaf. - # 3. To get the CN, call SecCertificateCopyCommonName and process that - # string so that it's of the appropriate type. - # 4. To get the SAN, we need to do something a bit more complex: - # a. Call SecCertificateCopyValues to get the data, requesting - # kSecOIDSubjectAltName. - # b. Mess about with this dictionary to try to get the SANs out. - # - # This is gross. Really gross. It's going to be a few hundred LoC extra - # just to repeat something that SecureTransport can *already do*. So my - # operating assumption at this time is that what we want to do is - # instead to just flag to urllib3 that it shouldn't do its own hostname - # validation when using SecureTransport. - if not binary_form: - raise ValueError( - "SecureTransport only supports dumping binary certs" - ) - trust = Security.SecTrustRef() - certdata = None - der_bytes = None - - try: - # Grab the trust store. - result = Security.SSLCopyPeerTrust( - self.context, ctypes.byref(trust) - ) - _assert_no_error(result) - if not trust: - # Probably we haven't done the handshake yet. No biggie. - return None - - cert_count = Security.SecTrustGetCertificateCount(trust) - if not cert_count: - # Also a case that might happen if we haven't handshaked. - # Handshook? Handshaken? - return None - - leaf = Security.SecTrustGetCertificateAtIndex(trust, 0) - assert leaf - - # Ok, now we want the DER bytes. - certdata = Security.SecCertificateCopyData(leaf) - assert certdata - - data_length = CoreFoundation.CFDataGetLength(certdata) - data_buffer = CoreFoundation.CFDataGetBytePtr(certdata) - der_bytes = ctypes.string_at(data_buffer, data_length) - finally: - if certdata: - CoreFoundation.CFRelease(certdata) - if trust: - CoreFoundation.CFRelease(trust) - - return der_bytes - - def _reuse(self): - self._makefile_refs += 1 - - def _drop(self): - if self._makefile_refs < 1: - self.close() - else: - self._makefile_refs -= 1 - - -if _fileobject: # Platform-specific: Python 2 - def makefile(self, mode, bufsize=-1): - self._makefile_refs += 1 - return _fileobject(self, mode, bufsize, close=True) -else: # Platform-specific: Python 3 - def makefile(self, mode="r", buffering=None, *args, **kwargs): - # We disable buffering with SecureTransport because it conflicts with - # the buffering that ST does internally (see issue #1153 for more). - buffering = 0 - return backport_makefile(self, mode, buffering, *args, **kwargs) - -WrappedSocket.makefile = makefile - - -class SecureTransportContext(object): - """ - I am a wrapper class for the SecureTransport library, to translate the - interface of the standard library ``SSLContext`` object to calls into - SecureTransport. - """ - def __init__(self, protocol): - self._min_version, self._max_version = _protocol_to_min_max[protocol] - self._options = 0 - self._verify = False - self._trust_bundle = None - self._client_cert = None - self._client_key = None - self._client_key_passphrase = None - - @property - def check_hostname(self): - """ - SecureTransport cannot have its hostname checking disabled. For more, - see the comment on getpeercert() in this file. - """ - return True - - @check_hostname.setter - def check_hostname(self, value): - """ - SecureTransport cannot have its hostname checking disabled. For more, - see the comment on getpeercert() in this file. - """ - pass - - @property - def options(self): - # TODO: Well, crap. - # - # So this is the bit of the code that is the most likely to cause us - # trouble. Essentially we need to enumerate all of the SSL options that - # users might want to use and try to see if we can sensibly translate - # them, or whether we should just ignore them. - return self._options - - @options.setter - def options(self, value): - # TODO: Update in line with above. - self._options = value - - @property - def verify_mode(self): - return ssl.CERT_REQUIRED if self._verify else ssl.CERT_NONE - - @verify_mode.setter - def verify_mode(self, value): - self._verify = True if value == ssl.CERT_REQUIRED else False - - def set_default_verify_paths(self): - # So, this has to do something a bit weird. Specifically, what it does - # is nothing. - # - # This means that, if we had previously had load_verify_locations - # called, this does not undo that. We need to do that because it turns - # out that the rest of the urllib3 code will attempt to load the - # default verify paths if it hasn't been told about any paths, even if - # the context itself was sometime earlier. We resolve that by just - # ignoring it. - pass - - def load_default_certs(self): - return self.set_default_verify_paths() - - def set_ciphers(self, ciphers): - # For now, we just require the default cipher string. - if ciphers != util.ssl_.DEFAULT_CIPHERS: - raise ValueError( - "SecureTransport doesn't support custom cipher strings" - ) - - def load_verify_locations(self, cafile=None, capath=None, cadata=None): - # OK, we only really support cadata and cafile. - if capath is not None: - raise ValueError( - "SecureTransport does not support cert directories" - ) - - self._trust_bundle = cafile or cadata - - def load_cert_chain(self, certfile, keyfile=None, password=None): - self._client_cert = certfile - self._client_key = keyfile - self._client_cert_passphrase = password - - def wrap_socket(self, sock, server_side=False, - do_handshake_on_connect=True, suppress_ragged_eofs=True, - server_hostname=None): - # So, what do we do here? Firstly, we assert some properties. This is a - # stripped down shim, so there is some functionality we don't support. - # See PEP 543 for the real deal. - assert not server_side - assert do_handshake_on_connect - assert suppress_ragged_eofs - - # Ok, we're good to go. Now we want to create the wrapped socket object - # and store it in the appropriate place. - wrapped_socket = WrappedSocket(sock) - - # Now we can handshake - wrapped_socket.handshake( - server_hostname, self._verify, self._trust_bundle, - self._min_version, self._max_version, self._client_cert, - self._client_key, self._client_key_passphrase - ) - return wrapped_socket diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/socks.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/socks.py deleted file mode 100644 index 811e312..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/socks.py +++ /dev/null @@ -1,192 +0,0 @@ -# -*- coding: utf-8 -*- -""" -This module contains provisional support for SOCKS proxies from within -urllib3. This module supports SOCKS4 (specifically the SOCKS4A variant) and -SOCKS5. To enable its functionality, either install PySocks or install this -module with the ``socks`` extra. - -The SOCKS implementation supports the full range of urllib3 features. It also -supports the following SOCKS features: - -- SOCKS4 -- SOCKS4a -- SOCKS5 -- Usernames and passwords for the SOCKS proxy - -Known Limitations: - -- Currently PySocks does not support contacting remote websites via literal - IPv6 addresses. Any such connection attempt will fail. You must use a domain - name. -- Currently PySocks does not support IPv6 connections to the SOCKS proxy. Any - such connection attempt will fail. -""" -from __future__ import absolute_import - -try: - import socks -except ImportError: - import warnings - from ..exceptions import DependencyWarning - - warnings.warn(( - 'SOCKS support in urllib3 requires the installation of optional ' - 'dependencies: specifically, PySocks. For more information, see ' - 'https://urllib3.readthedocs.io/en/latest/contrib.html#socks-proxies' - ), - DependencyWarning - ) - raise - -from socket import error as SocketError, timeout as SocketTimeout - -from ..connection import ( - HTTPConnection, HTTPSConnection -) -from ..connectionpool import ( - HTTPConnectionPool, HTTPSConnectionPool -) -from ..exceptions import ConnectTimeoutError, NewConnectionError -from ..poolmanager import PoolManager -from ..util.url import parse_url - -try: - import ssl -except ImportError: - ssl = None - - -class SOCKSConnection(HTTPConnection): - """ - A plain-text HTTP connection that connects via a SOCKS proxy. - """ - def __init__(self, *args, **kwargs): - self._socks_options = kwargs.pop('_socks_options') - super(SOCKSConnection, self).__init__(*args, **kwargs) - - def _new_conn(self): - """ - Establish a new connection via the SOCKS proxy. - """ - extra_kw = {} - if self.source_address: - extra_kw['source_address'] = self.source_address - - if self.socket_options: - extra_kw['socket_options'] = self.socket_options - - try: - conn = socks.create_connection( - (self.host, self.port), - proxy_type=self._socks_options['socks_version'], - proxy_addr=self._socks_options['proxy_host'], - proxy_port=self._socks_options['proxy_port'], - proxy_username=self._socks_options['username'], - proxy_password=self._socks_options['password'], - proxy_rdns=self._socks_options['rdns'], - timeout=self.timeout, - **extra_kw - ) - - except SocketTimeout as e: - raise ConnectTimeoutError( - self, "Connection to %s timed out. (connect timeout=%s)" % - (self.host, self.timeout)) - - except socks.ProxyError as e: - # This is fragile as hell, but it seems to be the only way to raise - # useful errors here. - if e.socket_err: - error = e.socket_err - if isinstance(error, SocketTimeout): - raise ConnectTimeoutError( - self, - "Connection to %s timed out. (connect timeout=%s)" % - (self.host, self.timeout) - ) - else: - raise NewConnectionError( - self, - "Failed to establish a new connection: %s" % error - ) - else: - raise NewConnectionError( - self, - "Failed to establish a new connection: %s" % e - ) - - except SocketError as e: # Defensive: PySocks should catch all these. - raise NewConnectionError( - self, "Failed to establish a new connection: %s" % e) - - return conn - - -# We don't need to duplicate the Verified/Unverified distinction from -# urllib3/connection.py here because the HTTPSConnection will already have been -# correctly set to either the Verified or Unverified form by that module. This -# means the SOCKSHTTPSConnection will automatically be the correct type. -class SOCKSHTTPSConnection(SOCKSConnection, HTTPSConnection): - pass - - -class SOCKSHTTPConnectionPool(HTTPConnectionPool): - ConnectionCls = SOCKSConnection - - -class SOCKSHTTPSConnectionPool(HTTPSConnectionPool): - ConnectionCls = SOCKSHTTPSConnection - - -class SOCKSProxyManager(PoolManager): - """ - A version of the urllib3 ProxyManager that routes connections via the - defined SOCKS proxy. - """ - pool_classes_by_scheme = { - 'http': SOCKSHTTPConnectionPool, - 'https': SOCKSHTTPSConnectionPool, - } - - def __init__(self, proxy_url, username=None, password=None, - num_pools=10, headers=None, **connection_pool_kw): - parsed = parse_url(proxy_url) - - if username is None and password is None and parsed.auth is not None: - split = parsed.auth.split(':') - if len(split) == 2: - username, password = split - if parsed.scheme == 'socks5': - socks_version = socks.PROXY_TYPE_SOCKS5 - rdns = False - elif parsed.scheme == 'socks5h': - socks_version = socks.PROXY_TYPE_SOCKS5 - rdns = True - elif parsed.scheme == 'socks4': - socks_version = socks.PROXY_TYPE_SOCKS4 - rdns = False - elif parsed.scheme == 'socks4a': - socks_version = socks.PROXY_TYPE_SOCKS4 - rdns = True - else: - raise ValueError( - "Unable to determine SOCKS version from %s" % proxy_url - ) - - self.proxy_url = proxy_url - - socks_options = { - 'socks_version': socks_version, - 'proxy_host': parsed.host, - 'proxy_port': parsed.port, - 'username': username, - 'password': password, - 'rdns': rdns - } - connection_pool_kw['_socks_options'] = socks_options - - super(SOCKSProxyManager, self).__init__( - num_pools, headers, **connection_pool_kw - ) - - self.pool_classes_by_scheme = SOCKSProxyManager.pool_classes_by_scheme diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/exceptions.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/exceptions.py deleted file mode 100644 index 7bbaa98..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/exceptions.py +++ /dev/null @@ -1,246 +0,0 @@ -from __future__ import absolute_import -from .packages.six.moves.http_client import ( - IncompleteRead as httplib_IncompleteRead -) -# Base Exceptions - - -class HTTPError(Exception): - "Base exception used by this module." - pass - - -class HTTPWarning(Warning): - "Base warning used by this module." - pass - - -class PoolError(HTTPError): - "Base exception for errors caused within a pool." - def __init__(self, pool, message): - self.pool = pool - HTTPError.__init__(self, "%s: %s" % (pool, message)) - - def __reduce__(self): - # For pickling purposes. - return self.__class__, (None, None) - - -class RequestError(PoolError): - "Base exception for PoolErrors that have associated URLs." - def __init__(self, pool, url, message): - self.url = url - PoolError.__init__(self, pool, message) - - def __reduce__(self): - # For pickling purposes. - return self.__class__, (None, self.url, None) - - -class SSLError(HTTPError): - "Raised when SSL certificate fails in an HTTPS connection." - pass - - -class ProxyError(HTTPError): - "Raised when the connection to a proxy fails." - pass - - -class DecodeError(HTTPError): - "Raised when automatic decoding based on Content-Type fails." - pass - - -class ProtocolError(HTTPError): - "Raised when something unexpected happens mid-request/response." - pass - - -#: Renamed to ProtocolError but aliased for backwards compatibility. -ConnectionError = ProtocolError - - -# Leaf Exceptions - -class MaxRetryError(RequestError): - """Raised when the maximum number of retries is exceeded. - - :param pool: The connection pool - :type pool: :class:`~urllib3.connectionpool.HTTPConnectionPool` - :param string url: The requested Url - :param exceptions.Exception reason: The underlying error - - """ - - def __init__(self, pool, url, reason=None): - self.reason = reason - - message = "Max retries exceeded with url: %s (Caused by %r)" % ( - url, reason) - - RequestError.__init__(self, pool, url, message) - - -class HostChangedError(RequestError): - "Raised when an existing pool gets a request for a foreign host." - - def __init__(self, pool, url, retries=3): - message = "Tried to open a foreign host with url: %s" % url - RequestError.__init__(self, pool, url, message) - self.retries = retries - - -class TimeoutStateError(HTTPError): - """ Raised when passing an invalid state to a timeout """ - pass - - -class TimeoutError(HTTPError): - """ Raised when a socket timeout error occurs. - - Catching this error will catch both :exc:`ReadTimeoutErrors - <ReadTimeoutError>` and :exc:`ConnectTimeoutErrors <ConnectTimeoutError>`. - """ - pass - - -class ReadTimeoutError(TimeoutError, RequestError): - "Raised when a socket timeout occurs while receiving data from a server" - pass - - -# This timeout error does not have a URL attached and needs to inherit from the -# base HTTPError -class ConnectTimeoutError(TimeoutError): - "Raised when a socket timeout occurs while connecting to a server" - pass - - -class NewConnectionError(ConnectTimeoutError, PoolError): - "Raised when we fail to establish a new connection. Usually ECONNREFUSED." - pass - - -class EmptyPoolError(PoolError): - "Raised when a pool runs out of connections and no more are allowed." - pass - - -class ClosedPoolError(PoolError): - "Raised when a request enters a pool after the pool has been closed." - pass - - -class LocationValueError(ValueError, HTTPError): - "Raised when there is something wrong with a given URL input." - pass - - -class LocationParseError(LocationValueError): - "Raised when get_host or similar fails to parse the URL input." - - def __init__(self, location): - message = "Failed to parse: %s" % location - HTTPError.__init__(self, message) - - self.location = location - - -class ResponseError(HTTPError): - "Used as a container for an error reason supplied in a MaxRetryError." - GENERIC_ERROR = 'too many error responses' - SPECIFIC_ERROR = 'too many {status_code} error responses' - - -class SecurityWarning(HTTPWarning): - "Warned when performing security reducing actions" - pass - - -class SubjectAltNameWarning(SecurityWarning): - "Warned when connecting to a host with a certificate missing a SAN." - pass - - -class InsecureRequestWarning(SecurityWarning): - "Warned when making an unverified HTTPS request." - pass - - -class SystemTimeWarning(SecurityWarning): - "Warned when system time is suspected to be wrong" - pass - - -class InsecurePlatformWarning(SecurityWarning): - "Warned when certain SSL configuration is not available on a platform." - pass - - -class SNIMissingWarning(HTTPWarning): - "Warned when making a HTTPS request without SNI available." - pass - - -class DependencyWarning(HTTPWarning): - """ - Warned when an attempt is made to import a module with missing optional - dependencies. - """ - pass - - -class ResponseNotChunked(ProtocolError, ValueError): - "Response needs to be chunked in order to read it as chunks." - pass - - -class BodyNotHttplibCompatible(HTTPError): - """ - Body should be httplib.HTTPResponse like (have an fp attribute which - returns raw chunks) for read_chunked(). - """ - pass - - -class IncompleteRead(HTTPError, httplib_IncompleteRead): - """ - Response length doesn't match expected Content-Length - - Subclass of http_client.IncompleteRead to allow int value - for `partial` to avoid creating large objects on streamed - reads. - """ - def __init__(self, partial, expected): - super(IncompleteRead, self).__init__(partial, expected) - - def __repr__(self): - return ('IncompleteRead(%i bytes read, ' - '%i more expected)' % (self.partial, self.expected)) - - -class InvalidHeader(HTTPError): - "The header provided was somehow invalid." - pass - - -class ProxySchemeUnknown(AssertionError, ValueError): - "ProxyManager does not support the supplied scheme" - # TODO(t-8ch): Stop inheriting from AssertionError in v2.0. - - def __init__(self, scheme): - message = "Not supported proxy scheme %s" % scheme - super(ProxySchemeUnknown, self).__init__(message) - - -class HeaderParsingError(HTTPError): - "Raised by assert_header_parsing, but we convert it to a log.warning statement." - def __init__(self, defects, unparsed_data): - message = '%s, unparsed data: %r' % (defects or 'Unknown', unparsed_data) - super(HeaderParsingError, self).__init__(message) - - -class UnrewindableBodyError(HTTPError): - "urllib3 encountered an error when trying to rewind a body" - pass diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/fields.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/fields.py deleted file mode 100644 index 37fe64a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/fields.py +++ /dev/null @@ -1,178 +0,0 @@ -from __future__ import absolute_import -import email.utils -import mimetypes - -from .packages import six - - -def guess_content_type(filename, default='application/octet-stream'): - """ - Guess the "Content-Type" of a file. - - :param filename: - The filename to guess the "Content-Type" of using :mod:`mimetypes`. - :param default: - If no "Content-Type" can be guessed, default to `default`. - """ - if filename: - return mimetypes.guess_type(filename)[0] or default - return default - - -def format_header_param(name, value): - """ - Helper function to format and quote a single header parameter. - - Particularly useful for header parameters which might contain - non-ASCII values, like file names. This follows RFC 2231, as - suggested by RFC 2388 Section 4.4. - - :param name: - The name of the parameter, a string expected to be ASCII only. - :param value: - The value of the parameter, provided as a unicode string. - """ - if not any(ch in value for ch in '"\\\r\n'): - result = '%s="%s"' % (name, value) - try: - result.encode('ascii') - except (UnicodeEncodeError, UnicodeDecodeError): - pass - else: - return result - if not six.PY3 and isinstance(value, six.text_type): # Python 2: - value = value.encode('utf-8') - value = email.utils.encode_rfc2231(value, 'utf-8') - value = '%s*=%s' % (name, value) - return value - - -class RequestField(object): - """ - A data container for request body parameters. - - :param name: - The name of this request field. - :param data: - The data/value body. - :param filename: - An optional filename of the request field. - :param headers: - An optional dict-like object of headers to initially use for the field. - """ - def __init__(self, name, data, filename=None, headers=None): - self._name = name - self._filename = filename - self.data = data - self.headers = {} - if headers: - self.headers = dict(headers) - - @classmethod - def from_tuples(cls, fieldname, value): - """ - A :class:`~urllib3.fields.RequestField` factory from old-style tuple parameters. - - Supports constructing :class:`~urllib3.fields.RequestField` from - parameter of key/value strings AND key/filetuple. A filetuple is a - (filename, data, MIME type) tuple where the MIME type is optional. - For example:: - - 'foo': 'bar', - 'fakefile': ('foofile.txt', 'contents of foofile'), - 'realfile': ('barfile.txt', open('realfile').read()), - 'typedfile': ('bazfile.bin', open('bazfile').read(), 'image/jpeg'), - 'nonamefile': 'contents of nonamefile field', - - Field names and filenames must be unicode. - """ - if isinstance(value, tuple): - if len(value) == 3: - filename, data, content_type = value - else: - filename, data = value - content_type = guess_content_type(filename) - else: - filename = None - content_type = None - data = value - - request_param = cls(fieldname, data, filename=filename) - request_param.make_multipart(content_type=content_type) - - return request_param - - def _render_part(self, name, value): - """ - Overridable helper function to format a single header parameter. - - :param name: - The name of the parameter, a string expected to be ASCII only. - :param value: - The value of the parameter, provided as a unicode string. - """ - return format_header_param(name, value) - - def _render_parts(self, header_parts): - """ - Helper function to format and quote a single header. - - Useful for single headers that are composed of multiple items. E.g., - 'Content-Disposition' fields. - - :param header_parts: - A sequence of (k, v) tuples or a :class:`dict` of (k, v) to format - as `k1="v1"; k2="v2"; ...`. - """ - parts = [] - iterable = header_parts - if isinstance(header_parts, dict): - iterable = header_parts.items() - - for name, value in iterable: - if value is not None: - parts.append(self._render_part(name, value)) - - return '; '.join(parts) - - def render_headers(self): - """ - Renders the headers for this request field. - """ - lines = [] - - sort_keys = ['Content-Disposition', 'Content-Type', 'Content-Location'] - for sort_key in sort_keys: - if self.headers.get(sort_key, False): - lines.append('%s: %s' % (sort_key, self.headers[sort_key])) - - for header_name, header_value in self.headers.items(): - if header_name not in sort_keys: - if header_value: - lines.append('%s: %s' % (header_name, header_value)) - - lines.append('\r\n') - return '\r\n'.join(lines) - - def make_multipart(self, content_disposition=None, content_type=None, - content_location=None): - """ - Makes this request field into a multipart request field. - - This method overrides "Content-Disposition", "Content-Type" and - "Content-Location" headers to the request parameter. - - :param content_type: - The 'Content-Type' of the request body. - :param content_location: - The 'Content-Location' of the request body. - - """ - self.headers['Content-Disposition'] = content_disposition or 'form-data' - self.headers['Content-Disposition'] += '; '.join([ - '', self._render_parts( - (('name', self._name), ('filename', self._filename)) - ) - ]) - self.headers['Content-Type'] = content_type - self.headers['Content-Location'] = content_location diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/filepost.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/filepost.py deleted file mode 100644 index 78f1e19..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/filepost.py +++ /dev/null @@ -1,98 +0,0 @@ -from __future__ import absolute_import -import binascii -import codecs -import os - -from io import BytesIO - -from .packages import six -from .packages.six import b -from .fields import RequestField - -writer = codecs.lookup('utf-8')[3] - - -def choose_boundary(): - """ - Our embarrassingly-simple replacement for mimetools.choose_boundary. - """ - boundary = binascii.hexlify(os.urandom(16)) - if six.PY3: - boundary = boundary.decode('ascii') - return boundary - - -def iter_field_objects(fields): - """ - Iterate over fields. - - Supports list of (k, v) tuples and dicts, and lists of - :class:`~urllib3.fields.RequestField`. - - """ - if isinstance(fields, dict): - i = six.iteritems(fields) - else: - i = iter(fields) - - for field in i: - if isinstance(field, RequestField): - yield field - else: - yield RequestField.from_tuples(*field) - - -def iter_fields(fields): - """ - .. deprecated:: 1.6 - - Iterate over fields. - - The addition of :class:`~urllib3.fields.RequestField` makes this function - obsolete. Instead, use :func:`iter_field_objects`, which returns - :class:`~urllib3.fields.RequestField` objects. - - Supports list of (k, v) tuples and dicts. - """ - if isinstance(fields, dict): - return ((k, v) for k, v in six.iteritems(fields)) - - return ((k, v) for k, v in fields) - - -def encode_multipart_formdata(fields, boundary=None): - """ - Encode a dictionary of ``fields`` using the multipart/form-data MIME format. - - :param fields: - Dictionary of fields or list of (key, :class:`~urllib3.fields.RequestField`). - - :param boundary: - If not specified, then a random boundary will be generated using - :func:`urllib3.filepost.choose_boundary`. - """ - body = BytesIO() - if boundary is None: - boundary = choose_boundary() - - for field in iter_field_objects(fields): - body.write(b('--%s\r\n' % (boundary))) - - writer(body).write(field.render_headers()) - data = field.data - - if isinstance(data, int): - data = str(data) # Backwards compatibility - - if isinstance(data, six.text_type): - writer(body).write(data) - else: - body.write(data) - - body.write(b'\r\n') - - body.write(b('--%s--\r\n' % (boundary))) - - content_type = str('multipart/form-data; boundary=%s' % boundary) - - return body.getvalue(), content_type diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/__init__.py deleted file mode 100644 index 170e974..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from __future__ import absolute_import - -from . import ssl_match_hostname - -__all__ = ('ssl_match_hostname', ) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/makefile.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/makefile.py deleted file mode 100644 index 740db37..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/makefile.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -""" -backports.makefile -~~~~~~~~~~~~~~~~~~ - -Backports the Python 3 ``socket.makefile`` method for use with anything that -wants to create a "fake" socket object. -""" -import io - -from socket import SocketIO - - -def backport_makefile(self, mode="r", buffering=None, encoding=None, - errors=None, newline=None): - """ - Backport of ``socket.makefile`` from Python 3.5. - """ - if not set(mode) <= {"r", "w", "b"}: - raise ValueError( - "invalid mode %r (only r, w, b allowed)" % (mode,) - ) - writing = "w" in mode - reading = "r" in mode or not writing - assert reading or writing - binary = "b" in mode - rawmode = "" - if reading: - rawmode += "r" - if writing: - rawmode += "w" - raw = SocketIO(self, rawmode) - self._makefile_refs += 1 - if buffering is None: - buffering = -1 - if buffering < 0: - buffering = io.DEFAULT_BUFFER_SIZE - if buffering == 0: - if not binary: - raise ValueError("unbuffered streams must be binary") - return raw - if reading and writing: - buffer = io.BufferedRWPair(raw, raw, buffering) - elif reading: - buffer = io.BufferedReader(raw, buffering) - else: - assert writing - buffer = io.BufferedWriter(raw, buffering) - if binary: - return buffer - text = io.TextIOWrapper(buffer, encoding, errors, newline) - text.mode = mode - return text diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/six.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/six.py deleted file mode 100644 index 190c023..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/six.py +++ /dev/null @@ -1,868 +0,0 @@ -"""Utilities for writing code that runs on Python 2 and 3""" - -# Copyright (c) 2010-2015 Benjamin Peterson -# -# 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. - -from __future__ import absolute_import - -import functools -import itertools -import operator -import sys -import types - -__author__ = "Benjamin Peterson <benjamin@python.org>" -__version__ = "1.10.0" - - -# Useful for very coarse version differentiation. -PY2 = sys.version_info[0] == 2 -PY3 = sys.version_info[0] == 3 -PY34 = sys.version_info[0:2] >= (3, 4) - -if PY3: - string_types = str, - integer_types = int, - class_types = type, - text_type = str - binary_type = bytes - - MAXSIZE = sys.maxsize -else: - string_types = basestring, - integer_types = (int, long) - class_types = (type, types.ClassType) - text_type = unicode - binary_type = str - - if sys.platform.startswith("java"): - # Jython always uses 32 bits. - MAXSIZE = int((1 << 31) - 1) - else: - # It's possible to have sizeof(long) != sizeof(Py_ssize_t). - class X(object): - - def __len__(self): - return 1 << 31 - try: - len(X()) - except OverflowError: - # 32-bit - MAXSIZE = int((1 << 31) - 1) - else: - # 64-bit - MAXSIZE = int((1 << 63) - 1) - del X - - -def _add_doc(func, doc): - """Add documentation to a function.""" - func.__doc__ = doc - - -def _import_module(name): - """Import module, returning the module after the last dot.""" - __import__(name) - return sys.modules[name] - - -class _LazyDescr(object): - - def __init__(self, name): - self.name = name - - def __get__(self, obj, tp): - result = self._resolve() - setattr(obj, self.name, result) # Invokes __set__. - try: - # This is a bit ugly, but it avoids running this again by - # removing this descriptor. - delattr(obj.__class__, self.name) - except AttributeError: - pass - return result - - -class MovedModule(_LazyDescr): - - def __init__(self, name, old, new=None): - super(MovedModule, self).__init__(name) - if PY3: - if new is None: - new = name - self.mod = new - else: - self.mod = old - - def _resolve(self): - return _import_module(self.mod) - - def __getattr__(self, attr): - _module = self._resolve() - value = getattr(_module, attr) - setattr(self, attr, value) - return value - - -class _LazyModule(types.ModuleType): - - def __init__(self, name): - super(_LazyModule, self).__init__(name) - self.__doc__ = self.__class__.__doc__ - - def __dir__(self): - attrs = ["__doc__", "__name__"] - attrs += [attr.name for attr in self._moved_attributes] - return attrs - - # Subclasses should override this - _moved_attributes = [] - - -class MovedAttribute(_LazyDescr): - - def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): - super(MovedAttribute, self).__init__(name) - if PY3: - if new_mod is None: - new_mod = name - self.mod = new_mod - if new_attr is None: - if old_attr is None: - new_attr = name - else: - new_attr = old_attr - self.attr = new_attr - else: - self.mod = old_mod - if old_attr is None: - old_attr = name - self.attr = old_attr - - def _resolve(self): - module = _import_module(self.mod) - return getattr(module, self.attr) - - -class _SixMetaPathImporter(object): - - """ - A meta path importer to import six.moves and its submodules. - - This class implements a PEP302 finder and loader. It should be compatible - with Python 2.5 and all existing versions of Python3 - """ - - def __init__(self, six_module_name): - self.name = six_module_name - self.known_modules = {} - - def _add_module(self, mod, *fullnames): - for fullname in fullnames: - self.known_modules[self.name + "." + fullname] = mod - - def _get_module(self, fullname): - return self.known_modules[self.name + "." + fullname] - - def find_module(self, fullname, path=None): - if fullname in self.known_modules: - return self - return None - - def __get_module(self, fullname): - try: - return self.known_modules[fullname] - except KeyError: - raise ImportError("This loader does not know module " + fullname) - - def load_module(self, fullname): - try: - # in case of a reload - return sys.modules[fullname] - except KeyError: - pass - mod = self.__get_module(fullname) - if isinstance(mod, MovedModule): - mod = mod._resolve() - else: - mod.__loader__ = self - sys.modules[fullname] = mod - return mod - - def is_package(self, fullname): - """ - Return true, if the named module is a package. - - We need this method to get correct spec objects with - Python 3.4 (see PEP451) - """ - return hasattr(self.__get_module(fullname), "__path__") - - def get_code(self, fullname): - """Return None - - Required, if is_package is implemented""" - self.__get_module(fullname) # eventually raises ImportError - return None - get_source = get_code # same as get_code - -_importer = _SixMetaPathImporter(__name__) - - -class _MovedItems(_LazyModule): - - """Lazy loading of moved objects""" - __path__ = [] # mark as package - - -_moved_attributes = [ - MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), - MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"), - MovedAttribute("filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse"), - MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), - MovedAttribute("intern", "__builtin__", "sys"), - MovedAttribute("map", "itertools", "builtins", "imap", "map"), - MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"), - MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"), - MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"), - MovedAttribute("reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload"), - MovedAttribute("reduce", "__builtin__", "functools"), - MovedAttribute("shlex_quote", "pipes", "shlex", "quote"), - MovedAttribute("StringIO", "StringIO", "io"), - MovedAttribute("UserDict", "UserDict", "collections"), - MovedAttribute("UserList", "UserList", "collections"), - MovedAttribute("UserString", "UserString", "collections"), - MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), - MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), - MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), - MovedModule("builtins", "__builtin__"), - MovedModule("configparser", "ConfigParser"), - MovedModule("copyreg", "copy_reg"), - MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), - MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread"), - MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), - MovedModule("http_cookies", "Cookie", "http.cookies"), - MovedModule("html_entities", "htmlentitydefs", "html.entities"), - MovedModule("html_parser", "HTMLParser", "html.parser"), - MovedModule("http_client", "httplib", "http.client"), - MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), - MovedModule("email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart"), - MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), - MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), - MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), - MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), - MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), - MovedModule("cPickle", "cPickle", "pickle"), - MovedModule("queue", "Queue"), - MovedModule("reprlib", "repr"), - MovedModule("socketserver", "SocketServer"), - MovedModule("_thread", "thread", "_thread"), - MovedModule("tkinter", "Tkinter"), - MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), - MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), - MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), - MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), - MovedModule("tkinter_tix", "Tix", "tkinter.tix"), - MovedModule("tkinter_ttk", "ttk", "tkinter.ttk"), - MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), - MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), - MovedModule("tkinter_colorchooser", "tkColorChooser", - "tkinter.colorchooser"), - MovedModule("tkinter_commondialog", "tkCommonDialog", - "tkinter.commondialog"), - MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), - MovedModule("tkinter_font", "tkFont", "tkinter.font"), - MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), - MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", - "tkinter.simpledialog"), - MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"), - MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"), - MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"), - MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), - MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"), - MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"), -] -# Add windows specific modules. -if sys.platform == "win32": - _moved_attributes += [ - MovedModule("winreg", "_winreg"), - ] - -for attr in _moved_attributes: - setattr(_MovedItems, attr.name, attr) - if isinstance(attr, MovedModule): - _importer._add_module(attr, "moves." + attr.name) -del attr - -_MovedItems._moved_attributes = _moved_attributes - -moves = _MovedItems(__name__ + ".moves") -_importer._add_module(moves, "moves") - - -class Module_six_moves_urllib_parse(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_parse""" - - -_urllib_parse_moved_attributes = [ - MovedAttribute("ParseResult", "urlparse", "urllib.parse"), - MovedAttribute("SplitResult", "urlparse", "urllib.parse"), - MovedAttribute("parse_qs", "urlparse", "urllib.parse"), - MovedAttribute("parse_qsl", "urlparse", "urllib.parse"), - MovedAttribute("urldefrag", "urlparse", "urllib.parse"), - MovedAttribute("urljoin", "urlparse", "urllib.parse"), - MovedAttribute("urlparse", "urlparse", "urllib.parse"), - MovedAttribute("urlsplit", "urlparse", "urllib.parse"), - MovedAttribute("urlunparse", "urlparse", "urllib.parse"), - MovedAttribute("urlunsplit", "urlparse", "urllib.parse"), - MovedAttribute("quote", "urllib", "urllib.parse"), - MovedAttribute("quote_plus", "urllib", "urllib.parse"), - MovedAttribute("unquote", "urllib", "urllib.parse"), - MovedAttribute("unquote_plus", "urllib", "urllib.parse"), - MovedAttribute("urlencode", "urllib", "urllib.parse"), - MovedAttribute("splitquery", "urllib", "urllib.parse"), - MovedAttribute("splittag", "urllib", "urllib.parse"), - MovedAttribute("splituser", "urllib", "urllib.parse"), - MovedAttribute("uses_fragment", "urlparse", "urllib.parse"), - MovedAttribute("uses_netloc", "urlparse", "urllib.parse"), - MovedAttribute("uses_params", "urlparse", "urllib.parse"), - MovedAttribute("uses_query", "urlparse", "urllib.parse"), - MovedAttribute("uses_relative", "urlparse", "urllib.parse"), -] -for attr in _urllib_parse_moved_attributes: - setattr(Module_six_moves_urllib_parse, attr.name, attr) -del attr - -Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes - -_importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse"), - "moves.urllib_parse", "moves.urllib.parse") - - -class Module_six_moves_urllib_error(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_error""" - - -_urllib_error_moved_attributes = [ - MovedAttribute("URLError", "urllib2", "urllib.error"), - MovedAttribute("HTTPError", "urllib2", "urllib.error"), - MovedAttribute("ContentTooShortError", "urllib", "urllib.error"), -] -for attr in _urllib_error_moved_attributes: - setattr(Module_six_moves_urllib_error, attr.name, attr) -del attr - -Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes - -_importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.error"), - "moves.urllib_error", "moves.urllib.error") - - -class Module_six_moves_urllib_request(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_request""" - - -_urllib_request_moved_attributes = [ - MovedAttribute("urlopen", "urllib2", "urllib.request"), - MovedAttribute("install_opener", "urllib2", "urllib.request"), - MovedAttribute("build_opener", "urllib2", "urllib.request"), - MovedAttribute("pathname2url", "urllib", "urllib.request"), - MovedAttribute("url2pathname", "urllib", "urllib.request"), - MovedAttribute("getproxies", "urllib", "urllib.request"), - MovedAttribute("Request", "urllib2", "urllib.request"), - MovedAttribute("OpenerDirector", "urllib2", "urllib.request"), - MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"), - MovedAttribute("ProxyHandler", "urllib2", "urllib.request"), - MovedAttribute("BaseHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"), - MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"), - MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"), - MovedAttribute("FileHandler", "urllib2", "urllib.request"), - MovedAttribute("FTPHandler", "urllib2", "urllib.request"), - MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"), - MovedAttribute("UnknownHandler", "urllib2", "urllib.request"), - MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"), - MovedAttribute("urlretrieve", "urllib", "urllib.request"), - MovedAttribute("urlcleanup", "urllib", "urllib.request"), - MovedAttribute("URLopener", "urllib", "urllib.request"), - MovedAttribute("FancyURLopener", "urllib", "urllib.request"), - MovedAttribute("proxy_bypass", "urllib", "urllib.request"), -] -for attr in _urllib_request_moved_attributes: - setattr(Module_six_moves_urllib_request, attr.name, attr) -del attr - -Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes - -_importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib.request"), - "moves.urllib_request", "moves.urllib.request") - - -class Module_six_moves_urllib_response(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_response""" - - -_urllib_response_moved_attributes = [ - MovedAttribute("addbase", "urllib", "urllib.response"), - MovedAttribute("addclosehook", "urllib", "urllib.response"), - MovedAttribute("addinfo", "urllib", "urllib.response"), - MovedAttribute("addinfourl", "urllib", "urllib.response"), -] -for attr in _urllib_response_moved_attributes: - setattr(Module_six_moves_urllib_response, attr.name, attr) -del attr - -Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes - -_importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib.response"), - "moves.urllib_response", "moves.urllib.response") - - -class Module_six_moves_urllib_robotparser(_LazyModule): - - """Lazy loading of moved objects in six.moves.urllib_robotparser""" - - -_urllib_robotparser_moved_attributes = [ - MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"), -] -for attr in _urllib_robotparser_moved_attributes: - setattr(Module_six_moves_urllib_robotparser, attr.name, attr) -del attr - -Module_six_moves_urllib_robotparser._moved_attributes = _urllib_robotparser_moved_attributes - -_importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser"), - "moves.urllib_robotparser", "moves.urllib.robotparser") - - -class Module_six_moves_urllib(types.ModuleType): - - """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" - __path__ = [] # mark as package - parse = _importer._get_module("moves.urllib_parse") - error = _importer._get_module("moves.urllib_error") - request = _importer._get_module("moves.urllib_request") - response = _importer._get_module("moves.urllib_response") - robotparser = _importer._get_module("moves.urllib_robotparser") - - def __dir__(self): - return ['parse', 'error', 'request', 'response', 'robotparser'] - -_importer._add_module(Module_six_moves_urllib(__name__ + ".moves.urllib"), - "moves.urllib") - - -def add_move(move): - """Add an item to six.moves.""" - setattr(_MovedItems, move.name, move) - - -def remove_move(name): - """Remove item from six.moves.""" - try: - delattr(_MovedItems, name) - except AttributeError: - try: - del moves.__dict__[name] - except KeyError: - raise AttributeError("no such move, %r" % (name,)) - - -if PY3: - _meth_func = "__func__" - _meth_self = "__self__" - - _func_closure = "__closure__" - _func_code = "__code__" - _func_defaults = "__defaults__" - _func_globals = "__globals__" -else: - _meth_func = "im_func" - _meth_self = "im_self" - - _func_closure = "func_closure" - _func_code = "func_code" - _func_defaults = "func_defaults" - _func_globals = "func_globals" - - -try: - advance_iterator = next -except NameError: - def advance_iterator(it): - return it.next() -next = advance_iterator - - -try: - callable = callable -except NameError: - def callable(obj): - return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) - - -if PY3: - def get_unbound_function(unbound): - return unbound - - create_bound_method = types.MethodType - - def create_unbound_method(func, cls): - return func - - Iterator = object -else: - def get_unbound_function(unbound): - return unbound.im_func - - def create_bound_method(func, obj): - return types.MethodType(func, obj, obj.__class__) - - def create_unbound_method(func, cls): - return types.MethodType(func, None, cls) - - class Iterator(object): - - def next(self): - return type(self).__next__(self) - - callable = callable -_add_doc(get_unbound_function, - """Get the function out of a possibly unbound function""") - - -get_method_function = operator.attrgetter(_meth_func) -get_method_self = operator.attrgetter(_meth_self) -get_function_closure = operator.attrgetter(_func_closure) -get_function_code = operator.attrgetter(_func_code) -get_function_defaults = operator.attrgetter(_func_defaults) -get_function_globals = operator.attrgetter(_func_globals) - - -if PY3: - def iterkeys(d, **kw): - return iter(d.keys(**kw)) - - def itervalues(d, **kw): - return iter(d.values(**kw)) - - def iteritems(d, **kw): - return iter(d.items(**kw)) - - def iterlists(d, **kw): - return iter(d.lists(**kw)) - - viewkeys = operator.methodcaller("keys") - - viewvalues = operator.methodcaller("values") - - viewitems = operator.methodcaller("items") -else: - def iterkeys(d, **kw): - return d.iterkeys(**kw) - - def itervalues(d, **kw): - return d.itervalues(**kw) - - def iteritems(d, **kw): - return d.iteritems(**kw) - - def iterlists(d, **kw): - return d.iterlists(**kw) - - viewkeys = operator.methodcaller("viewkeys") - - viewvalues = operator.methodcaller("viewvalues") - - viewitems = operator.methodcaller("viewitems") - -_add_doc(iterkeys, "Return an iterator over the keys of a dictionary.") -_add_doc(itervalues, "Return an iterator over the values of a dictionary.") -_add_doc(iteritems, - "Return an iterator over the (key, value) pairs of a dictionary.") -_add_doc(iterlists, - "Return an iterator over the (key, [values]) pairs of a dictionary.") - - -if PY3: - def b(s): - return s.encode("latin-1") - - def u(s): - return s - unichr = chr - import struct - int2byte = struct.Struct(">B").pack - del struct - byte2int = operator.itemgetter(0) - indexbytes = operator.getitem - iterbytes = iter - import io - StringIO = io.StringIO - BytesIO = io.BytesIO - _assertCountEqual = "assertCountEqual" - if sys.version_info[1] <= 1: - _assertRaisesRegex = "assertRaisesRegexp" - _assertRegex = "assertRegexpMatches" - else: - _assertRaisesRegex = "assertRaisesRegex" - _assertRegex = "assertRegex" -else: - def b(s): - return s - # Workaround for standalone backslash - - def u(s): - return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape") - unichr = unichr - int2byte = chr - - def byte2int(bs): - return ord(bs[0]) - - def indexbytes(buf, i): - return ord(buf[i]) - iterbytes = functools.partial(itertools.imap, ord) - import StringIO - StringIO = BytesIO = StringIO.StringIO - _assertCountEqual = "assertItemsEqual" - _assertRaisesRegex = "assertRaisesRegexp" - _assertRegex = "assertRegexpMatches" -_add_doc(b, """Byte literal""") -_add_doc(u, """Text literal""") - - -def assertCountEqual(self, *args, **kwargs): - return getattr(self, _assertCountEqual)(*args, **kwargs) - - -def assertRaisesRegex(self, *args, **kwargs): - return getattr(self, _assertRaisesRegex)(*args, **kwargs) - - -def assertRegex(self, *args, **kwargs): - return getattr(self, _assertRegex)(*args, **kwargs) - - -if PY3: - exec_ = getattr(moves.builtins, "exec") - - def reraise(tp, value, tb=None): - if value is None: - value = tp() - if value.__traceback__ is not tb: - raise value.with_traceback(tb) - raise value - -else: - def exec_(_code_, _globs_=None, _locs_=None): - """Execute code in a namespace.""" - if _globs_ is None: - frame = sys._getframe(1) - _globs_ = frame.f_globals - if _locs_ is None: - _locs_ = frame.f_locals - del frame - elif _locs_ is None: - _locs_ = _globs_ - exec("""exec _code_ in _globs_, _locs_""") - - exec_("""def reraise(tp, value, tb=None): - raise tp, value, tb -""") - - -if sys.version_info[:2] == (3, 2): - exec_("""def raise_from(value, from_value): - if from_value is None: - raise value - raise value from from_value -""") -elif sys.version_info[:2] > (3, 2): - exec_("""def raise_from(value, from_value): - raise value from from_value -""") -else: - def raise_from(value, from_value): - raise value - - -print_ = getattr(moves.builtins, "print", None) -if print_ is None: - def print_(*args, **kwargs): - """The new-style print function for Python 2.4 and 2.5.""" - fp = kwargs.pop("file", sys.stdout) - if fp is None: - return - - def write(data): - if not isinstance(data, basestring): - data = str(data) - # If the file has an encoding, encode unicode with it. - if (isinstance(fp, file) and - isinstance(data, unicode) and - fp.encoding is not None): - errors = getattr(fp, "errors", None) - if errors is None: - errors = "strict" - data = data.encode(fp.encoding, errors) - fp.write(data) - want_unicode = False - sep = kwargs.pop("sep", None) - if sep is not None: - if isinstance(sep, unicode): - want_unicode = True - elif not isinstance(sep, str): - raise TypeError("sep must be None or a string") - end = kwargs.pop("end", None) - if end is not None: - if isinstance(end, unicode): - want_unicode = True - elif not isinstance(end, str): - raise TypeError("end must be None or a string") - if kwargs: - raise TypeError("invalid keyword arguments to print()") - if not want_unicode: - for arg in args: - if isinstance(arg, unicode): - want_unicode = True - break - if want_unicode: - newline = unicode("\n") - space = unicode(" ") - else: - newline = "\n" - space = " " - if sep is None: - sep = space - if end is None: - end = newline - for i, arg in enumerate(args): - if i: - write(sep) - write(arg) - write(end) -if sys.version_info[:2] < (3, 3): - _print = print_ - - def print_(*args, **kwargs): - fp = kwargs.get("file", sys.stdout) - flush = kwargs.pop("flush", False) - _print(*args, **kwargs) - if flush and fp is not None: - fp.flush() - -_add_doc(reraise, """Reraise an exception.""") - -if sys.version_info[0:2] < (3, 4): - def wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, - updated=functools.WRAPPER_UPDATES): - def wrapper(f): - f = functools.wraps(wrapped, assigned, updated)(f) - f.__wrapped__ = wrapped - return f - return wrapper -else: - wraps = functools.wraps - - -def with_metaclass(meta, *bases): - """Create a base class with a metaclass.""" - # This requires a bit of explanation: the basic idea is to make a dummy - # metaclass for one level of class instantiation that replaces itself with - # the actual metaclass. - class metaclass(meta): - - def __new__(cls, name, this_bases, d): - return meta(name, bases, d) - return type.__new__(metaclass, 'temporary_class', (), {}) - - -def add_metaclass(metaclass): - """Class decorator for creating a class with a metaclass.""" - def wrapper(cls): - orig_vars = cls.__dict__.copy() - slots = orig_vars.get('__slots__') - if slots is not None: - if isinstance(slots, str): - slots = [slots] - for slots_var in slots: - orig_vars.pop(slots_var) - orig_vars.pop('__dict__', None) - orig_vars.pop('__weakref__', None) - return metaclass(cls.__name__, cls.__bases__, orig_vars) - return wrapper - - -def python_2_unicode_compatible(klass): - """ - A decorator that defines __unicode__ and __str__ methods under Python 2. - Under Python 3 it does nothing. - - To support Python 2 and 3 with a single code base, define a __str__ method - returning text and apply this decorator to the class. - """ - if PY2: - if '__str__' not in klass.__dict__: - raise ValueError("@python_2_unicode_compatible cannot be applied " - "to %s because it doesn't define __str__()." % - klass.__name__) - klass.__unicode__ = klass.__str__ - klass.__str__ = lambda self: self.__unicode__().encode('utf-8') - return klass - - -# Complete the moves implementation. -# This code is at the end of this module to speed up module loading. -# Turn this module into a package. -__path__ = [] # required for PEP 302 and PEP 451 -__package__ = __name__ # see PEP 366 @ReservedAssignment -if globals().get("__spec__") is not None: - __spec__.submodule_search_locations = [] # PEP 451 @UndefinedVariable -# Remove other six meta path importers, since they cause problems. This can -# happen if six is removed from sys.modules and then reloaded. (Setuptools does -# this for some reason.) -if sys.meta_path: - for i, importer in enumerate(sys.meta_path): - # Here's some real nastiness: Another "instance" of the six module might - # be floating around. Therefore, we can't use isinstance() to check for - # the six meta path importer, since the other six instance will have - # inserted an importer with different class. - if (type(importer).__name__ == "_SixMetaPathImporter" and - importer.name == __name__): - del sys.meta_path[i] - break - del i, importer -# Finally, add the importer to the meta path import hook. -sys.meta_path.append(_importer) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py deleted file mode 100644 index d6594eb..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -import sys - -try: - # Our match_hostname function is the same as 3.5's, so we only want to - # import the match_hostname function if it's at least that good. - if sys.version_info < (3, 5): - raise ImportError("Fallback to vendored code") - - from ssl import CertificateError, match_hostname -except ImportError: - try: - # Backport of the function from a pypi module - from backports.ssl_match_hostname import CertificateError, match_hostname - except ImportError: - # Our vendored copy - from ._implementation import CertificateError, match_hostname - -# Not needed, but documenting what we provide. -__all__ = ('CertificateError', 'match_hostname') diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py deleted file mode 100644 index 970cf65..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +++ /dev/null @@ -1,156 +0,0 @@ -"""The match_hostname() function from Python 3.3.3, essential when using SSL.""" - -# Note: This file is under the PSF license as the code comes from the python -# stdlib. http://docs.python.org/3/license.html - -import re -import sys - -# ipaddress has been backported to 2.6+ in pypi. If it is installed on the -# system, use it to handle IPAddress ServerAltnames (this was added in -# python-3.5) otherwise only do DNS matching. This allows -# backports.ssl_match_hostname to continue to be used in Python 2.7. -try: - from pip._vendor import ipaddress -except ImportError: - ipaddress = None - -__version__ = '3.5.0.1' - - -class CertificateError(ValueError): - pass - - -def _dnsname_match(dn, hostname, max_wildcards=1): - """Matching according to RFC 6125, section 6.4.3 - - http://tools.ietf.org/html/rfc6125#section-6.4.3 - """ - pats = [] - if not dn: - return False - - # Ported from python3-syntax: - # leftmost, *remainder = dn.split(r'.') - parts = dn.split(r'.') - leftmost = parts[0] - remainder = parts[1:] - - wildcards = leftmost.count('*') - if wildcards > max_wildcards: - # Issue #17980: avoid denials of service by refusing more - # than one wildcard per fragment. A survey of established - # policy among SSL implementations showed it to be a - # reasonable choice. - raise CertificateError( - "too many wildcards in certificate DNS name: " + repr(dn)) - - # speed up common case w/o wildcards - if not wildcards: - return dn.lower() == hostname.lower() - - # RFC 6125, section 6.4.3, subitem 1. - # The client SHOULD NOT attempt to match a presented identifier in which - # the wildcard character comprises a label other than the left-most label. - if leftmost == '*': - # When '*' is a fragment by itself, it matches a non-empty dotless - # fragment. - pats.append('[^.]+') - elif leftmost.startswith('xn--') or hostname.startswith('xn--'): - # RFC 6125, section 6.4.3, subitem 3. - # The client SHOULD NOT attempt to match a presented identifier - # where the wildcard character is embedded within an A-label or - # U-label of an internationalized domain name. - pats.append(re.escape(leftmost)) - else: - # Otherwise, '*' matches any dotless string, e.g. www* - pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) - - # add the remaining fragments, ignore any wildcards - for frag in remainder: - pats.append(re.escape(frag)) - - pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) - return pat.match(hostname) - - -def _to_unicode(obj): - if isinstance(obj, str) and sys.version_info < (3,): - obj = unicode(obj, encoding='ascii', errors='strict') - return obj - -def _ipaddress_match(ipname, host_ip): - """Exact matching of IP addresses. - - RFC 6125 explicitly doesn't define an algorithm for this - (section 1.7.2 - "Out of Scope"). - """ - # OpenSSL may add a trailing newline to a subjectAltName's IP address - # Divergence from upstream: ipaddress can't handle byte str - ip = ipaddress.ip_address(_to_unicode(ipname).rstrip()) - return ip == host_ip - - -def match_hostname(cert, hostname): - """Verify that *cert* (in decoded format as returned by - SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 - rules are followed, but IP addresses are not accepted for *hostname*. - - CertificateError is raised on failure. On success, the function - returns nothing. - """ - if not cert: - raise ValueError("empty or no certificate, match_hostname needs a " - "SSL socket or SSL context with either " - "CERT_OPTIONAL or CERT_REQUIRED") - try: - # Divergence from upstream: ipaddress can't handle byte str - host_ip = ipaddress.ip_address(_to_unicode(hostname)) - except ValueError: - # Not an IP address (common case) - host_ip = None - except UnicodeError: - # Divergence from upstream: Have to deal with ipaddress not taking - # byte strings. addresses should be all ascii, so we consider it not - # an ipaddress in this case - host_ip = None - except AttributeError: - # Divergence from upstream: Make ipaddress library optional - if ipaddress is None: - host_ip = None - else: - raise - dnsnames = [] - san = cert.get('subjectAltName', ()) - for key, value in san: - if key == 'DNS': - if host_ip is None and _dnsname_match(value, hostname): - return - dnsnames.append(value) - elif key == 'IP Address': - if host_ip is not None and _ipaddress_match(value, host_ip): - return - dnsnames.append(value) - if not dnsnames: - # The subject is only checked when there is no dNSName entry - # in subjectAltName - for sub in cert.get('subject', ()): - for key, value in sub: - # XXX according to RFC 2818, the most specific Common Name - # must be used. - if key == 'commonName': - if _dnsname_match(value, hostname): - return - dnsnames.append(value) - if len(dnsnames) > 1: - raise CertificateError("hostname %r " - "doesn't match either of %s" - % (hostname, ', '.join(map(repr, dnsnames)))) - elif len(dnsnames) == 1: - raise CertificateError("hostname %r " - "doesn't match %r" - % (hostname, dnsnames[0])) - else: - raise CertificateError("no appropriate commonName or " - "subjectAltName fields were found") diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/poolmanager.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/poolmanager.py deleted file mode 100644 index fe5491c..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/poolmanager.py +++ /dev/null @@ -1,450 +0,0 @@ -from __future__ import absolute_import -import collections -import functools -import logging - -from ._collections import RecentlyUsedContainer -from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool -from .connectionpool import port_by_scheme -from .exceptions import LocationValueError, MaxRetryError, ProxySchemeUnknown -from .packages.six.moves.urllib.parse import urljoin -from .request import RequestMethods -from .util.url import parse_url -from .util.retry import Retry - - -__all__ = ['PoolManager', 'ProxyManager', 'proxy_from_url'] - - -log = logging.getLogger(__name__) - -SSL_KEYWORDS = ('key_file', 'cert_file', 'cert_reqs', 'ca_certs', - 'ssl_version', 'ca_cert_dir', 'ssl_context') - -# All known keyword arguments that could be provided to the pool manager, its -# pools, or the underlying connections. This is used to construct a pool key. -_key_fields = ( - 'key_scheme', # str - 'key_host', # str - 'key_port', # int - 'key_timeout', # int or float or Timeout - 'key_retries', # int or Retry - 'key_strict', # bool - 'key_block', # bool - 'key_source_address', # str - 'key_key_file', # str - 'key_cert_file', # str - 'key_cert_reqs', # str - 'key_ca_certs', # str - 'key_ssl_version', # str - 'key_ca_cert_dir', # str - 'key_ssl_context', # instance of ssl.SSLContext or urllib3.util.ssl_.SSLContext - 'key_maxsize', # int - 'key_headers', # dict - 'key__proxy', # parsed proxy url - 'key__proxy_headers', # dict - 'key_socket_options', # list of (level (int), optname (int), value (int or str)) tuples - 'key__socks_options', # dict - 'key_assert_hostname', # bool or string - 'key_assert_fingerprint', # str - 'key_server_hostname', #str -) - -#: The namedtuple class used to construct keys for the connection pool. -#: All custom key schemes should include the fields in this key at a minimum. -PoolKey = collections.namedtuple('PoolKey', _key_fields) - - -def _default_key_normalizer(key_class, request_context): - """ - Create a pool key out of a request context dictionary. - - According to RFC 3986, both the scheme and host are case-insensitive. - Therefore, this function normalizes both before constructing the pool - key for an HTTPS request. If you wish to change this behaviour, provide - alternate callables to ``key_fn_by_scheme``. - - :param key_class: - The class to use when constructing the key. This should be a namedtuple - with the ``scheme`` and ``host`` keys at a minimum. - :type key_class: namedtuple - :param request_context: - A dictionary-like object that contain the context for a request. - :type request_context: dict - - :return: A namedtuple that can be used as a connection pool key. - :rtype: PoolKey - """ - # Since we mutate the dictionary, make a copy first - context = request_context.copy() - context['scheme'] = context['scheme'].lower() - context['host'] = context['host'].lower() - - # These are both dictionaries and need to be transformed into frozensets - for key in ('headers', '_proxy_headers', '_socks_options'): - if key in context and context[key] is not None: - context[key] = frozenset(context[key].items()) - - # The socket_options key may be a list and needs to be transformed into a - # tuple. - socket_opts = context.get('socket_options') - if socket_opts is not None: - context['socket_options'] = tuple(socket_opts) - - # Map the kwargs to the names in the namedtuple - this is necessary since - # namedtuples can't have fields starting with '_'. - for key in list(context.keys()): - context['key_' + key] = context.pop(key) - - # Default to ``None`` for keys missing from the context - for field in key_class._fields: - if field not in context: - context[field] = None - - return key_class(**context) - - -#: A dictionary that maps a scheme to a callable that creates a pool key. -#: This can be used to alter the way pool keys are constructed, if desired. -#: Each PoolManager makes a copy of this dictionary so they can be configured -#: globally here, or individually on the instance. -key_fn_by_scheme = { - 'http': functools.partial(_default_key_normalizer, PoolKey), - 'https': functools.partial(_default_key_normalizer, PoolKey), -} - -pool_classes_by_scheme = { - 'http': HTTPConnectionPool, - 'https': HTTPSConnectionPool, -} - - -class PoolManager(RequestMethods): - """ - Allows for arbitrary requests while transparently keeping track of - necessary connection pools for you. - - :param num_pools: - Number of connection pools to cache before discarding the least - recently used pool. - - :param headers: - Headers to include with all requests, unless other headers are given - explicitly. - - :param \\**connection_pool_kw: - Additional parameters are used to create fresh - :class:`urllib3.connectionpool.ConnectionPool` instances. - - Example:: - - >>> manager = PoolManager(num_pools=2) - >>> r = manager.request('GET', 'http://google.com/') - >>> r = manager.request('GET', 'http://google.com/mail') - >>> r = manager.request('GET', 'http://yahoo.com/') - >>> len(manager.pools) - 2 - - """ - - proxy = None - - def __init__(self, num_pools=10, headers=None, **connection_pool_kw): - RequestMethods.__init__(self, headers) - self.connection_pool_kw = connection_pool_kw - self.pools = RecentlyUsedContainer(num_pools, - dispose_func=lambda p: p.close()) - - # Locally set the pool classes and keys so other PoolManagers can - # override them. - self.pool_classes_by_scheme = pool_classes_by_scheme - self.key_fn_by_scheme = key_fn_by_scheme.copy() - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - self.clear() - # Return False to re-raise any potential exceptions - return False - - def _new_pool(self, scheme, host, port, request_context=None): - """ - Create a new :class:`ConnectionPool` based on host, port, scheme, and - any additional pool keyword arguments. - - If ``request_context`` is provided, it is provided as keyword arguments - to the pool class used. This method is used to actually create the - connection pools handed out by :meth:`connection_from_url` and - companion methods. It is intended to be overridden for customization. - """ - pool_cls = self.pool_classes_by_scheme[scheme] - if request_context is None: - request_context = self.connection_pool_kw.copy() - - # Although the context has everything necessary to create the pool, - # this function has historically only used the scheme, host, and port - # in the positional args. When an API change is acceptable these can - # be removed. - for key in ('scheme', 'host', 'port'): - request_context.pop(key, None) - - if scheme == 'http': - for kw in SSL_KEYWORDS: - request_context.pop(kw, None) - - return pool_cls(host, port, **request_context) - - def clear(self): - """ - Empty our store of pools and direct them all to close. - - This will not affect in-flight connections, but they will not be - re-used after completion. - """ - self.pools.clear() - - def connection_from_host(self, host, port=None, scheme='http', pool_kwargs=None): - """ - Get a :class:`ConnectionPool` based on the host, port, and scheme. - - If ``port`` isn't given, it will be derived from the ``scheme`` using - ``urllib3.connectionpool.port_by_scheme``. If ``pool_kwargs`` is - provided, it is merged with the instance's ``connection_pool_kw`` - variable and used to create the new connection pool, if one is - needed. - """ - - if not host: - raise LocationValueError("No host specified.") - - request_context = self._merge_pool_kwargs(pool_kwargs) - request_context['scheme'] = scheme or 'http' - if not port: - port = port_by_scheme.get(request_context['scheme'].lower(), 80) - request_context['port'] = port - request_context['host'] = host - - return self.connection_from_context(request_context) - - def connection_from_context(self, request_context): - """ - Get a :class:`ConnectionPool` based on the request context. - - ``request_context`` must at least contain the ``scheme`` key and its - value must be a key in ``key_fn_by_scheme`` instance variable. - """ - scheme = request_context['scheme'].lower() - pool_key_constructor = self.key_fn_by_scheme[scheme] - pool_key = pool_key_constructor(request_context) - - return self.connection_from_pool_key(pool_key, request_context=request_context) - - def connection_from_pool_key(self, pool_key, request_context=None): - """ - Get a :class:`ConnectionPool` based on the provided pool key. - - ``pool_key`` should be a namedtuple that only contains immutable - objects. At a minimum it must have the ``scheme``, ``host``, and - ``port`` fields. - """ - with self.pools.lock: - # If the scheme, host, or port doesn't match existing open - # connections, open a new ConnectionPool. - pool = self.pools.get(pool_key) - if pool: - return pool - - # Make a fresh ConnectionPool of the desired type - scheme = request_context['scheme'] - host = request_context['host'] - port = request_context['port'] - pool = self._new_pool(scheme, host, port, request_context=request_context) - self.pools[pool_key] = pool - - return pool - - def connection_from_url(self, url, pool_kwargs=None): - """ - Similar to :func:`urllib3.connectionpool.connection_from_url`. - - If ``pool_kwargs`` is not provided and a new pool needs to be - constructed, ``self.connection_pool_kw`` is used to initialize - the :class:`urllib3.connectionpool.ConnectionPool`. If ``pool_kwargs`` - is provided, it is used instead. Note that if a new pool does not - need to be created for the request, the provided ``pool_kwargs`` are - not used. - """ - u = parse_url(url) - return self.connection_from_host(u.host, port=u.port, scheme=u.scheme, - pool_kwargs=pool_kwargs) - - def _merge_pool_kwargs(self, override): - """ - Merge a dictionary of override values for self.connection_pool_kw. - - This does not modify self.connection_pool_kw and returns a new dict. - Any keys in the override dictionary with a value of ``None`` are - removed from the merged dictionary. - """ - base_pool_kwargs = self.connection_pool_kw.copy() - if override: - for key, value in override.items(): - if value is None: - try: - del base_pool_kwargs[key] - except KeyError: - pass - else: - base_pool_kwargs[key] = value - return base_pool_kwargs - - def urlopen(self, method, url, redirect=True, **kw): - """ - Same as :meth:`urllib3.connectionpool.HTTPConnectionPool.urlopen` - with custom cross-host redirect logic and only sends the request-uri - portion of the ``url``. - - The given ``url`` parameter must be absolute, such that an appropriate - :class:`urllib3.connectionpool.ConnectionPool` can be chosen for it. - """ - u = parse_url(url) - conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme) - - kw['assert_same_host'] = False - kw['redirect'] = False - - if 'headers' not in kw: - kw['headers'] = self.headers.copy() - - if self.proxy is not None and u.scheme == "http": - response = conn.urlopen(method, url, **kw) - else: - response = conn.urlopen(method, u.request_uri, **kw) - - redirect_location = redirect and response.get_redirect_location() - if not redirect_location: - return response - - # Support relative URLs for redirecting. - redirect_location = urljoin(url, redirect_location) - - # RFC 7231, Section 6.4.4 - if response.status == 303: - method = 'GET' - - retries = kw.get('retries') - if not isinstance(retries, Retry): - retries = Retry.from_int(retries, redirect=redirect) - - # Strip headers marked as unsafe to forward to the redirected location. - # Check remove_headers_on_redirect to avoid a potential network call within - # conn.is_same_host() which may use socket.gethostbyname() in the future. - if (retries.remove_headers_on_redirect - and not conn.is_same_host(redirect_location)): - for header in retries.remove_headers_on_redirect: - kw['headers'].pop(header, None) - - try: - retries = retries.increment(method, url, response=response, _pool=conn) - except MaxRetryError: - if retries.raise_on_redirect: - raise - return response - - kw['retries'] = retries - kw['redirect'] = redirect - - log.info("Redirecting %s -> %s", url, redirect_location) - return self.urlopen(method, redirect_location, **kw) - - -class ProxyManager(PoolManager): - """ - Behaves just like :class:`PoolManager`, but sends all requests through - the defined proxy, using the CONNECT method for HTTPS URLs. - - :param proxy_url: - The URL of the proxy to be used. - - :param proxy_headers: - A dictionary containing headers that will be sent to the proxy. In case - of HTTP they are being sent with each request, while in the - HTTPS/CONNECT case they are sent only once. Could be used for proxy - authentication. - - Example: - >>> proxy = urllib3.ProxyManager('http://localhost:3128/') - >>> r1 = proxy.request('GET', 'http://google.com/') - >>> r2 = proxy.request('GET', 'http://httpbin.org/') - >>> len(proxy.pools) - 1 - >>> r3 = proxy.request('GET', 'https://httpbin.org/') - >>> r4 = proxy.request('GET', 'https://twitter.com/') - >>> len(proxy.pools) - 3 - - """ - - def __init__(self, proxy_url, num_pools=10, headers=None, - proxy_headers=None, **connection_pool_kw): - - if isinstance(proxy_url, HTTPConnectionPool): - proxy_url = '%s://%s:%i' % (proxy_url.scheme, proxy_url.host, - proxy_url.port) - proxy = parse_url(proxy_url) - if not proxy.port: - port = port_by_scheme.get(proxy.scheme, 80) - proxy = proxy._replace(port=port) - - if proxy.scheme not in ("http", "https"): - raise ProxySchemeUnknown(proxy.scheme) - - self.proxy = proxy - self.proxy_headers = proxy_headers or {} - - connection_pool_kw['_proxy'] = self.proxy - connection_pool_kw['_proxy_headers'] = self.proxy_headers - - super(ProxyManager, self).__init__( - num_pools, headers, **connection_pool_kw) - - def connection_from_host(self, host, port=None, scheme='http', pool_kwargs=None): - if scheme == "https": - return super(ProxyManager, self).connection_from_host( - host, port, scheme, pool_kwargs=pool_kwargs) - - return super(ProxyManager, self).connection_from_host( - self.proxy.host, self.proxy.port, self.proxy.scheme, pool_kwargs=pool_kwargs) - - def _set_proxy_headers(self, url, headers=None): - """ - Sets headers needed by proxies: specifically, the Accept and Host - headers. Only sets headers not provided by the user. - """ - headers_ = {'Accept': '*/*'} - - netloc = parse_url(url).netloc - if netloc: - headers_['Host'] = netloc - - if headers: - headers_.update(headers) - return headers_ - - def urlopen(self, method, url, redirect=True, **kw): - "Same as HTTP(S)ConnectionPool.urlopen, ``url`` must be absolute." - u = parse_url(url) - - if u.scheme == "http": - # For proxied HTTPS requests, httplib sets the necessary headers - # on the CONNECT to the proxy. For HTTP, we'll definitely - # need to set 'Host' at the very least. - headers = kw.get('headers', self.headers) - kw['headers'] = self._set_proxy_headers(url, headers) - - return super(ProxyManager, self).urlopen(method, url, redirect=redirect, **kw) - - -def proxy_from_url(url, **kw): - return ProxyManager(proxy_url=url, **kw) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/request.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/request.py deleted file mode 100644 index 8f2f44b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/request.py +++ /dev/null @@ -1,150 +0,0 @@ -from __future__ import absolute_import - -from .filepost import encode_multipart_formdata -from .packages.six.moves.urllib.parse import urlencode - - -__all__ = ['RequestMethods'] - - -class RequestMethods(object): - """ - Convenience mixin for classes who implement a :meth:`urlopen` method, such - as :class:`~urllib3.connectionpool.HTTPConnectionPool` and - :class:`~urllib3.poolmanager.PoolManager`. - - Provides behavior for making common types of HTTP request methods and - decides which type of request field encoding to use. - - Specifically, - - :meth:`.request_encode_url` is for sending requests whose fields are - encoded in the URL (such as GET, HEAD, DELETE). - - :meth:`.request_encode_body` is for sending requests whose fields are - encoded in the *body* of the request using multipart or www-form-urlencoded - (such as for POST, PUT, PATCH). - - :meth:`.request` is for making any kind of request, it will look up the - appropriate encoding format and use one of the above two methods to make - the request. - - Initializer parameters: - - :param headers: - Headers to include with all requests, unless other headers are given - explicitly. - """ - - _encode_url_methods = {'DELETE', 'GET', 'HEAD', 'OPTIONS'} - - def __init__(self, headers=None): - self.headers = headers or {} - - def urlopen(self, method, url, body=None, headers=None, - encode_multipart=True, multipart_boundary=None, - **kw): # Abstract - raise NotImplementedError("Classes extending RequestMethods must implement " - "their own ``urlopen`` method.") - - def request(self, method, url, fields=None, headers=None, **urlopen_kw): - """ - Make a request using :meth:`urlopen` with the appropriate encoding of - ``fields`` based on the ``method`` used. - - This is a convenience method that requires the least amount of manual - effort. It can be used in most situations, while still having the - option to drop down to more specific methods when necessary, such as - :meth:`request_encode_url`, :meth:`request_encode_body`, - or even the lowest level :meth:`urlopen`. - """ - method = method.upper() - - urlopen_kw['request_url'] = url - - if method in self._encode_url_methods: - return self.request_encode_url(method, url, fields=fields, - headers=headers, - **urlopen_kw) - else: - return self.request_encode_body(method, url, fields=fields, - headers=headers, - **urlopen_kw) - - def request_encode_url(self, method, url, fields=None, headers=None, - **urlopen_kw): - """ - Make a request using :meth:`urlopen` with the ``fields`` encoded in - the url. This is useful for request methods like GET, HEAD, DELETE, etc. - """ - if headers is None: - headers = self.headers - - extra_kw = {'headers': headers} - extra_kw.update(urlopen_kw) - - if fields: - url += '?' + urlencode(fields) - - return self.urlopen(method, url, **extra_kw) - - def request_encode_body(self, method, url, fields=None, headers=None, - encode_multipart=True, multipart_boundary=None, - **urlopen_kw): - """ - Make a request using :meth:`urlopen` with the ``fields`` encoded in - the body. This is useful for request methods like POST, PUT, PATCH, etc. - - When ``encode_multipart=True`` (default), then - :meth:`urllib3.filepost.encode_multipart_formdata` is used to encode - the payload with the appropriate content type. Otherwise - :meth:`urllib.urlencode` is used with the - 'application/x-www-form-urlencoded' content type. - - Multipart encoding must be used when posting files, and it's reasonably - safe to use it in other times too. However, it may break request - signing, such as with OAuth. - - Supports an optional ``fields`` parameter of key/value strings AND - key/filetuple. A filetuple is a (filename, data, MIME type) tuple where - the MIME type is optional. For example:: - - fields = { - 'foo': 'bar', - 'fakefile': ('foofile.txt', 'contents of foofile'), - 'realfile': ('barfile.txt', open('realfile').read()), - 'typedfile': ('bazfile.bin', open('bazfile').read(), - 'image/jpeg'), - 'nonamefile': 'contents of nonamefile field', - } - - When uploading a file, providing a filename (the first parameter of the - tuple) is optional but recommended to best mimic behavior of browsers. - - Note that if ``headers`` are supplied, the 'Content-Type' header will - be overwritten because it depends on the dynamic random boundary string - which is used to compose the body of the request. The random boundary - string can be explicitly set with the ``multipart_boundary`` parameter. - """ - if headers is None: - headers = self.headers - - extra_kw = {'headers': {}} - - if fields: - if 'body' in urlopen_kw: - raise TypeError( - "request got values for both 'fields' and 'body', can only specify one.") - - if encode_multipart: - body, content_type = encode_multipart_formdata(fields, boundary=multipart_boundary) - else: - body, content_type = urlencode(fields), 'application/x-www-form-urlencoded' - - extra_kw['body'] = body - extra_kw['headers'] = {'Content-Type': content_type} - - extra_kw['headers'].update(headers) - extra_kw.update(urlopen_kw) - - return self.urlopen(method, url, **extra_kw) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/response.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/response.py deleted file mode 100644 index c112690..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/response.py +++ /dev/null @@ -1,705 +0,0 @@ -from __future__ import absolute_import -from contextlib import contextmanager -import zlib -import io -import logging -from socket import timeout as SocketTimeout -from socket import error as SocketError - -from ._collections import HTTPHeaderDict -from .exceptions import ( - BodyNotHttplibCompatible, ProtocolError, DecodeError, ReadTimeoutError, - ResponseNotChunked, IncompleteRead, InvalidHeader -) -from .packages.six import string_types as basestring, PY3 -from .packages.six.moves import http_client as httplib -from .connection import HTTPException, BaseSSLError -from .util.response import is_fp_closed, is_response_to_head - -log = logging.getLogger(__name__) - - -class DeflateDecoder(object): - - def __init__(self): - self._first_try = True - self._data = b'' - self._obj = zlib.decompressobj() - - def __getattr__(self, name): - return getattr(self._obj, name) - - def decompress(self, data): - if not data: - return data - - if not self._first_try: - return self._obj.decompress(data) - - self._data += data - try: - decompressed = self._obj.decompress(data) - if decompressed: - self._first_try = False - self._data = None - return decompressed - except zlib.error: - self._first_try = False - self._obj = zlib.decompressobj(-zlib.MAX_WBITS) - try: - return self.decompress(self._data) - finally: - self._data = None - - -class GzipDecoderState(object): - - FIRST_MEMBER = 0 - OTHER_MEMBERS = 1 - SWALLOW_DATA = 2 - - -class GzipDecoder(object): - - def __init__(self): - self._obj = zlib.decompressobj(16 + zlib.MAX_WBITS) - self._state = GzipDecoderState.FIRST_MEMBER - - def __getattr__(self, name): - return getattr(self._obj, name) - - def decompress(self, data): - ret = bytearray() - if self._state == GzipDecoderState.SWALLOW_DATA or not data: - return bytes(ret) - while True: - try: - ret += self._obj.decompress(data) - except zlib.error: - previous_state = self._state - # Ignore data after the first error - self._state = GzipDecoderState.SWALLOW_DATA - if previous_state == GzipDecoderState.OTHER_MEMBERS: - # Allow trailing garbage acceptable in other gzip clients - return bytes(ret) - raise - data = self._obj.unused_data - if not data: - return bytes(ret) - self._state = GzipDecoderState.OTHER_MEMBERS - self._obj = zlib.decompressobj(16 + zlib.MAX_WBITS) - - -class MultiDecoder(object): - """ - From RFC7231: - If one or more encodings have been applied to a representation, the - sender that applied the encodings MUST generate a Content-Encoding - header field that lists the content codings in the order in which - they were applied. - """ - - def __init__(self, modes): - self._decoders = [_get_decoder(m.strip()) for m in modes.split(',')] - - def flush(self): - return self._decoders[0].flush() - - def decompress(self, data): - for d in reversed(self._decoders): - data = d.decompress(data) - return data - - -def _get_decoder(mode): - if ',' in mode: - return MultiDecoder(mode) - - if mode == 'gzip': - return GzipDecoder() - - return DeflateDecoder() - - -class HTTPResponse(io.IOBase): - """ - HTTP Response container. - - Backwards-compatible to httplib's HTTPResponse but the response ``body`` is - loaded and decoded on-demand when the ``data`` property is accessed. This - class is also compatible with the Python standard library's :mod:`io` - module, and can hence be treated as a readable object in the context of that - framework. - - Extra parameters for behaviour not present in httplib.HTTPResponse: - - :param preload_content: - If True, the response's body will be preloaded during construction. - - :param decode_content: - If True, will attempt to decode the body based on the - 'content-encoding' header. - - :param original_response: - When this HTTPResponse wrapper is generated from an httplib.HTTPResponse - object, it's convenient to include the original for debug purposes. It's - otherwise unused. - - :param retries: - The retries contains the last :class:`~urllib3.util.retry.Retry` that - was used during the request. - - :param enforce_content_length: - Enforce content length checking. Body returned by server must match - value of Content-Length header, if present. Otherwise, raise error. - """ - - CONTENT_DECODERS = ['gzip', 'deflate'] - REDIRECT_STATUSES = [301, 302, 303, 307, 308] - - def __init__(self, body='', headers=None, status=0, version=0, reason=None, - strict=0, preload_content=True, decode_content=True, - original_response=None, pool=None, connection=None, msg=None, - retries=None, enforce_content_length=False, - request_method=None, request_url=None): - - if isinstance(headers, HTTPHeaderDict): - self.headers = headers - else: - self.headers = HTTPHeaderDict(headers) - self.status = status - self.version = version - self.reason = reason - self.strict = strict - self.decode_content = decode_content - self.retries = retries - self.enforce_content_length = enforce_content_length - - self._decoder = None - self._body = None - self._fp = None - self._original_response = original_response - self._fp_bytes_read = 0 - self.msg = msg - self._request_url = request_url - - if body and isinstance(body, (basestring, bytes)): - self._body = body - - self._pool = pool - self._connection = connection - - if hasattr(body, 'read'): - self._fp = body - - # Are we using the chunked-style of transfer encoding? - self.chunked = False - self.chunk_left = None - tr_enc = self.headers.get('transfer-encoding', '').lower() - # Don't incur the penalty of creating a list and then discarding it - encodings = (enc.strip() for enc in tr_enc.split(",")) - if "chunked" in encodings: - self.chunked = True - - # Determine length of response - self.length_remaining = self._init_length(request_method) - - # If requested, preload the body. - if preload_content and not self._body: - self._body = self.read(decode_content=decode_content) - - def get_redirect_location(self): - """ - Should we redirect and where to? - - :returns: Truthy redirect location string if we got a redirect status - code and valid location. ``None`` if redirect status and no - location. ``False`` if not a redirect status code. - """ - if self.status in self.REDIRECT_STATUSES: - return self.headers.get('location') - - return False - - def release_conn(self): - if not self._pool or not self._connection: - return - - self._pool._put_conn(self._connection) - self._connection = None - - @property - def data(self): - # For backwords-compat with earlier urllib3 0.4 and earlier. - if self._body: - return self._body - - if self._fp: - return self.read(cache_content=True) - - @property - def connection(self): - return self._connection - - def isclosed(self): - return is_fp_closed(self._fp) - - def tell(self): - """ - Obtain the number of bytes pulled over the wire so far. May differ from - the amount of content returned by :meth:``HTTPResponse.read`` if bytes - are encoded on the wire (e.g, compressed). - """ - return self._fp_bytes_read - - def _init_length(self, request_method): - """ - Set initial length value for Response content if available. - """ - length = self.headers.get('content-length') - - if length is not None: - if self.chunked: - # This Response will fail with an IncompleteRead if it can't be - # received as chunked. This method falls back to attempt reading - # the response before raising an exception. - log.warning("Received response with both Content-Length and " - "Transfer-Encoding set. This is expressly forbidden " - "by RFC 7230 sec 3.3.2. Ignoring Content-Length and " - "attempting to process response as Transfer-Encoding: " - "chunked.") - return None - - try: - # RFC 7230 section 3.3.2 specifies multiple content lengths can - # be sent in a single Content-Length header - # (e.g. Content-Length: 42, 42). This line ensures the values - # are all valid ints and that as long as the `set` length is 1, - # all values are the same. Otherwise, the header is invalid. - lengths = set([int(val) for val in length.split(',')]) - if len(lengths) > 1: - raise InvalidHeader("Content-Length contained multiple " - "unmatching values (%s)" % length) - length = lengths.pop() - except ValueError: - length = None - else: - if length < 0: - length = None - - # Convert status to int for comparison - # In some cases, httplib returns a status of "_UNKNOWN" - try: - status = int(self.status) - except ValueError: - status = 0 - - # Check for responses that shouldn't include a body - if status in (204, 304) or 100 <= status < 200 or request_method == 'HEAD': - length = 0 - - return length - - def _init_decoder(self): - """ - Set-up the _decoder attribute if necessary. - """ - # Note: content-encoding value should be case-insensitive, per RFC 7230 - # Section 3.2 - content_encoding = self.headers.get('content-encoding', '').lower() - if self._decoder is None: - if content_encoding in self.CONTENT_DECODERS: - self._decoder = _get_decoder(content_encoding) - elif ',' in content_encoding: - encodings = [e.strip() for e in content_encoding.split(',') if e.strip() in self.CONTENT_DECODERS] - if len(encodings): - self._decoder = _get_decoder(content_encoding) - - def _decode(self, data, decode_content, flush_decoder): - """ - Decode the data passed in and potentially flush the decoder. - """ - try: - if decode_content and self._decoder: - data = self._decoder.decompress(data) - except (IOError, zlib.error) as e: - content_encoding = self.headers.get('content-encoding', '').lower() - raise DecodeError( - "Received response with content-encoding: %s, but " - "failed to decode it." % content_encoding, e) - - if flush_decoder and decode_content: - data += self._flush_decoder() - - return data - - def _flush_decoder(self): - """ - Flushes the decoder. Should only be called if the decoder is actually - being used. - """ - if self._decoder: - buf = self._decoder.decompress(b'') - return buf + self._decoder.flush() - - return b'' - - @contextmanager - def _error_catcher(self): - """ - Catch low-level python exceptions, instead re-raising urllib3 - variants, so that low-level exceptions are not leaked in the - high-level api. - - On exit, release the connection back to the pool. - """ - clean_exit = False - - try: - try: - yield - - except SocketTimeout: - # FIXME: Ideally we'd like to include the url in the ReadTimeoutError but - # there is yet no clean way to get at it from this context. - raise ReadTimeoutError(self._pool, None, 'Read timed out.') - - except BaseSSLError as e: - # FIXME: Is there a better way to differentiate between SSLErrors? - if 'read operation timed out' not in str(e): # Defensive: - # This shouldn't happen but just in case we're missing an edge - # case, let's avoid swallowing SSL errors. - raise - - raise ReadTimeoutError(self._pool, None, 'Read timed out.') - - except (HTTPException, SocketError) as e: - # This includes IncompleteRead. - raise ProtocolError('Connection broken: %r' % e, e) - - # If no exception is thrown, we should avoid cleaning up - # unnecessarily. - clean_exit = True - finally: - # If we didn't terminate cleanly, we need to throw away our - # connection. - if not clean_exit: - # The response may not be closed but we're not going to use it - # anymore so close it now to ensure that the connection is - # released back to the pool. - if self._original_response: - self._original_response.close() - - # Closing the response may not actually be sufficient to close - # everything, so if we have a hold of the connection close that - # too. - if self._connection: - self._connection.close() - - # If we hold the original response but it's closed now, we should - # return the connection back to the pool. - if self._original_response and self._original_response.isclosed(): - self.release_conn() - - def read(self, amt=None, decode_content=None, cache_content=False): - """ - Similar to :meth:`httplib.HTTPResponse.read`, but with two additional - parameters: ``decode_content`` and ``cache_content``. - - :param amt: - How much of the content to read. If specified, caching is skipped - because it doesn't make sense to cache partial content as the full - response. - - :param decode_content: - If True, will attempt to decode the body based on the - 'content-encoding' header. - - :param cache_content: - If True, will save the returned data such that the same result is - returned despite of the state of the underlying file object. This - is useful if you want the ``.data`` property to continue working - after having ``.read()`` the file object. (Overridden if ``amt`` is - set.) - """ - self._init_decoder() - if decode_content is None: - decode_content = self.decode_content - - if self._fp is None: - return - - flush_decoder = False - data = None - - with self._error_catcher(): - if amt is None: - # cStringIO doesn't like amt=None - data = self._fp.read() - flush_decoder = True - else: - cache_content = False - data = self._fp.read(amt) - if amt != 0 and not data: # Platform-specific: Buggy versions of Python. - # Close the connection when no data is returned - # - # This is redundant to what httplib/http.client _should_ - # already do. However, versions of python released before - # December 15, 2012 (http://bugs.python.org/issue16298) do - # not properly close the connection in all cases. There is - # no harm in redundantly calling close. - self._fp.close() - flush_decoder = True - if self.enforce_content_length and self.length_remaining not in (0, None): - # This is an edge case that httplib failed to cover due - # to concerns of backward compatibility. We're - # addressing it here to make sure IncompleteRead is - # raised during streaming, so all calls with incorrect - # Content-Length are caught. - raise IncompleteRead(self._fp_bytes_read, self.length_remaining) - - if data: - self._fp_bytes_read += len(data) - if self.length_remaining is not None: - self.length_remaining -= len(data) - - data = self._decode(data, decode_content, flush_decoder) - - if cache_content: - self._body = data - - return data - - def stream(self, amt=2**16, decode_content=None): - """ - A generator wrapper for the read() method. A call will block until - ``amt`` bytes have been read from the connection or until the - connection is closed. - - :param amt: - How much of the content to read. The generator will return up to - much data per iteration, but may return less. This is particularly - likely when using compressed data. However, the empty string will - never be returned. - - :param decode_content: - If True, will attempt to decode the body based on the - 'content-encoding' header. - """ - if self.chunked and self.supports_chunked_reads(): - for line in self.read_chunked(amt, decode_content=decode_content): - yield line - else: - while not is_fp_closed(self._fp): - data = self.read(amt=amt, decode_content=decode_content) - - if data: - yield data - - @classmethod - def from_httplib(ResponseCls, r, **response_kw): - """ - Given an :class:`httplib.HTTPResponse` instance ``r``, return a - corresponding :class:`urllib3.response.HTTPResponse` object. - - Remaining parameters are passed to the HTTPResponse constructor, along - with ``original_response=r``. - """ - headers = r.msg - - if not isinstance(headers, HTTPHeaderDict): - if PY3: # Python 3 - headers = HTTPHeaderDict(headers.items()) - else: # Python 2 - headers = HTTPHeaderDict.from_httplib(headers) - - # HTTPResponse objects in Python 3 don't have a .strict attribute - strict = getattr(r, 'strict', 0) - resp = ResponseCls(body=r, - headers=headers, - status=r.status, - version=r.version, - reason=r.reason, - strict=strict, - original_response=r, - **response_kw) - return resp - - # Backwards-compatibility methods for httplib.HTTPResponse - def getheaders(self): - return self.headers - - def getheader(self, name, default=None): - return self.headers.get(name, default) - - # Backwards compatibility for http.cookiejar - def info(self): - return self.headers - - # Overrides from io.IOBase - def close(self): - if not self.closed: - self._fp.close() - - if self._connection: - self._connection.close() - - @property - def closed(self): - if self._fp is None: - return True - elif hasattr(self._fp, 'isclosed'): - return self._fp.isclosed() - elif hasattr(self._fp, 'closed'): - return self._fp.closed - else: - return True - - def fileno(self): - if self._fp is None: - raise IOError("HTTPResponse has no file to get a fileno from") - elif hasattr(self._fp, "fileno"): - return self._fp.fileno() - else: - raise IOError("The file-like object this HTTPResponse is wrapped " - "around has no file descriptor") - - def flush(self): - if self._fp is not None and hasattr(self._fp, 'flush'): - return self._fp.flush() - - def readable(self): - # This method is required for `io` module compatibility. - return True - - def readinto(self, b): - # This method is required for `io` module compatibility. - temp = self.read(len(b)) - if len(temp) == 0: - return 0 - else: - b[:len(temp)] = temp - return len(temp) - - def supports_chunked_reads(self): - """ - Checks if the underlying file-like object looks like a - httplib.HTTPResponse object. We do this by testing for the fp - attribute. If it is present we assume it returns raw chunks as - processed by read_chunked(). - """ - return hasattr(self._fp, 'fp') - - def _update_chunk_length(self): - # First, we'll figure out length of a chunk and then - # we'll try to read it from socket. - if self.chunk_left is not None: - return - line = self._fp.fp.readline() - line = line.split(b';', 1)[0] - try: - self.chunk_left = int(line, 16) - except ValueError: - # Invalid chunked protocol response, abort. - self.close() - raise httplib.IncompleteRead(line) - - def _handle_chunk(self, amt): - returned_chunk = None - if amt is None: - chunk = self._fp._safe_read(self.chunk_left) - returned_chunk = chunk - self._fp._safe_read(2) # Toss the CRLF at the end of the chunk. - self.chunk_left = None - elif amt < self.chunk_left: - value = self._fp._safe_read(amt) - self.chunk_left = self.chunk_left - amt - returned_chunk = value - elif amt == self.chunk_left: - value = self._fp._safe_read(amt) - self._fp._safe_read(2) # Toss the CRLF at the end of the chunk. - self.chunk_left = None - returned_chunk = value - else: # amt > self.chunk_left - returned_chunk = self._fp._safe_read(self.chunk_left) - self._fp._safe_read(2) # Toss the CRLF at the end of the chunk. - self.chunk_left = None - return returned_chunk - - def read_chunked(self, amt=None, decode_content=None): - """ - Similar to :meth:`HTTPResponse.read`, but with an additional - parameter: ``decode_content``. - - :param amt: - How much of the content to read. If specified, caching is skipped - because it doesn't make sense to cache partial content as the full - response. - - :param decode_content: - If True, will attempt to decode the body based on the - 'content-encoding' header. - """ - self._init_decoder() - # FIXME: Rewrite this method and make it a class with a better structured logic. - if not self.chunked: - raise ResponseNotChunked( - "Response is not chunked. " - "Header 'transfer-encoding: chunked' is missing.") - if not self.supports_chunked_reads(): - raise BodyNotHttplibCompatible( - "Body should be httplib.HTTPResponse like. " - "It should have have an fp attribute which returns raw chunks.") - - with self._error_catcher(): - # Don't bother reading the body of a HEAD request. - if self._original_response and is_response_to_head(self._original_response): - self._original_response.close() - return - - # If a response is already read and closed - # then return immediately. - if self._fp.fp is None: - return - - while True: - self._update_chunk_length() - if self.chunk_left == 0: - break - chunk = self._handle_chunk(amt) - decoded = self._decode(chunk, decode_content=decode_content, - flush_decoder=False) - if decoded: - yield decoded - - if decode_content: - # On CPython and PyPy, we should never need to flush the - # decoder. However, on Jython we *might* need to, so - # lets defensively do it anyway. - decoded = self._flush_decoder() - if decoded: # Platform-specific: Jython. - yield decoded - - # Chunk content ends with \r\n: discard it. - while True: - line = self._fp.fp.readline() - if not line: - # Some sites may not end with '\r\n'. - break - if line == b'\r\n': - break - - # We read everything; close the "file". - if self._original_response: - self._original_response.close() - - def geturl(self): - """ - Returns the URL that was the source of this response. - If the request that generated this response redirected, this method - will return the final redirect location. - """ - if self.retries is not None and len(self.retries.history): - return self.retries.history[-1].redirect_location - else: - return self._request_url diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/__init__.py deleted file mode 100644 index 2f2770b..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/__init__.py +++ /dev/null @@ -1,54 +0,0 @@ -from __future__ import absolute_import -# For backwards compatibility, provide imports that used to be here. -from .connection import is_connection_dropped -from .request import make_headers -from .response import is_fp_closed -from .ssl_ import ( - SSLContext, - HAS_SNI, - IS_PYOPENSSL, - IS_SECURETRANSPORT, - assert_fingerprint, - resolve_cert_reqs, - resolve_ssl_version, - ssl_wrap_socket, -) -from .timeout import ( - current_time, - Timeout, -) - -from .retry import Retry -from .url import ( - get_host, - parse_url, - split_first, - Url, -) -from .wait import ( - wait_for_read, - wait_for_write -) - -__all__ = ( - 'HAS_SNI', - 'IS_PYOPENSSL', - 'IS_SECURETRANSPORT', - 'SSLContext', - 'Retry', - 'Timeout', - 'Url', - 'assert_fingerprint', - 'current_time', - 'is_connection_dropped', - 'is_fp_closed', - 'get_host', - 'parse_url', - 'make_headers', - 'resolve_cert_reqs', - 'resolve_ssl_version', - 'split_first', - 'ssl_wrap_socket', - 'wait_for_read', - 'wait_for_write' -) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/connection.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/connection.py deleted file mode 100644 index 5ad70b2..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/connection.py +++ /dev/null @@ -1,134 +0,0 @@ -from __future__ import absolute_import -import socket -from .wait import NoWayToWaitForSocketError, wait_for_read -from ..contrib import _appengine_environ - - -def is_connection_dropped(conn): # Platform-specific - """ - Returns True if the connection is dropped and should be closed. - - :param conn: - :class:`httplib.HTTPConnection` object. - - Note: For platforms like AppEngine, this will always return ``False`` to - let the platform handle connection recycling transparently for us. - """ - sock = getattr(conn, 'sock', False) - if sock is False: # Platform-specific: AppEngine - return False - if sock is None: # Connection already closed (such as by httplib). - return True - try: - # Returns True if readable, which here means it's been dropped - return wait_for_read(sock, timeout=0.0) - except NoWayToWaitForSocketError: # Platform-specific: AppEngine - return False - - -# This function is copied from socket.py in the Python 2.7 standard -# library test suite. Added to its signature is only `socket_options`. -# One additional modification is that we avoid binding to IPv6 servers -# discovered in DNS if the system doesn't have IPv6 functionality. -def create_connection(address, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, - source_address=None, socket_options=None): - """Connect to *address* and return the socket object. - - Convenience function. Connect to *address* (a 2-tuple ``(host, - port)``) and return the socket object. Passing the optional - *timeout* parameter will set the timeout on the socket instance - before attempting to connect. If no *timeout* is supplied, the - global default timeout setting returned by :func:`getdefaulttimeout` - is used. If *source_address* is set it must be a tuple of (host, port) - for the socket to bind as a source address before making the connection. - An host of '' or port 0 tells the OS to use the default. - """ - - host, port = address - if host.startswith('['): - host = host.strip('[]') - err = None - - # Using the value from allowed_gai_family() in the context of getaddrinfo lets - # us select whether to work with IPv4 DNS records, IPv6 records, or both. - # The original create_connection function always returns all records. - family = allowed_gai_family() - - for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): - af, socktype, proto, canonname, sa = res - sock = None - try: - sock = socket.socket(af, socktype, proto) - - # If provided, set socket level options before connecting. - _set_socket_options(sock, socket_options) - - if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT: - sock.settimeout(timeout) - if source_address: - sock.bind(source_address) - sock.connect(sa) - return sock - - except socket.error as e: - err = e - if sock is not None: - sock.close() - sock = None - - if err is not None: - raise err - - raise socket.error("getaddrinfo returns an empty list") - - -def _set_socket_options(sock, options): - if options is None: - return - - for opt in options: - sock.setsockopt(*opt) - - -def allowed_gai_family(): - """This function is designed to work in the context of - getaddrinfo, where family=socket.AF_UNSPEC is the default and - will perform a DNS search for both IPv6 and IPv4 records.""" - - family = socket.AF_INET - if HAS_IPV6: - family = socket.AF_UNSPEC - return family - - -def _has_ipv6(host): - """ Returns True if the system can bind an IPv6 address. """ - sock = None - has_ipv6 = False - - # App Engine doesn't support IPV6 sockets and actually has a quota on the - # number of sockets that can be used, so just early out here instead of - # creating a socket needlessly. - # See https://github.com/urllib3/urllib3/issues/1446 - if _appengine_environ.is_appengine_sandbox(): - return False - - if socket.has_ipv6: - # has_ipv6 returns true if cPython was compiled with IPv6 support. - # It does not tell us if the system has IPv6 support enabled. To - # determine that we must bind to an IPv6 address. - # https://github.com/shazow/urllib3/pull/611 - # https://bugs.python.org/issue658327 - try: - sock = socket.socket(socket.AF_INET6) - sock.bind((host, 0)) - has_ipv6 = True - except Exception: - pass - - if sock: - sock.close() - return has_ipv6 - - -HAS_IPV6 = _has_ipv6('::1') diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/queue.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/queue.py deleted file mode 100644 index d3d379a..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/queue.py +++ /dev/null @@ -1,21 +0,0 @@ -import collections -from ..packages import six -from ..packages.six.moves import queue - -if six.PY2: - # Queue is imported for side effects on MS Windows. See issue #229. - import Queue as _unused_module_Queue # noqa: F401 - - -class LifoQueue(queue.Queue): - def _init(self, _): - self.queue = collections.deque() - - def _qsize(self, len=len): - return len(self.queue) - - def _put(self, item): - self.queue.append(item) - - def _get(self): - return self.queue.pop() diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/request.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/request.py deleted file mode 100644 index 3ddfcd5..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/request.py +++ /dev/null @@ -1,118 +0,0 @@ -from __future__ import absolute_import -from base64 import b64encode - -from ..packages.six import b, integer_types -from ..exceptions import UnrewindableBodyError - -ACCEPT_ENCODING = 'gzip,deflate' -_FAILEDTELL = object() - - -def make_headers(keep_alive=None, accept_encoding=None, user_agent=None, - basic_auth=None, proxy_basic_auth=None, disable_cache=None): - """ - Shortcuts for generating request headers. - - :param keep_alive: - If ``True``, adds 'connection: keep-alive' header. - - :param accept_encoding: - Can be a boolean, list, or string. - ``True`` translates to 'gzip,deflate'. - List will get joined by comma. - String will be used as provided. - - :param user_agent: - String representing the user-agent you want, such as - "python-urllib3/0.6" - - :param basic_auth: - Colon-separated username:password string for 'authorization: basic ...' - auth header. - - :param proxy_basic_auth: - Colon-separated username:password string for 'proxy-authorization: basic ...' - auth header. - - :param disable_cache: - If ``True``, adds 'cache-control: no-cache' header. - - Example:: - - >>> make_headers(keep_alive=True, user_agent="Batman/1.0") - {'connection': 'keep-alive', 'user-agent': 'Batman/1.0'} - >>> make_headers(accept_encoding=True) - {'accept-encoding': 'gzip,deflate'} - """ - headers = {} - if accept_encoding: - if isinstance(accept_encoding, str): - pass - elif isinstance(accept_encoding, list): - accept_encoding = ','.join(accept_encoding) - else: - accept_encoding = ACCEPT_ENCODING - headers['accept-encoding'] = accept_encoding - - if user_agent: - headers['user-agent'] = user_agent - - if keep_alive: - headers['connection'] = 'keep-alive' - - if basic_auth: - headers['authorization'] = 'Basic ' + \ - b64encode(b(basic_auth)).decode('utf-8') - - if proxy_basic_auth: - headers['proxy-authorization'] = 'Basic ' + \ - b64encode(b(proxy_basic_auth)).decode('utf-8') - - if disable_cache: - headers['cache-control'] = 'no-cache' - - return headers - - -def set_file_position(body, pos): - """ - If a position is provided, move file to that point. - Otherwise, we'll attempt to record a position for future use. - """ - if pos is not None: - rewind_body(body, pos) - elif getattr(body, 'tell', None) is not None: - try: - pos = body.tell() - except (IOError, OSError): - # This differentiates from None, allowing us to catch - # a failed `tell()` later when trying to rewind the body. - pos = _FAILEDTELL - - return pos - - -def rewind_body(body, body_pos): - """ - Attempt to rewind body to a certain position. - Primarily used for request redirects and retries. - - :param body: - File-like object that supports seek. - - :param int pos: - Position to seek to in file. - """ - body_seek = getattr(body, 'seek', None) - if body_seek is not None and isinstance(body_pos, integer_types): - try: - body_seek(body_pos) - except (IOError, OSError): - raise UnrewindableBodyError("An error occurred when rewinding request " - "body for redirect/retry.") - elif body_pos is _FAILEDTELL: - raise UnrewindableBodyError("Unable to record file position for rewinding " - "request body during a redirect/retry.") - else: - raise ValueError("body_pos must be of type integer, " - "instead it was %s." % type(body_pos)) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/response.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/response.py deleted file mode 100644 index 3d54864..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/response.py +++ /dev/null @@ -1,87 +0,0 @@ -from __future__ import absolute_import -from ..packages.six.moves import http_client as httplib - -from ..exceptions import HeaderParsingError - - -def is_fp_closed(obj): - """ - Checks whether a given file-like object is closed. - - :param obj: - The file-like object to check. - """ - - try: - # Check `isclosed()` first, in case Python3 doesn't set `closed`. - # GH Issue #928 - return obj.isclosed() - except AttributeError: - pass - - try: - # Check via the official file-like-object way. - return obj.closed - except AttributeError: - pass - - try: - # Check if the object is a container for another file-like object that - # gets released on exhaustion (e.g. HTTPResponse). - return obj.fp is None - except AttributeError: - pass - - raise ValueError("Unable to determine whether fp is closed.") - - -def assert_header_parsing(headers): - """ - Asserts whether all headers have been successfully parsed. - Extracts encountered errors from the result of parsing headers. - - Only works on Python 3. - - :param headers: Headers to verify. - :type headers: `httplib.HTTPMessage`. - - :raises urllib3.exceptions.HeaderParsingError: - If parsing errors are found. - """ - - # This will fail silently if we pass in the wrong kind of parameter. - # To make debugging easier add an explicit check. - if not isinstance(headers, httplib.HTTPMessage): - raise TypeError('expected httplib.Message, got {0}.'.format( - type(headers))) - - defects = getattr(headers, 'defects', None) - get_payload = getattr(headers, 'get_payload', None) - - unparsed_data = None - if get_payload: - # get_payload is actually email.message.Message.get_payload; - # we're only interested in the result if it's not a multipart message - if not headers.is_multipart(): - payload = get_payload() - - if isinstance(payload, (bytes, str)): - unparsed_data = payload - - if defects or unparsed_data: - raise HeaderParsingError(defects=defects, unparsed_data=unparsed_data) - - -def is_response_to_head(response): - """ - Checks whether the request of a response has been a HEAD-request. - Handles the quirks of AppEngine. - - :param conn: - :type conn: :class:`httplib.HTTPResponse` - """ - # FIXME: Can we do this somehow without accessing private httplib _method? - method = response._method - if isinstance(method, int): # Platform-specific: Appengine - return method == 3 - return method.upper() == 'HEAD' diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/retry.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/retry.py deleted file mode 100644 index e7d0abd..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/retry.py +++ /dev/null @@ -1,411 +0,0 @@ -from __future__ import absolute_import -import time -import logging -from collections import namedtuple -from itertools import takewhile -import email -import re - -from ..exceptions import ( - ConnectTimeoutError, - MaxRetryError, - ProtocolError, - ReadTimeoutError, - ResponseError, - InvalidHeader, -) -from ..packages import six - - -log = logging.getLogger(__name__) - - -# Data structure for representing the metadata of requests that result in a retry. -RequestHistory = namedtuple('RequestHistory', ["method", "url", "error", - "status", "redirect_location"]) - - -class Retry(object): - """ Retry configuration. - - Each retry attempt will create a new Retry object with updated values, so - they can be safely reused. - - Retries can be defined as a default for a pool:: - - retries = Retry(connect=5, read=2, redirect=5) - http = PoolManager(retries=retries) - response = http.request('GET', 'http://example.com/') - - Or per-request (which overrides the default for the pool):: - - response = http.request('GET', 'http://example.com/', retries=Retry(10)) - - Retries can be disabled by passing ``False``:: - - response = http.request('GET', 'http://example.com/', retries=False) - - Errors will be wrapped in :class:`~urllib3.exceptions.MaxRetryError` unless - retries are disabled, in which case the causing exception will be raised. - - :param int total: - Total number of retries to allow. Takes precedence over other counts. - - Set to ``None`` to remove this constraint and fall back on other - counts. It's a good idea to set this to some sensibly-high value to - account for unexpected edge cases and avoid infinite retry loops. - - Set to ``0`` to fail on the first retry. - - Set to ``False`` to disable and imply ``raise_on_redirect=False``. - - :param int connect: - How many connection-related errors to retry on. - - These are errors raised before the request is sent to the remote server, - which we assume has not triggered the server to process the request. - - Set to ``0`` to fail on the first retry of this type. - - :param int read: - How many times to retry on read errors. - - These errors are raised after the request was sent to the server, so the - request may have side-effects. - - Set to ``0`` to fail on the first retry of this type. - - :param int redirect: - How many redirects to perform. Limit this to avoid infinite redirect - loops. - - A redirect is a HTTP response with a status code 301, 302, 303, 307 or - 308. - - Set to ``0`` to fail on the first retry of this type. - - Set to ``False`` to disable and imply ``raise_on_redirect=False``. - - :param int status: - How many times to retry on bad status codes. - - These are retries made on responses, where status code matches - ``status_forcelist``. - - Set to ``0`` to fail on the first retry of this type. - - :param iterable method_whitelist: - Set of uppercased HTTP method verbs that we should retry on. - - By default, we only retry on methods which are considered to be - idempotent (multiple requests with the same parameters end with the - same state). See :attr:`Retry.DEFAULT_METHOD_WHITELIST`. - - Set to a ``False`` value to retry on any verb. - - :param iterable status_forcelist: - A set of integer HTTP status codes that we should force a retry on. - A retry is initiated if the request method is in ``method_whitelist`` - and the response status code is in ``status_forcelist``. - - By default, this is disabled with ``None``. - - :param float backoff_factor: - A backoff factor to apply between attempts after the second try - (most errors are resolved immediately by a second try without a - delay). urllib3 will sleep for:: - - {backoff factor} * (2 ** ({number of total retries} - 1)) - - seconds. If the backoff_factor is 0.1, then :func:`.sleep` will sleep - for [0.0s, 0.2s, 0.4s, ...] between retries. It will never be longer - than :attr:`Retry.BACKOFF_MAX`. - - By default, backoff is disabled (set to 0). - - :param bool raise_on_redirect: Whether, if the number of redirects is - exhausted, to raise a MaxRetryError, or to return a response with a - response code in the 3xx range. - - :param bool raise_on_status: Similar meaning to ``raise_on_redirect``: - whether we should raise an exception, or return a response, - if status falls in ``status_forcelist`` range and retries have - been exhausted. - - :param tuple history: The history of the request encountered during - each call to :meth:`~Retry.increment`. The list is in the order - the requests occurred. Each list item is of class :class:`RequestHistory`. - - :param bool respect_retry_after_header: - Whether to respect Retry-After header on status codes defined as - :attr:`Retry.RETRY_AFTER_STATUS_CODES` or not. - - :param iterable remove_headers_on_redirect: - Sequence of headers to remove from the request when a response - indicating a redirect is returned before firing off the redirected - request. - """ - - DEFAULT_METHOD_WHITELIST = frozenset([ - 'HEAD', 'GET', 'PUT', 'DELETE', 'OPTIONS', 'TRACE']) - - RETRY_AFTER_STATUS_CODES = frozenset([413, 429, 503]) - - DEFAULT_REDIRECT_HEADERS_BLACKLIST = frozenset(['Authorization']) - - #: Maximum backoff time. - BACKOFF_MAX = 120 - - def __init__(self, total=10, connect=None, read=None, redirect=None, status=None, - method_whitelist=DEFAULT_METHOD_WHITELIST, status_forcelist=None, - backoff_factor=0, raise_on_redirect=True, raise_on_status=True, - history=None, respect_retry_after_header=True, - remove_headers_on_redirect=DEFAULT_REDIRECT_HEADERS_BLACKLIST): - - self.total = total - self.connect = connect - self.read = read - self.status = status - - if redirect is False or total is False: - redirect = 0 - raise_on_redirect = False - - self.redirect = redirect - self.status_forcelist = status_forcelist or set() - self.method_whitelist = method_whitelist - self.backoff_factor = backoff_factor - self.raise_on_redirect = raise_on_redirect - self.raise_on_status = raise_on_status - self.history = history or tuple() - self.respect_retry_after_header = respect_retry_after_header - self.remove_headers_on_redirect = remove_headers_on_redirect - - def new(self, **kw): - params = dict( - total=self.total, - connect=self.connect, read=self.read, redirect=self.redirect, status=self.status, - method_whitelist=self.method_whitelist, - status_forcelist=self.status_forcelist, - backoff_factor=self.backoff_factor, - raise_on_redirect=self.raise_on_redirect, - raise_on_status=self.raise_on_status, - history=self.history, - remove_headers_on_redirect=self.remove_headers_on_redirect - ) - params.update(kw) - return type(self)(**params) - - @classmethod - def from_int(cls, retries, redirect=True, default=None): - """ Backwards-compatibility for the old retries format.""" - if retries is None: - retries = default if default is not None else cls.DEFAULT - - if isinstance(retries, Retry): - return retries - - redirect = bool(redirect) and None - new_retries = cls(retries, redirect=redirect) - log.debug("Converted retries value: %r -> %r", retries, new_retries) - return new_retries - - def get_backoff_time(self): - """ Formula for computing the current backoff - - :rtype: float - """ - # We want to consider only the last consecutive errors sequence (Ignore redirects). - consecutive_errors_len = len(list(takewhile(lambda x: x.redirect_location is None, - reversed(self.history)))) - if consecutive_errors_len <= 1: - return 0 - - backoff_value = self.backoff_factor * (2 ** (consecutive_errors_len - 1)) - return min(self.BACKOFF_MAX, backoff_value) - - def parse_retry_after(self, retry_after): - # Whitespace: https://tools.ietf.org/html/rfc7230#section-3.2.4 - if re.match(r"^\s*[0-9]+\s*$", retry_after): - seconds = int(retry_after) - else: - retry_date_tuple = email.utils.parsedate(retry_after) - if retry_date_tuple is None: - raise InvalidHeader("Invalid Retry-After header: %s" % retry_after) - retry_date = time.mktime(retry_date_tuple) - seconds = retry_date - time.time() - - if seconds < 0: - seconds = 0 - - return seconds - - def get_retry_after(self, response): - """ Get the value of Retry-After in seconds. """ - - retry_after = response.getheader("Retry-After") - - if retry_after is None: - return None - - return self.parse_retry_after(retry_after) - - def sleep_for_retry(self, response=None): - retry_after = self.get_retry_after(response) - if retry_after: - time.sleep(retry_after) - return True - - return False - - def _sleep_backoff(self): - backoff = self.get_backoff_time() - if backoff <= 0: - return - time.sleep(backoff) - - def sleep(self, response=None): - """ Sleep between retry attempts. - - This method will respect a server's ``Retry-After`` response header - and sleep the duration of the time requested. If that is not present, it - will use an exponential backoff. By default, the backoff factor is 0 and - this method will return immediately. - """ - - if response: - slept = self.sleep_for_retry(response) - if slept: - return - - self._sleep_backoff() - - def _is_connection_error(self, err): - """ Errors when we're fairly sure that the server did not receive the - request, so it should be safe to retry. - """ - return isinstance(err, ConnectTimeoutError) - - def _is_read_error(self, err): - """ Errors that occur after the request has been started, so we should - assume that the server began processing it. - """ - return isinstance(err, (ReadTimeoutError, ProtocolError)) - - def _is_method_retryable(self, method): - """ Checks if a given HTTP method should be retried upon, depending if - it is included on the method whitelist. - """ - if self.method_whitelist and method.upper() not in self.method_whitelist: - return False - - return True - - def is_retry(self, method, status_code, has_retry_after=False): - """ Is this method/status code retryable? (Based on whitelists and control - variables such as the number of total retries to allow, whether to - respect the Retry-After header, whether this header is present, and - whether the returned status code is on the list of status codes to - be retried upon on the presence of the aforementioned header) - """ - if not self._is_method_retryable(method): - return False - - if self.status_forcelist and status_code in self.status_forcelist: - return True - - return (self.total and self.respect_retry_after_header and - has_retry_after and (status_code in self.RETRY_AFTER_STATUS_CODES)) - - def is_exhausted(self): - """ Are we out of retries? """ - retry_counts = (self.total, self.connect, self.read, self.redirect, self.status) - retry_counts = list(filter(None, retry_counts)) - if not retry_counts: - return False - - return min(retry_counts) < 0 - - def increment(self, method=None, url=None, response=None, error=None, - _pool=None, _stacktrace=None): - """ Return a new Retry object with incremented retry counters. - - :param response: A response object, or None, if the server did not - return a response. - :type response: :class:`~urllib3.response.HTTPResponse` - :param Exception error: An error encountered during the request, or - None if the response was received successfully. - - :return: A new ``Retry`` object. - """ - if self.total is False and error: - # Disabled, indicate to re-raise the error. - raise six.reraise(type(error), error, _stacktrace) - - total = self.total - if total is not None: - total -= 1 - - connect = self.connect - read = self.read - redirect = self.redirect - status_count = self.status - cause = 'unknown' - status = None - redirect_location = None - - if error and self._is_connection_error(error): - # Connect retry? - if connect is False: - raise six.reraise(type(error), error, _stacktrace) - elif connect is not None: - connect -= 1 - - elif error and self._is_read_error(error): - # Read retry? - if read is False or not self._is_method_retryable(method): - raise six.reraise(type(error), error, _stacktrace) - elif read is not None: - read -= 1 - - elif response and response.get_redirect_location(): - # Redirect retry? - if redirect is not None: - redirect -= 1 - cause = 'too many redirects' - redirect_location = response.get_redirect_location() - status = response.status - - else: - # Incrementing because of a server error like a 500 in - # status_forcelist and a the given method is in the whitelist - cause = ResponseError.GENERIC_ERROR - if response and response.status: - if status_count is not None: - status_count -= 1 - cause = ResponseError.SPECIFIC_ERROR.format( - status_code=response.status) - status = response.status - - history = self.history + (RequestHistory(method, url, error, status, redirect_location),) - - new_retry = self.new( - total=total, - connect=connect, read=read, redirect=redirect, status=status_count, - history=history) - - if new_retry.is_exhausted(): - raise MaxRetryError(_pool, url, error or ResponseError(cause)) - - log.debug("Incremented Retry for (url='%s'): %r", url, new_retry) - - return new_retry - - def __repr__(self): - return ('{cls.__name__}(total={self.total}, connect={self.connect}, ' - 'read={self.read}, redirect={self.redirect}, status={self.status})').format( - cls=type(self), self=self) - - -# For backwards compatibility (equivalent to pre-v1.9): -Retry.DEFAULT = Retry(3) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/ssl_.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/ssl_.py deleted file mode 100644 index dfc553f..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/ssl_.py +++ /dev/null @@ -1,381 +0,0 @@ -from __future__ import absolute_import -import errno -import warnings -import hmac -import socket - -from binascii import hexlify, unhexlify -from hashlib import md5, sha1, sha256 - -from ..exceptions import SSLError, InsecurePlatformWarning, SNIMissingWarning -from ..packages import six - - -SSLContext = None -HAS_SNI = False -IS_PYOPENSSL = False -IS_SECURETRANSPORT = False - -# Maps the length of a digest to a possible hash function producing this digest -HASHFUNC_MAP = { - 32: md5, - 40: sha1, - 64: sha256, -} - - -def _const_compare_digest_backport(a, b): - """ - Compare two digests of equal length in constant time. - - The digests must be of type str/bytes. - Returns True if the digests match, and False otherwise. - """ - result = abs(len(a) - len(b)) - for l, r in zip(bytearray(a), bytearray(b)): - result |= l ^ r - return result == 0 - - -_const_compare_digest = getattr(hmac, 'compare_digest', - _const_compare_digest_backport) - - -try: # Test for SSL features - import ssl - from ssl import wrap_socket, CERT_NONE, PROTOCOL_SSLv23 - from ssl import HAS_SNI # Has SNI? -except ImportError: - pass - - -try: - from ssl import OP_NO_SSLv2, OP_NO_SSLv3, OP_NO_COMPRESSION -except ImportError: - OP_NO_SSLv2, OP_NO_SSLv3 = 0x1000000, 0x2000000 - OP_NO_COMPRESSION = 0x20000 - - -# Python 2.7 doesn't have inet_pton on non-Linux so we fallback on inet_aton in -# those cases. This means that we can only detect IPv4 addresses in this case. -if hasattr(socket, 'inet_pton'): - inet_pton = socket.inet_pton -else: - # Maybe we can use ipaddress if the user has urllib3[secure]? - try: - from pip._vendor import ipaddress - - def inet_pton(_, host): - if isinstance(host, bytes): - host = host.decode('ascii') - return ipaddress.ip_address(host) - - except ImportError: # Platform-specific: Non-Linux - def inet_pton(_, host): - return socket.inet_aton(host) - - -# A secure default. -# Sources for more information on TLS ciphers: -# -# - https://wiki.mozilla.org/Security/Server_Side_TLS -# - https://www.ssllabs.com/projects/best-practices/index.html -# - https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ -# -# The general intent is: -# - Prefer TLS 1.3 cipher suites -# - prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE), -# - prefer ECDHE over DHE for better performance, -# - prefer any AES-GCM and ChaCha20 over any AES-CBC for better performance and -# security, -# - prefer AES-GCM over ChaCha20 because hardware-accelerated AES is common, -# - disable NULL authentication, MD5 MACs and DSS for security reasons. -DEFAULT_CIPHERS = ':'.join([ - 'TLS13-AES-256-GCM-SHA384', - 'TLS13-CHACHA20-POLY1305-SHA256', - 'TLS13-AES-128-GCM-SHA256', - 'ECDH+AESGCM', - 'ECDH+CHACHA20', - 'DH+AESGCM', - 'DH+CHACHA20', - 'ECDH+AES256', - 'DH+AES256', - 'ECDH+AES128', - 'DH+AES', - 'RSA+AESGCM', - 'RSA+AES', - '!aNULL', - '!eNULL', - '!MD5', -]) - -try: - from ssl import SSLContext # Modern SSL? -except ImportError: - import sys - - class SSLContext(object): # Platform-specific: Python 2 - def __init__(self, protocol_version): - self.protocol = protocol_version - # Use default values from a real SSLContext - self.check_hostname = False - self.verify_mode = ssl.CERT_NONE - self.ca_certs = None - self.options = 0 - self.certfile = None - self.keyfile = None - self.ciphers = None - - def load_cert_chain(self, certfile, keyfile): - self.certfile = certfile - self.keyfile = keyfile - - def load_verify_locations(self, cafile=None, capath=None): - self.ca_certs = cafile - - if capath is not None: - raise SSLError("CA directories not supported in older Pythons") - - def set_ciphers(self, cipher_suite): - self.ciphers = cipher_suite - - def wrap_socket(self, socket, server_hostname=None, server_side=False): - warnings.warn( - 'A true SSLContext object is not available. This prevents ' - 'urllib3 from configuring SSL appropriately and may cause ' - 'certain SSL connections to fail. You can upgrade to a newer ' - 'version of Python to solve this. For more information, see ' - 'https://urllib3.readthedocs.io/en/latest/advanced-usage.html' - '#ssl-warnings', - InsecurePlatformWarning - ) - kwargs = { - 'keyfile': self.keyfile, - 'certfile': self.certfile, - 'ca_certs': self.ca_certs, - 'cert_reqs': self.verify_mode, - 'ssl_version': self.protocol, - 'server_side': server_side, - } - return wrap_socket(socket, ciphers=self.ciphers, **kwargs) - - -def assert_fingerprint(cert, fingerprint): - """ - Checks if given fingerprint matches the supplied certificate. - - :param cert: - Certificate as bytes object. - :param fingerprint: - Fingerprint as string of hexdigits, can be interspersed by colons. - """ - - fingerprint = fingerprint.replace(':', '').lower() - digest_length = len(fingerprint) - hashfunc = HASHFUNC_MAP.get(digest_length) - if not hashfunc: - raise SSLError( - 'Fingerprint of invalid length: {0}'.format(fingerprint)) - - # We need encode() here for py32; works on py2 and p33. - fingerprint_bytes = unhexlify(fingerprint.encode()) - - cert_digest = hashfunc(cert).digest() - - if not _const_compare_digest(cert_digest, fingerprint_bytes): - raise SSLError('Fingerprints did not match. Expected "{0}", got "{1}".' - .format(fingerprint, hexlify(cert_digest))) - - -def resolve_cert_reqs(candidate): - """ - Resolves the argument to a numeric constant, which can be passed to - the wrap_socket function/method from the ssl module. - Defaults to :data:`ssl.CERT_NONE`. - If given a string it is assumed to be the name of the constant in the - :mod:`ssl` module or its abbreviation. - (So you can specify `REQUIRED` instead of `CERT_REQUIRED`. - If it's neither `None` nor a string we assume it is already the numeric - constant which can directly be passed to wrap_socket. - """ - if candidate is None: - return CERT_NONE - - if isinstance(candidate, str): - res = getattr(ssl, candidate, None) - if res is None: - res = getattr(ssl, 'CERT_' + candidate) - return res - - return candidate - - -def resolve_ssl_version(candidate): - """ - like resolve_cert_reqs - """ - if candidate is None: - return PROTOCOL_SSLv23 - - if isinstance(candidate, str): - res = getattr(ssl, candidate, None) - if res is None: - res = getattr(ssl, 'PROTOCOL_' + candidate) - return res - - return candidate - - -def create_urllib3_context(ssl_version=None, cert_reqs=None, - options=None, ciphers=None): - """All arguments have the same meaning as ``ssl_wrap_socket``. - - By default, this function does a lot of the same work that - ``ssl.create_default_context`` does on Python 3.4+. It: - - - Disables SSLv2, SSLv3, and compression - - Sets a restricted set of server ciphers - - If you wish to enable SSLv3, you can do:: - - from pip._vendor.urllib3.util import ssl_ - context = ssl_.create_urllib3_context() - context.options &= ~ssl_.OP_NO_SSLv3 - - You can do the same to enable compression (substituting ``COMPRESSION`` - for ``SSLv3`` in the last line above). - - :param ssl_version: - The desired protocol version to use. This will default to - PROTOCOL_SSLv23 which will negotiate the highest protocol that both - the server and your installation of OpenSSL support. - :param cert_reqs: - Whether to require the certificate verification. This defaults to - ``ssl.CERT_REQUIRED``. - :param options: - Specific OpenSSL options. These default to ``ssl.OP_NO_SSLv2``, - ``ssl.OP_NO_SSLv3``, ``ssl.OP_NO_COMPRESSION``. - :param ciphers: - Which cipher suites to allow the server to select. - :returns: - Constructed SSLContext object with specified options - :rtype: SSLContext - """ - context = SSLContext(ssl_version or ssl.PROTOCOL_SSLv23) - - context.set_ciphers(ciphers or DEFAULT_CIPHERS) - - # Setting the default here, as we may have no ssl module on import - cert_reqs = ssl.CERT_REQUIRED if cert_reqs is None else cert_reqs - - if options is None: - options = 0 - # SSLv2 is easily broken and is considered harmful and dangerous - options |= OP_NO_SSLv2 - # SSLv3 has several problems and is now dangerous - options |= OP_NO_SSLv3 - # Disable compression to prevent CRIME attacks for OpenSSL 1.0+ - # (issue #309) - options |= OP_NO_COMPRESSION - - context.options |= options - - context.verify_mode = cert_reqs - if getattr(context, 'check_hostname', None) is not None: # Platform-specific: Python 3.2 - # We do our own verification, including fingerprints and alternative - # hostnames. So disable it here - context.check_hostname = False - return context - - -def ssl_wrap_socket(sock, keyfile=None, certfile=None, cert_reqs=None, - ca_certs=None, server_hostname=None, - ssl_version=None, ciphers=None, ssl_context=None, - ca_cert_dir=None): - """ - All arguments except for server_hostname, ssl_context, and ca_cert_dir have - the same meaning as they do when using :func:`ssl.wrap_socket`. - - :param server_hostname: - When SNI is supported, the expected hostname of the certificate - :param ssl_context: - A pre-made :class:`SSLContext` object. If none is provided, one will - be created using :func:`create_urllib3_context`. - :param ciphers: - A string of ciphers we wish the client to support. - :param ca_cert_dir: - A directory containing CA certificates in multiple separate files, as - supported by OpenSSL's -CApath flag or the capath argument to - SSLContext.load_verify_locations(). - """ - context = ssl_context - if context is None: - # Note: This branch of code and all the variables in it are no longer - # used by urllib3 itself. We should consider deprecating and removing - # this code. - context = create_urllib3_context(ssl_version, cert_reqs, - ciphers=ciphers) - - if ca_certs or ca_cert_dir: - try: - context.load_verify_locations(ca_certs, ca_cert_dir) - except IOError as e: # Platform-specific: Python 2.7 - raise SSLError(e) - # Py33 raises FileNotFoundError which subclasses OSError - # These are not equivalent unless we check the errno attribute - except OSError as e: # Platform-specific: Python 3.3 and beyond - if e.errno == errno.ENOENT: - raise SSLError(e) - raise - elif getattr(context, 'load_default_certs', None) is not None: - # try to load OS default certs; works well on Windows (require Python3.4+) - context.load_default_certs() - - if certfile: - context.load_cert_chain(certfile, keyfile) - - # If we detect server_hostname is an IP address then the SNI - # extension should not be used according to RFC3546 Section 3.1 - # We shouldn't warn the user if SNI isn't available but we would - # not be using SNI anyways due to IP address for server_hostname. - if ((server_hostname is not None and not is_ipaddress(server_hostname)) - or IS_SECURETRANSPORT): - if HAS_SNI and server_hostname is not None: - return context.wrap_socket(sock, server_hostname=server_hostname) - - warnings.warn( - 'An HTTPS request has been made, but the SNI (Server Name ' - 'Indication) extension to TLS is not available on this platform. ' - 'This may cause the server to present an incorrect TLS ' - 'certificate, which can cause validation failures. You can upgrade to ' - 'a newer version of Python to solve this. For more information, see ' - 'https://urllib3.readthedocs.io/en/latest/advanced-usage.html' - '#ssl-warnings', - SNIMissingWarning - ) - - return context.wrap_socket(sock) - - -def is_ipaddress(hostname): - """Detects whether the hostname given is an IP address. - - :param str hostname: Hostname to examine. - :return: True if the hostname is an IP address, False otherwise. - """ - if six.PY3 and isinstance(hostname, bytes): - # IDN A-label bytes are ASCII compatible. - hostname = hostname.decode('ascii') - - families = [socket.AF_INET] - if hasattr(socket, 'AF_INET6'): - families.append(socket.AF_INET6) - - for af in families: - try: - inet_pton(af, hostname) - except (socket.error, ValueError, OSError): - pass - else: - return True - return False diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/timeout.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/timeout.py deleted file mode 100644 index cec817e..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/timeout.py +++ /dev/null @@ -1,242 +0,0 @@ -from __future__ import absolute_import -# The default socket timeout, used by httplib to indicate that no timeout was -# specified by the user -from socket import _GLOBAL_DEFAULT_TIMEOUT -import time - -from ..exceptions import TimeoutStateError - -# A sentinel value to indicate that no timeout was specified by the user in -# urllib3 -_Default = object() - - -# Use time.monotonic if available. -current_time = getattr(time, "monotonic", time.time) - - -class Timeout(object): - """ Timeout configuration. - - Timeouts can be defined as a default for a pool:: - - timeout = Timeout(connect=2.0, read=7.0) - http = PoolManager(timeout=timeout) - response = http.request('GET', 'http://example.com/') - - Or per-request (which overrides the default for the pool):: - - response = http.request('GET', 'http://example.com/', timeout=Timeout(10)) - - Timeouts can be disabled by setting all the parameters to ``None``:: - - no_timeout = Timeout(connect=None, read=None) - response = http.request('GET', 'http://example.com/, timeout=no_timeout) - - - :param total: - This combines the connect and read timeouts into one; the read timeout - will be set to the time leftover from the connect attempt. In the - event that both a connect timeout and a total are specified, or a read - timeout and a total are specified, the shorter timeout will be applied. - - Defaults to None. - - :type total: integer, float, or None - - :param connect: - The maximum amount of time to wait for a connection attempt to a server - to succeed. Omitting the parameter will default the connect timeout to - the system default, probably `the global default timeout in socket.py - <http://hg.python.org/cpython/file/603b4d593758/Lib/socket.py#l535>`_. - None will set an infinite timeout for connection attempts. - - :type connect: integer, float, or None - - :param read: - The maximum amount of time to wait between consecutive - read operations for a response from the server. Omitting - the parameter will default the read timeout to the system - default, probably `the global default timeout in socket.py - <http://hg.python.org/cpython/file/603b4d593758/Lib/socket.py#l535>`_. - None will set an infinite timeout. - - :type read: integer, float, or None - - .. note:: - - Many factors can affect the total amount of time for urllib3 to return - an HTTP response. - - For example, Python's DNS resolver does not obey the timeout specified - on the socket. Other factors that can affect total request time include - high CPU load, high swap, the program running at a low priority level, - or other behaviors. - - In addition, the read and total timeouts only measure the time between - read operations on the socket connecting the client and the server, - not the total amount of time for the request to return a complete - response. For most requests, the timeout is raised because the server - has not sent the first byte in the specified time. This is not always - the case; if a server streams one byte every fifteen seconds, a timeout - of 20 seconds will not trigger, even though the request will take - several minutes to complete. - - If your goal is to cut off any request after a set amount of wall clock - time, consider having a second "watcher" thread to cut off a slow - request. - """ - - #: A sentinel object representing the default timeout value - DEFAULT_TIMEOUT = _GLOBAL_DEFAULT_TIMEOUT - - def __init__(self, total=None, connect=_Default, read=_Default): - self._connect = self._validate_timeout(connect, 'connect') - self._read = self._validate_timeout(read, 'read') - self.total = self._validate_timeout(total, 'total') - self._start_connect = None - - def __str__(self): - return '%s(connect=%r, read=%r, total=%r)' % ( - type(self).__name__, self._connect, self._read, self.total) - - @classmethod - def _validate_timeout(cls, value, name): - """ Check that a timeout attribute is valid. - - :param value: The timeout value to validate - :param name: The name of the timeout attribute to validate. This is - used to specify in error messages. - :return: The validated and casted version of the given value. - :raises ValueError: If it is a numeric value less than or equal to - zero, or the type is not an integer, float, or None. - """ - if value is _Default: - return cls.DEFAULT_TIMEOUT - - if value is None or value is cls.DEFAULT_TIMEOUT: - return value - - if isinstance(value, bool): - raise ValueError("Timeout cannot be a boolean value. It must " - "be an int, float or None.") - try: - float(value) - except (TypeError, ValueError): - raise ValueError("Timeout value %s was %s, but it must be an " - "int, float or None." % (name, value)) - - try: - if value <= 0: - raise ValueError("Attempted to set %s timeout to %s, but the " - "timeout cannot be set to a value less " - "than or equal to 0." % (name, value)) - except TypeError: # Python 3 - raise ValueError("Timeout value %s was %s, but it must be an " - "int, float or None." % (name, value)) - - return value - - @classmethod - def from_float(cls, timeout): - """ Create a new Timeout from a legacy timeout value. - - The timeout value used by httplib.py sets the same timeout on the - connect(), and recv() socket requests. This creates a :class:`Timeout` - object that sets the individual timeouts to the ``timeout`` value - passed to this function. - - :param timeout: The legacy timeout value. - :type timeout: integer, float, sentinel default object, or None - :return: Timeout object - :rtype: :class:`Timeout` - """ - return Timeout(read=timeout, connect=timeout) - - def clone(self): - """ Create a copy of the timeout object - - Timeout properties are stored per-pool but each request needs a fresh - Timeout object to ensure each one has its own start/stop configured. - - :return: a copy of the timeout object - :rtype: :class:`Timeout` - """ - # We can't use copy.deepcopy because that will also create a new object - # for _GLOBAL_DEFAULT_TIMEOUT, which socket.py uses as a sentinel to - # detect the user default. - return Timeout(connect=self._connect, read=self._read, - total=self.total) - - def start_connect(self): - """ Start the timeout clock, used during a connect() attempt - - :raises urllib3.exceptions.TimeoutStateError: if you attempt - to start a timer that has been started already. - """ - if self._start_connect is not None: - raise TimeoutStateError("Timeout timer has already been started.") - self._start_connect = current_time() - return self._start_connect - - def get_connect_duration(self): - """ Gets the time elapsed since the call to :meth:`start_connect`. - - :return: Elapsed time. - :rtype: float - :raises urllib3.exceptions.TimeoutStateError: if you attempt - to get duration for a timer that hasn't been started. - """ - if self._start_connect is None: - raise TimeoutStateError("Can't get connect duration for timer " - "that has not started.") - return current_time() - self._start_connect - - @property - def connect_timeout(self): - """ Get the value to use when setting a connection timeout. - - This will be a positive float or integer, the value None - (never timeout), or the default system timeout. - - :return: Connect timeout. - :rtype: int, float, :attr:`Timeout.DEFAULT_TIMEOUT` or None - """ - if self.total is None: - return self._connect - - if self._connect is None or self._connect is self.DEFAULT_TIMEOUT: - return self.total - - return min(self._connect, self.total) - - @property - def read_timeout(self): - """ Get the value for the read timeout. - - This assumes some time has elapsed in the connection timeout and - computes the read timeout appropriately. - - If self.total is set, the read timeout is dependent on the amount of - time taken by the connect timeout. If the connection time has not been - established, a :exc:`~urllib3.exceptions.TimeoutStateError` will be - raised. - - :return: Value to use for the read timeout. - :rtype: int, float, :attr:`Timeout.DEFAULT_TIMEOUT` or None - :raises urllib3.exceptions.TimeoutStateError: If :meth:`start_connect` - has not yet been called on this object. - """ - if (self.total is not None and - self.total is not self.DEFAULT_TIMEOUT and - self._read is not None and - self._read is not self.DEFAULT_TIMEOUT): - # In case the connect timeout has not yet been established. - if self._start_connect is None: - return self._read - return max(0, min(self.total - self.get_connect_duration(), - self._read)) - elif self.total is not None and self.total is not self.DEFAULT_TIMEOUT: - return max(0, self.total - self.get_connect_duration()) - else: - return self._read diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/url.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/url.py deleted file mode 100644 index 6b6f996..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/url.py +++ /dev/null @@ -1,230 +0,0 @@ -from __future__ import absolute_import -from collections import namedtuple - -from ..exceptions import LocationParseError - - -url_attrs = ['scheme', 'auth', 'host', 'port', 'path', 'query', 'fragment'] - -# We only want to normalize urls with an HTTP(S) scheme. -# urllib3 infers URLs without a scheme (None) to be http. -NORMALIZABLE_SCHEMES = ('http', 'https', None) - - -class Url(namedtuple('Url', url_attrs)): - """ - Datastructure for representing an HTTP URL. Used as a return value for - :func:`parse_url`. Both the scheme and host are normalized as they are - both case-insensitive according to RFC 3986. - """ - __slots__ = () - - def __new__(cls, scheme=None, auth=None, host=None, port=None, path=None, - query=None, fragment=None): - if path and not path.startswith('/'): - path = '/' + path - if scheme: - scheme = scheme.lower() - if host and scheme in NORMALIZABLE_SCHEMES: - host = host.lower() - return super(Url, cls).__new__(cls, scheme, auth, host, port, path, - query, fragment) - - @property - def hostname(self): - """For backwards-compatibility with urlparse. We're nice like that.""" - return self.host - - @property - def request_uri(self): - """Absolute path including the query string.""" - uri = self.path or '/' - - if self.query is not None: - uri += '?' + self.query - - return uri - - @property - def netloc(self): - """Network location including host and port""" - if self.port: - return '%s:%d' % (self.host, self.port) - return self.host - - @property - def url(self): - """ - Convert self into a url - - This function should more or less round-trip with :func:`.parse_url`. The - returned url may not be exactly the same as the url inputted to - :func:`.parse_url`, but it should be equivalent by the RFC (e.g., urls - with a blank port will have : removed). - - Example: :: - - >>> U = parse_url('http://google.com/mail/') - >>> U.url - 'http://google.com/mail/' - >>> Url('http', 'username:password', 'host.com', 80, - ... '/path', 'query', 'fragment').url - 'http://username:password@host.com:80/path?query#fragment' - """ - scheme, auth, host, port, path, query, fragment = self - url = '' - - # We use "is not None" we want things to happen with empty strings (or 0 port) - if scheme is not None: - url += scheme + '://' - if auth is not None: - url += auth + '@' - if host is not None: - url += host - if port is not None: - url += ':' + str(port) - if path is not None: - url += path - if query is not None: - url += '?' + query - if fragment is not None: - url += '#' + fragment - - return url - - def __str__(self): - return self.url - - -def split_first(s, delims): - """ - Given a string and an iterable of delimiters, split on the first found - delimiter. Return two split parts and the matched delimiter. - - If not found, then the first part is the full input string. - - Example:: - - >>> split_first('foo/bar?baz', '?/=') - ('foo', 'bar?baz', '/') - >>> split_first('foo/bar?baz', '123') - ('foo/bar?baz', '', None) - - Scales linearly with number of delims. Not ideal for large number of delims. - """ - min_idx = None - min_delim = None - for d in delims: - idx = s.find(d) - if idx < 0: - continue - - if min_idx is None or idx < min_idx: - min_idx = idx - min_delim = d - - if min_idx is None or min_idx < 0: - return s, '', None - - return s[:min_idx], s[min_idx + 1:], min_delim - - -def parse_url(url): - """ - Given a url, return a parsed :class:`.Url` namedtuple. Best-effort is - performed to parse incomplete urls. Fields not provided will be None. - - Partly backwards-compatible with :mod:`urlparse`. - - Example:: - - >>> parse_url('http://google.com/mail/') - Url(scheme='http', host='google.com', port=None, path='/mail/', ...) - >>> parse_url('google.com:80') - Url(scheme=None, host='google.com', port=80, path=None, ...) - >>> parse_url('/foo?bar') - Url(scheme=None, host=None, port=None, path='/foo', query='bar', ...) - """ - - # While this code has overlap with stdlib's urlparse, it is much - # simplified for our needs and less annoying. - # Additionally, this implementations does silly things to be optimal - # on CPython. - - if not url: - # Empty - return Url() - - scheme = None - auth = None - host = None - port = None - path = None - fragment = None - query = None - - # Scheme - if '://' in url: - scheme, url = url.split('://', 1) - - # Find the earliest Authority Terminator - # (http://tools.ietf.org/html/rfc3986#section-3.2) - url, path_, delim = split_first(url, ['/', '?', '#']) - - if delim: - # Reassemble the path - path = delim + path_ - - # Auth - if '@' in url: - # Last '@' denotes end of auth part - auth, url = url.rsplit('@', 1) - - # IPv6 - if url and url[0] == '[': - host, url = url.split(']', 1) - host += ']' - - # Port - if ':' in url: - _host, port = url.split(':', 1) - - if not host: - host = _host - - if port: - # If given, ports must be integers. No whitespace, no plus or - # minus prefixes, no non-integer digits such as ^2 (superscript). - if not port.isdigit(): - raise LocationParseError(url) - try: - port = int(port) - except ValueError: - raise LocationParseError(url) - else: - # Blank ports are cool, too. (rfc3986#section-3.2.3) - port = None - - elif not host and url: - host = url - - if not path: - return Url(scheme, auth, host, port, path, query, fragment) - - # Fragment - if '#' in path: - path, fragment = path.split('#', 1) - - # Query - if '?' in path: - path, query = path.split('?', 1) - - return Url(scheme, auth, host, port, path, query, fragment) - - -def get_host(url): - """ - Deprecated. Use :func:`parse_url` instead. - """ - p = parse_url(url) - return p.scheme or 'http', p.hostname, p.port diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/wait.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/wait.py deleted file mode 100644 index 4db71ba..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/wait.py +++ /dev/null @@ -1,150 +0,0 @@ -import errno -from functools import partial -import select -import sys -try: - from time import monotonic -except ImportError: - from time import time as monotonic - -__all__ = ["NoWayToWaitForSocketError", "wait_for_read", "wait_for_write"] - - -class NoWayToWaitForSocketError(Exception): - pass - - -# How should we wait on sockets? -# -# There are two types of APIs you can use for waiting on sockets: the fancy -# modern stateful APIs like epoll/kqueue, and the older stateless APIs like -# select/poll. The stateful APIs are more efficient when you have a lots of -# sockets to keep track of, because you can set them up once and then use them -# lots of times. But we only ever want to wait on a single socket at a time -# and don't want to keep track of state, so the stateless APIs are actually -# more efficient. So we want to use select() or poll(). -# -# Now, how do we choose between select() and poll()? On traditional Unixes, -# select() has a strange calling convention that makes it slow, or fail -# altogether, for high-numbered file descriptors. The point of poll() is to fix -# that, so on Unixes, we prefer poll(). -# -# On Windows, there is no poll() (or at least Python doesn't provide a wrapper -# for it), but that's OK, because on Windows, select() doesn't have this -# strange calling convention; plain select() works fine. -# -# So: on Windows we use select(), and everywhere else we use poll(). We also -# fall back to select() in case poll() is somehow broken or missing. - -if sys.version_info >= (3, 5): - # Modern Python, that retries syscalls by default - def _retry_on_intr(fn, timeout): - return fn(timeout) -else: - # Old and broken Pythons. - def _retry_on_intr(fn, timeout): - if timeout is None: - deadline = float("inf") - else: - deadline = monotonic() + timeout - - while True: - try: - return fn(timeout) - # OSError for 3 <= pyver < 3.5, select.error for pyver <= 2.7 - except (OSError, select.error) as e: - # 'e.args[0]' incantation works for both OSError and select.error - if e.args[0] != errno.EINTR: - raise - else: - timeout = deadline - monotonic() - if timeout < 0: - timeout = 0 - if timeout == float("inf"): - timeout = None - continue - - -def select_wait_for_socket(sock, read=False, write=False, timeout=None): - if not read and not write: - raise RuntimeError("must specify at least one of read=True, write=True") - rcheck = [] - wcheck = [] - if read: - rcheck.append(sock) - if write: - wcheck.append(sock) - # When doing a non-blocking connect, most systems signal success by - # marking the socket writable. Windows, though, signals success by marked - # it as "exceptional". We paper over the difference by checking the write - # sockets for both conditions. (The stdlib selectors module does the same - # thing.) - fn = partial(select.select, rcheck, wcheck, wcheck) - rready, wready, xready = _retry_on_intr(fn, timeout) - return bool(rready or wready or xready) - - -def poll_wait_for_socket(sock, read=False, write=False, timeout=None): - if not read and not write: - raise RuntimeError("must specify at least one of read=True, write=True") - mask = 0 - if read: - mask |= select.POLLIN - if write: - mask |= select.POLLOUT - poll_obj = select.poll() - poll_obj.register(sock, mask) - - # For some reason, poll() takes timeout in milliseconds - def do_poll(t): - if t is not None: - t *= 1000 - return poll_obj.poll(t) - - return bool(_retry_on_intr(do_poll, timeout)) - - -def null_wait_for_socket(*args, **kwargs): - raise NoWayToWaitForSocketError("no select-equivalent available") - - -def _have_working_poll(): - # Apparently some systems have a select.poll that fails as soon as you try - # to use it, either due to strange configuration or broken monkeypatching - # from libraries like eventlet/greenlet. - try: - poll_obj = select.poll() - _retry_on_intr(poll_obj.poll, 0) - except (AttributeError, OSError): - return False - else: - return True - - -def wait_for_socket(*args, **kwargs): - # We delay choosing which implementation to use until the first time we're - # called. We could do it at import time, but then we might make the wrong - # decision if someone goes wild with monkeypatching select.poll after - # we're imported. - global wait_for_socket - if _have_working_poll(): - wait_for_socket = poll_wait_for_socket - elif hasattr(select, "select"): - wait_for_socket = select_wait_for_socket - else: # Platform-specific: Appengine. - wait_for_socket = null_wait_for_socket - return wait_for_socket(*args, **kwargs) - - -def wait_for_read(sock, timeout=None): - """ Waits for reading to be available on a given socket. - Returns True if the socket is readable, or False if the timeout expired. - """ - return wait_for_socket(sock, read=True, timeout=timeout) - - -def wait_for_write(sock, timeout=None): - """ Waits for writing to be available on a given socket. - Returns True if the socket is readable, or False if the timeout expired. - """ - return wait_for_socket(sock, write=True, timeout=timeout) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/__init__.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/__init__.py deleted file mode 100644 index d21d697..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/__init__.py +++ /dev/null @@ -1,342 +0,0 @@ -# coding: utf-8 -""" - - webencodings - ~~~~~~~~~~~~ - - This is a Python implementation of the `WHATWG Encoding standard - <http://encoding.spec.whatwg.org/>`. See README for details. - - :copyright: Copyright 2012 by Simon Sapin - :license: BSD, see LICENSE for details. - -""" - -from __future__ import unicode_literals - -import codecs - -from .labels import LABELS - - -VERSION = '0.5.1' - - -# Some names in Encoding are not valid Python aliases. Remap these. -PYTHON_NAMES = { - 'iso-8859-8-i': 'iso-8859-8', - 'x-mac-cyrillic': 'mac-cyrillic', - 'macintosh': 'mac-roman', - 'windows-874': 'cp874'} - -CACHE = {} - - -def ascii_lower(string): - r"""Transform (only) ASCII letters to lower case: A-Z is mapped to a-z. - - :param string: An Unicode string. - :returns: A new Unicode string. - - This is used for `ASCII case-insensitive - <http://encoding.spec.whatwg.org/#ascii-case-insensitive>`_ - matching of encoding labels. - The same matching is also used, among other things, - for `CSS keywords <http://dev.w3.org/csswg/css-values/#keywords>`_. - - This is different from the :meth:`~py:str.lower` method of Unicode strings - which also affect non-ASCII characters, - sometimes mapping them into the ASCII range: - - >>> keyword = u'Bac\N{KELVIN SIGN}ground' - >>> assert keyword.lower() == u'background' - >>> assert ascii_lower(keyword) != keyword.lower() - >>> assert ascii_lower(keyword) == u'bac\N{KELVIN SIGN}ground' - - """ - # This turns out to be faster than unicode.translate() - return string.encode('utf8').lower().decode('utf8') - - -def lookup(label): - """ - Look for an encoding by its label. - This is the spec’s `get an encoding - <http://encoding.spec.whatwg.org/#concept-encoding-get>`_ algorithm. - Supported labels are listed there. - - :param label: A string. - :returns: - An :class:`Encoding` object, or :obj:`None` for an unknown label. - - """ - # Only strip ASCII whitespace: U+0009, U+000A, U+000C, U+000D, and U+0020. - label = ascii_lower(label.strip('\t\n\f\r ')) - name = LABELS.get(label) - if name is None: - return None - encoding = CACHE.get(name) - if encoding is None: - if name == 'x-user-defined': - from .x_user_defined import codec_info - else: - python_name = PYTHON_NAMES.get(name, name) - # Any python_name value that gets to here should be valid. - codec_info = codecs.lookup(python_name) - encoding = Encoding(name, codec_info) - CACHE[name] = encoding - return encoding - - -def _get_encoding(encoding_or_label): - """ - Accept either an encoding object or label. - - :param encoding: An :class:`Encoding` object or a label string. - :returns: An :class:`Encoding` object. - :raises: :exc:`~exceptions.LookupError` for an unknown label. - - """ - if hasattr(encoding_or_label, 'codec_info'): - return encoding_or_label - - encoding = lookup(encoding_or_label) - if encoding is None: - raise LookupError('Unknown encoding label: %r' % encoding_or_label) - return encoding - - -class Encoding(object): - """Reresents a character encoding such as UTF-8, - that can be used for decoding or encoding. - - .. attribute:: name - - Canonical name of the encoding - - .. attribute:: codec_info - - The actual implementation of the encoding, - a stdlib :class:`~codecs.CodecInfo` object. - See :func:`codecs.register`. - - """ - def __init__(self, name, codec_info): - self.name = name - self.codec_info = codec_info - - def __repr__(self): - return '<Encoding %s>' % self.name - - -#: The UTF-8 encoding. Should be used for new content and formats. -UTF8 = lookup('utf-8') - -_UTF16LE = lookup('utf-16le') -_UTF16BE = lookup('utf-16be') - - -def decode(input, fallback_encoding, errors='replace'): - """ - Decode a single string. - - :param input: A byte string - :param fallback_encoding: - An :class:`Encoding` object or a label string. - The encoding to use if :obj:`input` does note have a BOM. - :param errors: Type of error handling. See :func:`codecs.register`. - :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. - :return: - A ``(output, encoding)`` tuple of an Unicode string - and an :obj:`Encoding`. - - """ - # Fail early if `encoding` is an invalid label. - fallback_encoding = _get_encoding(fallback_encoding) - bom_encoding, input = _detect_bom(input) - encoding = bom_encoding or fallback_encoding - return encoding.codec_info.decode(input, errors)[0], encoding - - -def _detect_bom(input): - """Return (bom_encoding, input), with any BOM removed from the input.""" - if input.startswith(b'\xFF\xFE'): - return _UTF16LE, input[2:] - if input.startswith(b'\xFE\xFF'): - return _UTF16BE, input[2:] - if input.startswith(b'\xEF\xBB\xBF'): - return UTF8, input[3:] - return None, input - - -def encode(input, encoding=UTF8, errors='strict'): - """ - Encode a single string. - - :param input: An Unicode string. - :param encoding: An :class:`Encoding` object or a label string. - :param errors: Type of error handling. See :func:`codecs.register`. - :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. - :return: A byte string. - - """ - return _get_encoding(encoding).codec_info.encode(input, errors)[0] - - -def iter_decode(input, fallback_encoding, errors='replace'): - """ - "Pull"-based decoder. - - :param input: - An iterable of byte strings. - - The input is first consumed just enough to determine the encoding - based on the precense of a BOM, - then consumed on demand when the return value is. - :param fallback_encoding: - An :class:`Encoding` object or a label string. - The encoding to use if :obj:`input` does note have a BOM. - :param errors: Type of error handling. See :func:`codecs.register`. - :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. - :returns: - An ``(output, encoding)`` tuple. - :obj:`output` is an iterable of Unicode strings, - :obj:`encoding` is the :obj:`Encoding` that is being used. - - """ - - decoder = IncrementalDecoder(fallback_encoding, errors) - generator = _iter_decode_generator(input, decoder) - encoding = next(generator) - return generator, encoding - - -def _iter_decode_generator(input, decoder): - """Return a generator that first yields the :obj:`Encoding`, - then yields output chukns as Unicode strings. - - """ - decode = decoder.decode - input = iter(input) - for chunck in input: - output = decode(chunck) - if output: - assert decoder.encoding is not None - yield decoder.encoding - yield output - break - else: - # Input exhausted without determining the encoding - output = decode(b'', final=True) - assert decoder.encoding is not None - yield decoder.encoding - if output: - yield output - return - - for chunck in input: - output = decode(chunck) - if output: - yield output - output = decode(b'', final=True) - if output: - yield output - - -def iter_encode(input, encoding=UTF8, errors='strict'): - """ - “Pull”-based encoder. - - :param input: An iterable of Unicode strings. - :param encoding: An :class:`Encoding` object or a label string. - :param errors: Type of error handling. See :func:`codecs.register`. - :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. - :returns: An iterable of byte strings. - - """ - # Fail early if `encoding` is an invalid label. - encode = IncrementalEncoder(encoding, errors).encode - return _iter_encode_generator(input, encode) - - -def _iter_encode_generator(input, encode): - for chunck in input: - output = encode(chunck) - if output: - yield output - output = encode('', final=True) - if output: - yield output - - -class IncrementalDecoder(object): - """ - “Push”-based decoder. - - :param fallback_encoding: - An :class:`Encoding` object or a label string. - The encoding to use if :obj:`input` does note have a BOM. - :param errors: Type of error handling. See :func:`codecs.register`. - :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. - - """ - def __init__(self, fallback_encoding, errors='replace'): - # Fail early if `encoding` is an invalid label. - self._fallback_encoding = _get_encoding(fallback_encoding) - self._errors = errors - self._buffer = b'' - self._decoder = None - #: The actual :class:`Encoding` that is being used, - #: or :obj:`None` if that is not determined yet. - #: (Ie. if there is not enough input yet to determine - #: if there is a BOM.) - self.encoding = None # Not known yet. - - def decode(self, input, final=False): - """Decode one chunk of the input. - - :param input: A byte string. - :param final: - Indicate that no more input is available. - Must be :obj:`True` if this is the last call. - :returns: An Unicode string. - - """ - decoder = self._decoder - if decoder is not None: - return decoder(input, final) - - input = self._buffer + input - encoding, input = _detect_bom(input) - if encoding is None: - if len(input) < 3 and not final: # Not enough data yet. - self._buffer = input - return '' - else: # No BOM - encoding = self._fallback_encoding - decoder = encoding.codec_info.incrementaldecoder(self._errors).decode - self._decoder = decoder - self.encoding = encoding - return decoder(input, final) - - -class IncrementalEncoder(object): - """ - “Push”-based encoder. - - :param encoding: An :class:`Encoding` object or a label string. - :param errors: Type of error handling. See :func:`codecs.register`. - :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. - - .. method:: encode(input, final=False) - - :param input: An Unicode string. - :param final: - Indicate that no more input is available. - Must be :obj:`True` if this is the last call. - :returns: A byte string. - - """ - def __init__(self, encoding=UTF8, errors='strict'): - encoding = _get_encoding(encoding) - self.encode = encoding.codec_info.incrementalencoder(errors).encode diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/labels.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/labels.py deleted file mode 100644 index 29cbf91..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/labels.py +++ /dev/null @@ -1,231 +0,0 @@ -""" - - webencodings.labels - ~~~~~~~~~~~~~~~~~~~ - - Map encoding labels to their name. - - :copyright: Copyright 2012 by Simon Sapin - :license: BSD, see LICENSE for details. - -""" - -# XXX Do not edit! -# This file is automatically generated by mklabels.py - -LABELS = { - 'unicode-1-1-utf-8': 'utf-8', - 'utf-8': 'utf-8', - 'utf8': 'utf-8', - '866': 'ibm866', - 'cp866': 'ibm866', - 'csibm866': 'ibm866', - 'ibm866': 'ibm866', - 'csisolatin2': 'iso-8859-2', - 'iso-8859-2': 'iso-8859-2', - 'iso-ir-101': 'iso-8859-2', - 'iso8859-2': 'iso-8859-2', - 'iso88592': 'iso-8859-2', - 'iso_8859-2': 'iso-8859-2', - 'iso_8859-2:1987': 'iso-8859-2', - 'l2': 'iso-8859-2', - 'latin2': 'iso-8859-2', - 'csisolatin3': 'iso-8859-3', - 'iso-8859-3': 'iso-8859-3', - 'iso-ir-109': 'iso-8859-3', - 'iso8859-3': 'iso-8859-3', - 'iso88593': 'iso-8859-3', - 'iso_8859-3': 'iso-8859-3', - 'iso_8859-3:1988': 'iso-8859-3', - 'l3': 'iso-8859-3', - 'latin3': 'iso-8859-3', - 'csisolatin4': 'iso-8859-4', - 'iso-8859-4': 'iso-8859-4', - 'iso-ir-110': 'iso-8859-4', - 'iso8859-4': 'iso-8859-4', - 'iso88594': 'iso-8859-4', - 'iso_8859-4': 'iso-8859-4', - 'iso_8859-4:1988': 'iso-8859-4', - 'l4': 'iso-8859-4', - 'latin4': 'iso-8859-4', - 'csisolatincyrillic': 'iso-8859-5', - 'cyrillic': 'iso-8859-5', - 'iso-8859-5': 'iso-8859-5', - 'iso-ir-144': 'iso-8859-5', - 'iso8859-5': 'iso-8859-5', - 'iso88595': 'iso-8859-5', - 'iso_8859-5': 'iso-8859-5', - 'iso_8859-5:1988': 'iso-8859-5', - 'arabic': 'iso-8859-6', - 'asmo-708': 'iso-8859-6', - 'csiso88596e': 'iso-8859-6', - 'csiso88596i': 'iso-8859-6', - 'csisolatinarabic': 'iso-8859-6', - 'ecma-114': 'iso-8859-6', - 'iso-8859-6': 'iso-8859-6', - 'iso-8859-6-e': 'iso-8859-6', - 'iso-8859-6-i': 'iso-8859-6', - 'iso-ir-127': 'iso-8859-6', - 'iso8859-6': 'iso-8859-6', - 'iso88596': 'iso-8859-6', - 'iso_8859-6': 'iso-8859-6', - 'iso_8859-6:1987': 'iso-8859-6', - 'csisolatingreek': 'iso-8859-7', - 'ecma-118': 'iso-8859-7', - 'elot_928': 'iso-8859-7', - 'greek': 'iso-8859-7', - 'greek8': 'iso-8859-7', - 'iso-8859-7': 'iso-8859-7', - 'iso-ir-126': 'iso-8859-7', - 'iso8859-7': 'iso-8859-7', - 'iso88597': 'iso-8859-7', - 'iso_8859-7': 'iso-8859-7', - 'iso_8859-7:1987': 'iso-8859-7', - 'sun_eu_greek': 'iso-8859-7', - 'csiso88598e': 'iso-8859-8', - 'csisolatinhebrew': 'iso-8859-8', - 'hebrew': 'iso-8859-8', - 'iso-8859-8': 'iso-8859-8', - 'iso-8859-8-e': 'iso-8859-8', - 'iso-ir-138': 'iso-8859-8', - 'iso8859-8': 'iso-8859-8', - 'iso88598': 'iso-8859-8', - 'iso_8859-8': 'iso-8859-8', - 'iso_8859-8:1988': 'iso-8859-8', - 'visual': 'iso-8859-8', - 'csiso88598i': 'iso-8859-8-i', - 'iso-8859-8-i': 'iso-8859-8-i', - 'logical': 'iso-8859-8-i', - 'csisolatin6': 'iso-8859-10', - 'iso-8859-10': 'iso-8859-10', - 'iso-ir-157': 'iso-8859-10', - 'iso8859-10': 'iso-8859-10', - 'iso885910': 'iso-8859-10', - 'l6': 'iso-8859-10', - 'latin6': 'iso-8859-10', - 'iso-8859-13': 'iso-8859-13', - 'iso8859-13': 'iso-8859-13', - 'iso885913': 'iso-8859-13', - 'iso-8859-14': 'iso-8859-14', - 'iso8859-14': 'iso-8859-14', - 'iso885914': 'iso-8859-14', - 'csisolatin9': 'iso-8859-15', - 'iso-8859-15': 'iso-8859-15', - 'iso8859-15': 'iso-8859-15', - 'iso885915': 'iso-8859-15', - 'iso_8859-15': 'iso-8859-15', - 'l9': 'iso-8859-15', - 'iso-8859-16': 'iso-8859-16', - 'cskoi8r': 'koi8-r', - 'koi': 'koi8-r', - 'koi8': 'koi8-r', - 'koi8-r': 'koi8-r', - 'koi8_r': 'koi8-r', - 'koi8-u': 'koi8-u', - 'csmacintosh': 'macintosh', - 'mac': 'macintosh', - 'macintosh': 'macintosh', - 'x-mac-roman': 'macintosh', - 'dos-874': 'windows-874', - 'iso-8859-11': 'windows-874', - 'iso8859-11': 'windows-874', - 'iso885911': 'windows-874', - 'tis-620': 'windows-874', - 'windows-874': 'windows-874', - 'cp1250': 'windows-1250', - 'windows-1250': 'windows-1250', - 'x-cp1250': 'windows-1250', - 'cp1251': 'windows-1251', - 'windows-1251': 'windows-1251', - 'x-cp1251': 'windows-1251', - 'ansi_x3.4-1968': 'windows-1252', - 'ascii': 'windows-1252', - 'cp1252': 'windows-1252', - 'cp819': 'windows-1252', - 'csisolatin1': 'windows-1252', - 'ibm819': 'windows-1252', - 'iso-8859-1': 'windows-1252', - 'iso-ir-100': 'windows-1252', - 'iso8859-1': 'windows-1252', - 'iso88591': 'windows-1252', - 'iso_8859-1': 'windows-1252', - 'iso_8859-1:1987': 'windows-1252', - 'l1': 'windows-1252', - 'latin1': 'windows-1252', - 'us-ascii': 'windows-1252', - 'windows-1252': 'windows-1252', - 'x-cp1252': 'windows-1252', - 'cp1253': 'windows-1253', - 'windows-1253': 'windows-1253', - 'x-cp1253': 'windows-1253', - 'cp1254': 'windows-1254', - 'csisolatin5': 'windows-1254', - 'iso-8859-9': 'windows-1254', - 'iso-ir-148': 'windows-1254', - 'iso8859-9': 'windows-1254', - 'iso88599': 'windows-1254', - 'iso_8859-9': 'windows-1254', - 'iso_8859-9:1989': 'windows-1254', - 'l5': 'windows-1254', - 'latin5': 'windows-1254', - 'windows-1254': 'windows-1254', - 'x-cp1254': 'windows-1254', - 'cp1255': 'windows-1255', - 'windows-1255': 'windows-1255', - 'x-cp1255': 'windows-1255', - 'cp1256': 'windows-1256', - 'windows-1256': 'windows-1256', - 'x-cp1256': 'windows-1256', - 'cp1257': 'windows-1257', - 'windows-1257': 'windows-1257', - 'x-cp1257': 'windows-1257', - 'cp1258': 'windows-1258', - 'windows-1258': 'windows-1258', - 'x-cp1258': 'windows-1258', - 'x-mac-cyrillic': 'x-mac-cyrillic', - 'x-mac-ukrainian': 'x-mac-cyrillic', - 'chinese': 'gbk', - 'csgb2312': 'gbk', - 'csiso58gb231280': 'gbk', - 'gb2312': 'gbk', - 'gb_2312': 'gbk', - 'gb_2312-80': 'gbk', - 'gbk': 'gbk', - 'iso-ir-58': 'gbk', - 'x-gbk': 'gbk', - 'gb18030': 'gb18030', - 'hz-gb-2312': 'hz-gb-2312', - 'big5': 'big5', - 'big5-hkscs': 'big5', - 'cn-big5': 'big5', - 'csbig5': 'big5', - 'x-x-big5': 'big5', - 'cseucpkdfmtjapanese': 'euc-jp', - 'euc-jp': 'euc-jp', - 'x-euc-jp': 'euc-jp', - 'csiso2022jp': 'iso-2022-jp', - 'iso-2022-jp': 'iso-2022-jp', - 'csshiftjis': 'shift_jis', - 'ms_kanji': 'shift_jis', - 'shift-jis': 'shift_jis', - 'shift_jis': 'shift_jis', - 'sjis': 'shift_jis', - 'windows-31j': 'shift_jis', - 'x-sjis': 'shift_jis', - 'cseuckr': 'euc-kr', - 'csksc56011987': 'euc-kr', - 'euc-kr': 'euc-kr', - 'iso-ir-149': 'euc-kr', - 'korean': 'euc-kr', - 'ks_c_5601-1987': 'euc-kr', - 'ks_c_5601-1989': 'euc-kr', - 'ksc5601': 'euc-kr', - 'ksc_5601': 'euc-kr', - 'windows-949': 'euc-kr', - 'csiso2022kr': 'iso-2022-kr', - 'iso-2022-kr': 'iso-2022-kr', - 'utf-16be': 'utf-16be', - 'utf-16': 'utf-16le', - 'utf-16le': 'utf-16le', - 'x-user-defined': 'x-user-defined', -} diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/mklabels.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/mklabels.py deleted file mode 100644 index 295dc92..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/mklabels.py +++ /dev/null @@ -1,59 +0,0 @@ -""" - - webencodings.mklabels - ~~~~~~~~~~~~~~~~~~~~~ - - Regenarate the webencodings.labels module. - - :copyright: Copyright 2012 by Simon Sapin - :license: BSD, see LICENSE for details. - -""" - -import json -try: - from urllib import urlopen -except ImportError: - from urllib.request import urlopen - - -def assert_lower(string): - assert string == string.lower() - return string - - -def generate(url): - parts = ['''\ -""" - - webencodings.labels - ~~~~~~~~~~~~~~~~~~~ - - Map encoding labels to their name. - - :copyright: Copyright 2012 by Simon Sapin - :license: BSD, see LICENSE for details. - -""" - -# XXX Do not edit! -# This file is automatically generated by mklabels.py - -LABELS = { -'''] - labels = [ - (repr(assert_lower(label)).lstrip('u'), - repr(encoding['name']).lstrip('u')) - for category in json.loads(urlopen(url).read().decode('ascii')) - for encoding in category['encodings'] - for label in encoding['labels']] - max_len = max(len(label) for label, name in labels) - parts.extend( - ' %s:%s %s,\n' % (label, ' ' * (max_len - len(label)), name) - for label, name in labels) - parts.append('}') - return ''.join(parts) - - -if __name__ == '__main__': - print(generate('http://encoding.spec.whatwg.org/encodings.json')) diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/tests.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/tests.py deleted file mode 100644 index e12c10d..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/tests.py +++ /dev/null @@ -1,153 +0,0 @@ -# coding: utf-8 -""" - - webencodings.tests - ~~~~~~~~~~~~~~~~~~ - - A basic test suite for Encoding. - - :copyright: Copyright 2012 by Simon Sapin - :license: BSD, see LICENSE for details. - -""" - -from __future__ import unicode_literals - -from . import (lookup, LABELS, decode, encode, iter_decode, iter_encode, - IncrementalDecoder, IncrementalEncoder, UTF8) - - -def assert_raises(exception, function, *args, **kwargs): - try: - function(*args, **kwargs) - except exception: - return - else: # pragma: no cover - raise AssertionError('Did not raise %s.' % exception) - - -def test_labels(): - assert lookup('utf-8').name == 'utf-8' - assert lookup('Utf-8').name == 'utf-8' - assert lookup('UTF-8').name == 'utf-8' - assert lookup('utf8').name == 'utf-8' - assert lookup('utf8').name == 'utf-8' - assert lookup('utf8 ').name == 'utf-8' - assert lookup(' \r\nutf8\t').name == 'utf-8' - assert lookup('u8') is None # Python label. - assert lookup('utf-8 ') is None # Non-ASCII white space. - - assert lookup('US-ASCII').name == 'windows-1252' - assert lookup('iso-8859-1').name == 'windows-1252' - assert lookup('latin1').name == 'windows-1252' - assert lookup('LATIN1').name == 'windows-1252' - assert lookup('latin-1') is None - assert lookup('LATİN1') is None # ASCII-only case insensitivity. - - -def test_all_labels(): - for label in LABELS: - assert decode(b'', label) == ('', lookup(label)) - assert encode('', label) == b'' - for repeat in [0, 1, 12]: - output, _ = iter_decode([b''] * repeat, label) - assert list(output) == [] - assert list(iter_encode([''] * repeat, label)) == [] - decoder = IncrementalDecoder(label) - assert decoder.decode(b'') == '' - assert decoder.decode(b'', final=True) == '' - encoder = IncrementalEncoder(label) - assert encoder.encode('') == b'' - assert encoder.encode('', final=True) == b'' - # All encoding names are valid labels too: - for name in set(LABELS.values()): - assert lookup(name).name == name - - -def test_invalid_label(): - assert_raises(LookupError, decode, b'\xEF\xBB\xBF\xc3\xa9', 'invalid') - assert_raises(LookupError, encode, 'é', 'invalid') - assert_raises(LookupError, iter_decode, [], 'invalid') - assert_raises(LookupError, iter_encode, [], 'invalid') - assert_raises(LookupError, IncrementalDecoder, 'invalid') - assert_raises(LookupError, IncrementalEncoder, 'invalid') - - -def test_decode(): - assert decode(b'\x80', 'latin1') == ('€', lookup('latin1')) - assert decode(b'\x80', lookup('latin1')) == ('€', lookup('latin1')) - assert decode(b'\xc3\xa9', 'utf8') == ('é', lookup('utf8')) - assert decode(b'\xc3\xa9', UTF8) == ('é', lookup('utf8')) - assert decode(b'\xc3\xa9', 'ascii') == ('é', lookup('ascii')) - assert decode(b'\xEF\xBB\xBF\xc3\xa9', 'ascii') == ('é', lookup('utf8')) # UTF-8 with BOM - - assert decode(b'\xFE\xFF\x00\xe9', 'ascii') == ('é', lookup('utf-16be')) # UTF-16-BE with BOM - assert decode(b'\xFF\xFE\xe9\x00', 'ascii') == ('é', lookup('utf-16le')) # UTF-16-LE with BOM - assert decode(b'\xFE\xFF\xe9\x00', 'ascii') == ('\ue900', lookup('utf-16be')) - assert decode(b'\xFF\xFE\x00\xe9', 'ascii') == ('\ue900', lookup('utf-16le')) - - assert decode(b'\x00\xe9', 'UTF-16BE') == ('é', lookup('utf-16be')) - assert decode(b'\xe9\x00', 'UTF-16LE') == ('é', lookup('utf-16le')) - assert decode(b'\xe9\x00', 'UTF-16') == ('é', lookup('utf-16le')) - - assert decode(b'\xe9\x00', 'UTF-16BE') == ('\ue900', lookup('utf-16be')) - assert decode(b'\x00\xe9', 'UTF-16LE') == ('\ue900', lookup('utf-16le')) - assert decode(b'\x00\xe9', 'UTF-16') == ('\ue900', lookup('utf-16le')) - - -def test_encode(): - assert encode('é', 'latin1') == b'\xe9' - assert encode('é', 'utf8') == b'\xc3\xa9' - assert encode('é', 'utf8') == b'\xc3\xa9' - assert encode('é', 'utf-16') == b'\xe9\x00' - assert encode('é', 'utf-16le') == b'\xe9\x00' - assert encode('é', 'utf-16be') == b'\x00\xe9' - - -def test_iter_decode(): - def iter_decode_to_string(input, fallback_encoding): - output, _encoding = iter_decode(input, fallback_encoding) - return ''.join(output) - assert iter_decode_to_string([], 'latin1') == '' - assert iter_decode_to_string([b''], 'latin1') == '' - assert iter_decode_to_string([b'\xe9'], 'latin1') == 'é' - assert iter_decode_to_string([b'hello'], 'latin1') == 'hello' - assert iter_decode_to_string([b'he', b'llo'], 'latin1') == 'hello' - assert iter_decode_to_string([b'hell', b'o'], 'latin1') == 'hello' - assert iter_decode_to_string([b'\xc3\xa9'], 'latin1') == 'é' - assert iter_decode_to_string([b'\xEF\xBB\xBF\xc3\xa9'], 'latin1') == 'é' - assert iter_decode_to_string([ - b'\xEF\xBB\xBF', b'\xc3', b'\xa9'], 'latin1') == 'é' - assert iter_decode_to_string([ - b'\xEF\xBB\xBF', b'a', b'\xc3'], 'latin1') == 'a\uFFFD' - assert iter_decode_to_string([ - b'', b'\xEF', b'', b'', b'\xBB\xBF\xc3', b'\xa9'], 'latin1') == 'é' - assert iter_decode_to_string([b'\xEF\xBB\xBF'], 'latin1') == '' - assert iter_decode_to_string([b'\xEF\xBB'], 'latin1') == 'ï»' - assert iter_decode_to_string([b'\xFE\xFF\x00\xe9'], 'latin1') == 'é' - assert iter_decode_to_string([b'\xFF\xFE\xe9\x00'], 'latin1') == 'é' - assert iter_decode_to_string([ - b'', b'\xFF', b'', b'', b'\xFE\xe9', b'\x00'], 'latin1') == 'é' - assert iter_decode_to_string([ - b'', b'h\xe9', b'llo'], 'x-user-defined') == 'h\uF7E9llo' - - -def test_iter_encode(): - assert b''.join(iter_encode([], 'latin1')) == b'' - assert b''.join(iter_encode([''], 'latin1')) == b'' - assert b''.join(iter_encode(['é'], 'latin1')) == b'\xe9' - assert b''.join(iter_encode(['', 'é', '', ''], 'latin1')) == b'\xe9' - assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16')) == b'\xe9\x00' - assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16le')) == b'\xe9\x00' - assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16be')) == b'\x00\xe9' - assert b''.join(iter_encode([ - '', 'h\uF7E9', '', 'llo'], 'x-user-defined')) == b'h\xe9llo' - - -def test_x_user_defined(): - encoded = b'2,\x0c\x0b\x1aO\xd9#\xcb\x0f\xc9\xbbt\xcf\xa8\xca' - decoded = '2,\x0c\x0b\x1aO\uf7d9#\uf7cb\x0f\uf7c9\uf7bbt\uf7cf\uf7a8\uf7ca' - encoded = b'aa' - decoded = 'aa' - assert decode(encoded, 'x-user-defined') == (decoded, lookup('x-user-defined')) - assert encode(decoded, 'x-user-defined') == encoded diff --git a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/x_user_defined.py b/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/x_user_defined.py deleted file mode 100644 index d16e326..0000000 --- a/HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/x_user_defined.py +++ /dev/null @@ -1,325 +0,0 @@ -# coding: utf-8 -""" - - webencodings.x_user_defined - ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - An implementation of the x-user-defined encoding. - - :copyright: Copyright 2012 by Simon Sapin - :license: BSD, see LICENSE for details. - -""" - -from __future__ import unicode_literals - -import codecs - - -### Codec APIs - -class Codec(codecs.Codec): - - def encode(self, input, errors='strict'): - return codecs.charmap_encode(input, errors, encoding_table) - - def decode(self, input, errors='strict'): - return codecs.charmap_decode(input, errors, decoding_table) - - -class IncrementalEncoder(codecs.IncrementalEncoder): - def encode(self, input, final=False): - return codecs.charmap_encode(input, self.errors, encoding_table)[0] - - -class IncrementalDecoder(codecs.IncrementalDecoder): - def decode(self, input, final=False): - return codecs.charmap_decode(input, self.errors, decoding_table)[0] - - -class StreamWriter(Codec, codecs.StreamWriter): - pass - - -class StreamReader(Codec, codecs.StreamReader): - pass - - -### encodings module API - -codec_info = codecs.CodecInfo( - name='x-user-defined', - encode=Codec().encode, - decode=Codec().decode, - incrementalencoder=IncrementalEncoder, - incrementaldecoder=IncrementalDecoder, - streamreader=StreamReader, - streamwriter=StreamWriter, -) - - -### Decoding Table - -# Python 3: -# for c in range(256): print(' %r' % chr(c if c < 128 else c + 0xF700)) -decoding_table = ( - '\x00' - '\x01' - '\x02' - '\x03' - '\x04' - '\x05' - '\x06' - '\x07' - '\x08' - '\t' - '\n' - '\x0b' - '\x0c' - '\r' - '\x0e' - '\x0f' - '\x10' - '\x11' - '\x12' - '\x13' - '\x14' - '\x15' - '\x16' - '\x17' - '\x18' - '\x19' - '\x1a' - '\x1b' - '\x1c' - '\x1d' - '\x1e' - '\x1f' - ' ' - '!' - '"' - '#' - '$' - '%' - '&' - "'" - '(' - ')' - '*' - '+' - ',' - '-' - '.' - '/' - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - ':' - ';' - '<' - '=' - '>' - '?' - '@' - 'A' - 'B' - 'C' - 'D' - 'E' - 'F' - 'G' - 'H' - 'I' - 'J' - 'K' - 'L' - 'M' - 'N' - 'O' - 'P' - 'Q' - 'R' - 'S' - 'T' - 'U' - 'V' - 'W' - 'X' - 'Y' - 'Z' - '[' - '\\' - ']' - '^' - '_' - '`' - 'a' - 'b' - 'c' - 'd' - 'e' - 'f' - 'g' - 'h' - 'i' - 'j' - 'k' - 'l' - 'm' - 'n' - 'o' - 'p' - 'q' - 'r' - 's' - 't' - 'u' - 'v' - 'w' - 'x' - 'y' - 'z' - '{' - '|' - '}' - '~' - '\x7f' - '\uf780' - '\uf781' - '\uf782' - '\uf783' - '\uf784' - '\uf785' - '\uf786' - '\uf787' - '\uf788' - '\uf789' - '\uf78a' - '\uf78b' - '\uf78c' - '\uf78d' - '\uf78e' - '\uf78f' - '\uf790' - '\uf791' - '\uf792' - '\uf793' - '\uf794' - '\uf795' - '\uf796' - '\uf797' - '\uf798' - '\uf799' - '\uf79a' - '\uf79b' - '\uf79c' - '\uf79d' - '\uf79e' - '\uf79f' - '\uf7a0' - '\uf7a1' - '\uf7a2' - '\uf7a3' - '\uf7a4' - '\uf7a5' - '\uf7a6' - '\uf7a7' - '\uf7a8' - '\uf7a9' - '\uf7aa' - '\uf7ab' - '\uf7ac' - '\uf7ad' - '\uf7ae' - '\uf7af' - '\uf7b0' - '\uf7b1' - '\uf7b2' - '\uf7b3' - '\uf7b4' - '\uf7b5' - '\uf7b6' - '\uf7b7' - '\uf7b8' - '\uf7b9' - '\uf7ba' - '\uf7bb' - '\uf7bc' - '\uf7bd' - '\uf7be' - '\uf7bf' - '\uf7c0' - '\uf7c1' - '\uf7c2' - '\uf7c3' - '\uf7c4' - '\uf7c5' - '\uf7c6' - '\uf7c7' - '\uf7c8' - '\uf7c9' - '\uf7ca' - '\uf7cb' - '\uf7cc' - '\uf7cd' - '\uf7ce' - '\uf7cf' - '\uf7d0' - '\uf7d1' - '\uf7d2' - '\uf7d3' - '\uf7d4' - '\uf7d5' - '\uf7d6' - '\uf7d7' - '\uf7d8' - '\uf7d9' - '\uf7da' - '\uf7db' - '\uf7dc' - '\uf7dd' - '\uf7de' - '\uf7df' - '\uf7e0' - '\uf7e1' - '\uf7e2' - '\uf7e3' - '\uf7e4' - '\uf7e5' - '\uf7e6' - '\uf7e7' - '\uf7e8' - '\uf7e9' - '\uf7ea' - '\uf7eb' - '\uf7ec' - '\uf7ed' - '\uf7ee' - '\uf7ef' - '\uf7f0' - '\uf7f1' - '\uf7f2' - '\uf7f3' - '\uf7f4' - '\uf7f5' - '\uf7f6' - '\uf7f7' - '\uf7f8' - '\uf7f9' - '\uf7fa' - '\uf7fb' - '\uf7fc' - '\uf7fd' - '\uf7fe' - '\uf7ff' -) - -### Encoding table -encoding_table = codecs.charmap_build(decoding_table) diff --git a/HW1/venv/lib/python3.6/site-packages/setuptools-40.8.0-py3.6.egg b/HW1/venv/lib/python3.6/site-packages/setuptools-40.8.0-py3.6.egg deleted file mode 100644 index 99134ac78b71b98139074f415afc2737a2acaca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571891 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%0AG%7>LGAv`MYY6dsnr?ceR@+f%@+@T5v?a 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%0DUrlBtk5GAOV(MZGQ>>wI5qz zKM)JR;K!Os^kYsW^T*A*uAQX-^y^uCu-R(?GJs+MT`)K3y%PX>U>=A%Jbh*XtX{}h z{amBm={~j)KEI2W9yqNby#{kyv+4NTpvxjCcSm66NjpkE6Y9d#PP%y?OC!xUdr7+! zGntR~d3NEyi^?Z$PcN^0`|Ny#u^zZlnt&`12kpFK#NVi1@c)o|G0W6RdzAoPl>3q> z6AB&fAi@WGn2Vet>>J<E{;9mzpbP-iPkKVY4@4o-c~qYKi{~_|!$k(aSIXbnKY#!D z8=xQ!0*VR%03ZRuk)m?tXr;{BKeuD@0Koq~buw{wv3It!vv#64va>a{Fr%~gIOMU2 z+ZS`)c~@KXWFTanb>vO|M5H|Jot|FRt%?iSuc|*`S+%ZMEC?fRrg7}}GxqV^RcM>C zXh|R#2pOtHT&erl^I4HKGk+(dVN+(GWwZfx%612#u*_CvN3M|O^;t<qNBP-Gqh*RR ztU?9DQ-2}T?ypY?{8_(uPi<(;>D5K&)Z&uS4v0TojrOw*^?Cg%w@Hfbge+_Gen+`D zzENo!(z_*QW(DuvlW*A*HW$A|rq+GzcXFpMZ}VLsL^TepoY6vs5WFzII!Eo){q<A$ z4vu%bvwV-arsND}Wa54k1rPKqfb=ZVN2RCoO8<Jui<8n{AK*uOUGa9K=G!*7Md<+> zZizq1!U_+l!bR{ZPuaWN(bdt`PCk^2RoPON0=lLH>kb|f5Mms))LHgvwYVzD@5ej9 z5b|U5fA7X_m3~>Sp77lSW=hoqXdNoCxalAi%r4YOmq7JsRYCSs<a*!n0x;aByw)Q0 zp#o_tY~dz?1b~#WqLC*N5NXJ$0)9kG$W`bTy-Rzi?_$wO!&YRw-EYGS6sy(h-VJU} z@QL7fyMU}8dd1#I^`ISx%9v$YtKkAd;5NCcl56?94T#aX@6Xv#RcK>#ifuLF1$n89 zjfxbidgsV2BKSH9_7(`<dAicpreLylNno-cx|<F^F?tZFs1N-Laq5r`(Q=YV+FgDM z&sHFa_R5rh#}mGPITQeh-af3dxNO+LpWm@6O4OkA!-FLJ8lOWEPU#}dS8q#&qzanw zU;saFym{^2U#N{3AIBlTr#`rF`?Z6OrFB69Tk(w_t0Dm^{#F<5r5b<|;^%a4*+-HI zmoOY{iQ4TJr0VJ>ywtmV^mefb%D<L-boZ$p;esGC=yCu8pk%t$7I9x(U;yYzlY8>x zV!9wMzxig<o5Oz8v@-leVf8=Ptb3eT>hIgzhokJ$fn*$dW)Y$N<dA@ep_6{ltddDO zcMDK?a1oI@zMic^O$;mIx~)0GUr^=6`Dp)s|9i2_$bExy(@5xru@_`chgT;3J_XVM zRyj{xliDA~&}b7XB)#pub?u5~``b#HfzIMg2?0Y4y0gNDS5+N+x~<x*4hwclit~xg zQrxzsX_mYbba(dr$cS~eb|W`sFPn#BLE5i}bU_OWpG+UMO3F30bU&F4YuG^x>s$hR zbg${p?r(+9(91d3lTvO5IF9xYfIc6zJ>v#GA%a{?WvmQ%!*9#RdHhI#Xc_{3l?WT~ z1QQG$b?^FB1*6|>!KD=g{cGT#-6sXEwAATZjP<Q!05AlNs0_|ePFGnN80tg31~?3@ zH{EU7X5BtgiN|!jj?M}9@)D#-ReXg$g&o4WjwU1D9;6oHI&}-D-tDXvw;5SCQ=>y# z(xId*W$I*RvMUXK{gfuoEvF_NM!?|<Kgs7mGFB>cL>krUyF45dMW<^RlMpT@yn_{e zPQ8mM(p--ZOQgw1#BN6zMM8}$h;|G7np*d5)+zyNGStK)E8AQas`Fm{A-2P+_|s}! zg`0r$bC;m~ij?KxG<Y2^N}j*RT?rK`{sAeNByMPuAi(L#P3XOK6sYt&$Pf%_UzCYK z=Ba)D-*yQxwLB6R0v<9K9>3J>IQ0}X)%+3=X+OYLov?L=dw1ww;XVX{oE)bNOU1L> zUzp%R?y)0kYz-Kp92TTP=~Glw=;<iskph08tbILy7&w3lp5I%5#8}F4h0!E@GH@$+ z;}15vlT^=Nh|Ul}7zh5SA~H?ww<s>_&Mn%JiwZ#k-*#)<Q;PXf<5d1e538`D5=B}G zi#wWf6RUZ_8~6-FTod$P++>TFCK%-9&`lL(uu&n}_MZ&O{|c-3ll1lRt7Lp{ArOSL z^Yse~2D*lLtpE;G{;D@MXFr77oxmZVhGiT^wM&*=i8e{6Ub7Wy_3XB|SI>JU;CIdH zb0KEN<3PBN{A_wPd8n*+tv45I59%d)py0ZD4nT!wW2GvR!mq)Z8bX-0vgX>S+><>K zAos5s!w=Anq|rhxV|?eKZV-je>bL{a@$#?kXu}d{LdDTnI&<KdV?>((c@pOs-Oqi+ zMyTV%9Tq4MsO1-S`qf9H8DXfQOsaq%B6t=Zf;`G4I0$Mrz0bKUytFNd9Ds&mq&b$R zkOOY`eZ1BEhx>-oF<WYpka{D3+42ush?p2A4Wne?R&sGoS}*%x5e-JSQm-kJWF<yM z2Tk%pLszxzR%cDmb$lC2UMjaOL~@+_Zri)e2gC1d%f92fVgMsVKP+-TNMik{6&EL{ z|8Nsvk*9b5eYaSFT#_+BjY<i=_hib0P+&xeQs4WbOd&tb$}a)JR0TU9QxkG8{iSP& z3Vje^tEIzc7A4BhYo#tcxH4hj))`#PA|S*kvAyBCY0?7Ok|;v5?Z)ANk;qX{%$6^- zj)%xh18NEi0(UPag8N87XwwgqoD=6~VTClo0AZ<tjJTs^>5`FCnpg>2J>V2_h9-gV zw(B2@4IK{K4XyS&ZmfX3q?n}68Qeeyk+(&!M2<0abY}DijBq{)bPR_1aOh%XsOl_- z2_;<OmrmO_yXZsThd_yFSqxUd#OS#@`&K!J52iS6K5uukj$SwFf?v`G3XQY@oM?}` zz?NOjx+gAvm;j$XUjfvHtfxE%=Tq7$^EZSZ@d#e7*fhUpJAGynoC)Km2Ct1@78&=i zdj7VO*oc&ZVbg*<V&CGQL@1*BBxX3S_c*%!^|MKGOt``xu({aqgxtjF!J^Hp9Tc>f zS(U$FNhNqMfkxuqhKj_UhjHz`+WwU3uE5T*gYH8CC^E6iZ)qyAbE(9glU-9(@w6EA zdl0RW2SsU}Dk1bAjO#D?R46n8nZODhsS~Wpd|oV1W(j1gQ9C-G1)R+4iZ09NeFu&8 zFJoVSD{Zwfey6ddokGbc2vGN#QZ<mp;;Pk=O#Dv4ymule=h=6dHmdm`o!$r4a4~Dd zAED47828!OQFfqS4^26dJ6M~5jedoMhxo=X8kfTsyD`3OO406LTAzM*ew6BzRxS?* z;nSb2@uVQyz^S_>(VBdIS~%I0mzkJbb67q$ze6V?l8|kM>p-viXCMd$ljR?x@Ru+S z(xO-?O`V7X#t<SFC1u~!_+EGV7d*q!LrrCisD||Xrf8pJ45LUR7|fy+m5OnFthv=8 za@yLa2>gJh@bqDFgZD}^#FoNAzqpDK4=@yI2B2s=OrD>KUjTKUA)F|M7u=urx&U#I z>S*o#ged94!KA=+dSQ~%&IxLc)f@mVzCeU0DRU6Sobj9IlGIwl!U6?F<=8fypS@=E zU~J54LfrW<zHH|SL7fNK&uzzTEj)l{xv*oPtyqd6oQ;%1*JQ{!jMAy}Nxh!mox01T zjNw|cNk?_>ojteb>qwSSzja?;&*$q$Q0xA>nlOamQ5OD$z*UY$*q5mYARe)X>XPFA zxN6&ctI5m|Z5-{j)1g;NFeQc*kYGkj%XdI$X-;is3{tDUP}0}Fo?xkCSeV*3CHb7i z4-f`9O9*%!6m_-^K-!(0HdIjlSY%hMjNGJoJd<o{cS5&c*BU55--yiW^<Ngq(NfY1 zAu{L+#}a`|d=oM7W6@q&^~w8KU92YupCHAq%<wphnc=Sm!gjiX`r^y9AYDC}&LApo z%8b)Y5O3KJ&s~MFFj>IhJ%D}sR2r?hnhVr6U1)p#<Tr(>;Gi&ZQ2qz}ip2?j$nP7w ztD;H&E1hd#{dNw0CEIH;Q6XTHM&(~EN-Y*w+#6aIbU&0VG;J!cB}9LO85U4hpaFC? zk-mS4H-^ytgd0rZoG(^f=s8n#kmkiZp_H-G+Lu}WpB-6sT&%Ni;KwPMKg-Nb0`^tu zZ6HW}<-oEW@}8zHN?}7wr7PwdvGBt)%(v}j6s$^4NGV;lsOg=i3+_lkDP3MKwP#|{ z7ccfBu(&}?t6tQ4VCFhA<c6jJs%s#C?l`Omh;R)(I#Xr+TJsx=BcYEd_jJ0LNl2-> z2m^eV)M%i8Y<lL?;`r~5-7y}48Q}kHn4^ibCKDP<>*1b{#c`O?h1^L)@snc`6n>rM zN|KDs(%efF!w(-jp9tK^r}D|v+GD3KHyP`MjyyZYX%g}8y^$kma}B}CO^AqddCSyG zl=bNT)z+C&5||k*g7YeX???Xv%k;*tonKQTR>PkDMLU!}=evW?@N@tI=_v{HB|;&q zB3|l$v?lMrKQk4SXo2`wBP`ov0!eD+WK?niZ@>UNT>RjJyQ2M#bJ%lOgwOA_%#H06 z%LzVs6_eFQMqKNjXSa#f?ty1lQ>$0I=H=g*f1f;n1GV5D53N}wp?Ol8mWUyBCA%@6 z>lG=b5jx+%IQ$dEQbugIOGybZ&anP9d}gY3X}dyNME#MgY=8==pgAN%au(cmX$y0P zh$rz*^TMl5gP@*VTFC~?!JKZ(H(4j9N1)Vst}DOpE})jjJDqAR05zR>E0MmVw3SjX z*vpjV*vh5V$VzPywt<h_Vf=c2a}VRooged3cHB@QEsvK}-rl&7K|HhW@8WmQO3|(@ zx!7cRx(!kVK4%ZIKJ5y%(Dr1B8+$eP;xrHC>Ij_<uM%#*UK*9Xv{r4uUCH-svv@*3 zl0bfXCz8mRbA#7rSM`oR{c3V$UU%d=PDKqoyf|gP?I8F=p&K|8Z|Gyjf;Y~JQ^DHC z$XSLxS{sQ~!~=sGaf`s-QkTy@I3x}0&^Uxkc13_kV%xT3EDy!cUl<!rAx}8zzx8&k z8|{4lsJ3_3PL)$>wW))hOyr70fN+!EuAbF5&BG?F+vyoYBp5TvXlD5+h;Gxz;H@5+ z-JzB70|@zqUy6(CT~*lc4lqZgR|0&Odk8N}$F9niq7+l2+a9K;2OX+D@vec^^bGF< zN2|UC!{I~hA78nnzj5%Ogl=k&C?H;{AX4-x4En|ubF2%@lY5J)i8^MTcn5L6T0p%P zU|%tqdfi^(_lTw}Z`%L5k<KA>ZlD5KP5+w~N<xe~0afunqUKODsan2(lrx1_H)%|g zc73$oxF(hOmp!RUoEggIG@f2=(HaB*+o>w9Ad(&i`#=gNB}WH=ckD^#hg|d<lwyQu z+?fLS1Vg&imYC~-%X;hY#v$XvGhnEH!s{q9N48wwK0!0<5n$OOJk_C@mc+;v**>)n zz^U~8oYq>3;dLvXA?jD+#V`52HynRXes|ilCs@&b$gT1UbZ(rE7txzIIaN@1QiRB9 zSs~{Wn=5NfR2YPce#lVyoy$Xg@b>4(J8Y#tT1?R%DHhrmy}jFpg$goAS%-m}@6oa3 zfB-nweZ20j1*L&D2=Td_V3}g%#7Ti-1orM)nRym-_@#|qvQ!r;Z*Y*H1v8z|{+MT0 zwiAu;(~b<2V3Fl^3>Vx5X}zV%o*@*c1fE0+l!OTS^bC9^aGKHmGHWKzI;Iek<oq_0 zMBgP*p!<=DMT+cE&Nl_W&V8(<+@y52f;_YI$%ki#y@^`h+vtY(C5w6Fj61?rnMZ*? zTN+sx`BxtbhhaW?n*#x_5vKn<IpbXQ0@8O3zB`KZ#f+^lbq_M$LDAd%q4t28cyQfX zh4}XslgHU$|NPEHKEQ90`L<Sxn^tk_X~A5K+FlL~pZEx-(%j8fkWKL-lTjHs`5yqC z4p?=Gwakt^5oZC9TBh-&3+CDWWO5d?pSOUn>J+pxdOq@|ES7GJK{v|89fNgF9^cK2 zXVrmJb@@K<(ueTP$C>>gwkb~0MRV)P`~9f;WuJgwr_VU_#evU4*O3=#on$@2OYF2G zUiW?vX)fP-Jm(9VSJ$~jaYdOXn;@ZtCky{sVM=rtMdx=~b2X}wd8pAofS&h{Mqn*G z#6~*6FN3;E*Q5^qS5A$lm;J+BMp_zULJ%ff2bF^<WTkNWg`bsiKpf%c7OTq+vdtu1 zi@UCU^i6ITdJ;D$YBhS+BPU)y53<>ZStGqlbHZ{S$;s$VPzV)~fUk>X^l7n{P4DL3 zpu4<P>`S7)McpdGg?HSWIrk#x(nyJazIPn2bw<mTRXFf)63S|64lc2Qns7vGN=ZH+ zp33UKLx5eU8^wqc7I?VnFK<U@TxKw%Y?<NC0V4|eEMZb+r|HZ+o8DB_dyWz_cK9$y zgc6HrGt#~EPr=rZ*aS2D{4^H=1jWhGT&zM|UNPyP1es2&)IF*JGisX1Iq8W{l_Ttk ze-N(R;j@KK)wi6Y_RzZ$UP;{QtZO`Rv`aLmLWIs(q(Vnb;MZ;fkJb0F0~jL5KN8Dl zpc5fdMAto`Gi@K*oxh14!an-fN29w+*LYV956VNFhWb9juluG#c$^()@Ccy$gVeOB zct7nfs4JA@n#hqr<rEH<O+j_*;dcmC!IN>m(cZAQsQ6r&zbBOHFV|FQeo90|F+;(% zV*S+jy(SIJ5Pr}N+4!C5|7bz=@MF3f4kekgcRbsnC|#X&sgEG2kmhtWy0u=CsJ(<3 zu(iU5=uh|31W}!X<+yAq#rlz0(TzeL4uDx|f51m70xX2j?)$iK;ZKt<Dqh1EZ+qbv z(~NE7I{~r>%(gF6*F3wnGG3rV^SCkW=6S9?Jx>axS%bwrl+rvTI9Xb|^>7pj_XXV$ z{TFDR8V_&?js8L_Xd)J<6?0?<SFu`|7K$bcBcuy%Lh=dHe%tAWuf}T)f3KC5TtW#s z)2-Om@;CmnrKT^BbWx1;7bd?pE4bheCQ*U2qZec3WA278=7aDg0W;sa+_=(eaqo$; z@t-3l5n1$27Y=Xw{?Ru4vN;HT#U4CfL82yph-1wp-f~Y9|B|0i82s2t0WU|BU)W1l z<P%JDD6_WyU`c#o_ER1(a9pD}E(uNMD`6()n`)o>?JcK#5c;(em?I$1e*T?;<m!%M zqTH>X$#)r2OaF!QUo{e&7?dd!2mmMr0RYhdt411|*z37CTUh_-ks(S`v6&2r-S?=C z7XgGO9{xW93)oW~uSlgiFi0C~3u_C`;iX%&B=D(}sKk!}A@_BdcLR#+P#9L~y@bR~ zidrG55w~|X<b|a!riM~?SIQT`;5Yuk-#m!Lq(`7p(4nH*Sxq+|rxOsDS(s-1ipgDt zTTzeorKO-fH&g~}95KVbj2>gu^c2u#@da=bS!L(NffN#)bq}0&vfS@P#)E*sT0c}m zd5x4Fh3|mIx}dB<N$toAps;AoBy`Z%yh%U>M89kBBqX!J9s9(zwSfqT)J?Ss`E}JP zGJ`bRjT})!0uP}F=tfYA3@?w@q;`~io5V&__*<v$^0=s1uPSO|${&<prBGy7%QM;q zzpFz@PuW_pj%%Gu#(37sb`Kfs>`<f;3J+ii%1AzqTe_$#;aU<MToh<~p-Wi$m`%($ z6btbB)t854UZIc6oS%2JyJw8Ke~hkVF8=$+4bA`Xwf>qYSd2%T=54W0)pn?SzJ>Cm z;V&I;rB<oc#bknKlPr9~)a0IFRA_xha+(d@<9Q-p6Qu3I{I{H1zi2IgbY{TRPc6~@ zUpY-|jh%j~S*>nkx5<Y5)!h@=8WN|eUtMw%W~Fn1X0Zo)MOJT6Dyq4H*oJ&)Qcb3k z(D3*9+%A-!xOhue>jw$0tC;niZe~i_Qhf$H$IXj!MezZ}-&(bRvpjhwXCq10bQ)vs z{58r=n@sw(9CIpS;p-Z9Mb`yoSNnC};_l<%^L4g=_((79_$YmQcK5k7)Oo-1w0m?{ zdaic-bewrUp*O=ni5u3n<@4!M-a^Y9uz<ilAgyw{X03`^Wf2)zHF_D{%kMe$eIhz? znmDUDTCrMDVRy05%l=hP`DZayGHB#u&AE!@*4h=qdm_|AmZy<<!jmtzhty_-n`g1# z-Vjyexu86_i=u)A7>fmtkMX=nuBuO73ixocq0C)2Qb@uel6ax3JXNHDRuB1Lta(>u zSEqwiZi#HIjMi?AS5L8{Nv5CQGz-xEmPe{xrP69L%tteAI-sKX&MsmeNDq~?)Ggpm z{imLNTFjB>(Gq!k02sb;HMQlAWo^51C>%Kr!4({2xJ$eS(A@-?6&WZ-JGbGX_*-94 z@xVumaiCG`Pu1KS@pzT{e$AdAqqz%$MreM6qLv68VbjXyLw1vz#Kbs6_)@CHgHL#F z_k*PY8|jgTg&zrSHj23X!)ZjxL9qHCM~VZ6M)MpBe9D55KC`nv3e!BiHP3vgM|#RR zADt*Ady5Rb(+%Z9xw*=nQt%SsXW$4?qa7J!)L1{9HQ4FNK)wS4YNqSMpx^S2woaUF z7dw?CPvX=_ARqbcDEcOaK45)t%j~ACbp$xyDVc&P7p+#?NGf3!$4d(JsO>+9XRO6W z8RXm0#+pq;OE6^`5cxC|N5zf2m5S6Q$M7bT<LwT1<?9SM3jASr=aGL`_2g+zN+DVx zm6%x+B@wnBzbyNxrK3IwG!~qcm?EHSIA6wZY^g~hy^&1|JyDX@3t0LIk>Q7ZMCceh zbtV-JR8uM%38DR=Nh3VaeOu!Vej_yTX)pzYw`<Wz(&NDE(^>;_+IdtPJwDrP_;b#| zd0?-t=?Z>9out{e#tEg#N)sb)7#=$;VJQuO`_zj^Aa=~m+)Yl1S>#+UysUb8iPgS3 zjcEzfS>sN3%DKEx@^WUNSNnl(AvBHE!x??UsxV`wzTGhnF{)MV4koP)KtXz=za)09 z84*wQ_(l)WIRjm4I@t+mo<ksQI>+zkIS*;kQPWM}QSECWj`HX=j@;0KVH`&-rX}c_ z?6`bW{GIhf@{TLR+PFfJ6&H*W^<;sz%d@)+(v`p-oAoti-VjNuz(f<V<TC#>s)e%{ z1ff99Bb6UR2UNzppgRgRHV?r?@GUw_a259bj^n|m+A(G+<<rPvE7-kKVu2$F7|c1U zwrs?hBjXd2K51IL&AGG&@8I`0gds$3P<=5gpuXc$N0ks)t-KZBd2(dv`vha?EH<z$ za!bnWB^c5BaKJdc0VkD>Zpt?lx<|!sc%>#Uub(5L;226o;T>u3R|*q!-nF^O7t8cf zM*tf3N9(-QWUX(^@pa)iuv6f8Y~<3oCj3(;Z76@U*3}eo)rp%QTW?pnVo@l9fRIHs zqyu(mmNuHWSLXxAHEa*W5^Q?p3OTdcytz8?fyb*&IQt6=N{l|q)%rCUqxTqjx`X1z z`{GQP1p5aU^ZSeDG!{K+Vq>P+pMKQK4goVRzjZnt-D$8YLD%AI7|ynVu@`c<;vy4l zd>)}7<nvZH`5+gR$kG{Yg@Z<=RqrSUxWkiidQT*019k?!zV~k6cX07-5AHv+Pi}f) zVtlicmgyi^hhxy9(Js~~M8s804@u<|&%gvd|9kzU(4nbSRNsam6xG6`oj#NhS%U%m zOJFQlo5{pR>yG!A!2!^aj^M3LH-o=Bvva=AJ1oEWG9~uw`^E9Q!Y_HH2e&$U-0BN# zK07}Ae+L7(XOTRzko03F1&%sDPD@p;fwBm_zgV>b84_1zdA0Ro!yEf1hK%`88og%+ z5OX6?c3(IMN4DnS)i`_%m(~B`_NOUoTkoT!u>sc*ql5X`R}!X`Iw3l#gT6szc75W; zchCxr2<khW_d{Z3$Bt%OU<Urt!m^wLB4<Lhr*{|@D~Ec5)3ou5gJ*bRcHAjrwW9G2 zM1wOM1!4M~Gi~+4OW|5R?Chc&rl~nF7qkVq@IH=KL~arD1o?a2^>TCf$=M9JM%eD| z{MbF@#@yF322gGQRl?B|*pt*h3xNozmJw26h!Mxz@aCkB(_OC1zZ($u6YV61^<(SE z1t24oSs|X7-#A)inpE~$Sup@~h*1de#TAWJ!q2eci-Fpv#F#KRf0Ou4XK8jz71;S7 zZD5S0J0awJP2_ZUdcR`Vy$no=bG)AoMQL2{+as!is#PJjK2Gb`hK~AQ?iyvNP^R;% zz!VKkZHf}tL~VVZu=2#2;uh(WdCDR!TcCUE=RVRhv`g!wVep_fMs^R(n#H>9;W7N; zb=uaz&C;qanh|);nW1?=z4B7rb<{IMGPu~GHq|d2ael_AOVqbhfxNXpQ|K*5@-i+k zI3JcfTP2p*U<i7Teqwz;U7#?BXzJh8bXtw)?!<6XtLz%ElTttepbmrgLMY*!C^60m z7Zl2X-Vu^PEC$xYL!3l^!LQGTX!Rv>zeI$j#N?SJIlIafzhhI+hA#yml!<pY!=IWN zsEi^NQbP6g!ufU&buv<XtZZ+-vJIrJ;yv{<zZ3j-WUvi0&l_O=nH2^B0ObEOGFUh{ z|I7=QK2}aRBlRb4Uy*RXE5M8q??~i|(+09C)g23@XevoL<swZ5rS%1EAuotKVU)t9 zzCRzVOg-^olp5rfTCYt0&^o%6w3e2ZcK%$)g03GY99k?B72P~zuAgTwtuF`WeDurb zuRPpS(|4sRE3HdIHMJRB{QO)MY#Sw)jTMYNF7MMH>nTUA!+f2z>)5>;J?C3T1=g3j z(m!YAR<^9Sw1*KeVuH$ZY*TK9KQ7Ie*l-@Jtbe{`vUp$Q`Sy(}^a!ONz<=>uzz5%E z$B=D=$Dy5w+A0otyFlRoV6?8MIveu!)p(j}VTXHfDeH8ZOTBkd*6W9np6CunU_HMI z@1x0h?9e8RM1M4Cr*b{_)u1(wJ}j{hw;iwf`HgdSr`J}vcsQpa?ia%PDjlSCl+pt& zsVvy`AJ<O!wjPFwCkY=|sYUJhz8-d6pbxdc;%oyDdc|coR(g%1zG^=d>aK5uMN&0h z;U$c5+?G1IHLatDTpXaR*=KFR2~9JPN}5R5P&X{Vi-KB@c2w%GV9CtT6=BXS+HEF8 z1B%`gJa~q^G;Ak4E%@&$K8|ZFC+gBYe6*G(j#@I^I%&V~1UFb7UE0~J1KN)|J+&U9 zDjl(!byyxNI-DQOI~}KITxoY{_Scuts=giN8u!|&A-*zGS);%QN;l3YJhWV=YIKr& zEAKh^b7w|8WDK~$8f~@cDpbInGUczfBws*0aq)oe&7ADo_J=w$vk)<GUYQ2;h6_t& zRoQ)706-~^YAUJKuB^1hNR9S9Rw%#=z;wO*w`vFPFNVrbLk%ZU?S$-C<Bw9atDF8! z!D6C2tq<NAhX(K78Gp^skOd6mEJLyZ!rsFI2aK+{`O#_g2DeRUwDMVhyQ|(kdUjGY z791;WHa36HTEc@`M@<LRb9hi&W%+Tw6X&j~9%A!}pG*tnEb@M+wS=S0Bi;rgcn~(y znDbx=I+sZcq+I?C!naLbm|VhWa7K>L0^Mmo>G<J95yc6w@jkQK&QsXxT~UgEe%LRf zD~vPix^*n)F3L2=ovuFgAKpT4hdyuKIWTS<N)R%jf7#f@Gt6$~_vTtaFYFTvpb;(i zYXdLMSv<jLxzsUCOnXh)hdd#Y2`v;9?yK5gAZWg^n#`83=xz)1W3f=ohl5oqeelg& zbYssA3y<Tw0~k6cn7v(U+I4huOkWY`zdrWf3G@#5@{N;6(Z&0i&#(>aLRE4^@{C|j z+mZ!&6mS}eg}u2%PA)$78BQ_(<XhZR;8+-t4b~?h9-}}2-v-%c)Nt}msNg_sSsfLX z+LVh(u6AtLu!(l2E+aH-Fj21~dl<moF;ctM>26e&ue_%RQOJWReEjxP8~dXy&IKk! zDuF!9_*Xip@zXo6j!RfwZK{N48~EN*;M`JiSw}?QBa53TJ2S)&Ht)WwA|XQVL$ty~ z7;^4>8uDeH5G-K0C>}0Z@B!}mtnhd<7R5ShqeRCQ#E7L<SfXVEl;yMIY~*!Oz{G>b zwdh=enuUFawO{k<t$GUw<U{c3Zf)YClHNBPuTbPX-T){+7L%2FN01#Ca@2siKOiI> zeXH-J8u@mvLCSiMy;X`5vylfrlRM_1wRI*8OPuHkssu6SrTB~Teq%1^0zp)bE+BYK zdVYRQt+AFlAN4eC1KpK6?9XJ}YH;%81poK#%WITf&y0NzOdYl2?t^TenGFBi3KUB} zqlGJHjwtij;ZBb;sRJdG8?cj{1_uNc4pN%p#O;ZJTO#j;Z-w~UK(yCv>)ID<Jmx4V zD?-n#_#uoq4;LK6_w-3bkES#-Td5IIIN{-=dqAY&S$KG)QI=&HVMa^Jbi`4usBPJi z)HrG9$5^D^64W3r8ykv6$!AZZX-;7Q#0wNP4j7uvf#Dnu3%F;vYQ%fJ6cz<Vdp;2Q zdAmfq@|tKSK}hUU;DRyC`>Qr}Z`-4r>XLz0=?i?bbDgkgxz{fo6jkzxDT`1xE~!cV zB0d<SLQZ?jrj0&5H0^Y?4Q;GvzFzxSRHjvjM0GenB)n>Jg~gV1E|QC8RXqKIQZe4| zn=^Xw0<$v$ET#YkQ4djU?4LB#Dv#wUz*z|ng2TDAE!EE0UDy^Xr~v$g9#F!rrVoPg z(<Y@6`(7`p1l`}#ak@0FvOBcmIYG0TuesmNL3X-Si5cP`ARmp4pd~FPUA=y}+oRd; zuof~P(xxJ#>qz?o6>q=UREHLYuzqJdT}f7;i!%S<^mrc)Y*t7;{r00#X|=Nyjfm9u z4+*=}Y@@96v3%@~OzcUA7iUQl%-kM7w=?i68d)(G3A5N~Q0Qj@$>YJF&uga+^w745 zAbMvb83*`HwFU`MoS!M*9_@Vhq5Ok%lON1@x96!(UU06wKEU6Ox?#KDjig>IK_T!s zB*Z*ROs48;DNtD#?_RK4Ksyu>nrOHPvC~-FE(6jB#)dsGzWeqnw6&xBYT5wj@LSC^ zkv?7}cF$Mmhv@zuHGON1*qU9S4)Zgk_Z-tZ*+*+;zynXgCW?k4fCr)W?AtQ;>Ta#% z4L%%_{GrbewF{~q{!>n3gKu(<;gIUKa$2fYbW)y`FVZ;tmNip|jgTlNr$Pv{bsD$x zJJ1mXN9+N@IvjjG;0}b1u~85pwk-0b<t7nL{Ie{B8%-QyI`w`+oXRD98S}dIHD2Je zMg~lMy9cR!I#$z0b`qf#Z4oYz8DAHwuf%VL5E!gpso@3A#BE8jquGv)?Nm?mC)W*N z%p9GGx;4QS@Q1RLP*)fBR(jT$t2E}NsWnJ{>>9Pl>H7=fN|I<S2@w*!4o+uW;SquA zt)wOvbG)L7(X?tymNq6+14qMkM&g{pi$+W-5t=mAER^0UtBWHrRrYAW;higVl5%yb zfS@^_)vl~wf==ShqAiAbuTMjPZiZe0m9WSF0lnC$?-%APL2j4l?Z*&-fwCz4g$a~p zYe=<q0QE@pNUVJZP`$l7BO#-Te6KI10W<7@wN~9UM}|NHCOL5OETje?bSelEvS{rO z*oF^hiWbggs6#m|o##u-NYi#8#dee8pvDSD-PU&O@!9*GtWjYG?es`^fV}!sJAZ~Y z6cDV*9$Vp-S*x0?8g>sgoxGo_n3x=3XHSBgmis6FT||VyNQR#c+zcSiutvDk-n(dx z8i6g_RUePYm05?v9T#zJ!0#=)Eo;fDoaL9OWkMele$K0-u@wBAg%kan>y_a7kkx5w z;-lOwD{Hj(MbXxK=q47RKKRW90fr{n!3f7NtAPplHaB@J*#h$D9)dh$dH0S~ehx9v z$pi0$eMrP{>{;9Ua(uw=d9Hj4+QYt3N8htE8@kQ$4KtM@LqLHum|4XWtvLD}bGqoE zzj^j};v~=He{;zg)c<xQ;d5_n;m$%mK>ap-%Jh<<E3j5k7#9>VVpqC`sfOKP$uDV% z+4(e5NMO0z^oNpl&hW4~ydP_LelulajyHH16pYRUN8}!BG<5JHGJxb<oBm!OZKwTg zVdBGW%}eMqNcSptk{R?Y`HSEt`g89mv6}~<86M`>7+E>y`$h9BnizwsYqE@1L!1Qi z#v?}BV5cb!_HK`jtJG%pWNRC5dylHBj{?QM_FUj#wveYS{8ji-S?>Or!+E&rKR(U8 z2MCCFCk73-6GMFLjMe=5A_2P&_0FcR>(Y=-3=(q8*R}{WHgWkUiYizWMi%OwqJg~r z!;W_ScY$9S?(vXh_Ut+!;O1){=!x`HMj1LuFns2r{1`SG+FtU!-F1k4+BiEhUB~@k zs&(67JkwPFel`ueznpMHA6|UHTZHCmm`lt=EUbdtL%2G?HvANu%om>1#usioNkL$1 zxg5WA^pp-ZWF(pbEGO2$QJjZuz7{Uc_H#{dzQ;(MUmRw}W;S`_hnYP^V?NzX#p{B; zDM!;*c_(B0$Z6IK=u?4qKdOWNVcXywZL40fNJ!kFkeGGQx{}KqmE^|qy4yy0=(ShB zRmvnza}X+^_llXYPuV*R@ONqK&;2_yN!`F%N9voe66Dj}t*|%z+t=Hknt5uFxo~DW z*Q#mIurCV*N}H0H(_lG!AaGSVp@oyc;A_GlL+55K2*mA(zviBpEAc{va9PX4&G$43 za}KUd4o+Rb>%gOh;_7IufEPtNXjgt}Hr2IJ*}yie*PgYPe6O#-sbS6?U8j4|xT%H& z3^vRtJfBiWU$Ja;Cy5nqyL<HpE})ur)N(wt7dDAHC#LcSs5`E--njs1yM;UiUPGXZ z{32<5+Ll$U9)nOdAbdG=V)|zX!%(6y+pkU3i%!(c@d-~qnOPO^%8Vj3whU*sAqy1- zb^|TLBqP>cVF~NBvcka2(+7zgYLI_uR=4@&gf;E~zaZ8RWfs#-f1m8u57Ibv#x%1U z5kmvhi~G~e5+OH;=p<NC%@{~p4@Fy=;gN-+%jbc<@J>mxpY|tj(hWN88>MAZ5zA;0 z^bu2P#W!70|A(t{Y7B&FmT+t*8{4*R+uYc;ZQHhO+qP}nI(shP?+46f_w-Cx)uRX? zt|Ec_JZ#UVKjnfGaB2QIg`hWp%0++HU_0)uZ8bM~X~nKyM@A;*KXd;DTN*@f1)|&A z|8zUwpfQK^^L>8WSj%q{eJ2B{9zCPd1Yd&WR!<kI3X!k@gNm-oy-v)2_lP=Eu!f4Z z+;Q=m)DPJxxQkWaS#p7a5U~@Pu!?vF5=bc9o`El#=*FoI6NcMR<GusQHhw`+p~*k% z2b$~1bwEL^Eb&oGOGCtnSPGK<C9>U8o{A~$LE7mSotQ#3NrG?rHW7Bn?fGOz@m_iS zFkdJDmUwK0(xN3#dHA9Qma&<d6%AOGI8L?m`v;=}RKt0GXu;{QNINM41NCwnsZl(R z{^2utoQhz8DF8=O907flu`g<|Sb$zF&lCIH?}9KsjRo^>Yv0)s@6}7451ZdB(_?)y zE`MWrAEA9#e|ii#KpZ-~PA06Ezg_>0I3Mcx(|%+Gc_lck440S^(K4!DdOT#;4VAi+ z5Bv`~;dZ_`(cNbYwJB<xypBnAr-jQUi31oGVL}XWWyy_uCo{`QfrbP7uV-tL+n@;E zbnK&5SNR1FL`+Rb)id_v5eeD!d2a>63aMtk9rZLe(48SOe#~zQa{tk+$?9Mt#RVz4 z5*%Hn>^K2#i9SU-9slKMB@%8^8UgVU{y&YrnJt{4boa0iRks~&nCZH%{{qVR94jf> z)>HuQn6hC=`Ynxo1Yd~Ebdz|4VoEnHM>_=@6}e#}bn^&UY-O8sUj$y6QEI~`b-c%1 z5c$~Jgc})XT5D&9-a_l0ip`u0cVRF_)2+1CvStPdQ?AE~0I|bYv5B3gg_ktm8-x}a zX>sKRwia4UOlydzYr~bm{;h>}m>z`9Ydae-NW7km!U&T%8wo6}u2_j?36ME4I5Gl) z=~tk$;tEN|E-nwv_cN-Kx&ZvG+gwXtsjO8?)8o}p!+`Hx!@f3~m5uij`KG1FUqerk z#d7)%pk$lg^Bxk?Nw^^6%;Q2tYTGMyo0jfG0IN0G5(9jC2&Q-)ji$C@d{p2j$vXR2 zFp>uC=n;p?7C^yU(3pK`te4ap`c%2?F*Vpcv*{#7j2w_-hFH=Sf6$NxcijT^Rm`RA z9S#g&WFFEA2K<MDd~V@A>K|Er%nb+721pmc9BoDgj;!mB@>p0pr_M;@VE?=lk?SB` zB4X$UT(gVE(e}T<=q>}%e{R7uQRy*%=Lrtd@9tF6{BjT+N7{*Vu&D@N)#kcKo!8Vd z9Y|T%9NBaX1P_7+XU2&Sq%{B<iYQlfgtC_Rs{%y=XxQ)tGmTAK_v<(-ui@z9+8<Fg zcQiQjX%$*XBdOxo>QXrv4M@<cfo7*#qizJO?cGIw{x;~v>hG2L*yjT9_&@0BjJr&g zS+3VnOX&MEEN`_T+%5(2P~7KNaj9;AR0`+^dF+izx8bI)yYGXfTW2WBhe2s!6=<HZ ztC$Zbn_{N_F=$5f>4lL&N&S}Woyz6){XPk0oBe(8_!*2`<?Hf#|E^@4&6(--d^s6k zB(u%&lla-ua0Gvpc|ev#uxsF1ZMV2f835YR%GLpb<qy64gb&DcBRFA~rW3>A;eK-H zDd*I_O2Uu&kRt)Na6JgT+C0D%?+O-KNMYVSs$gS26xPquS0!el#QIB?2YU6yK%Qtk zl^L{IX<?siO=(2FHF+cTV5M_a;T+rIY@3A&P;ym+g8iW2zkP6YA2|0ce8?Yj7>G{l zaE+T8h_;g{fQIw47v4kfTSBEuVtQqeLf6lJNS7l=%7mhKz2**Q%;|+tcTsCksE1^V z<~emTNK7lu{4yZ2q=vU6Nc!A>BK`8r&gL|O4EOJ0a+-i1$wPk{awyyN#w$M~0sXIG zzG$ju0$ZxM1;{h3n%h}jRkTs?gfj8pFV2a6T$>@uI{%|ai8A^9{sf+C3|k>hVqD<l zG}~!$#(EoBvd8Lv>Y^<scBMPEk|;~(&w{DjwH5NcW|pZziOd9m7R+kIdVcHOFTAfA zs#8r=CU9x-w}3I>{avL!v0i)%p>DKp#EG3+RB%I)BF{>qq?QA6nm)0g{Y!Go<o<?g zb<p?-02FOp1E*Z}^V6Bfc6_05AcwGd%kZfgnwcb*M9{Iw^aHbtVm*2)RiA(5F>>sZ z!r6Sn;cnXh;C9>J%{y+>l?NWH5P+*cb+|Fc@HaU$Iq~{Sz&#{PV`bE>AdGB2n>$I^ z<12tY*ErHtq9`wpW;Ool)TVB=m<4L!U#K{oi?tcnm~4+dM`xDtW~56&9}1ct`B#kV zWZ99Yyb!&m5mW(FJ|PY8gpSw5%;J>{E7RN3mFTThzLOOsV1!s-9|LnhyD$q+uAGu0 zKdD3)&su8UP;^@U8w_bH$D!=$c!@m-6&$m9TnHCgkwOsh+AyC}5MMSYlb#qy^HWk- z8EP`+(Mh5x%Gi=}Qd)POFYp2H*k7VWt4XkI#=71@E1E1rW`0poO9q&y-UE|bu}buf zEMjG)H*aEdcKpW~Jc*9az5XzxrMnQM=mNtBrbHP&KT(K~>+%cTJpFI|tt9I$4}@3U zY*PH<^;y1>T&n=SLNp+F5|NluBKkhyUqzcUz1IHqblfW>BEBtN(#g9;0@3hZw6+6| zdeWS~<Fjv-`tDc+vO~GI0_TXFb^{<$#;iVTvcx%L8s_ObMn<fo_p$*Y1?cYR*0K{? zZs7P7MFCiDYuZ4I8weR_tS^1+N(LF$l{B_%^dHQVe;xLksiY<zexGakT5nni%%t%7 zE)a~ej=Y4ofh+-}b2CV#aN6Zr&AwDs0`Xx);Tl)-a&|O90)Sy`&GRZRbO_^T%W)8H zZ3o*(U%f6v?RI7o$dxNSSM<f#+J(|Gl`{Gd3xV-q4UEQZN5t^H{<@)XEEK!}5A+O_ z(K1kZwJ|9WUnYx{LUPCxCx>n?Zfu|F?W;wF3w+LOd6+w3-BVn~@Bp-_9Xmdv=Suor zZsLfwDKtqm!FlX~Utq(YBV`j%8JP=Pp!(}2q%kXTSb8VO&G5!9vm@kW6bIYWm;cQ8 zf|18e`y<wlYLD=}mIgW^4lW1crn~pmEh#eUd@nmeJor05!@52SS+pqzkmv)$;`>>j zwqiTuWE+_lMiz9F|2)rb-)!GDyhiPX&cAD2M<<?;y)^H_YnGznPN-p{5iSmk7%V^& zt}!x7d``RI{@Ys{moan%f9r$`PYtiU%1dAs!ZViV1!6_ecqYLn*`P*-fGC<Sd~s_o zS$By@8aI=wy0mKL`=Piqo${UU2@m{jhpxY3@^|G04n$}PHgt4&{sriKSq}J4jNy7d zo$!UbBlHk}o(@-1!Vc0d(0A~QGAovxi$hQVSok95*FQdF_YgEEE#GOo+0L~JJZ;xB zb*-HMuDs@QY7mv8QI%v(4Z``AtkjTyXy$TC-Dsnsnn2eJwMf&^DV+UGVYNojs-8oR zzJG^11MZXqJ%K_w$!JYSL|-a4Qt+z-2e?HKc#@~5eGym~nj(l0uIb<?^t%NPQ9vFm zw=$`T@pAVcgN2A9Z<h#%Aqi#)`ZP}b#8b85V8a9%8J-{6AuqjgtjUa<zZDZ%zL`&7 zv11ltM3K(9rgxRsXI0pkn81t{9H@~PhiI;us#q`>xXhi&zV8WiFE9nMKA0o?(kMJI z2O}MrKJr46kUlKN5M*=Ma+6#JKwH5`(ebV7g8)2#o=E+Rq9TD_oB$zYr41WFK@}pK zNRpW6KcJ#kW>{KSK_l2dFgIAq_hO`BWk2|DsRFYIXL@h?bwv&-W87jF0c(@V=>S@s zx0iH9`|<pP&W^A_323i%)yXVzQz1ew@(D4zGSt$WZ%TKbjv6*gcR5nbYD~)7-s+B# z2Q}0+WTl!WGK(e<tkiRmhQ1exOFt)Cmp|G|uVFe98^CP#akk}kz|0kyR2wfh3PJ4p z02S!r{br@3b9A4wc_}EfL{!%jD5hpyKXecP4qzWvwb)G#4B#rjJe5UV?_h8B6Q!^J zhr%jk9QBQkv)a-0aEP`cP5sou6r~5`<P9yQ?rijjYB%)A0kB}ee@OqOSzR*8=)9T| z5BCq9jQB`FO(xFAmZ&Q=ULBqoRMFi{`DlybE-8!n0bv6Kc<K7Qy*x`J*wD>dlR$>< zkyD>pbF_@GQgworL9NfRTeA#jGt$4ndqL6WXN0#wS}xDEY&;h+jwl*M^zDA>VCVFI zkw{BOx`TFp2)6vH+`m7gsDBio5AEaRrs){`7-mPLE1dN?Yqj2uuqwd#3mJSFRs=_E zL@%>F({KbV&~Dr`F((86S<(=L!H!N>RC3#pd0cP`a}J_hjV+OA9lrG0I3`-XWaF3L zvlf@{%7@s$oKr&r`Lw@9nH@Sufe%6!&<&ckXaSfdW}Blh^7?*FkpS>cN6A%B{z(PS zgLXb0xucHJr;{fb_~09E=Z2%9r0GP7G4jSC`SKp>iUd~kD$M2$Rl(`&JQr0{&#n~@ zf~CEf=2^*a4QZL{_sQufhstI1`fSeqULcs9BA&$?GmH-PFtlXPN3b(1)cDzD4{_Y= z>cwbI9Kdq5lq46#7ZRhTSwh&9@}xWUHe^FOaxm6T&tX}9{HEpA<F!*$L2+IA0fy+u z$P`kGUUfx<_CnqpA1@j856jmV9C<DoqRAospvosA3OEzcU@Nak>^wRvAIBjTeO%q2 zD?JJMgSvK0l>|zF`NL0%$jcL*{;~*tBV#8hCfC*TpX%58X?%u>Zcu;kq|ARhWLUdI zQauT2JTePOfi-?uI5LXF^ywxQF{sWk4kz?-Fi$kz5BJb@hEFfXeN1b>Lm8MLL2%HM zt^XTR^RW}Omtv6iAd)6$9P_#6$(10Z7A(}DFGef98@_!_eaX>4Nd!6yJxP1fSq+v8 zF8+{CCNQ*<qpl`3g9(K-?(U!dk^k&R>wW*IBp7WuYdT`Zs<U%~K})t|GVCB%5<x!) zC%t3x$YxJ&rQtj+QrlJDA)=%|g@oNV_<TCRBL$Ou_?}Y*7lI^C5_v1AoA{HL)r!#$ z6bc^kBkz=Dfo|gpg|w%|`KnwqTq|@wMhWYD<)3NRYNl@??39pgInX>OF*iYG!RW2M z-9KncOt9v3T8O#hN}_u4ve!vN{|C1TC?~NR^GWA`K^QWklEKbKV;Q4Di{6k_U9!zH zEjE`r^YfZfNr_itro^1M+2@aS5pBL_wKo^lG|hRnpAEg9s`(jSCk?*;R_7q;Kp1-c zpE@!#qR(9Vx~KpWCi5v;3a#ITb%&tiJ@+lZOP&EHq0DcT-%;f6x<f&szcc;&?Dze6 zqI`4a63@{e@ML~30rS=fhbC)xg?J6l!<EME!cYe2w2$65gacoUw61&3KCkS30qKqJ z6%6w()1`X*c|E^&PHaeLf=1Qu9=U~A<=?qdSq!_RfJOlD*D&jF_eQNxY#J<(j+ST+ z5DF&O`uivQO84~K-m`L<L1Q3ML4Q0?)dCB2Zj^*vwgE3K?I@zkihvWKsm?MCiHY6l zi@QT;05LSBRU~mRf}ZCf@o37ZVG~LpZ}l~HCM%AL&OP0EN`H2oW?I{`6y0%lrSo|H znkp^6>jh;E^Y6PVHK{aSHn3Rzu3VG><qVnM*#Oj*D*F5tR#J2#+QM0RX`N#`(iJ2u zlqugCMB<Q$T^fv)yr4&CBy?k@K!o#LXN^Rf^;{PUsqC>Tr;{vP!r<7Y+sU8y!X&na z^WI=`bRMvw%+d!p#iYpW_t?IF<ctl@oUzw%oZyg=kQWCO)ib!Ja+Zyc6)1bGG1=Cr zjLRq<NIg5qG%N$fBKE>Z9aIUY=u7ME%}Py8&4xCydzXVBS2JF%x+fRc!hL*~#W{dF z0n~DcaCfEm{hRSGp@Fx#30)vJahjm?MY&`VD|=V9OwiIKI>pM{T{5}ZifXq+Q*zqV z*NP1MZe?(&3!Zk0V7J(|m|YxD?a?Sr?$&<k>g_AX=38MaMwIpQuekZdG;z!$&%)Qi z`FhsJ#i$ARLZdN%OVYF*ffaz>1V8pkVo=KVjC?>W83C=oYK&5Y^v!gt_v5nHI(6BJ z7$?)Ez)NfIceG+{aiV>HJr(?={MJKC@2~@IG_gq{U!d$B$d3r(SNJWNp%g4_(~pI! zw$s}!`~FHP6yt<iD!}zK2TC7D)ONd}_m+Bp(G=S7K}C@Bd`Q=Aw{UAMOwdK+0A8dH zG@Tx;3Hkn)NBS5|3D360d^C?;KZ?NOG)uuA+rtJ3TJ&@cWygu04(>%zzrPH}?e2X( z!g{?2(Y=S^_l2okj?b$Vn9c)&Kdwwu11?#f;HVbl;}De*$t&5Bve$?RkM+C~ah}Ae zr4A0#TFWUS{bQo;m9sm7Q}n*z;R9P%Xhdm!>*e+_gO}lp(zjB!-6H(KKLMn4Hrzn1 z0IYK$!85SBKRRuBTpY&Gw(gITV`PlCV+^LZ?_0fbcyj0ZxBfk2pCI7v^g$jj?gYgf zYNmp5?4*?a@q9s1j5_iaKmS&i?W(b^G`2RMBdstm?#PE9boK1%;VZ|e=c$NiI5@_v z!!`%s?;Zqs=U<2Ypc};A)Lqk%_CK6;67a5@BvWcx07yyi5lCD&Zx46p*iH*#Q+EJw zpiGkUh>_qe@A6S?mK|m7v_rsBwS$}o^!G^Ax+%AJeP)#SG3d7Z!D8KKQP0?I-SB}A ziRy!);Ei7-wz3W+nK{{6p~UwUQ1wI<h!hO+_t)t+4n8l#9BD;QVrMeYng(yta>4u4 zP;XPS-2+`Ds4p%N-hc9uidofJHD=rS$`xr~)83z~o@|_Wm+{zDdOwF!8b=%@d?2XB zz9?4Gsu;yyZ_Ae~j-RcKgRJ=K6W~??6I5~IwqF`R-z@;-E1EfW`gTG7fT^O@7`$UC zk+*pd#DQ8&u~%-~n5NwGhG?2c<l{qS-3*TCcU5{eXq%M8jT@>A40W(s17c}4jq^V; z{-ML#4Oe9wZ^KLAW>(O6UGE@kwgoKx&YM9>aT(XTK7)2JN}6%bOEL)L(&jHo$1v`4 zJL}^htrC}V2H<gNSccAuUZkEKL88eRf`Ug^(Hy=V0${{T9DI6={NBppl=@6TKU>Q0 z>y<th$&&OFK^XWbIWd*qTsCafG5(OX&JKjprPtw2yp>+~fd&i8`qQ6qe9>>9ja+Ad zyw{NL)!@Mq;$I}|l`WDhig5x@E&k>TEsn&=ELJhv_mo@g@izAa1fk#0<)g_~&cqsu zc4IiM?1YOUDQ6_-S3?2H75~$6WZ<5O-~Xm1{}<m_?ec)}aMF<B88LW=v9LHbx}9?- zhEN87o#kkJ_V4(K7NCBGjSZA|)HgoV&mIH(c__i3NZV7mM?6iA@M2`vR4V_Fge$}G z$KceHd$87^yxy`j{DdZw$PP>5K%-{Po;AEo{)TLRMm-dCY4!f}_M?Cwhs@@3&o*$W z^*49&=1eF>MhcLl*&N(>q0m#4v@B7yLd*~G03Y6awu})m@s%1paX9ScI-Pdnfy#m` zh9C(9Y27vcDl0!WDT}nIEKi!5qDo0e>ehP8>%7h3CD-xoJR~1%0IaGUImfJ``O&@< zZlTU8c2&hgwre;y#G>NcpAJjHWVsGdr1X|}fG^_Jlw$j-!vmIwnD0^y0N*LuLE^s2 za#o5VBdO;tMIy>Or$y~bW%I{FrOh@i@RYD@+I|%|H8T=0-WL#xMaxK8j4xkBU(WKy zA($&iqEqc5K%&$;YP$==iO8nuVodyh{O%SXBS}wI5^^Lkc5&rRI&*L_>Xpy{f?BsZ zUGhW?HA;~3X)*fgT#k!F?A+^%%Z~PHWP<ofPomm5Ru9e+<1qSU8kHqW)xYGX6fDu) zjpTNNqnPlvv)|n0;KZN6a^(-ryMdm;v5+8Gn`yKc44S$YeDnK`YGaCC*DYD~c#v>{ zfq)f(U~@Vlu^E5Tqs3weKGYiajXIIO9TjAj2V|kgLdve1GYM*6Fd=abEu&gL+m{3k zTl<MqEi~0xXna#IscVG&TeqHPb+~OMSvb;`yjUPS?3`6K&T+y%Ln51MUX^aWV3+Uy zyf*$_AU9GGO(zHjB@0H^>gld=9Il>U6#oO2Dpi}*p4A${b_CYww<Jcs+(uXinsY&L zkD63j)3{~#^JQD&m%W*CPFbqptn^7yo<%`SuL6G@#(6W?b-rhZSc3L2rmVnICAg7x z&Kj#G<M@FKPaG?|_xp?KEzf2Bfoet`v3hV5(z!t(uxmf(N}0S=B-x@>>xGZBgUZv9 z(e4AXb7w(jzpbqbt?898UcR=YR633+>|c<C<KhIfa1i6Udg&jR*(6~E4>>;ojh;|W z*>y1e%Bs?eP+FsNJJOXJpchd1^#|%8Uo%)6Z*GaIsEJsIYzcX4bD2vEyaWX3sF53K z<9u?dOKqHdlNF*MeS~6n3N=<4ompD;A;kv&lFR6vLGNPmja!vYcA?0wneH~U+WMzA zlnyr^PgK3T8*QY*8_AdzInhn&W{4+F3^%$4n|rLt%dUHSK0TlN$aZnuEXi1?x&4fN zJlpFc96$`Lp|BaQK)Y&5)GJao)IXeF5Q&(v!HxgSM^&^81C_?yIyfY?bujH`$UrWY zL1$b<B~}7M0)x-KA)gYle+;M*wq+ey?QU!sh3}A7Tso4ey?sABvw*F90iL9vR0-s6 z^!tyoF00dIAzh63>JkqlFQ1Dr9dYe!W0FytlbEqrdITYBK~{xBIcZ+M+wCkFU$qLo ztlU}&J#u|t)W5JQ&^q9b`nr;ivZT=gC7~0F((szp{3=K?y^QR9xZ{MGH)ycF6{(iB zJ-K!B1*_c4>9o>~n|8P?mIuhoJ-%*)AH3sV_H*)KVL+C!&mUV&>U_vi|7<sNao&_( zc0Hq0S4D{NcMVbdlsORYreoyASXb{Cgz;Y6T{3;7tq*sSq}%TIMpvsc!gm~;o_jr! zlK`4`nH=9O-?0^O%%cj?9wwZdrnvSTE`DaupV)0zMZO)^g<|~Pqmjm@Ai_01&sTG^ zkK7G!&d$+I?~KvhhR-H}cwN2M^OA?uE$@sptFBMxHoOgQ$xPvl)6Uo(Z;uj-y3Z`| z%j!oNPnuu@g`1Rhx;%&Ll*b>`vhSa`ALl>5ZjDE<DzJ*kL$f8LAP7=O+=(;e%zt@2 z;-|rt_{n$Lj-Pz9FJk+=UiCQbY?zjKIi+trJW8ujevo=-cda1{J!ZjslZ{x{a*%pD z%<`JBIZ4wdJ(GdJBOP@v#PgXUqoBFDZD)F<pwWnyXi|?kE&K`-E+UNmDS|=F1YASr z@g-8&`s#ipoW{|vYF3W9Zb4x`kDy@;=A<a{$-$4lwO^V0uP!ljg-zLS#$7x%hB97k zo9WT6{bjFQusRw+oLjYXvDAwGS`mkpna;)1iq<P9gV}V-ZSQNpJF&Iua>?WVV>q23 zQI~>9OD1ETJ2DhfDA6aRNv{S{JTxS(HakfRuxS2U%poAMN`39j#e<xllQ(?vF!PS@ z2rVMZ`{3~&InC1Ln1ek)zl?q;#|rIvdhcdzF$%Q~+Nm3?hdGZ=1l?dKIWWF6;JVG1 z#!q+aOco3l?YHbDoaDW}b>za?{#<Q|xSZrUD!HJ43^uIT=&z<|6=8FF-R5>yTs?+w zEjb9OFmOW3Q~dj|%`q%WTN)~WfmTT^Or(05t5+Te^_{_2DpFN>2oTCCi}wFek{!h% zZ`x;W8bwwF6kWZb56=bW30lqL;9T|^kv>h>&r*J_iP|TwXq#dHePNeFsoZD6506X# zo-tY1{vv9Q*k`C&e1g<>b#S4dzvE|1Y_1vt%)Xdn!A4*Fga>x!A}=l(vOtt6g<FJ6 z6;gQWqb(Kg+c$Y58rMHQ?pM`LC!^%V`x$z^o}S%DBDR9$0ZeRjz8{~r>?oHTxXC(Q zk{>|QJT3&mnhViH-;aD+UE(izmGUM4sm4shP(mD2&B6E5XrWQjcIX?$oE+{wq=6<L zz1awDzl>(lv+bU2o>36?ms0&8URw;!Z{E%B&AxkpAKU}$XQ*@ap192cI@sj_h%UA2 zAVtsU267nCU$%=r@l1Ph2mzC775>3m2+4F%4bb3^xz4hOWs*R_{yM!ndSg3<G-$h$ zjRDPD_s;?lw8T>;K~&jklDcIDO;b>7g8UUr?Pqyrz-n9<&%-IyVVw}%bn)`?QmJVj zU0I5+%(-&LU)XlaTC?O0bina4Ei|9z2u|AM=S@^8j8rlJICRy%pl)*szleiVmP7+~ zxJ6?;C1lclc%JX$Wyj2vc8X1^{an<>3akAj@ld!Q!wE}WRYur*e=V4vcl8^cCndO1 zDP(|m@lxNfC#qX4YtrsezNTY{D@{swg3cX(J4}LEtc~%NQiHR@^f%ge;K<i_QLM0| zq<0$UpI_(>Xv@R%dS0$I-C<szpQgrdXNa`aoM$VKGwl7aZp-lL2kafPVjA7KyT;q` zf-bDaN}KMXOaGq6@tyHKpFk%KImobws@e_9X_t|7mpY+rWxy-IbZb@lUQTt;y_9o~ z;l4JPVa%X&sZ?1PEql9F9%-}wm#TPni;2zLRibatl5^)ZH*`l|0`_a}Hw`%ZHJi-? z9QrV`3V0WbzPpF6V_eMz?(Q_C#o2xlY0qFl*#nNL<7r!btrcej-9wqa;54Q%QXJ>W zogyWYXs?97qnc!P0#x$Pvps2cXOAOEa_iCn@OxQt+qyk|IGUOl<AP?E%eQmWI&A0~ zaLd5v`}J(=`|BcmWlR@C@(U$t7NBBOiBp`DjwPEGn==O+Y3#eIvq(D`$#}80_=^5I zU98TvgR|nr*6508ex=pg8KiAoK8{nr{YU<vO5~c=sR=`sdBeRz$1d?+`Bb&NbHXym z1p!KDlr%XhPZ*+1?h30DaZ*NvY5?Sxt_WHALvi8>c08f9_=eTR-7b*L%s2MpyXE45 z?k!bw?bg2AeZB|1nBofv{ldXai3E&@o+?;*`V^T){82$|ryFgx86*9k=Ab26Hoo24 z(q_~x?r#i|*EfxElw&;#Y4jjn!8`)#8NXs!8nAMpn_GF+z>0&`^9BmWBf~vywTtm5 zbF|j)kF^#o@-`^kLPYEZEWu!UJv+HGPK&E<HD{dB?C|kRj0-QK#al}HmiGKLTu}%a z(+$TyVEQ2zvU|USIeEkKT4gj<Qm%^`jFO({2Rn-R(Ae@NipBz4VdkU|@+F)tkBK&y z?eXI?##w&|>h2#;Fbi$&cPd8=kX^HF_uXFkB8n99-6)vm)ih7FRmudt#xR5{-`Fs{ zR|D_Dqo#x8rBTHuHxTIe_!5X)R1{+K&$0_`F34F8wm(S86K~Yv;7?SvK6#{-^?+;x znsO9M4ozm6HCk66h{;S&Z*m-IHMEwZf02JFcU$1Hj1W>hIm$#kd9X|{{RbkDkD4l{ z4qs^ZthAEkkpXnJc4T%!0!Pl0xWa1@@LZif1J|b%r-I9jC(aHCRfLwA%;6M_+qK=( zHWgo|_LH?E#^MLko9*4TOZcJeGj%rO9Y|QV{;;v{lfzl*Db#keLsch8hup-mzKwd7 zJQu)@5dx{#Kup5y`Y{mqPbI^Z-ezW}bhM!(>Uw%|k1R*dJ2^3M&T^ErUuuhzK?wH0 z5T1(ssWNmmeC|^mQNqzvX_;=RhVpd(M&_c=&^?p^TN#?1_voq~iV)%qp>yzKu7TzY zRXVi%j-aMqEBm7tM*A@|P-~uH8_9FqF(xCe7_Ax(sg=pkN^Yh=FHGJrScj<Rq?Nfx zlXJ(rz$8ZUiH?8g)Vx7<uctbQd^H7P(Eyp@END2d?9xe>8I0(AQem!yIDLow&USU| z;1!7t|11&8Hn)b62v;RafoePl{|Lc+;AZJHI3qUxayKnwfNjYI(i&I_jVP81(CIx{ z(it_w9Lv49_KZcpnq7Wlx|LSRWGcM%X$$M~_&f!uh$wQqBG~6CNpM;kfcq~3+C~7} z6?Ij)@8*dL=ZVF6q!3_PS?fYci)clex^6_TKrkR3l0q9n6RWhX+)#7AHWv53otg#o zh$`aN{AKqtd&oS6lSF9R%6U_X3!>M*(Nb=^?u)d=tG^s4%O#hbPk~(>rhc!O%b+=^ zG!!{iMhqc9zx1Z`MZbf~v7iO8LHTLnKC$95C^UZN#t)@!3}mCdL>j~B?p``~7?u2E z|5=BIKqX!a-A9~XQh+^Kw}ha&tMx~U1D4zs_`^r4$25X7vuQO9=mgaD_vs5Bkw!Tq zu?a;(#dts({z*x@(D8_ZwN9)0rC3W#+hc>7>T{S{8r+E>_HD}(`+5&O#&*GCao4)? zm&@LcPTj+)H0Ey&17mWzS9nFg*fB;ax4KTi`=4%}vy&)_R+@WYI-8qcxDNF1f3o?O z<H^M_Vnufo<**8?ak?<FVqs?HyDB~FVqy8F!#M$iY$LK63&&TJK~g7~c1+Zb6^wry z@qmBVJ1<6F=Q=BoPQWS0xzNl%+G(7lZUnfKpF5ENHV%U{Jw?dtpi;<{pkL|8amJC1 z0i?Ij<vdYyQs4qT6;=}znxfr{BH+IvLoGZ|vIVZ6N4-ull(MjD*_W!bTR|F?m_DIg ze89lJ)w@$!Dt2^C`p~0VS(EyX!}&t=y`b}jjhxck5IAY@vtuFa{8$8Tx`IP;NN_G! zB)f=vjr=P?re!$CVx-%HuYCQ-a=jr~r){Gq^8k}hZs@bDZO=_6m1*qy&;8bAc==Uz zCmLkuH(nOJ`0CbxiQ(jPL?!Qxk`No32cn*sg9>d;xcifJXOk&Q58SU8<&}I1RE{!O z(fFxlb+BqINk!F7lfXQbiKdv={m===4p*mlBhEW@Jtk#<8hdxPCbA2#b!Gb4(=e?G zbXnWb{JubBPhO_CSFL=4$nCH`p?>&y!Jy%gv8!qiuMstZB0SfG3)2o+A}_(q#9$0^ znIJ7@+ruWQ00ubLg3>7_IyfYWBH$A<b`=!vSpbDX<S!msf193+$0VbVwX4AWWO($I zmk_?4g%K0TQJ>l3!gIYjDz|-$9U-N`A)C_31d3=!O^v=_!R$;N-VgYHEkErQ@i*&0 z008}9003zJwfq>nIT_nHn%mm^^Zi6C_s3+>!*oCXS!qJ5lX?V9K3TGXSCL!Zsem%> zgP9K^mK>P6dvyj9%F7mN2N`~8eEhOvK)2>mpBnmFjjp)YlzMG53w|s_Tc{T$YjuiT zvG^Rqy2VXK)-={IeFlL0HY0Rk))>xeYZTC(??>XcYh+*S?$~>x&zfH?WZYuoY0*e& zUK7}Uq*|Fi@~n<{a0Gk8feUr}DbiN$@5DhA2G=b>X4dY9M3c5!r!@kr7$@I{c*h>- zshQ=77HnZr$q{q4E#)wN<K?IBSkp_2U07{f?yNCY(y;}u2qU1_y;sXg_@-U&g<$2O z+u83HINYbf9dfIfvO8^%8DpcxLGo9wZ<#yuXa7S+5S-gER+>(|6YfXTsiE4-lOa)} z!xYiYy>_9lm?Em^p<WvSlK7Dv=RM046>}8VNE#|TmInhW`T!>2>SSH=X#imziJ$=0 zEKhiMF7NV(oL3K2Hnv4TtslDe)UHe0=D5Z5mS=_)0S?6=^18PQz_kdA0w>%NYT18Y z79^p4OAm31J?|mLKiz@?OaQ2|9g!hQSnLA4`Upg=-#^KF(FIZOO>q0FwvR~LX39(n z`z1t(#kF2KK$FAhcXlYGTeOlY0XKZx<G#APhD7Z&tWp1(f#xx8I$J|<kJJl3U!*Rk z2e|gtMXtz`5;!qKC?`IbA(-I;_SvYf<W#Z^unh3yB!LW1BGp9{FFIZcscTqn(z7f( zcByn8T$j<s%n-JIW_T)xSB_hkq5Kq(bcXbaIKf>Xq~X*;U?@pIx@a|tslqjsIrbz5 z&cY{Y=tD2TIH#7D$zPu&NM#t)@Il_@&Lj!bT45lbdiv55PFyn_IeCdShulWzY0B;r zG!-<OF1^BihWBKdRIWYsB5;)`C|G4~ht}X|MZE;}PAH4IRq5X7t2cHAc`VpNQaDR& z+*%V|#Y%f`EtKQv2;JX|iaoXq_WA?(ztsS8(cf(X3IHGp0|0>h-)b<mGB+^%f5*J) zX3Qolg7>Q$OcN}1eoL3j!Bz1#$}}kr5On~)M0{uqf|)rr1C;`$#PGdTZ+B?Ykru19 z|BAXBjfD-j<B5alEws5AjZ}%|q&B5Oik9YOM}a8oY9SM4mG#uKRf?2WQzd(KrADLm z5KOIUWy9ZT+Euxg$71z}N@JIJ8nwxHZsUHh;q`-aFQ0qnY~7h!+8I;P(!W&k6AdAy z8kWZ9Chin!=37=`JJtzRTALQKNC_%RmQn`B7Y)r>PP2syzBwD#gC=eZ++Q0I)kPE2 zX3P_AGCN)m;mz^Ql2OZUXrik`17vQKcg50V!rchYg2?=WwU)!gt3?)4)&1sVnBYXV zdsVT7J>K@NXq@|DA(wz-D7zsI4L0h*wZ840k)*`Rq62X>ZNBqZ6+srlGe$!z(&TQ< zFXjpb0lq@A?gvRpt4q8#Gi8453sO~xG=HzFBt)WX9BC@>Zx*@`wKnJj6qOsET_nqI zG?Y|7OJ%BW$5-sKh=7$_TUuKvj5Om$%WRq(GaDFYD#fiYYcKl4yS;un?dvl|i=^3f z2aZUpcU;2la<!W!W>`6<(3t<xx%r6Cs_#ydu%!4jk8D9lx|TXtJi$$$Y_zH`kXDTg zM^GOY)H8S;Q&(XC+z$Yd+Bzp&!O4K}!BIP|Zs9t(-BMtJ+CZ`4cZ?SX%RFbob4>3X zXHlpRjOjlx;p$Be5w?iZNzDnI7Tl77U4#w@fc2L`SFO;P2VV^ZDcA-klBtWY7w3?5 z2vbL(k{#Ui+z$?-U+i$Xc-$hGWG|xz`O}mq@Gs)d^Eu;${0T|6AZV!Vz_vSPl)~h) zVCIvvoQBWerU%65npKdVKneM0SKT!2JaVyBKJ1S&e$9$csLO{&F=vyN8!Re8elPcB zO`k-~28C3$vpqVA9ro|;ME6kg;WW;lJg(uR2mw6tQy))5vf!Y%EU%?UN&sh?4wTs` z=B$X4oR?E15}~3?@>;q{V0ZiW4J+kig6kmI=&Gd9r)uYQyqZ7OTzM=xhY6q>kZFV) zZ>ejLAtF1CnEc#&V|UxuIGu!&RHR+e0XlFqvzPb1Z6V_`6KTy|o^-P0&`ux8?!9n@ z86GB*&=yB0Cnw=bpor(O)o2ss!S~^9dtS%gUM}CCE?#X5cMW`xXj!m96NNg2Ls6<< zxUoOHuY7{~Cud<xX(dK^yaV4wpyfPJDjWDG++({3CF&Yoz97kKuUU8)0eK3DM7yn% zlmGahWr>yI?2{>A@*a7I)g!3d*Ic$h0^f3l5q7k5?3WyFE6|U6&}x>xUY!IDem8m6 zxeWLU{U+i*>@8t4+L2#|AR~1Dh=KeV#(&t%Ck+G)s&K2@53i&M8Un$3FK^>MM%x$l z*{g~gz`b(wZrbyeq{ckt{nKY~qNCe!y4^XVLnAPU{d|GpETT4R4xus2m~Yi$2Hv@* zDbmX62BC@0uW3Py?)<t58m^&>jhf(%PX6{^B{M}Ho?5eQRonEtySqg)PR>z;q@Tn6 zGgk(vA!+r`y4L3GB2l_CWX}@)4px3#1Nv4AqO_=(ttRS_2`N>olP@|~_>}JnHl;NV zK!M*uK4c$(Ny*Pdbe{BXbOa~T9=dnkRj0-)tzKqp4Hj#$X&dV`#+L|dId6h>J4O;n z|HWh7w2{H0&wMMnYC&a7<XjzG0J5|>W~isj=4tzOKnJ;fUU4<6lL!pHs&!pb>sWtr zVOy}?Y}4`RzKkI#a<!(uPy=WK=I!}(Twc4z-(E(O6iJ&=(^!4A7P9mg;lM4pXbDPW zIlqN|QU9<c!2&yL6PPn+n0N(*w1qSfLoJ-w{cl^28I!ZT{MVMZ{`KVl@g<vD*&6)6 zFIip6c2o3UDvg?SF)+!hzBPC^IzqsJ9Rgkgri5n#sJTeYRCPH?V`s$B&&N!UxMTqe zQD{NvgFyrrSFCMM`uejTeb~+;5U3UrH`=ko_%M?dGhJH^@|!xP&Qc#fO(o{UAL^(n zAk_x#LBr}t#lFp>RpN*n2htn`Ks59E@jKQ4X!RxR$SEi~zi=4bTfE)By4!sR27pMb z$81wbL~s747*Oi*L{MqM2*qGO)RN{PU`K{St11*MNt9g@Ft$|nCY;lSX1t~%47r0K zCBTQLdq`m1U3rok!GRhmA{aGRRfQ4fTf#mP8w=6OUs$p`je`4WU!|eczM|dn0SM%6 z3t)haV*br$c?JkcX=u@k2<Rrac<ztEMV5l{W+R~F4;}pS9H_%s#g-ns4}?<bQ%MYi zS2lP`KzI{0K0@x0SPFM&Fwm)})P}153(^*clPQ<jTR%|%%={HlN;6R6>4Xy5Oxt^w z&w5~!m<N$-CuBZoo7+3K$3pJv&2Io?EDl0(=dynHpyqk>P^HO9%LJK(jhsKC8iEx1 zG91BCiM%?JHz54hDcN!oeLFwNw18kgh<xeIC)V6Aki0aWgo8lr!vkaBYbRL&byq3` zGrx&Hbfnpqln3wQC^6act3rkLGb)ey>;C}5xFV9EH(_EPF!UhL15|y^#g+j|NNLf; zN>JsE=tIh>!P=fK+4s}yg>zd22?=`XjQJ<YX|UlHWt}Z>A$n2GS>^8;JdaJYz6p>U z8?inFXS8-=$ps%Rp`*^n_;b`mD#JZ@2)I0C03s_1u*&_)vR1TgMPnqrD9mJ>@7%|D zYQ)SBXI(oSp}uGowFdCnOimDeIBD95T&~PbSKMtFIL6mSp`A=^*A(491jX5Ip>=Cy zGj9Lj%eDp&?v0`Xz)DoqszW*xajoY3`I-d}#(&jFVY!d?a&vE}ry%<Zi)@6Tq@hu$ zXv^Ti$jy5ap<KGAD<5HJo<s?0iZ~LfNhZkA??I5`?iUyT8R<9OvVx94SA8;?be4)L zi+>on&LS<i1cA>4gw|$*cA1_R8ufac7ZYRg2;=Q7W`?t<;{_&*n6B7UdT#E2)GsKZ zwk#5;tm3Xo8_`ucp?W6yM|=7jdL?N$Xlg`6=I3D8g6)8rhbWWkHo}yV1yGU;-4^|X zt^3kQ(NJdRaI>b=X);da$z;`VGAuk>pl-^CaF}b)*V0PV&5uQEaJZPW%)K_AD?!T_ zu0T~rWf$$lDwvO2v%?eMI*5G?J`D5=3;;JN6^g`<tmJ~T1D^kp!A&vY)lh0oiY$&^ z5muT-odKN2va&%z(7$EJ{22!ozBW@kLqpxXLO6IjuRBtlsm@}+RfqaEu3KVExPZyO zevbc6DDL1oVW-V>Jkn-~n^h^v6IFHw7XxoBOT@S@#elE2_lRbXO&^n{lbYV3w6H~R zZeaTS`}kQ8#C~phyBxkrefz4C>?rq|&Vy11y*1$h-C|1ogs$qpR1w`^Zciv$@sW?6 zqY?29Nmi$~*3>*}yC~x=)Nd8soZ88v1osu?<aXjPY0???&Di-nodISNdZ>;2&=}1Z zC4_u<iU(DS6~$ARUH8&aV3YWqOKYJy(o?YmzC+11!uiFT<^oswX|x^PNwg)rxNc6p z^jXeA*~4e$k}98RV=(%##c~e$o>O%E?=WA4*kYvX;(A)#)!39Z>kCOLj)K^M%T6Wh zY4%pdVO0k!gFlg0xFG3b7W1>R*K7^2yKa|k9Mxo(Tyfut;=GciH*Ibf!wx@sav~)4 zG)?vBx}gNs8Mgf|6-SrQ-0{^8EkGfcuH(2>jMt}H8-cq1Vg<!QQ~`79Otn$+w+U?| z^F4S{B_OqeE#i5`m$M;l#Xo3Tzy=lefY?%%W5bjr^j1p}U5M2Q%vDV3(sOgC=7tTO z0Vda3;CL1zmD@TlH$1Je%ln&23%vKvE)*xHr(2^&ObTNTug>hjiWgqw$Fe#o*~_Og zCybBHt?d6I6cFCOC}yMnjp_h^|C@4U>TFKK#7JxGW_;D{>!m#0&hEwP*}x&e$^mVK z&+i8yFrQZ-#e7Lx$FPo&yf>1pLrB~o!E9qLHOS$o2GrkZ>BwkRT)lH)-JKliL)YE< zy3+D6sA`uw7X&du=j$hrWw{g{i76$G+Hll0%Vf$1x%Ro!<LmwFzMtqgGsVsHI5qXi z{m9KUJEh9k7Rcm)Jvx|MV!!1h`+Iuy^XiN8(_s2Vkm*VCJ)QmuE47pL&VN{V`MApB z{ktgx@6GnRAKLTUeJl08>p|Qr@$>hmaCfq{Z8q_D`?l8S=%lJDDnJ;6C+995&F0fK z;p<cXm&*w4^9L3q;I-+*;DN9UzNRA{WNlNxXLN@xKJltM>?-K>JC=7V?ERNadz&^! z%Yfb?WH%whNSn=+*$8ui;|3Ojdiju48yp^5YRMC@SBagLC7$g4Bnzy2@#zQ^EUb>` zHXiM>bq{HD`WyV?$@g=0!*_bk>9Xug?$;&-cb&NZ^RWg*a832cBF!sC%h_@9BD5%! zy@o-TE-@3-*H#A>{F&2srN3=3SUpF8uJIPjZr`^{<oCDtH}ls*T*M#20c!)qG*7DM zNaKWt`-q5H**<aJ)^1S-1G^L()hgpUOH)Dbe9t6!1tTEW_FhCLKiANwp$NY<dX`#) z0t-#-QOaaoDPRLNa<+Fts<pn$<S<X>lD@hss$`A%0YFgBj3rr(^QWsFhrbb{j13ZM zO&ya{x{;F-R@-|!V&lacZHm8|OKT+6zGcuNkKZpYwM#J$+7{0}x_fhB?4Dme13^=# zFFARO@Day&V}ex(pW62i6iS-E_;&s^D5~CK#vCx{%BRpDP}SDhA8Kf-<`yej1a^iu zLS``DX{zBq$2&+2dPA8r^Av?yWKBiA>iY$cF^GMyG42h=;80E0$8;*8KVBtS3d@RJ ziW34}d4i3H@=6}yqxwZ(#kr5sDWJut{!iVxe*@s|urS@r5+3m5#qmDDo=yciHl=hW z#EecwOG)y15&SgnBcI;8o-k6ZNam!^;=mRZY`H|00A{U2>wh<5Nq#BNK+p~G*0tlr zI7ba`Pq&+3Cx|VfPa67XlrGtu)w$D7NCPh>0=Pfus(PpT>zMy?yXETJ!&)0Nc+pe) z&XdyG=qSdaoh9_p;Bve3ecLcfNGh?Ssk56)V4;K?DdO_L8Zo-(ZR5wb249P-#0`YY zg~kua!hz08pu!`Gq~{?Ii)?bBr*X@ExMMBNW$0jhL;3(@CHKpKv4^E)`hj9Lx}>pB z4<n+fmD9Qb*>wnUv!DBTtYi&AV%DwIt;ujr6TzBkfC$@lmYDMgtbpb5;D5TfB??_x z7X7lK-DPq6kfrL52nd|}%v2xSZOhv5LG8Po?H;$(^$x&VGZ=dA%|iLM)1SEC$c71* z<XbMNFX~aB%Go&}WUB$rYsP>=1$?Lh+24s*w!eOIyzKhPwc_zl0RX+7u-yF2jnA*s z<5B3BX2M}Pi^5WcrnU;9-SwrJ^t$wB1gBYW0Hwebhr9u~MyCv378kL!@Kelx2hsI; z&GmrTt7F&)-JBpj3HSj(!FNYkJ7vLEORYO7or$mp1GlsX*}_^go;~DEAHZY*d0bFC zV#7+14xYf*G57XM*)kH0E{qV#A2NQpkse)lg#^MiJn-Sy)3_FB6Rhm+;2qeSbHi|K zJ>5u?T0=qnYMpV8p|ZprsJWFb*fTV7OxLv+=I4Bs+lV;ywdjn=U{LW@ArSfpc)77S zjOokEMduFcFE~`qQH^C8+5?5O6fD_cZ|DVoXhztkOpQ&A^~Q{i&~c?v*Qt_x6jo38 zVHgsd-st9!HlFk=HOFPWzttRcS7-s;X`@Sj*w*4d4&+e`W_0-xETlo}Ih8Xol(7}j zGeW9hUivp8I`3V$pN}oCRk-Bt1eHQR>^t|S(!Q}kjLunpaibs{3#a0NQ4b~z&7PlW z+nOW$kuhr08jF|Hq&6It@f8R58!$w#^cvXG&5AR2MjPF)C1C^Ra80kpT!Xp;tfv_F z`~Br|vIgwZY(<+ANx~&ZxCsR^&A%$H7V7&qMf!uX{5?BsfBKk2Km@K*Mrad|nR#M$ z8AN|AcsK`CWTGSLrA-5;fw>PR56>dc;$>shD3!#IprkX;u<*bc2aQwabQ{%enbLa# zD9V+4<7+#&0&75T!%7Tg^&Pk<J*nr=SV+|>*=rhN^hU(WJfAp`OIn3O1;EwTDTVa3 z4L$-wLJ3pW3vu5|M#GqO$BHGO;<Xfy+VH@s4Eav8pX#fY!@^)sQeeL)Ox(Gx$(I{p znU)z`liSo7%(umq52C}IE?j(+g|1^7XB<R6ImOIy6<N${5JH`?wYj<k=jJrww+61* zGK5a#?7#PalU|!AI9;?A@FHVFw0k(<`&f5kH6|Bp+F>I=60Wy0sax2z$llBE4SHFs zaPZ38x=Ld6Fq>wEpkk28s2B<<4nGn;a-ifW@M0%=$R9WJISIy^Y%{y4oCPX`P5NV% zY|B444q-teMwqIYe1j2hlNb+w?)Qn2*O(_VQ7BfT8=cPOui+ePlInT1j@yB2f{X;+ zPHj_5n#uEI#VVgwIeJ*A+vrYOyZ8qWY+Ytifw<kH3=(s*W*kT-pxSJAR%4>=C0kz% z<MdhUQsLoRteMBc!HKyvK1L@kK-h&Iug}u8TQzJ!C+7w{gl2&GV?hP7{D)%la?`r> z@32E*ITwQ_ODTE0*D*rxHIiiJbnbiTCEx%M0<Qx(k`##-!lo=ORqjlfmj$60rb|2k zP7Jbqga?&TujOX3bDaL87Ho^1Hx~~JR#L*kJN;T#lB6#$@<|wBRb<K3kO`tSM*AK~ zL*K^fnPo<^wcDSiZhI*AfAM=BLyAJ9vw)bI7NS_itQq-EN1n}D+Hp?L&K`h6B;*X1 zkHREY_KUI5b->e`6;5sd_UXxXJzBGj8G+4Ph~^mz6O>ciEfZDN%S{6i%t?Qo%vdLD zPN%UFTQ%irHS(8EAj7#~#&dt*_gE%~?BmR9+OWWI!JQ2KX<4TG0XbH0BBYSbEOA2} z?ZLL8@QOHVpz?m5&S8MFOh(-4+$24gP{DA70h;X&S|-WaGaHf@R<Ja7UwE0oO-rRF zjC;;k`Wq)gMaQ+>8dzk`naR7s+yTVfwCF|ejQv-!CUm3YcTmQi?)mcfU~q1jf&!s1 zH}=QL-u`fGp<N*X^9ek>#5Lk`RR!XhISdY&#WUrjGoT0QJ$<kyF6fJ|Q2Ysy^o)d~ z@Rgnc%KD0Xh*!v<hXO-zC07Xi;;5LWy1?21=R(xZNTU{p;fB`dQT>so6J9_j*zAk& zz|nP1SQt0V?)?g6<?aejiy}+nopuS624Q%kn$cS$&4$lPH~|GKIu8u>gWwpCvXxDQ zuS_gx-~5S?0>4X!)y4iiur5_E&x_-4H_=j;S-gw`&qFk@E37eRs9NW@bf_WKVp#_| zyjry@+IEa<c1#SCKdjGw{8;Kp>z0knkZ4}FSC(yD)i}ZvR@x_dzjjuQ8cSBw7p_sZ zteqST^Lpov8cVIXat3`6^xW2VC%B8ExuVXYO|PKDxyAz5MBSl4<A{+|N-~L5@H((G z3*rNfyR&3*TK@+NQ>$n|$PQ|UckVD?_kSwzhDle{Br|l+&_oMGN(~2>v7zKI(ZrWD zG<Gt`EI&e}s5B~0`s>h0?I#|bZV{Q^;MVcgVkn*g>?WloVVW;h*Xh8<+^Nw#hxWvM z2@ttKExZ^$d0`fs;Sf#*hxf{^Etm+6NiJjZ{=n9j@cwWX>A`DOjs7ObUoRiCdEAa= z5_lCwBn;>+7<vXPK#AJWERTBS@biBFS3s!0#x=l~P&#(&23D6<59R8iJUx`JhYIx2 zTntfuGL|IB6a5qGJ@`+ZPg`?!qogBxqrEOBf9#)C3#=K5=6Od@y;Q&u(F=oeY~hCb z6<tY5kvn*HYS(^b)!9dCfIvvK6=NVks)0@t0l*m&ErVyKhLvt(QciTTiLs!r-I0aj zSWdav-n$!RM?!#k$yXhfW)$WR(?@OtnynN_)mk;1R5hwgd6MnOS~s<flg5**?NdPJ zSFMxND0d6MnMft?NZm0R5+@SKG?Fe*>3S@Ohu8t<x)j-}RIN*aN(|8qB0$Mb9uqt2 z>kjcc8p;Kv_E2>nU4!i4>QnZE2FDq;ObEI9+<pPu@yi8Fn}}LS%MlbB)q=Q>uTr{& zmgYDorIG5G^3b{~i7r!0X#vPHc|0_bWUYb*0B{)q*R_M~0Hp<?p4!?3ODPxffv4<s zW_cQ|m;|a9{?jL7dTe4+JBU_8VK6%9y{e0<u5O%#J&3le+uiBvfdaR7x-Q&>neJj{ zjYX^OA$^<Dh^xCbH_G5VbjJdmKcVr-(Pe_&L+UKSb8?z3-1{$3fKM6Xo8-{r@u0Th zd%)pPahpX6^GbvV@pJ#3HF3GR&3y&FOYW?>BHz*G9)|Dh?yMP>XSTUD__o{$q>!n& z;=H{%-gGFsNZjkx#JzWG(MtFlhOgmh34C3FuPf2p;42Pa@#tK=wy4-<fl{n@j*~6U zGR+mY*TtJI08s+g;$BYNn_d`+{*B@9d!2$*^=UZ;Fj+y@YB~Avv8@whw`r?B<G77z zX@1a<=xqA@?Hn6|&lcb;-U>8Hcisg0HVRDb1PpNku(1NPYP~ebpVPPi^>Hm{t{zUs zs!r4;Wu`!n;E1yN=K;hqzd&c9qSg){i}J=O34PH_VuAuvpf1pDWud7rsQ`GHG>nSC z3l@?c>;jmR4947aAqk_DzEX%Y<>W?uQ&+Jr-ZEIt7*$KR-T|#y1*&jk73#w~8L2^; zcQx*=h42+<|9&T=bn*oi2=FifD5d+c*jj07BYx1&@6gLNgT0%A<}SwC!a%;cjh3$= z6Sab57U)838d8w$T)BN(F(^o4;7>U7Oj`ioZ7$2dq0*!@o584m9y_?`*I4}gd6137 z)aElmP1>Xt?Z(KdEV56P&#TQns@$!7!Na#>u*pXU3qh)xq|YI6k9Ir#su0ys`e7l8 z0qwm+q32j^qOi9L8N1q>d*oERt6R#(GMmo;->@1;^O@)`8`nYe_pio2XaKFXws8}N zB@Ew(;iNJ<0}Y903n$N2Sreh%Yo`FNIP7r{Z_sv3mIO%fU_v|1wxV@`1BMF*2-rT% z41~IoSOdoXS29*#S)kABVGKe9{ZS%FG%vk)BPv{8TI&D>hW6Zv&yC~o*~PwJVb5O_ z<Fn`vd`?F~_-r;b$8{t2M!_zm_WC3tRX|e=aw^?!(;4FItqCrm*I&`4lYe>Rd>rhd z@wzD!54oNN7FYlT?jLSYo8$YdALO_-_EcPJmWy|mz-!xn4B#@qeEqAL226(e2a+c% z`z3g1Z?M?9>@QRJ6rYKx)jd%o+DPZhJ@oh@MszSI<<aFxwe<O$P@{wh3th}2e899Y zz0+70CNvBFsr0%yGG5MnKx)?uIP^6OIc`@8G>&dBO+X2hLnvx=BqGx3mtf@8dg#An zJgEL@Zu)18q1&Jv19gWblen+?NYv=hsI75(8?jAP_#0TIu5Pr2K(m+*V?$l=fPRP; z5!VGGkaV^BJQ#!ficrY5lSe3VorfGsa}S4E447pmJQ9=zk~um7^dE#wMD1q-a2&?9 zoqh=o>D>geBhtZ3JtA82-@%?j{@hG|1xSIm?&y<wlpXXr7Is2-6_l){^3V~3m1bN- zm6v*ap^{(~a^xcJkGN$Z=X+?@1T-+ypr0p%Dy{w$n1NN(a<wuSX31z4S)^_e)P-t& zu3FE7`I0gYZPW(mif9U$MoFpEEO65GfT0<x!g8g_UOFKMB=8!u_5~ocCYMvL<CHZ5 zR||Ot%FIs5q&x<h3becVO_^j|Yl>zN_lBcp@nE>dO?z*`27+BC8`DkgnrT#eP5_mo z%_V5nX1WIj*Fp_S0{OD_(<Cwji_K0CfReM)ZOT@Gljp&VVlYJu+l*SZK#tR9$X5;- z<q7m1=uV~hMp-1sUtUC4V}a0=t?$&YNEEj1!lsdRt3Ro(ILwr0T~7N*Gpfm<(2Kw= z>Yi8ddEh)ggZtUDk3EmECuPqQ>=|ayBk-hy1DXc*QxUBelcu*V?8blebhf@Ke&A&Q z<fIG|{55J)tJYn?m4YJ~95+yDcFOf$>I7b>{R7(ZV^#%lL4fo{hEv(9z#eAor;s<; zlE9D0E(zdzz@^kNO9Cn65UvM^!EZxv*t#5N#Xuc=wM|e%XAtvHH+#MY&(>$YglFKC z7?=V0lq&}ifK#783@>qeCd9QJnwMX)eB(Ir;34r~%W{}Pm2S~C0A|U6Ei4`kL^eT` zKP?jDYt`V>kj)VhfB0YNAdm`znKpn9Vb4ML?qHqFx^55a(mkv*_pnahgPqyC0kT0o z3eA`9QK(V6U7><Br>aWIfsh#V;nI8v;f3CNN51*qMI+yaUK_6IvF{eND+)%EQhIaY zyXEqY@;oq~^l>Iz<BnnV0AeGCE(s$g4nB`jy`SPDJ{$h;gfqm0Z-gp@6FNEc9)l!x z54Nl~BIw0lcWtqh75i_jSk?!<|I7-c*A&P~d7PDUx3sL~a-&qya(S(k+j4oM7<^br zwughS-UkrOu~wc~o`?ia)kmw>K7zlc_ok8W{N9<ksBbK}U7ptRxM6`jsXUprWhCn` zXqzQA25=h#cnJY;MIiz3X9QR+2HwH<qhjDqe19Jl1$@h5-~hfiiGe-%UM>dyD-F8` zsUZ|Z=5mXB54rV0ra~#3Bie#Ud9~6k5<<oc?Lo?;FM<SbGnVVs2Et<CMUd`SK|BEv zz13+tp~O~;Pf?JIV&E}c>Wg{Ar~bxa5C>nOWs(JmXF2={RaIi}Cos#k9LnzuA}ONT zsZ+n+QBFG>&d~Gy@MKF`>hnE}&tG8USOqbiY^-qoviBtj4l)5TANp4e;_ASdaZ<Ul z$#TYM5@EEUT+-y!SFw+QYIHygl2np@)B{+z82Bv@cJZ*Bx$|id4r&l1343-j@xyHA ztvt3Bdi{OC3EKKtVMGjE4`pMU{}mIzS%oxT+_yOHZp3zmg4kqtD2QUgP49Iu(*vfa z8J$ehVI|QCZHwcr46u{IVWgf>$EvpoDk5nkJOC52gH-X3x1<Gn-Pm^VbxsW-v}Ap* z@X*QFm`3y&kz$w>_!vHS?igvWn;t?Hx%Vwx%a5%SpBiEV{t+$`#~u;4zsBOfE&gZ$ zs#>u}r5`A<?@4o&*!RWY3y?Ozs&CQJ7I0DLp~Pt5vgI;z#|X~!&SF$9#K0|=HBHZ! zFPYbnAQIjh)f5%<Pt`QqF}?qXPqLa*uOb6&OBOL0K^_wWzrwx6G~(lxPNDZ5oW{qs zT>iHFh)zzddu#3Ndy7dI2iutN*aazD77<35+dAqDs1eS}1a4+z3*r_fIE<4;?<jQ- zQYtwU&Cm<R?6v_M6G08OV$$Nc8r(k0lp2%Cz(*RZLhl5KeSv{s4v$+aTAl}bSQ#$b zYA476Y?pF4Z`-HHVN$-%G;(gDM2}Xq8o|fw;I*|a2N2b7%XvV=V}Mp6(C0IfK#rT_ zafva3MwaW0=jk<~p2eDi!={FCQjQiVbiEkZ8)xJlP;tz0ZrE!;_C$#5xogJU!X(0@ z0NKU>_?nL3+sK)%!FL!v<2-~r485oe!k}4@q3^|#JNbb~zLcx?%s>QG9`W_X@hFeX z^BgELi{lt+d=50JQ=>pr9q(?Pw3&BwtRFXcMmfa|zCYTy1T*Xaig=&I<P_UEg^e}W zY#u`nQxqnF2bmnYnlwmfX1i>f$&e1o7xn2xV?reu-fF^R=_bM&{@nd;kB|0%4WUHl zE0^r*^Nc`Z<ozusBkRr9?4{8IA=kyij>-gLDEC-qbq{0Ihj8DSywzf#FL^b_yM#SE z4D+4Qg?F!kc$3rVcuVdtWJGu}7M;rk){bigRy6JImSRpyMcA)(SiK_U0P+&__)26G zhQ)5Dblb16x1@A^sBVhp?lvR?h0)C2DbhGSkgpFP_8MWccH#5g?1`~D8JOis8dL5< zjC(!)e7f#yW|e771tAAU6GI^^ly3MsnOOjXTL0qZ@jj1#z79uk)=N+hpvdC%{+8AR z!&|;Z_KcY}_L;O0ez^UnkgFeL?6VN4bXU@kixN^+o@-~3Qogq5*-<>I`{`Hx*g2S+ ztCjae^Ax7NX+U;t1l$Qs-T<)LgyOb2iK~RT<|iPY=uhB^@`95lXnXL33aBK!#NuiR zn{eBVt!!3C7Z4J9n)MA5b=!&F523w(N0ZeBBB_oy)Z5-%LEn#RT37pyiG@yX(hW{- zG5oy*e_z309RBXQ(aEiYH2(vQ%h4)*1Z1ZTt*?;l7YVC0VMO_z{(Ml3A2Xp5;ph|t zxbwFQwOh4l2RuWqIG;r4cQ|=Y5ws3xYKFQ==x`Qr9nLu!9nR|@Slr=UfcuCf3-fJ@ zU=By5>DU^3^IKvd1F6k*0?S5&jTDEL^C8}$x_S;Wz~Rj)WVqAS&G>Nz;zOgU37gGJ zs=GsGrfjPQB^43M5A9$W-8cp#WtG6StSV?pqNJ=U=8`y#GrsFM)O1P%W3&|WZ+<>% zBJ4|fq?-$BTfR$NJwyOKLGmh>hNYS|BXGdIy9GJ3M$2*POIRgD?j{|$PxQ%*$R{S_ z0)1NyGIFX32D6fHd;!doP^H;T12^i(ivjds(<%k1x?FMf@b>2J%|ErBBNwrRB36J2 z&5KMlFH9{<`Icx?M<u^4cur3B4=j&nkoGFJLLB}Y#;gRrAz}*9Z+TFY7WqbSTc9qS zgB`2HQe-T}8BJGWMwy3CVHB$`Zb)?L9e`0Z1K~PN!_2xHGK$;LfYI21YdOVGF4)K8 zuC}(pl%fx(B$sM%HQF}d=#Zz;1BS#VXkr=GWf)n8H4>*~%$D6QH<;5S#^PM#SYuIn z=?u&?oX5W;6g&@K=xuPZhjD2fnS3te*!gTyG^@dRBT`KbF+=hhrY}7I_LUKPhglnI zwm%bNuh0eddj1G|1rM{=OJVl<FJ#SMJjEEAxcE>t-^pq+fMiVAqajql$lY;WtLkJ( zP2#z5CqouV7ep|8X*tVr#fKwjw44XfHG?4z!{^q$SIjWDf<J{;-v-0ch$Uz_OS;)= zX%!A|bsV`n{wZ>|zFt~{oknlWP3+CoY2A=L8?)E-{w}%T0i6rxC;#Rd=uT-unR4l- zrmsR(pDUNfZOry(Er&km-#kAaJ3qAonLfMLab#+Ec0>sab?x+p$!zJ!wBKnh<Juvv zoraQ86?&98v8q7-ifb{|LX9fWCvcgG^wHPQ>YNYbeC*h<My}Y&t=5VXel`|$ZGj~O ze}&y1uaAxPt**H3Pj2-Qs>w0piYKT`b;UxizSXEn0fklftyZ(}v$mn3eg*lsu4dF5 z?AWoyMnJB<zOY`f6=AtPV(M^dAlCYs#{9Sixhjh+<&DQ}=3@G*PXO<wW>P8W;pZ^y z5(b?78ZkH#MO3vVw2Z2rI9XxFU4!Zi%FwXX5W1TS@hixZC#|81CoQV04>;Zx3wB9X z@*WM`%5hMsAsF85+`5>!V&n|eD!<jz48pqrxqB=M*CkN!G8FEl6B!EqdJEeDacpt4 z3wn2({o(cB?Urv)O1HDU-uy;<Q)On-8B8S01i#^aEeGS3!vd)`)9Y_#+u-))W@&t* z-Xo{U5qhH@O{!yRmHAqfe){p%C@CMaJsnadK<f_7=eR%M;MhH8F>pV8B#J#s-+`pw zJT1B0=Ccjps^}c7DpniR<m>IJ4*=P2nBmno8$wUw9)m-VG=gX#eYjxt2I*`VS<#0= zaQT<*gt=0&B-}Cohs$cermRFsD|DO?sd;vnS^5V{i+rOrOQOIzwo%leM9V)~;sL!x zzqxS}&d8_H+?IvlfFvuW0T@N2T<+)TWInM;;H7uiaIMkRgD!hsH(idwk#+V=w$9$e z$#(!w(G19$YQ)uaFLYs%bOVa<Rl3BPNb|6&J}qY@${BiW2<@s``ZI`a_gfmDMQmJg zT$)$wdi)0Z&sdOJ7xx<*)aGtSDf*H$`^aGAlN9DOV(hTzN)?0~aGDiKbkjFV6HYcp z&DEo5*3EMn7~xI2XG8^5%VM+zCVB-o3v}O;Jk#Rnzh3JEV_;Yr=p88|`#>ICLnM`E za-`)$qwQSFr4-ruD*<&@J8-j)EG&${EI!ZY_R@zgLFsP#X$9NRaCFKd<O_r!6P4~O zYNa`vrYtq*D@U~k$f&I0VeYOc?JLG?DFp}QbT38eRU5s<OE;s0!yPP~%x2(vtrM!X zdTA_%=JE;`zzv?Mof=Lo@cONd`>{I*z^p}et4D1<4~?n7#(?sL`vTn#=A0vj6sUxC zM2LUcUM$roI@AlznEYqlQ?Q-7OI;RE^ySN>$~+KJq+9IE1bLjB-h-H7r%#7Yk50BX z3$k?}l7i!LOCm`&rn}BVtrTs#%4om_^wymih?l{>WtFri2VguSD8T@OAQ_44Jl%L% zABq3s*w&nZ&cJeUdj;6x_2sxQUh?%4EAER-5Ak1D!IxUh^bKvk(wR$}XC@R5bEPs| zu=x~d6Akt4N&$mJ{o*U4dB`-R4(~yXgOLQqW`eSXH%M7N?X-`c0Af(C1LEoswhcGt zfbMplK{l{m!E}U_jc)DqX!<AhD@L>pZNZ-qIO&=LjMt50^WY^Mo5e6VwsZDr$SQI! zeFdgF|8$y?o7~oMe}ugQ6cJj$5VlX3c+wgDo<EnS<K72}Ifi7BMt}}FIWt>}j@I}y zXf3BRkA1p4k9CHRO8I(6$di0@nC+X8kzBxW(M)w=G|fjp8XB{WmSl&&#c&WZ=-fo# zCp52+-ZW()Cr@zGSvr-1UNMeV{1tb2ZXfZMf>r}vaddTzP1`ojaeTwg{_f?rQ-fbQ zT;{1^r#yoW4JPsN;XkSjqLyW~g?ryYi~cv&X7ZIP3ywkAXd9?xazYvI-uP%zaNVnP zh{`8@s*L;5j?{G!x$zDVNlOqhpg<IxRk!QXEZM>aY++rG<1f-UNcMTC=^Rt-9Dk7? z^7@6O5L=B((HV$bVlQoh7|G_PKbgUFAu-s*_Ju5HS-7=i6M9{^77w&;1`JT6t8Itu zSqx4x=`f_7J_~JZXL<w=7?Nh3LL<FtYs4?ZQ6b@Yx?_#F6=Jq7w%{WlAM^3y#D^On ztMIWd^g6E5+%2CVP!de#x|;+R>k^(LG27+B%gU!BzF^KM0Y!tHRQ|eEUDoe-LmFTB zMva@UM+F<EahE`r^#@N$E~Cp*cnA~?TbMM*NOk|k|G=&On+N}*bV9*>7!4TrVRRpi zD_LeS9w|I=zn`n2TUc2*6bW>I2J(>xRt-P`Of74~xsgs+53{#s<7OO3xKfyK!%{}+ zG<+Ft;r4{`uRPMjjqJen&~HHzNk@!aTi64NyXxu(JUzcyPL34exg7WNzj(0lq%@=E zd0SZgH%zUg>aq)Jbsuv#hp1(cC$?hH6^9@%Wz&@!TU<+pDp8KE=xV3WLDVkva|29t z*9$fa*v|PJ7o}8toq1zEb%CMmpIFO0K!834dW>1$R?@+oLt(&y+S{ecZQPyh(gc4> zgT2`-K8ZW)t)|Kj)18&1+Damhqmr|DvQz@L3iQ@8GYE#b<MR5)+AOUTE1ku;GIiI` z3n2E}fQd_Pkt`)ECG%oOvw6Ljoe*K!T)9xu_^2MguuW*qW?B1m_oM6EggcK)Gg~g* zEaftYybjaNl?iCeC^UvQjDvA&&83ad7XPf?>Cg|Y)5m%kG5;F@{ck=2h7tFoX4l`g z%o=#WFioD$_SVM(VGtEPZ_txww#$OO8f3%j{Cgfaex7Z+gMP#MT{yDGuY(QQ}9 zb0cnV$l4z-Vg}z;hTX20XTf}s^=o|Q?8fJ`7x7v20zONB0nattbB?fA)@$rF?OFCp zeVV=I>|n2(w!`ZePo;)up}EcNdWF6DUHjo30*mr6hJ)QOQFNwq@Qo(hPE6eO%FHsZ zGj%sS)6q^#{q;;tO_-c2GvIax*ys5XyKPr&Ci*DT-vIm9qALfQaE)&>=N2^Jlu`uX zpi2ytAWUQWwH91g`%N!G`=wb5<)ujq&63PjjG^}Pc&KInc=qH4e2(LpIqmh4zD9!q zS7<_&c|JECdIuy}SloAnMAR)j?kR6EM?SP<MnYRG|M{Q)`6^Cz%*Q^j@U7P|W1H2` zYH{8t4~Cwc2El_IixVJjsXW+FpB$LH)T_2<eW4(|jK=8(Udw3&++W9hxNtGVCbZT- zDl)#)(b?4B7W@K0JAxRI9|%h~ho1lPGSc4>aj(&FWaGrbh|?W<It$bN`S;V}cbE_= zZ!?w$!txpD%MIpGFb-LuHaFCafNtiv@fc`PwsRhchggu;zL8`fWb)7l%aOb)5&-eB z0Bl!<0TnTz0_?TzF05uCVvw?1mYAkl+P0@+vC(m;ALU?FK1M-7t=mo5T~VPUz&`M# zLDRvgSMSBnU=Nh@OSZFn1N$b=;4>7+#$@A((1ZEP(BzHgmL=Ix%gL5Q`B721Jb7a_ zM&v`pXZfv`sIi0N${fd=4&mAz8uv5Kpm7gE*@;5=Xdg_5&t{-av6Fe_EnX*0Q?{<< zq)B9BBj}@oKc9Z@eN;I*=tq614rI}bgQ((xC<hQ#?r{_`*S_1qn3w`a$U0r|7j>OT zO7qemUPP@Mfz-u~gh4|#09`w}5J>TuX!J)!?tu#S4~*y=AaFb|JScIb_rP?RcB}xX zZ+KXq-kFM@*l$|SCMc-5E-tweq9t0Q3}2DQj|GtcBzjI6j-#tzA93=diP6KDHw_GE zw$#}%D(v#V=}zEdz6UU^4yet7V_43H*?b?`FX7(j@l*$%BCzj&b~5@`{TOQot0X+X z6c2nheY#DfS8$VJodI3mdfE4C+~(TX2@JfM^&Hr`cpk(>fdCm_V3ZBdnINx)%Ja|~ zI|UV<x(nB$9_Q8dX8STKJ{f~5TAIIrB9G$|g#2Y&cA!fPpx3duw-T78tM~tKR~0kv z6sl!CP|SC_=7Vt%`t5FgY@#=|Ridx-TygJ0^!0!)>uzg#8WM#H$22I-u-FmX@EK?U zm6a`^2A+g*(_G!42`kOrJQUE>OF99y&T_PrIQnhSF8wC8+#D*mgw$U^IS;NOx0bC@ z=a)I1_sAE?Mfx7@_wEByXjx*M#ycI64Fgd27ThpcfEyp>(_bCN1`2}nZut@^=jnJf zCCkmKM~E8L^+G~q>5}SklvL5(_97f(F}Qq~tssu9Ur%|5F@d#l6*57`=a5?6t<k5_ zkP*OYq9~L}LnDkgm2m+M6w7j64ES&u@FWy{;!EU-Gr@CWpb{cqZN)i%V<Q>5_>wZ4 z^WemU8!xq>batb%h}s5`&ubeRM>u30scbCOdBja0?n7m@zR^QUkt?+K1}fL3h{4Zr zlPeWD(;x=_j6T*`RO(N%Upc?)JhYFL3%k16+q|o%0JRp-bd^|Yvt<ogQf^tJnq4O# z+8L!Rr4$LEIje0+ZeD9^>m*F*)f12#nn7aaqJ(K}-I0rFpJ<F@N6?<YIC%u||G<t= zr(v8&doRh&xXl)w56FK0H)Q4L9JC1Yw+-pJJXFG5)NldSW?Z(7^0*uhR7STzT)R^G zav}4|^<SZ0=HQo#5e7CfjJ3<3d<~;OFKd^+Us^Q{3U4G&zKl-h?NYrxSALK@xnB=W zf)H3MLtg-TdodUNc^PxCee#v70Nx)3C}IHGUM!Cu8jaug1+&hc4C@&yAfuB!c^E=B zA&I)_KLY@H@)&$G)x5CNO%)b(A`y~VVVIx#zhJse=-}H(A!((pdC-VS_Gb|*8SLq) zpx$VA&~jF1Xp6hkC7@%%wym)pKo!zBk_ISb0tzq|(-Fwt5C<J>F+UoehS8w8Yt@3> z>7_9s_u7ULzbWX*A|yE<aI;T)m;4Z$i~5=y1N+AYUKtw*j|M^wBWOLYqm@pKi8ST$ zIPN5s^T}{K!vhMy2B%_?5Ic$vq7l@@04`7<YDjhe*U+k8K{^}i+Jl;O2cGNmlKGB7 zX|7K#rV*q{nDM51sf#(cakV(*Jv&98@@kRyNoPG6GC0?^pqOds1;&`i&gAKHZRI-9 z)3(4|n@4jndfnQ@gnQ+bKH)a?;)H9aPxK`?K2*7ul%khCeUz<Q_guwq5ddvwa!Kw< zEGlV50e~h&Ehtmog*MFG*)mmkKbz#%6Sa4>6ObT~7CfR6z5bx|k(2W#-KphFFI{*_ zUx&(VT>a5l&uW2rR)cH=qXCV5j{b0Tq2T{p)$#wK>h_b#s(1XqRjuU&Af6o(NYtz4 zV7;UddUUE*WSIk9_K3b=Fapqu03G%1BWO(ov~m&B!92uIC|Q^SdU_%~8|vSVdUzHq zp!W~JNHDlB;NU*-sis|nK9B*A=)*99sOqd-xue&~;o8p@E3}|M?@TfcTcn*<pTyp0 zt<+#Hg)nxBx@BF*lW0nncRYD7x=eIdHlhdx!TP-~5;Vc4l(CxBLYyYdwE7Eu`GdI3 zYUNs7pxKF(1K-+)wQQwxWW6T`1yL%rpdHWyT%q_P6cR{#^FB|myXi}~S`l^%iP0Zp z))TCUmp0<IEm$SLrMT8xi;QunSBKP!tk|WvjaAD=JJ-*7>7S5&YPFoFu{)RYnre!s zduct;d#!B%YT5zucqX6uQ*T9utB>)9g?@OP@kV{SUuZmnJuiHcSjrXyr~#460(4~n z<pv8QmGktFQ4cN9Ltj%CD$zrq>LI5dI;)2&^w3c~RHcUw=%JORIFuOiYm9*I>b{Vi zleaX2w3y->qX%pHr01hs>6kwE>7(@T7xXyh*sx_S<elxK7cZl$Gh=kgx=mw3#jGsi zWGF<7jVWY0hrUABW4YAzv8Evhu;JSfWupe)X6lb7NAQ~j`tVz9H4z1FJ?=skAvHFJ zKVmYs@fCdUGS5LyZQRWQ7CrC+3s_k|DMbj#iww038AzI_lp-J}Whtdr_JIdB3w9z; zvLbdOA9bc;#;5Odf?<wOEU(VWyAnJn25=VD8Q6_dL=5~9iS?NixM7Uh>4YKtL;!{< zHL@@(kFh;=rq0(4U;5EyHsP|$=&yU(;?E<Etu;v6tbo!XMyk7#VxcNY-KReuq3#7& zQ+LKtlDelNb$>c^Ep_AKQX2iq5ZVbzix~G1(Ji@}(&yfQlIw&}xq<0m8%5%x`spQc zAHO^*t93%8SrE`D0D;H$+uiivCnT1*$G5oze@d$>)>?O|!*v<YtlGL->tY?QOI#V0 z<Tq&RtlByr&xF>5TrqbD<J@%1?P#^;;~|z}S3ep+eP{sL!cnWZ&lR8TGPgAMv-O%j zG^$3<A))uUm#*)|8OTg3&9%FqkSEave??^umyX#s#}Tdf7HG<Dr<6q}v!q!#M|}j= z+-`$3QLX29Tg1Q*k?fZWO82mutyW@TO81w_krem_2(>Q$E9MSAkFIS`IL}LFx~e_t zIG=^9MuJ5@i~!_3-HBTwm1eX$e7bii9ynVVsxqkAWNB_;>~6=9x|H8C&4;JnXo-II z1kAf=wQ?jMYQ?RV$4Ipq9Wth(L&iiBQMzZ4lab51>-95NoyO+#C96Nh<Ef!-Aa-XT z0>VO)nFF=9RST^`bRtMpU&tk}>fXFDS)IK(E~O{>DJmq#v|&YkvX5)P-V|`JgZa%k z@~*U^Fi6MsK}DO?^aVUbWg|4xZ=~-#*%p{V3@p$ix}18C0QYSlkETOlDjJ+aXoQG? zGMs4EfdKoX6|@e|>-j*zKDwhgd3`~aey05G57>GpyD{aUeGZ-j=Q>hLuPZ}q+Nw*C z>l&9sIgLXpD2A4flprQu<9Fy~07qnVoD*;?*--4I@1w)~7Y<{G-}vf+xn*4A15ile zks3Gk-oe)Lponp{0UeEMy@+UvZJ^N&a2_9Bcl$M{-k`$}S6o~0r|r;D0CexQKzyP- zmV5)(I2TIt(c*>rNx|Fv{Rt13Gma0W0%b^(X81YADGRP(dD`uC4j^6Y)^7J`InUzc zgiE5()%A<?zL#<!P?I<oGb7RO^2A2$a(V*@Ykgy92AlUr7L|R815s}bpp3%fP-uR} z=^qAkN#ht4pFl;Jd{Fq8P&u!}_@<3MTC|9r?JwtR9kKOQ`<WY4Y<&vpG<G^Vn?xYB zI9>l?;w;(3&|(Y3I$3O8B38OJGL!<1dzQZQHN@;fB-jzquW@%)>EONeHI~3oatXD# zhMQOg_WF5HQ9HX4Loa<s_m5*GFld;jQ~kNi>)Vy<I6RS$mn`5k{Sb6N-El<U1Higs z!@6#C?WR*R0JhWbA4x9tBkVo^KwqT6GqqJ{CwTXF_dB_R`0$aKqhq~D(h?{2I(f%% z(^pK!diPU=qW=q&&!&a;IrG>kcl0xF&|2sOZEh0<fMdxs_=yu#28qYhb)>As7}-|L zPEUPlJC!&;Rh26~eTW>Y`-Z;=ZiiHr7>|hi%B&u*xbFuh+bLhDLdXpcY?w-#&7{ig zxYU$RmJ7zSj-jTEyOi);$Gc6G_4-xC>E-!{8!dytdCcEsC+-%x@t&d)CzqJ*Pwo+q z7L|EX;g^0o>PEJlj+W0d!0RS<3QSLN>l;Ck;vmj~2%Rx_Lg_XncVNc&#pq5W`cW!_ z?G)R;VND<7vSkZ@GY2Sb^8s(_IS(VAk5um51hq|ML~$aTcD2(N9V`K!Sqrf3jioCf z+x57TxC>=Qds0q%>8h`F^-y1lA>NfcrMxm`&XPAgcDs~K&V1*bS&5j9?>mk*ees>J z*?7otWW8Xw%RGrBb|*5R>tVV{9IeF_Xk{o>Hlu4F;MDsWivU6T0h_Q^sns!<B-Ev= zNENSK62u@Hq$H~mDki0C@p;mC$?;xu!FRgMWXnorwOxP&mOKrU?=t=c5OSQ}{8v&J zC!qPQF8vX7p`6}Xxf&ThT3@;&8QzBBrKLYkh65O0So+gsm|cZ%b7?3UegebOOP@-H zpTux>=}$162H`f;s5Y$j3)<;gb<65#8aA><J55}%TD5W&%t$L5lJgL{%@sp;?<&EE z6CV|G%f{SlL9(#3y>>S*iR7#A4493wpoGnij;0IHbYrzp?})5V#pD!Z8?6Y-pznXh ztc(0cHxfhT`y>7eXJFP-hBCJ<k#b18Kc%)XBF%z70sdAOM&t^*{vs~Evg4>SyNTr? zoSqQHo%o2Z(l)Lnr)eEC8I%rzn4%Aoc7=*ki9$_MVHFtLZD*6qPRV)7a#o*Y{`(-J zw-X=Hi3hRGJMj_CIEby@iI2qArJGLtik&g6wS|@DZlH`a5NmgJ%V{tX9Qu={*<C$o zA#`-3O%p~R!y!S+fW}Fw$`CJ4CHDapy{#@@1@W?z+_ze-KGC^&^>#*Sf_$@1O=|Ud zlEnxr2ZP2p?A7O+CzI;)NLap=YQ;D~bDfW#qg(pefrT*^9hNdf+ql}JE$gn0PKKT( z&1cYSN5Va|2mXRXz|yWpY#ebVu`&_Y33c&mTbR-_NpXx6vE(We*tPuX;7S(sTN>Bl z;68dLDe}$i<ns$Kd4klB-jdk*g)X#pl}=*vBSIp`{o9(mF$~6wpj(31Yy+>j3Yk@- zwQEHfpqszc7Y#(VNKl*D+^uV8ayv=4+_qxo<#wa8$zqfXh|^k{pZe3uQcmeid}Wu; z!dF@;=X?&2-j*}f9q%D%JlNn&?9H*YNSr_HY`qe}z}6x~FC^x{gWm!(sm)Z9zfr(V zD=_W~N@mIFwl1)@ps|<4y<woek92Gem6g%c0Gd|WW(tJmubKIqTnJ62y`O2CmlWY? zS*Q@NazW~U0miwcR5C2~(g1ob;{{?Y`)7WBv5(F?i`-IMtCr^C?Q5EJR4>63y~|5I z=;d~%yk%i&t#qs3;Gq}Kumx+JBbRzTZrXhFHx#<p-)4*gQ>5`CF8sf$vGVAP$Ut-O zlT)q-!|uhA)!JGRCcySsKi$Hhav2opy*;`JC)E~@E$mg($lu5^b0@A&10xAiI?4i< zz^fC0d0H0Ek}bBd-4*}+Eb-}ZC93QtT3YawB(#}YQ|?lincJp|d)wWW^z{$*4xON- z;c-(C?bYTsljbtF8Y-azs4j3$x=m@0bMmiRhVrG<mZ5a{mrxSlahJv+twPJhKrf(y zV<+(?>9VOZdU0v=BbI=Rxa=5hI^F|>2wF6Q?OeI7E1FVS*0OM=bP2J&ZXjX+O%Qjy z&7n#|OYtn2Zu+8Gwy^CSGy`w%bHz{g2D_y3ceBb<R^9~->XN_0w!j!l%NULVpm1+V zy0kcWPAU}-hTQ->o4((zH!`cu1kKYMr=^XyG@3>CB|waj07=WtmAzi{bvPxZb)<0E zW0=9xo6Xots9%AwN<OC<M)tqV>;@V8v;=iOLP3vZ_CO=>nb*@gZ7p+?L2F<q61`e9 z7X}w^If1qn=gLM^j+13^)TBM0P;)=cK$l?``Y)D3t&7&*L#q41)LMTRiA6q53Gt#M z(sa9<7QD;!U&lr1hD3Jbu+NJHbX`dnP_+xM^iqrPdM_|p(baL(PhsaeKn(E*mU#tN zkZtGC9YelZdl!ADBy(pfLg-E?`ofkH+azcBQ<m?-glMW>0vJ_6oPW{XO3%vl1H2NJ zbgr?_kg}c5HTGQjlK%P|DS8=-@_0Ojot~31r`zZ8sIGqPUDXwXUb)3h?|Fx5y?7(d zOb?j<G0@BV0SebPP(sFO?Yjs8T0vdhr{(+_t&;ZWN+p&e@z8)Lw4B{+VbgI@44?;6 z@pLHz{Wpg2F;LjybVFVAqqiC31G;9fmh&RyV2(*ppVvqKL$`Vp3FsJ_>^5XDm>hsM z8}W3MTg%yxi!ta7g%@t22zBm4ud9*!P%KR0R33>j#_{-GU;2sjkAK9QksX~<R<K=4 zA3U)O9UY>pyf}_p&M~Z0j@#szmU9G!XrI1Ng73rZjaRv7Ibnoz_1j#1wm!$8oObX& zC^?!LyeOxUj!3s9vrlE7*Msk>MOZ<7!-`R*1^u8!y7OdmNdiSbJ29|XaIkY6O?gy- z)WpdF1fiKH6MkpWDapguL_hoihQD~Q!oVxt&icA`y~Rfiwk~_>Cg>S`-Wt`<mlW`W z5q7IoL7PE|;6Cb7JwpDHU51?S?@HbWX<%1KB`%OsB8lsxC@G6W&f5Y#Qo*m-1yU1! zg^HV$5`8mNreQ6Gk@is8@W|Jdk*|2-Yh(u<S8QzOKqa;~F3MKN&<2ZsLrsdB3)IXk zOcpjOf`-mE+SUzI>BA?`!)fGhq6^0p{!LLY9t5oJqaW>K?%MX{Rx$VsC}RzASzkpn zca0;m;dWqN5o*fxdAxM@@0pcIEhlh5Ze+{N@JTp*<6YmhXJiPuZgUK6oJT)CjxI<e zwSP~q9pJ^lW121lR;|0z`(1QVGU?cxIvGPVm^ou$Cgc8bwYkRQ^ZE^;YHN*0tut%u zcr6E+6*5}wb!IVGub(Y&9F-2JhUlwFsqjx?5DzUNzu_?z$B_7B1H7?WCx6G9)q7vk z75y65q|NM75bG$jB<?QykG;%yO1R2XY7QPE{kslQ%v^poaSzckFJ8Br8J6e5AY0(u zjLwwg4Bkry?>^E#xEkV*kPdtsPevER_ezMtYuy0mWbesyCqFxRCbLWKAG}EV0Llsw z6$O^TPmCv<vK;`oQD_n!0J|Z5X(1#`eW1W<I|p9^e3=K|A3USH&yhFCX>u0psXt`l zlsPSURDj)w>h(cgh?y0yBwcpDyQZe`<wr-(Wh8GFh2mDLa~KCy6wC+n3!vxOCX;n$ zWq26u&j$(?D3^yp=>2WO&7lPwLMwl7A(?8GS$Ul2<YUZ>fs_k0<yMYkx2$5o3W4a$ ztDj<QrX0>~K!;r9$1)zb0htS+WMlV8RtdHvbo?F-dblxHTL<)D(bie%Lfw6_j=?}P z)Rg_mx$Vo?EtWTEKgiR5kgNS*F3m{*f=0N^>+_J$a9+2a!Ua3+<O=4!{~7s;MEnNY zFdqdFq;^5NrhURTU43|qOry{5<Z9^8YB-MB`OC=K0^$A|&=alnmBfWJhXlN+atG?t z)80f~x(C<z9YxH~b(Wu}tKUxSJ$UIunOD2HCf8JMcoR1gdD?J#bbk&CQHHz4AL8nP z$45$6GY>Nq_2`m36Zf{J)9*)<D^~~hBK_?|;SaN-oE;pHc#s9?)#r}p;gPRQP$?6> zz!O0~HB{<;xua(S-a~&0`DVYl-k!?5X>*XU@9Ixz>wr-2<B0WVNAW}t{fNC9Nc)PY z)k~)$7(IS;)Z@9H85u8Q$MDD4`Z<)Ijq9va5sltsNFg%bdT91gBW@e@?!&`jy4$cA z{HZ}dmDt0&p$(T#c{=H|zH8>8w==hSS2z0i{wt~gdXL|YnsIJgQZr6PAL=46{WM+g zd6@OCC*|=fFo07?2VVQtL+=DR@1dXIex9ova+^~aapH|fRWP%eYy*|5Y##Aq##O;l z_hY@x{A<hnWHyIhCf)RP{k&Up#BXNGX*Va|I%Wv4P|xVmjJMfYzUX-99OyJ?bk#{l z7R^0imjqu&^;`FLp68`6{*8@}7(9hH;<(=cySBMoUORfAW2g%|%oJ_Fyf~B4LLEqI z)CVg11BS^r5daI`n;?V*Uh2>*l4ihYY<Sa43o%Up(lt8X^x-#fW$+k8_2SV8$Ul)D z>>7Kz<a=H0bP4H<o=Pm+p$6+Xx?!%r+jeR>I-OhA=TQ~F5?8lj(R5r_a^^1+e^YG% z0rnMMnV89L3&WF(<P2WGM?+V1a|#S8tK)<9mcolb+{V9n=#gLRPS2gAehgr~1G(&6 z3y<$~S&c`c<H$0h&~4s!8GiwwDP0L$LD!9r*rYH!peJ>i1?OrX87_PbC?X#DQY6P8 z?c(wJhV6z5Bq5kHvhP-_<6vHh!PAi73FX~NCaBB$i8rn;i;-phFue^NGRRWoGJlV9 zdC>-=f6;^FUfyx9Am4@CXD!O*{PmN`8>ge8B`N&i>6t6{R}81ivjKsblcRZ|d%8zb zez70@S|HJciM2ebGZT+MR`8@cZmjNCALP-bg6I8$>Jb1f+$kATYh6tF$e`Bsi@~SR z_eG9DOk{}nF9Mppx8Cu=h7|IFu{x&bg6xiWA?97j`%*pLFZTo9@dH729Ar2T<*%Pa zj-LKv@ZFgb;Jd`g%QF$FTccA#_ja@RS9EMKiQ)SLo|PhyyLr5#kd;X87SyEzbaK>) z24-_Vm{^YY6PrcVeIfHnQVY-m?mq$aQg{mRbSxF*Rc+8It<~aiq!m7}6X&!vi=3QI z-eBE&ItrDhPiEh&cPsW+q~}I&U_ch=)-h1EJcR$i!k>i#4DWQ%%Hpa?t(YGNwMrAj z;6<D-H#6;9Utl6xoAKao(QCL(i^qW?ABx5*^B+-n@YH~X!qQomMA_+Xfdz@vq9-aZ zwjSn^<wERmRk{9IWodb=oRia)Rs1lEQ8o#h{0Q<bOpoufD3~R$KH`-ib4&v=Cpk#( zg-1e5#$BihRatA?^z%ZdT;eHw2I@#f*bTh$UBSw@W0%CvG7GyfUM)ow+4|$oP4ETg z8)ou>@zy6VP{Nk)gspC^2=n>IN)tyXyHsnFl8U)3dahlJ`39^;2H$wN3@^gFO14(w zsf<oP-^k^&#c>N>Pk4r<;Q6ib+6IenY-^)GSC$Hzx=`K1YpGZTskDH~OgfT#x-~V7 zi3QNOe_#QlGio%3%Y)(OOQikLFyrFDeB@%Fe^=~5)hVb>UI`2L$o+nv3^AiC@~LQi z%-o10nm`79H*m2B4-bTX#;pS(uq^Jlys@0TQFuJkYYr{8lqpp)O=-P==bu75;_y-} z@ct5{r!(G%K{wyoLg51gsaVh5@=>s@K}SwS&y&!7X0?h}%Y@K9@FA#Wyt4XVE10{= zYyXP$(pFjCc4Rmb2;&KXrRB0QeG|_}3|R8B!BaEc0%;$6PQa{7Gc-LcKHTAWudoIr z+N8*5B6;H)iPlf<i^DW^x8tkOW_z5>P^&Fq0E<6b2B`z>Am;E;xA82f;7>W&S=o5x z5)U#krd(RI!Q@|5i_7s1yrV&o%XRs7DS!PG<g-|4iGc~Y9Vp<g(*@iNCDJ`M@fSO; zk#YA4P@0M#JlQI!kAb3YDSXRN9mfS3@kcKqBR0qJ$d1O}7g};_T+x`gYan&~p}Zlr z&H@4w^VeC_T0y;+M~QN;08dA)Ap6>uq=6KffKnulSG4@~c`eNoP>LKMD@8&TJ1WTW zXg*7`gzmdWcmx>I5S`?63tQWYhbnH1tAe`35C{3T3|F4iyW(oaZL!`G)OW(Y#prJw z!o7Kr<u^ddOAYG1@z6?J97ZZK%rAx610s}R)};CYR~!a_2}e1O$;kxh9LIel6Us17 zC~twtlT69}&K{jmma+-O^mjWOCKTxJjZD~X6rfa;x3a}3$5kDlkqWE(L*}o@W7w7G z_6&LNg{P31*`QlZN#Shb5uv<<aDMA`)<s`p&)HeGzJ=Y&Wb)GPF^P|jbnDVF-RiQa zMztb0&W;d{61a6I69Cl$h$LewN*E<FN%^o3CTO5e&)q<SUSD&j@|Je`3#B@yMYDkH zls7cn!0FF$n$BW!?=0vA9-cU6FN@6{&U{bKP};3(o!~grL>*`3tz;S&{6D~)1(>t) ziYS;w0yidSALP6>ku&|Ow6l<QR?eX>;BkU8D$|&8Ju4m62zn<wT6nKTHIQ<PQmjcI ztJ4^g<rZQAk)vD&y@zaPJw!I|sF+=i_#BsSV2)3E$5mAjdlJuV%@rp<#_cL4!bd+v zY4c6aU$UdZrp<m!9-k-}3ianVfZXg_9P9$Q2_O$#;z>p!=sjO0$N|`W3sQt*Pz*3T z@E+cAk07rEUSibPd>uKCj1muRE(V%Y>n_Y**;=8(->@j#Nc9Dn_-AHD=K=TVVB6W0 zs6)@3JS;*EITJTbsxQpEmrp1PF{no%|HP}0@lYZ8Clm}~AjH&$BxT+sr~pud0BVhp zz^h)T%*^2kP$d#)^X!)9Ois>Zqz7E{Wx8Vwk;c<Ew^pFi03cbT1e*Rh>Rh4MS`!4y zl%msLq~8I8EZ8Mwsu}8%ame%_3*|oJN#tvYx((R6pJay~GpGxLUGfyiG@NIlyFu4t z`hc9K%)u!A9{A8*{3ww#A8VL<m7^NiDS5Q!pr)}inu)tM&K_WTb7p(=u7OIkBHiJo zM-JgO#Tj~dF1m!=_Zl8lj$WU*1E)C^N&;f8%!6q+1Jv~h+74Ut)GcN<d9cHRC(xj? z9YmM>9^6C5d%|I$p9#Z+JdM6}Ah~y^9~SlMDByO28LwHC%vczhythLM?OvMsf^N@w z*{=6k+n60Vd52xqS^L6>S-ihz3N)<v#<540h|BD?4XD8dALH#F#q2pBo_5*7xTn_y z)?tTyJ*_yv4A&bEj4Uj&Zu;G8NgR6*nwYWOERfDfEH#w4$i<}pzJal`ZFxb;xf4U` zp1Dwb>+{#cvt=j+cPI?<e3*m=PvWM+b@UvR2pG+$ufKM6Rg3kidds06=AASSF9p_D zkRG0_-!%=N?|i0Pb%E!B8Hs72B8_hm13U0w1Hq+t=UQ8ry~-L2<^cxc(-Ai@X$#WS zQ2xhwR;@d6C}kDE100K$gupp5;Kl<{Ip<L?e4h0dE5H_3gC*EsE{pi&U8#6kNyW!_ zOBc2;0Ji0~@xWLnVXd}>TP|hb=135WCD19#reaRYX>%`VUDn@P{WadM<4?g`mZJBH z2P1C!-UZ!qypx2m&cdU{Y759}#}V<#mr&J82?d=W;~i(TWUl_}C$Yqhd*vEKBs$e^ z@aRBb+K+(=@%k3AKQ&a{U*k7~LI_ji*7jht61nwNMBM>lC1mh(A=X;A7jYy(Y!u<3 z`*g=4?6@274n3BcgpiPo5&NDJ)?G+k;`SW8YwiHHpA!RknslU0z+p_G9j^YYs|r4W zcjO&FNQ1cjI0UpHmanmL**b5DLE=kN<eB0=o2_e&G7McEDKA$TGAZgFY@a^N3Bda` z7DwmI0W)}wgLRS^Y{Yt4p(zPGr5pTN%iStVr?G;uzz&8-F~eg%yWzuPXZ49sTmpl- z_j>ew&u*Kb!?ZpiE+E-zg;?C1ZAAJ)5&%*L`g|RURp&xB5I}K3+=)q0S2a*qz7c<- zM5iPY!f53stcojSv=Itc!P8M~S#KxLlrW6&**3nc<#L8>(edlxvYh(RwptP&+YYdi zp1^TUhsYVdl)^JOD)VquJbH}IC8MKp7sD4J46JF6c5(ZiEDkFzWG!(3PdtGq)qC++ zk<J*v@?!8LF2i7xs#C@`se(1B<nJ}9l03sw^|2K9jV~)(qd>DJDy&&4{;U;i)Lf@i zVb!N3UTai~)47e&%rLfZ&p+P2ZyCPXz6T9S(jL>kMc6+4%|+Ir%?R?%h9I9-UDC9A zY)gsW7HEWF4}KWmVok}`+hFW4Fn-aW&;nzJ-h$mA_L^Qt*TKeR_>*&?z9{f(D1_w} zM%Z1HZW3{O8}aB}f^p9{J`e*xOE4L0E@?09aEAg#nECH9uw*vwK|sd`TaQM~`r4CD z`4F>mZ0mJ~W_^%>SGp~NIzpHge||yRgCN@ckz#Z7&QxB)qBuS8)#WP(FpiVgDhC*h zbdx`|-p)8ww$k72O>TG5KkUVsD7q-Yy$5meHhOD<h?u;0N}|q7EyYuq?OZ^cSpGcB z|4;C#<g;CRGhv7nG9qeN!S0Bvr)QpLC+IAVeK=hQ_OdNx+;y8u7wUQG>=AU5#w$$Z zog*7?GieSYSxkraB;gYGKkU(+ak|*AAcgYS798o*?>-}$;=v`i^2&z>>2)`?7wA`; z5aU3_eBK~U9Nl}lIi}y$<?4w}q|c62L0{N|m7;EO?IJl3=&)ZvQVQ6eBbG)>4BEDP z&q&)Q(EIj`ZPR~Xo6b4fN7^)n-aG=p78vQ?SM<i5&>K^7bz?+mOg3vwhnudQtzX_j z(grF_(3o2hm+o22?KGz+aU>=|4KBQly{^Yz*CS1)Z@$8gajF7+`IQm${!RmD?@2W9 z-)4_oZ=;{D#or;xqfM`jEQ>N_;_~m4%c6c<lyqE_r_iO>z`U!&L{sgu(1c{Pkh!$? z(T<-ZQvIPy&0Z@=c~y3ourWj2YZ<7>n8wR}_;X9p?!vE@l8&*PfFru+$Yo5+w6WLm zgWZKb381#&kJsRKrUieF119|5PeHCE?`N1!U;6!3yO%frK6yJs808S;<y)smyV#cK zkUYJ0I+d=@aOHQpCWSxF#`Zfe(2M_)*zXkN9N;&fhHmh?GV~vY!Jo}inyngI;T^Kr zCbkOB#djW+X51rRj7}K|3in8<TD4XF0#Puw<~kjx#UO407SF)j(X9r#D71;Wd=EEG z54kS5i7PJd<=phd!G!CspjF51a(w+?@dt3?yTLeb=k%)O2l1z;VulTOhBljq)n+S{ zF;g$Y%F5V2rVOiHwn7;IQ$Vc0E;Bh^SZ&4g>U`^rDBrr$q!ri2@Gw9>Zl3zx%h_+< zKnHn#ch!#U`QIjXWJiHXM|3qgQuvl~DP?nYXj1}(>0?ny|0W914C`)#l-D|g_CcBC zi2ugrssYQLgx(=|oI87LEm!^GjSHPs$17CWR{ZBba~vLb%mp$Z{lOONm?PX?+ynp0 zJ}rP2P_f5@zWI%-KXd9oZ0ON)`Vyzh)KUbA=8W+S=}g5aJZA?Zw`CUI-r=&`U7RZk zPRCJsK<NU~uogzD94>3K!Ku2eI|IytBt;DT8VR#q47`XWf*vKfGsS+EDPI<d34i6r zl~0N;Fpn~OT><)qSi#^yPU8Q>ybU!uUw1zd15ZK3mU4YRV-U)3x+7GvNGQdhDBd`M z{s>r`9Coxzd7a#`W1u;Vb5nB<9w%y-(mOfqBPA@Tu6~ps{r0+kF|ZI1OK5VxzIBbi zc9E~2wD}0-Mo}MgXwd<f3*Wos2pHgwqx#YEL6;e;mTs`u<%t1y^tL)reCprPS3%AL z&KaAtcL$~)-Qr4Y#~}LlP(^wI{fYEAh&$2`T<q^OA^J*(5S`+t_k4713rHWH2mrt` z=F>7-M{*2jc|7=QR=md(HR*^Tpa&br=6%%_^Xf;mAus)n?p9RWTg!%~U#;synaD=R zs=9=$h6<%pem>jpyMX7K(FUA}W9-To1Lv6NM=t~DOdL15FrRJrL7zhl-X=wqbtv?< zJJ~JFI|zyy=-mgox0EWe?v2IJ$Yig)Ium*&?iiB(+?mFDrIYmvp18TDS7P{^!2tLQ zG}hyz^M9h>e=Em)Y;^mtu93G5MCU-~gj~>yT(=K9N4`KqGw_V6D)#}_gC9&Cm<`!! z2oDTKrzE>_)XPE3q0IgPT9VSSFQ5G_E+e`605h}Qm5WZWK^D~!dZZiuz)^#sKYM26 zlF89aWq$k&`Y6qXPfadh*j!Z`or_m;9nSxIUJ^Amql~_@6<AN__Dj&rJJIpTHc;th zyzbR<Vo5eHLcr*PYaGB@bqBE4B>&=d3dp~mT!Me`XWSY8<^oZqF`~#F<==c9Tnpo0 z^C<u3CixeCUu;XsHmy(7wr*T7mUmCh_$KeVyT38UXM*RXM??G~x1aOSr90RN`#g!? zfitk0@Bj@Gn1_u|Oec2_?YgW}c~rIyAagL}fxPpsY6<?zSXttyE171v*a4$B9f{fk zL~X{#&_}1~KPs3DEO=f;LKs64FlssdY>yXG)4cS_->}orp+_!^4F9t~{X4_|lb_=7 z7qH>~#@J6}{t$V8Z|uE^^Pk&ruHL}YiNC>%UId!W-eziIZwnp%Z+u(n0DI@sFYtXk z{gegs>0j8pfWF7xbLnyRo<}>`dp>=gy%*4Z?43t{!`{X8-`Tr_{_?*OL#MXENuOp> z6?8j$SJ41_FQJ>++f60*et@oJ@8xtgd#|J`*?SdzfW24KCG6cuE7*H2En)9<bOC!y zbRK(eq6O@|ndT)>*ozDHG#g|0;sPu+vQNCF;{R#yTL7ZEu0_v$fDs30jHsxnV?<+u zF(jw~Mw&qw#Kh4-1mr5}2!k;4%W#gLRCI74WjL8e&8H?!lbBy^lcwoy;wNbm5DWh5 zCz^yrn_$9C4jr0cC4dRxytVc|Gt8h^?`!VuefM>6xzE|(wLfR?wf0_nEur@}_=s}m z!e7ZFPRhb(<nd8_{E$4Nr32vvc|_qZp@BR;i;w%rBijEKUM7!w31$5oEPLjv0ELF^ z96nedL^LzNJW%-?a(`B-4_YMotS3GjRQfsQiPF`1^cj@NRz6j&4_YRrxtr#q)dww? ze5O&KaDC89$!8SxiO>hFk$hy-CsH4jFZq1^3h~kDg9;^|KNFt~QTjQ>5;n(Q@xunF z4I&VW0<L_eTL0a~2}0tp2-)b0q4a*!UayqgJf4uJ%GwCe$NcHI@vL(G5)Nfgzp5Ki z8#+G~h(W~??lMrH+S&-AdoL1KXzlNk=Z%0{KiCSA_%;0SNM|8aCl5spgok9Bmz7bT zODM{7R0Mx#gRCx?1U1Pt&nu%UzTz8TzFg(Mp9`~M0O@>_R2qJ&-bxkj4XD(mUwSL` zzL#=7#%F5vXUXFkLiQrf8wy13e5ltXsF!D)?^U(LkLH!vMnIK$La%Co{Ir>o<Xqmq z2?hBk319tkpdGe*uU^qcKR$rpkzWSjm+r$a#@p!QpwZ6|$?(*K#({<&C%F9zXt>7p zsuPkaa8=JCBC<J;mnX=$S<tA{6D%@rT4)<Pu|d!#B+0pP;5jnEqTsa72Bq_mGPI3* zj~8R>8+S~oKhx^0mo@erA`)j2b#mw{$mUDvAV_qf=MWN-><a}v1YrIr!M6$X|0Cr8 zwzEO*srBN6Ix&#_LdAWRD!zd~qiE9i!xz)5*^U%t)fHlyb+Xqo>zM2;=a(Ai7aD#4 zs@0ro)#}{#nd5yXO-DDh%blMooL5x#+b+K-Mm^TH)4=TDo8QDxXS>p_cD5=MN5rU_ z-W>);jB<BjIJle8Rl$F=0hR+y#pVsEOO@3wkkzHiA>Y~sa%Ypm*-Uaj;maMyr7tdt zC37~(oy~HL_0j+iG!6`0#IRY0p|$>boCoI!Ks~?#fY$)_0z3<_dna0f|7n{m<>5AP z1#ks$JHYJ#w-ek>aJ#_m0=F03UU2)s?Q<)UzhM-eie9NOUc^fG0jPEvn8;lyhYam_ zv~dSw=>JS>FZtki>E9yI9NxHY_Rc;$+Lk&YYM>LszQ6opAC&8O1k3ID2wFPk5mH}o zpIo7R5{-RQy^Hh-M&9u#JRbmP1*l6^Og&S(K;is~wBFaG_5R&2Ys5{8GtgIGK}^yM zwSF;o_{D=r1AX?D!ud6#tl5sY2m<q-4bD7(6o5ql%K%ma<O6Jcg!D}$v~?u75#UCE z8xC$bxLR<v;Htq@gR25p1+EfYWnkaXHrfII?*`Zl@P|kI`X*HYSo`$_c@OLdf4_jf z^ZWj9Y`*11GSRBN6YV8;s^~Y<rl;ef5yS(!3;4wBETBq-@R87+r+}Pm=0*xZ&wICO z_-6h?&%HqCxJ`ZO<VL_~<|3ikAmS)Wo1(&5v(WP#(%`3vDFDefHr+^ar^F~7y6;g1 zcxE38&)C8XV{r4z11X#*MYPn&wMx5Kk-}5Y(H**~=X^Lc@gKCGzIuz!{v6q&TmD?& z7G3Key6bb~`df6|bm2~#!Pr3=JVP^Z9uxUPo)u=HTpPHN7a1T&{VPKHX<fz(uFO`? zc;V<C-*(=aJ#;(o0@2{*-SHw?R*e_<%vNF6bJC{QZ?wKmFKTO#NZSYppT{NNq;e(U zPC}S-p<30P6oEmWk?^8)Cxt^0c;SrAC#jqkCF7F$?M7u~3-W{Xj+--a2RTS>(bW8u zL4l$!yeamSB<-lFzHLCoM%QJcVguRia2Z}FTyy~Hq>O4q|K~9q@dKcAsOM?o`KaW1 zGxdC(c<z=w!w%rh*k_5T7#m*r6wTf&e6t_@p923q_#aR%OX4SDG<Jbm$T)!4&hd@! z6jBcmtyaB2Zq2L_*%^e380R+irrXqRQ%AZ@W)?pLui$QDmy8=$WzwR)RZsk$M`^w> zW<ha)p2ST<)jWOh5V>bJ4IE__zSvI#fj#IW;o=;urf^d7*ZT1f5W(-pIVA${`o_sE zlbl!NTh-1h3NCyPn#J_YAdV}Hyi5>YeJ1cgbnY|WvsWrEY{swR{b$JS<Xk*i{?vQ2 z%svx%vfTHy?_@c{t7<sTrWC$;$txioPHyU;gfKgtujq4rH4IhfDR|Cz#*E_aC@-tc z@QINrFCw$dHwlkDL-g&SlmXWU`8K{t?!?LkvDSAQJ=jb|chC-?OJ!NC$`&e|eH$fY ze|?x}Fj3jY2(Q3n4vhj_D?J(eudq?UDcwe;OEMDXvs6JWMDd0`o0*yeqNX#@kjAg8 zyl=#K#(*si8$(T5jAj^v>y0*IX#-7bT*G*UO(B%ji6Wh!;hW1O;`6(oAeMxMteY7o z*Lx{_u)P0W<SIg1U+fX#<{BdJujS1%mh$GPrDz)$4H#S{?vIxkQlhk(W?O&Zvri1Z zyI^*wL@DXrdWbax?=Il21(8i~Zi$*HvcY;bYUYO9-Lp6F>fgH-MXB-H!j|7F8E!1S zw~+FCm9UVJ9#9vxXFsAXU6z+FF2vU7^W?p1vl4OOw0ydnU#gBzS8+k4YK<A`Z#@dV z?HMjT@L1M;Dp#`7wO*Z>ZeE^~o3rAOk`Yh)<}2JQQ{is*v}$q`i#LPtu9n;tqwnEn z3MEek%6NS9bMhHDDtj5f9oY63+(oYphXt@QT)yQf{2#TgkvDZ@)J;M=KU-zagVZqh zSls>9>}#~C%mP}%gE-VU_fB&0WnZIazjD5_6(`@Iy2%SX&5rMG=YpN42)QT7@m(~h z08ic+4in`=_euMw)$_?il;+`h8L<;`o8!9}c38799Bs0BX4i$x+r);=TTZ-C{k&%i zJfL|nPpGq3%Z-BQ+z1j&Id3_qT!2OV4$;B+P>g-AhYQ#2JFeNUUfkWFWL27Xjyv09 zJQI2v6i^;}XWel}yTx&39QbckINNp3hNF5@c*QtCS`}~Xv){rg^~W|$fmbClMm&`_ zMl9K@;&enmvI3YGTr4~*_}o6tZ*#*HAGvb-u<HCfc=KwnlAEws#w9vi<?OJkO4Qrn z*f<Po86D5{ZI~{ccv2L*jS(`cP=|%4>JvR0@R8e?<uI8knuy2>8upXB;?SQ}^yKyh zbRci+^F(;##0=`&f!qH;2KgrC_#iZt&V>|ing9b%W)@!lUb@_LBJlSE@GD!whUQlu zeR>FfW$!NtZT!O1lwX;F?g8*?15iDEgZv8S{`dJ6g2Ryfij)Tr&L)6zfI@&Z0LuZ) z0BKMEQ2YuO#*0|#R{#zGoOt@bgI|ex*2k~3J~Jf0GW!|QCm4B03OpAA?0Dwy@GBVm z#`qPI?|+J4k@9W>96A8H0Qvxw;H?G-2e{?gABtb0ZDfG|(*TwO6hHd|@hiT~vFt42 zZKY%Z#k_}b1pPprbvtm^PsR;*_RG1*ZbOQU9RsArE|gD_@x6jeNe!;Cky%2ek{&Uu zE|MeWP|9)8ql7HsBb3g$is8s<0x}&H3aGOM%j0<e49Fxxu~E$rNM)5h?k5y*>*JK= z81cCO0s2p`<~W$g3B&NkV}T4q>0>u66cD8h<RwNRg>YQbHssL={A1TUB=3Jr;ulD> z3^X*Ks^05lC+$_S<8f>G_q#>0szBXC)I#LAg3%Ors&dt!d(nhw1Hv_a&TF`zxWt*r zPD*0>xgg;)SgQ8m3pqf7bq5xw@+`Nh6UEF-s&wd&aM~a1oQarN&V4*^OmWIZGR(@d z1))3`N`<M+S>kBzMWQ5=$hCx#+^>l2b6M`p&ZTCIm@bZ1lU!MM0V=_uvK;CyxEJ3X zgjtds@t+U6IIO?Sj*idOvf8*ws689++6KiQEpVw~>ybhytZS!m?#JHiz}#dSDWpKN zZv;g1SFeql@Q&dPZ_U17v+((0={UF&m2%g<LM9N|)@ku3?G|0^d-1s{&0~j_LU*KR z*@lrTyB&lZhS)$3nY4P6#IB25C1WS>4tyckf34&$FF7M<&%y3}{1NZXV}E3D3?>j& zMWiHL?o^PqO%_<1rUoN<-t-A3cp1}k{gPn<zx6NOjhC;FOsMZUJ@p8GcpB3wiuxn= zP`)AOQJ!%rqZ)5V?y`pQwEHZoWY^Sh$)TS>MLHSbWN3TEMKmzRo%3KE&yf_1p)zuA zl2c$<E!sThMrGK#JgN-aHy%ZXty>%&flNk-D>4{XbI%yziCsQ^dCxAdV2{th6y0Fe zAJ59(vO*t5aLC{r@Qc6Xo<{{#LnOn4P2C3gpyr@#c#K!a*~IAMtac%*S~vt2PIWM} zuV=I{Y5<D~@aT%58XE@o)^VnY5X7ByrfA#gH&b|T@82vn(lu`AD;f|vE=qW3Cy~N^ zVQ1j={+T;{{G6PZjMMDEd8!!#yb`&5Pk@O<N!d^A`S?{TZZ7a#y}PM$27DhsVBS!3 zP|~)BLOEip$~&pV5OIMvb|T4~O8H9js5>Q2ZKj5DaN7CFPUHs910GPyfuD(f_I9qW zsyju7X(h`-5rwZ|HJF`}$h3%NpN0!{KcjbX$<-kg)dRoy-IRBARkk=qgT{?lLipKl zW43sHhIbxtpGZl3f{0?dPK^_V<GNF!ZC5(Csu(UFFzm$4W6vi;QxLz%fwmx<09bI4 zEBAs&0j+`5t}ufLsayaS$h}IPK`V}#vJ*0BO`J^z&vw4Dh38tKfH!baX(S20Xo6_Y z5n?n&w4py3TC+7s(FxqPv$9R(HZN$87O5>!;f`IRSLr%yajV}Bu-(aztU5$0b*N(O zAp4!pdIKc#{JG)FAXjA@9Sf(N7biDd^mbTNib^TV7Mi}N&8ocC;?eLh-m@Mq^gJdG z7%)%|ECtj$Y@t$%!VxOe)hUkdqmo_3$X6%^3v18>8a*bxe}msK>1=<IbeR1jT*ek) zjWS%u(>#;qGG2hek`3K&I^n8pbyc3z8`YZX)nv~J?FhI{LOQC*o=7J(c9pYIka5dV zsVGioxZQIf@iOw<g=XV99QnZ1;!M{fOn;kbWJ%TcY+X^+PtLA0+$nRVv+FwqV#Dw- z5EOCJ+4b$&z-V58q<AE)63_Ce!~=NRb`)$i3!6~%AENuqq@YY&Wm|k@8{6Vm&P8#A zHlg%>vTKlqN|F7u17x@HxhM3WvJ<hO$PA2u5?OThgWxr;+*aVRCgN*+<vA`K=?Gse zf)6_{%O(^09+rj-pc4&I%mb11&3K`_Rruo$^4+w0hQo*y*&yC@+9gBuHl8Q44y|r$ zz3*uIZ5I11U_DTwu$xBFFyZL%hMe|~ub@z><QwAkJ$yx^-K@e7l<P$n3au<@8`?uW z!S0_UVOgLl3kF!Mh5xd2@ZYK!$w<@^G!m7KMxs`OS6P7p{wp=Ze;d}oe_P8TU>zEc zDnr9j8_{sowsJQ)CH9(+dY*?e{VYgDx+=Q>4Wfxg%{M;5A3-yp$D)rxP0$H6EybT1 z{vmfS4~z0i=f!O<lc2xEj*7m7m*sB}eHNiiLd{WjBcF?R)f8u=&$u!>6fM!f|90|R z2VdC<5iY-grlvCVr?@#iA2}PeE>oMgCE6g&q*8zfq|R)EZy?&(W?q_3EPc@uJmY=M z#-9O3;PQ(+;Hw~+qNY8pVi(yZB1?HFy&0jo6ewb-rD~6IwVLYpi5wH5Z@TQFh(bZL zgoS*d5agLUuW}L}Wq~^h+uEPNc>&KX+2e$_kLR=-W(c8!lJB}YIp5@2BhgY5f!xR@ zVyOypGXbNec<r3%p<bGO4APBeVFBL0fO>Xn_JvTNIYiTdc7bTpvMQkBl=@EgPtl!_ z`$7NRRYIW>_C7wIQ*o1p!n(j+)J_+{kW|WZOFXA$FH}`(@onSTRk`i$P)ybURkV*% zMXOL<klAcgz`sJs#Zb72?1x8QM3q87oHh~yIE$ZyoCh*6NC6OS{CmnNWjx^H)tQ`# zn#C{;Y7rySDS6qb<2`<k4m{Wlp-Dlugzlv=YPwki(bbiJh*=I0ZP%V#%tF=yGXHEC z#|Jy+#U*khv5Cz>sluo7%-N(wLx0>^%GL0&>c+`DUBKP6;BvbYn#2|&e7S?DEO&8z zWJ6j132rAhK@(2H@G+}haa8;4tF@#BVSa1hj;m}eZ&d4>aQ6jhPa-V@Z^xhwg>X^Y zRc>OJn}t_V$4>788>~E&is=Tb0`ea#{IS-n89{in76sIC{=5w)t8BAyxRn~SYx3&8 zRsBR#kW0&qb8%Ox2nlxK(iI}id)RO3ioj`AjT)+Z%7}&yV%tgoNyRewQoTET;kbgJ z{<!HcBGE12_FfoY<<(y8Y?Tr19#tpEexEX;9XC!T&C*okG~d|%6hT999-w*Nc}<Pi zZ%CwtPvdo8ZSMC?#(pLT$jjG%;-&CW`E_5D@q3^0Yo$B0*QQvSjt6X6VmU!rs3JNa zqwoZ#4CjwtnP#7{mmQ|rXS&kRsv6!9p!^!Y6~Fzh447bsA7xF*7*?wHC;k54_UVv^ zpB~y)7sB2WTF*{(Hp!gLvV<?~!3m#ll*_+JXojaocxp;$1-`sp#+`{hn$XG)L(M*- zUEcE%->|~R+v6l8%{yC4v01f9qI07HS*iB72!V-n(i;y3PAZ8H4lyUyk|b*OPg!J2 z(x2QgUf47!F+&r3?%|DHDDE5%sH96@H_(MRr+DT<yP_X}s!)a$O}QHRI^h>eqE=kr z$Y}>nX&PsJ|B%Ao-r3`OFHhxFgblM(HlK)}H)@j$fe~z_t2z#Cn`q9;63^mcX%o8) zwVK~vOPBLL@JNO*uGef6#k(;UjGVb{V93qFMajf_<;Zxhk0pB7E@C<;!P%_DLbyHB z42g7EH%6$(2%b)IRIn&YJNyXlwsXVaUD<Q-ke12lxhSb&%8v?H(5H)vvnwFT%V&8) z7CPb>HrP;el>25O4D9HJG~cQ-)1SP<bH!MZ|Cql7R5X0r@ri5ju4bG~b^wJK;d?U! z-7`9ha`WouAPgqVd!W!VdK01LO6}I^(8zqFP(~*hSc4<<A8wrlAOBKe1@g<Mb6lAb zo|~L7vsZowgA0XJoZpIDy7(~6#(71qslI~W|0zxNC32bEpg+QW0L(;uB?=RcKs6ht zNGJ*xn-4WLPhz>5TC_O6yq$y0^rtlsm&j4Oqjsy(rtq{=+B4E?=ZdXEG;akWRBmrY zQ&w){SL}y%W?A)n?CHAU2`alX;n;@X84S>foZxvozA|EK9L7fLPlooJ<kSEbruv$u z5`b!`8wLqg3CA=K0%0c7#1}m$slX-@kJ=32_5q6z@JjSK{im905ys%VNZHn$-)f+; z%9l}AdA2)cf=b`Kag;C}br&DTBhCR?%@_93lT3e_wv}2oLX|w4>b;OHD(xYI{Q^?5 zk@N_77lYT2@GFP_s?vu|&3X36Tj%?gKUXS$jPMdFJ?^U!*?$WV37&El3UnV2BHoEI z+$4K%x$Ic<I!6$qlDttw?w}=Gc;++_jBXVkM>TE6mYnuC$W|S2!j=AF(WKw0Sac+Q zyu&UNHUZcM;3k1n(sPll8EfV?qA>J@EEF!i9V4|k4@aQ&tVhW?AV!FQ2yG;Snkf0j z2qNlkT2O<!o7UrrC439W@kJ1JKub6Rin)#)t3rc~$PmUt{A^)l4LQ$la$Ar1Nb{SE zt|4_ASwy5x`AnGQbVT-)3Z4?F(>3JOGU8fNr+!oPM}>fJCQi|3ubQHpeN*&JRe`hY zla3*#=tl=l(I3DR{k|hGaV|~lxsMo3*TUK`8fV|7(kyxx(aWy&+#{C5BHD@GOT7~{ z5QbOCB#U$O1mVXH@4@$tPS+Co<(Yz36jVYyv8bU&g9ChUoib!zB0I6Vo*n0<pg!W8 zqJuC&L$AE21!<{)cbHGfG@s3*vDs5FPE+GU*kR5FrNJ4`a6MTDo6;=gY^VD0VR}Z* zx3*!z$Ixk>5oRF|Z%v}cdeqvE>fJfdlwjW2=eLlCQ?X4~ZWmN{qVUkRz=jOp=Gzx4 z&EjLSp$wpuGi-@j!dL~h-tMaG021DS3}bA4+-e!o-P*ectDp~xL_#!Fm;*iaJn?Dd z)?nvF#ZM$8X`~Q)g&fh}D~#OcZE3Hv()iq7P0enqdhCuW6xE<vu%EahXnJlG1cj3z z9Sv%9MbP$lah-ta>(OZ9xKCJ%s#SaS-{ovs8b66$?4JFOI9E_Z!{tCB+ytUp2wK7w zK?qPjRf(^i3*560#82WniPpz^Dr`1owxq0gTNNcD8`(_HVuI&q3@Spcl=pn<ULe;u zYaW^lX^0+IjT1Lu%r>QzHrbn2Q+*SzESY_7^#RvNRM}xtxyF%7VjFGZxjvgLi|EfX z<QU9Cxr1uhg63Wcbn9!9f3|SxeQAubVN~XG&K642ntJ)>=q81+qc+0O^U;K(J!hsK zNr#nj2Hic^I89xmu)ESr8)gev9JERBT%b?zILIMI4z#JUtGy6OV(@+6=L;WjM!%%p zQMxFHOh*zqMi;cN;J8f95`OiX5AT~HAS+ui3`V&6#}wgaNwOu^e-<HE<{rr>rQ(f3 zZidjdC2*V;Z@Fr=07Td<p6kNh$OM$k7f{JoPL3x@v+qoI%3Twc?07?+HsLJ$BhCJ! zntkszTvQD|7H?8>!_zzyHT%!RXR6sSLxE<W3c?Fu4rvA#!$)8-W4&DFh`>UxzN2@S z_l_RW$L{&!ibk)B)BGr)66$~w%HUgosOFb><!af{b)hH|dz?L0eUwd?gl#>;TeA7a zhR?NG!&~^!cTq1Y-@y089#?cKt~f7=s3P@LY?Jelvg#sgN#!D^5oM`o(UEbgsxOeW z;0~`^y#jS}&+kiUWaq+E^mW4L>@C%8?3XCH+sKXvuM6N63|{9vkFQ!yah~4~>A?A( zI(_Jf(@x_KEur5s$v*j6m_yQj9N0IfAMni~y14P|r@Tq6KhC!BGWdGli;G}SW~46_ zMrjCdIneQuuw>xTlC6Ka%h=({Y}0qbbSyp~?SDVue^OQp1S^()d5cOvha8pNBE0_q z?xG8CJ>WxzY;-64kZDg3k`C{(uiDA4OH-mQiE!aznhWPE&SR_kmaz6_S8k{NtfpE8 zxpX(kH8rA=u1j~<8KUI%r+aIS{hD{`(`?EdHZqMH!5`{5y;lbF{%8HJOfA|SgHH;z zC({6KiZGRyHS7WJJV-x{otx=eHk&_mMsS(5`UblK2vp>T$8RCTDo)*#gfp9cJnu*3 zQ6;rbAvxE~AZ9nWpaKhxD`mtClxR4tbuAk)lh-Itb|)#*Shj9qkmE`yTa3q9>uOcJ z#vq!s&Bjh7otsid1ck=s_Opw5P2Hjq(=cK(M*NXCqNB2329f17^0ZK(8ZhQ`j5!Wt zhWllyps}WhX5h{%-Uj1C#M!~(=$RMk{rMl`@?sM7$2AX?EAZZ&R`Zi}=ocb0b-Gi6 zmEDX(Q;m8fp<JN7#~=xPoDJhmU5@xrF36!$dK3=bcYJOa%;btjSFYA&?9{htoG8f& zEMuK)-gr&*tMD=}j8)evl9Qlu$sIh1pQb-jG1i?VbHs&mp-C9hqzLtJ(C(fR(WtdC zl&yCg#X!8h2gLAX1lpTn@1Yl#)7WrFr5MT{Y*K{rA$2CPc2RJUXPQ2@iwh<J&)Q@* z5m+(kqZXn@UQ4`{5I-6By6~3#0z79M&4<w18?cUYPf(o<aOWGNja}FQP)AJ-))3ne zcNy-h8(w{MQ*d%STDky6K(p^C&@R2oZKI%Y`-uBA`-U4F2U{nhw24qRO0(~n<{cNl z0v8r0Y}x2t8$1sr0Y9Tuw0I1@0TY!Bba!of(3W9!qj*j2vJumgQP-*WZF+Kai|3}E zmM3horGyshKTB!`OjUGl*BP?24x_Tm#z-m$I>=qDPH4Q@UZs^&HsblYsRQQzF1=BW z_fRq)Alu3v&fb1a4KE}8)$XJ&KQ{I#EUb?;D1Zp*bS)Ya<7t9XF#<+Kf%E#qLL@z} z)$CUlIIqCS_z<_0omawGO@V88a<ahyo!|aC89SZMhJJlR#Uyu{oa7qjtOpujYYQc3 z_Bf1)UMHhgE)5hpUa}i%psXMRCDS`lW)wIpdqdfOw}mY)a4B%G^x|N_hb!<fjSp!` z37#J6xeW(T2#s7rMo&Ms@ssb7Hm3e6nn|*62%+*<PXw=Vvm=z<!8n9Q$UUk8o*}WK z$=%L&V!V)GXA4?I_R~1dcRE?g;Q?ZM5z@%LC7PO?e&jql+E?}y^KEFP%cd>t#a%$2 z^OJEfa&+dtjq{(mQBPBV=J6>)Bq>0U`{L1Ex;pk+G7i1cu_4Mh#8VlEgM=$EX(t>_ zf(iU2OLBXi^%>KB%`8m*obG0z5JX&{W`wO*{4^tMWqs9tkmPf%W39iil1xO==YE@m zF|ZzW8?_EJAn(d;t<CLkHlD`G8JK8xm@BuX$tY?)q0L5=6=Z62MYpllENH@rjVv!! zRBD&VIPC${cvy3U8`;yq7(y5>DBjr0Djg=#ffm>l(T#XISx=N<u?y1JS!wKa;cNvt zM;;*x`ziu%@845FZ|~z~l`FH?Gp@Tq#i}4@26FzY*@%`R4S3wt%NxUOTC_8BH^6NG z69KeN!NBc_uk0n1ey3-WG@W}!OS8X6Ev*@Njk*)QsW%~GX6m7XxM`qoAg1iM>Dd@q z|7Yr(*~y8x2?NY7q)22SCryn38o1fmK{C4o9+dbn9Ue$I6B7}0R+GpCgR@3|NK>Ps z31sveZicxKr@&@*3?HTfavJDfQv^(dArOLb_8Qoms!Uz*q^vSQb!Cjx)T#UxiXO0v zVU=Bbb>485Cmix6>abqgt7Su|uU2^eA~6QmD{|uno88;cCOZz82#7&u0z6kq#2tN{ z<*5F3k?U|9Ps7XyoOCaaxetjsYLP1edJ^p<)lWSF^K3MX9T_{V%G!&g8IwaQNPCTh zv-!D0-FfKu&Z6h<M``Ha-j7@1?W~d^W>iNTP&a5Jm-2TrKwD<J?<bocZB!IWf0=tt zSbaa%7Nu}K&%;6hE15|&c!uE;fJ0M-vF8f2KS8Z3{AoO=|2BvZCpH3e8d`&MU>S5A zm7%uStHQ}SzC6mIbJUu?cUZqqt2K#K(PDQ4Ec?HMkpV3vXYaSkou|ZXDCT*UWIj;P zH*@2J56VTcDh`!8u_g#@|40<uzlHA>*X%yCIJY*pPuTU1mo*>nsO%fh0WT~(0V~y9 z;n`r484S)wpqu6jsVeXL@4Jm6AP@rxyo+DrLB;?Btx}8E^;)Mkb3wyQT90Cw5j7)D zZPquiDTz3|*jp1B12{Lso1DJM>6?-vc65{sH?hgsFY}DWuU!V?oQ#8E;3xMeVEX7W zYVrHjRKJ0GKaHZnl`Cj!_L60<_aGTK4T<>SYO42>4+*D&jrs;nO*M(r0n6fpn~7|& ze8UJJ05-%pdxJDJ1*q}z9b<p2n5L<o4lik%nx)`08wIf+9r6{nk0;8)NMppEAS=x9 zLu_*f@wf#%yw)8x)j!2nR*=ohxxyV?q=`uYN0tmZyB-FJrsg-0YgMK2^;_>UTn^T} z{Q~2|6OY01cKL&A$>D=i^Aj|_CY68SxKzHTI$0#tJ$66!1T>(inw^Mp5HY7BOhfUp z#D4gX8wU|T{SZHe7fPi&l6+HpK2$9c>&iuD*yIppdGLUiGnDWreUL<oNu)uZC!l!{ zb!kchw4<BN?vzAQX%zDCrguPkMQ?m%$F}n@$d3$2s^D-Z!YWa9s=G}6j*Hu3R71r; zYE|3NuC2cq;`nS^=&@Q=T<-VW6!-#E>;z174H+1vL#5*@>6F5sB7<oQnN&9TK4NKF zu_<s?srnLU8Y(0ZNsk-{sIZ@xkZ<_f<-ja4S2*=CZbR<=4&u$_Px@7Y%qA}72uT61 zExa(|3d%p0NCG+CF0K_%`Be05aH24*#Jg0}g@0$UkA1YmnvGgG40N%^CDRQnu&b9I z9~v)s*XEnZ(eed-KRZu2Sd220o_Axr<GEHgI-a}0PK0$ECp=SIfDns2MMY}EwF$pC zPu6nCe0Yi1o>qD~9tCqMz|mS9cm({{^*$W$#RK3^2zF>owoeig7q$?s_~CeN+d^h= zsENuZ7czrzHtyp)g-Seo;CcnFjO?oNO{)fW>4;jy*z>6R<~vR&{Kxu07Q4h(e)~lk zQI~T8k24$D_j%kDI|W?!@hscQY#|&-5ZfI<lL(<|a#96f8@1tcnJTEaC1eYUUrPoy zFLM>y!onx1wKxUtMg6seZa%9CCYoyeiVN8;1Cy04tZy8&sq@<+f)(BJX=xY~x|4>w zH_D-Eo=|cC-?TvvMVUH9+pH|1aJXc`cV-4|JK_C>9HMQ%gRG;JV(Syu^h*?5XZu+a z&?h|p1VuRrQBEk4!cnOQk@tF=M$0k_2M!HFs;^K&xlc&POnMcSy*a`L8$CnrfT=dR zN6`sXM8{;*%iSf$K-KJnbJ<68K?_Dg?l7qq8fQtDvZ}JH6;f6n_Dm9VHtcUL56lgx zcBwG(qu+b$f^WqoMD{L+*uzDXR+LcXAp_QY$SHJo?0Jd52Xf1m+a)~Sgx2>2GAFw- zQ4I^5Lncq4QXgnSEkaX|;dFgPWRr+Uh&H-&!nc~*CTN&#Di{h6{sEreLUJer&CJcF zlC#v}LLaP`V}-mT-)_V5B5WP<brZ$hSPB}9z;njl8gWbLHl_ZuUCB3k&_Dwn_`)kM zd*?`Y?h{!0rr>R7Yq~d{;w1t{C8Ux(Aij<9p@4eEW6u*_R=A9<92dk57d|NT5+dX} zXP4(~{de2$-vY%}tj`#r?YI5Wf1N_RHR$_uyr>3Q$3O|xjB45w&;e5qxiY(O61-K| z=*wQ%Rybf$!4(X+PUX7Dc}_Pyy@IY3Fw^jWqCO(LQTs>Uz0xeASoLNs7)#I!qYM3* zB994=-N^Q#blVlaIFTIWV6l=-PPJJGDwJf)Ck%b*wb>`hiej-uRvY8G!|9HfT#BuZ zsY{BI*Jo??ZB}aDsjvDHNv$)zRo@|b!<xYb4|YDdNX$$}7wDHs=mO=E=vb(9@S*NS zcShBXbbMCjI3}wd>A5A)ce~@5+#@(F%59#ofe^<OM-A@wb0LJq$!)|gn8wtj9(Duc zXE~9GxWd%?mx92l*Iq!rHQSiwo=`q4A0--9#Qcf$eH79Ij%@fYfXjl(a5Neu)@~gG zRLEAKRh66?STPwYvIbrzPWVLu*@bf!1kSL-3w$%|t1vE!Q89O#EN&bd)Wqoc26*>m z*-}<zxsAIs%)+^akPEk)C%chIIbLR?-Kp^5@u&UP#?K}<d=?zHa-@<AUYrKAZ7Y0w z51}f^s{XrTfh=>P$!fl7eSMI#URmHW9@Ffv$5Z@uh4d8v1fC&iiDoyTWQ-@=X-fB& z7^N$>cWXReca~`C0n^-dW@YywEvKp-3Da4KC#ZIu6F4VhZ<4cF8PD}@IR=@;<%;Y~ z$SL+c97E22MWvGO_b6<N)%p)B)sR9Z&QAh-JZ&%y;vS=5vtpCEjTd0O+l^{<P?-{) zkva)Ip(Z>89lj!Wg6|b}Vhy0i!?J~YtSC9K+*zpt4kAN%AsvlGB6)(x2@`Qk>;jN0 zD57aZ_6J^+m|bp%Cm7Nwxe)aG0M$@mz{A=PV4fKv9M1PnPk6c2Z@M)2$q|@PC=RC2 zcQ(NS=C15~@x_7{U8ZwHoWx~n<xSx)*yJwb5xy5%%Ov3WYHo)s_wXu@)-2rhh=|6J z(WWFHk^@Ui2P`%&?u2lx0B?b|LjMGV?^K{bVK~k9;Umn;_urho1IR}_nuN;1u=&Hs z-eV;o6vlA()8%B{TDtYImPn8s+(m?*7UZ}pPsitW;7Lt~@WL)6GtrATp2K_0Hdshu zQbtT`QL4QOMn;H?4<?xInMaS}l7)_kMe%v*Z4O{9&c)l}!ruxA>Fk=6<BDjv%8B%m zD}t{)!iVs4kz}|8=%==45`AE8KwZqJQ}LaSD~asnEFoeSxisG9UL=!|lH9XZE>m0G zh=k+Z1ysdoYVkzJEtj#kJ2uG^xLX{X6p7pv7*S^7&pS!d7N9GG_%KZCGPWoh9C3;4 zN#58JZEWMYbBbP9WxZ!IX^dAOfti@Zn=6bBk~C?vCa7-wB<|0O%F`$t7H5@ugojR) zA^LbE11a#M&T&l=9$)M0ou{#_p$TXYwHFai=rGyLc-_o5;bGbdbC$5}%|T0k;~Gjh z+%1d)lyFqQ;PA{f16Rm1-c$<*r*ivJeZB)auoKcW1?y6C_z>t1AU}oLRbuTVJ|;f* z9MyG<BH+*nr=pLf)AmsuNzW3xA>ZiAHpp7h!&jd3%;k;sP*?G8C|CyNo;f(E+|j;r z*Q1D@gl_y~t|>nEFt?7cJdJIdohAHiaLV(mNy@@CpBoqmmme4u{uT|#fjJ2VCPevk z|DY(lX%s~dOp5RY3i=pMQ9CKMc9JwKagX=@eC(Nt^T<(X2U0&BLT)~xeqadotzH%T zrxn8eX+D7ki87B8K3PNd`wp)OTqPE*@vRb>Jx28vT>8(FB{fdsb;fvko!_oO2GO|& zi5kz0y;|<(y)t%Ew^1!;BZO^haHQaNkYHKk+x<A>zu+L*2NQ_f1XD$yaAARDH;<bk z+_5HbP1(QtDkYJz^`84-k?zDp%W)__CfMXi1!0_QufoU0*>xi|`wnUL^>(M+JyFR{ zNva!}aF!jd+4n8V<~7F~)!b-zl89zt!{T%MJPPztxJ-RX31_*+)d5;5jeXZSvGmg_ z8lOw`xj!kBWPUpYW`R%T=kx(8tC<{MsG$%|bqO&@La-*bsF91&e@C>Ca<hcVs{`BP zm#eO74=VC84U%RRX!dDDla`#-o>|bHBA=*)8nMZBW1&(((AJ*i4Hs1q>%D^E$MD3K zzq9}%6zI#fb~XHe)5hQeMR~YqE<BI1$H4y)8*c-j@t!EnemsMhcPCBMvSE;eYa(un z>_6&JX!ak&Ja`UQ3kVq|8r2j79|A@`Q(bqH7l-Tt9B5R6LK;CKji8W5P)H*vq!AR- zZU_a;=Oj0!0KS@GD1BYy0dg{M?2v_SLcOz9o`wOP-U0LFRdR$=uW>iaE5C`HX1(*M z__tS`4YHn(oL|f8jOy><tyvZq!r}qHoNw-1eH1mT4*os$EyElDI0?`O&<!vGh{Py> zc>v1*3IWOiwgc<{cn;uofF^(s0NMch0JMFO4!{7g3cwDq9pI+`PXfFI@D9KS0IdKW z0Q~^!?-?cnU^+kyfB_&2U@d?h;7Nej0ZssX0ni69rXR`zxC>wrz)Ao+z(WAL0bT;w z2har20?+}_2XK?fFgF9t21o^14qyY=08kC^D8R1)-UK)X&;sxmfIfgIAf;mf3;;{X z=5XMzBf`LZmSkY^?=vv{%YhhPWAKID_ZtKAi*bgl(iB*VimmxNwoJFq%Id6}idbD< zS-w?QU@t4tmD|hmtQ8frLjB|A*{v4V>K~??R>8nOCb^6&&exTeVLsM8^aVdlDS8wX zmFDZro7uv$QWD6qmbJxJh=Mu>rcNm*A+sQaA@9C)W#!gV66^MgJbO_&JF9&2MkvQ_ z1Vqgg1BNMKDwsT`jIlFT_?yM#GsW=7Ff*7^h9l3nlDf_)<%)~xBOU|<V-so_MKBXA z*D8%hV-Wu4#4u(OSr=zs9-?CIj)}=Ohd?EDxV|&0HHB;7$1t19H^EN@F_;iWr2<C< zfB4GmostBdoJ7iz$rZ|=;1JcY(BbN^5gP5tn?{9?9y2y#-1rHR6DLj9O}Tk$)U@fh z%((To=$W_Ax+CV!yJBb0nR|C!e1d*n;*ahzB+XAwF{Um^TX^q%i%g4`nA4YLEX&Nw zUY_%BD^}*NTD``yHZR{=u&%Jkw!XNew5<Godj-pF*tlu)13%tUxpf=a)-{%5mzv9p zN?EHN#{y%7@v|8IU&O>RcR`D#z|$gvZ;CZAZfbEws@-ZuH^a(iS&BLGyuj}{skpc- z57XMYQnskXs<YbdWp*9IghA&nTeKu2gZkhrld*8|0>4)#Wr-<i;o<?GrE_CqXNQF* zmFg_z<;6vL7Pbh6OrfPhS7L!-X#szhwU(5#I24P^EHESst-55Lx9sAgwRVerv#tp0 zY`0tU*y7EzLe0fiONA8%b}4JgV@V3X+;6GSRdD6yWp)U$T1s>UfP6`r-3ocYV+n~f zi(*Uhiwz6CU6(X~1_ybYG8QiK`*PUAq6(d*qQY9Tws^BHpR*U0uG5u5RvWA|R#9mY zTVyFNdVpjfx(wsPH-acxA*F6Dw+`NQo69)6Kd!TM3t1gREh(#Dp|0z#kULh#Zmr;o z;d3d_<ynf0u`p;U#Oe0DvXXN0>CU(#uh@R8u7E4eBW+6Xv<x6sTEW`6JQgYs|43j; zak0r#MC*?Az6<M3KJU^pZe5|SqTG^aCCvo`z)~F0VE*lO=b-lT)!j-vZ|O4H-fSTt zT~?ZBops~w;l(Wm%fOrvzkvesrSQArFq|tTvrZrig;q;B#TMh;eVsaPEGiq+Zv*M( z4w<fk&A(2%Ihd}TgW7K>va_6}c%Xx@CrLz%H+#tZSC^IIw0#FO6wcmcV)f;JXMAA2 z$$W}^T?X&@)(u5@esQHXvTiDe?*>K;wv7L`igE596sH7+T@hOdYeGJbg7t&r58W<O zqI?T$f#_kh%Ljk-cI*9|wE_#mk+M|!$e|)IJCzib;zCq}{f)z&E9EM%0XJHHz)v3P z5EDOS9jv9$Yh|S+)>0N?W8AnQ<67+NIE+}~%a?pl1u%)R_`#Oroa;jiv%u+%j$no{ z73JB>D#{92T~-mPWpZ@1uRRvgNe|<NLhM<yW-;?%eO_mWs+C$G0#~}ev}|MPkDy#B zi4nVLN@%E=MoZ91^Z;-w^~0s-iSVqHo*(yncEhtudj6^3^TU46JN%w^`aSRRdw#_4 zIoRQN&{5@p1zGW+<H7BY@Sq@Ak!xyd0HK%|huKjJtLuzg;>_6&SZ`rbHk<M4jc$gc z)&Z#)Se6S53stI+P37eq%gY1S<A427x7^^r8NR=(!>;~I14`+7f7RFc3ye|a_b0o- zKmYXG{r==P_~%Wl`)4=*|A61seOmb6JpyC{e>eII7y+_@Klu&*4UB+)^zZN0AOFJP z&;QLo?1rl>)jRP0M(aCJ@4-GY!Z13jwmYk99{fqItB!xj{nLkc?A-OpqmMoQv)xZT z`SYiK@$@s#?s@L{7hZhnmwSKp>z7~o&8xqC?RWqF``6#txBtMwH{bfh+wZ(v-*Bk$ z@E@C+j~qRA{KTJ5o;rQzy|d@u|KP)xk3K$s;m@CZ+IsP`&)fdvi!X)tzj!+S`qkH+ zm;QFS>znSL-YegJ*Y|zD_zyEgLo+-##1Q?n>;KO#|G%6e9XkAfMEj?uC6tsT;I09~ z<il^K&ICUlK5T{`V=~>5pMS?@LQ9!V43lIcJTdTbgdJuUmu>JpF9B`|A2Y1wtk*M% zTgO$f40A76O!BxFXk~Ph%I!tCCt<SK^YHq9s&%cMlW4YkEv4iU%EA0GU(6Hp!hA3f zNVggD!1S0F(=Ztpmb2$uNFJ&7BJ#AXkh51ve%aRiQmgc`jH6GcvQpxa!AY)##k80X z<6}IGgW(J?`O+RsHn3u48#7o!7^8n?h1I@ftqpj9g##2b?s!1hB1;9El!siUxvZQk zCw}yuX2X~uN6R|v{IX3+OlF30Y3yCIQWh;DI6={X0U!eS09uG0X&<OE)EpWB+5wsa zS_K*h+6bBoS_~Twe#uJ~FUedM#moYp7vH`6Nwe0HY{0)HpSUZbtj)kxlq@YPW9jOc z_7AMActCi%%Yc%o3=_vNuN5)Ovrk+*E=n7rdroq_?-wEr0pUjmh5un{V0f)x__xyx zOg{oV*MoabddBdF{NfePF)+n*4A;eDls+*0^q}yIgThY?3SXaS@YVJ1M8lBfbpGi2 zcuX}69d1f8Fhxn%PoKNs`glg)cm4D~Uwr-WKbr^Y*5UWuGAQ0NO9#SUUOIGpSaSl) z^Ur7a3Ij8F#n9oo5M~(^UOy=R1FHhV{rfd-wSif^`ug=fXd5~`y2pyIpZ?_L>!<&u z>iXgDZVwC}+@G&McK!6G-PaFq+jD*VSG*J$KKT2bvX_SAFZY**A<Mb&>h<yHJ#_tg z{`{DMS$V}*6f*`lv0IsI{{D5g@{gUZER`*=mRju=)|yOr%#vAqv2la76xNI;2xIXS zA{n>Ky(bZ+%4|y!n_6biC@Ni7Y^5tC^B9v%&P=3euuT3|kzr;1GEK9T<`)C~@D1i_ zD$D1Jt*J%D*2R_*E5!boG2(7~vb~5c%Ci(_Sjqk%!*t0PSuGo^SNVTCkPFQ?8|FJ@ zMzIxWiks!qs-BdeZznhh$@~vf$}w$nSxE^bTvSvF#m~bOu=Lwmt{fNpB&HLwr#UB= zao8F^qH*%6C$uc)f;CvSx!lUU3zSW<mAwklyOqnlyLi49{52_`v)iGSy`E{x%+f-V zbG~s?9uQlQ7&0dZ6qA*J%aFkz$QM?mSl4pv)>-Xls4jNhmokY)AzNTDn&fF#OF22@ zV4fq-^gv@J!NiPJX8tH&h&_NCoYwq>rFnL12^j?q{{BFPc>OalZBnwCVZyOxmKaU= z+zQxaS&EDD$(R8Oi20FnncrE;JbaT*Q|`fM--$~iz7Z6=u<iY@f7P$OmXRIRg+Sx{ zOqmUBO~w$@Enie-$(ObWVKlu7ID0q02lYr&X?{j|Q7P@z`(#+4abSltgT+$}7{2vn z>|YhYEE*z3HdC$4F3Pti7h3Gg%1pRpJbyE5We#0C9~iAKkba<F4Z~QJS#)olv_Os` zowM3Eo2_<2c$VhTK?uEV!?s>ll($|Ql`mgCmY{Jm$XF%h-?Ae3zADH#g(v1o#ZtC7 zvvea+sm!kk21~89J63rykb0+@ekJt#g`R!f?;Sooz<ItbwV10Y#JuNo1qD_+jO{Pv zi;_*2a#~I3iOC9ITP!Q{HV`BD$AY#n&~FRh@N0r}$$>r)r=5&xatK2|QRYh=Cs?}g zDDP!bqYUVE;AoiS;<5^9c3>W&qea3$iFwkmHcL3RoMTBH17c+}!T9C*ee;{8Sq=+L zVlo(*M9M98tFN|Mfj)qB3*zY4|5+A$5gt?|G4~mlE;cR#z97FCn5I(2QW)1{Ff;Gd zH2F&k==*f}0GERGgPGks_aw1U&{~eQRwP|}ef-z&pZ}|mPV%`je~||5)p7A&(bZB9 zf#LEW5VwE*{`dbDe_?p*cjMko`3vyZIChFZ1Ns^O<vkst|M&UgI7JyX@0e6bE}o&` zbx)KCL{UIAtb$_vApj^(s*>Dck{c?84fhKhBc(-GBju}={6+%YBmw$Qk^JXK?@7{o zvh;42(kzwyGbA@#%0EXcyIAtajTIdLOti$dy<NgJSc>nEaITWv?NYc?3a^&(!3%dN ziu1JezDL661*yDWO8)yL{7y>YA4=g7A+#;LZRTxrf0y}B`VSTUpN&6M`2XIYcE}$M z*A4mmr=tCX{f0htpy5MrivM%*{vm(=zmEaw_y71%C>#xRm|UrP0T!$^+c$5YBKg1c zDRuX}NZqPuaF++TldTTo?uGab&wu>9ZisxV`l)M>+&6A8ev;(wgZQVOYkO`y^B>O% z&#f3b|E+t-6Y6S8|9I8MI%f69wvX?+I{w*~Pg<`q%$-|l%HqG$J-cKn{J(1M-Z4Ju z2Yr_@SL2HIp}oICkAdm@+Q5`wGBCA~NzCr?RIw?#*w>=;!?m?nFp#zM1h}|nKMO9d z;VN+PBfjvZfvm-^fQ$4+Ex4n=T?sDIG*RG=1Gn!B12Z1n!{AN;_aShRR>%i;61XYg zP6oI2KMaJH*b6R>v)9@T#0r-d+)ao)xOjHe`MH6?ucsAU9BdcB#m&$Y;I7(zV}SG* z(ovW%*2&9WVEfph?{{A|FpmQ40C)(X7N8oy0k8?69H0<jC4d<q4PYKX9KdXV7=W1o zGXSChPC&800CWJ601*J;09pVwfD)khZ_p<I!ry58R&ZMYP6HeU_yfRe051SM3-A=c z4uCBH<p9H!1AUHtIt$wr`uw3=|2}M!erb|*npuO!54Mvo=#g>E5Wm6vm7|=d@4Q6! zr_CA5hDv%vKXb}Imi{!<OFM~<Yp<XGGk)X!(wN7ws0YBA7smx!=0L@)=KwAPjD(8C z04xT;iz(hT2@Iu+H!?&njzJwyc$55Z0C>6b4geEC@&5t>@bAf~$Orut($AZ|xXZxg z1FQsC)@8VA{QMtKO9KQH000080ECJ~PS_5s^oyAQ001Td02KfL0CQz@b#QcVZ)|ff zXLV^UHZ(3}cxCLpdw5jU)i8c0Gm}hioCFvMHyL11G>Xyjk}y!`kcpm=iN=bGii(XQ zR;)BR2e1Mro{7z5JC(M!)z-Gw>g%o5S8KT{CIoVUa0!asRN{RPBN#xFa6P}Z)}Bcw z5&FL0?|HueJ{~e>pM70>@3q%$uf0#{ZObLABuO^-GfhcaC5eAN>3{yW8~z53T{B2} zJAKQzRhHnEaWm)LU+G#<@z8x0cR%PVzx!uDdq{Kr<X%^W{xjG8KXdu7ztQ#JL-*V} zIXgSU9j{};oiF_9zN<F1B>sHI-fX#t!kb&Bz;o|{*)8SpeE7lZT8im;SIdL+478-v z^Y)gx@ci-p<@2z70=BXeNxJ88n>6B0c0(erQ<@-Urld>Khww6A#I@zaPmbuaMT&=0 zB*~6HQr}ZrU=f2PlB*Jh5|1Cg_X|q4T#Ga*dGO{~BuB>oVvzr*f1Q%FJmu`kleK#n zYw$ezK^!3LyRCm77eF();-0&;yJ7y%7j;S(z~A2f`F!wyvdAWVaXA)*F&T#SSqA2- zpS(b1q&`Alr7U=k{6Rk7|3Odx-@pG0|J3kow?hrjcju^K&7G%)m$+TZOywr!X4Uw{ z6=a{PMyu(m53rMKaPp44u6DOa{OJ}o^029vx9~EUS5KGcV6gn#CTYAHnPmyG&Kh&s zz4F*9tY48=WL;QwY_@JQn_}lx9UHH^YPyyU^|Pk8W~*#7JI#LzHK^A8`CU!c*{azX zOYw9;A=`zjxe;Ci-h;Kp=8{!VXmC=Y%S9oT&3CIR)7)h$TjHM8WF6mBY>`wp+wBXm zCe_&BQtnjlP-Zu_CH`T5^KMbAznKGzKxOuK219<&1~nXVmr=|fl{LsK(p7dm)T#|x zuA22#$1c`wO+IsWog>t$A5tSBH<F5A<O#Pg1)qMmPmRoU7XWB#*zb1n>vMrZEO8e| za?R@!1%0#S(BE;m|3l$zqVQlSECyYTKtULB%G2Ghnk}l?s#;sBie~E$2*Oiyid1h) zMP?K9gd+7=QnlC+5cnX#)(q9-obdhGl0?(F8dolVA_D<?it@z<CnZ#30()Osg>Ncr zQCSaPn~A|@l|3N_%+tml2r+xsU4`$}8*pUrYD^mMv*Q;IH+4104yf!zq|8AG2HoJ@ zK&L&X%8n}GrINfZ6VR%}^MxAD<M%>yHT9ZP9_yDNWrhXNgqKmI-YKuhhgV<dpmw`Y zUblr8ip=(snlH3~uj&*cVsmT{gvRT`d|k~JeUPUf66L4reU~2evyOJN#?%G}Su>*A zR^FD5h}P{fvC8LtwUbrA<3IMx@=790Q>vtxB~qZg1SX;>5WcJl3!MwV^EYz{jNIi3 zc%RD=@K$*NNv<(XlaO`*KA!=HVbmtowCaOd_G9BLQcbJo@a!<1S9}DN8|MwOPwGSV z`1t1_zIQ;XryfUij~WTO7x*LB%=7FBzvJ#CD&U7E;b#{9%;6t8Bq?$WEb{Cp05rgx z1@j=6={&R#QFb=u1q53Vgt}EM;KOMx#Gir^PiqNaE_>h83a^t8<t$Y6wSCm#N&L7S zvCa9~C-_k3@Cq9OhWOJX5&j^gcQrDALuEmCnX$<X+kXeOn9jTQA)*Db`KJhO)9FuC z`*%_8g^6lMou%54=<vY!wlm}FEr_dv5=I54uEp*I*r`A{2VC`jtg<73v9P>?ksB;a zM_$XOZW0-fydE$cAjxlS4|=yO`6^Jp35JD_O(QtlK9;0Xwh<Opkah6Ea$?Ox&7xYU zGjhMVv>?cAp9IRcK#|`;k$|<0e>n)@pZZChNSKYZX8hJD6kD==03HR{20|e~AnK&= z##@w|6-0<xDMSF*X7>`n0whT6h#$#Nu>2U&4`r1E9rm=E&f|NM=~97Ms1bkG#fVM? zs<&Zbo;+5nDx9q4P{}694iw9~eo?H6rUJ@RNzV=_%j{D=#(}`1;cHB0_rPoTnl!!( zBv7{7=rQ&2e4ABJNT6cQ6CcGVb~->ADYizBSp?N8fTw^G2vqnVZj^@jm^UD?yhV+? zlZEMQGoMl0mt8eCspfjsyQ@-`SEPjMHOJHp%{Db#k2a-9NHHl>#QEq)ST#yl+&zdE z@I(OoR)Qp+DQsc(GKdH(4ta(BS_suDS=fI!X1Nrp=&|Flx&?_ZRM~DI^nBqlT<}~4 z%ysc-3N^MD*A@^~?BktKE>e;b&88;ac9%gGm`!&u{DND>S%Q8d`zVQAc;y-gve`(9 z1=(=}@vtq3Q{#I~(>QGjgl+Bs47+2QOEnrD=2n$u@>EDujb;bNsKy}+OhJ$S70m`e z&~2J)1ubcI1ibq(ZRt39Y>4EA0L%J>H$xV{yQB<DzBYicL(>9QwK)wlYZnCA2LKLV z^CFCcCEm}yVj_cVBVP!aXnbSCO4!DD=7&$>;Iwe%glPs@yu(a%SY={@k^LaLBKrwv z&^ktZR_;>nyzBO40;n?Q{i7`s%f1VK6{3;R9%=wkz6=(*>IjB?dBL#iy76XM?XcEi zl8$-yv7@X}^=_7bSMP1q&*RI_m8518c9BB31ex>f@U-&(nkY#|iy3tyo<WiK6GiSg zYmv%$k<TQ=?|a+}I3n}%u50pqa?S6EJZ<A&O@K^2rgnkRa~klj99H%wwc(gO7_m2> zZ;_18#;OnOm=&-N1uV~=m|>A(xeyqgf$|T~4*T<vscU-SqxwXwWhB<(#3jKR)P^3r z@hKE<h2mNDT}ok<HlDve@oeC30A<bCYI=|A7a(AzLvV$bvNj_0Gu`tra*h)sJ5{y| zmYOsaI)jn_!XZHxRtVJRPMQ}rVh`IbQlsxiq^it5+iQ{5LVhITX{%7RirKx5a<CCV zCCm=niy#ZPor`eUv-6>Qkkt*M0*G7TF{3f@>xq=ud4WhwTQw3<YO$vk&}|g7riO=F zRAYUCYBT`4$1EC%clPy=JN6~^A>teinMxw6H2~x|;+!|h0(f2@AEp4at;eAXvZ0oM zaop50;rFy=FRj_3r#7dY1_l{0>#_QP5w+;=Af?;j!p<VE=D!4ms%n}WRUggHbI-%c z&Au8T1y&txfNr&ku^`5rJs(6Z)w`!+3Jg?d8isc-nhbnHUG>_l^zQ;Szg_J<pf()0 z5<*0;iUf0W_*Bqi<uwoF$*~MIGNZtB-uMAY0|<zy-#9i@WqX&(MneuCl$`ro$UU(y zw}2Z4<x?v*zp3I%0Oei+rDajRyyoY5vYNjs37+ogKw#d0K10n$1JwNf`@K>L)(cQ9 zmE|=Rc?8GfA|rwDYH!9ky!W_$LO$kyzW_&VH_q*-B8bqO98`InYb}#^jRzzPx_x0l zh{oPN^#3<^Zi0RR`Ui|2N5zfuiXDN~miWJb{6;%O`zp>+yZ0EMrfI3c{023g1HyJG zYY7+~R|OiPsd|xkNrM-wmOFRu+~v#Fa4uq1z--mOD+PEmYI9YyAz-%XU5)ZspM;s< zf1vu9G+L4>3ow8929Pjr$boVoINh)t{yLyMJUIMy!e5WRJNDFEl5bVHF&F-z1pJ61 z5ZH}BR0y6Ne>(A}N8jFAmF1SAGXW{j-2WikQ<_<?xnT;s)~9Kc>VW;#+H&R4=Qud# zdVpL@gB1O%SXO{FHmYG8bZ|Y4ZA!r4j*4>wtIgB&Z&}a^vdi{>al|b3v<Fs8VkoOi zYudHefKl&|Lk#MSS0C!DesSoFT6eCd$6xPP8+Z=o(tZ+;x>@A7G5&f@Uk+b9>N1hz zlKAVy-V9^oF+)U#9PujGOvPo2{jqLRJv(5ob1F)@8q%~3n627e$PzmY{c}}}NS>hZ z4S6u)E=;KW8oK17AxMwUIhLq*K$N8-jb=S|6kBME<8KMegY_0<t%~t^kJ2UCf~;K| zqA;JMw7ksLy*p@a2O1Zg&>kpnyp|2kQCV>gQyr>xhNDZd%37AZLa`bho$Av#(4I{J z)=JnNeFmf=T1%x&0bT_O?K}+K>!$z+K87+hNOO~d;h@`9in8W<73682GKq2)HVXY9 z2zl~uy7?BNn1OU?d{cm&_hm_N-lu8d90S?Vv!j$9W1GS=-3wIjaV;b0J)+A&?|MyM zO|11D)NSGQaL~I+&r*w?axaHy{WDnP@v!z`(0f26J%>rnA_>FV+MxF{k@Vk~^be7Q zVeL85JGQ@Yh?Ys3a3hMAhpW6(^a}wBZ5+(0ResEi(%|Y8Nyt*r*8pf}Lx9Y9cBqj@ zEHMY>wJNp4RMa?+V1>iAdr?K(I|(xZ>~^$546n0Jy;#ehI$KMhI#~yPaWrOABM+eN zRyai8rg{%(7YAVkCI&&;%HI|&dV+c<KmKZR)7$vdRIAEPVavy{<>4woaD(dYt_Z?N zXybxxYrFy+gM~luExd)_PK9Amv@$jS6Se4B8jFS3p|*j16?3)m%OO|nVya8c-;cSd zqDhpiw=TK2E}K$2)a|K{{u*+zO)(n~&jmryi_l(!qXU4hUx-750B0xW4P%C5BZCst zwGb-0Nx~WjC8lX1)eV@TPvm!wK^(gWq{6i*RP@Ocpu$&-Mp-E~7?5NazZ^2I9*?Zv z0kR3GFN*;+3s96Jt>w-;8vFDz4V78r8&GRNjy^8Lew7_Yaj;5IceQ(WfHjnk+E+SZ zH-v#Fl#begnkvxRpu4bi!gh*nRxuWYa$Fjd0u&1aRywL)g;-$5yA-3tit7E|lR`P4 zgZk7w0Ilq<A266C{^HHPAAr(x)rN+gx!nz>siz!mR2y1zqJQhh>zkB3U|>7sn#WMR zxcqXIV2XhVEUzaCY>3KgS5asN(B5o&Ci35QZ5XRU6L*b$Njfy*;OQRB0&v>P9gw4_ z*rAOgLQ+fFvTwp{>HNU?RJ{X}x~PT}-Dyysl&0c5SQba+hf<Epk6My>D8cG8rY#zQ zqg=j62k`8-gMcZow9PU)9I=~GV{mzP@N>z40cxYMDhu*jmJLJ3?IHmV1i~w?kR(6b z9fR^!X#MibD@V@)vgoK<;x3f5EG$}JJcr<%QV0Ma$xkp7f;JKTLTKi|kO6L`j7s2E zA6g07l@A|DvUThxwWd}35a*mGz5p$5gd(WqK#^v@yAYs$6rSpIEch2tBaHd(LJQly zI0LN=1x+9zk}g*OLhz$kka%xwnDZay3zPwL5Yd7_m)9m(A~Kq>b(ZOML(_pxOj)nr zf-LGfP&}_yyBknd(m%a6GBkZ|^=GC$xB7UGyr^Ae7T^l$K;-m|Bw+yS39L!*-i5${ zI?bSUN5Hc_P}8V20HB`wMitQ4*ljk3c4+5?y0i&u!+{(KkAm><cvyyTrU=?XU3x7R zOU$*4?cvuK(UiHaBti9`r(k3XE`bGVN^uEMH9L~>gUI^pEog{2+A0LH5g<7}w1v!t zrt?rd(#AHM+xz1cwzU!_08*UWAREN5Ms$f*xbQ`U=Z?iN2%(i15dpYGES}?JrnO?t zDOfKkvEKa^2XU1aU@LbCz9zDxl0pTbmf;{l!ph1-+(<Fo6D6a`CEJq9s>Zasb5M!d zqvb(QAB8Z_@RB9Kfq?%EBQBppdhIVZ<0E?pJoqx`7&LVoyzhtc<aI@uHfAhkndX8= zY|xoHU`(5U&4CmX$sUPy|9J{ECL@lwDv`1j)0qPC*rx$~CEAFlo4jN;?kiy(Y_Fdk zqw(a!U_6%_)Bciekt}lPBt$ja>+l6a{@RI;La=6^T(gZxX?E2ZfWUJxhC5M=C;)in z&|gL3?U*=>5_`yS9b{by1F#*A?}e)It%J<Hs`qq77T-S^vKFQ3DY36GVz$a;zH2hc z^}G?E;WYDos5cYqT_+OY^*d18`5TjwGac3KK`+;!p`+O2Nve1j^fnj=Bvu2nk+q3t z;~-!bf9Dh$V4Ue9>NrNd0#VD+CY&J#<`gg_c-7BswlB*P<DmedaPTi6K><FV1qI+~ zIwv%v^aZ280Qmv3Dqk<F0^}iL6#eOGl)oViQ)Y?IhBu^8{>XGo^m<BaBP%;ZvGvhu z7$epMUwu*B(7u}=n1;d4{Q3BE&`|NLi@*OO{@gJ|Ji7|x?}gOOM*#)-Pc9<G`0Hc6 z+8xPz!nCPYfAd^|AezqGn*cRdmEI;vbBpX>?F7E{6Sdqv;zJy|%Rhv7)!I~Dh})`K zre|MRh$6A;R%fPQ2{kV{w$NCG)Ns(Eq&T-{U(wTOa+QDAn25{iO@=lqppEx%RA97U zFD8S)xT0xU!1#1KUws*npwT!}zq~X~jQGD#Ko4hKoXGiE2IYJbbK*uPzoR!N!<^>; z0bkCalQI9p8LLNOLMkMf&RH92lpY2homVLou7S$<5??$op~&9jP|5w%;!)`s)eKPp zZQBW4?OGaZ;s3@=EmI}Q7h2+;FRuhSSy_!+pnkbzQ;^l8D7cm1cM!_;Ag<Qz)3I0+ zU>Dy5Ke3Ul$9RW^1lT*Itb)ikz7^4xHOK6$Ofne>5ih`Q&kL|hSAczfS3+;+?@bp< zKy)x68rivK!9tvur-m1}(B{>TK9sVD9i?nsfc?C%H2>=^#WuGT#i;{97L{v0l4uVm zthNNhzU@Unk{{0}!|0t^thguW?T{aP3FoW$B!-PYLD+c2Cdna`EDf(k8v!JaEWB)I zz}jqX2l7#ih_S3vsa`6TS3cOGPXe0Porg5<96;Jb5aO>~PBd@O8ewVQVmfz0G@D^l z;yM6SwvE3(9TTtiu^Vlr<)yTPF$vx$1+2TsuD*q6f$3z8Fi{^uW)no=#vJdDDt{XN z5zM-$J~lVN9(H*S2J+3K$qQ#fw{qBw?}FY>D}E%pS9yi%JywyWdV4C<l&%t+OTXCg zN?JPf%G;w&hz&>U*J9||o0dR0)eqxPYHe1`?dC>mX>!GX6TrA(;)A&=2(Sm>S*gN& zC6kN<{a)hEA^Rgrhn&l3&*tN%<5<X{KOnl*e}h)r`U2IvTekuHL-^|=W)8+IqQ*@7 z&(bVXcX1xdVS0HmGI0l*ZpwQC#?+INp1&HM0Qj|oVerDXlW0)^##Zbi*)wb<TWq-4 z4WeRfM1W<TY%X?Vf#zZdK0p|ST$$A~@=|i+8&0v51TSK^1%z7-v{MBPwtz^Qyyho) zAmHt-91W@}ZvY}zU7lwiGEJl04Tw4c{>pQt0kT2Y^gI};-5?nnzsP}At(a2mTw}V! zT%4`4lv;;srpPNAVh(v-EC1?3vXknzbZacdw8m?y*|97*a4!dI4zObZ*2(tz>Y}I| zu@8N9Tg=V81~9_7%G7K%`yTx|-k<r%QZx`B`^g0Z>QlOW2&$-5Wl=3FU@Rt(ExEBP z0SZrDsU%v0X3jx5+1v;%>BIRn7*V6}0zFqGzj+lmVaWmjTh0Oi?Oi9U>DAwC7n?X; zN2SCjPD_f|_u7L}?>rQJU<ED?u<fNRihFy0)&Y;1e%1*O+VaD_KYq_q(=74q2zdAE z3jaGGpJ(4d(VEP{eB~fXDtuO`^0EqQV=XRrA-khZ`xJ<?im}b?D$er-BiYYxGflZ> zjU;%};A|3=76G`5w^^HnM(GK`@_NWvxeX08EueLcMJspd1NE~?t)bScVi3YJf^0ox zDT6F9-i43q=VR$}u=EHrjIT#)ctej}Sj3-dz*1e)3#&AR?;3RWzQnT6-WP>6M=wc3 zy%h%KxVF+)cd>$dV>8`8{P8Oc^v9>jG@?v7Acqd5id{vtnJ8<~kgb}{iuZ^b7UW!h zq9qkKbvmZbS~OUd*KM3GuY1DL2_s>AD#xq}+oYDSSIb+~$j}x@dMYF5J4tFdZiBXF zvrUS3ha7qsz%imAxYau1fr}G?SR!d}BJf-y@CRttIA)P+rb5664I4f8$WJbV#Vd!Z zQgH1katO6Dqo-I7ZO0MlDUm~yDdrkEG?4-~Y7ZJcv*geh^mdyz+~~Pm4ms(qTn-^0 zh^jUu$t6<2*ysp&*J~H6Y!(FeYUe8QnlCct_oT|f&w##FhJ+)3eS1%IFqFX2EQ>m5 z<7!OlVW{V@6^5{TLjiOS){(sCo6G>aLn`rhE39cX>TI&V0o#B)IS%Xw8rPwnMAfS7 zACq;MFfMvT`axZNCAAAn<dvm8xGh*8mxTPKtdal0NAs>gAI3nXvxv|QQR+&1;LVS3 zwV`;4XXzO&1(0!@9MgPN8(oUg<|~28kEbi_s2sTnH>lR7V)h4U-0zj2a9S~N-?D8+ z&;4@fFb)3C<j}t<@Q@t(BLx;{_ZmHwa_D=Y4@QqJhuSE5v0SqgDq3|Of_J0YGS^>} ztEGdom;#XN->UhW)%IhtaWFDCB1gWZ5s77(E&jq>4QOZsW;>j}83=_x$_P3XoN$!n zRj8FBy--M)DhYk@@EqF>O@4Q<K#AONq}J~)joqk_WQ1vcER-Ib7GO(h`uT;^5<@75 z7N5j*yTPT|=Z3G0rG&3cjA?W}&NK{_kdc6!s)#9aMH)V`Dl<ys*c6*gvxapHg<qeR zRw}<&(i0mF^9PR{ic2jmhp?@LmGsbicByy$Qb(YBH^Sx+6=zVz71k0~57V>Mp{%31 z%~Xspx=XxAOXTa1`hk(n!R;TIyZ3Mzckdq6I$;wGlB%$+in&$sZhF)Xb!#pl4Xi!@ zYqt9^$aazG1x8QNGOJ>3uC=P>=Gb=h_Q5KY_W*0n{6^Jm#P-u+T>Y|vRux3C^eS(G z9Ll79>CGl2HCYRysGI47d{w9J)0H@oMR5R?>eJ{-wCsE(vhEJD%xvQi;~pqbf3nn~ zED9O~>yD)=>;5i@MG3mp^5YVXCJ=#BYIzstM{32(#tGbC>_;CYkk^Doun8?=xQqQV zQSbNt!1P?^c7>hv)K`CvwiIoQ-`fcS1j{aks=0&e0g*^Wb>CA@(2w-?=))k#1kCZ3 zD>+A%_afavlY`b=U=P<%A*8|K@fXc>&ys6q;27a#UV;PXs7yl)ya?v2YlB70!Iyl} z89;baW4REUqEQxCjKee{_ne7*bY8yZ_UCs)dKR!-=&CQsHUi6a@ejI9lOk{cf*8At z5A7j*b!fxk*VeB<0slJ`fU5nT`XV4Vn(pmc_H&iR{6I*^zo0%vcn6?>uB^h<Zf;YJ zjVXNk)WnL=FJ;1l3RGP?H^}_%d2tY)pyK?u-NcL)?{WPl0zWo^9>9~(+a@-m7ouG_ zZ1;%lP>&C4UosM*)`s@$=D{w?f;<jU1gY~7+GEckpc0%+WrA6u)B&q;HZa|N%`h0m z&yWKGr>k)vGfjWtQ@w2S3Bfl1Mr@NcVMI%OYyQvyv<p7#c3EkQetUe2K4I4d1PN$U z;CG&u55M!ZZ1`QI|DNb{?8&OD=Ia^AMd39oRt1D2C%On05(He)pFyB5jcC=>EA*jN zk6JF%2dPGL3PnY)hvcaqiodis{yRB(CC1+aoD-iwa?isj5ZbZ$1j;%bpNr*?j8EWq zY4Ai2HJi}ZC$HE-{EGKnfqswPCT$#Tfzv)Eh?0Ej_ofL01yK8@9FjvRWS>sXFzS1n ziRd#x%b~Xy=p#y)PRkMqk{tO1M3=Dc=#%g)j%2MshV74N>h|bTN;wkM69va8aq0+@ zjv}2Lx$QI!j;(ulOa^S28Of@`@)5tf9Wz9yh@vh{f!_(*CGeZCjfdZhv?1_YAlKxH z8XQqMUR5+z1T4{0XaRw-O^Y5qMNuiy1E<8`EWn>x_%joK)Drd?^g%FoQf+^1Pu>7P z>Dd)G*UkgJ?<;(pkSV&Ti)<skI_m-uv=`?E!*g7{0`KxTp9anD72uM~*UUoYI`Wei z+zHul$Gw-`B_1>2ZPpzqjy{q?`uy)47GT0{;cN}f<aQ|&4NAK!i%V)BaRiJ^Q)wzr z&nO8$k_8ck@KTfkKT|NK3}S)-qj469+1Do*u4rW0=RyQ<-6igy$e{pDHLPW5TMl{2 z$#b4fEiVXIzh5f>qb$mkgLy=)yqo1ngfzp;Pl9$veL(of3izP{?S4?tPBZ&PNLH*H z!uEF{5Qs3*_MS@R2Y@S8<%LyehCIM*r~AO($m|cHN@zBF8<&ItQO3-H*H{_=gYgP8 z74QCK%T(h>ruG2*p4RRK<yW$3cjChVi-`>~ox!(-2p<TRe~mt7AbbN49b5Xq7a+E~ zfe56c;}M8Vk^-`VBLGvDvj&YXeD4LKWSRoJE-OZ}v=hl>a{v|RCWrULlE+FI)C#0y zzxu$wS*mr+&Qx@m@S3O*dQWSqRWlq_u}7PV9n}gfEE8F@(eV8$z#p^3`?c(EF`du< zOBgQE`{i03(h@RB|Mp*^`7711M_y5H^rYxmn=h7b^jLKp1RZK*MjY13aaiqUaaJq` zw-qL1UbWeZZXb%dK}D;AX_cS20ZrN2!&1>r(e*D>!D3d(kEWXC!c+sQXXT^-d!(S0 zl^6D!0DAXoYg+Y*{DPFT?rU6S5&Iferi>O_x1bMZ+j}JPrK$d=18@gQE}+$+0rOb( z6c)?ckNgd-l^~1cSOjmvXRq^SndxkPOXx0+6v3W-z*V4ie(F&nO?VNeLLy|uC+Coq zfT3AIbh?Yn2~;g>#CMmcm9K`<F&DBNZWq#tsK4+1Wm+=g9i`{tHVOA-G!o*&Vn@<+ z=DvlNQnuT4ns185ubR$p-XyzUR?R-$5m8fk&t;f(E5xqBT4<_Qy-8dLN9Ojk=<lFq zM?pAQ*M&0ro&f7n*%9u`6Wtyegbstkyjdvd=vRk(gXZ?wMA~8I#%0*y*#q;SYB}%p z4_$hV4FzOJ0Is_83q+9sYxhTd4sV8*Z`KE_+l`)!Dvm^ygGNv8qSRHOoJx(=4Sw9( zM-(uQ4N~N*>l@Xl73OcSH41y*A_1(Pu14%%e+eUQQ;qr@as#0BTawZ@C(?&fdhb4r zCn?WMy?MfUd}JOHDd&@4#<y{Tk+K{RIJ}7b;gnuKr!&|^(9!s?vBgAl=RKZY_nk>a z_S?Rfq=hatrMJ9+r2DTNgaf~K%=GVZ4o=9|obsO1Tav6FfKh#$9ewspXly|q@CTPL znqh-SU^am<ndF#;bHVRV?QQykBKv+&sTYpNrc3)Z-TWOjt;pA$RJ<qk`sBu!;OzB5 zfYz<E!_Y-rO$39Ave_2y>g)T(YK^G@6t@Z}w!*r59ijM3914Y?I0{gFr+B~9*ZmJr zoZVO1(?y7UK!NcOvQG&!cOrke?}xy&9Zdi;r5`YFA58%Bz2f~|Uz_Zi-Y5{e*R2?L z)2_Txcu6<FYU(l3)xdOCy-sU%IKL4$U~mD?eVweDCqN+#TYGJOefw85j0K*q$aNO} zQ;-anNA9%Za`KM3Y=}i#dVjF|b6~>`t3|rjnA#y}W!JK-jxHt7&~o@&9^o&UYBoVt zZsWwzC6_?veISBiF5!*#=YP`XRg;MPlq)9sn2uQi?=uYd=aSio&BdN1Zx;S_3i&UJ zWvoH}(Jx_kV}D-+7gO?Z;`g|%Q&aS-x|KW!nzOH9Mfnfs)R@aI;-k?4nBAD;XU)+0 z&p^om=|pD5d7=7;WuxO%xHvDCX3WTQ8CxOWj2xrfLCtFDQ=i#?Z?ex<5Ew=p$5U9b z3;9oJzfrRzgE&WCQ=T`d(n)(qAgV)?fA>lfu*iBc)+Y9Ww7AVV7{14y*XQ@+XNOBX zUx+Ed{xA2KbY{cYW_qW+o@<fh$m1xwlz$6@yUao}!6ogd*Rr9!YdXxt9JY<u?J~{f zkbb9y#+lO;U9K3XE&5Pigwz9=>O|n5erVhs8&y)%r4NHlDKL*CMY1CMyKy^FWzIaR zW#|E@c=awkkAMJ?0wAUdjaOJV6!}h!n>aoZWcL88>h&dQ6fR0B<QvyFhd2m%V*Lgq z6aUdc=b6j^`^b32VbLe5<xM0Dm`y5((?B3!?L;P&1#B;q4;oKf6&FGDzdl3O-IxOc zfp_<k#`snR*>Q0m0Ulp`<*Mb)s<l2~xHq7bu<y+DQ;m!n*MSXPbQ@O8PN?ikwWdoO zWjyMzXfV03Vz<AFDO>px^iVO*Lx=4g)q85m2k{;5Eb2k3>3r!`0UI6=`25VqWwJcl zU*8WIt*t79?wJ$wUX`SQ<3t2TE#I?FIGat&Btyk;o;O00BG--Kd{|=BZCD3l{R!0y z^2bFt?MKtYl2foSY^*8v$Z9+b$s5THp6HRxC&NoK9TS96xs41$d@lSf7v=PeX&Ml# zpLPklg5fIM+B@3QTeK^d69~^fCB@P)^(Q9?53?8UN9jO)C9#|bPRbpPNqhd~d(_CZ z7w{a3b)RZX-7o3694&9qB#0Why!{h|I%|L5!i2H<;^p{Q(IOJ=NjL|WqTku{4z>HR z>TRxcbCo>r2TFKZv|rgxyHa<k@*Bql`qY@J?C-%fYj!L`Gs|C&!zh<IfTEku3tkaS z`yyl7?~kJ@J_22?-x*6|vsta#r@hr|#foFE;!CP{Ns#V>KEHth@(?mnfLsopAP{!Q zp(A1&knKU|mT^j*6av`@?OKxR-6cQ%4yk0fT52s#)+u;okF}RV&lRPrNCMFj7sP4V z_&wyROHs}BXd7#+nj-0623RZKT_{Oag%@i>stRXogGA=a2gOl9bi$c~gE%5KIG%E2 zorTJ)W&_l&M={Gh%yLPc1)$2GI$0YZ&pN5eIvG9r5=HX{7L8nEQN2wIbDBzE@c$cB zhqdU07Rzn2A_h+2f5s@<EEq6fAQ-&~T6}^J{y@O%&mVlaFVs#ttHO>ctdsZb5#Cah z{PK!@N@$67j6N2Ywv#-lR91`hY`VPCcI$*Dq}WK<2_JgBr9k+On_CcqGHiSnIwIhl zvh}Q8S#6`KZUKOaPPVlrBFT{?dYhnusCQ7`_^nsQ9YRrfcYr!kOOu)%IfM)6rT;=X zcg*5%h1xKSoaSeW^I5a_u1YC>fXrCpE|W9`4;sR>Vg-JoV-$!}invD$RHpEdC;;L@ z&|QZ1uUV*C%mJOD2I`89Pi)12;%@s^s0{RK)Wfjae|?Ddybe$;_S+8%9b&o2Kl>2+ zv|I|2>8MQDFNBaF#rF2yqS<*6-VzTlFr9C`h=&ZGg?xgWygo^sclynX!k_0A9D$|q zVoY0j5Q$xe$oKdpOqdM`Ytj=M$JH;A#(}_|MJ|SgG8z`xIt!^j=*H>U!S8EFo6tTr zvNT7D%t%$_m5u)J9X9xLz+cwfqptx)`Y|3m%0E?S8!OP*IAqa}sFBDRsA&!MvCdXh zYXR(5jRTl+_C3Tt|Bos=jm*kjz1xQiDCRH=*l>nHH{AS!B(25jaT|J?g*F!<WkGF< zSr4n(+gR~^o!@<P6O5$`k9XZ1J6~RLiv>`--tS$%Xqb|}J;3U(jRb8A(EsHv7k_v= z9X?8_OAFQO@3X73NV!A<*#blrcC`)EDS;{gk2QW&70pI?JoZmlk)G?5ARoIqiyVJ2 zALK!2AmQ#z2OL==ELGIS?wNY#A}IrlD0BcNUTX4G;c0;osKDAlrS7s?w5+Q1oVw6Z zY!CMxtSQ>ys&p5|K+)Q29I04ZQ?)=km<)4$z-UatQz!a+v8#|9TsH;=;;%}?=Q4Um zEOJ17k?F2jmV$4Cpe|q+1L`r?LrvcIE9lfM&5);!|7NF2<^`O?{+=N5GoR>B^f8^_ z?Mb+UUJZOu8=@Mka8pXcV=zynlWFW{t5MnH-95xE|0*0$acI0_GJz3le&isdI}NL; z4}%5Vj7I?(o%(Ch?EK_Wq-XX|@jzerm#f5Td;epx!U{SK$wJ5|+Cba3N?Q927k_*g zmLxh_C@@s`oQgB5=vmtKfoU2OcOF9h_rz&^Vza&JkXX^C)AxLWCf=A#6JsUDiBtOE zX8W_fIR`<`*ayamllo91vd#9YcpCHBVr$RfhMMp~P2O`y$e?H858|tZe9n&W0D6<` zV?EwRJsZU_JBVY^JUZNc(Z?U5H>JvA0k%;==Xj~8P!64k0;{zxVEqQ&IgDfWifFaT zPvKT3p0utuqZB4@sg<Cu-t{+785-r#*OIW$koJ6OJhF)*uN#dfAEYXL#1_!5mf6C0 zX8DVNxXX`6;-vW8!rAU~wTlX8S+q&=ib8pXYVjUh<jmg&bzV6J0IJHc1*{(g^4s+9 z0kD+9JpFw&a`ic@Pb2ejI0DuUl*X>JRYzZdWuZ+nqBd=`5zW?e6mJ`dc8#%-t86yh zEnS6syRocQHU}Q*T9pfL;j6R!;kk~OHGHQ-jV#LnGPfExNPxaYJ8)>m9Qp=&T(c6l zIa|!=hXZ?dRU3Mv&3_O^cFZGq7T9`FS%X}yG~z#)gWdy$dD<m~w_3Cd<rTT|3dQ2x zz6du<E*+!PSrzLCio=4jrPem@_J!ZzPHEu?eH$L*D7Ai6n*V{m76z{RTkIP`s=1AC zZCal3ZMK$$hJlf5Mc>wnzO5B~TT6YrGfR!!oD+yFIcTF!$t%;4$jwDF$@&x=w}T|B zA4ee%(X|j4@s@V6K~hERZG*4Z<Nb^_a1_u$gaEak+tSFo$#cj%{V%xaK>Aw;Z+_O{ zEw;&_Ct<`^yKp;c_8}6pL4-rg^b+DczZc82MOj5zz67N-?8USGtc^R+tj{=Pu5nZ5 zUt#7>!(!?q<1e5ot>20JNNw66e)3z>MEmi?H+JHh|BJ|NwRAmB4(4)AI@Ho-Z`lh= zPOd?PL6Cyl@6fBQ*cP^D#L$h*5w_bYkQKH|7}$m8wqV45%Rd1jj@y@xP|G*TEB!Na z<|^TkS_|CBT#s2|pNXv1#}Q4I4u@=Y{t=_6*M=;v3wkqsifUuEiOYWJNVR-hU1$XI zPRv!154lLKjC}$teE1&hfMn{qAaiHz5&g9Dq0mn?Jm%PL(LK?L#v{=Ad~`rM7e?Tp zA7JK>G(4QhzkqS)w|s-T35t<1y9b8#TLrz-dMyf|f|Q}2I*atwJIH2dOv^@*TOYdm z6gqJphTmp;_hCV>NQ0j=&<3Hh>Pa+Jd(ckzFvu;HsK9s|v<FpYklh#J?=}i0eYVP& ziy~UJVMY;ZH(o*zhBffwA7M2tuYZmaNjdhA<0->Rxg{z7`-2!Z3gV4jgN;px#6pay zjv^7^?UaY95cMA6eEv56u82d|4SaoFyka%{c@dsPc5Ax}B_QB9BaPK~qYT1zx0hhS z3|z;|kw<2civ?uA8)dwrYdW>TDwDA<8Q2#)FU5Suqdmw8+4YX36c42|yGXWr7q9c^ z(-o0BMF$^5xfxahaJ1^gsM-XFt9A`|&l~Vw(C<B>%o5wfYQ#zMS5a9fvY;GLxiCwL zMKu-!jKEUL97%C>2+g8{j$Vzu?lh`!EG%S4L#>S*l8jcf({D-d2c+NP=m(^D&l~Vw z(C<AN$iY7Z(r?N50gx0o5J<nJb`GIuL$VEPFP2bn{HF$4ZqU0!yBLqwu}%DszyV4j zaclryCeoJg6g*QCu|NAE?qY3+)p(pJUt^L@EAB%brIvOlWS$>G2`#Tz<{89WDg9}D zjpeT<)%*0fDELHJJrPCcAE2xJW;)ZdTV(k7P?FTLeXEdKdhM6y#Es8LQX7b<=ESwn z&{+lut$rqcPLE~J-G%0RQ_D7;m~Ldxgb0(|bj^ce&vW4MhKT)!zaurReh%7iRz@Sj zH&<hqFw|6yn<T|e)!q1j%$IGa%&U5dYd&>}8G;x~acbp+euy4rQhIo8y)ZQ3wx0d3 zA7Ukj7zG*(o`aspqQstqVoReSS(gwno6aWy?^yOSsDSmD&Zeh(4b5sqwX8vZ0Iu+a zwMX-?>>IHyw%v3-PkA>(>@bk`zQc_*=YL_GF~ebot+6!zY?K5nka-@byvh3k@j3sw z*=tF1MARI9(UznsqIE%@%e{gz9Uuwdt{Y&|)F@`2p^CT3;%%0AbBVWk;%%^aTOi(S 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�|&dmFJ$ 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%0ArzIR;&LesFz1~|9LH>l* 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�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%0AG%7>LGAv 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 B->?7x diff --git a/HW1/venv/lib/python3.6/site-packages/setuptools.pth b/HW1/venv/lib/python3.6/site-packages/setuptools.pth deleted file mode 100644 index 4902f07..0000000 --- a/HW1/venv/lib/python3.6/site-packages/setuptools.pth +++ /dev/null @@ -1 +0,0 @@ -./setuptools-40.8.0-py3.6.egg diff --git a/HW1/venv/pyvenv.cfg b/HW1/venv/pyvenv.cfg deleted file mode 100644 index 16b90f7..0000000 --- a/HW1/venv/pyvenv.cfg +++ /dev/null @@ -1,3 +0,0 @@ -home = /usr/local/var/pyenv/versions/3.6.5/bin -include-system-site-packages = false -version = 3.6.5 diff --git a/HW1_Stones/.idea/workspace.xml b/HW1_Stones/.idea/workspace.xml index fa57c52..746c6e0 100644 --- a/HW1_Stones/.idea/workspace.xml +++ b/HW1_Stones/.idea/workspace.xml @@ -1,13 +1,696 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ChangeListManager"> - <list default="true" id="f25eade0-627a-478a-826c-a439d1abc48f" name="Default Changelist" comment="" /> + <list default="true" id="f25eade0-627a-478a-826c-a439d1abc48f" name="Default Changelist" comment=""> + <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/.idea/HW1.iml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/.idea/inspectionProfiles/profiles_settings.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/.idea/misc.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/.idea/modules.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/.idea/workspace.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/StoneGame.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/activate" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/activate.csh" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/activate.fish" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/easy_install" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/easy_install-3.7" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/pip" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/pip3" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/pip3.7" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/python" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/python3" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/bin/python3.7" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/easy-install.pth" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/PKG-INFO" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/SOURCES.txt" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/dependency_links.txt" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/entry_points.txt" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/not-zip-safe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/top_level.txt" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__main__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/build_env.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cache.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/autocompletion.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/base_command.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/cmdoptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/main_parser.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/parser.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/status_codes.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/check.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/completion.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/configuration.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/download.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/freeze.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/hash.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/help.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/install.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/list.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/search.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/show.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/uninstall.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/wheel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/configuration.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/download.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/exceptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/index.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/locations.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/candidate.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/format_control.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/index.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/link.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/check.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/freeze.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/prepare.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pep425tags.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pyproject.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/constructors.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_file.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_install.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_set.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_tracker.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_uninstall.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/resolve.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/appdirs.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/deprecation.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/encoding.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/filesystem.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/glibc.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/hashes.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/logging.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/misc.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/models.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/outdated.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/packaging.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/setuptools_build.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/temp_dir.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/typing.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/ui.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/bazaar.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/git.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/mercurial.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/subversion.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/wheel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/appdirs.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/_cmd.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/adapter.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/cache.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/file_cache.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/redis_cache.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/controller.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/filewrapper.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/heuristics.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/serialize.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/wrapper.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__main__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/cacert.pem" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/core.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5freq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/chardistribution.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetgroupprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/chardetect.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/codingstatemachine.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cp949prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/enums.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escsm.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/eucjpprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrfreq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwfreq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312freq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/hebrewprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jisfreq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jpcntx.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langbulgarianmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langcyrillicmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langgreekmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhebrewmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhungarianmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langthaimodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langturkishmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/latin1prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcharsetprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcsgroupprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcssm.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcharsetprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcsgroupprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sjisprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/universaldetector.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/utf8prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/version.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansi.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansitowin32.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/initialise.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/win32.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/winterm.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/misc.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/shutil.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.cfg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/tarfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/database.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/index.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/locators.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/manifest.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/markers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/metadata.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/resources.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/scripts.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t32.exe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t64.exe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/util.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/version.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w32.exe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w64.exe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/wheel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distro.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_ihatexml.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_inputstream.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_tokenizer.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/py.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/constants.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/base.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/lint.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/optionaltags.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/sanitizer.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/whitespace.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/html5parser.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/serializer.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/genshi.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/sax.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/base.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/dom.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/base.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/dom.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/genshi.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/codec.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/core.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/idnadata.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/intranges.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/package_data.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/uts46data.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/ipaddress.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/linklockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/mkdirlockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/pidlockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/sqlitelockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/symlinklockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/_version.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/exceptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/fallback.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__about__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_structures.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/markers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/requirements.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/specifiers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/version.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/_in_process.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/build.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/check.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/colorlog.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/envbuild.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/wrappers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/py31compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/bar.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/counter.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/helpers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/spinner.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pyparsing.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/core.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/parser.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/test.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/writer.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__version__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/_internal_utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/adapters.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/api.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/auth.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/certs.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/cookies.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/exceptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/help.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/hooks.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/models.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/packages.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/sessions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/status_codes.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/structures.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/retrying.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/six.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/_collections.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connection.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connectionpool.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/appengine.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/ntlmpool.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/pyopenssl.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/securetransport.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/socks.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/exceptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/fields.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/filepost.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/makefile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/six.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/poolmanager.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/request.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/response.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/connection.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/queue.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/request.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/response.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/retry.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/ssl_.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/timeout.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/url.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/wait.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/labels.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/mklabels.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/tests.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/x_user_defined.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/setuptools-40.8.0-py3.7.egg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/lib/python3.7/site-packages/setuptools.pth" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/env/pyvenv.cfg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/activate" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/activate.csh" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/activate.fish" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/easy_install" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/easy_install-3.6" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/pip" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/pip3" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/pip3.6" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/python" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/python3" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/bin/python3.6" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/easy-install.pth" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/PKG-INFO" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/SOURCES.txt" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/dependency_links.txt" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/entry_points.txt" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/not-zip-safe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/EGG-INFO/top_level.txt" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/__main__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/build_env.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cache.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/autocompletion.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/base_command.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/cmdoptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/main_parser.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/parser.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/cli/status_codes.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/check.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/completion.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/configuration.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/download.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/freeze.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/hash.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/help.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/install.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/list.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/search.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/show.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/uninstall.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/commands/wheel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/configuration.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/download.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/exceptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/index.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/locations.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/candidate.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/format_control.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/index.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/models/link.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/check.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/freeze.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/operations/prepare.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pep425tags.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/pyproject.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/constructors.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_file.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_install.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_set.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_tracker.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/req/req_uninstall.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/resolve.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/appdirs.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/deprecation.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/encoding.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/filesystem.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/glibc.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/hashes.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/logging.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/misc.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/models.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/outdated.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/packaging.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/setuptools_build.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/temp_dir.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/typing.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/utils/ui.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/bazaar.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/git.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/mercurial.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/vcs/subversion.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_internal/wheel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/appdirs.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/_cmd.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/adapter.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/cache.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/file_cache.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/caches/redis_cache.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/controller.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/filewrapper.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/heuristics.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/serialize.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/cachecontrol/wrapper.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/__main__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/cacert.pem" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/certifi/core.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5freq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/big5prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/chardistribution.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetgroupprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/charsetprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cli/chardetect.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/codingstatemachine.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/cp949prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/enums.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/escsm.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/eucjpprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrfreq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euckrprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwfreq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/euctwprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312freq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/gb2312prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/hebrewprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jisfreq.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/jpcntx.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langbulgarianmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langcyrillicmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langgreekmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhebrewmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langhungarianmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langthaimodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/langturkishmodel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/latin1prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcharsetprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcsgroupprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/mbcssm.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcharsetprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sbcsgroupprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/sjisprober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/universaldetector.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/utf8prober.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/chardet/version.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansi.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/ansitowin32.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/initialise.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/win32.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/colorama/winterm.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/misc.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/shutil.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.cfg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/sysconfig.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/_backport/tarfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/database.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/index.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/locators.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/manifest.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/markers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/metadata.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/resources.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/scripts.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t32.exe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/t64.exe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/util.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/version.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w32.exe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/w64.exe" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distlib/wheel.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/distro.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_ihatexml.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_inputstream.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_tokenizer.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/_base.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/datrie.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_trie/py.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/_utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/constants.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/base.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/lint.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/optionaltags.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/sanitizer.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/filters/whitespace.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/html5parser.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/serializer.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/genshi.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treeadapters/sax.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/base.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/dom.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/base.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/dom.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/html5lib/treewalkers/genshi.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/codec.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/core.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/idnadata.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/intranges.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/package_data.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/idna/uts46data.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/ipaddress.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/linklockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/mkdirlockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/pidlockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/sqlitelockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/lockfile/symlinklockfile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/_version.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/exceptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/msgpack/fallback.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__about__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/_structures.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/markers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/requirements.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/specifiers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/packaging/version.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/_in_process.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/build.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/check.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/colorlog.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/envbuild.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pep517/wrappers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pkg_resources/py31compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/bar.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/counter.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/helpers.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/progress/spinner.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pyparsing.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/core.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/parser.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/test.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/pytoml/writer.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/__version__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/_internal_utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/adapters.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/api.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/auth.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/certs.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/compat.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/cookies.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/exceptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/help.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/hooks.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/models.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/packages.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/sessions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/status_codes.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/structures.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/requests/utils.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/retrying.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/six.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/_collections.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connection.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/connectionpool.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/appengine.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/ntlmpool.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/pyopenssl.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/securetransport.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/contrib/socks.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/exceptions.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/fields.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/filepost.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/backports/makefile.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/six.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/poolmanager.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/request.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/response.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/connection.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/queue.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/request.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/response.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/retry.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/ssl_.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/timeout.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/url.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/urllib3/util/wait.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/__init__.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/labels.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/mklabels.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/tests.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/pip-19.0.3-py3.6.egg/pip/_vendor/webencodings/x_user_defined.py" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/setuptools-40.8.0-py3.6.egg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/lib/python3.6/site-packages/setuptools.pth" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../HW1/venv/pyvenv.cfg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/StoneGame.py" beforeDir="false" afterPath="$PROJECT_DIR$/StoneGame.py" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/results.txt" beforeDir="false" /> + </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="LAST_RESOLUTION" value="IGNORE" /> </component> + <component name="DatabaseView"> + <option name="SHOW_INTERMEDIATE" value="true" /> + <option name="GROUP_DATA_SOURCES" value="true" /> + <option name="GROUP_SCHEMA" value="true" /> + <option name="GROUP_CONTENTS" value="false" /> + <option name="SORT_POSITIONED" value="false" /> + <option name="SHOW_EMPTY_GROUPS" value="false" /> + <option name="AUTO_SCROLL_FROM_SOURCE" value="false" /> + <option name="HIDDEN_KINDS"> + <set /> + </option> + <expand /> + <select /> + </component> <component name="FileTemplateManagerImpl"> <option name="RECENT_TEMPLATES"> <list> @@ -15,15 +698,27 @@ </list> </option> </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." /> + </component> <component name="ProjectId" id="1WMxPwg6aiKkv8254wSZ1F7sfmJ" /> + <component name="ProjectLevelVcsManager" settingsEditedManually="true" /> <component name="PropertiesComponent"> + <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$" /> <property name="node.js.detected.package.eslint" value="true" /> <property name="node.js.detected.package.tslint" value="true" /> <property name="node.js.path.for.package.eslint" value="project" /> <property name="node.js.path.for.package.tslint" value="project" /> <property name="node.js.selected.package.eslint" value="(autodetect)" /> <property name="node.js.selected.package.tslint" value="(autodetect)" /> + <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" /> + </component> + <component name="RecentsManager"> + <key name="CopyFile.RECENT_KEYS"> + <recent name="$PROJECT_DIR$" /> + </key> </component> <component name="RunDashboard"> <option name="ruleStates"> @@ -93,27 +788,27 @@ <option name="number" value="Default" /> <option name="presentableId" value="Default" /> <updated>1578973244062</updated> - <workItem from="1578973250722" duration="9537000" /> + <workItem from="1578973250722" duration="9903000" /> + <workItem from="1579019001627" duration="1950000" /> </task> <servers /> </component> <component name="TypeScriptGeneratedFilesManager"> <option name="version" value="1" /> </component> + <component name="Vcs.Log.Tabs.Properties"> + <option name="TAB_STATES"> + <map> + <entry key="MAIN"> + <value> + <State /> + </value> + </entry> + </map> + </option> + </component> <component name="XDebuggerManager"> <breakpoint-manager> - <breakpoints> - <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> - <url>file://$PROJECT_DIR$/StoneGame.py</url> - <line>62</line> - <option name="timeStamp" value="16" /> - </line-breakpoint> - <line-breakpoint enabled="true" suspend="THREAD" type="python-line"> - <url>file://$PROJECT_DIR$/StoneGame.py</url> - <line>60</line> - <option name="timeStamp" value="17" /> - </line-breakpoint> - </breakpoints> <default-breakpoints> <breakpoint type="python-exception"> <properties notifyOnTerminate="true" exception="BaseException"> @@ -124,6 +819,6 @@ </breakpoint-manager> </component> <component name="com.intellij.coverage.CoverageDataManagerImpl"> - <SUITE FILE_PATH="coverage/HW1_Stones$StoneGame.coverage" NAME="StoneGame Coverage Results" MODIFIED="1578981595152" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" /> + <SUITE FILE_PATH="coverage/HW1_Stones$StoneGame.coverage" NAME="StoneGame Coverage Results" MODIFIED="1579019846296" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" /> </component> </project> \ No newline at end of file diff --git a/HW1_Stones/StoneGame.py b/HW1_Stones/StoneGame.py index e260366..953785b 100644 --- a/HW1_Stones/StoneGame.py +++ b/HW1_Stones/StoneGame.py @@ -10,7 +10,7 @@ def main(): #f = open("times.txt") programTime = time.time() - while time.time() - programTime < 60 * 30: + while time.time() - programTime < 60 * 1: N.append((0.0, 0.0)) startSlowT = time.time() slowResult = slowWin(len(N)-1) @@ -45,16 +45,18 @@ def main(): plt.show() print(len(xCount)) + def slowWin(n): - if(n == 0): + if n == 0: return True - if(n == 1): + if n == 1: return False return not(slowWin(n-1) and slowWin(n-2)) w = [None] * (len(N)) + def fastWin(n): w.append(None) if(n == 0): diff --git a/HW1_Stones/TimingGraph.png b/HW1_Stones/TimingGraph.png new file mode 100644 index 0000000000000000000000000000000000000000..9a4895f88e78e9a7491611a0cbaecc72276998be GIT binary patch literal 146422 zcmeFXg;yobvM-3cZ?tjU(73z1TjTETZkwiYcZbH^-QA(lhQ^_BclY5t=e&FG%)GbO z`~g#IRb^CUMn+U*?B9;as&FL*No0gC2w-4f$kI|`Dqvtx3SeN6Ja90doE&PH1u!rq zMJrKJC23Jn5+!E`b1PdjFfgg`<WyK)RSlfp3;cA7N+Dd9e*Ju;05BF2O>`(zgnWzy zq5d#Z($ZF%B7{Hm`MK(iUybV)5Tvq8-IOs~+<d9Ui&P>ZalUR&et%wec<sJ<S$}xv zepqvv=Dz4o^#Px$*qJbeE)@U^o-_6`{)TH~?F|z-4_W#h0<9N{$~Qn{SXwF!T1n#k z<7-W|s4TU{np*e!#)rX>5VZ;%m=Feu1tQiDkx@a2@2T*n*T!IBwxunZdUUEzRHo$I zNNDwPLv3FeG@P14Z00$}!gWV|z)5~T`g$>dwO1)ke?{LF5p3rq^^pq3paJtX9qof) zHh|;)a=p~wuk|&=y_fq1AlUY?&FV7`%*o*$&(NJ0K}n@Hg??@Ou;6}g!NjJP+;<F$ zrb>|nmOF>Ib)*Z@N(`}$zRjJsdX9#~ZAt}M`;1bnRYobyE)`%yK;!&D5-|Jj4fnLg z97j(gDTBCe-1K}(AWebFqDy*6AkECE#p_-sg&tpcrv=PO#ue=6c4m;|Z4PJDn69W7 zEc&ImW%;&=8R<#>Zjcg@_?tu(ytkAxVV-NWJuVvaNt*c!{;%e5zoPN$;%NbDSF57t zk%h`eUp_R=WB6E<Z5V04MeRnag;92L(Jx{~CKj;Y_1(ig9zV*Haz++rC7}zF4b3mb z>jvdt!pWa&mPlpfPvUd{X;Eb7V+iB0C@jyM>PtyviduqgtEr{uVupa&1JGqxu_NOV zfCP4@Z7r`?Y4{A!OAIu`RuY2R?-<RtOo+SS(iZ-*g0DqK;ZVLLux&z6YfTyP=vK!> zG@VodDwnVn=t@yBh^h|}Lh$qcxC_?R=OmKrI{8HLs6-+RP|Uet@9O1}(vlXk&^^M@ zyABPAhLzB@WzX-`J3{i6>IDQ>6La`=6cT6y;j@EM`H1#0usZ>sbe$pn`@s!PAMutS z^*}xfS9Bt@YV>ya7IT^L-JBs7JXg_=_?4&z!AV??AOXKiCO$at(4S6J_9$yt@Qy?% zL=YDD0ov6Z_G;&q{)q>cFgf$OHj-DlxtIVM>Y=Bb`1a~{fdc(+SZ|F28JZ1}72||w zPrjgYpc{6-&#!}&C6!Y!cNpG)>;V)L`tQMn1KM>cr(qG2i!%<#>})JL`8+>;4<)Z# zo*q}Y)snw?vU%TnbuQiq7|#+cJfJ&TjO~w8wrv|@!-Af~>3)7=vZtGv82C*Lw(t?Q z&wBTx?A>1|?cie$ix9TA2ji>D$K2H!7}qTt*l<OUtNZlUNgcv>@>D1puW*Ub3I?c0 z_L)G3B)nP(_g*~nU1(on5;$mdLyR!kF%rUG-`%hW?&x3}`h07lzJ32%i%<!h*{fbl zcnY%_@Rkcr00Zou{tM9xRUNSE_;&jPXb9E`Aqw{+4vnW@=ogyJAh?rgCmIJvlo&~! z6j?%yDQR06rZU-0JY(EfQ{;O1<q$R!L6Xooz$kYiVq5T<<a6A?C@-d{RVli4I8XkL zGRL^E$&9HhPevqmUXdktJ4BW6$!wP;t2ac~cYV>0S>PcF3=?5g__E<SF8+@3l_pF| z;8<O-CZ&4xf{DB)zVDnyt$ii2Pb9zzW~zUE>r2eAsw2355aVF#PUhvhCo2e{=f~y< z>}4zzPv4Kf5^yA!aH{ZaLCZl1BJ4)MEs`xZ-%M}#nlLf4#6z*$KnD{Z=2))S)~wd_ z)>zN1CGk^IlmsaX)&zW-Figem#0Y7u!sx=TLX*OYLj5`XdX(jiQ}GxIi@2g)7H4)Z z)F<jEmM3(tuzW?QTqvb&8j*3`ahY)x8T>u6qEr?!_FNw2z|ygKzGDn)<fd@%4DZlq z5lP7r^$`P$h!`=8I)&(|2ObNz^OMdZyg6MfU2Q6PX&vEJabATEaUbE5--Jhbw@BX1 ze$ZV3paf9tyF_XpuR>}G?Yv&0PQ_}akJdvOk@&Q5Yyqce&9@rui|-raT_C@R?g9ag zoSGh`9`%p7cjPx=$dG^%;ZEVaKIcGwm;)pt`~)OIWOAh7kiC#qWW_J{OiUq!ffHy< z-G--zS?0H2(4(`WJSDs&)Fd|X+`b^=;(t+OQegjSqHE(j*qRy6OqkAR4(>wfB6!1d zlO0|JKO$yY|Eq9pw|>m#H*;}bG1+gK-+sl5a+~ROzsP=FPpW4&rLD7%OzKURq)l^d z8iQ6k{i9~ndYOMPC!5^IJ}p2rIW|c(rdiaj=MNaq%#E{*tC+XVUKg76VEz6&|8?3r zdqKHEz$V14wrS8i`;Pf!Q)`$GrQ*BV0MF2u+Pd2CX5|&zhNDKjdbfJ{I{Jon3!lXp z>yhS(IvtBedrm_KJHcg8w_m|q4GJb~bKsIu-~e9eVvItJRg3|5Gnarni`zDLG7me? zx>GT4C>IX*BCmlPX?v~SwH`-@uCutFpYBj~Q#H=I5~l%Y_^NqJbzM;1yGfDB$;gId zNt?@>>>B?1MXX6oB%uaJwb|P5tNR_+;Tj@;^H)h!;#i1SLZTLaWPYGmidVCjz=QK0 zhUbE}-d(Yeq&MTW{T+y-&+dn1e+oROAFe>6U-z}u!_(iB1KJ0>>$97Nhl%Ton~pvX zV_<D+!}K%Yb>J1}iTK_h|1Z80L9O85X`zSS*IxdBSRju)ru-Un9dMK*jJT1$ls644 z3+q+h(IZSAPOwm5SGZKKl*!fNkURzv7~7C~!}g0@j>w(ql%4Z?$9Eq-0>oH^8l;OT zrYNcKB}^yAISv-idS+*maiF#S{FSAMtK9AJAwHk%&+m)9_-VVGR(*x4%#CS<Y4Xgd z#(E}ub#{rfV~JEX*}lLjQiU&z7^vG`S2jBrR9uvpl&@^TT$DyKXGx*qKf`YT(-h1J z=2U0W-pK?hoh(o85iSudMf_@v?5s_scW&CAD;bUFWjiGdY2Kvke0m8R8N%aIlS}E$ zT=d2(&sJUO0_j-kizU4BIjnDMNH=)UtTDglGskkgNFw8sQ<{J${DMCXrip*;n=P85 z!nOWD{sHV)+Tt<Fp_XctxTOYCTgXrCtmUpXwfSwMIW@H!^e5XU@J&Qct!6y%2nzUX zygLeO_jQXn8>w%RmgTV-cw46|RB|`8o7&eSXn80L%|7RYdqw${Kq$*;G-BiTA^U{R zX+0HPgQOj$?Zz^f%NkIBF{hDd|7KovJFjnxl_8hy$qt<c{Ibb$VD%q+eL>_xY^E2( zHfOXoFl{OIRle9R9qLF`O5J6AD*9DmE5AI!IM;1S+d^lcyK!SSpBjzTj&&V@ZvYKy za--?~R^RB7{!kx1A)t;xJFVgMO--ZAfI$=VZZlnD(@mrw-;nQ8bTLj}5mr%HQC)+g z)#Vf2modlAZv(8c(;v~+Xgl9~PCuDeQ!L$R4`>%|%j=+OE_N$;8&<>Lbii<ESI1ZH zsF}*Q*IGZB?4L|+39`3Zv2JU!KIw3v*j!t~ZmMeAsO$FTb@Caz59L+y$a+e7vl~#j z$yVbPJWV)1-pFo!`4(s(IzSZ3Pm4b*VP>+q@vAGf8}XyMX{^g?Rbaon{G#t+{KEf( z^d$7;#pJ$)*pS%rd3I~0JuoUTc~a_TZ9f3pN!G*0+h#FOI&@_fVio0`?Yu-U)DC5l zh*_Zin)=T2X?Dw`Xapv9BIY4ylz;ZOK*QVpSQ)V9XNGh6jq9(Y20_Vp-)p3UUv&+_ z7N|LhTpovfFTNAdn~0Ny0)(*sS5JF}B@Pxh;ysa7sjrMpZt|x*-rT#_;j~*CpziSw z?=9`Mrs@-#MTd>i&RIWI&zq~NA3D<@`X{%;`)%GJ-eixv3-!&0R*etTRR7bH`!fM& z!B@~oU?FUa4-~&5NcHu;yXBSi&FGH&L=ri+i-`C<^0edjrE$|IXY?o1oyM!trR2Km zL5biy-m}F>?|i_9#kIx2bZQTiPu<C0Q0iGAeBgsVR`(Zgy{F;R$@7-e7K@FdE+00w z7ycu^N!V0WJ7N=o4Lk+{qLiyW-#c}%K;+3W@V`$CV24MJ7mn~mfMTmDFKb~o3sv@j zkHL(FTy0<QB`gG?abqy!Eg~~STa-Af%j%VKU?{}=s!yYpc>K;;(Uo{0kf=X%YYQg@ zEN%ttk%X9tXoZjO)d&{p9vf^VlI=h?8EtF%FFp>Io4Zoq!L?!*wBN_NkXYDfg%M$< zDQzw<5BBwwh695F{{ja6Nr8W!0^s=nMN5EFgF*g_4*>=iY6S-MpD~}6%D;}d|J?t( zg-i$mgZ<=Se4d`U5dUj5ltM1#|Dqvz{*e<_6_u9$Y*kI1&CKjwEFE0y5<ZYW8Ssu$ zS}tH<*p&aA;L<7-m!CE*T7A=W)s&axF>$bCFfw&8He>L#bNpu>Fg{P7PtwlJ)riE? z&eq<A$CIDzUn6)v>3`UaWF-F@;%dWBrYWyPBI@95M#9d(#=t}-fIvb*!sl#i&Z8nG z@gMQeJAN`tS64?KMn(@04+alb1_x&gMrLkqZbl{+Miv(O&k^)4UiPj=p7i!E<o}-J zf6XIi=3?S(<>+eVU{CVTyhg?jZm#@fWdA7oujAi#nt59Nw<dd+|2)>`12X>8!^q6Q z#Q0xxe~R+`!{t%3@-(y66tlAX^x3Bl0cK_<7QTN8{J*;XTjjq+)m+S+MIG!uC0zyn z+w1=k{-2%yPr-lb)cS9oTr3>_Q|15Y`Hv(Y<3Er7KV0!|KmUvS>1Y82KF0rAGy#NP zsd(w1>quZFrugl%{fx4I4)E;H3-!O-Pa1q(BfAOzGpdBZq{W24d4iv=!*(``y9r(@ z)6Dt63LoX?gEMo8MMK#{eeogvv-G4>D~VM1fDtWW5^KykT#7ps@&#P^n~+#U{%wrZ z=Eqaa)Z`6AhtErw&jbGr=zhJcW14l3(_)JICX@AMtq`ZoR0awoK#T-k>VMa?qC;>> zZ|_Q^?c#(Bk;TDLK>Tl-Z%_$b(!&2+`F}AD;UJ{5kie;W6#jQA{w)`tnDl=%LJBH` zByMmF&G7o<|754sKPKS)|0ewZUic@F|37*`UmxoIGE^|h;O$srFV_FnM9ZP;Zd_f* zPR(FKr-IH;1-*4Y!)ClFRbSieyqL4gYT13&Zh|V)R)u59Fi_g=x^l&BD;Ot*b(*h1 z*JItyY?6JEj`zIPWZCt%yhZXztG?Xg>-$4b&D+Jz6z_#@^CswpTdif!ZB`s7d4jR0 z^R)Zr+$@yPJxx{LOZDHsuHHvdp=kr>G0MHuhG_;3T_^Enw?(}PY#m!=yB&FZ=R_~H z*2R<Ln`yzGEY~^dy?xFeuSt!KqsUj{O3pP$QSO~6)~^b$O_Lm}m22DBEz~xZb;BQe zjXwmlea_qVvRtNUH1xg9v_8$9VCXniIS_WSO7QJ`B;Qx@#kfe{j}gKEx{NSf=!!vs z-cAfsTe{Bd_9`2uzP5Dk(NFkY_-s1oysTNE%l@j=(17Clnw6XLx(ig>|D$bFb<OF2 z!)dnZ_dxG+S~qfxF!A+F;Q6p%B2?fuuit3Rb0>PD50+T>e$}Bzty-(hKMVAHw1;T$ zDDrfq=&zk!XCZKtzIX9{ez8AK;4P~^Lf|6DeKiP}h%|WJzCM%`^j7fNlm8F??1X}4 zUhNQnw7xF-ziH^%dTreN)HwH=_DMnJT&rC>HRsIK2#$x?eBI}q*a{`qZ(cUf%(!@e zxiGl@+yM02<CW&rIedQb|9H5ra`3B2p!DcE(VO_3@G+bes{6jFCi&z2;-mV8IFf7H z@7!gg%HFMl+igpu`#Sl0kI}y^%Xyr}tuIp1*opf08oJcB>G{%LwkTTeeC=h=+nK|J z1L!8xdD$#=0e-P*QD3L_O1-kK6!&(LbF)(-K?%jCrtAJ&3^2#n*=vYaUs<EA?um*8 z6?7R`0?G+Ob!>m!j;s*jeSh4UxLY(3T&Qfe4iFAa9V=IZ9S4}>?zm6R%Rd<@z>z43 zeS7^3VY<&C(iG0(+h>lY@#t7xAK&n~;4k4DIis=@^Ttj5c<K4jDWDyl);o7jb^h$H z<{?(M4=MV1%K4yi@PAo7DG!!P6h+}Kblj&Rb)pt{o{d%46>IBy-D6}_^qxz!{{7cn zSG!JlJ3@p7yDKsA-8A{qg!o1CY09HpHN2Ix`zm^m_<f7`nQ@{A5Fqvm`1wsyoF?HP zOnSzsRUFem729?e^BbSvcn8@Y`U@@ic8$slc();NKiVkXF?HiQN`87<Pl{lk>-(Ik zHLu!t90QOh7R&FPMhG<&c+VP-Bd>su`W~G-gcJ51XB?-^uOKK0+u?_vkGJbFMNs|g zHck)q$LsWm?z#WR%OdEf;ymQCa2AQFT#7jD_+tN7;UgLHpNg99_9?*VEj%zw>5({$ z41{Cgff;k|H=(nk5(iP;Q2KmoA=pvb^Zrc#g7x;^HtkpKd#sxC6^;jS<aMq&Y=js+ zT#++Flr1OdCti}k+mYg8C+PhqXK@ruKzhPv=I&|z7LLM+g<ryJhz>3Hv1%jJl)!CX zIhmVN3*bHcs2W4{reoh`#{SsSHfeV}&feV3d#M4tU1*1#w<IS+)5qb(UUs)_*@tLk z{9_`_yCvB)$tYbswdy`KK}&%~WGm<WDCamxGwHip)au54Gavxfgtl@?=8uj3O~$cr zA~DSJ;Lj+h($FGlDup=8&sZL@NeYt=$4c+{jDQ-Y-pN+6a;<fiS<9O0ZtGS`r@6S% z2Qfo?xY{>YW{89hBS0oUK@$1(-<tR1nsG?t$6n`HpEZ*iO4(<^Y$IbJneZDrk822Y zZkxTsuHxHuY7gCo_hN^&SSCz(m~TJerxGxu<um$2o8vF;KJl{5_ej>D98sAnm1_5P zZGiawGVfszbpYLv^)t|k=izCxr(?)C<4kU@CcZe4tq5U8LJz&HUx4;%KAvkTHaR;b zXfIMZ6dzOlpHi<k9=cn$%}EcMYW(ad!|AF~WD^y#!nD~LYx%uPvfaxgN1K<VR$`Lg zo)>!rnh4WCc-Zj?gJVoI87~jgS-%K7IvY^I0a1tyt+@oB@U$SsdOr$&>V#;t`z?&G z4nYK5v#II&YQ99E$+qk6k1BU{%pkl)$aRAOz^FgWI0an+lX8vAC~M#!FuQBFPnyE? zd@}k2r|Y($=9c^$8!?85-0V)&Ku%;%Ao0V&cL#ruHRnlA58h3GO!en=QhRdH7U9C5 z&xPS~q@o;7o2H_mr&~#5g{h(g{e>hhHO;_cF3iB%d`}vb79@M}AY<Z%Y9EBp4(`NO zGwR>O#%||+M)vx_XPFpzej)poK83a(TFOMzSQJ0SM3Z&0EUmY_`-zjr>nQy=Xm=Jm zWzfmO()?l>Boo0OHyv{4^qrr930IfyH=+<0A(E@<`ZUq=I?;~&Ly%WW!Xo7)r+WK= zyJyE|^F=?|3t-WmH(D+&vpa`vxU)M-9$WcN-(gch_Yz?#mWCqp>G<AZvKSX>vCvu4 z;i~yzw)Jhgtd7mMbF~(vRi5m@F%tNUO^;8nqxN)m1b!E0I7QKU??VOEqPPNBNJIK3 zE3I9=+O9j{7GOE*P}uvO=%iZkpJ=(|uhi=hh69FwkO%SQQ3Ttrj1LI0<_o?oPnYim za(VS3>MISLQ%$BdzvoQyN{W6lH?>Ge<?BTA!8jPP5%8KSTq|mad2$~_mz)m+7!AWI zz-ShxGA({S)P`FWO2u>`I<Tro=i`fwes_yx*O{s$%)oi}g|7wjNb~cee%A8;-TC2Y zphzf>)&WB6q~qKLUjSkxYrdvrd{0Bg&{|C~>mwI&1Z$rD^IYm5OWeU>VOT=8g9hmK z!SL{64jWqM52sik-F0oQQT;a5kY@I@LTyWQnu84r1@py`N%P(|zkS9>IR?KTrEvQC z+CG6g@r}$X?NXK$USh<`oX0`nv6dkjZ4}<l64zGjrF;hAdCdt025?tuZd%X3kQNfe zIbF{mWzQVz-3v*iRFG}RK~4F&z{yX3se@y$mlGYla3ms?zqA*yi>-wO@9Sc#<h&xe z@(6IDX#c7^ix+B2_p{YBO!26;RmBXB1rpunUbpzav<%%-RxH<A({6+%UVt7t+_r6+ zM%6JYGz&yrOM0{Zq9VzW^KvoXI5GS^Te!BoNCeBlV)4=8o;HotCEbhSFWd)w+8$re zW;F;;xNG*gE^<AxRUbN=KqnUXxg0x9X*kz#Kn{I5fnzT?ySB-UyNLIujG&6)%!Taw z{ScKx<&;kJqJ8AoDHHE4L<6qcw`M*++GboHg1N68f|W;|pYCJ8JB9Gs>WZfrupR#8 zLI^7A?8+dtz8JXB)atR!tfH#%e><sI(+0!j?_+c_hrJ%;VADjENtDRy6<xi%$>s2P z5e!ch#;9xDq;#rp^i*`U>PO^<AK6d@u)}2k9w@^rM3VDHr%tG%(HjO)4Z@2LNI!jo zlE$=Bp3<%)yi@*ZeB&Ezq+PN&zqWIBGOkg|Js~;y^MGYt8<}P0uZql3yjUYUTCnT< zQ*OrNT;ytH^%nZ7U+)j^tO}=`pj~oeEse!WiY6$aqVE=1*T>sMjTbAOdR^^xU_zYk z6L~|UGCnRydN-B_!O6T(?q^3t+ungU?m!<03@yYc!{&)1il$Ci{WF8X(~@eHE~DQi zj{g;oTX5yx>c)cfpfWEctkG^<k9}(emM^SnpSqShR+DV@ytvmhuKsgvyi?WsyM2Yo zF)gtj6`<OIr4OwFk;-86$YPj)<80PZ{UWL8=dMkfTq5*dha&e>p_88ue?VDtBH`I( z+gKG(KYCl9{J6)3Z^G-s7`Xe2q<dV_icKWK6VL68sEsEbAIw<4Tv(z6%b}tjD^avK z7oLgZL2II<Q7Mze3X(OsisYMNX^)P<K<$_=;--V&5|i^AUS6cwLY!7%C6@YKLJ1tk zgJu)filT&Gjs7tmghJP7kWXb4cjehl&WA5y=BNzqUpu#syX5yDE)R~Hq}QW6Ah||J zs<TR<n`P?&Qp#-v<oYPx`mRSkB*5-cORyg^#Z<ndG5ys_kRV#ad5<TpX@p}+Op;yh zh96z?>nF;FSD{IPTkx^1G9`M?;OuUu-RB!bTQv7Bu__#T?9?1Rz55=CxBq^-ZFCx{ ze%{b5T#VA$8GmGZPu^N-)>{_A@acoOMm|Is({$_7K<v9<?0NCv+}>T?e0N{3uAmQd zggxNJP2?{y={Rc0d9!_*{>)U$Q4cxpicvd5(19zGiv2Z5PLE9-HZ{+`DQ&UV=j3k_ zOC=t9Gwh8A4uwFZNb8WiUZb*IMzAJ4-`eC4PG}dsW|sp`N$GYgHmYiFvkP<PRk@jr z9oi#ZtCg$oBYYi+J92gXYNl)v{A4XoWWCzE`Coh8S^SQEs>42KzGpM^CDI1~o^n5$ z`XC_<=NW;=J04FJoKFd%7utTw@Fw*`7Nj|jCyP(xbDO8ZFAF#^-44w|UAAaCP>{Ie zzn9Ww$$U)Xb+4tDR9EF2L!&%dvZ*zd7mmSB-o@05c?nYFY72IiyT>V1nMhEXLNi$& z$w9v_c7vkg9#TeGY#;lsUFhjXTV9?hCQ*YsE;_=qN+G!uS_ZV19XI1Sy^d^_BIX?2 z?laquP5g4#QM{YuzG_QmkCG$lk(b5#jz;q|1)ARx_v|m!fZURI7^qgt^_i?5+*WHq z<NJ)(i0L!ti)^~L6%@qIaz7V_*q_xiqwtp6u<wTxPon(O+$Jj1qmTThv!bj<DhI8V z1z?J#yZd68LDz{ne9lZtGb$h7)8U;&u9#Hr&q1_O(0ll4FqF`}GYAG9H`y1uSZa&H zMrnjl<6LJA(*o>S>Opc9q25M=26yEeYU09p?>mC;CSFSeMC!@Hs!<B+9&pt>O0A(o zq(+m63X7ph)FVpN*#kzQ=)mKCr~1v+J}o3LQSu<KrH%c4ORGQ*XE<tqFJ<rhpiCi7 z7Rxv%W1$6QqI^ASd4!pVBtAYGFN=Auv{;CsNMJ;(<Ssh&d;4NnwLR_eNZ__P)akN& z>{tg7sGLuL29G`>q%;^6eI_@G`BZ^uA;gO&HTn3wE@sf7C#vj%LT&9gI99j0=9eTW zN9{jVjfH0BB5~nb!mB1)V83F#aQ<EMY1dKZ5lPJ7xU}bap+><-;-0T4*kyx2U@GPx zP%sR`#R}2)yN$h%ThBK3XVv<tNQMZP$l3EWxj_2n|8eo5Mi509!w+24<htyIw0V+m z?l7AQ;@X-aZM!W=R@gy5Hw`ul?WoH$;FFor^qwyuQX5#@T26ScrH{77U3^X)Ft#0! z{KXwQXykkUbh5}{zqjQLoT~_I_TmXR;kJI(BpjoZ42+rMtj3|VQ2UeT8|yhpUM{D( zPTA89d@wEO$^d-5p4dvt;`dvkRN%vl%Ibs4Ljo*1QgiX0FQBxS?;UttOVz|l);sv1 z5sJBw7Cg^DW)XPyCRD}~@640--a->_8&DBcCr*nJUB_vI5=TOOx`7Zo-+M*SfK)$* z+nFbcjbIOXrv%$dRF9zU3qJv)`S;!}o1b_|!@_6si=M!2wsu}W!LaZ?3qH<N<~4x7 z@tG<Q>;J}ChfiiXTJ>2!(N_ihe82AS=kz&u)ZEb?q!A3g`0I<jWAO9Vh_h>l@S^m2 z^xoi3NQQ0B4c94u-LXJ$nHr$=oT_JdbBJzs&A;^Zxh3-v;h%qPTI})N#oD7=M&3gD zS{FvYLG0f{RBuep3z^mP7Owd|M^fJ3UJg&*3k{m&b8dzXh4yMGeU%IG-@?9|sLE4! zjNJ)-7Jvx((mA|L+46G_uGHyCX#1~1EW6&O?LG$A38~-S6hHc7)^h{bdG*KyeW~BG zs#a{NdV1B7+{+CV3`?W0Efn={^KsPhObe3FJm7~N_Zq^?sczmtL^=gMPn_dy>VFS? zn#D~MeV*h`NnQ#Bd;umF3}b1AJp|vM|Fm>BjWh68_AKNm8uRkxh!NL5y-E8kN@lUu z2X;~T)T+RwQ=pzQYEdB)N7%Xj11#}Tu5TpQ4(M3Q;jOovbfe%|kL<%eSGIg4-0kpQ zc__PKIZ=l}0VTj}^hge0M9qOee>xn3HwP^K;<x{F_=TEl@aW`=#Fda-4N@+?zZBQ@ zvpw6{BvGJq>^?PPtN`V{8i{Dk$&cp&)+au8RoQzYrkGmt{YUxyH-98u(HNNM`%x^# zoAAJMn8s8d!<tBVt;n870~ganFT*oXzp;MV`AFcx+nLg`QY(PV+L)@%tW*I*$tmo8 z!5VY5!xztDGjlK=62fc6l%oypXAMJkmkClaajl|I6#$h$;X=fK2ljKZC4`EK(5P^Q zp@oRO;ZXy=4p-8+jE_VHn9l1dg1aZ5*EUaua0Sp8O=|Y0FgI37cC?R~MmU?nHBAO( z#Vh;E#O1q1PiG0BpdAbygTGQdvhYOV29Kb*P*HP){K$6~EE#OdVwn{WL++u;yxCE9 z!fd)By%qKs*^k4LS?8Dfs*v&?7i&7Sk(U*P9twYtfs|A=6~>4HK|WgQ<cue5_ji;D zA)#5e_HSvUbc1`ZoZf9t{pwCw)6pP6vC{ee=R;>n%FS(wU>AnsC!(k@0tambonz3+ zIFCtbBtcn8`*G#5JmsO?bAkj|Pbc_iqAE@9x2fFgn<$;Zh+cm<LR5QjiNk0BuA!_h zU!&3A)^a4!fsP9}!`m(We-rU3BD$FsRy3^u*u&cX1Dn5XqEh#f@Ka6Y^|LHI`-->^ zsOX0|EHo)l>!Sj}2KF((L=rKsO+jCGfY^?lYF<Zi55`(O96ol!Pz4_UMxdT@(I5$A zi{*IEk|P6y(13D+M;)J8WZ&aAMV>*=5}i(;S#<U9T))m81`BND$P6#XHM;BXwI2R* z;>OvT^(`MX+fApbr%0n}T{}nH+_m`1iOe_oCoF6pe3o~$1aP<(yNg^RzGU9fMm#og zC~W6`n_0eY5<fG(rzgevjI}y6PkJ()9}({K6=n!nwvV?mbF(Zf<2+G^5?SxDbpaLc zA=3LCa{cGC-;H^Xu8Ua@>BkBOD24`&;t0!d+}=+xfUf9WW$&&~t3o~L-`V*4P-dBL zI|h2`rCJrT4>fsA(VY6J26BijO61C$QrB}+Gv1SNx-5R!BtU2G-^`r7Vm|-jza>VB z>pNbkEsDIO(Hp$)O`G1%xX=GscJ{`2vKNLlAGdzXWn4ybCwA)BAVZZRS}bh<DO+eJ zQUZ86@In$mD);`cBmUp~=h$tbDsLH=XE%M3npHY<6^GYoogv~2k?x}%B3zYI-zkXw zM7tZ)KcFPv4%ROUh$L+xE<DcembZFW#3kgU7UbV|H!SMS^AS0ln=|KYo?wq{x5pI{ zZ_E|<=<yIii8vj@u-URdX#9gv2NjKNa_$>T7I<#@&>*Q6q>vDOht2%SL<hnWIi~32 zNYbJV{Dg@z6z6W?@R;_W+Rh7XZoyZjhDTABoqOtvdqydImp+OWM_HB)N8)9Uk$b2L zus`CmTp`m%Yg<$Ot94uF(1#g)@929p@kif{wo>~8Dkmng0@v_>qww!x%v7YAhuCh+ z=DM_u==UqpS+mp8Q2T<onZxayPnD)JUc=uDb>Az`Hi(}_C67D%mXaGG6?P}Nb{sB6 zqnN#V)1u<puMc_l;?*>9Ijbpi0<p<$NKNhyFn}h1NNL-6Mk7B<HUEl4GP+K9a7c%G zn}uG(qNw&7qccMBEZoB+9JBAGd7irt7~)$hLF1fGd7elLTi2LB;8}saf1A&S3gboo zYNq`y&wS-Zi%NW@@kWVlZjB+&<r^by#Z31>dOZ;Qc!I=w%XMe5Uk?K)2(OllhRaNH zn~>n))7~AAF0+>HH@YTzt4@9H>4e&>{_QK<-n9&TrDk4i#U`5e9A-Vfpt8p>Ljr_` zJ9qw-eR5*JgGFek(Ru3CAsR*0WMp%??tbX18ISQU?QxzLCssPmGJsL;IsT10bR6LB zg3D!w1W#_xGOlF=ht3_v-Y?a?YlY^NPggIZfXfKePzCC%&YX`95C&sjLP9L~9%o{@ zg}{gs$iq^8T;{+9eBXa%BQMZxWiciovdfY+=Bg@WejY~$A7C~-Z44I%N)E%qrra$4 zgC3><JBG>0<TM8LgWv&-CA~7(p%?<sy}Lxqe-yKr&ef^7Ub3*RhvAu<aV`Bms{x4| zGJ&A$#4!$<0A{kmuVH+zf7FAyNRNvJb*I~A7~clNSq-=_OoK(OhTuYuxAwaCzgZT% zMr)n1Sh1+DAMh$bbs9M&FGNH>XM*)bC<Jr}SOSt5oci(dM7N~=aBG-qcg2gssktek zbaDa5Ep=i>o2AhX(6EnV8n-*mWT1wT0~nk{?CHBnV4~|dwvPU!D^Pu`FUXiEHbNh) zwKAb(qKbT^xoSEZK}PqO%kGiScKO1gH&X3TQK^eZ^K&S$NUYbyyha9^KuB5O`kXV* z?&7l<FHlGbBskg1z4*j+SN$70P9f!@%s>Ixauni!(r5aG@t*`nK>z{TKTNqNd*T<L zWjx1BWX#`(nK~*?Dnnb!F6qtDRDCm9iuZ^ys@3_hU5TvLkXT4YzY%@whWq*^rhJ1V z6GRm%_1knT|K?S{FxKW&l*ArtsQ5l#6i{3tL7HZ+aN6vIYu5GBw+FJQ6%pw5hsP1Y z?iKwv61Q-`VmVOjJM#xT4AV`vG?DE;byKAxnn3jl6>cK>nej=|5JQ}xpJewVIxD3@ z9K@xG#=Mqb9s4O7KBOXtc=i+ec>KI5_j9Iy(VMRT2rDP_0)jIw-7pc)Z|~&^19;8+ zr0#LIOH3;L7eW=0_xKkv^Vr2h!@NJHQ@$S6!D)V&Jl7?mp%8=IR8z7;Z_7bqY3S9g zV%B3ceG44*+z(`PlW4QnhDp;Y_T9kKWn(dkj$Ku9g-7Atz_&k&rijJ2-#I2!H}W%I z!U5g+?wO0Yfl>n3LnCge{N#AR;mlOuCk9`y_WnE5v@A>5bxXRwFupH|roH)eAM$S$ zT)jw6#-zXfR=`kA)QGRZ$KVZ=xi2YJtBW`vZH}b{$0B0_vIVw2a1-S}{)mh`_E0Dc zx4NinFK}V#QHqA+W?_oD=p#`fY~-3ZBIOT{yRY&_a2dtnLJbc=Ar7pH=<jV(jU|!p zi5Mwi+F{5#sZ>%WWg!elGS^xQc{!nR>4SDG({NROhyZ8+do-a}eKF*UyRogzk4<(| zWjS1Vm6bds=G1&J-;Imc<Oh4ODunD<#+-~zX{u5(b^_UE-ItsZXlND4b#(*xINAz- z;bBgp7g#5Y8!vGQMnOYQ<z~(+=N}K{IT2G%_3idL(s7B6=W^k&Z0{O;+!<7;P>I%B zP#cO_oiN@R?Q*wMorl2>Yx=AW#Kke+Eu>~yy-9PdBLW^!$rO?Xa$lm+?P0**C*iFg zUy$9&(s4;7a)d8c6wOHFaFP6amwNR!<D}he2O*Y&db+v)PS1*G6)aPnk%<x%n4gX! z;U%YTa{WP~jS?efXDRE+QXYhd&E|{eH3fqWzEbnxN)%=J#SQp*q8($F%9TeuKVmAH z#_5aeiqiDH-)kM)y~A~gx&xkP+7Zii$ASIDNd%`&o&Oa@GK9cLM4=1U-^2{fX>OQ! z1f3Kpx4;z_>)|a&CVF`zf<mgm^-}wthE5LV5YFs3BLS>u8L>q;9jVQ3z~dnXuv$$~ zjE!Hir+3(GMM}}h*N~jiuM(7n2KeHP3TQ`aJ9C&SJ7h5Nh<iV~_;}_0&(=nG60<@| zG;({PV7%M&(gpo2XBfIktNihiVf_?Lt&VLH&bp}Nj2{(i0z5gP{jY|;Q<na3dMiQe zTr65~sioimeD`=1&HzILdA3L7VfxL!$D}0&leBZCnxll*CC<CgjlP$m{WP&zb~q=V zeEFb5$>ul^$Ho!bY@7wu?2KZTWu*IDpuQ`<U-{H4=Y3ffb_Hxs_{UI4c;lAIjDrff z!Y#RNWA=N&h*4G7ErkJ$#BGJovi8#@>k^QQy!g?0B_P+?{HJso$Wp9LO6E=K;98hY zs7VU?ttxi6K%XjZJa52G%QkV6!O2*pM&Opim<Ss?W;Ee_8*;W_APm4FG~#nb*bYDS z3I-~BF{);;&0`sBb2gXBic@wTo5F>4B)_l?;JFTsW2-fN5TB44{?6P#EyUCx{d#?e z1~iq@8)JFtw=fcI^b;6_w;e?_h#>faYMMe^xbEw=`ezI(-2`yw;jhwS^a)5Ixigz^ zUszyGu16Hj9`2&YI-C14dh&8Q2H}^lx<=l|5%q^za)JaQEOx?d@e=nbm{^E@u_ukR zB#v^E1<}dgBC{-I1rQ|Cw##QmtAbPnos2sN!g`EPHA__l1?ujbs#Kpd7;G6`D4c6- zP11Bb{-n)MUy_9G#`_=hauE`UF&QWvV*q_g-6%YU<F2d)C>%h9d}EYk^8~R9l$l`` ze&8B!BNv}x|F>brV7KqWB&Q#5G6{|j4kEA8$B53yD9eXg$vZF1C(qKyXxBS$$wwIJ z*4V*-F)Li3>#B=MsY~f+7j9!0u4~0SY1*hh7i|~QuP!CAE<>LZ5bDq>qGT>kU^@;> z6-d3>R~sSt4`N9^PQ^!;l3`c2`$`!OX-b!)kT>(^<Z?crS9H=jM3di$l(UGUzY#@> za1iPru44T=aU_ay0M*(LX;2Sj1T8p;+xlE&T})wJN>p7-t1FS=a&PoWu3aq)M(q!d zU%m4jed@l<BTAMVyDu4q-t7Vaqx#g-`qcIM)Stwsti?Y@Gu2~tq$$Z`feYG2z&kS{ zIWl5eF-}<@2G>`*scqiRDR#$JeZ$IB(!T3X(Za1+xmP;xVnXX8N%G#3Qny`Uf4j(= zDd|Q4mf*mY;vh8PRKTcF6@yNFXC91}eDZv41SMQ$8IjD-a@@5lA3y8->E}#>pge0q z#ja47nMlhLeX+pXe$6}M3)?P+sKa^o0fACpx&iPC&mg0t;J_8c9bPxt+N&<d6>Gx& z(p$3Y65xd+RB<)DMJ<j*IZlxLH2X0LYW?9#+S<KwQw2_p4r5lZKAL?~Rh2<!M+{O( z-FdLl@lha2fcNl#ttxJzJ{N2kla!jop2?cq9?VbXqeCkfE}Ev8VM+hFlC9p`{`l%0 zE~-=2RNN7#6iGs$5rxk)Gr{aiiaR=zA#P&gR~(}?n>M3L8^6YNPsf^fMA-K6wyUiT zDg%L*?hq5)ov#(br;Yj6+~~n7ZlTWovt>Kn1Tkec?Zk%w+;}x_GJ?Re93%7?`{`CB z*aDmwSH`f;a@t~sV_&#~ZXBQAwAfo<w?F2Of+4@%DIC=EsPA;<>vJ(RA)n7)Byfa? z&PT$_5#DSS-WroBxdkw9EF^DLs-13OO*t%R+*UAeFeO^ZkyZTsrq3nOrI}r|=XT?) zS1e}OhMs$}#P7{UCg;tZSLV)0<=T~YxN$gyV`);dkgd<*9$l0Y1$%wY`%Faz=t`?q z(*qzP@w?X?-K2r335LAy1>#2DDtO2>`Mzu>%Z_{rJ)Wkj1D+1(s-j)<^C<9}Fy|f@ zXwDx(Ybo93)J?0GlM|u?*2@i^kY5@6VcS&h(0!(xE&XL(b>mvQG@mYpcB`IceB(3= zGp_LsC2DGWUXeH$sQlGFMms3)kjPqFc4Bz%53B$AtYBgDFJn_7A4gCQu9yrXRcsTX zD>Ls52LGtUU}4WQoNs+v+T9P$>eR#7G$D<yk<HzLy0$=H;d_q!%VXJ`K~vB2o}&>> z!%`5yK(xzPxiW>dbb3J*R7b7y2DmPt?zsN5GPAKaa4_p|>W`+n@bfZtjB(jD+M}EJ z_3wm&s~>vKlPT!8hVb{r_TKW$N0nE#ol)Fv#6$<PUarv^eKE;f;~#o2vM*26>$}<l z5St{;df!gTSUSe_9@^7=?e`M2-mT=;DjZgm2~8-PEi||f1j_+}#hVIOiMlw0qGz-@ znZ8Fanw_Qfx$BokKob=~waH@Q+f47Yl0($JBb_}w$=mPUbM9^&G0}m=K-1Dq6Vj4# z#%1RHN9JK$S>Yu4Xg!uv#(68vh{Hd}Ew~l0sns7Pe$O#cUjp};^gc=i72jcrb?^;k z+@omTX60RjPLjrm+1_<jin+nwgi7M&Z_w_JpCe!8Z&Jg=D(XM`VpV&neCQSL<~VM! zc4l!;_ZO=1M?5M#(=h^|g?oDqHSruEiAjZ)nJoL*{z!9)o98mEQIST$gbw+wn+l<j zE8u!UsuE?<00<vEl4*;C+MH2-q9v+9W<#ROS!ToG<x)9E6^tcp;yNeNBBcBtfK$yt z578lnml@i{lLpL^EsQEr^p&gUe|NrolT#IR5;;<_A4MNeCVRls&!V(b>mK7C350M6 zPe2W6`6@n)=}z^KgbsuZpVxmk_m%&1jt(%A5cRps!3id+5NqNa#|sIJ(xC15@XHGa z_=T>`9el35I!DozW<r@J{2`(9C}|g*DB<yA<4b2E*02Mnle2f689KZ&p&dXmBqOW0 zh_W^PyGwHym*=zeJCaN#*uAlM$@X!37}=L4&U4|lcz%HSlvX9v+UQJ^b7+@Kp)q?s z&Z<#4q|f74s7CsQ0!tKZOv&@t5nLgH`x50rX|dt?_KZ&QFWe!!@pMg4kb@LRCPU>s z6L6UlSxmo%`N$HC?4h93-5q2F@K2)n4%WmXkjVdPvsB|dkuhpcba1PmwcmHA4Tjgl z#>eaq?}`$;fY8RPK%ZsS<`Ky?#BT<oVa|RuQsXE`^TUm5`xyndu*3Z0`Seo9(lJKD zbQ*MAAXL<XMAjvKTx^zKdtlGZ2hUe3<G1T-{$Xj4N?cx7So}%sIn`6B>jkJ^riI++ zt|DSVYJS5g<RM260ur3l!mVQ_G+_XqxE_%j$wHCr`LxrS7pe|d9{z~dT!17x@U{{j z)wnpG$(DY*@CkY23FSI=VVh@*ZOk}zIW*;qQ~!lY$DVA9+Z!v7f?xymC>DTjF!uc@ z0rfO&sQQ5KfP10(W=u|Gt3pt3V!H4J4Zbe9grVDYV$PsimC^f~f2NQ%<lDi+XMRH( zB@jcMVm+eW(SFfDsgRWS`F>^k6g!>#;B|~jqx#0Hcu<<Wc<HKIPeTK@Pv5Ir)RRpx z<~+1ulWv9oCVjdR)GBaZ9D=-Rl=s7cM`K&;g`N(#=egIIBJ&R=?r3IngUKrwRN&^A zIA=7O!YFlp_=R;HdR_0Ly@`&%%HEJ<<LF4sIZ$Dg5brM{=MNFT)vhW5SJaOoh>|ua zV(R9}DiM*-O07BLT-X*_Hc~vRG?U{>@+EQTo91OnBTn6{N-EdZM?Xh?Ncnq!r0nj< zkH*g&MRfQsm|OpWXYn^4wnwx$?hUjBtG~4w!-$Xl0^UnnZn8$7k~2F2Gh9-8sQi*1 z^;LTdBaHfI3ZR30hA^P>L$_?pQ)EV`)ebjtI~=qBZ;%;6Pve;wh78T^d`dQn@$vg8 z3A;ViH{9GW0yvP3A#~#-0M;NU1bS7V58uF5DQS$zX%HVmHsWw=$VmuU<(9jM%~?98 z3Ql6)mmk=}4L^^ZzXgSjYrvVr5vba=DhEGz!%-@Wo(9h#Dq{XA=5OYNvp^PAWe!y1 zB4X!LNXwnkAgw>1SDBEtEbctTM=~zk2fo$_wh1I@A!kOZ#d&}2^qa|B`)WSrqulK% z`qB~%ImH$nSf8uo76g+JsdU)%QzY~yu^aQ9mVyPz0htvgShr;dju9*3tK1CY)U^$1 zK%QrX9Lh>L0Hzz8QjRsN;)?)YNKZ&-$ZzEV%sm=-ek94Fkn|O@-EY2mBg|ekMv)?v z!9yX5+Iw=Ioaw|#qv~88;+t@8jg)dZ<2J?8L?Uv8Y}jI2{D@+3R=AC2zCnHokau$r zTeb6O3MPe_w=`|m&bWY>GA4yHb-^8dpD0wL+&5|BV5iDer~dfTP{|fnh1+1}nh)Cr zbgD1A2FZeNi#b7qUjY*1Zd2jyvLJvx5rvXnW|itVb9HdhJ<xmn?lyv+@p$tZp`_IQ zq`_Z+%E3)G+Kyd6aF>Y+QuWgn7YNeL(BC)EL{?R}oYWM8(-50ls^kvq>SP@7Zu&J% z=2XoVK@MBL>M-W(OD}}O=FbG0b!U@r1L=*K!!?Vl`kRwYY~iN=NQ8O}s9V~9<_5ZG zxv){<IvcjrOxPy%%5D=RZ<0B62kUlx!x~&K?5<g-zjc`5Ye=`5!>d={qi}YzQH(r- zyBjKOMdj$qFN}5Ze&2e@RUZFAX%>S6$w^eu8!66LECYB%mx&{4Jve%oiaqQCb0-cG zVC)v^pxLN=*^zSOw<~Hjh6UFFVq#6JuT*E-j9wA&+2Dcac);dzxH=2kABJV`xF30| z)%IPAv1fv>U+qxl@_*LMHGiw+cE$6(gYUwFQh2z3PPf}}IkfSn#%`67`>WBWz<*cN zAio5SJACYV*K{i?mutiOsAP-MB?tRlCAchr7NpV?ei=0stIepxFiNmG$WS-!%0Xba zcl4}9ugEcQ_e#HHRUn{#PJ$1JBxT=BLt8wX-i>xBsy5Akvh+oF*EHa22#Job;ovj~ z>azDM+OQ20Xr2t+T*5Hm9qm4jT(0he@g_s_Bi_|$f_~QVughsJE0yF#^=eDuvnp_6 zTdd-Fl?Fj|U_*)BW#0-uS)HL?m)J9_80eVVG9nmPkGGvM)5pWJnDerBE=www$D>w8 zo1KvfHWzvyD{BZg`r3NIL)71s=itJ;%K7!@uwfs9wGT9t>S#no3XeSnntn^)9VQ5# zifh+#dn`J}*&Uo|gUI<B7O933>XuW8I!dr^Y;U#}A8RDgUWXo;v!KW%sNDQ~_rUs* z;@cmn%e@&NyE?wxGX!B1F5cDtwx&srcxxbgOqE08c+xCng7Ll)C}o$r;BiB9oeOfM z;ckwuUY)L3V^Z*^gVjkiQxJey692``@%d$LvPhv6bzFOSlw0(e7&0IV+(1jl)<ssG zJVZQ8bGaqs2WfNkNW?>Kp|4rQ*FNhA5IR38f%2P3--23LTHK$R#x%KkHQ?3{qnWQ2 zUu23yj><i7=i0|HAiF~@;ZGW59D>QR3fox<ex(<`hXJ@WnbGY?o`p@rla1`YeJJg- zi)p;PXhevXsoih5Q|KV{OU*wx`W_#HsK?Yc{2cHDPeh0pm_Ty;pKr<GhL^E{=wNAo zmnq~}_O-Kdj4NW?O~$KSkyh>V7^@Vt@X)pGpcx4MJ}anKR`z17#vCnv&_5ydD5C=} zsdC8V|JqPakB=Rphm(yB+<&1Z&~&dLP%qN1-(Eb%o-!W-X>J}?{0XgYD#t-lvNLGe zpuaG>c%Hl`pmkFB6r+msyI$8fBB@x5<DaEhUxA4R`tjISpm;4TIyRG8`b_4Eb&EA> zM$dA7?mE*NsvFs+|2C(^R{y@vN<E8eDko*dway;YtOslJxp6yu90saiVMpS9Gd*S8 zRnIQo939LR`x(XhMxH@Og{-=@XPVw^tK-&xR9bH%UMe`WTM#mjFoK<J?gpeHtEfD0 zA34VJGbV`RUB$1Y4lVedWA>g6M@I`W%;6(b>=6|Py*e&d_l0%X>BDBGwfWkrGpv}k zIyzc2u2ev>A=s4;UuttkPd#xRC}>s-IAta@xm$I|a3Au-9I~L@S4Ka>0930D>&P9a zP;3w0gLSL@&U^)++me|r$+S;LFl0Lnd43y&ue4n?<b8s4%maojmzw7s>U*a!*w9dk zvVV#D=)Fg(2UZt#EFprj1TX>?b8aF1Mo|L<@x@B&ameTn+5ONHTiUZFck|wHlf;st zo(wcv0xc_^!pvt3Ks(b{=;DtF+|BVHJk)h~#92e?gtX_TW9}xi#QA>9E${6K`~tgj z<O-t&-j|dweu|q{9^2oa+TYX~S<?4`(A?h&S{qa8%{dMEKQ|-Or^^@*08aVDb}q<d zrO)KeA8{SkipE(Dvb8Mx#?JaLzu4Esa4v@)weyL6?VF=eD<+T2r<x~`tW#fanRyXm zotM_j$;Uadlgf$Z1Y4_nh}L=H`O$}7spG%B#-(TvO2=iYg@}KTkwGMMGG^Eth0-w= zdqa}x#u4wwY1GqhRFVA*iFk@vHguZ&f{yUYFc89z>V0A2A(6@6v%6PJXJA5j4~2+N zn*S!f34wsc;22k(CO|t?Njo`sh)PF#NH=7*6rDgFymDz|Ft5H%eStFSpf(I3SA^w2 zS9>BZrWt;yXasj`jq!&c(^xOr*_*SN_yrHLw%T1Y9iCh@-65VH*YTGx_4D&#+me9l zvNi3Zx-`=mJp?o$b}J^XUmKRrp3C@64eyaNgcsAvOt)%ZN2`{_q=`7P;{7=IYUFRk zm)g1DyFcc?DwA#Di-j@NhPjZe%o+x?Drrdq)#aXP=W$P%q}+;#GNZd%%7fLg!&!d^ z9knE!n+*+G^SgHm_9YM)W{JP|qVdWT{iW8znj@lBF<Lv0n9rp~_Je1nO;R_l#12yZ z_97wnLrsWF6a9w+Zh!k%#&*fM&;l}rUAtsR7e$mxTrKc=1mTo5#o<bYpsg}m5~d~< z8m$G27In(XL8I5EG3z7OF&Sf9O4<#4hJy0|=;fviitWCLiuOnl>FT<vtu`eSijkPP z7@6kY+4xmy7@)#6zj-tg#KEz(nls8mP+8m?fusWsfX7xa;P3n;lPIbh$W>NBcr3dA z0(koiufIEjP=2+dPOCF0&E?}}HawmLI&Ln>+%y);(rjWT5+9o3{(Rrx$ZWjutGv<4 z_zr-5YZ}Q#dZCUvruJctqxGXKjP$K?vp>GlyAFSgtUk<FNBKt`)^J+mJn(zdLian* z{$_ZuGl`*XOBmojzOr8Q^wRaY=7^Q&dsYLaE31#pVm&zXQO&(BW}cI<|7a!(B1Y~C zT>FppxY#g&Tf~?*KgryZ8R{<iT=4%z*jvU$y+sedCLs;dodeRSFtoHZhysFicY`zn z(mgaoqjZ-v(gV_+Bi+pqL){;q|MNWezPR_kI&(hi%-(y|UVE?oT~US*ser4YOP#O~ z0+DD!Ed+t0bf$SU@0;|4LTl_HLX&o15+Vn2jnA?_>q|&_15c${y8?{AwfdKCVV+A_ z;(>Bp;|G#Pd~ZV!R^&e;HbEh5A?UNOlHNAm^=n2FJy)o&Eas*yJ`YmNzBU>)dPO#J zI9TTPx>{~{7}up&8P^3ArksbuPaxKjIGStB(Fc7+EJo#0U6^SGq!yX@iyf$hVp3&W zPCh?BeP!KWys1sX9DcJRDJ=Q;2uFW$^6Ez3=7nKtU3e?8`)|}0wH-TGosZ8krF;wY z+S1p|P75VztL2?S!Q4y{pgT0`Fs~E6D;1slnp*g;b;uFcWd?TbdVReyCU!V@8H1Wg z86%KiFRtVWgq&yORBh<To5Y0JcA+;}ehH;><!tMj*@=dlyNq$PVl)sb{&8F1l%-R; zY&bbfZw$X9NxXcIK?)>xjS7n}`S8H)MCE7_nVfH1Peq>Vsf_8_yOh_39P#Pl-7X=9 z`(Ef+w64%twWZB(Z{DHlI1+a`B`AuZ&91@UWHxBmS6);2r?TK_IzFptn7JomejE3M zoGQq-h)O*jh`J${75(2-U5_AyNn$MVE;_e8Ibm7t3feCFRW0gIplU08tk>$Xdjvgx zTEBnS7>SiygB2!q-?P;;7V8BfCJP8W8O_o<w#psBB{#L*Meq0wb}AR=8r8U_awt1~ z7vkaWH>y~=3}<!nm7?&U4T-6rj0bJ&iWyEM5W7^(ee)&`H6rY9sg_*^PhPJXOyWW) zhuR~nDs~K96g(?t)KO}LBUUDA#VjXZJC;lYI<(>OsuAB^1voBH_c!%JgkXsYj}VpO zLCe_mnz<ZbcBw8S!@w5n`rV}-v7+u_St@3S+!m$9UMEwc>YUmyazD{i_i2LXT%<-) z*v1jza9Dv4?eJ?^br@955Yg42nlNSmVaKxY9LM8xrIRAAc#HjqT{+YGW+15NR7PO1 zM$pxkSYylO$V3p_j#4|&rGi2-JkWH&EC@22XxZVck|Kprxlx>*y_<l<4*o(ska|!l z6ufKpF_mLQvZWI*E$mGyY`H?cv4gZgRXU)*&X9LJgrJeR!*rLQ@7A5P{w%>kx;He2 z;COsr@ZwAcs(D<~Plm1PoA^)(Q3AX_0Gzw)A33{e4$NYj#ojWKTyEI{JU{i)NIllP z9JwvaMyY31^L7g(I&}0A2p?_6SM8bx#F3n;={;%h`)G2CMTiH@f6SBO@4zy;7;>ep zyCi*7v4d^!Ks~%^1016WXYNHepp1GZIZ;{)+9g?-K`5SC)lGL~xbk_pkIW>ugsfV5 z(Wz3aD|Cy{C2Ja$u~EJYT{Mb4@_8J&&QH!u(X#|Jve6f7VqKwq=ygepCT(ks$V$<$ zT$6r|5D_Asc8;(|>+`WGwq2n<CW6Y*<{#Ry<X(q@vjZm8&K{-UQLaFRs@PYYRK|2K z2ANhQjUNdwm7iW=dRcBJRRk=-UM$oo#s^h1O8T5u_u1h3^A#nUKQ#)XOttC?MUp0A zUzuD_qEZET;lYokBsW4fOy$$lvN`8wC<q-4_d=m>u_eQ|PsR4fR9Xw~{_36JAevgg zGd2({GRy_~T<Z6M+8j0UKZ$dOfJ47WktHmZA<~>)Uilb5BFY_e1{SH6A7k+?q|;#V zljQSpytCb`XBbY5Ja}tbh{1UmKsIfmL?2|3RcVcQAS5SR2bt`caPLnYWw(*E8wX_A zy`qSQcz>sXhB&99J|&ASL(t=Dqrg=WTJg!I<&4}Af~VMpVq)C>zt^xOLw=id1;~~! zCq=wQ4XCtcA-T4E1Lk|lyXsGJ{E|lUJN$cR>a%&Wzn)6ZyZ5*h`Y}FpTUX8Wlb(sF ztptwo9rN<ntUt*%a2&|CC|v)(g{wO+?z-4pm~zma{3`hPjjTFKXD8{h^$-&+7RAp^ zAGu_;o)H8{8tpNof?IY7fr&Y))Ud^}J^i-fdX_-dOa7-FDH|VECL)d%LJ6u+J!x}Z zwwCJEb(y2)M^)ldDfKkkm@>myK<}>J(+ssc->$fM&%2Nz9ro_E=f6M3urpl)cfLni zZ6}JnORBKtDWNv}{?j%ak7NFA7%=bE#8oj~^4S?Zkng-t#|+snwDv%q@>!?=xkd;9 zb|S8_H<;PMlFsl)l$b}Bd=!HN@L+`|1$L;8^5m3OX@+}^O($4|kY||IEC76nrq!6C zD+Q)=P)r8u7M#mr;B?y$CZ3Puq>>w8F|rw<&)_+D_a}O<Rswzf11t8U?@R-5&*~(L z)Z~GoAeR_|M7xQuOG?iUnaQQ>s+Dy<SQUm4+#2Tem`Ok@+L#)3nkMHCbgpLwW@wt( zq_;I7Yu}laE?-tGyUoaT4X?jW?%HKVP{k*Pfw_tFP3S1`s1uS6Gn;}J>yfdZlGqCy za!}2ZHPF#-Jf<5i0-r$5HqjNkssYr$YBc25s~^m~IUY`xSmCJ4zxgWm%}5;ZN10qy z{i7$8p+~oP4#+4@t7F3%USk*Wu2h18>PC7xExDDo`wXrLF4>hl+StS5w@)x}C5%^i z6;$8)DVVb`N(M5&C`MtDV+X!iAr&}!<s8EP5vF1e8E_SS+J&aSTIx@4hD&?kVj~~# z5WW$@^;h7yS`@$OVARcKrH8h2L~vYk7V}X~w;*cRD))RI)k|(r^f4KcLk@eH)O#-H z_+K6&Q~K}p7oi}R<;zP-PX+gja!KdiZCxehCh5;i6(QfzSW0elDZIl%Qe{`NG*bu^ zpUFUMhb-m$RXDm~@8~Qx<e`1hsy6%PCN6M(?)Nw-aoG&yPzgi|i-Z58<E|%4sURAM zC{mXpyxx%Py6IY9g!Em%8}&-pi+C^nq8kI);oRGu)H_f9cgR1pU<$cwReq!lrOQM+ z8Zm45jyQH{SE#!9iL-_jpc6h4729@3aRFWK`{&=0nN-Fsy?70VCBTtfRNg0WU|OYL zpX9qyg2lRPg<fWY(ST+il-LS(b_Rzhp6d>+l8)P=tQmMw^I_WSi(gkUO}k*PD%Pk& z+avIjaU437Qr1Sx(Xc#byUGPsZR-4oD)0yHw?Il;9F5bp0r=_dRN4i&>$H|}q7r6f zq(oX<oE}l^L|5;V2Hzg5;o_@TrH3;3|CEA`gwFL6(TdF2v|^Kwq&GiEZey0cczGyM zALH`z9RI7|h43kMLZHO8pKsKa13gXYqDMWg5WTK(SHi{kDLatM=-w#82h3<gA?g{= z2}P1Ujsw_!#ipnh)>>2o6&Gl0@Mmy3lrcr`CZAM~B4v8wOI{~Nr9L2+4U7ryvvuqM zk-Z$vD~|yAFh6<eN;i15JjT4zHDl$2(ojLt8NEqgpQnSAee+W1H)t26w2&KhL%11` zj6<WnxOta2AyxC4B4a*$pSiX?GSl|ss5m~Tr_nt?N)}PY%xmeOmZu{Pty$7azK8&S zCZTwp^v>^t1WgEoevC9@f823?#P>ASH;a?84^;(Sl0gufz2O#2z3DzD4}~R?PbT(J zxOA97aIFrdH1LNoY&q#dcb5Of0+6bpaiWM>Q#Buqp)n9TCqXy*z#yuGC!xUNC}f%j z+-UbD1pu}3EgwbmA`6})?AAivhT?EddO}~DAqFpWq~N9b@V^spU*&w1oYpj`SoHfn zo}b%+T!;75Jgr#aqLISIKvpvb$uy`xiN#W<0W{ZMeVO09J1@aXoLy-8nclo4OF@#y za6EW9Ig{!cz~Q6jYFz7=3pm%3HLxZpDz)a>6k&xRdl4aEqo1tN`yPiUe*6tou8J4P z^UwUigVJx{lBu0+kJrBfbo(m=Ob4*&;+zPSzi2XsS-y1Ws9bsT%dVG16e^`Eve>HP z3wM|Rzs9EC171Cm6TL?_j^+-J5G!k_U*4{U`AzafVN<}0xEIC%0qmGqqnSuU?Q_5; zTvYKup>3d?PZHW6if>oAAm<eHN;Co2=MHp5F-umVrCB(UMvWnnfMmBgrhnCKXSlYx z35W@A+pBsLy_wO4FbYVx=ipwU<$T!wt7>q!*o^8;B?bMZE4=+~w92`yRBmT_kwYL1 z>_FMX=@Fp(eUH0AN*vR&jmH}YbWyd*4yf+f&R-f05z=`hf9A%5U5t*PXnHz7;WcvF zENf8<8}0WilI~oz<koa_;hF6m$Ewnd2wKr_MQDsotlC~PyGmX1)}asSCu*N>GD`G& z4_-A{%>M`#Mzj|>DRvif__s>~6iwt5Zzmt=6W>Sfbrs!{G<*VS4u7_hJG(>wDnfxw zg8eP^#1sV{T}}-$l)yw&bM=&7^3ttO<#rcPVFFsy<0OvCqlvn2wN^xNU{y|xcAF-e z*{bhensO_~Bs@;{A~?a6O=@Q9w%;jGh#<=zeQ{3%47>ANDYOW&pT(6?ZIMZrQfU!F zatZ@x{f{}gQ%X@w#b{n$j&vFr#cAWjVV>7h*%Q7frJ^B(6cox36@^Qrc7zt8`trxH zymSlwbcxg)b5;4MFtuZZq<BOK$@OSY^a!T^go7F$YA>w78gC-}hUKNbu)e}l_TO-i zU?+8)$}n_zi2x3^SdaoGHhHlm!mlQIX4>`4?B}8w$E3vH8rG0l<gdD9<Ec)$<=sag zf>pkss^C;%0ACvB%%#SRn8N`!+yRXpzmkB{F)_D_fY_G`p8M3O@!eBl9wDR=+Wb_z zWI?$iFK~yjy8<-8MTo3wE(XL=Ef)`C2jy-q?&9I|3zZwhUv(FuSJ=UhB-#ogGE~4& zuo*+DJVt(YP9oI;-%m^I>lc+%ydc815f<W$@V(_=IzUu<R3cS7U`4^+-Ti9a0wDph z!JTy{69hhZvuc&9#QP5IS<M|G(-PHxXBCl5&~F}piAfz*^hz8jBoJqcU{plRn`s!l zR(Ge2y+@kl!Zz`#XcHgPA>xttOw$Fr16V_F&1yuk|DzJgy+@{F0wL>LM7xo<^Z{^r zj)Q)h7BJ?YTsYg^l}A;z;a5u|x%*fTJNT2C_uqDbTY@OB!Cpa93>hQKy@GrX@W^?9 z1Brdf!jwR)gXWHJ8+kdlQ#fH#(bK+?^9H8#pVP>$XIUb;Gny*u3Ne=a0dog}V5y1E z!ZBlCBPL6=_}W+?C7yq>dbtH8c_>N+&JD*t0pWzJuDQ5g;*mjNv=QM~G2n#uGPBd* zdOeKlMQ}6K8d22p#Bzo6`-`l0O_#P&;A6H!)&Xz}>mcU0ze!Fa)3a)g9c(fjf$G74 zcJ1*#x07}oMPN!ZsyhfDgK|=R4DT+gJ58W<mRW!`WE5%WwEd`V5bQwGB((LuvHP~) zvCllF12G~s-58{dhr##Btuoy?#gPJ~9~76Vabf?*z<b2m8h7B+1^>}oy8WU-^qkxs zIRSO=*>^So-k|3qZtG7ng@$%_lnb@YAKN1{3OZ6qvt@KGy?X8Lw>YmH*ASM7gx}}I zqF<Kh_jt5{PvNd8v9I@+E6ywxROA(0t#syn74KUe+m|c)6K2#<Ed(hvC@HZAIKWwI zV`VfoMK+EqmTW?bluJV>@|82MUBGO@J2W4II|T}=YMXQ~H}7XKQOl*{ha#zDO3M91 z3V9j(iozlT0wxCx8g*LO1aHeT4UY>}x`~E2>@}k!O{mvK2eqjSb9r~wkh*$DgICsK z;uDS(atC(2>S^>j4OC^tnK}fjv@Sv?tY;1}fuGJVjmCe_d@B+)Vv9lN=?>zrnMo!| z)c@P<BM=cUbjs)dzVM`{7osQmbE2`B&-c4foQctEBCKL;F4HS|Dj4P3drBN*aZ%DX zv6TsazdC*j^`<`TwqV;VnLZNjfieLKV)dOownlN$Q?qTtJG2OY<5YngJ@U)-HOyAz zpG%5FI!m{$<qEEKvn_d%ATNK(LT_<(nA$kIS6m2Nk$Wu66>JT;w!Pwd?Q0d>d2+G! zhNZ8du+sqM1w1xulh4pv$sC1mm^u??KBw~fd522S9&xYCJE`IMw+SCRSaBr}@wIiB z{4u0g^K&6~BP>r$&ize(r=OWM3-J)vcO(2Buu~K>Yrh_u6qE~z!XqVF`N97n{8Ml$ zsu87v!zbg){08hj&F%7lWU+lRacpcx>oMY3R>bQkfz{n3s+cIXjcO4u3qmO+6e=5o zJEo%4FH)YsDh7kV27M$5{lner8PdmLp`+FWuLwTe;uf=hLhmrl|4N3Di-(6lY0sLZ zwkmMDma4f}4r(bDH2O=X^m6r?UVpM0DIWS;>S=o_1pT@-og#mS-)}V>0!2AZQv0@E z;R97H&l1-O7-w!CC)f+=G@<756DUf+?Fll7qqbIf!Q$dwf`vxV=EO1a-RT**O&W{C z7;;K-j%5ck*>gFYI>sFBrSW@TN31_E6(PEMGLsqZ9VnXelfTRzOC(~<+vHac@oDrk znReInEqxW5vPF5hUJ>j{-jZ@P13|42JLOw3g_vs1?n33d<&O^HKuvB>F89m%>Q}L{ z9AMf?vX3U;SN&_on5wejwS&oLIUura^M%wm+&_`wl_qPXA1^w{_&Y<F&3XPh2M;4v zwcfAfeIqP}xr~V^AqZq5J9B(%5-K$`s*<{7CD`Ev-)8B#s8<5hO-~h<w&@!~?nkYO zDgPX18Ep~N`IWs+oGq4yCbLODlS%(t)x;#ow6iDV*%N&n{|ZtbB2tLKjJN*5H=lrk zfGC`MkFx2#Sw*JEIO*B*rm6I=m=ab3E5<Y4i-*9C{=NW#4MQM|cfKcx&T|HY*f>pA z7>A#g<Y!d;(B+CtOa(7nRd8lBcH-!x&R~crr`=RBmX_n5GdWq;z{+c4x<X;Uo`WFb zj)uo!qW)fC1shtr7ov6Hc0H{S49A9<E?J0b-eW_*VSS1tsmr~JW%(nGGd|zgL4>zw zQItp~2dSX7tEB5hHxq%^*ROIEaI40y>5a`|8Oh=aZaJnaXP~apCx*Ldc>7V{W4#d3 z4rOUw3!D`0(WIohQG(;kgI5Dcf7>HLoo^IUBwOSpF`Njlx+}J`=c2IWsC`eD;|K~~ zIxE^xg5+)1#_v%%zGvheGHr1dh`*2#&d5O76=MO5w5vnl{XRu;vm@CvW_rvDbdt?L zh&YR?@yn=TT@mf)-0f1YNX`}~ExIG<losr&f*zY~DV~))s_D|Kb1Vtu+CsyX&R89P ztGlzIMesJ7egZ`j9n=>Vh3>0ul2cN`pw<&YAlF}nMFfq@1DipZPiJvKQ1LJd(%<G> z*zv++PrmsF9#NVM6?SfQ#4e91{ral9v9se5HrW-gx@`Xbhzqah-GGd5hsM=`n_ZJ0 zP$`mZp=3b+W8$|lx$cPyC)ly|FKb78(;*4dvp-%TkPS?$>gK+Xq`bBk{j6bJp}8<~ z`T(DRSPv?q=t}yu5QerUSCx)G+RNhp_H^sC$iA@WsG$xA%J$zeg5wu>jFB=edFslC z_JN=1v9Qr{nc=Fkp0(-RQqaNxnLA4v`YGu}Wg>nw-M&z8bEybbYHm9^sWg;XW4;D9 zP)kSA7slKEMMu9B&QEssY%GvqK$e?>k$`fDX?B#lg7Ngo91KfZ7$;>C(A5E%aEA~; zunC^n&|9H#I_8vvRd@6mAq0>v7&FTN9RJ%W+Mi%>cDTaSnwY4}d(T>(vzR3AfrAmL zyTmQB)dqR!FL+mfS6r*<b?Tjg=r)bOaNu-aa@5<qCLcdpFKdSqkBHlkLGW!%pYP1i z1R|n&bhKWrNY)g{=D|ewwj91%mU~!vo>JFz8>=%snjcPz0Te#lDb~ab%Oh21y{(|! zW0&tX-v=#gV>jmM2@Q}x`g3usnqtgyLNrf$rd2cV80Lba`-4|;Aj?01jGs_cD}9z% zvm<=)oUYmn*E<UAM?BUkj!BU(kL(6l^mTF2m9TLgx6K@F<Ld>M>r-rt<^_Id@acNU z${3n%NcK<sh1({7O<xebi%Fb=<ulO}8T7sWAerXfOHE6C_6#nSc_MSO<ox8bTKPsa z$+(Z*ZOaI7e24y9cH^pfuDE=nlkVkW4#!#emUDQPEK~tx^ZH&m6p~_;prI7-=!ew@ zgC{-5@7~myKj}#l(-&f9V-;drs6?$%g3e{xNkQ?7$19a9mWC@dOZjP-q8E+DrM}g` z8ayl3;wdFezB6O57xkpmsU1{w&0v5&>h(Ovdv~Sz*c`%JJjnDj2MbJmLSUdDKKLb$ z8I6SdMF@Eh8aYl<-4jt}J;~VJ+N1!QJv{CSD9?q;`AZ?xkg<!;_cTy_Eb5^5pP43+ zx%?uf3e#y@M&m4I-mF^hQX-<y)6RHE=*Sm_HQyusM&E?~_*+U+0IA|n>*K-xF7Vp+ zL`MC0`wPrJjCi;mcQGi?u$fLFT=HT%WMJ%h)r)mO$9$!o@JH`5931&QBA6ulFKH_$ z-kt|dSJ~|H(7N7cNn(R7A_S~q5h|K%p+ck;2IyrJ9}yFx#_e!qPYV`3LTW+tv0)$S zr7G<514!u!z49G3qCjS{ZiwMVm6Alm7*|GaBEjeTWBkZtzKyf!I>*!|^q>m+wz_Sc znU0K3IrY8><Y!s`1d(Ya_qsJIq=Zfk=)GJQ5h(D^oJWRw1PhwAk=56UP*<4z_D4$! zpGlOhFn@O*EVf~f-GrV!*Hd)7X?NRaKs#XEFVABj!RuHRlWJTix^3lnD1`#%r^`C4 z6f!8>UyJ47YULN}vEqw$LaM{JL=o!LL$(?yk-{g6!|tPYbUS^0&W@ApoT8v7;gOG; zq}3zojml;XtLFAPoL&B+k`TXlKOcZwKi2s@HLBwrTWLDBmQMNhn+@yO*^?&8i<Cf8 z$ccXSm(Hb1?;hdXIlJm@HUhQA<RK%$Suc~y2BwS~>N@jAW9#B*bY@}3v7r{{YUCe= z22SjS5*NeFD~_9@yS4hCzS{x<@poBCvmb2uwij9GP-Z}`DWZ?H(M|gee7AkpkA5Ht z775KheG)FToAnvRT+CB&jig#T9kKBeU<iOY$$Q0Z*uAM5fX4}Jv7RsFCAVzr1-^@- z4V!V&q^8gg+A`iZh5!{s_QLR<76)nFedU=L{w`E;{~M*Gzwe{iCRo%wVI}64tsmN; zG|M+jA*8%P-umQC0+}U+^yIlZXD!_?T%1cKiJIy{N;(xOwO(S1<D$?}um#PvV*A3C zlOo8!9*s^W!P|Q$Q5AKi*TryR#1I;0buZPCkci53V|-f&?EY7E3Oa*0ee~36c7~WI zlMB(!Yfl^XBv~j8n$VgfH#rh}s_tH<<O<&fl{fd{X9j*DgB<NsL(ph^@I*BOOP}+) zkR)zlx&&o59zptK<>#d9j~r&4P6}+0gLLt{Bl10zpDjed3ov=U^2B_HvdpbltJI+{ zgO{f>ue^`AWpX$XZ8woJ9yN@}*gIa7?N=h<+=|Mv`L-+YZS9#Ou`TqwK?Ss0Takfd z{!qyJJ8$uUyg)39fIsr_-yRR)l8;2tm`I|(Hf0KVnKT@);dVk#9X539W5zIF<Q!1W z;{7z$-x-HKivpYI2b1s9`F0B9N7}kCX~!hfCu2W2aXz2f`9ax7fN)F~NV|EBbdts5 zG;yM<i9LNz>_VLgwlAC3{go<I_dZo!BPtNSEdKktq<Q0}U1mOBYP2(7Z?;J{ZMpc5 zbThNsytZhg-eQv`iwvA4P28<qph0<FAwDhJ?n-UvM74ejyXV{Z)IqivszENiR`s67 zGk#ytCML--AwM1Ysi|qbrgeSmR|fY4$268)|F_UOmZU#5M^+d0NSsEEbp7lMMcZ2} zjjJ~i6G?kT66Ev&Csy#^U((lL7L(LFYj=08HW$wDNwKEB+-rkUQGHV(a_SvyzAIO( zpI-WC7#9P*X0mBuS!Cep(2>^T%5HWlR4o%-(#1R>cXN42Q(}@80xKn0_5PQuu;J6z zoeDKDMQ%i;)fZ*;NGqepdykn*#d-ZbJI!_|8-#_kFrgF+ty~QG+k36GML|em>#PN? z|6te6R>h9Ub-bT*^3<0lOZ$ywn6B6A<a3hIUzlI3(Q$F0kwo|SjF%cuUT)1LZSTlk zkQ4XBaBm!%)^Fi77Q<Q`BO0VT#y~yc9wfVG{*@*QWT$5-RujO>S|9N?oe!qtq&uUN zr2TH0u88PuF&irc_t0dpt!rCd!LUNyb!v2Oiz4b7eD}e2Rlu+Ga@79*+_#Q9x57vp zISNd1tbx0g-XjOTvFOQtJ~6UFBFa30@18gh(mo~7%0Q}9!W6Z+V%wfkyXIKEMqbO2 zr~PRtpPY5k5uWScO;T+QzoQ|Z8#c2z&s%)G*RtGqL60*hZ>ng#JjMw+IuT6yfOB37 zzgHvrJn37;xavi=|Dl)Zb-(3$gHrnPR?}4PT^$;3aO*S^4Ugg<GyHD3yJcECPM_M= zv{2DpF7F&H>mq^bA4t{3z5pQv&ce-<@kooYKjy2<!GMG|9c8LZhWDIn0sHUfNO95& zo}v9|x;+q?=^Ge;pM4XE#amUOY;L?P3V!D6LSt4oX*S2j)-Z+Pvm@84KNVMZg(b3B zx6NmydYiV;{{E^zF{!G_y;f-1XfKA9r-$0&8U5!m(^W0qHN`tGtbH4p%ZcjGyW=Kq z#a={oLs0(B-@ZdKXPp60=n@1>n!nW7_zyW+A&#g2htyWOV%OO`3O*E)fOdT+Rjv6P zAKfsG+z2*f_J4zz{t)wPF-@Dba%~d5(s{|6#y<C`fgrlAbW|{ht%pC-Qu}(4F6z`= zGA?;-zRZps&p#U;OuAWTx|m4xjX^1q=#Y*59}G2AvOVk>2ortmFz`xorgVJmJC63G zQ&1T0M{GF(76KOh*@FMUk#b9AN#Tc(ZAoL-?9h=|$DX`<qAg=Hh@W7v+q4ztpyY+; zgQ}P3Yarbu6*0rJx6OH1mwriD{#9!6Mf_bK_+sy5njP>thXEyG|0s~GRF6H4zMsAL zW<$F`!AV;oUIkpaeg$)%r_GmJ>$&~>KNM6=t!LIP_O8MET<=ll&F7}LwRxczE0|bj zjk8)SvI2E8b42592tx}i5pRpSFtA2<B9TaF2)_2mn(=esQ#Ba+c%>xj>B^rsn}l<^ zX+XX7cK`sHI|2jtng4#pG|&%p1@4MmHMwWq?3atWt)k#W&2{Jjvt($ksr<g{R5JUh zq8tBzz_6#{embsT(0qi#JF<#JIt~hj9U3id>sT!8soIg{EEf#=)r^|`mP2nlVe01& zD_>~VLSKWSDMqxtpWhI<QeFJ&O+Xd;`}pmg@dCX?59P&VwvQ~d1iJ-lqwqkF)sMwH zI-}43EjTemYs5~W{=TG-0QH(*XVKy&<H_H@+;HHH?El8u{*Y>4F37N^)0&_yw0;{G zxPM-?*!?5~^!saESg8Q^t9>}Ks-`yMvqfJPr`Iw@0?jg{hSws~RW^h!nt<45r9wLo z_Dg2$PYJ?((vS{7&>H5Xxq}`MxD}~1?Z=Kjp`gvLWN`#=e#1Dm8Ge==1tHy8dT<ly zZ#fgL$!maw_#alc@?ATDqEJ7PdxvYdz;O+M>-^(FI(b|Ss>R)rkE-Oin@N#U5-1<V z-@uN0sr5o3b(AoONeoklwUKt5tNR;%Lo~5?7QAG10Hgco*^g$X|5&~H3{UFT>=l{= z+q9PPEa>>Z4pCXme+9F<Ti(8BKJEQqN}{id_bvupK>4}D=elXu=2>Vr)~0{OY+X}H zo;hYLqfTa?)X1Zc^Op>B-JsE)1YD`=f{vJ!VG_U=Off&{CjTGN{ttTdfBsWU4h*Nn zRybo{@&By&|N7DY=1ocutXV{MKgR!FiT~%HOX|Bw(1b#`4;+F?W_`aNcN0%T%I4i4 zpKs2lndxOri&IVIDR4&9pZ5Q61v{f}r*f|p#jprK4#3(#IN#1*GnFe>OZ^)Z+nXn= zTV@OnRU<9U@2>EO@?eGe8CukZh->(LD?S+oc3x<&KR=!a0N*THgNeT^Ru~4m{mPZd zqQFc5{+}kz{hzbp;zz3>#Kw1il-Y?mser?_=euoXPi-g``g-k|jgX|_ksceF56jZt zFYZ@rUr-*5RU;AB`&%7A?EQ3{fMN{O-H#=;ejF0MSkM}G<#}V+X(SBL6j2ia{HNDa z^tpA%wrUOtYA^0$3S3sGE%#Y6{!=Oiv<gN1m1nVShppFBz5G?Or0!J;=~d!kjGWNF z<4S_16mAO+Zw+DN?0F9MAsT2Ap9lXfC==B;X{crv9)mr=_O!KB_2nne?1DMwh$_zZ zMHH7c7Jc#9{xK<5%Om0Eb3G4FyZ|2GyCfU}fJ@t1i~RHrN|zicK!Yu524G~I4@k$c z(3GEcC!7DiT;1(i3?rw<Xn21o)p<qLau9i0LGP!s1Mhl@{mr(c*R7Y`oQczIcL)S` z!GLNs+w1?)P7@lxckTc_Q!C@{EMG%Z;tb~a6L7Btw-)_OY>^JtaiAy9e$&2Ke_QUZ zsIw>t;KTkwR>?So6<z6lZHFCwceUYKOGiO`@wXT7Ht8Botkgld7(zzcU&Oj!4ZIJo zf2P@L9cC(0(X*zCMiD+irtN*P|NY!$tOj7ct`n74?qq*2#q>5lG4k5=ylpw3vl^C@ zVY80psqdD|nx(n5!N|X>W0!#gm`u^K^68cXm-Po`->iNBmSx_G;S}gp*Bvb+v3BM( z4Sw?z>bB(mDJqJ8BUvs(Qw$)H9%^2aR!6E^R=HoTCuw-s9QTkDbGAw&$yt?^q$k1q zL(I-hhxNR5O|HFo&#Nc#Ai;l(>k1I{G~dEG8Viu5H|W2gJ|LC)ACQ?R59HD0LuAHq z1C%8c@;R&Ai9bR--o<>^`Vg}%B*tJ~`^zd7=S96I%M;FvCbt+vdz*RXC;-cYjB;zv zRr;8Df3vBv68IrSnTJ%ozxis=uB^NhN3>b!BsRK4smf!Jp_VtpX^4M452Ex60PuQa zEmKXErL3h)M{qtt&VRN4T6w4Idy5#L^4#Ml%6482pX)Cpy<MkZxK%XUYuL<id9MFc zz|f@L2T|N|Tso{Qa<%4oceOcvw`2@aw1l^93LmoAd5ov+?4m1w6_4~#;Mcr0Hf|)E zM|z%(%1jgU(<xi`d^St}1W;f$6CPNzz!K!o=55&B9JsX=Bm16=vD>*1Wcy55pA1>` zVtlI+T%Dv2*GUs|H4A445P)r3dr0HE@bGuLhY!Hz2LSKn@C-m?F3vpu&gqri48Us3 z@j#sJF!`cPZf)(#ky_;yW1<kAb9H4Uq2n$Ob5`C7%iz#J@1=i;Tx`KT70J(Mpu8?l z->U)3zv=XJoU90_%Ck<N>wOLMm^wrF0Z8TinfBuK+;pqDhI-krl`sMRTCLNOV38UX z=8&W-hOP+LH!EGQR*a}lllk#LW|`iu-S3-#G1WU8Z;W#r`Pe!6N1_Ky3b^G{vI%W` z8r~Uv{B5Is$F3{%u1<;`^vCIu)ANNf3NpzQ^T)S?t=rdbt*7bV)Ae6d0a^)isCt5Q z;x96P9t&UVK3pF5x@dy4QzJ)$!%BOId?mRDr$~X~yC*>+bMBkz#W)EVZwE#P!nIB3 z(!0Ce796RK-Rc$`2LKj8X)aNLNNL+Jcr`*mdBe=Qe$jPu_;O)WM1x+@deR-hv<iT< zE8k5*`<X%^EX+Ue^-Z3V_iWv-fkX?H{PGw7k(vR3r+wwlh6Nv5fGz&YAB#(Xw5l5= zd_L1SDZPeP<=<H`sji(M2)`P7YwVKgeO{<MXb}s-MDdp@7z2r3!BUmeDt>LYKgB6o z8}I^g?D#KK`uE|T-_7)jxDIupJEDaG>{AVVro-1)Yb1OtU5}MIwo-4Dbi*|ciQb}4 zUH%L{bHfKgSP2HR#h?`i$R<3{1G{*j7~pqXa?Xg<S+}~HJI4M=6!W|LYv#2=kjeZI z)d#9G5G6Y=hk?iX(YT<dy(;-yVGCa-`K7S~1$AGg=~OXSP$*<uMZ2Mm4}Zb-#bcD4 z2x+L-#_LQL&ab~Q`XA`63`**T#PhiW-_Gzq(P~M8e9x;h*-<H-M^sk2sMzu7WhfjZ z(~Xz5mE2y{|LSJn8MhCtMCt$!rCT3hD6eA2u-mq6ga7{01;F0VKL@;5ZEaZ(Nxib2 z1kPF+<<?H7A5zZ4fFC7d0u}P1=O;;T`@Siz7++nR{Fnj)WWt=&fc9aH;6V8Oha{1{ z10cdpv{X2+0{}~BO-^@N>~=}5nx{k7#a94rTu(W;4RB^}<H7tVee~he%D%|)My-nw z8KIoA2>W-jT-b8e(HNZo9!I#e$|mP63S;qGY%PL~SNK5Q?xFGzH_kh6{d()<Q!70* zGURwkQ9XKn-+tx+1&;8WX^@73S0$f45tmuyajpwLGxpvXL2H|W4}l#vq@<w=>eO!9 zo!NL|`EA;3+R{*GywsB6!EY|SQu9UQz~324l<1dY28v6J5!Z&bfVy>yyH=e7ldZb0 zZ*v(uaHgk(fVX8V9PgA?j2)3D((K&HEo6_E*IWa8oia|Lj(`n#Gdr9BPNNBpZ_Z=4 zG~65#EPAty_=3Nj$3)FU`@q8XR)7Or%tQach5>+ioqOV)Z9U3Tw_nqVgt|DU%`ce# zMJ#eo>KLQbueGF+IT*qld+|I!{>`Pn-TM4puQ-hdi4#0IgqgmdBg~%(i(_UcU^Ro* zbQ)B*f%2o9*tuKhflJDeJJ)`9+tIC@H~g81dTsz)y7G)0s0>h&x`==<C^6*^6IU}D zv()dfF?B#v_!<n{9K*Ma&+UARQx}1XCh8Q}jbJDQwl|$!TBX=4vM2^T-@`BIrxn1Z z+pis!CZ812G15z7#z9>L%WA%a-2zi4Q|-`CjtAdN4j6YEm;*HS>z&^<7eF9?Ww9c8 zwH;T@%$#$+qpPe6yZ*HrRUFHWZS4u*g~7W4BJ1M-Qc1iUHq`snH8!JU7^%Gm35cUS zn8xNC>J?K`7p<Qf(Krjd`<Zs;CKB~4`?dQaa=!Rl^Zjik_zJL5^`-l}3!tuk&E-0$ zmN^utigwL;4ag{`=|VbE9_SGfqi{y-g=r)-3{Kgyy=&_MN_)`!-$y02?3p0A-UQDt z0NW1s2PN9w0b1VRos35N)Z74Zk2NECmAhRx!y+;;2K6Mc(=yJoc<4c*a__;bU5`sT zW`4>aTmzu{&j4oJZo;i&PVr8?HFOjLkmu=;-2@*@$%V5PPs{_A>mzQ2+|k~QVSV;r zkRLNXLH?Sj^YB-SJG-z(Nbr^4H1pt&z<V0*5^+Hf@p2$v1W^c>wlr~+6#EqlsRIv@ zPG!z3F<YJ$V=0%}=2vN5u;#zo4t#(kUTL)UAp{CR>~V3agS&YtriB42F~<Xde7Avm z|48G9Am93U=ACoo`MVq%38AIYi@JASfP9KK-zR5r(ct5oTr9ek2akDBRH|*~%kR() z17hOT8#+pAyIDuh7!42l^hr>C7)Y@o5n0YZvR)j)E*>4yRXv0%xQ%8&hmqv78=-2( zBmBbrDH+haeY?=RpP&dk0SRBhWC0k&Cy!~>?pCp!93JAesXiMggCcVD4QIk8-Mt59 ze1`Z?<39v2>RDnkN_hGd0Vg_{pR3h*uywjn^!mjQ*cFg{!nOxUYmHwztl&xwZ9EY3 zhsFOf^+O@rODBoNxRe<qt0nP(eaIlt1<%7pk3*G9qJ1TyA@~kl?8|WqALkmFhIqH* zxN=`D0yjk`J4~zqDFgM+oqu(WJKFtE$q+a;(`%j-#PkX9B@9Z9=E_56w~@?7e-#R# z-?);Pf560ytF$|^EzF=Jq)5SGFzLOB8Ncl>TDlkItz}<)CS6QcU8dP~%Ww0yVpVJH zuuJlLYhTwknn9ZZT>oGQMD@{zT`^6&F5n$sFkJOw;?nQ|`O>2T^oG3IbU@6y!KpuW zy%!PdI2!jBQSQ}giB&^dR`In{A<xff2Q8e&fyH>1C422r8A70KV(n(Y#?f|jQaJMU z^7Eop28}|qY4x1^JMzcl`{B}1pc{f6i|zyGd*Dk(k;HPSxrOp19$~Ieb)iwc?v;Bp z-rte0MNty-LZ5n1r-7r4Ly<J){fI-aq9HHbFBzWY7-MTYR^^;+0vBP9E3-)n-fnYw zdsXWw>pwe%QbaYXciROhrY_Ilfd7kfr-cFo<LRt*6Tn2Qr`fH#A>hyImr2b>Ws46j zO^X*{`8#axe196->)tutt!pHy4Y$!{n11LVoNoR+>rm}7V7l8|iBp;Gs{)kx;JzZb zSp=?E+!>fi%e~fFchy`d=ypdmjK%rnB!RHC(o5~@h3D;Gf$LHgk1lJ(xTR?4p{65t zCPKUt_-!18z#{si>s?r>h%A)N#EwJfGjcw=GlT~Z#H3yqYvRkPL(OI)yWP&gICsi9 zurur;=9=!b{b@b0nuDe7^44TMo<{kgZeYVClSbKf&bp=Q_h7J02BxDv9w@}M3-%Du zBfu%Xe5JhnBh;i0Rddc4{%_yx5BZBV(D9HNy8%hleOVJNMU+)pQ})fCTT&utroC&! zD<Uh&x}|&9`NWobc)<dLx+RJ#2!Oo$!a2;bfO}mOQSpxDiU%zI03_oq&jY*%v`J{` zU#`Hmx$Tn?`S8H<*T`SNi~cGpOyMfVDxhczToyf5xf8+#l3|n%o=Ux+Pn)V56X~5y ztcUpz{)7(%xB5!+Z|@BZxL1-nC#3_=3J&X}__uhqleDcH4@RW19Q6U&ztFhjdiITI zeU4EHTlj1QDJgz9)O+%=4%q!#3);cN2OqkFxB}fGBJ9(#LRi=4Y6MyHfGt~Uz@8F5 z2;<oSovD+zWZfO@O=S7q3iJe7p7DjFc_p=KRKO~+lj@hoRoc8Ad80e74gNQl<$RLW zhEHaAf@aVvz+vH{{FmB<&_^-<>v8cIl|ltu=%~F4NLZ##FK;K*luKi&C?0KQ0>>^m z1;MQxCW3%+$<=`J+4?!?fiNbTZzU^GF;4qNq)m^URg_rAUGZwEoP$|ZXusnmcbxN8 z(#`Q)h3pTZOYHf?>jjVEs_8oN1jT7>EAt<y{1rg&pYN=`Bz}J1X+@%vY?{5WlyPq! zw$!>u{=~r63dJu`uhjqDT>7WK$(N!i54PIVHecS<s=;x)`gYx_4P4)R)u*TKYXotb zeszE8r=5g)&|)LRU~EqgXhOt*q}M!v#DupeQtWv2(FT9~&^2yPF=ZJZ)~RBndVF&B zING)*L97P$(1D-|F{M3CNTkfLEZMw_Wmm8~Or_C$e|Mea4ftnSZuu2s+2xGnjyP~i zav4-rV(eQwp2C0!o}pwOtRYF~)9{<Cz3Aarz0zGUDc@g>Wp~!~$BpX-*VcLmmDfZj z)ijEGVpNGJ|0XTL+D0Ad_mnCcXbIy8G(<_%yGKsDn2eqq!`rr`I3LW={A%$PTHfO4 z=TV{eMlryq!1$)=c5c_MK$S@b_=)+}<6=iC3dy!B6sv@!#lxve9kaA-EWnd9zhS*c zUGr~Q%%EEtZH@Z`(P-KEl(2PlxdiOTb47C0wpeny2tYtGaX0~5{d%!T51<A;hF}|M zcDfIg<M;<~-}(dDKl|sf`;gO415HT64+X%S8RsBs>Oh1TPkL<uNd2{#g?ssO^B0$W zto1&EVHP-eyV=nYYUTKwP(vo!n#HYQa$~)<ez9?{VKB%gJPL9UOgZzDFn|JZ@rm`m z8d}>#!IuiU*o|%#T)vwRuzmLfr%WKQ%I%Jr6xhwBn>_L+4X1dp>CZjbDF&k&GV#0a zmHJL=p__?r-lr2DJur3h#pdR%ti=IuJKz!=(*RmB0De@*2=4kcQ^=sT=9GE;Wzo>7 zS8%D)x_Xe;1jxQh@fgqNmjI9~hxjKQGwo;@gaB6p{)~Mm*6xdlqfbMD*AIwKe-*K2 zHWNS&EI@><0z?jNh04kUB1e}Sa8e9^bG69m%ho2ed15%Z>6x!f5>3-uXN`+mv)_t9 zS@&D4XG1-x{S+zmnU4w&tV6ce&g8&DX?b<c^=vCzh{Bab;Ods^+1LT5gegxOkcvGx ztyWi(y+h81A}?Vgn>)mOK4Ca`-nLoE{q9>+LfewnSFU%`5AJHHAt-|=fXf}|Tkt@J zDWCAdrOHvB(lm;cbDc>w@;d~m(+G5dy7ig50Q;+lolz9fXvgsncW?Yde+v=IufRGK zqox80ikL~;?RhaCYlhrP#{Zjq%N)4o-%ji3wR-not*_o+r#a3&_hsJHb9Gq^tG>V{ zPm<ZMmw;MS8O-`XT&&_@3JQN{P<erjWg9Nb{5BLKyVd=}PGT<oN3R#Z{C}bxqDuKZ z>x;Rv#z(9}+68M^zl95zX5?=iU2Wb?maUhcFIbv0Jvau_^?UnS6TB0Oz}|=UH;yMT z5ROgEKKS8?V%BL`cwisM@jQk?We74IdPory`qy6HOOQ$vp*H+O(z8G_n0}xiQx#jZ zBalIuyKUgm;{w+43`}sTCQz|DUzqg8-G={aZ=hebO{n~4Q`uLqta$@j<!aqM>z1!L zptodM?RcTX$Ej^w;rf{~N7*#>pY8s6+0tA_4LE%y9<0sm!8fI3z2Tq6tP*?(C-*1( zN=<*mPDI6^UPoK6`^k=9rl<4jl?$C_G{t-FSFVqs04ISjQ*R8Q51oOao@QRViCwVE z^FhN2Hp-dqcP@AC0+{C!7-ejFFFMw?)Hs=YZ#Pz|mItTV>gNnwPG;H`Di`=eAcIqS z#U<|5;4Nb!i<qZ?(Xc)GBd;L_WQ3po_KBK?0OKNk@|HFU>%Vbrdb~Vl+0>!xg1N67 zi3(M7EbKL}d#qbrAAYGv$FUN_2X)544tvRfdG$1U_S887ld+j*lj|P)rt?yBGl6An zt%J3UMf7T)u~KUD&q=r_HHznjPCfI*f=#$%J`mmN7l2@Wo|=o}Px&!a4BHwX6cE#Y zXzCB#8N3!_Dc_c%*;f*!gWO)wGy#@+d2vN328EKSmcv6rAj%Y{^Hob)e5_42wLb1A zi*|%~<=U7wz(1A9hEeyBK8&itt*71=7?mBIO?nU*73Rmy3^O5j@X*_aY^ePd<GN>? zK%3Y3B|HIxqpcBqiHLPu$i5leuP+U*w!s|*Im!NWJRAPTOHYCC`+&XiAiIXFI>$rO z|19vX`KHKf0KKiLMr82tb#KNe-Y;g6Rhv`fi2;X=Y7M&_X*mD?L&|?@z|Wd_Icm2< z|43Q*FwCD}mOdlvwBBu|Y(Ws)*l7qhXjp#yW$d4oG|;46yaPlQAJ9M(<7&oHP`cpx zKS55E^Ln**{c?usCK58tni(wx1%hVrg6VwZU5yTyPA~WegHjMJ1RnhsIBJh@xrne? z2fWC9+2{DMA5WW@D~9;Toj99{pssh+uN)lD$~l=ex|gl%XKiyG;q%ry=S}OT>r;So zUgiCh)v1^>qLnWcGTC&$Iftwfbds_)S>k&*PT;xocDKL<i3;3yoD9+^wVsVv4<wS8 z>6|Yu5!~A1-Sz#HAP0`}Rm@L<9i)M|I2@!OmulmKR_FP`RjZx#iJwk3Y`X7}5>NNy z_^#$T4V2T(b!DtvFS_n}gx&t!E!CL{ZQF$WXIrSFlh;5W6!pWqOsn1TgFl1~3GVR! zQJD2^4P7;#qg_!vklyVTzf0N?rER6dRg<@CNdC1APtD^8pTXoyVg~ehBi&pgg*O6S zPg=dJN#4q%x^k<ef6j0~vEJ@(Be!K<-`OqW#5P=oemy%%A=dr;de*F0(a>`!Q7pq+ zZR+!>snb%<xaFINgO<E($YHe<Ft1s<#Aykd{h=L3)PGyARnDixx67#~i(sq$0?06@ zUUWAU*x1?5@_EIz-G=Y?>n+fQLXHoAmn@e&I39KT^={vX1)7w938-)5ovRP5b{eiy z)_9IQ>HT`u)Kc~fiF6z#)JWn?w|8Y!qA;jBCE87Dn|Hf*%>Q~;@mk5&1JaOgHD<H? zPkA`RuiSYbdP<SkoXiCQx*XKCbNufF2oTxfwvWv1Ni&Vo3S!`NptMf2e1WBIOUV4t zW?)IsTBznRkkS5sc_I6ZbBs)f-_$!S2vL#K6}gPB{z^xn^+uYHWueoDoL5Ht7gfar zyg>8~;dP(z5sY74eR++w>NoTJuOeOJdQjt>=a?)g0r1lGdq9&j#!$%b+XT2$G+@%> zM)4X8B)}OiUypHI+yB@eRT~YFQ!7<8-JN<26P>c_qGf>NH2CFtE8b(zd9bI=e~%BY zZZ#jSjWpecXVf`DA(i{7QiYlV72!{IU!~|0|LN<-JMr*{Vd~9rS9OSjIZ&?Tc^;GD zSymm)SxtOOZ|YsW!(Ol|u0lxfI&-E>Z~mwG{?4_nz!}?Q<MrmkC7}61wo*&r|1@96 z{UKc{?>b+$%XHMe@`1XnsCEI{c=v|k()w4P-QzAn|379}7Pn2kvKMDG^s9h^GOD+p zZVdtb>Nu2eTmvOvi6Pj8I*%j8Qo#*(qYjq0!WT1DR6QHkkneK;d==4)#YxUgz#Q5{ z^g@X87eAxD)KH@OPy67$o6j9iet@0!=kuX@QT(?#WG0TlLn|Q2w3^Hsr7bI80vpzw zYhEkxBf#CE_{HfdhCi&n_#0K?yr)gz#Za7OA@CX^-id=#6b$UvA#mLfO8gfm9(}uY z<mGCzu@50;f$jY7!W%k8s6o|GDjz#}X|?Gr=g`|(mjMLv+PfKBjDMSWXT1L5>WA1f zo0Txl3v6uOFsMgg{5w27KD>4^irqZzy)W|ug+Qq9H{u+F!P8v^h=+7&mc4EtQywr} z38pq`s|Ul~Js_R$2Mo7Pr<$1%FkDsr(%@DBw5hwl^u7*CE&@Kj+tjT54_U;NcL#9q za!Pj4I7P<CVzspQ(<JgM|4Ua|>~EA)MgL^mInsZKO54uDB(s#3=>YV8iYIQn>|Xyo z?4i#8aH%v1wBoA*`Z!`Y0{rH|S&`k6>V8h2<M67}A;Baa*ICB*-6X`v{crezjre~% zz<=J^)PLbb*J<d7M#3<~#e4|3A?sfNiW0QZx)Z3wfirp~r5hQTX<9bk)Ql^!-e<NP zK8nd{z4QIDiF5$2=^_JGw`f{I{jz4PBG@HQuUVwALMyXWA?9zU%<&`JZgPJX;bD;F z<~+$cTN0#@Y3N5R9sa!+(WCfcf9`r=JMd?ZT*uYU&2>XClTYw)aPxX;lM-zI&Z6+g z&z~Q(waMAP{EDIa`uB0Fpc{uUaL}uBLU?{YKY8JK<TosLx4-jq&C^u+9frB?*X8FP zz|AW9u+zpLRgi^#mQx{o4yO0zOUaXzvomKhuszN4HGW_6)n0|DE3ML=kx{oYgP%+J zr)BR^mQ584VH+W>>@x*dpktE@@+jsV*^s{_ng|o(uzQZt;3e@8DF|+y=J)2?6YC4l z%^6XqmPhI#1lM0-Ah;BbsAwiOmC$>jrSQj(AM^Ski%o9hV?X3Sy<_Wwxp70>h9uwJ z45fV4yyX;bqwfkmF4g@55k9p3lb^tb*;HSUxSII2(OHs5af?{_7N2g9%Fp$XxhqsB zWbG+E9Zgp#Ua8>?H@btN7kPtIAbxuzj$#ax`Rgx3F28X<NZ1@LpLqE5cv}zSmZ3-G zU<5G~+Vaz=cvWsauMme`cHnOS@A+=8Ed~<VcVg4himQ}s*kXgJJl^vt{jt(2kNk2I zHJ!!V6?JwKg$oMeQp^uvUgPk+*Y#Dv1EI?ASiHiR()(Q+(retM3cs{(f)lQEalASC z7K?|w($zP`eJ~RU<}R}l;^sluUkrXF=XAnKZgHG}KWCrk?@BnK;xv!`!e|j6twm{L zHdU3hazgM`L{5kQLcI}jT^@1!3x|~_epRm~r>E6yY}h9!CJLt6+1YEp9vcEzxk+0Y zo(Fg<l0$gGXd!S1wAdf&Bd3DmP!f38^G}Lr<+U=u2p#w-Ijpj_1Ms(ZMhoBYum_E; z0t0G&ZW72r3oM<yJ**#21AOpJe}Uib3SZia8lUs=cO2NUAjc>W8(*VI+WF|{u7on& zk7<CoN>PAD7#h3{=?Fr(QYshY^dnr!yWaF`vwb`ry|H1cRiXcQFjG|TjnWN5(*F2Y z_u((JWSGYEe}gJWMnle9;(|=#HD<d=t6R3`xGhQsiAoJgJ!NP}LFX~C7g&*gz#{WT z8=!)^LJbsGW53Bhn)lY!<{!_iD~w#4hbj-8ClsZm^h~+FFclkMmHA<BX+^!0L?VkG zn_U!uJ&=59J&K|K9ekX^uh3>htE6Bjo=M?%NtxMxP@TSWMM<mVWs05e2JHoomslMw z5ZR96vqRmTaob1-i#J^Ssd2fTd$uwm1WhA-sM6B!LI~)!dw&@btaSaVJMQXZ@Y@$C zVjdJ@8M<4oEt)(c!{(sLni`q=ZBZg@!8ZLkbKvc7qt~k+!<Q@cHzgaIMCf|q6A#02 zh)65Rjt1t2{MFZ#PEX^L@8nf-UYG<j{z~7f~O5e}93X6}JwU>Pm{-li-U~&cAEP z{j~<3ICzZaU`R}M)!v5&d@$Z6akB;lJk6UylJcx#DEr0oG~`ClvsZTVEo!<G8MrvF zDm$TdK|?&;l~4`6{=mw3jDblg`KK9ZERukyz^>e0Zi}Ja-uCc7TmC_MUEY_-`NTl* zF<*Go=2t*os4~^oQp1P9Z~b3<y>(dCQL{EocZwj*2BbTsrMo+&J7fa_(kYv61f)x( zL_iv(OC$y9lr8~5CFETjpYvVsd9QQ6|GW%bzgcVUnYrhlwE_;PIGz{0e!W#5mx`6} zqGkhUfkyRECCfC7a-6K;k_2D`E&T}vIU=n(jw^L9o;r-EH+z5{ITc}6*ziq@iF%-l zD6xC)^B}!qWfP8#uQMqN89KrBF!BcV6rsS2020kNLq}H-6bdr(zKz<>asJ5!ZTOO8 zWfbzv<bdf72vaXY!QS18;NLsnz*F=DZs^%Y3Ub4xCaRvN@Y%0{vMG*KK9+bsr_CN2 zfC~gn-i68dadF@m@{I}5LB_slsOx5QvJygNA}dp-yZ11r(*{loIUcEUOTRmheHtXG zYm@Y8j8k@boCz*^t%H(KDm_7v+#5@WY#ckOx!*8?i>$xY0p~T(5ZL;npSxH_c3?rR zP}%(MNc&EFX*|u3wcy6uP>B_4I_YKiy<2*un)5wFM@9vGxyx4Mj*lTV#i~d5&xej` zU{ZXtm#Y)-eRMb{^>zpQILl8>mWfh(RZHhzQuZNUbF*#Ff#Ha?s<5N~<JZ0{rU?PZ zb$eJ(n5h(tI$G2Ao9-;eO+J4u{S!rET@>`I8vlg9T7-LWAe)m>S@DSg-<?2^GJZio z@ToW|=EdstKhIlfS)%%}H-5<j)t35lL{*`>bNTKzZ6eUdFliYX;MD&HSfAvGTN#d+ z)F+^0?4e-+)TxXuwzv)Xn5o58oaS8&B3h<?M9X}JrSAry@=ELnS&!u+p^ZwU@rtp9 ze=(CE_9I3TDiKk>gWGPnX(y!J0~Z_?(_WQXiOBnXCHk*@^-$j59oF~-8fT}I967EY zI}LxUHc6z{X)jfhA^}{v+D3=~yA>hFv~LlBpFt^Y^N#p&$n9(n#}Shd)km|^(wY&L z;_AT)%%k56!WNQfSSVK446>T~Rw%e?(Pgxz34EE0XBSpT3}Kk*2yT2!;h((&=3IX- zhJQF$zIOyX!?Q*iln5aJqg4grV0l!U>^B+r9y*7H{s&rHl1F{#i(f5jT8QRPVgF_+ zFeqcn4IB3Xm`)%`n{0ufIZhcya|`e@PTx;UBF*VsqVagF`BGI28J3NB;GG>jm=%y> z!TY+&w@L3{q5as_{dJBmiF|mF5?9ctN8{}gsOY4Ez26V(jo=IV?vnQXxjj6J7?s$F zo1pZa%oSPQe)9_g=w!V}^<g|HAv_6Mx2{-9en^$$dRCt`|8O6&og4@LRA1g69a!lQ zf&RHq3|Logk97+^Lx^o%5}z`8%f}zzu2uHlS0=hEsT0izHoY?<PFt6(w=rE6%1$AE zFFPrslltTevj`r2th_48d;;zfN1i(CHx+=xTkHE%)l6gW<3^Z^@{0$G6rZZLO2Fjv zWvD3MJV{Lo5%D4Hp^0cL@Wznjrg%7}4>TrfDF95@;@HfBDj}%EJf0sEVKhHtE5&aj zVMR3jdLn)JLRFsfLM86IU~eJo=f`PnI}xOsKWFCaW$yRK=%-CbJut_27g=BzaKJZl zlxK|;?xD)%de(FPY^BK9?{DmF!<Jz>tBicsSjQtAF|!Pp6O0I<4^eUL&mF+d@HD){ z5fuW6<xHN4GrEdwX!AxA<1%)+zv0Y6*!4S}NVI8K>K9vKgS^zD*6)wyqO=r~PDQ?Z zZADDLaeNOe<%|j*E_2Y$q`Fpb)eX4$&VBx!;zoxTIuu9SZegFyJ(3!C3_QV;KU2Kw z1zWT8bbU(pyF>P`;HU;Lasn9yl!<NV_1cYah;6lj)5Zg;(TW>eIZoFvm1RzDQUS*y zzS#mLPt=a{C2x%|NF3kcZJ;zQ_Ull9Xkz&w-}%4p0sw*T;lk`{4FS_^(+8%6iTv9H zrXT!Qf*0^)WuVdcWgzwudwC%Mab_gcRz@H7@uK{?f#_m67?A?T@Xjk)uppW2{vYAs z6#roKI6$}+4v}jde#SXzG#+zG<HDl3z*v}L<Z-d9+v=nn^B^qV_SArl!w<2FfJwiu z)+Z7Cppy;P^o~FEs~=);&4lsp6F4>uzu@JR1-o>|vz_;zMh7JsbS(idIb(ZQ1gt}P zy8&Jj&>3~Z;7BN2NgAvQPg&%TDGNWL)eZ?dZeI4%xU!Wn_^UXW1QF*7NiFd(#RUnm zq}EWp8F<mYWZZlnr|Xm5!?rkeAL_AwW-LV$FlF#p4&slP-zE%(3hd(D?+Kc~?2}$r zo8*8#x%V|fs!_@ZEM@itw<ll!MvRFhfCxrO`#7KC0X%{^lJw#$gWY*ERE_-e8$x43 z+jbhXZT-nCRWaAEbj_E6Y`AN6IrF_Kj!xc4@#=~7l#XFU3il_o`YFq&g-imbAX~R4 zs;W;{R85Eub+~)*WFyYC&zcxl`QhdBCC48QFOmBdUQK|@`zKv>u7xR^37GI`Q;6eW zz(3?0VonDigVfjc`xxPsGlG8va_F+0z|XM(v4yVc%bsSFv7d*sSCcJSU%6<*9vDJq zV`A?^5;4b7t~J;_Q6UpouD|;}Rdx#YiT7Ty!S2^-#MM-lC-}keFNJfWR*)Y3MFLi_ z3F9x@v&YlxA^)(>LKf~8MS5{h8Nqs=)B7Y$&>$NMUA({aJh0@Pp6}nVPmixo`@#`r zkE>L4F!)x-W!&Pk*QD^Z>3yapOu_JH(FhKlBrHbbB#6O3MH>fCp1=Qh1jVs6M*@EM z=I-<UKDihyZ!XKyw(_6CXSAEhQ3|BOGldaF5e#F=!_OhTasO}lm;4s=*ul7E2#F+c z0U3mzV8av?4=IC&xs>aY(!k7%PA1&pa^i8eAain=4Fds+RdwrqCT}>iAd6vPdEOg^ zKfTi7&%()>@PLSjMO-|Wj-I|Pa7{YLi$eO-Qpl&@RG;{3#-tA5`{NbDJ7fY;pKx_Y z#@_i<&tje~VBZ%t9WVC5YdQias`%kXAFXU%7$F>nVfs9OGvT>&{F1PAFs6mcg6OV; z9R1Pg`!YS@t%k(5J<4s5+_eyDer}eSV~MA+1Gbk%&j@LiAI|2IQaGC2JB@r@lK)`X zst>5#I&Lo)f1Z8jnjT7~ciiZU_5%7roz>0+dpxRmw8iIcZe^(0BojA(&K+0UU;bPR z$JaJABt=C>7rnY7%XjYfmXbm|ny-(ltE+S93PF6>b<}m5)GvbZJ9hO$LVv5zV|b)U zJ+|B*ejY9~ucxWz?5XjBQdZwhU;1%iu&Kz?DavExwv6!Fr|xSAxD<kM+B!PvT*l4r zwBq1_Mt+}TQ@`)Y3a#JSDDk@biT!?rKu7C-3nPJ&=?~^af3Je1j*-zjJ0^NMy055Q z{QSB|-#9lMf4(>3331&ayUb`LV(l%-kh8!xq>}hlr$xv>AS^n7qD*X`$KU8ZQJdzF zJ@@{RnJ{a5ou5L*1FBeoDdEkB_qnn#GM&n;mcD*j&6auatpJBfW8Brnfx=FXC!U%A z(Z~H4KKT0J!{~PNSDT7fPc>9Te7@dC#hu#oeq#t>BXwob$EcCL;v=~TAtwS2ZZlEF zbQ*Z6$5^Mq1qbg(l8tMeASe`Qi3&fiN3YFf6zaZf@XjgFcjH>>E>Yr3W&EhNB=ELV zE`7`8OJ$K+q=0H3KMOB|5O+vVGbIx*JB)LiQ)C*AaSHa8G-lI<sFLe`cV`<!T;k_D z6QBOgJUc&s*Vvd*R8&+ReD_y6$8h?4nJ{bpHPtkNYf|WaC4yr`nQIv$G(S}Ir_ys| zcRIJ<DaFx2`Jq`ak!q%mM}y)(G=0Q(PZ@ZLOZ&y@w-hLGeTiCLgxKL*yjc_}uW8Bk z=Hm(D6eeEMZ_b`pJ}?oPn{VQa?jh67G1LAci-nQyz^F1IV6T|(knTE_FK0Qu>8I`D z3$sPFbk!ieFVIaQs!qv29b{*dFMM=<bPI$mdgzf9=~q{NrJi(TOtZE1Mu|O#L4#Gz z*G^0KRyH^4Jq?n|soHc&O;^nc_;4-s@khzmp$5{{vmD)47aN)=3g9gNv)2Gy6Zl0w z!*qf^p?p_x_8i<|>zBbrn{L)q{fb^XOsM#ACa+&4+Y|~JWA7hALh>Q2+R)>OuM_`( z9y(^T@EkRZLQhZc>({Tcpbkbcr=X@*54`$WI5%h5R#f@o#S2|Cv+7Q4B;-|WobTs} zDzvn7<TNzz_dCMF!g44ynVc<M2*Q^?1%Db5>HeLPl2YE>Y<Q#rOI7bmO%zKAxiksO zz~%QX2qmDRst&@ZUTrz-I>6Y4Lq)qA+FKu(>WZFfwxsOc=fG0dN*^zI_Ebg|R+Vp) zuK@l<Bn7xB!ojq}2<Is?h$+wMn(!t@5!rLj?P_|>YI!u0nI<?LcaDX33&K&CJs_9a zBd$Mrg+JTii2h|C<5q%Ul`@ZsVcPSeepi;nXRFN4dHE09a-x$vK9N&UuyAoDdLJ(- z9ejIlu*FqcTFM$rPfs6S({?OE{=|(Emr^LnZ#PE=!YlZErK+>-`KpAIgM(%SHb#6F zpZ(O&y=fK(2DxR)1&Z+c69Zjc=5Bp4jZE&)AEHq!Ab^h1F(15qfXH`ErLkc(<9ZK} zan7y;Oy+!!XBR<1KlrRlPH#7MQ`Q4_!)TT8&^h~}Wnea_1_WKI#7O0vgNc>83z?au zJ*YNANwjH6NoylzB4!4_xa-OIM{viZvS7bzG(w&eoaL9o96Lj{{h27Bkd~o@{Rthh zo}aS=(eVK>i7JnHII{$AT1ruGd9W1<!`VR|ZD^2O##~<Oy^}R!%m>HEC5NNqPc^zO zI!u?T#r&4s9?IY_(JdRM@>!AszoV1u>=I2x@EF1YnP~Oe)0VS>)XIJ%8*SY5Bw&P? z+KuO_fq!3?ltducX(4`iGEpc~@say)V^c^w8IKi8=o$+vYtgvGwW{l8wsVcv6(dX( zo<!!gpQxdX?)$VyC#PSQ?)ZScu8CZ?%QzNS|17j<Bk=kV;_2g|FZP8xLv{y$|HvIg z9ia$CeRovEQT~p<R|gGl%OWGg!&*m|1Bo;mKz>URPcAT$uJ)o8q;R=C^fU`nAQFmp z8UA#wN2{F>kcu9g>R@2qL@5<!?r*WxHWvwYf4)!T86$>?btv^4KUV!gh+MVPUF}aK zLy+%p+FoNSdr3-!h)KPXL;35_h8>KD)K3iskwej>$*uI)ihm*yY!kJDr8v%38Kq@q zz2h~^;4-fnB1}8I**Ex9q{7)E8{J$KhkogI+_Ll4=d_h?1EmCe0g)bidv~%p4KQTN zA(A;3MRuD5@u2J^*L`-4gIIq>m5*q5M)jXFqYH#}C!A$m!kxxG&C+Uuxvz7F<{3LM z$NwwmYKuS!V@6TNXdn6fS?>#9+VS&Gw}5msmDbk31d`GmUnIRvx9K?GI(|?!qTAPt z-=*4dT+g+eDeZlo_|5ubPON!14BH;V?3Mg}yV^x}@TuRYV${a=ovRBA6~-UK*Ft`< zddVa$pUzn)65h0mZ`fR49{mIg8)iCW6l_>3pnWxx>4&UXn3)TL@2*!HoMu>C_sZVr z&SLT^fRuq)D=dygwa!aE+oEJhh)md{WF$n2g)qXBXS=G3y(frU{*cD_0mNRjhtF$Q zGkw`(J2~&qqs!QHc~Kvir~MbjEiFcbqWDj5YU$kI1nvHOJyT1?OcClLDHCJn#4S2L zfnp<>SmX8UZ`-m6I}d_HYx(MGlAs*qOxq2me8sahR1>DsmsE$i8;>Cn$)LqCgx#$d zN#B}bZF}tVCL>!D=?{s?Rr$~ue$Xc~{z~)_B0n<5L!u$Vt@UwosyI`i3HX61{(CL_ zze4%f@5psrfh|AR5H~Yzd6<zfEZlkZ^z|zsX!VliG9(*)1!(8>mYC2DbF?S)(5bHr zQs^oNyEDWs4SyVn^*kQsde%SK?I~2^kIdIfp^ue7GDe7{$Vf?fz%T;HSPA{H_E=Rs zo0kPg@2R0-?l=r0z<=1~WMwCQtoQEiSH3U%U_DszWz$nE2v~di&GXK8{MrRCJOGX9 z-Qwl5HIg2I4kMZ)eZs_yE<Jz)OKWZxYW>lJ?Kluerfh&}#Fxv_EFZ!=Mg7~v#9cxP z;&Zyu|8q)(YcetT#=3PU&p!>Jy0V+wy{j>qCp@~ep@ILR>-T*|wAPNejwVVkN{&Jn zL<1SN`9O_S`-EB{fl}+2MD3INN~uAhra%9P<E<?^tAo83RevqxQrw|Xc8>^?HJ=qF z9>|l5Z65w=t9=6FO)A+vdo`;3TLsQSu&^N@3Sn{|VK{(z?|894!>UOD_*i^;NJtlP z3AOeV;gIAJwHeK0cY&}MOHa|}D5!)+r<Ox*g|{+hDvgp*DbASRHarXUxNY`ob+kge zu;fVH&FjqVaQ~FP)Fg-UzP5#c>A1TA_+U5vk5{uppksk8aNs?oXE6DFI8`sYMi8m$ z*8s)yi71+&@;XELL~1pln8nw7P3=l$ke56hGfYZA1rbQ94y7P5ojwKcBpR4PBk7<M z!-JDwSQ-73y2F(6K=xOTN#iQEz(bcO<v0NZ7|0hP^0Ad<OmmElQ9R+hQnOgpDXv9@ zuDSL{?V-7+<nty%=6$oXA3hu<cMTX?JYN#)UCB;JJ@PwSAjRl1W;-`=w1!epy>ok; zsYw#0hF7*8-OXS7+S6>+!m}@<c{Or8v_opinr=Pa;8|hYNv8?mG%^=IYK5H2@3U$T zy4PdS_tyTll&Qjf_g;}E;#|TX5itw_6+eJxvBy8NquVDbBO;5+6!J3%F;l2yl}`Lo z_iF+sdwTZZYa~$31%$SqTskstpp3PLqguQUEdJSfW<e(4af#Wwy~Hh%3kpefS}DYb z5&FV)yYTdilie(+9vIm$9Od`#%|y&CHgKS7rg&vu;%p!<Zh>b|@dK~+-m>C_3LR<$ zoe`zGTDGbCJPYSX+?ynZ8ulp?^vWqf#N5w|ITmoaH^`Ep@GeW@F#!{-RB{&LE!|c9 z=&9rNYkN<+g4`#yd_hdi29GxSavHttzLG=3oH1*nnPvJSa&8)PrN*xhAhX8a4Oz2~ z8YVt0;KiJfDe6o~I~YoH+x81<<bWQ_r-{S(>x1{5S219w>glAJ&oV<_^e?r=TXDKw zDRRO(2~7o@okTJ+(@`zto7<CM^BII+d(%6jqP?gHp+g|koB8#DBL^}(JnUq*2TG8) zU?NBX^{F2pmvl}5y7tRn1bAtVK<^91u%lB~w-C&hvoJS-W=gDRm3XNaxbnJMAbp{X z<IVLYhGDu|-JyW8O+wJ@PYEy~5etkVDf?!(IFVJ#aJ0_R@pI#~jQ+?@esB%1Oo5We z-R-Z+Xo|%bt>>+xeV8?bFdu@|HL{(g#x=er3=ZQ47<jpS^_|6U@b+v=w&YZ-f5XY1 z_~tg&qRb^$D@N(tw`@4Fo3i*Eo}Z#TF;K`3<5n@pUM`smj|B1l(z-s`wR|p?l>W-U z3K1ENpl-QDcQA7Y<w3;CvbJLW2}kkLnS5RjR`KVkU)#L7hUD3ld+rkpA1SZQhP)#> zQd3fNwR;q30!wZR)AofTCNtRzbkRNzXUa)kq6f`Ev?XC7zng(_P$QM5Q6Yrf)bvMT zQlkB6O^A3u^3khx49)RKH{m&T7ndq0afdcsT6LGnq;K+42%(i}`=tHkc{J#Ut{K|7 zXICU6?_EmZ+`@aIgOb}mCGy2532xa*>b=@l%*6)HJBWOLsMj_vJXvO-iL_LNOw6wl zp=Y1X|7!2WKvGN0KLu4R#vfrwW(R<d9%~-LhcKM<&cN%1nyKn<Fe8E!$sLpkG-d8W zp0&{;TXcsfPa9XeTOuedyl}#V*b|=rz4^0Dr!Gr5OJeEVInaXg30YdB&$8Olda-!w zW^8_=Ryu9I$R_98kkFrR3)Vj|H8iQ-Ih1ssu6r$K>JmT4RZs8`(u^1CzHO)$Vh=jN ze#H3@Y8Zt<?i<<OF4lujHXs**%u|;u>N8dOzEk;;se7o|21+$5ZRh22+X-vk7Qidr ziyp;K{nyU3Ra)SRx`8;YQF0_m3Ecwc@nd!Ol)R3Rb}7m8jaaS<bh~iPC-K^J_FVc4 z!-+qiIY2DX9M-x*_pggyLIpRr?@X|h#u?QmaYX#bGHFonM8fK$iP8xB`ua#mR`%P! zt57cBzkjMNm470lE{g4xmN6{Hj&VJ0gv?CKo7T1q3n?kCH-OVf(1<k8d{H`eNnHmr zCKwApILT~{*f1h7Zu;1H9|9(3V!@3tPmEL48Y<(Q)4$gzl??~^!2MX6<#Q(WpoXK` zbSnsWneSw)Xir}ejz`oa?zwzIrqgKM_oC7$4%QhzStExvYmdB$vlm~|{`+Fa^2))4 zc1urSDr6<ui~hAtv9+c5RMxLLzv6GlRJ4ENzN6f9LW8TogB#DM^c3)giQ1zYbO;y~ z-^v{k?>hoXx=QJ9?EaVjWK5Z6QsTS|4|-ZwfwD11S5l1=>7DCh<K)5nPc;o%Kgf7B z+-0oVn!|-A)zy!RY}x`j3jS=;+$nN>y5SYSyE#{GsAlWKOu!5kRKGbqbOFaUv~kWE zg?}hJtmD*Ql7fd;o!!pnP46U<;oKsOFSvO?YOtieGktbj-`&6c0Ru+tuOvY~iKfA} z02`VZo0(q-B;9GHo+$k0mZInA9Gr91K^s~2d0Mif0r_m5MduyHzoy4vL>BSG*bX@m zZ0r56@02%XoxeE5Vokj!)PckYP83L0=-`8A)0!zoy;V_rF<{A5VTQ<A$ON}Cl5zT} zfH0i&7ywUa`i#;kyHS206@KvLWbVNwoT$!#sQ>LT!+yGCEGZ}OC4xOwnCN;+c#mi4 z<HR3rI49?9-IRbMUN-scNBjBMG=n+;7>`2!J`5wI|LSM(?B&*8gF!$-$Of3ltge`e zl>XcQ$Xu1reoV|d=NO_+kVZQ(McpVGVl92dGZ1a<cXK+JZikITZeaJkmdXYKVPoRq z(IS-n-C5h$=wPxVKuHOcoueok%F4=e+SWXDrJ`7*#ypHaKyiEJjvR3)L||8AO7GIN zQ}gYJ$xo9_g@ylPeo4##UfzX68Lk4Wqnx_1K+_9NE)upjUw5wTOfr>Tog(2ySw$lI z+Nj{LFP6^<N`42@Q#>F-2lLG2p$<{OfL$izS5ixxb5^Lb#Fa)dd%=Bh3Fe>@8C5e2 z7)@P%h3NMYz)+QNT^rzo9A?KA)@^1Q?eYQjf!E&B+Z_Af2<ajIK7$EVKsbR9GD6G= zjz%^3A<#sR0{wa95S&XMSgJwiSYf0IR(Vy8T)Om~gEAwoM!c4-Xu>P()u>fKZYCtv z4ejKD_fQjQ9`^wuXEh8qUvEF%7fm$I+~2Ln6sGyro0g#Uxb<Ln!TG&7GA;13Ikb^5 zh#PjYaZc4j5vnVJv5Xzg!#J+?AJVVufa2Ct@WDm75D5X7;dgmsnFZtV+Lny!h&T4t zR3&qZ#@@3D@@?uN5&g~_pSuh$XE`nPIAm?VEXjXNC=Yq#n<kKFfmE7XL1DsDGN_~+ z4{0rbPJp{htT+jBo2=>edT+JC3(8NP@rvlsum$Vi0wBZd@%4)w<5jPH@I(Gl=-d1t z<Mb|2u_=E<8i<Iw6rM%2yf_KIGf8HI*PIIun3$MORK>U9>X?vkTCXC$L7r*ZMVxQn zcj@~a(D>GTLB&|0B_{OvXhn%vT@0g+;t4M8-`5#i6W4Ff-+|UGpW4PQ=*>Ae&>WLe z{95L$w?845P=lq`Ykl~!3Tz1>a1TEPgAvNM9wBkfApg}9Mjr8MK;5gvCSljC=N&?8 z`Lq2dy%R%Xkez0#gqAgSp1h<vY%Wv4nIxV{R6o5(vH`cgGl8T*YG5?+aw5zsKtmJ? zEkrtq3PH;agIFAlxbQZHLns*3gyg>#UhS8S5K^DL{6!ej0VP89myw-t@O!lURC>N= z9%BuS{8HW>*<a>O*WxFrW+#*3;m0@?kAx4TMpCX6Ti;%2YRTYNxa>*c9*HxDVWvdD z2$U0XOA(>n{36NB$$`z^vvXW0$L<E6Q(nH}nm&wQ6$_XJsg?$)WV_Ipeo!FllTTty z>ZO%+<*#~t=BU`>=2dY&>N~+m#U1KHU<s?j3HWt&@ZP{ybeAs7!_ooP0cIIuEV}J8 z*ATir8acCbE&u#<MH%cu+QA!1P70(i6_F5#X7L8R1<UC7Mkye!5M=JCqa|SC;uKaq z0o~E*ukxFQ5qE>r^$r9FZypckWQ(1+Kz^hH^7vI!zr;bDQ1>C0ol&0e2Bx&yS;wyx z6(AkTa^fntwL-u{kydP5ZiW^=@RwOQKWbX7Ns?A$>a(95Mn}PJjHY;mQk%-CrrrHW zIRw(T?=Trgg2I`3@xiR23h@wJnwEJAuRhhsnHOuEPd<_`(>bHg^Rck7>>J8W3{zWe z2h;34bgQs<PGC!bEdS#KYu+yC;mr;P!9)mYWC!$1$SXp(xpoe;s*mI=UJWr4^G2%I z3Ey;{*%I-*F3L;}p+-zw77dg4j6eGR_mrPbAlu3xO$(N`+w4`>v*KG2Yx?qK%T-|U z0R<x}fI#BXNCq;dt0bf+zl}_3cxc0%8S>Uml5Jx~wN-=GvZI}uV1yR2n0S3iFiaAz zXQ~9LQJU-lViB6O%!%V4s70nNc+plpKjyywTP}WGLlO=;K1Mm!jW2SZ{17dIS_ypK zr@^nut!=T%+1<2m@F7eTzw1Xd1`L_wsM_JT*dUL;2npSEEVQg&*WE#A#z_9C?=G7I zaqt7WaAK&(YTz%H4U{8Pc;K&skV=POZJ=QF7!pv1@*}o{c^R0hx~EurWA&lzzoE@W zq3fS4BBU_pc4_OB&w-$l;=_8!viJsVH&8Zv4WZrPhPklbg(8>gZwvi+WST<}(ra8B zwX=1n^9seNwZ<ljFhl?PHpH=(vPL3Z(`i|g1ieZ9AeZ6FGAwm`SI4JPjvv-5${Nk3 zBm9m(b3{%1UzEstuh1^ZF>y<tsf{%{+6Ox$ve!{3bA+xw;iVLS8YUq~=j_tMFtIEe zZ9kJR&?SC?o;LwzNUlustAMbu(Ry^I#gDaa{+DMq7yi;p<8`*59fngFSPyjA{QCvn zJ0fulxZvG_O1wZj+Dhnc7Y}HS2agT4U12!D+rxoCTT-(PXQ!fUrE<h>=Oz67W%6Qr z$EcDde~pgVS<Yd^VB<r52^Kmc8~{NzLeAy|ETagzmE8UjaYUndh4o|eeZ!!pRD2`o zs%^^)Q3n!x!S_fdV6eXZM;KPb=@Qij3ZD7`q5n*T#5@^NcKsq@oAJt4YUpS6wulfe z<T*TbCdUIIsX^yAj_6H~{w75ZUDCYQqw=DY4u2@jo3Xe`tL7y(?)%fO4&~(Y)C&~A zV8si)go~QMWgVcNz-!0F#jR*3@uLRA-K!YEizb>*e6}MG8PH;J9<sN29~E63e4DP& ztNf}eI^w07viMemrggU{HZ4Rfpb9YfmzM|ezohDD&j&6;eKE3{rxNBUNVxAL0``1H z6Z8HgNRFQ<8c=O65cUld<sX(d2~yJcIZmT9PTkg{pMBRuaUMYx{nw(ao5cdiYutqp zpX#$3`1-j0TwN~5B4bv66J@U{GgQiz&rP}ziZs>p26VhvWEVxQ!SY2Ky|xtt$h!2O zG`>?!wY^qx>|IwD(KS}M;5e!>nhNLc<zZmUs}mC7=V)ZQh_SKUUz5a2!6C9Ab@HLQ zr{>$-b59WiSce|K>UOrbE2bLx^lSehbL4&G^vc%9<W<q6j;zwLsj>2B9_%i`9wM@- zgd|8_zDs^IN=GMyo67R%&!2rE&3*JxKncSJqLZub<39YEIw3_yyd#gi*EMABASfn! zGpYpj_F?j>OBRh%F1?{{^(C;sex>6J+Z<*C$&#Z<VtfTC>z)RQ1%V4N%8!x1nR?<D zR^m-TKdxaQhwmPk|2=!eKpG{9LG_}x=E)<#lt(wdxC9013zxmo<ll55kveYc89e}v zCL7yXjT_&mU6RbOqQ^g=OxrT$eyo(t^jlQy@kEwP@{1fv$$J_PbIm4w8bcD}(LA58 zgX^eNSph#;31Fz-7N$J%CioG#`hoA^%SG(}5c3EDkGw;1QZp{`{LZEWl{Zn|NQzzV z+R8992*yc=Qw~}K^hWgM3oZqpF&Ig-fgk)ke7_=GHT9j&+bKN*Gr7~#)BW00;r+qF z@G!q!=;pxWeadGys+sS9Km$G~vf<+;$a_8>?(Kp%5xZsunsiuR?*z0L!z32;74?>^ zNNtq4jx+ff*g|W_bEV0|>XRQ5%S*BUC7+P-Ql*@qoFBh{6SO&U8nehq%#)$z;>xd2 zyH;s}Z+OJdNBMr%=ijQrh=kQB>DI76ZMtjLg$)wiOZj|pj@?|F(?4#Jn=I~SjsKc% zdvi9^Xos&-1YXCHAD*;S-y6Y%PH_;CUVmOlBpah~Mfwl`m<o8}_73lf<|lMvBrV<Q zkB})RshWVxdHWdB(1JzWCrbqp%bM>&1rM(ip8h?>Pmc^!7ldd)D0jYqp8oS9*W5tR zZlW>~@qE03XOU%4M!$8@AlPJTn_VTLE2Xt$C&W?16mKb>idkjLo7}c7TbH5apc%p! z1vzLA3E4h(k-Gvd5kyI&3mg>pTLS1DA0+u{j%3$j&|oy}Fe|kz@IMe0q`KNZ?3K;p zRk*qpuX0F8VjKD35g9zf)hHW$Pg>!%?I*;O%+ROw1jpj%d+B-<bsB-e@}~o5GY009 zVE9R;SRt{Dt)^M}MKU5ZEQO*0LpG_!b4T5{-VV0|<Uth_h%llC0(CXD(yh<0r}t+n ziC^*t-S~!4W1*}{R`_}X`P~}_6MJ*epBu~=ql|7so+HXJs^e@5duEcZg5JF4{!#`T zS23<cNi_pb9O*66M{+|4+|5kyTmL1o7FVa=2uQ6zFsN%5@jYJ=8x}g<Jnxy8`PH}z z^){``v;WUFq8%K&5sP@HQ@*~nbi@m6=tz38g|utMs7`IY@tAfB%4T(F4w{<A-Ce6u z?rg?Kbp9wDVILsYHV3oSppzo$z=9F!4{O9F<qnaIP<<n)mdvh@NL?xyOY*LcQYaKb zq9rLE=~Sp4%_!`mFeC9YZ-pcPlmT5#d7)9SJdIlSN#`WpsI#9S&)Lli3<L6k82xkF zuAxyNHtN|Ss<J0ULXe$7{$pz@Nw1q=-IwkAeu4`^%4<Br5D2@M`i~GzPAlBqT=r+} znQ%56q{ej2Y`)Vc7z>>W|F+V<Z8yH4>|OlGzVYtXdym~|s($tnngU*R>JBd$0h3?I zpGAKL1_tG&!|J9L?JUO21e#C=US+#4*`;-w{9!0I*eH{;)h2I8yfuHlNlTM;c#1J; z7{CNNRxCS<i;Ztr0AZ#xWbEGtHfyodo+h^m$xv0(0O$kAIVb;Qx9tK}yr%?Hi`8ee z#o8}8yMM!4)A@Ccu)WDpNALk$BiH=My7D=$?K6``7p+vaUCsz+MN3QC^}saYSfQ$! z@sMMh{H7cAUka=y?&wJO%}yW4!CzNhXpX+=v}*9PAeh8zplQ0AIX`<=+dfX2@3GtN zDCm-o71&I@;7{hW$tqAQ=wNvKSk^Wkf{i-QRDRkMNwXym8kYN^uIn8W6Pht`ak|wQ z$&N^B5AB_L4v*R@Pq3j=df#uZ{e_|!Hv59d5TB#gx>7Oi8p_e%IxlM(e{N-bne&oY zNH|8t%WsmQ_j&^KT1lv|*PKi5EKXwSXYMsHkqo14<DhFxd=2^guCh|+%3URcz3}Pn zo`%=B_%A@_J)8D({l0Q0`b-ouul4pHa*9Nb+S6osGP(!Z5_L54zRoyiE1b*g=6@5N zdTozi<V*6y#}0T1S(*)1FI+6Vu4)y72v7lwuf;WK1<L}vBHO`UN}%JzG3gOY#d_m0 z(_UDil2^Yl3x9(Ke^blBUZZsi?!3Z3P?vairnG~xc162Un``|zKj;zS^FO&K$3`os zsQ-*@ZrF1wq0+p$o_vOOb)8M0LuFc4r^>leBl2sMyj+AvWF-t_E8)pi){^ipYk`(3 z_hX>&wRrplZ;}F$eZ;H4`RpQ8Tdz!~n~$7lz1!<N0_SS|d*|0w6)$O|((nX|FHSx> z_dP`K^%Q(cct;XB<h!*QO8dHxmk;~%D-^_g`I3g}y8BzX88xr+hG%LX)gvrAxn4<7 z-jf@|hfHKlc&Dkvs&KU*qhKC>6sRTeyMJ}ph*NbnHsluoVX~jSwM1a|MV$gGx$geX z?@=M?W%dR&q-L?fM_X|cA&Wb0_cDjm79&+r1h9T*k$k+R>7c>4=uDz_c=x7AJ?XN6 zJ%Ox!y7SF_@Wb4vIZWHCr&*UNI!H`hCHj{rpCTXz(HM*d-Qhf~P->=?q;yVZkE$C* zi6|04Fl~<w6fM!a=`jW&r$5{88e8I7_f7UL^rF%yNLQ%e5UM=QoO>-_Tch*|<)qQk zhr*q4Iq6<aq!jNMVu=l>ely)Mj(><Uin)BEs{5BLyzS-5TUszPlsR!@El^WnV<|Qe zG8?j;Y0CeWZzZfVmj&X6y=KY_oG4(MSA5YdXh6?&UuU(_hg7?XmG&eU#q`=<#E2ng zA?1D>0HE*eW*?YJ&ieh~#L8qLKZj`Yw(4lX*XF#3#M?Ra;C8(0Kd<hA=;o$mcVHbj z3hs}a-<4opK{)w)cxLz7KUF@uSBrV(YBVk!C9W^^zCNYZCIk~~Pg1Q6nP>m^HF-0I z$ayQtsEBU$Om6E<>wDK-$2h;M4(HR9%;EN&S_n$XUNn@fJ3?{JLYZjp>~Pp#TVcmq zR8S;pGMfB@d#||_O3bfP`Z_To`SIh&{ZKs7>gwvBAaj@iL)GYe74%Fn9SpC*6QPgD zM#Gx_JPyaUXgYkD<z4ZY!HV6@Be{lDJ`FTRxhYgrZE<^Tb6R!v;>TR<(ZGQBYBnH9 zOO$abr}AP7sdjZLMn1GL*h!my<eyNPLP@{^^1e7^lABmO5eqGC>)y2UToFiU-2-}- z$BHPH#EQ>u{>jr~(Q3PD@F;~OK?hhb5y+#6YG^@j*x>w)({Hyhs)XtTs>|V?%x=Q! z>CZWv>*N2xc~H*shyGi!KOff>Q8^Y~=3Jf~6tYal2(>^1MC4QkqD3JYuB5~u5X3o= zStqK%MX7_!#Rtj=u`Vf7tt29&BL~i&Y`Rp3g6c<c7`R2x)@dsO&3qLLtkl#enPe@y zLo4`qtVklL(kT1q8Ku~<Vy&o++M`46&*2jei@$+eTU(Re;pmts%34~4z{Hb4*5x=~ zXZsV}9R-ek5Rv~4M(c);m<02D=>MHA`D$q4R*UNvGWOz~_00`67-shy^?Zw0DRy8| zsVvofYr>esb&UmY6GgVS`~tG>mZP2h-L?l^pgt{#2b3E_6RCWel9V3N3wQnD35iL5 zUh!9BmI`kkOsCeXWeRrRjVAV;smf8NvPNqaJ{&uWisXaNXdfGy-zTr)b621B-SHgp zImUcXI)3efOH|5Uo^Jyhjf+Y8NkTna&|8YO)c04U|G*|O-pc-0n_;3GY7_0V#-<3o z*H0!g<An5{1p?8fz`E^@vwb^9-!Pf`5RIMG|2xQ2SX;}Dh4X#hf{EnlI~ONsnYjO@ zrk|e(P=aU%K7~k59p;8icvS*xiGY#qt{Svj2R$F4Wd7_q0(OSbyK0DWkAg;Br*6YB zz>Z5f22b?J;$vK@Cg*2NY^)OQF<DIMJ4>U0uz$Ovp=ueOyKyzSw4@5yrh-4`I{+#$ zEB*dLOfN+9Xp#@RQ~w=vv1s3KO}LhG?=N3ZogtT|8B8i}UI!MdJmHO`yGM#PA6XVA zUZN;m3i)^M-m!{8*Lxya`Jl&3EkD6!1m*ryYhZrDK6l>7V0Nz?dDd#CCcwPYnh?PL z2N-Qf04Y!ikh#;GjLjpEkTDGL8v%sO09xXUo2q0+ndYB%ys3;po#j!vE;PotM@z;a z(OB8Be4hjSKRS8$*^}KsgB3oSe<8?v0g8>?%Q^3F>iCUV?@8qxUfAD9_!?!3oP*x~ zdng=3s}*2JiFHZk@}_yK;Z4FqJGa(_AQGkG$#{|Y_Pma$9RKxB0j0u-`;r}X({si9 zV{*iO{RIu^cPVt*E+lg=MBSF(xs2NXvtNK+g1S!}@8P)5qiK=Z_u&~-R&80~e$%Kj zsc8vjZ_WR1%Yb4+N@<pd5{M;8#~zoFCJ``|ai=b#?J<YQUD35}K-z4+6ndn)*6nL% z(J7+2+vi}vy42qi?$xozkd0v<kpCBy=LGrAc0n+$dl4rps1P*RO#eFh1?v6DR5D2V zdE=9$cQc$ow-C^vt(KHKKF_#=ul!g{CV%XIM^+Imi%F@sA9Gc_e8DVbWnyio5|y4{ z<J4Ry)XPmD>C3hetn-vmc?ZmME!mMIy8bhVwYy1BFUagx`ly8^!9wUo)8nsj{<+Bb z=;U64!8yu&a3k@=WxG>_qtjdLmmV%?_BlB~S<)Bne3e-QonrZVRyauj#Agm9JcDqi zH7a*WKv@CN#o9TFPDS4xJvZ_V_FQtKHgjzEGjY~*JG{MWk-a|mK}w_1(0?af*u_3g zD<dOA+tRYoFYWbf9cO1Y*SXrzm6tnIt>8A!lF9@v9NRUh(3vP2bt_Kwe@f6+gpx;{ zMOGage<F^7@7<a8EHFaU89kM}0hifsfjA#I4quo3#2dds5U3XdIPp8{5lC!BwoEr; z8oq3)=0INXMYL^}3|y47y|q78mE}c6y(~ab5`dEVm<Qg^S@jvra_<B+JzrI?Gysaz zO8rUD@zZtQ0Mb3_U*ZjqgMM_Qw|!-iQaRydX4W*j`HwC%0xxK)e>`U=rbEkT+vhM) zVdV+ef1UMn=i~Bv3v22l(Pt_gu1vczp4tu~*muQk>Kb|co_3QpTPe^D9OJqKOZe)! z%eZGGfmPF6TE*wakmg2S>5r^W<uuJlOLJGnDWy#=3GCc-M~@`qsV8hxkRKOJA88Gt zwMYK5Y|}*3KoBb{>q8}^qLR8gZQGnGqxx4Xeg_<_K$R3J^x;*OxE~l%r%F6F6g(zE zxz}$?@I?0J2DQA8STXjA^H4r`mwRzkLzY{y(J@K(q2lr4I+`!)|K<peTp|59C&xv` zjH;}=ft-`W9L}2cxCROPGEd?(-hQ2P-zO&AXoL>EY7hUnLZ8~Ejc4w+4*y+v3y$RE zgqsATe-IP*L<^bg6MO~19m{{qqekn9ePiCfBXsNeMQertVYu&Gyjrni4wRRdBSTtv z^ZzF$+DENT*3yy{N7`Lh`_tfHz(XbUOd<483Y}4I(w6?(ecz5o;2dJ+wPc6({y!e# z{KLde0W4>%<e4x;{1Xusl^TFS)S&k#viGI*3qGNbz2idL*9R5!Y34KKA`B}-M7Gn0 zq~40k4FpW;w9IT-Bp~YDC!9cdo!@ivG1tc(%kDawNLPDWHj?;-*N+KHCpSkRmk4Be z%pUiY{>tSWbVlv%hwAVvCfRa4ksUn60-hx;1rnfRxE~KuHzBwD3LvN(YnvjRfN8tl z$Va{kE{xm5E6Tg(<Ue|52F;8S5{xJt#%H{+-FPgemLs(Z(1Z7X!Y`dB^!ZU6MIigG z{=)J0MbrrMoiD?TK$DikxVzI+GD)?Ymn_cNUj>`k7%t8;xm#jUEw6b)foAaQ(d}on zfd6ddf1A<*!#EP#olC{{IqYka51&r%+_*~auJ@B-?&ySP+g>O$HqogU{Ebe2_yEY5 z0>6JJnx+SZ!JgV~Dtt7Gsn*~1Ey1;uO%F<s`I}~yvAiDg8Mo%f!YtzjQDz7?%$L|{ zGq|9fnw+u##nRqA{$Pt<C#?okWN*ky9ZqV}s*gIV(8n1AfxBUMfHnA$0fGl(uzPv@ zveZ}4)mwLG#Eze~cmN}TI2U7C@MAumI*`FuPEpxkvcs#(#|NZ%VB>J?AL!sH!iaP- z->HPlzErn%Mh7u!5-y`$*$&9lbI?CQol?U3jwg&LR$TD$(Q$Vxqmovk*HNaf$P>0u zGzJBpWV($&Go)3B`TgVs4-Bd*gab~513xm35qO`Mv^!SjAMG@Wz<IbIn1F3=>XB3* zzX)%Z2Z?n&RojZQ=0|b&o&s#uBZSv_@!=p<9rzHLB~RBEomI7UW2oUlq6DT+s5Vqn zLG+)PZFib+BK@xD>yEFC=W3nuI3k6Jh`Gp~G?H5?>}pmh4@x@46q9SG5pzsdHAKAg zi`AJN7xA9|EH)Yz+XUsOSR?P0A{YWo5fFPya$leAKu<=fSLV|c#sfRe)yf$LBPKP* zXbNDdE0dNF`%<09*n#XaJf+H72wo@VD5>&5z(-m#zDC0oPkohv=f-6!^QJ}2et6{p zYn9UmB~j7nZ}*Wn?81mtfiw~#>3O4DW<imd9_g@5P0S+L1f<k)ql!6G1vxdnBjF!d zeEVXtPc{4hP300iYieki*yxW1{PnXU|Kk>g1;RHAtt({hfD!JVXZD}GAH?eyu}|1s zrAV06iM`Zv9>i3R#eVB=XG@fg)Ta<3Bo1Zl8_vocF=vE}KvPLaEPBEGfdv}0*IhF^ z)nryOzs~rowU=18JBz8iDj{#kF|$7Evh3ZhReAdwcO+U)Nudmyj+ZLVTN|`I*5!4~ zR|O#m8+{Lr*hBs;8WrcDUuN!8@Ke|MIyrF<PfyGp-TzDxQ2XuDf>7mvU4IOUj(X!7 z=gnF8lD%+MG=i`r2HzYcP6C?Twz@6#>l2Bv<9u;VLMEOZXjM8?lpHud9s!c%Z>=>l z6$JEoUyJU3!g|8Ytn%{mf;@45ZCP2A{(%8)(x&#beos)bZV0<nx7*UHS6Q23bT`&@ z9lW9^{y7t>z2H@nlAy<5fs=yRLGQ@kM4XpIrV#!>nq{X;LS%kYz4sMv@$Rkzmd%DN z$pI|@pzKJY?zz)0D+>EH@jkMlAjzCi&nIGHru}5FCpJ(nBv9sf{aBL%ird1XB0A}+ z5B|U0j9a}};1dpTI>=4MO$|n*l09=Qbw93i*t3<2?~c9N-Kk5+lz+VC@28#X1!u(7 zEaTf?6Oy#*OSWV;kcEW>^;D+r?(PV55){7l^z@N#kh!M*kWm6eBdAz(0s`9GUO^To z;rmFX`JE#Q{?P<<(^V6F(zSY3aet4?0<I4BdqKpEnBpMId?;6s_N(j!1P=%AS5&SX zPK~7Bpy0?_uW;h(a)k&WL&KuUa`Kxc)?a995=2HsFypKpR8&;#0!40w5OOLnP;#-3 zNw(9*`V-dXvQKZs!5bCeas%^;_Lt{?hvizzSjxUHDwo5j;QKlk`I(6(XDzx>kaHYJ zi%d9Yy2CIV6*#GS`jo^X(NINlU*gb&uKr%{joRx9MP{vu;Ch8`-t1mTH@7pEtCA>o z20QykZoig_ypwymhM2E>`(p}&ySLt|AIr(br6euw;mF8HQCu7jD#4V{)4#v1<#HVO zq%fxJMl+@0q%D}Z*Ku$te=Wan-ZqJp4Q}!deHL&k*K?jD?D<t`|Inq*`|Q!9N0k(n z|L!Iz$ex_8i@CwpJD{ls!)_l=Kg6IJ=jx1E)s{BUy^XW-e+3`)gzK(1uP(LCJSL2q zOIws+L<gB2)AV3Y=?jo7KR|<`DN7TC*xK1?dwVxxje#ZZrfNtOR+}_c#1Z}G=p&wf ztMN9Ph^ayd*+{ppnFjH9?Ef{@4kP*{<1)+vh9Z^f7sQ$Gp~$Q`;7kgPUprZew+Hh< z&ki45&ydz-3H_Pbk|BmZ7@~TVTRk^>Oa&4gYvm;R;G0dFcQrK$j2d}WNa@M+3feDT z2!Q`SAussvOI8*ZEiy*td8tQHK%AUtH<qIW>_Xe`F5bZos&eq(TkqqW07$semv?o- ze!UBNklN}5MYa7iU-<bMvf;(XiD#LTzSZN`qCYjC<f(xKA#-(qj4JdQf-@SJtwrrq z@Hw250&QrKTgjJrBl6rl2+O!ObsO^32O7B|dTLXUF@!y?*lYN_({1KeF9|46(Ak3h z<L-xvo}cpcRO*i@);PPpMWs03jbuQ7s1$bi9ke2pQ-wECejSf-0_2s%lD13~zs#%< z?%c{S(N)Hqve7zk^}BGo0;0gLapR!-APLmBg)&iilRy)!OMbNMv#O?~q=a_~q47Zl zk*+l?I{@@C&-0OYi^3aw!Ijq2*Ke@POB#(Z1I?at=GLpF==odP<agmKBRB{7w|Srd zR*wuuq}nR>_xEOl&&ji^b^PFRMu(*382&Z2H-hhkkVC09a0r+nIt2Ez^72z~5huAs zKr<WnaH~380h%f~>|_st1nuAmvEN1AXA6dQ3QLAFa|5NzFMkelc`|2CC!_N~!{Sn- z#n!h+K)^$8C@4vIs0OQ*BE{*(c~&gG3<j0-vha9SB~wC#x~nGOqL-iQaJ7K4ii&3~ z`k!VtfCN*-U%vwv%)F-DT@#s!d8H3}ViEe3?8RWp2*oqT*4R`7(3Yy%!wZa)mQwrT zl<!b#w;P)(i@)8UV@UW#H#*H@)vu7TOm54tY_C5+1EGhBAEA7Gaqw30!B?%5#U_n@ zGB6(U^Lwhs)bG<xvq<GxAGk0!2SG{y4<6EnPbYG8=_&~Ie<gDoxXHA>O{wGFNXjdm z>~bf33d^0vI^9;99Lo0HdcgtDE&R3)WFC@GcBQ&ZDsS2Vrr`A}_~$n#8Nple@6>U? z<+WTasm_Uog{R<Z!HR6_uO#^(3VL147_cEesk%F?AFsGbeugdn&}a#M4Z`u@SDHqU zZnae7?D#aahdwiTnK`?ip~H~M3<}iU_Cs0t_-p*yHwTu%yGl7EL(j#<nMqK<+tI2M z*h5mkPb$#p$zqInK$Kf;h93}X#F6qy1Jr+7@cClNbNpT0Lx%vhEZ%;-a+^RVc=3Xn zWRrdZ-(Jxq!z*0zPn-CCN-RW#-~ta_)mMf%L<ZrhEzY#Bm7IApwQ%q~-hx3z5;vBD zPgO&uLlY44fvx3pF6z;2UnnQ84vYxh-O>(yq**bw1BgK#fmn@I{BrBHxxN%O$^!pU z>e-oxUe9?O7!P)QBY7ta{yu`wDY%TH6(c7<7z7;8e1tY^XNT!YR=5O^inY?7;U_|? zh2jG<K9O{j&vKd%#(n2FA9O9;4}9OB?6mz5?)i_-uVeTI;wcmYuP;l#nFr@e+}(I) z3%X`!7le|s2bhDRbxK@{5sT4*Abe;e2qZtyr)7U@<xWNaT5LT}1UD7@MuyhCEzgix z)l+SujGd_q!uYvW!1s-fH$qy7XiibZ%#&ivKyWf@5o`B-Wr90jsD;3u_v&FNKcftc zsA&N!6q8qR!kcujmf%&S8|Dz<=v6@{X}2n)ebM)wo$1S?#XZoO)1!0K5Wh%+HMY!< zuezziQlEcFG8ls=)#rvU{ndV|hz{QsQbyewU}pxpt_$N_Ir!5Cc3uk|SxOmV^py=< zmYgK2Z1U!II%OcwGd9Me)HXU8-hI5su#(0`eatU1<0vJ=<yyrUWQ=#eg6|YmUUTY| zcGcUD>qF5-{0g@3fS&AK=H}kpe0?6+MfJfgJwVOtOcTq*4WB9txt&C*f2O#RB<pBr zk4o@}l4-c=h}^85mr2!ovx+gc%RL3OKxMqv+<TXa9~D?Y`YT`7KQV4+J6-<M@bxQJ z&<0o&3A$-^LWPB(Jyssi6W1HSTp5gm$6JTpiNgJkFK?c(EfX~m%a&m_XkGo>+qA$x zgBpOdSi)954A*8H3nL8bn=Z><3tyaDDBbS08jW4)k_G#|Vm_RVk*{!bDgF6u-3v3e zJ5Ll6I$$^O?!{P%n(Ss@^X%p55GXA82$*(neu8hD8cAo<%L(mb2P3Z&F+xH@hH4X% zDjck=%C@a;bG1^{v4R5=@`#gk|0Avs(!f%=jGT{sV(~RC^-_^GU!CrGtxr7GLn7)o zW|B9q5V9NH`hEIoF?LrC+{rgOKMYYl7I_*wrUd$n)s51klFW--=AEW2i}a;}5J(6b z4r#%DOrb}9c6P;OG^Z%V6StDEFeHZW-sfMQRE`og;VBB10W-*|N7R50jFN%o`H~N} z%H(Jk{YSOxwDB>YyHgRsH>EUg84$r9!V+m?Wv4m1uZHA95!llvg83Oz>--h8#m1?3 zIUaQF7g{a<`e%$E_5`m`X~Wb5U%q@<@%Sy6x{P_)0tTJ*(6HE}s%8OW^3H=w^*dy2 zXl$&pMk~<Q2F!#K1Q4AV-y}rGe~T;x!%LM!Ohc%D!|H?cpEV>Z?`Nk&?gWZ;44pZZ z(mVUyS>lpO9BL1rK2ym*WY*`1p47DP@}pel>G(7?;AvY0$Pxq&Qv?cfa&Rtpv%}LC zW@q)&wZamFhnO+3MfD8u!%#VpPU)3ZRdutNF<fk*PXT+^OrsM#M;A2C+$OWA;WbDu z=t3I#>J=;RSDJ)X#X*cg6RlP0mpM{(f89}!w*8F0j`VcTKs#JSQy)`_oo}TM@%-0a z00|GM*vor_yMv>mP(Jj=mO3I6?VcsGq>&Q)wZ<kGPj1s-TDW%o2!H)AR-#zJ_zF_J zf9`5kl$S$P7a#+Q8X5*rv^up~$Uq2;J%RWLmV6p>2uEy$8XAYYc8hMLbg4KTYn$JY zZ5hTSwpbDuYb)Gk^2tI%BKJ&KuMEinK-j^1<qM#1(xZv`+?agPoCy!!h@B2UBd#x0 z`C?0dHK9tf7d572>I>tWc<Gw!ksv^5&ADKtdg5uH3pD2Z8FH4--z+5Z*;tv9M|pE7 z46`3!Luo=$u)Nw$KmxiS_XNx)mnJR{o3Bq<<QTS~<C6-WUm-~*sV~mWm3K)Mgi&z8 z2Ar_NsBB6iA|f<>eVZS^B9S`(dk#gaU$gC!!mDqyYGA73Z}{Vdf)p;*rpWx+m41&Z z>QK@%!T>7VKbKc8_or6F>7<eMoVGA(G^ob#-oO1K0-Db#wf6K@N1uSK1NdRK9{;CT zLdd7`K>5F4ZcSki89?X`6GE0UQdN!ft9F&iYm1W9(<3hY;;E#BDW!o%WXoK51zsak z2i(_t0;c8gZ(N-mL4#bQ0ap;f3;@%qS`^-LE5cSi1~5k~2%@CQgSXdYvon_8)Q7~& z<rE-K;Emb*4e;R!Z2p*3*PMm0K(N|l^jW5b;{zK|A*mOYo(lL5AoHO#cH;<!(<C-h zOQag1Fm)gGI2ngTCm=Zt!gho`x637`jOwr&!@|Rdxa>l>>z}x<NzS+#yL>|}&Rk;y zyiTtoMD_nr^_EdtbzQhH-6=|^bg6Vps<d>cbT^1}Bi-HI-Cfe%4bmaq2y)i_KI4q< zeE)Um-uK#b&3Vl$I7y51^0g>inJYCwH6qw<;R!jGp}ju-wIhy}|0|#rdYdh{-?uPO zgD*Iq?%e{i@wer`)_>#O5>S6h#F?H0LE#2coc^hAX#B^&u(?0;pC_O6P6ys>b)SH# z39S6TKx6>5Kf4HHztLs>xc?mly3QQt(H6!FKI3|=h5qt=mon+JItM0|32pO_+hMW$ z>f3oO)!{w9u*$gSVZ!Z)A~bSXxddiBIxEr;dfvBp?;j1nV53V%<oqNyS?6aFt(S8) zDqC*PHB9?p-sBV5WudK|&WL|h5n4x5v`xwQ3HJ_iKmBF72?G87mL?-ttub=ipAbKz zVb|hm;*4_f5ERAYSlHN{IAaOi<Am#<$Og=@iihXoZ2q-9uLc>aZKu0s>sn)>RD}1q zUVtINXG+;97H|Xz(ATu1qJ6Es=+F~>2_R)L5m6zNV(ouwU`c^>2av5J(8HkGZILE1 zx4*gIOW-_n!H}IeQ%mL+Za|hSiEh6Doo5`WHeKS8^by`y2tN(LgL1DzD+$f$xB6j| z$~0>l#p>lqQ(l!zhLD?vHqFF?JuFcjkj8%YdOp^T&-gjEazyQkZ=0nS6`mz<-guik zWgP75>ucKMkL(CclCeGc|J8X<3WcytYyResdiK%KGi`6uz*!}*hR|Lk+>J3o=lF+W z`{AzJO^Lm3QW)3!If>xqu4$Y-sxsdWyIXRN*r}Rr@i1eU#!g1CYyE)QyFMt4V`IVn zqQiqpZJ-a%JTm-q8fXzpxee}4*EU#Sz9IDyXfQ#)6dMVecN1n@2&F+^sLd*160q*@ zt;BG(KuQjP^gW0{JkyrT)5z8j&w=4SWSXuJixgm=wtc<7+st&j@i|)<nw^(2V#M*) zVG2vJ`PPWI2{i9Z*$|NOrR}yEenk$Kj?5l<#yM~^n3*+9XEc~|uZElf@u{bU&VTuQ zIQ~j9!3`7~xK6(Sd0R3GT~G7_F2{f=dazI-klC;s^rN+a9&heP1%BV3W08By!|8m< zHVgv(p`q28RQO2<d&Smn;R0;;-cdbUfVTd=f8CaynO~|p@mKT5RgEkK8cf@j-=p7g z4`jl#msWc)*r1Z~y<wecQu~rAqoL*r;>v0xz$XF(Cm%1vxz^=i=1eFfEmivnlD>Nf zN&qNfny356q=0am&rjqiMj#_#D1BqspC#-!z8?2<f&l6AV1qrIkU^Jc<S5W-V6>H2 zUGMklnJ9^yKD)ExV_Dymyof-ULDN+dceB0-Z+<^vDT}11QSPwgzaL)o9={@4n9$sS z;|y?kVK`0~YjNxWBQ7jn%id-I*_Ph2FBHOIiuj6ui~tf2-5TKIL>Jgc&T5WY>(e0n zU^=o2rL8*7$apS9aC31bu6w<BELR%@^)T`BY7`G_fDEOQ@|-{mmrP)u^Un9*g9li< z8n{H!JjA0zT)f)bSt3J9Q;XAw;>?ziweV7lruh{4H%+O%Z^GL>>Q&pJ=1u#M2Qm8y zg6Zqvw?C)J11U2P4^IfY&mQg;S{NB>%c)S^>pm%Y`Dk<Duu+vhg6Rk~(dqUH2)^^x zYboWP#H;$cczgDWPlZO7P-FQ}PeOos4dhB{K^**&{tWNEIxZ%jdA3#1l{|Bj%p9jP zfl0yi{-Exe6{cce%<XvnLB-MdPvT}uULY1Nr^+Wu8gZ=EI15zYG^3G(Vm$<uV?h4T zy_yizt^e?;gb8=_pSRuvkS-~munzjN81zp9PgFPFgQ*6S8<Wj?ps@Hv<s$~O1ZN4B znJv3xcEDZfzF$^Z3o~@yX#_K_#1dy7H+S(|uf@rpMw^{UoxV!6v2P7@!Ka^R7guIb z^}we@-XX-~gQjfN4G{rK%5dv#8Q-7(b_CG@^x^E~eQ)+z=QUfMnVHpV#GGb?rB*-& zj$4W0mz4zmR!nHUclo@hy)(KERGtI6Oddzv|GRNwTlSo-Pc(b`B#_%1=`)X##gV_A z@YLN4xCp^C-k((J5FIjcE35<8uK_b7+2oY2)Sm6WzO`Syv94v{UC*hAr+R>KFTUgv zi0RFS<LDU#R1|9m#=AcL_VG4;e!M9WMICm6kY_t*xP=K>jDHDbZ9+T!;0M)jenx?F z{u3P5q!Q30v%4a3iNaE_vtQRm2;p%t>K?=S)U+4_?(A1!NR$`;g|WD<ApqEh(Djq$ z4XMc{`)^u6B?`B=fsbh|n9$7)^fyz%I0A6T$H#}@-7CgoOfm}7Ak&zA;PF!v)wFe| zqt|KwQQs1n&5mz}P+<T8dH}K)SuAKN{}dsp_ON2`-)S*dn=xc`DSC*x5&5{RBQ_`` zjD{%uLa%<|xDW>Y&cx0=w7^7%<Xx$%wztY|Tq*Z!>Q9rit==PjY+9ocz=#WxbGg;! z{qq)HXV&?-Eo9H7yo5aLbd8IJ0O2ohfFK=n&VwbB%zOZpwJS5fkShF)wg-qg19bzS zCG5&rhrmJx7h@4r?qGXn&?E7rts^74!IxINoXvXrU#0<j8B(G+xGGY=`6#0K|KI^w z_;PDZK=%MjiV5XH;sd{>7#hM&a?jto*e1lhj=>P9DTUoE=C+!@6&v#4NCjk8l1~w2 z1gV(H|6M%@7XW51xrS%{neF;&5YDS|5DQl;ybxmU^{hRMesN9UH^j$It>#da*085M z^{~q6N+W2Db}D0LS8-Sku+A<Gx7$DRC;K029R^5TCV{l7$Y!IXWy7~)0OHdSh~mi( zXlZFc_B+d&`;TA+k-$eu2Wk3k!0VF7L0@43_S@n{@}{0UtT=tXdmTf=ylGtmfgg1x zk)LgmS$JKT!GS}SSc>3-;8f|R&K>0tNu?h--a=f3v58ZXB6ajQ4?lI_JN)U?cLY;G zZ$)6}XJM&%mw|)hT-14_2`DSTdQ=osAdf}|%cQGNR7v}|$iPD2Age2pQWU;YI88c( zf64ic>j@2{zT!lAHV{DStL=aF)z_f)O&QK5N1~2bb7fpg61Q-_t)VHojN#T!b|~Tu z)I1-{w0%@6wtG{(9QH>()RMy<3JLa5vPm90<w0PJikJW_NCcmO-@@CxX&uL@PbJcb zX4OS}2+6+icoGL`LMsNqT>;|qIc)grFKxzm5#%A>#em*O`6HMu*nA;Kzm)$TD>p!V z6{x9{`Fa41#vre;5-zL>M}^F;5w#q88#E9}rkX-&iWxRa5WM(S9G2oW9-a%YoG1yW zaYNS5nW;|!DruK!Dg_whu+1-<-(z*zC`&r=2e~7LCf3zpS!zoWkpMemE7!S_0!K~H z`eAm0xYxhFX?Z9mj{{Q81o}=YvlP^^T`+n*EO?)2eaLllo}lAk46g$+FUGfUyk>Ni zvvsq!?|R?+v3J9vJIZcuWV&BU#Akn_6IC<(&_#^@UaiV|ZzA*S)!vvQj@dz3k=X>d zTaiXpcoRB~{bb?PAd7(S=+epXkA6|1r-%#7ts!gx)HCAH8aXjbZos8DF*aYrpZt`U zBkTbx*_wl++(h(zpCS1pfv;Pq!wq+2m5M)@h$56G*S9oU{Oe_eGNgwkZJV8HoS74y z`<$7ecK?Ftrn5S$6;5j6&}9QG^agFGC}Y&O2EdQNyq}IH@UQ3<+T_dA#EaawZ#n7A zd@r29{$jIhNyPHan)@W_!*-;g%F<hh{c&o6Ex1~FHQi%-Hv1j%cxFG`AntcjELgUm z5YQ#f5HLxl$(4jW_5Pl<T}6}>_DlE%weR|(zRN;=-zH~NZK@8sZ3s8zjv5BZ6f7;n z;B9|G>Bj)(%&|SAsj5CYiJpn_a4k+!wD`W`paegW-P$7iu;H7lq>Szig5WU~&~rie zV(Ng!vN5@Al=366MG!^q^962xS2sZWUDw4w-`zJ*Ad@;PhD5`-SqlM9R0aO}xVC!+ zgFP~dz0@DMrwHoNgKJ^ncLQEAb^Vy+AF`#s<K$pdGrsI9k@+D&W_+A`BWfnj`nA9z zuv$K${Zsw*8TtSO${MCG&t+^*9k-lcBpTS33BhnMO9Ei9H!7Dp7WbzHMAGW&>NtQ2 z)Uai_`NA*J(Pcu*`z#@2F@6VbB@)sucvx(vPGMQdOSFTpyEoo<+~>Tt{ew-L%4MUn z^qz>*QZ8SBYt`28t=hRCf+7N|=~T`qbKGMfC{}Tro;2+KgBbDG5A&m(VL0U$oH`@W zYbx=60Ak|0XY+{$?zg>&YA*m1mW$i~@oCq7WKZ57aPo{`mMUz{IEc0E?5bZai>8{v zl{F-@-FDEPrQ$#@5_Kw@;{9$!?lwuQW!+v7a1&8(FR2d4NaUC#RngS-YEp>bi>vVq z2$Ybt#1EGa*QcEe9p9c6w~3<RehbHrRfcdFW`Xbr{hQ{WH32uGn-yR>0W3%q-|kj5 zGTU8V&wOR<bUiL_Z27~;?>c&r0IToHJnlW=C)l&dBJT_T55tq-A4;`1u7N2IPX=*j zr!}aSUiI#G5t@J~{@bL%<}Z<*0^lXTENNub$TU>zh@+YiSd8G~{(afa7d2HgXAeMV z?o`ZaAXCj`iM|6)J4(3M^42o$Yf0?!POPi~39sIYYA+K%v3YLC*nLCf^!BrV1GjF9 zhr|j){T``b9>ov-ux@Y`pTj&(q4!Jc7LW$dNlubL^LoZ1Jw_LVUTpSz0(!b51Om<) zCbhc+pzIW5Wm}FoY1lr%qzi@p5Q=AY!$^{ukf`Lp`Cscrk%0w^YNmnU;OA<qWK+bq zpOU=Ada7G$mA<s%n+;gCdV!2N5T7RYUFho`0FqUlZ4-cK*%K~%@Bo@3a8})YgT%R( zq_XW+04AkfSgdFLpu~?r6Id5zuyqKc7(|dK1~fXqnV(JsdK(jA^f}wsmWBw$amQDM z*0MuKpSG8>Z?~mm!A7?tD1T-F<tr(6g+Y@_?|PGQ*Sdy!Htikb$}Kuf%EaV#o1RTv zR?jU&A}w4+f`b9(Ia@1{G`qOgdy4TcLqr<R5A?7-aHx`^SSFiEQTid=uq=ob1{yq( zHgb)pI(E-c{}f6Lw29od2H87vv2W?l@H)4V^TMlT#?HK}zT80nvDyub?Kz_P;bQQy zd~3eLjXO5?CRGh{9{-nEpC2B24z^YZ2|>U1?=bzh%j3ISUh2^!7iJtj_sy;%2-=>q zWQ1w2W$fN@(oLRH1G+_D6O;swNq`XJuol*&X&y`s@dvkX+&(OePbUn<A?&ZRV`W?( zC{2r>fMJBP@XS&la)0OmNb7z72#nEl2eIJPYmLVg-qtMAe?(;Q4MRUD5Yoa0o%b76 z3zr*=9+G_CrtVKX*u&xEwxKK*sPB}>l|G0D&F&(SxkrISRFqHOn(cAIPP!7vqd(w; zv(hY%#Wu`D2xqiMLj4IB!tXRm+gEY6UKeUCPA>|1*cLFds@wj~Mj~d0(MX1Y%q@YO zO-oPhyU6lslH6J_Oo7BO<$Pkq0=0sm$t<uPdo;&UVfm{YIv~3s-2%O6ax$HjPy6po z7Ws2vCO{{wO!<ly3dJDkfDeESSaIE7{O)^UeDUlMSmo=uVe|R7N?-GnK7f@{WS99v zI2dnSL5_^~IZst{Cl>7k)8k8ji$RH~493?KvsgnYBSQ_eH8#f7aeWx-3^txN{L^&( z*xDB%mx07YlDswPYbATttQVd}GHoZ>kd)C-=W0vh4#Hbph-WL`15wuRJyfn!HCx!g z&CygTlRjk6KKzxJzg{nq5amR^?j>;K$jq|)wjxR3v#V*-p09zh%`q6ych**`x#m=5 z16NF^39|&PfPltid_UQZs78_6n;aHlFc3ix%^!Rsf`r+W*{-KcE-AMke&Le;2gabk zcgZeY0O4Up3u%+zx4pV+&wl%N%X8fJW~PDJw#0BTk3=g2tf{UOrt%CS_Nw0x2bad~ zYFabLCy9_fW9{F<6=%KL8(40ws1jF}Us?-#xi&eT`hY8vF7N})reFipf9McF7zt_w zyj>t$$ISZej>iIIt-{e}c%ledZtI%BxQBtXjsdlS)5=nenUq!ge6xjd8R$AAHA(h0 z4$9De!@lYR26ndkukL@_ev4DLSA7>0rozqNg_x3Bd?_quwKo)Qttq-!1<udpeD&`< zsT#O+D-3y>IvUSBbAfh?t&Cg*uws>efFR-cS5GorYkAjvQ4M9x;^?2ro5AK;BybRI zp5ftP!mGmAu--|_Bk<c3u$hk!gbT)e3V$YdLhosT2(_70qL+S~c3TqFxYY%nJa&-{ z{PbYf?MNf_yw`655dm7m+*8&?<o!V{c6zW=x~t++w&tM?96G)0-!~hf-6*f1*c!wg z@Z4H~2iCkZZ_i0UBi{VX5#`h0;{DO`Tc|l-YjJz3aGB7Yup~W6Js4^#?<VwWixroJ z<z*SRKjGk32)9S9ZfwQkoOjl<;g|D7et~w&4ST%<+ouWwDFstQxU0k2HWRT-kfx5? z9Wd^tiX-mM8-_D%*B8w#B#I-HnM%Eg|95;1)5vfCUR{dTC8R<T@7LftD$XW!d*mE6 z01>&?hE5y-nLg4MoWtpH(vIs<tp}L&8AK7(SvJTLWiPY}aB%;m-~zlbrT&E90_wLh zYEDcOeoyq)7vG6L%yfT+8VOg^T)!Ox*)!9dL2od}hC_0p^8;8-#)*|B{duLVx~qi{ z;roy!zeQF1B)F{+uqlLr`(SNm%blFdR=!($3F7`V%vh-eCu?tC!->{9(WN@W1-;&Y zx;}6(-&kRm*2I8Ox}?G`YZ+aCYmxTlo@B*5P5dy>g40H?fs`Z1HpK!{^}I}!+6T`E z=})uzMVZN~uQ+POTKQ&=-y5KB`<+DCWwmOn)feVr)C9tD?thwOxb|1|{dBI_di4J; z8p>uXeTy6A9n8iKt?qU_^jBLHiW7S)&tmc6s<CdP#x(7IKt1b$#EU`}xZWRP>XPQ& z5W}i)*3nZsTykz4r|%5a(xtG``>nhhP;^$HI$nC<MC#N2@nt~b9V0_7t>D^#4C>KC zIw^amlbSVgW`(1gFRXUz(#$DIzS6+>84;ck9LqtE&nN;GtOjmCf=KC?Ea`OK_|wi8 zPmXOPlbN+2D@A?C)(S#mP;BAs-9Fy}@otvr-t?el)$X8G&5<^E`)~s@6o3}%2uvy? z?qDGin$&vL#gf%dRaIK4k|akrd|KhHym0FeM}{FRF9puO<12Wwrte+Ggxe3c1gIHK zstbx`j8ejeg7ek=+#JF!%BES7FO*Y$j{P=;X7b!<BF!EN3BF!}GOSK)fM#+m9i3K2 z1Qr4~>M6l&wjEpbpR>B8)%O3uf7_!Q2oNs=NIKL4CS+tToog(Dm?M^1A1V%*9J@RT z6XU8AO?Xsia-R1Q&`gUoxyjNExXF~0#H}-?Rgfiqj;(!V%Iz|L!C`0b`)thCD5Wzd z(lFuPp=%^*ARVd0>F@c0#ZM@uX_-^K)ddW{-~}cV9q__JD<DPt;!g_Apc>YVNvE(& z#1C@Es%Lu)#P0(ukyUc?&C5^45sU+q=}sJ5I{|n)a%{ohPciIZ5D|T}%1NpL$X*>` z*BR=Kz${>A;A{O_JR7**^SBi!^fHy)ym1-#!C4+(bJ(Pd%@H+Ic=?`^kY1!Qng1)@ zeCBjjMW8hSt}5f#f~h9h!CS3h3*O8s299$3OngrBsqg?zkm6PYH|~i(rU}yY3&^s~ z#isncsQGE#1snPvarJ2vI)()3b5+W7yg;_3BTxk}Q2dadY+}f%{1u+`U9`=I28O%? z%R;>EcTO}~N6S5lAJO1gFYwt`vEqmN_fJTIS)ksO%*t>rO2zt9SOq(l8gr#Zc3+Vk z1hbPN!TM?{^T%Qf&Pc4Dzqyg2Fil6z-W#PPC5h=!xU<c@=%~!^qB-StuJ#Dvp<Idf zlwnHh2q|T;_44ee<!V5Gn}5Znb$b-9sGu<WqlxFLZ<@f)my9JCUN^Y+$Clbn1AX65 zQijV6O2{niAN4$OrG{l`W5?XyneVMa!bFMWYjk}i5u41O%mX~DiIN62Xew&&ZtoVK zL4wH1$3Wv{-~R|G>1!Zc-ig{bf*W?1OR+#2V%r&?ZT5b=Yu{8R>{Pg>3DF1G1~JIH zA+6;0VeY>ke2qmqsUV6d2o9THy>jDQ&w-MJIl*^e3|HQQ+vWbtjp6<j+YTJ+s3|aC zk>JD{^faLr_`DVIJ&3{f`2LpJr&e~$LpF_EmU&w?k`XguhEaD{4mp<ZH-*pjIko5k z!n?V{|4}(+<rtq=HvXy9my&Q<r==_ru$xA`l_6&^d!GfZ@2l58r;d!+%kyjpuJf>v zpjxmSlkj7G<I+I+Q9ur}9bAQ?T^jDS0GF`V;~t)mz=4399zY=M{91`o_(Psy#9`=V z8Wmw&-?yrZ{vk-#0gM_t^2_)CK$|RdmMt{HRPu2lM1I3)p<Xx^|8{Oz?H#Nv0|E6_ zKPXli;4c?XCm_yb2urd42+V-vbkZQsa7)9Q*Z}f9_PkpJD>vnzv3m^|%e}kHUzwM` zYF?GR#`lZKRYT%T15Gijya;<J?X)o(KS%POIl-vQ)X6%ZX}p%)k{Bb8)MI^oP;pCf zJYZ5y0tNhZy}@)#9pIo5cLl~t&SDt^LX(&XrF<`WDyYrwlDoIt@`2A6#m7WSS+Q;n z2Nr#zOG`@(T_Vf0FwAwj?z{1-N{#q&Sy|K<o85l#2uRak<zX?Z`SXx;zyA)9Bz6XW zqXb~}1}r@${~vp}Vg)VYmB*PN&{S7Cptcyxj)iUATJ75f4xxFD8fxRHt~57)45{!C zg;}ilZ9H!SL|9<fEh#OH|G?J=FaN_&L08&X9688lLQG2#Y|0xsKWwl6I!l@|*CwmY z*r<MM=ldsy_nq64y4qN|2WE)`dt6JHbf|o+$uXv?f|MI#`oIzmTM*S$z|%R0-E_~z zk^a1)dbj%Yi-t>F3U`LgmVJ&ZTkRp>$+s9f{_ou=jX}~p{gcx{xM%NS#0Lz{<LQAW zBtJSKw@>_4e-^9#NWGry;``mU!?{W#IG+FBsls6zXOg=&1IR(6?K=xl7YKWt1rk|v zr_YBjGhxw$;xa3+F}SQbC8Eqny|oO~1B8)8Sqk+BBDizSSK&AdvWT<(6+B9^x@2_9 zk2KNJDc4_vvr=gcC+|Jm=>inl{j`**U98}=bv40jGBD}4`41Av$`8c&9?Z1|*n7aK z6=-RpXvr&pEi!%=77dZ_JxMG<S!(Ybs5sQJ!^fJYUpzV5>zKa8|M9Q>@CR@n2nW>% z29Js?thXb0+YcZz&!ynknK-mb_o6=^LI4GMyujU8jY)EJKVu>D9qD?ZR08-npe<AS zk<Fv(UuzhqlY7iBoibxM|2{Y1wuVzdD)~SeunP!`B`5EZNF2|he?x1>=jG+iye-7y z<okY3-VWkeLri@>qRxj#Myi?>nF@!!)^7_ci>D9`EQ-^0Gwa4cJo@zpU?p!CahK!4 ztw)4|fv{ECieho_JO*Evo=&aNj4t(4rF;+g{S~C;SDL)$<$H^)$0s`QBlEwr!yb+k ztU@{NUHQ2f!*N#b6;r4Uq^;#@O7*DRav8N2Ug)pfcVUu9vmKU@m%*{xtq1{gm=s9C zc>M-f3^b)m{X^631I54$>m?#PG?03RBX`Cf)SJMy1l>;~fCq?aA|r~=+3G^I#>x{b z6%wPxcFko0Aa5wnC``Ig;Xp*+l*5_AnNN7yd15PV%Bo=m_E^;9LJ+|T$5uiDE{6j~ z3?+oh(I-@eYlSRt?J&l%AP3gUDa`5(mdOeM8|`k53Lyh7Q?KyLeX36(u8=ZLTEvXx zh)weo%h2wmf7QU)BW!Vq4*u0P*KCWJ3EwIUwUwQ*n=ka8CGuwJtK1*`-Wgp~QVdPa z0wz#X-dq*fHUx5ne?ce!99z(R95R9G^z-ewkl6{~_msP{*L*R$KnLW7djyx-Gv%j< zCFX<Wd$2|T1t^yZs`XHf`q|?KI|4bC&c~pO1;|^r4W}x;G3?w0UhXXCQ^u&fbNCS< z+;fUpT3XS@VKMKA9Zoot?AKfhaXbW7%j_#$RX{l0Lght8!5^Q_Mdw2Bmq?LJKj6UC zz_iekzq@8-XJuuLWB53KeCj*jGfAo5>Dm4&vbIscFq7QP@ZiPdjDK^xB%(p^G-kJA z>+Mp4Tko5@!0PVTGj1p(FjVK$zbXCMVW36GDJUqi{Sy<{-JGEBB8W~uy^CR1Z5FqW z9^-mpSzsD2IhAa6xl7AjXkA_zPj|S>XrAD|lD<3rd;>3@U9Quvp_fSRIO3^SwHXGT zc73w4P$zHuZfX7f7&NUXLGi&+A*}2$7ipEu?Q2|ha||4e*V3mB%pA-?uSx7xQ|Bug zZ;r&cCXa|0FT-8R%HE9n+`!rbvtHA!TpU_ib`^RDwiY8e!ATazp^44aKy)Hp?6rEe zW@AY{OvJP}W0J-)D%2*|LaLFzy}RzcbTv5Hb5zy6)A%J6u{Lgt_MKB6^70g_!3(QY zf>7Ac1HAAmymYzSVLHs=bJ%8^h8sR_%ZqBq6vk+oRv5<W9PK+fWp;>-deP=e1mn#x zxaoV%gL`vwJ~|yKQ84tOW9LG%3T0Dk)8gB*I{#5~1&exks9*KxnqAPezZ=c?|3q(8 z&Tv2c7N@*7;@E}h`25p-<n;M+C$ZFM`m(&HbTi6PTB_!Cx*abC#-Jr`mGiZyBZlR5 zgpBevQxfbk;wGHkBJcuTnYIxS^s~Sd?3F^r*fY64m=Yy*-NBxrEk$wb|ND^uw$Sd? znX2%wiH$M7H;u`ejYynleGIlWVv3E0l}q}EE3WW})QUH!kBwF(|MX#Ju+*!KD$Rpu z6KfyqVl0%tP)&CYtv`PfL7AeGnM=-r?n(&9F|z$@+@DfWMt1BS%j#JUOmAWmbv>8r zMDFd*bE2nvO7q0AcHz9PbIFo3#0i3ILmBm<5z~}<Os#QXKa$wmUyIO9u1*Lr>;&91 zDm$1~F(e;2m)if3UH444wKtlZZ%>I(6qP-QVZghYs6vhz8o(Umsq)0nKfhu5-;?KM zWpzEFspY4^Mi5liJcR+$^TS1?mu1=1x%$+}P^~wtEWcFKU5Hv2c;@Pamj(3yJu~Zj zi$v+UZ_sDVquA4WEv6wDP+~!|RId8{KW6$Y*6D<AWTtobb9v2wdk+>I{gKzb?fsM* zE+D{XQ5Y{n^9j)dN6d<GhS*jia1QIMcAaT7xUh1=IJ}zhqgA?a>cq5AJK>3KUwNkX z_mbL~Zjo^FxbJ9IFW;gh36*LUglsRl25>$hwa-s2ybGri>eXtu$|UA?6q`<^(t!IN zlAWwj={#0co}>6g=!{`$7ut8b(M_x-2t^x&VfORO4I9#|QeJdKXr|9*tHtj|@Qgh+ zGv60;Q(d<7<2nTg^sZ#fU}$HQuQ2xdX{8#(qkW$QW{5_F;ANK!IipMp%Ho?Dh*y+m z^vBN<DH_veC4Q+<rjDl<S{^p;+puo>!ysyFu*X#kq>P+L6c;#MKGP+<#Ded!>J8?B zH|?Ye<Fs7wKyh)!FyEU)O{OyN)2reCIub-gObd>>N^Ujj{Atupx0LK9etE-}GMt3p z3a7U#G^IbJs)CX=w0O#FC|3BIAcrTrO2IcDUFpR%!9#4nE5RyPO@s1(KdQgywn-GO zLiFdB51xUU*Fy~Up3yoB(6rH{&|akA@ctui9KPjUY{LodLKbeURI!eKpJ)?{oYEtc zb#mVzW0;jdW}P`Lq}aM(N;u&xQKGrBIOLMP%&`Ujc$ccNRn@<D3*`C}VKnwMhkMH= zaR2?3(53oi?QVCZ4z}OF7e@Pq$ysJaX~H`ntCahL-%<fNw^?S3S2;)ma}rM3aky4S zy;-}Ua!tRO$BBa>O06+L#vjRB{c{cs)lVmLiN=KR9pW+7lae!UI#2U)pPL!efb|7E zj50Fs*e<q#334YBz~?~7`z}l*^y&!>ZXa6e2}TDYBX#2=-)5f;B`(Rc)0M1an5fgu zTkxQzUC2Kug3DqmVzd5HbhERIE>qJEZEvfpFKx7>WH?ND&)c6ho%-5H2)$DXXTRPr ztc<-_-gnaY*z9Gj$n$dVc$hw=v|RjA$|wc=j%FNazasrmICPv+03mj19*QP!&+%kg znU#%gEZa_2h6i19XbwEGMDMQ$V{Z0~loG}72UYod(%SXf>nWX6?9!7wX4wx#N+S|B zDMe=7_3YvMRUOi-DjG!z;K|XA{HF=&1&GbED?@ZT#(m0*em%8&en6c6+J)?i@Ls_g ztDq2Ny+XUyQm&}Nk8QnJkrt3cMp(i*ydu>c@7AGdrvyGuE%R}mi5(9r$#nXT@l~Uw zxi`@b)SVeuuF!`Aal-9d)a_6SNemUHSBut1Ra`cqp<mCMBOWG>jhmV>ro-6ge77V~ zUNSnRT@n@XlBDx2pFCNM!t?(avX`gD1%j7=FKz8D<^{amDZvgZzTRRXMRA*l+w$~h zp8`q~fDETQy}U{b{5p_F{@;)JL12K=w#MoVda0_mD+kU&iQFQ4?+1)8yHtq@wjb#* zO}4bARX7Im!)<VvEQML2{5LBJt0?mFRB8>!ZkvT*2fb&`Z`n6o|CMbo7(q%tzLlr2 zct%x86_xpF22ZsBJ+yyfAXAZ9$N@NH5_$V(LK8vm3h%!`r6o9?t^JRrYi&5klux}^ zsQ;^FzB+@28<s3&to8c7X{+tcP-%5@lDuB`-;>QVEmh8ScYL?mb~0vKBzygN6;z!r z-p-wSyl~pZ`v|Puk;F}D&+H8AC--v-_cgGB%hyOP9KhkmPxlv>fO|d+*iimK&YrL3 zjLqcCf1(NJ=0BZ-PKKHCbJz#OfnCx>{Y}Yt&Rr7J=y?07zldym;65LX^~kugx}C@> zi%cZUY3dKpO|shG>^7-{@A4}Pk`>|TlH{w-Qz>DIf>O@Hp0vvy|G)17r(z~8jX0UZ zB7y&I)uG?~*PYOH{J$A6zl}{m@ps=f9hH<Ct~S|Cmnbv(gl}owGj}y{Z&E!uhu;Xa zxYEvlxewaMvt0lAX){k8*1U3jojj9iok@!8j3eQapahS#NxKGq!Sk+L;Xyo+Wa?)8 zH1=I%<cTG8bKZ|=*xN=1+sgwJ#xkl4Qf3+VWjp4bM;u;pMj1X@HMQhDaJiKwq^2^G zdERG_0t-CJS9joc1)>F$A2dIIez|(KGllvJ!V#DOq7gfu&NmW8Av#)YHl1g`8!>#K zvicspqE%g(cvdJ38GaU7IxaNji)VPA0)`G9bz1gm`#>l0XnBo<^7NAILXNV+Da#Oy z0Tl-fOUrN*brYQb+uhKSd0a<J19m>R@u)!zLjqVzO8Oz7|EY8J9+*&T`(9nGaL)F4 zdt%{<V5z#$V*{>Q|BZr+sxMq;eZ6#EUJ;O92VPbuDZ^;jqqu2NheKriII*IIVk|Ge zhKuycFxkB<-|G&KBwF!JR+E_{trWbCLg)Bhf63lgP3N;j#CT*;3V+z;%39^hGp~Nf z7(*EWn>@>;VRq0}>2oMJLO{;kv8~ZG=VdcUt7DKzjv^)6hF-Y$e7BK^j6(xSn<x|8 z1V%;-z_OZd8_C+vh-uS1c35r93J25&%UGwCyP>y6sciy+nsehWNl=yrvd*xMIYdkJ z%2GA?bb2|5fh_&(7Zr~CT|W|nBk%q@J7W9563i}{*Qta>8AxR4LFi2cixmGng99nl zh^nrKQ3rx2!oD+L?Im|&lTm85n;d$_9@V>)5s!iD!Wy&77x~|<`L$GM@GokO(RPK% zVM)HndxAxc$2w~Udi0~A+|2ihk$5)PFwO=ooQcPu8xlEFdSY{Yn#I|Z-t)Ag?*79} zOyOqo(k)tMbV-|5C!8-e_-AYMxC=Qw4IoUT8F-^hSDgUw{dnNWAr*u{!nCl6<9!nr zY|6w-2ie?0(_ntQ&jMi=En$>Rzv8RG)y`nR(J0dfMe9v-5GSost*n#WuA{PdI#bh& znD193B_}MHtIC+G!YNT^A)-_L!-yM^Q{@Ziy(>H@HBf0?RNWJ5pg-9(=~DY-NqX|? zD=oU9-<9ZJxK21hzuDiw!7P&1bTVrb!EPha5OQ7&JDS!O$M`NduEAkRf|IQ??TU?6 z8RFA5k*X-@x*j%VO2izBBP}PCh<$Y0{fS&Ey$#14jZGNWYOlt37&YG&f+@BY!Y${h z#>p`97)kb?tG~YG7Y*9q5xcd#jH8F_L)GLxfva5CVF$rvy2Ham`-4deS3q&!jo>?t zvZ!oV@q7S=-QI@s$p!%isf5e=<L%4KG1O8!w<|V{v7JB}HJa?>`l`%owMo9?-=l@= z)=yfdSJyxym9i&M<+SFKtq%I??4|cQjS+a8RJtP=`#UG9*p*|KHS<;bHkZ=amxRTK zJUe-pE@7`^BDB}XeFTg{n(ndw_nE~cCYp@n#yeVfJQ%~uBDH+alGxmg{wOW^!4rWT z#j_u9v|v^3GJF5`u7;xQ8i>HRwcw4I>hcYno5%4!nE&4|$@1YQiAxj=^^oy;%4PL{ zl)RSu-QvpmBwMDA{VwM*w7i3Y07SiXv78g-y^)rahhcwpdPNnhT3;kVl2w%vDi^i{ zC!^$fFi04%+Zh6%-*=%;tH7c<kSV_JZFh3ApjXG!Rpv|F?5q-Gm>>ats0U-~A~bD$ zy_UNT-uo^IS)FX<$>gm1<DnDjGDSsRhRc^L9KIBoAAWG*h6B9jIf*R}dfUf$q~M`Z zZGAI+I_;is7Km)8fj2@{7xLR0fVsvLX8agtc!Go@H+Z^-JKm&~!^)Nnj8{9q2G6`4 zoZ$KKzj{LY&#<}eqfPE>Vs56m+vkACxD&<LJe?Db%hlQX%jCyYbrh9rv$Z~k<Lh~s zr15CegTLjYYm8o*O&Z2#4?91O5MLbSG@JLYttp%az!j8)86FEEVeMrZ8XFITJqUA) zpDB?Mlv!}^TW%g;?wQPD5Ll+$sng<eX5Bm>yPbyyt7=~jz7?}3?hU4S9~_2**QESR zQufXx77m=lzUZzsDzw#}Rw;ve<!OE}KMMEI-?&y1Tv_70bK39fU%>qM-+dg8Q#X4~ zcFqQ*803IFlmk!|;?nh?h-J{MNEiJZdEdz{m@A+A**AfZzON!+0|tW|xl?9aKhk>r zXOR5Af5d*Em>{G@9oxw%>eBH%wLB&Sv0IraB`P(a?2M<}YU`St+4<m^R5S{$g)qD2 zw-%hG&9%lK9y-Z0$BDDU1cTcO+fg0Yax}L8r;~K-ZbNLV|11flxPHvx+hLNYu?6%R zR?Ec?JcoI)RFssWZ6Q2-&VN4W?aq7^j1NG?(@-XXN&q6rGd22dR*Y?2)k*MwEY9j) zJu>!DLzK-@FfKJ+sN-09^Q=podd+qM=?&^KnDaD4KbO#u5@f$S7Uy``Ctft?{O*s5 z_us`MCr576ev<%p2SbZgBz(?w<~&x*b=btV%Rr+%IzcXU1-zTY3uV*ufOKTfq)YZ^ zVgJ+DA2@mndb~I-4#Bsubgnrq*^9rxSE=^ivk^45?%^I)t^<)>$SvRFh!OB7HH&BE z(Xk?vM{AygFh<UlO>b_RiJVBHt5Y65?##6FmAAzxOb70^<9FM*-5MR0a8cr&0?lvw zx2K7|?D!5YN89|u{^#=eL%jeBWsVX%D1aJA(xFR&VBSy07itvbH|+wt5$ApYnS?@& zLhKQV2bBJ$v4H>TeRZ1W;~_3fPx8e){q_fIJ9uVr8KDr4mRsWnJ8c?f?m2osj^Vxu zSfgR955e%28zY*V(VA(nmyFz-7XPJpJXeuMo<R1VV!!LrZkAzV|G(R4kL?Lf!Q+CB z(`wmJ#NnRc=g*(USS5GAO`tHSsHl=MS-$llbx%Oi1s65|S}Vl66%L&j>QxucAK%VT z3^(c~>D0-?tH|{{n^a1u{rk7zcvaeAa-Q8|a|<^b)~aMfQ~3zTtg~OJ4e3ZeoYM1C zVVad-5YpDoyvA=n3p<S|@$M5wUv6(C|3bqw67PEKB5_=BW8}ENZj_%Vp=-qdB`3N- zR98nia8!dib5&zvzs-}tek^zr2K|3E=Rug5+qO&T4?Ra%ihu@9(Z0Py9&{4cE;-C> zt;tscHsdhmb^TX&3}<n6_>E1zxVBvq@aTIgT&U-%)a4NyESS_q`d57DVH%%ni}m9E z2s(;2oUT>IszrZ-4@R1umyo?C`=)kQvh^@p&lm7`lT3djlXrZb!EBV3KpxTfH`+lj z_rV;)Yr_}J`cSgAeNdmpuYOH<H>32v+3;(QP$^YmzGBnMma~I^9MizR78XMd_ba;I zA)uz$D^v8~q7$-z`1`#JIX`U$q_fpXG<jj+y8&!{2YeZEL^f?x>}OCF=MN0i{3fX# zxkjQ+pOZd~3V0@aG1zxpv{isX+Tt2~%bqZ@dXZiD6u*p@k4_MLXDc<O0$n7dM|Y^C zPR0e*sQBtM#tn4KqVDka#F=mSE*QN$j9nyTOBe%=5<OcCYo*mXl#NX%D_nEo2nsA? zs|l+_={R3m{bbdh<jh8yEYOB8sJC~{RIyK1fkDZ4y|Y(UE_}^+nX7lX+GvxRW!ec` zjw!afH`sFog1d7}dfb4J|3sf@om4@RMSl?w9FIRV;h`jtB-}%c+;q)u82BZT5y)8* zBIz12d9hkD@Lz*bM#q-viR$1|5zxy*#^XiV^2234Ctq)u^B{6|eCGde-j=`Y!nu|` ze}B$K$0aR^f-b}H6uLK-npz3121P_oO4cH<>3>b#h1NxtM0>B*#$~;_xISh}@wD$9 zixq}9kP6!G4g|r)wr$!?xIpBNZCVs}{$i05xP1kp`S{~6P9M(wP{Q2q@Cb<Dvz67x zkQwTDWqok`RZ`9Aw?t&NeXL+s9!lS6mh)dgq0grmxBL)Q76b38qeceG_oGIedPA|C zrAzs_!{<sB`wQ>+|J@RA*vXm)p=h|dyy@A~@VZ`2L>F(qTRV!cg7i%K?2SLG`<@25 zDG0ss@nBSEoZcpN>L<pl!*UlZO3@#cm{yR5e@o7l#<6!?W?0#oC1tjZG0nmugOY0F zfZPbdh@gFfNrQ`sOZ<oW!Fxg&7K>cmFB4kxT}CQmTGw<l;3P9^BR5Dir2_QDYU+M5 z6C4_YwDwvw@R=fW3%42`ufz6JJq+aKb|L#TSbS+n#Nn8u5mnT3wn!QOfj;=`c1f6A zR2I{Z>=b5a|Ce4n?`KFwO=NLt!$=}ZihD)8(^2Wf5?^k0et+5|&m5a_eaD1WtLWd_ zF{pF_lqb2vpz9om$AX|)2%@R~5v?!M*CmHQ%ti8B%=hDXlQmY1W86dt*cPWx-pE}9 zZ)^I5ltw&j+O-b*>2khJ<}%alm`SE^Q*Mgo_q#L08%`rAl!ttSmi%Gl^cjHADE%GR zq|I1Qhb8)&TkdF(UP^EUX!`_waZ3E1P_)-8S0wzpl#2(-eYD689%dWWXI;;=6$`ZQ z^Yf@)Xl?my1lL=PtTZ(;eVJjo9{^Q~G9Vzp9&nfOZC@2R_1Lu=Ag*+@ZLrY1Q!Z?q zw?B5pwY`ck`FZ~xQs$7kp<k<4Y!zoRExmm|wwxv0LOCrxV?)Q_Ei3W$jf+wGoaWuo z)l98n3Bs8|{U8*1pNs*odOaaNW9`C;T*DCOgYA@YaXECmH8YX<W<_|~Y`Lr0JO3fZ z#$q+A3Tb(vpnvG|aoMrTleg?f!~WAr8~5R@O6jl4#DAp$Z{rj?OF+3$9;JBCp{Cj4 z-YnOVWOY9!=YvQS^8dhXlw5qB(6m)D^A-}n>3P*<begq|=|XhA%-E+K^?gp}GL1uw z(?H&u@DD0dC1S=z9Ntiu!lXQZQwhf23y#bG06o*>O%qG7$vS7lazB|bPd#*gO(yIp z2Nl>935~mHQfEn!LOIBC&<n&~GQHu?Ze}9hIQMKwQy|Q6i2()o499E6#Zi6H8L*xa zxVvD?mg|bms<U4Do1^Vtn_qe3xK{vM4b1@2x;>EQ_f5kAs9^Lj+MB$<;5<7O(s=@) z1YHAC%k>K!+ZX`c<=1slQJ@!!FO7xAePaDAjDt^0Yr3TG9h;v*`tR}&I!e@^m}{D! z{iYq(aUrpcfBiQ}!w!Z@8-`X0Hz}3dL^Wcxc$>;q7LYwWOGe+^1b{-Pot$1j!YL@s zp(#7-K#21;Y8#A0pJ6E$X*1mwoKKdGdMdf;VG+=fTITA^W(@a6lWPEdTYszLcOVfH z8PCD+=|~i0LW~;4Yb5%M&YjJ^YCXqs5!a1<_ASPuGJn0rtb-<h9ZC)*E<DETyb6Xc z=*?jzJu?xlI6&n&Ch8)f=`VOU$9=*pqcQio9-+A@p78`><<+1Nx}dyKy1cin03((a z7^Iid!NzVw(vyB_;ptZ9c+CU>>FW^i)v$cY=tuDu|M8>c2~ZSbf%}AHrB1tN*Paj^ znXM7n$g0Q^e1HHseb(4=)aAif-7X@d2_EpQF3=YIB#G0H(pV^)@TpKoPbW5BwG3i^ zGM|5s!f-pCt*==oMn~%(2lnvWbxD{}ZY9JULUWzP87412ef(cJHSCRmk(n9dH15}$ zgBQMnTWkAxB$`o_HPr0EMpb#91x;C%0WH2<$o}E?0%K5pY#?&Ij9fxYXWnsJ&L)aa z8=BEaU4gdrw53*MF@%4VMjh@&A`PgVyXw4u7f;Pt6<|Yp;{!<k>y>(u@4^4iBBJN3 z*P|lOY14Kd@VFLk^tHOYS<oE;&9CKK>!OZrswP}dR0#0G86G6?h|Vn>70N$GAF_pm zzL-yr(n7O;Bh@G_)EY-+koIB9^?kyE;_r7kP)@JKrUbVeAh%B7f8Dkr06;H+)_=UD zeA5Jtn0qn_2MXpFktJ#p$vr{vTx<<M;9j;$mG5n?mCjv?xcf&K{hq-6jZY{4$`&SA z*b5?=V$633D4FIQnZG4=vypCFZ$vW~mkfcXr@@8+`nPw-{Z=Te-IkbCEkpUt;tt5I zVRJ@4mQO}#rGP{I?svKhOdi57+@?O^5r~5nt5<RLipzE|iQs0PBs_I+W!~INztmvh zoCi=Fs7l$EXI=$H>Lp_>C$DkuReS<d`n3wu&N(QTi_csK6TGTyYoVeXl^fX1-V4fq zMkf4GmA+s(!nKET$RGF4x`LM;X;cA*`_%~vbE@>G^j$(*e_@9}lsOE=Yz;9B(f=)u zen^kUW&7#;fFKoYexg`q*x3|>*C1MLW#`{{FJ|hp+y8&Wy#*g`Ar5A=HzwXL{`VSI zm&|yN<G6XDapg^aWbdJ@3SY_!_(pFBJ--!dl}_~keE>dob_?1r>M5vTq=i1@>h{J_ z@R10BOx@p#yCDuWXauZOI}`yNFm$!9SH`f0P*hd4e-Vl4k-62YzXiC1EQ$VxT}ao@ zl>0fnW)s^Rge*v*$#o|}@-cU36~D$y8|^4e;~`#yq>oszrd=`l_pbQnbZw;}z!e55 zHZ#+vw1*p-8~WZAIID+WjIco2@`7bqMNM}a?ZB;$4%t0vYuoLz#pTPtjh9&6r!BmJ zVQfSLSl1PJH<OLk$SRgY=_&&{2{iB5D2z0V)vGSi_1-RPwqp)fJ-#A~Jh;PwS8_58 zh{}>!t2^1v6qS9;Dmk1r36Y~y1U8;4P!k^x@NK+tPB&ZwzKq<@muri@QqJnEuJO(t zGNIgTP#d}ZC-X@k&wACWo5#90&z<s-H^(7lwTzd>6(tR;@9$Hp7OeP>0xs5*S0F** zXztbGRNPZ~MSgH*MvZJk=^|6ue(GnJn9#>B2;8n7r=MLNbQ;R$l<wjXoOa!BQW5LF zCg_wby^_2--8Ia^Vka-h4W#_G3z@R?5dc}R{OK~Wv(B|5C;wRVP_xR)!Zb)KL*35` zd&@=ov2p!J>6A<|_Y@aJ2zD9vGlk54b`WU|-Jn6FfXZ7w>O~M1b_rQ6?l#72Ub&%y zbE}?G`(@A6?04fEmVJk4+3|yfv|OhHHzW3FX`|F6q^-Nc{f}=TyRr}hs{WU2Vl`6f z<jCi@82>{CwgD^AMbjMBD9BGhF4szg0nLXXjT43=uiJl_-y~`S?R}ajDU5aVF0RyX za6*JrcPqV~OFz)|R<(l^%JLU}sv5GiA;>&`3FwT2613@5Ah#?U=PUnI-PZ#)Wk0nb zl@vEbHJC+_&MMU7%PpIAo{zGOhq7_Bfh1^9$}06FHkyyaAMaNz+=KduK>j6t=i^)@ z8h7({1Ya3hJUrk>+FL>zecCo++bwlI=XKDo{>55QTBy*LaiGQZ#u4MZ!tC*1qc2rr zVrS!#;4OMTUF`}hA(tS+&)J{)EE}Ttf4u<kx>)X{N%H`q>twx7&7-loq<TtB>bAi$ zCX3pRh>#o`-FZv4QCG2T-)b=SOQ)LAC^&+IV!J6Q8E7Yy(x-$g>WclCLt##QyNq*7 zD|MxEkM&k>b2-9;?0auG%J-|*xf;Q8nawHP%d=Uf=rl>Kv0&9%f%ZW@c-O03H2(f9 zU!7>TzB!eO&!*G-nR<{KW%Jr*MXCOUQ0be^hD{G~_p0|g{$cr3hi1LG5jnjBmN3@d zNE5uQts#(fd}Kpnm%o;|mxr^EUNlY9<0cONd)C=0Mp3V~(t0**15HCooC0$CX46>L zv$?m`;$7@7-+8{Z6hqKxw6@xEv5aKf)A*zAovK|I+PjtXy2#+NdOm}!a!W<ZaVr4f zr=Pt-BfBEpS7j8cV(yA~Yv}&e;A*^wZDC%Ow_f>~uI}${7;Qy{k&D~!vF-^nNX4s~ z(Y{!L*t|;s-lcLPc_KgwE3>QBajk#P6~Kanm94rn$@DNj6dBEgdJF8W8iGp~$o7^X zv9kTkUGE72m&}I|N;KZ=slas#N)GD70peD}gy2gXlUh}mcPap@2yGEI6*RX0d1oRb z{qn=~atrU+wurK3H=Cwv-U?ydDJiXB{ZPQ#h5VN?ABjd5I5?s4ZxMfQ#^uA+OVdyJ zFs_vfrwM)j#6NzNATAs&?)<N@#(JW$=7*+_<(iA!w30!&g(L|<jE*YdeE7t1(#77d z@33%e>-9KCQl9cM$(;}0ql=EO#l&sYG-XY-ziMz671J+7cdmDfJD;ldOPqSTT209= zwe4ro&1cJ$4ly{|%MG+?n&&(fxv<?x)N8EGKVRPL!7OFtiJa{rvy$g_piM}#c7=I# z3u)9Db+$Eq_{w?47_<B%M)lT$!Nl1tZ^82>^Q?8`cJK@1?XaxTv)*5}R?gWgiKwvt z{0U^En^__o7*hVPAJ)MXTm{ty0wmvgJ<eo?X%jR8z=c{&G58#dq>EmNoca9sa_V5` z{TAv2h?y-D!&YK`D-MC>EznjkCDlL)iT{wY(nox1iYV*6Ll&3TCgQ3yf}uDcj*QG4 zJEg5Cvxp+BwlHi0nKCA1t7{T;eQ-z%F4%y$n;LYQtRUZ4O6s@%2<+E32TE>OHE0=p z697N6CzP1xL({JJQY_OnZg{przlA~#UV+Jh<HRQd;k!QMLZLQd;K^<_pu~|<pll}* zE&I;WX43(DK0d7{jwf>W3nv);kJQBkcjvwJLGC$BABrWhpTVV2pXd9gO&F;+C3Lnu zAD0rjA~G-!_k#|F_?jmK>!1wAoQ7Jt<^{ES$-K<&!cSW6HXCcGUxM9p;U)L1O6dcF zEX1RMD)mZ}r$QZ_hpje{ik8@j{(gJ3XJuq-yZufMeQ5ozd~}J1l}+_TVOw)Z{1uPp z$!xYAy37Lf2Xq@Uh8C`_Ds;EVK~|C(g5`ndkS|=tg_a-Jut%K9?p3D2!sCNS*sjel zX~VIMTqupm0*;*~!|H0)o}W7V8p$#X>hX8wZMC<Wnu-6?7AgYMiWD;Q{wdu(c((iw zmR`Ls&rn5|P>mT{oae|Z$8E7H*vB_#^nAbn5yRot?^_6cd-10oYFg9^s;}6uG!W>K zqPV$B77Ht#yM=Krb?Inl3|U!~oEE0phvfh9=M}R4`_cf){=XHP)6^PfZ%Ul<F67ub z>`xMVHjC7mbSs7p3Z$wwE40PvZ<Z!38Ssj_RKCn{Nm%5q|Fqbx0e^GYs31vw$c^qs zvjjuP8}EBEmrcg*Krb(}*13WoG|4%e8b%jDmm82hKig%!)q>R^wB7P~V;Tp%rUdMJ zkO2#hkvcRKF$_xPBk;OI70TuldHibhH!K0!rwpu%k~-n}W{F(VRO{en`A*oSN<Y8k zG3mj`!L4E64z(t7`lBzsABFxCK0XANl2%!mqw^s!v>CbKorBc}g@t}{DrCJJ8P<Yx z2GA8m6_lQpPqJATlnsBr(6AX9OAI|2U+E;b>PK2GmP@BRe-XwZP0*Jmt_<#qf1b%J zFA!y)L}9#`Z`<J99((@z_qHO3m(^;`I=Qx3NS!cXcmvC9Ew4grwKVy9uJAhp84QhB zO}BMMa=oT;*#=`R=bnYUkH$20c?UEtyd;-;xk$A{$rx*!6|7NKu;s}6m^Ul8j93@t zVU`<e2=!*<1BJB7QB40B%|4<!pzNH@*c+ZiJU3)oAQTKWhg4;qDQI@*9GQm=dF|~C zm!dY%8))Xag+AJUdfA(%rxsSs7is<6et|%y7qN4<R%fR8cZ_WU;?~HC*UxM#^4j2J zx&HHv;g(^KVU3?L%5ExhWH9{0>`ntq@~h~sL*e_-8}0vxvyw}|%_EnW6;UH2KH+LN zkFZqmkb_ixqY8g6Ut(q7vKPZS$G>#+`Q+JMn|rfwB3JdI!wqxN6IM29;+(Aw(J{@& z9Ze^AWy@qU^t&g*=6lcnA=*q!&p^Ds;-+7c8#(No{vUhCp}2)#{5r@pP}mxqygzPL zXL>#sm+7=Gi^)$R(--sV9||b&HZ3FAX?5W%SeSCxurI!glcJFsfK9U$rhlnszC%9S zJqeX*%7Che(4!%k%*hiSuAKU&zX4QA6rq1QR&YQ#m>m@m27^KY!C1_W4CcEiY<DDm zj?(9$wN_o@qKu(3r&j4wzqoL*e0*{QjXe53e)l`8HL(hU40-_#4pyP89MOJQF2Ud8 zRj(M97xa$*4_j~j73Kehd(SX*w{%L2bR*r}Et1k55&}bar*wCxAi{vs4I<rL(t_l< z`Fzh0&pPY*2gEh^yY}AK^}2j7<H~^KksY#DvT~NXi8+n0%wIbUs>UWcGwFx_`OR2* z4Oj@MASfJZ(I#M5uZ2c2cHVo$#e8VhCUjh6WyK#YaN>@_8=ZEsvPWK4uW`9~l58{^ z5h1<j@@Yv(%+XNd3PBa-?oV*-$NJp4e5LVK#!;{#_`%x5&Zb(TY1OCImEb9SO$qyg z4NqreMzbmIZVLD&_d_|=B-lay1>8>KgTupur7m!Kh<XaBKq|TmE9TJ($i)_zPdl{t zA@{?jVOM|{1K*A)Cn96liTK?SNv90W#v{8izS8n=0MtB(jqdj3NCP|u#0-YB;(?YD z3mX$!?b%swXqM?lBHWrs<7IL{Ke@y)JE~6mFSA9bi%Cwuyd~>?-H9;LZzmW^w+F>! zq@Is|KfqdZu-D0;za`fC3!$Q(4UOWsC5E?(u<$()-k_+lhF7^&-tu*!WbmV}?_obT zCaAE0K6+1eeiCte$MF_GG*k-w*#8d7Hn|*TSJ@Y;Cgj#664KR1Vi_>r>eyJc$bK}^ z-m@dX$Z7EW2B=dcDMM}sf&NxMw4`y(c(!SfMc6th|I5&Ii<x{Fy8YZJEIBHU(X1&P zA6oIDt(DC$n{r&pup}Ceq3Y&WO1G*3i(PXe+9G8$_iU-;`t#3Pn@pb^9S1Q9`K`pd zEqR1&)iitFo;hInInwTDNDPvgEd~a{i4F$jWts*_v1nq*J5k`T<1?r{AcpTPYU24H zP|fcORMSTID#wrpJs(j{c5n&8Lj__Z>^-=-!8a_7S0Qi=6DsemM$@UulXg~Tz8$t( zYqw%QTJItQr9lQLje`M_eP$@Tl>!qpf-tO7;pv~#AP}K;(BUy-qQOukJ|JUx9!&QU zF)6LqYUjKNl{{Kwciy=*MZ-Jy#uD-liR6?=yp=F4*2<FBOZhnj-%9hTuJaq!QlTJA z^PkUv=<Q&sG*a+&O^KC^xqNwWzTUMux%q~mNhi58E*h<Vm)mUt<S4IFaCPCl9>FUJ z^u~nphWSeMj0>c4#wF)bV1_<AS80~%^~i+5ztJWgV4AJwlAuKnZy`Thkm710iG+a4 zwby?EJlor+D+B}YYoaDnd}Y{kU;Sl>lB@h1&DLe@!zqP_5~U5FQIMD0gyGyf50|M{ zlDM9UR<GSBC*zpcz<CO&e`Hs4>$D$vS*#1Op4sV5QpxJ3d@1sED<>rSy2CPaA=u7l z>D*`+DRUR!QfKQuCj3_>L>3YQVDM*4+*Nf1YPhMf8+mXTftM<t<AgSe3+icqDyg3} z)M#W`IzarBChy70{*o>gg&NIwd$fR2dio*sL$yJ{7jx%T)!5*5OmK%?SX<L9pPhF0 zb5@16xqFNz$uFTa+aEU|Dp8Vo8JYdN_lCT8;@&%<q?g+hd36cW!zQMm>!u&o8#C<6 zOnC^nq4E&JLrMd)f1$)jV-x?0l6Y#fnpGW40+5>Iy}N;O5StkW@%noM#k&HEnTs4c zj+C2CS&1zt5-f?;Xq3sRw_|U#@A7~-?5|FaZ<lglhVbj$hS!Eny9Rq*X{&6REXl>m zX;O;6kkMFWN4|~eeUr@n()inUoU0<I#xh*>bV1_|04iO-ulkB$))!cF`(<E{Fc7mk z4=AtW2>lWEa7HIgzQd4CD*y5*Kveb_F4^-39okktZq@_3&i0aF{5dvnK$8Ea1u;K# zf7xU1y;a=Db#K`btI7*CGvY+i48<5oAQu$B*$B`-veFWKe~d`=Mhe(oOP(V!r)d{| zUv<dWs99O+Ry^3uBeXq2u+%Jkq9fqEA8}>7qBp)jt1y1JQn?I)oN@Bmm3=NAMHKmA zLR7Mj789d3!!*1S$zDywe`?_{nwUA{pd@v3-M)Z|OwQUeZi>ro^1D#|-Q|(Lzu7=U zF6}zpPB7(@d%MlyIrqr?iihp1rosN4(BXN#5+(zo8bOt$(l$^64j?c|O^HFNnG^TL zI70|Bif;NevgZB`0W}|H@NX!;b=XY4O^k}}OI6XyYzj>Vr|Qx5{b6>j!F5?$pm4YF z_bdzBf>1S5H_C38mtMPk3_J#sY!FJyXY>6`selML^^3SGax#e4YNXt)HhLwxrc|F9 zQnpkd`)w`WLtIssi-eTrk8wCR&a~}g-rvZ0*mR+WJn|{{IU&D~E-ab5colo_=-Hu3 zm#L`o7I4ko9gJ~Zq?4S2WGtBW#AOGB0ak%xNWXzm>f^vfel;Ds?zFq}w22Ljy=MY; z1Dk^loEZ}+lQNwmXp#VL;(fNwf8F;hr%F`uQNchN&LI=?3H|OFXxZp@pmop#q9R^D z!f^%?QUj0q+*ezmE%+1SX%A2Y@G)bH2;ci%+;<j<>d%DU4y0G@P=2Vzfj5(%XgAX< zJ$%pI#2lb_1@<nrHR*g8ki5-^MqMNyWK_&V3<yTvaCxCag0-UR@V&g<R{Kwh7?4Vo zo1~O2<&*Q!9nEcqK^XqlftTaM)yj<}I+>g*Ql-_arb-yil8rq4VKQ=l@5*MlsXRyI zb6yKn7!TUernXEFk~hsV-`zVQy!yz9{5#*6RiH|>W7)^ms-mXn`*A0nWn6U%Q&nr# z*Fzk0n}p5A58{nFg1<#c7mUMfLI=<-k<~rt?bs8Zc)VjrHEWXXYcRbx&TBlnYm^M( zKeP&xtgEylGUerUt?Dhu{#v7`VA25eVuf>hj|ty^HwC9sM4*=(!zPrr)pbX~m!p72 zgx7JIe`s{H*`0inL5u)|2fw1W*f-_E`tUL!y>%eL@~u``|LG<|=rEjYQ`I)|3fY+n zwazU`g`1~_jJ#RgahqM;mB1u$ah_LT=;zn|YkRtF%MKlHwA+=yng?K~rU5&34T`tR ztqSrS%jD_z6l<Z>0W_5d0>ucBkLz~pRtc5Cc{sJdOdiN5!anzhX~B9<3kpX8jEoX= z*8KaK2!Q4C2HJP5beQV%06=51@)5KPg2Per0Yo(Ls9Xe4kPb)>nP1v>>q%VUFTf-) zTciiF!`5Ff%CcTOUfy>?wo=1)x>b!>Rhhjcj+Qzq9=c~bD$8wXF}8p4=7qYW>oM)? zzdi`Qu?$`sjx7>eko2^%=_{sBzBtb<r7sc(v%Be?@)f_uvdOc@+5vRNoXQD<@gEo7 zo&EU&&`6W%?05%*{9-NijWMdCB1&aMmD_WZTSlH_)IKS-?ILDdlsl3i2qjt<2TvGw zYpzafRa<68rPhjfa;3VsKBADLk1kZ_51426bIJ4ETyU2RDDoB7oust5Z0*N!YCX<y z&%QNX?rb%>xd-N7G4jni*YC%5*gs~&Nq^^F>FmguVYm5hEj|1aO3q!ZW%&=5QaE9a z5VrWD^+t%~O}G?v+g0-3%lV|V6q4=TC5iJG@U#~&nwXD|b2SbG`(!}^%>-3~D6@k( zm9SHzflD;?2kv!FrOG<I6-YT*Rog3?)T?#3W0!!86DDP;Y)_-0fdn6VCqXb}W(L<T zD~wLyDwcYfX<g{Q&b%PrEmWT>eDZZ=6c|U+V=8u^Ghycj0R1>+_i;S2Q0<^R4%=Uh zEZ&2H#fj_T>mRax4lAYsRbawEwg|`_w2IBR=>#X$4b0!FMbnL3BVXF=%pqPe2GDFE z1lEwr^6rI|WBTq6wFv%if1z~rHV_WkWaJD*s{71&AMqCuK3Y>2>>uZ??UBz@S!X7c zLfADlACsOc?JlagIurr1FY8&8YI@yb$DAHYu^TqF#LXt4o0p@VZG_b^RrJ7e>fh+j zd~U5cJNASq<MTE6fw*I)v~ut|iib@Q)E@xstJOK*h{aRXH79jj?Hk>7_!aDNgtPUg z5<_&Q`G(W{D^0^EEq$JW3L=)kMmg^JF?^a^jR9zLnz6yoUin{zu#(lYm1mWSq)3+5 zVS^gfpFA5an1@-bBCSoaSO$K9RK#;XM+^vDOaJ7d3YSsLNvIr5EoUgOS63D7FzyGx zoyfZ6J@9Cqz0y9bs?$zG2dS6;CxgXSI0lfkqw2(>{+$BM04H8%WjlxSGcc*b7J+0_ z(S*$)mb(I)DMJB3XtP16+xsH437J}^PfOQ(Um>{Uv8i9Ga7D?s`sS3eQkBA5GWIRi z-LTa>9kL!rJ0}x0QPvlY50?>Hlz5nEqvRexbY1@2=C{NHH-x#6Bfj+z;7IHTq$>!b z!AFGbKdY*P^IU*{(yTnN^Gl4UzPzCx`3u-3awb&p0!n`?l!9&yKnDUDQ=X*r;6WAu zOqc#6>W`PGOC5m(&MN*yc8eEFP{A=f3H_~Ty<__vjl1G7kmaIl>|N5Jev58Mw+KwL z3;jY0n*#jvK7phs%b)^KF-8&`t<iQ}9vZ<mYipVCR5(x&_WpM2lJYu5Kiq+^)b*4U z(<&n#+7f&zYR~Ic)1_VmXhTw!5?Ja?=rCBohSu6VfdV%JRpWEs)L9$f>8So!rBc?h zB(_F7d7Y;zf7%$IFQshM%|iO(s0w&LI7Lpr?s8U}SK7==Z<2}Je~j+D^k@Y{4F{`u z1mzNjyFY8k##WIB{Oj2VV5#lHY1GL3JXinzsQ;bH_Z;dMf#behG_dpm=_$=!QTBgQ zn$x<p39qD3IASjz@)}?|@q3Jeo7G#OJ7pV8tQh`FkBs6R^j1+(ISUog+Z3at;VQoj zC0IA%$O(6D0fo~r5LEA5H2MUz<Wm6pewJi#FlcKV7>Tu6j{vRlS1oYXmf4=aUL?N1 zu++6YvBOIRp?Hqfle!-?O)J|K!r{Fc*qX}<@5(C}s%lX%f4I)_1TKEHR4w5C%{Vr+ zVyMSm_>H-amWGs{TDnBMs8iGblS$EXr~2HxiNI@8XSflFDC8r{8_Z#hAEREtv<o8! zHUZU_fQGr7jAMyHWPq-!h+KKBh??<vQM^cF*BM_o<vc?t#52K1iRa5pk2Jyc>E9k{ z2AmKgd4ha0J<4WfF>c~!&?>3D(F474F)6s?7R=p~o86{3i*h{-jD;UXPR}Mg)x{Ij zQv}ZXmz8zE*nbBcDg&m}TU4yA8w!%ooo1V$0*&%K!jql+Wlk&*NDv1TrfnuF*6$hZ z`(VE<2pFc8SXPt9P0{UM^+(o&hCsMo@3ELAtc8nu+WJ-0^={6&Tl!E)s6MBgq4I)v zc`LUzFXEeQmTO^=51Dp0Z0sD9)kk#(99upu%?eT<CvBgw)~@~?99cAR7Gzb5`t+P1 zWcnl*GVv(Cxkl`t`Zc?>J+iYD!wNB6w0n;)eBaU-51O&H!)6EZC03LFyXg4@ML3Yx zT0Iy0Vlo%fHsRcrT*{?*{fV(jiL%3P2k>PmrVNo|61Kf~16W;spU=WYiC76`KLV8U zG|kWVCv92Dfx{h0+3Nr!nlA5^)dnziiCRqZ{eM4xWgwo0dp;_scvr0o5*~^=;pBt5 z&t>Vh;nvR%9n?7CwXtt#vED)0Bz(7N3Uq+++?g{<!Tc`&<+J;lY?dDu0%9@@{=kKE zAg+&SpB<1<6Z6_<aOle?2c8G!ZGag-!~oWbT@;eP1w`cW_ROjw!JR><!rV#co9ayz zY_-M;vfqMU&|nTc!^dzL*kXmp?Dr6B>YNDI*m_Nqg8VVuF$~W!0EixXDQ=EPKYqN> zgi-FgSwAK0IyJ-BJt1UxL&1vku)7?4(Nj1^|0^mNA=PBE?QGH0vIO=vzXQ|2@x6As zMGEIDkVM=JmAXl=Lt|OJoQQ7ekJrl2`B78`PAL^7J|?Ab3{I7k$1nOz&A=?2VKt&M zZ68KIGOtmXpUjAr)2g@mBIiHnCm;QWZ(+Zxv#3_^O`rmh3~sBHw|EAj-bn%Vg9>cV z7HXsdbsuC}auI=76`>8ksvYxhkrTAP-yNlVA#RKa%7+*STgBf#SC~s%l4yLgt`F$2 zF*)sWS@C!*6_uMY6@V_4DYg!7YcFXnIfVzZXekOxYkJC^SH#J%yG8|hZ>8^%9F^4R zlx}wjw>gCoSR%Jzy_ood);?dx&RWo;x&t>ZDFQ(e0z~CSu^=#fvlh_JZ9hL*C|y4I z?f)|l*Wm$rZDAVLQd$|#BKP!jVt6$4bMdxLn}$%D>y*1ggIPn^DW?6bA!BRYIv{R? zsK_O@19DAeB=~dnW+`lgP-P7=e(@#vDV+!O@k_RVf6-vp2A-ruA=2p-P@ES4TUl;4 zK05&g8wqR<#zyDG9p89|+cF|Abk|joY-vXq=NvktYf^1hZk+h5rG~hh&kU)3uu2MI zurc5%X-lIE(>659+lC^hxbmo7Z5PjSins90w^qTSvE!;7t}Zt-n26`Mi(3+EFq`c6 z;u1}Z>=4}(Qbt>`XS%xnt6L0G3LN+whsBcNT_zXoI-z9n)@gJ+spj5J?y^+2#lXu% zb~_-abUz>AvJ;Mw)N|L6X_Hhdf`AtlZawhWOy$&Y>x%5%0L;>J6a1X|s|>2`e>OE! z=Pe`c{d_%3f*>L_P#wAKr=W}HtgQ7xyPMO+1kP7Wq_6`w&&GN#f6R5_;Jx-$YlYvd zTgo}iphl=U$o6|`4`;J^W2)ev<p=9b-Ss=|^Dj}V9~ggFMFsIe8G}=axfFVYK^@Lo ze*ujJaS@_3oQXsVyodKN)*Rp@VRV*A3CiAn!Ar<gc*G=g#*p>`^;w8XC;w_Qu$3>w z3NklAYVzSmBfKQ?ra>E}%1qrpnN6hS5)=bJ)OX7Md_rm+#=tj6I^zO#)IGt1{)jMn zz`wHtXc4aizzh+Cg-jBWA2Jv=%(8#Zm#7`g^mKtVwb+7kkS`IjcL3l<0)R4_)t;?r zw%oFk1U6s2g}euF?^4bvf2n7;45+qYV8`v;JxD#vM>h<)GShIZ)f8K|K#+tZ)i!$R z)1Ow>BHE0yzcSgN3CXK~DHWpbKz=K!rGXYn_Z^FQ6x2+pXSg{tf7jU^he1%)j(<1f z#H~nm(=tlis^*K?th@ZUZr?v^bIsqcM|n7%S|<X*Z9ZxB{nH6d?hOv#9*SfcyI~PF zlJqI&OH@Q^OYJ(m@7aH8t=VUGtLRz6u!FwovS54sn{1^oJxVoxtMy%o`y*-!N+CV_ zUyh1*eVS(cY#_qlkdPp12}_#eUuq+#g&26F^wy^}Pb%Tt4zsI8&+M{}6f;9ak}Y=N zEHYNvoPhQEK&*IM{Y?xXWtfhs-?TS&ID#|Ns@&RUrYRW;nd=F<#yVWhD-m5;!~8j% zQ3|~^{Ux+!e2xPN8=bKTnC1T-an5~F1Q!6E;x~35+S{*UK$?KL4L`dI5b+nXY~B?d zhiWa6dm4g*r!*gHiCoeC|Lo+aw|ov-eK;#-jkJZXt-l*i3mE<QZ3hQ_@P{6eJ^q1( zjbNTPQg*{J6tCrH$z-DY_XErZWeb9}ALiK!y}@~bUPsIAZetT-0b8rSr>XvrcYPz+ zx<}rw&(0(av$hu*{CcnV$SF$YqXRd<PGC<vX$VhM>mSY19v$=KQN!*Lz#hgkc1uQJ zhk-x0O_asW1M%#c(fqAH%z^bsSc?{aM3VoppqXP<8T&PY@P;_$hkYgGJ}`fIm0$71 zw+k$itq@xg_E+<N3!jKfRX1!j^S_HPB9E>T4lBqzX{-flMjWO0kCqRHN{9ZC^l^j| zb;@-kmV?<h=7n1FK)kWqKj70a)P4j?N?!z_9{4xDo_i3vl5ixMnF?_vWtxYHr0*WL zGE2G5mVzku^Ufrc+5o$o5T?zlwYwTOs6Nb1iUlD75gHK${v5A-!;;X%@@$>A{~-~M zf4)Lr;~hj5WRCpH)G!X~EV;&j8>Fknm6_8r(;wJn{H`#k8B6X*udzL!q_i=mHh5jT z{r*i~#N|oRPO8&%<4oU7!~DmpMXTCBuasZ?w3MGHpqYv1VP%@Xv&Z|xD;xjZ3g>+} zw<jN0+6&o?)mgXrn)bRBRqg*i?Oo=}^86RYl7Jg9tMOeX{iLlvB7abnaC;{|e?$>= zM89DAd(SU``ai`5zU?dLOZjeDz1v#B3}|X77(ye1m<7?al>z-D=ztkn5#v4@sW}ai z`Du9jkHNJ*RT8HCbxw&;k`)+O8d^EtyI-u7$OxTZL`gws%m@50GLMpo7>aj`A^PVW zXFO+I<;HIRcG7|J_q{OQ*Bf>NVDf6p{gLd1Iq4D;>zD8`-oJ2an4~xE!7JHF_#F}i z4NH;7k4+**r|dasSIUf7pAF&(`{B+#d!M{b!d)(`Ea~i5i-IQa^8JtGb6EA@O+fol z!r`OJbhu>rM0JWkOqz;nktr1M#NumU9h2j?T4VS`-`;b7r!CSi{8gv91Ve;IKX#~6 z7;BRL=2F}HY{}KE0Sy$><|lz+4(Qi_rWa5CmFl-?PsA!n-ecJ;c%CqrXa(ikNnRf% zrQjq1nua$+tF%W1ax~;2_&KC99={4fk^Qwjvhdgiom_WsBMvUa;scOb5a{6-Ig@$5 z@4UOFC6+vno<MdE8Z+2u(VzHY8za=rCLq`k<!9Fd$<(8)qx$vovU>PM;Z9mXiNwCJ z`cPz#V6N1P5z|4bXbIHvgVd?A2Aj6#Dg`c^|9(LgSnx(jD%cDDGddyTi5*3R?{tOs z{3-$ck+fEnTc*4fKc+zA^S$!}#=PV#eNcM#9<lA#)XKC)K4(`uy`;l`*Z(9hgKDn* ztgGCT_<HsGZ=M%`bL&e2$rQELrguUfmsQ+OPaF|PFaBO6NkJ?w8wRPELug4b?O<OY z8i7Cj_Vo1h8>cMXr~+Q#KC$h&UGA!c;uTWyBPrcdGD$n93nJMFy2MU0Vnl5+`Xmn= z8eALvw{~(Xgh&X_Se%0r4pW#kV;TVErbZS65;~DdK1y#flyRlQgG)4cr``~(>$PF! z1y}Qj8F>Y6{|gniVh83TSMlLGL<De9zSU-MzwGa$pb<Ddb5^RvAh-vyda=_Jgdv?? zbWjzKCTKutO>1o3&L-t6Atqw^GQcvyx=H!$_Yj?`!?6bqLY=cl9VRy5pnp%9X-YM! z?tn#641fY0ZJ54uPQJA<C!q(S1;%z2;e@xM&ia^msug}sLmf(rlNd(BST780WS@VP z$=n%k(1K78_j_b``FsEHpvI&{5ggeP{^WecC?<$NkK2PFA1pkjsf#Fw0pXJ?8=Bdf zFY+A;OAB)!g7O-qwXZhJK;C%o9VzRidG++K==dR@AwOd~+x->vTm3aX&hBO6Yx3dI zO4|#hqmd#%{kkF!Oh<<1Tn5D_e@Fip#217hMWThrDwa@4R{&PKjcX<yhk!yaLt>|u z7Q`9c<r6my2!YkoGp#p??5(&!+Jt`$j)01DifQ`R5-qBf*J^g|RMfLAVT*-$V?a<G zl1IW?TeLhh{FsNK%>FTrPclpJti;nlK&ja4<VADrJ}emAu}r^S9HVarA%ffnu0}7w z*f~9V#u~1IX%NKuw_4wTcc9-zQ{Llf<tZrhw&d8D_#>km$1B`I59F#xfLGQUB{?7Z z$`hnS!f6q);}{N6a)rr%k=)clHVdqTQ~7-Wk5+Omshyu!$>%^n2X@FB@+cC_02$;r z;S?MGsbX#vdrdyiEJ)Y3r1555cm3xjwcM<@V(=%5RqqG}ZNT^k`Uw~i5q9kWNvo0X zNlQOeSwW%EvLvIAwGxU@9>Wi`3BLgGNC<&Mq;S^zL;NoDs6?D`y0P1xlFfdFhl-<G zvA7fo70z5nq3^>Fqmd3Tn%fO}ueD?6lRcFxA=Stf!bnU)AxImWvDc;=RKs7YurBLg zsZ3wXkF9^R(vHC2MN~q8H=R;!*AowQM^KIumHJ@<#$GSD7ri?>0wY63KqwDmy!BeQ zN{5p`RZq|Eo7t!*VbebR6ROW4E}o@IuuuJdFChqbzh+-lh@yf*_`&Thlu-5y1@mU* zW07cV>Ip|FDY%K7xS~$xu5FH=jp7jJ7kOQUVm)7+qLalj>0i~7ECSTU{0#{OOtC?6 z<q^~F?9-{a8&4BbdvHRsR$babCQQt98E0I(ddS_%y~Vt>i0v5Z8#qV}mlz|dS?2mp z&B#&J4dxLN6_U;rzVhk8YGpw~2q?63`qyelC!Q4iLy+HNcAU@v&B{IvLK`R&WGMVD z9d^?DkN94LKFjWp+EiO<5m%|9+qb`<a*6+)IYbez?n;?JN;tbZugH&TSV7=B@l4Fk zhLpWvPQ^^jMf!-re#Ml9CcNRx{Z7yuFbUWhh=(w&)Xd_|oVY2XB$h;CU{3*-pIY^+ z?xiqNe((X(m~6-)YYAPF(D3$>GA*VO?jG~>N~25Rl<wBtVWQBboM3&T(9!L?MnJwJ zgDx7J54>c6Xe8EKXdYN^^B*w~@F2ltB6Y}wa2z>15S^z^uFG3kf9uuR>H4!iQvQp? zQe35MjHI+5(ZoXOD95qoLth-ZP-Y%J8@Tn5sN0%f26*NSKXw6Q@HfNbcs~!BaFh(t z4M>o~4ln(_V4UrU&io$YWR?A<Nx8|kkAywFtic*oBABpv8P|yWk+~_vVN&v-O6k>S z%6U>@sUKeJ8x-`Y=+VZRT{y_hUOCJf^s)t|X`fqMtJ2<%w`k#KaP3Ee7SANA%+onZ zk#!R9Ajo3Ratnc`;Cl7d(s-}TVb}R-YZEQCe_@x@HHe5Zm7FqOXAHNqS_>5H0w%1- zx|8tt(^xQ64XwY&Bk3UqYs31FoR(_gS~ls6YMNGEsuMD_mS6smK4NLe%l)8!EUk(v zg^OF4h3h|i7gUooO+thWrx;=m^9mI2an0aYZV9+T*+n*ir$SZ2*Q2bCceqtT#T$|T zw~<|6z@c}QEy&|!av*iw#2*ogA<)f}*%-2Zq>Gw;rSlQ1f)8q4pAp5^A7$<u2NGv* z0H<SzUAJy^8dUWwYxDR+0<yj?qVllw8FO5f!<@fq5m5iWL~rrFxd4y`BwtsHWU<gb zvWIv7+s)F6Oot(AP^5lgkvREqegcR}!4s9u-s9<?7_$kT%tpq?d4HoMGviQa(8rSS zaOT5LzUJcMVn)|4L1Z@Fn~!~!kC=}Whk$SKwib!P3nunD8<Q;T?ppGGihsR0MBMp9 zx^18{ghA=65;`T*%=U*5H7#VzVS+YWWHB0h>t16O7C~;ToP-g@5YjJPai>K-Zf%sq zIKF;;6YHUQJ)QDff#euG59mQSPzHEw<iWH0*t!h?3ry~c4!hj@aJ=vu!TbKhTv~zC zeA<hsMxKb)%ls8N%8Ln&g5O!%pWr|Itjg5LJYlel8Wrs}GN09zi!TsF_aVzkWyK!N zqb@<nH{ZN)NNb&WPnon-{uTx6c)|O=#sKrtx(+?uPCF!Jx?dQkp<h~z82xI}a%&t8 zf@M-h#keFh6X$8yfjRQ*)bAsXoD%K<uQH(x4R??Edj}o$YuNrCFaZOF6ilPjCCLk9 z0s^W`D(jZBdR1(6(`U>MRp!@)loD$wnc!@Dbs5a+nCg>z3v-oPG66ltJ<J38cZ;R+ z@096+TsB%D9cxC)>C~}1l(rx24P_m~LMce@A^8Q*>E&-JK=@*)2P$O2+;3joAs}}- z<=(ffBy(JbO;{l2&(qh#cT_wP%<&PYa2o38<t=e&K^@tW-nF4cV!usEC7~P&Qpr9L zYY88X`u@+n?|b;*4N&Mm+N{Ytm_6__5UJH0fl}o>P@C23AGNQ9j_&~!Ld+w)iTldn z-vI?<uG#|L@%Xi`5EZyL2RmOcCgZsvn!So_OpJ`|ya?_pG?G#@&bHXLw8~|lPFK^C zdU>I&=i9%$FsV+n`Sw)rFiY^BZwEvd*FX%&i{fmUC4jyj|ETY@b@@1Avk(u)gRC*? zGzXDku_d-$0&)^jQq`ruW21~{S-O&8NKGX14B!u!*d;c+Tx)~bE}to9A+!%5Aj~N& z4p9VQj!8rkU@+T*y!FB>P`JRN!OVgH{haqK1SSdO%K`P58*6Sx&8(jX*IS@R?^t#J z?3I}P$vCG;JU1_m?v}n-`OHL6X2zpd16JtJ^xE7a#nMzPWS}_-H6P(56X#?HpCD|f zXU=yJYZ>W{p@yr7-dFul<)+v%5KMv@W!Bt81pO$Z`q8=;B-_ZzL86B$4=Tm}Ds+z? z0g{A(HN{XVrjL$9&Kodo?ocIafWC9<RpQRDYha?p;h^+D8!u}bJOZnNqB70Cv;lU7 z0P^&OL6Of}0AP}W&f2b&Ic4Ja^|au$c+ZQbURKjOP6w?p3S)gh<YbQm!A<9&Y1~n{ zj%>Q@TeD-uK`N>qya>dVqWbwDY3ySDHnksh!)Tx3eup|h?*1d8*U@xgVq{Arh8U(F z>!b+f<lK~pU8S;Z)_WqnQ+^P+ERQmy&FA@JEcPDW;tDc?#&^SSnXpVusRI9kcX6QT z)dX0=sQqfDXID6rS6U$7(%RLJHs)HkaO*U55w86ZEtA%=M%~2{?s~h*=7zhv=%N(1 z{nPtlXP>j8o&L0q4ge}43wZ*S)Jv9+*>6IVDKl|gW`METQs_J&T4T9R&&;%Cp~er} z9ReyeTY-9E=*GJ9RHI`lr^>j<z5T&b+i64RHszo1n*rj_U?|mN=qo&d$Ms#ME;pd( zQeyfejINQt^8^$k%z(j*jKkturhdNH^y;M23#)rA2n}^FHG()ri%39f6mW*1Rk6Fj zxZY<ownC?Y33t@><|jjct__e%29Yx|c8>%$;V`3jjueB~^u$S)Y1G!vmyFF%+?7wG zv<EPq$AxxU{5EJFG&z=(kAzABig*UBe84i(qG{&8bq}Z)^-4q@(08>!#zeJRM?y!{ zO-e#B0@+%oFJz8ClrP@#_vU`_z*3Zp7h3}d0u_x-O7OcXRTjLx5NUOTAK}kRnifyD zL!4EkKYj>f<rd!;^C}@{dZNP;i;fYQ_k>0LzOR;PT}om}L?MnM65;OWX4m*p`7!8q zsM`3Uw#K++HL3Jz@%V)_V@tiKuBQ_8jcPPE*mpU!vrU*gTL9sMl!V#C-P78SJ`Kaw zkTr>m(_BfJxL(;U{nX>|<E9J6{Z7HSaZ+{bTkjoy@5-)5dasfB?=)G5I6A}yj$2HM z@bOi%#kfwGT44}PvChAig{J()?CGENUM5v)CDv9?U{ca)kMeQJ*<$)kkzZ=!<S-5* zY7b`T)!X@&EA2YWO!i9OqB*kO{+od2QK%%m>nVRpG+?T8RDknkHnSR!UHfXD4X<|s zOeK?FxMCD%k^9+Rn~`bVKba#!fc#&Tr@w98UmD*Lcw&bttEdp_F&3Z3knkv|@NdBT zf~`XqK_dCbxE?_p65BRFhJa2xqE+;;h}8JIGL|zh^fO?>XD<Xlk^c;L1-h`Xuoz@2 z%cd#6kpyFgU+xHy04%wbXCUaJDS|}BBu~W8V!qzgQ#kJZ0&@2!M@;_nHyf)gX5iWh zXAlEFyc)GSNdSsLwG1;R^K?Mq?tE_1xHv-&dN!54v`ne(@7Q99A&=GeUxQ2pz}H;Q zk1X<VT^G=jGWBAO(COtf>Is^@(_G}-b%Wpg^2yY6lW*N=5}AKp@!{yha}v;TUSs}8 zjXctBVQKkdw;Am=$pV~cix2M?8<rb~^<kG*#@;&wFWuxF0PXHh!jQ^kY2-jq0jO{C zrW^K!ye!=~gta|D;PHbcg#{uTy0}os+T%Fdi^NjF<>w7fb180xYSvG=)7mPh3%wbL zJsIF)Qy99psZ5$MhiS`!hjovMIYqN}8mbRN8AaJ5y+JAx^^CJ{XYWrc0+jVFK+|Md zg4n?LE*cTZ(&^qN^20m^_jr|@IL@>M$V=|BAcf6_t=<)6YGMm37ngE}mg;H7B6}jj z)b&~CJ2i2gd%Mm^r}zU;BuLPpVD$88ZLyY5NBwDW#Zm>F;H<_wf`c7f&mrA=vm1T8 zPX^j_KV8~+8(7dY=us;RsDn@9bpj+5OKZVSvd=7!Z@%W@0%e*Txm~lBNlX4Y<P6C! zGNsUWz$3W<wG=EBN}B-yV5rRDtS^4zsb<hh@(@80{NcG7Vf?~Qo#$apt9fqY0=rk( z2$>>&9TgkNtHI7oKvJz^VgXfn`J}E?CU*4J*A(iXC_gKL2qbN>X}HPi0FadEJliPI z?|T47qEw%nB{0Zjj~Cw(G-(9*1uXzZ93p0-tTM#N^toR8tDJ(}w&A6jAqZ!l9V!Q9 zpn(100Dp=|>RH`5RRb_x5)H-=jw4R_G%yrAuDb6e>KkFlJWxFNpItgWds?hH1Fu&b zhtzkR$<R|~A<{jaC(FJ-13?35KIN7OWm*NAVA?msF^tB)7`kly!O(RpfTponfxS*8 zy?4^K*6K|p8r)7H8hk|_M0HDC9iP|paP$IIdi=ow@Z{$7*34h;lK+$jBR!Sa<H68A z<8~FDJ1-hhs^AO>%YLB*u;TWR2&fD^R_?7xM8vAE4<CYxLE7#5kjwnv*#%NScdj$y zc%5$Y2_y_-=9eVKw~mLe>ct&yfpLJv%Y%YNPzqbGUcrjLmqNL9Cd0!B@LzFEX}}0H zqU9)i>zcwp5hx<8gFD3n5Z)zkS|&Nj(meopCqQK=Zcl)LEtZ$sey`*Uf1h29bz_~D zQcSMVyHWIHrzZlEissu{@UGL|Sh1hATPQOjox_ZI4HrA6J)hppSZ7ghCTq#-?mp=( zul-RTk6e~WWq-A^Qpp+gUFR@;O{n%;b~ThJQ*dX&N*~DsCXbD#u5yDFa2sp{pk;%8 zNc?FSAnREOOoU4ij~abZ#>HWM>zM*XHUpFa_V#hU0Hc~nlWx#-_>sVSQq4oR&X{%5 z7cAs;>kIS&kKN>9LzUW9F%EE-!6yLm$BbCmtDZx1|LBEL<QK;31~A}>Z-dg%)={BD zKd?mKBr~Y;Drnf`JRYb9Fu!yqOEA2v3EsXj-tUG@7Sv7tu5I5XiO%)T<S035YqkXX zR%3#W`tpS3z+l6e{_rp&Ph9rev4fuxtwoD+<N`HXY1A$wDmnIKYPnfiL9pw-%ZC*k z1*z3%Vv?M760V1A-Wov#**d=itBBwX0<4e>M8zv0ABMfpACB(DdWKFe_$zJ07yB1% zLX2TYxBD)2Y^8Pb@s-YtC$xGuCM!qUY;}X$r5iPeM&tRDWi~vo$HCaAe|?eUJJZw- zC*m!+BKCw%$H7;rs)SC71KPpC5$`HkZgO1k`I%TOcK|F_zo7V%S)HR|OP1y@h7KJb zjmgaNn!s6SzG+9s%V_L_Zu&Z&Gi0%yj3%82Xa_PC!Us&?@nf(i<y0{Y;X>S%^wy&f z{05L7QxLOZt_2fK+_TnwyWcsbu0LS^Qr7g8;{T}#xhG`JYxt)!E2m#0(xknw?jZKl zu6@;BY`=WZM7MqhMy+KJ$8G)q>MQ>P-xPWHu3Kw8zHxcO7Pz*}hF;?6FMwltvHS}Z zqj=K`3R1!wo<8R@t52Du+X<Bs#E8L$z9OSy9s;?BEKbsa83V<Gis1L5msc;2*Ya<4 zU<Sa7lmvYBSv`iUbT@IWxN-s|d}s#X)-h)69`J_MnhJoBV(_y0Dv@0hQ+`KydK~>8 zBVv&1fg@F+ya#m_obpFbCIST-L>KMu%a#w{>s1IT;O}9Ztn<cczaLWd*PyN;Jl))T zFvS%Q{W~lamZ^Y0uX`il^9Cvz{2Oa4mj6w+X*?6bykf|#T8XGZrej?oeP9fpnrld- z8oMsc5aD}Li;7=ZYJ8PkG0j=VA2;A|@C&|Y*c$sDagTq~?Yu7#+TG?DUtj>sVoPKD z;Fw7j!&gxd^X`p?)Nm1<b~t`E0C$!In(PeSw|#6ev%@X&=70SEwC~0A$ddpBk5M&} zOM;*yRnf<01PzMMXW}pHa8|eHP)Bg{!dYxRhs~6c5WDqMi+Lw7?woWWJMxWycMjTT zEHQuPVpYtYawm7E0f8ptKx*QU?QD?)*V0B&Y+>b@egAVrF6c08o~^)KS(gz@`0RxI z9I(m+wPu;B{AvuSHF*ev8@oUZ)>T(?&FO)a_i6c$OlV$AcF#R&ct4qiwJhF1npJ+= zkLj8&ODImD7*Qs`<7m%g*i_EKeG8oKvyMI+hwz@xR~1%Bt#$_IiRY7g`q{uxKm=PY zJ3_l?70kj{Khnzg8z2)Li=u9RJ!ZY#rHfd{l*}aRJl0i<L7#|J1G_x+_q59If2IkS zXwXHR(>mlHk@Mn^@Bk`9v)RwXi@M(Fz7ugOTd!eeFNQeQC`s=90nw+1lBEQ!*al~v zLB&67-QChqnRp6^3I_YQCm_I#jF>F{#ot#b2mXe+Gyvp@jR0{U7FYp*$@dP`8qN-W zFY&22S3EJV-xZqi5~Rlo=-CWKK8_LzJYLPP<jDLO3x0HUyE1+li`_0sH*Rbu-|y## z3fHI23R4^34YAa7a8TzWQAyg)0!TNuSMS}`Lj&>dlmu~9a6!a^98h{-gEV^{f8Om7 z7lo2i&^1gEQaOy0IyJgr?%N&g`f<{-sD89I-gS*d-p{Us(~_mdhi)4GEX?&^sP=b| zZqnSI4y=haL-Ckw*{=t6JC*;9;WMeyof-kKkQ^c#e-O6D(9&po5c{**GupQ+%5swi zD16`8LX!da$3({Kh#_ETKelUyjc+;*ul16NWZ}k_4@hM8B+TE!3w!Sugu_FTsRqr9 zLY8vRzlu`$PbO`Jet>0zA?bzSPiuaF{$umJuzX!W7LI@6as_e_-Sm4TnrqH*!GxlJ zrbR-@_=y^?@icEiOU7M^r(jNHjPzknU%efHkQD?^)1*aZQ-+nx7yHK|)%M9Q*z7|B zT<{>Xy%7ae-gl#ipjDo~nJ$X_4^qHK7GH1}`@u{-$=7%abI$!tvTo}9$kKCXl`jUF zuaq&Q^dv34+4tCYcMt$z%Q^oegfjC80~*|mT5NQ_DTs*7<OInNHiZ*9WZW-=MF-hH zHKD-~6HiJbI9Su`AHR~!5pJD8lR?qFL>uDEinAN0B;kmX8(!4&o<nr$8E=sb%d}bx zz}VPdV2K497;ljG+q9<u$#<tX-McXN0>Ga&2TBBp;d(xabCg6>{K-H7OjEerJXP_s zmmtHc&yM$AhLoo_f1pS2561f*)6mGv?POJw=+G``f7-xX{_tWE@Ue53C+$Nm*XP}j zeO(PgI6@(gECvQ?kCU=Qy!InMxNDdb&QCl3tkPHmMpC<!^W6>N-$OT4c_Jx{cFrqZ zB#rh1ruvQF2dzVpQcyFK&T6=|^m99+BC*@gpvkZ4^h&CpryBI%A7rLkAMXEIj9dr3 z5^DaGXVUp^^fc=}nY73(EGkiy*qmewLlb(w`)T~$6QJ8lfA!%rhb>@w_W+KfT=NRS zTjFAZ4J+&`lRxwc;QF9EfCqsl#0R3*!?`6Eo`=-4w|yg|Kua)2XGwgO*X~)4DkpZ5 zX6OjW3A{$hW_&mJ&}lQpm~W^*uU38(#QpxE4BB(##y12A3oAZ`9C|YHL*))-5C}v* zbV%zHqPQAW$><p0dLgJs1ruBQzfnJFJx9$}W35k&a`2o|U`wGzglDQMu#-4MuZEkp zOiKP$_8T7+L<Faz4J<(_sm!v0-N1)^rL#vI0TFRlG2CgvPK_>h;i#pJ`<mgKA;9?E zq<P*li7I@x!joKQA|DvHMEy9fQ4>{X)Vl`ge;Q$CLpp?Lu=fCEd8R>J6G?qrvzbQA z3PG)R_KXV<x{hWtmM1?2a&ZEo)+~4tkbWstqCgYUMS8$tSXy%6Wg{%rE;k!!rr0j# zuF=VzYZi|DZ(<sXhltPH4-_-1(FrfGy8iz4-B|No9w_EG0Xbea2NX|hiv^PHtVG0z zya4BQ=8WpqTikO4<pL?aGWIF}9;YOJi$}8Zryv^SO&_)irjL&>v~(@1JHNw<G96U@ z9vyzU`Y6!gvZS^=?dJ1oyW>}SFot)&S*K|hnMR1uNG_z&vkaBgi6yD}`<jA^IEG}k zAx|w!PG*Idc43qnLV|oo#B5zcvlKy_hMIIRv-Tgd+W`2=8+0P4Y!d&q&LVAq)Obi9 zd?=jBCwq3k+ckcg1uV%MAPO}Z_#aXOOJ>>yxptj4|D8;zuwMKv@oCq6t?<+BmMf6o zn)QTo1pG4fl#^`t69G@=O2`lB5BM*o{sRdECh33R)^^8AQlP*IG<p1n*0=*8rRgNU z&=0iO+6NVBWqX@`OuJ*K{FlG>Y}BG6<F3%aED%^hE%gWIjkG<%cU*2hA6tV7Riw5S z_bffiw&7gB1;T9CKG}8|5;+yKaPb}$n`&6+de4x>d7h&sFfgFlG_(pqB%oJndx4|^ zDVKHi^QE%l!E3ybYJyxAN!Bo2+isu-91V#q_;cCa`uuP?!TJbM5FJMq7=)rASE~S^ z(JN__Vr-ONMv5`Y9&HfDPjeUde2=6&BZ3<4b$Euvt{>UrR|KX48gX(n=kpv_k)%RY z*fb5m^oHTZ*BgjMaKa^q(%Ta8TU;DbxWGjc7$@}hwihXJ*=Jv<?R-Zv$~K{i2#np@ zAled65)8eJ2t(Ua&-H6!drNnRG%u;bh4W5~ynlvt24>zd@ze&w#L)Ug(*iAcptqf? zrM<^Lq3E{HQkwadjga+MZuRL$X|G73W}}Qjl4XL7l>u`fUj6I(*-19rBgJ6Czo<sL zBC@M+4_)488#iO`g3otNJ34P72J-@s#HHWBye>CyFgh-YRzM&zki3+*mdRR!xop;D z1|G`m1QAleNCyvZ0s}p`Ic!?xM<T9dRSJCY|5wsLTHF2Pla&mHTJL8Sh=%3$b|TxA z0HLh}9La`l*)Q4w0gN4;`#=O5a5h!5d?vua4%un1Z2PT-SkXF&Fkq#(VEEG*hfaEH ztC8AaM~W3=*_e_U5~^leldsNc)2H+AILoMtTT+|s@09Kr7J%jfa>F$Lqu~*>R94xI zKmaY#DBgnZ#(qCqW6$yG;Y5W;mOP1vs08U@!$&^oh~bj4SMHttSO;f?v%(S-*}ngR zUl7g|{U(l($B2tbN<yLg-eZ>IF_|hH<)8}K#UKO<Ot6aoW!4&zP}ndZU>p@9Y}s4~ zF-Wz7R3c2k*~@_ZJrz!+9xIU(mJBclDP~@8z(GdW=b^ZhiSm(5s+UlVzhf-*;L0<x ztMu-NlIhL*<M=FcIOpXv&^KWhy#c}hUI-sM+f|62RLOX)PN`W@((7PDI{NwT?fJ7z zQ7V!rq_z1dagdTj5(ze!F<rv-t{y+k$t>S6yzuMUGwrWUF?`+UVlH}mX&{Cvddv|c z6faJIAmTePVNxsgmE0tr3W=$wEXOkw{BJco<U>$hU|vsqkAk@K$_q=`Zs`BkxU_T1 z9$YGu;Tc^YzkM#S;hoVrWiK6cwoJ{QV|$OF`9I23OII>3hYU+h_B@Za%6|4ou_!(Y zsgs4LkyJy=i{TT(3fbEyARC}YtFA5A_qhO}(;J{ziZ&}&KLG~{743)=${8pbjD*08 zXu~Remgn(X-xY|d(7*n&X^$IXu5OG(M#K*29);^!DhpE)vb|#PDj_}m=g{QMnB-5Z z-UGllp?NtyN6_rG`n*#=<w@-mF|Y*<3hn8s_oLvE!BE=ErS1hk{jpc6GS5!=^!lNN zVoTY81Zx_^u+nj(mL{JY^Px-mW9>?TKvHO>%m>LZTN~3~d%kx5uQxx|{+oeIbT)ak zshHpQU`HZ!22aLZ88WX(qiw;nBlRO!t7?3FCvLd=fq7Y79*M(4b#jH2I*5Ei<i7eJ zF%VLmeUP6b%Qd>R`aOLOZdnw#Km2{$dEyPIa4*Lzm;L&=|GD<@eyJNx1{;ihwAj-U z&=kjF2Km>bCousY7*yq@gW^T3q7)a`gZ0+5xUE>y3QWp3qw13uS)=2NHh0(z`y&0; z6~@gfMre+K0HoJO+au_-&+q8fOTjrP=Q8u7A}};DHPsT!K)8Hs5|#;l7s!Qp|GJ(U zedI1h^z{kEs<cup0$AC1s7LS{y3?VP{M4?}&8hyr80^S6g4`+*#=yL5xLKmIa$?ox z$N3*<va=q?)88JaC5VdcFMzA?H)rR2pJD83W|cr<y#iwnpI*@$Nx|1yU%!}V-rfjC zhCq%!*!}C?`(O3E&jQ61fdr!cQIx9q5`Z$C@KI{*odceeyPS|Az-azQY+Zp<F8*!c ze^Boic>n*JEjcAwH-oa#t|=akKbl`IfEM@c<mMQ58}yN8!FAw8!Q8~Fn`zyFX`k{u z1u!^MfYaQJq$EP$YPj-5M}tVzy4q1x%a3~6=YPLc9B>9KF%xzHO$_3qK`c1zps;Zi zCHQzw!_S)ZdSukUX(`*AJ))fqr@9qi-hH89$tSL$YUG7Nj!mXZH{oVUJ)}x@zc3fq zJ_6nOy{Nxs9dn;x@*al5ym5PAhPBU4T7U6plK>yyc5q*NKfipn=E#2eD_aq#JYMDE zU^o2FqWi$Y@^j**%oAfr;x!0N7USZw+OnDq*frDeP`KbiK3un>;vcAL_JG81h@?-z z!KYv+hqa7Y_3tFBig1+TS{9uG@LTg%9j&v8%aQU3_#XuHIO|0Ih2~$=oa`SObzbl0 zNM~JCXO1sdzi-r;@dOFW*ePIwP`WUB>s0+(WQ;X|sjFo^r-q|wdy~5ky*w>~hBavm z%@7(_qeUgBrjFAXpAM>xpw_NU4Jg{KhZWm?6?oS<8}{|Kt$trlrG0D4&4JBE5~n0T zjz045yuP;0*ygCwpAonKLmsE&fu^)Rh0i{<BFlfQ5{8qdwzeOQ+3v+ayys-dem;CW zF_+9Z|5i){3n+a67(X$^r!EWjv95y|6!H1>J5KW7tgPv!?GVbf${0kHqt6Tuhdvq_ z;?p-c)@){d>-PH?D92wf!lka{@jqsKi1^t<cq81~>VXl%I_Afij1K-`Z%*rF>Z|z4 zcL$owlDziwCW{X2UH}wWMY8|gHZkMVZp|7U+qe-M8iCkC^^V@e;f#XHG=A1o<rE^j z#KB92%nDHUsC=7`o#zN+w<}Fg-jJ8Y>QEL~o(!f31hnXsRsg@zNSQ6MF1JQUoBbQ$ zF8p~8@P7|`c3<GMj$EQ_JO94C%m)j-@V|@GTx>La$oTc;r~Ipq<HnI<)jScx@6ZE@ z*CFMzK<xGoP*!q6;T@8r-*(6iMwV8>R|udB?xf;Wm=k-?mS5f%Y=!{;(rr-eX01!p z$V!*y$2WSw+TR^H&bbDlXZ0c>ztk9Lm1*DD7)UehAO+c|e-^B@v(%%)1uT*8U8AdB z`dE4ZrBK_Nu<Zy{&*bs$8qTYCq{=IVp0M}X8V2}0;QC``v}rj`^QZofrnICbHC3(W z8x@1|8{Qen#p}ez{o|^aU(NU?&&${ZPqp3Ib&!@8lSb-r((3nO2(}3O6OAggcX*+Q z*qr8Bd6~AH|5=*cUe@LB2Y_n}W@zxm@tWAi<d59sKzt3&Rm9|G`ww9aWJ?#N-n|3f zS~XEvi!30fZK0wjiMQONDFF3pOr*#S?h^il;7Sj`gZf|#{Q8ykQsJkf{*{CW%3t-* zJu)tH&epu!f0Ayj{Ap)?pClp(@w^AX71<Ga@rUIKmp0Q{MO-Z{Az$pC+QeRy={*~c zbz1>oYY$jtzyKHSyFHTL?)BA;f5b06?tgN8EABw92Mq_Kh|ou1CskA`Ufe`hS+oRE zhK9!t?no{UGYu0_?|c>iUPJ)K@h>srsK!@lj?>uC{Y(KT)2waav9|%Z+p9f<UO$T^ z0*C@q*7w;=th1sQ)83zX@n@%3OfG>_sIu=0M<4?DLuP-Y$njZ|mY0oYXu!w$>LlI( z?ys~2h#Gw*ucFdAJy5)Pb-bV%hE8mT_xwVN=fnn~yulCI^J-8vuBfP(2Gk6SQw5bV zlp&@90TTr-+8*^`b~_Ew#-rkOXz8BCY04}5x&&|1o8h!xlC&+wp$)gYV#SG=ehppm z<jl;pz0BvAZs+f3oy${VcsCPr=gqbA825?x06^j-7a#N-M;YmD1%&Qg?C-Hy07fCM z`3WEpvW#+0V>*i-h~)a9qTixSf9RvNIt1`vzt64-e79mTPs{g}=*vM8F{XF>eUc&> z9zU3xIqY^4;W=IG|K6oygziK5|8|N!TQ{2vED}owI}N41wXXZA;~*{N*UrzMQi?6& z+o?%I56;BvK%npt;QPYxG8IM612^aQivqq<h(3_p^i-vwCO;4vb_&=EF^aHr{9xeq zzMpkY10>y{<oAC^<}%S9j(@d~ydTotD9lV7@b#G>)baUhx%Jch=o{Am-;$Vq2b}1| zvaq~?x<B6G`ID~{+Xf+&tjS{r8effbGF>k-R5(>a-zO&@%CDSO?!FmcWo_cd*gN^R z0C<0t4EPjNF1690hYL=&^Y0WD-8@Gq-6{7=u!TA{LNNP(S_XKKp|$;t<^WiR&}7`P zoqGgeYSx3DR0<J-4{UtH`d&{%axDa(+`qnF78f@zO2A>Q>%CWxhN&nNvtBhRDe3jQ zckdZ(<f7s!o0U7=KEWcbP;QKu;l6S6eOl^*G>X%*eba`I-94A(wQ)QJB!--Zw9NO> zan`Gj??(_ssy=maE4r$uZnj?Cug#vo?pBQbPXmA?5+G!Xa(3`~4ak&f`kohWlyf<b zBdv^#>-VHw3uXY^FZI8&zo{P4Sp9XRllQPwWL1_eby(D<isn7}4Vw~V;ag@bXnoL| zadFg0u*@sn1>~;g)v0|QDkla!+pmh^;22u2n#?!SK1(BJeF9!Yjo%--e!l$C9{!VV zpuyz6t|)K<`9FkxWl)x3*Dc*364Kq>NVl|fcOxa;-67pA-QC^Y-Hm{RbeHD_-*es{ zXTJG<Im0;5T=x|_)?RzBU?iHC>nhsyHZhgo7Jr-|W#B%*<)Nls-}EM~2fmHtv{cs1 z|B?%FSeo;V1LN1jqu^>`{H*g2Kea3_pdB;VSy#FCt(FLo8ukT4vU>qmMG#aiwroBZ z(5+eTga6aB_6t7H0e>>WpI6N0_-n&<eXOxKH!JjD^@N@$&p7A~AJr#N*$!Y@+5w%_ z#%Hg@R~eb<bs8$>BS^)ZpDAtZ-uNF4m7=JRM{@5s_}(0bW=<VYa2nG3zW41-pCHGW zG^db26AgKIC6nQ-6l8@JU6Mu)c`q971+oEn3ZkY+$9KZ3pW}WanUkz*uqCn&BZ8^g z|1|6an?LLt2pRV9#0IQ2bo#xUILV4D&>BDY+`;SOIKiE_bTTD?93J=9WI!lcqS6IS zh_7Ilxsd|fTM2Vmk4VkADx6GAn-~T)UeC<;&9zV({N)2TQX#LezC@|C?(6G*bM91N zzq9IFR1gUa=m*Z>>p)bOK2Yfg&21G9`u-+&@V!@USvVVvbamcVfXZusB_r{tlzKa< za;(@_J_!;E5iPw;0gD8ZFAAmKIuZWFQ}bi5NX%fHk(KndR2v{U<AZ)Gl7VL5sya0c zpnW&A5&=*oP)NWO6->-Nm~<iFJDw8Ee&`HiNZIe{#x07+Km`LbPa{@_+@n+)ksMXq zuU$<*Bd<8E883x{ObmRz1Ct}f=RNe1(OUMUyOUj@W>Q`wv&FY|@V7zW-MRd=DpY$I z0GteStgRD1;ACn+8MYljg&Pikb?Wuf=a=k{xWm^%#=;ty{85O_tEV0zxtEMQ`<P$% zsrr1%t5~r~(XIY#OdPaBQeS|ZM(k1o0eyF0$7>50o|-NWwI~<Co5PR@NBGW`2^Gmi zhs@D@T+#aLt*E>gQfiC)>{fJ??pzdEt1$`_rMmSCDExj+gV;R4$mP<2v$MrPF#^K{ z<xtOdvu>Zk8693vlk%Jw0_32&0u1lIt;hf)N1D}UT>#+`9S@AtGlNfn3>iQmOO7%4 zEeoCAH>Ec)TMR_@nWEhH&BP%MCYl{#8GFM(zp2sketV6KqN4_zM0BJXqLIrWn%U2l zE;Wj8x!dprd^uc{Pq&h%1CBG)`Jo6W>)I%FJOG&Mx4Lw;sZt1j?5x=@^w<CGwS)%7 zly}%KHQDCAO&ikT<m4nT=mh$p9{|OhUw{e)kh0$(23kicWn3Yxkp8H>GU}-*zXaMK zX9OU1TkF0Ns(!Fw=;h9TPC~qbLmH-#Vu#=RVfrmFBmD2=hC7IwviABePS9Z>R<b^3 zkbW|jTctvNv0hZQ1#7CvS7|gwk%)&_hRw;&;s&&@(z4+OpsjvtActTx$Bc{#hwT_! zoeNm>e8Jo-)+?TO9nO(_I<04!_P1VF6CKB8?M_M|(gfInN8F$a@V6sRPnYpaCmeZ< zx-6VJ%KMyWq>q6N>Rp!W(_O<!(!Z2tS#5TdPp>nEzist7dswk6?(Zkgvktj|kmD%8 z8ylK4v3^ahve=<eM9no4wewbo=w8fz5uT(Px#B_irnd0}G_;hI%q>+LlF5Nnn2_Iw zEtVnZwfE>D{R~hCDfLAS=APf#Cg2LNE8}(^0Z5;ubaY?Kv49=zSp>9l^byn5PCigL zneMd+cQ5`qB)c5W_HcE#u8`X_>e=cj(LmbGN{kSy(F9E{<5kEKKq+AU@B=of`$aAg zHBHJQ3aupB410$%k)`9CgXO5=?*lqoy@u0oTX}&oZNH15WZH&OI#|&W)9+&&Cx2Re z>I0-cl!r81Wr@F0LiX1QGJPEw_(JJ+be;V|O3ouUEvwx>&1z%ULD&9(P6MuH-H@xe zZ}O?je5;RYqjr#^w4@}jtW0{HnuaDnJ6rHg8p`{=m*AH#H2zdqDDRrlvAkOIDdX+- z{zu>F4<9}iUH>xEi`L?Ht&#@4pRSQd4W!~a28nKKViRtHMMta(q+KV><4~lCT(QCM zE4O13KxJ8w9JPOZw6Ap(17`U=l><L}_qb4MTHuRX>116Rm)k^RofgG*mdyBtqOc4J z-rGkSABF6yYDrcoR38dd6qau>&TOl19(&{O(g?`HQ@Pn+tW?M<Y>w*A%@Z!6SFgGG z`QgjGQRC$rV~yRuipZMfrZO$(B6T5sH82Vs`L8xEmdRrhp^2jdgTpSrlj<y`Z3`$* z+(0PMLiY~*pI@REa7)-zkuuAomqG;c-I=XL5N2E+>v;mbHhREJjw7LDG%$yMWCA<( zBmGcHak?v%!S(4!b4@zFv$#%|%&;9yI=X%%8Ez{H2I);4B#GfKl#^&inDaA3`r8uU zI0nl@_$c54d3I+y{mgy8K&|fM9lNt#p`M<G2Qli+r)XJ{6RYkrC3VI%)+q(GHorjn z+wj;JpLtkpcSD)xpe(sw%;)u$-I5iCz`Lf%c1b&P@O!HC?a)WiCPhj<OcrXceqz*g zX0@4V7*Bt$fRaf+;U&Otg_7}@eQ@1#JWz0G8lAx@sU)fDwWAXmD<HpBj2cfS52|Oi zF;MIId|D2yt~cj4Gyi>c?oVSAxxnf&+6_0Wfz|yYCU<ibOGFvk{Ha*M9-|iIq9W-H z=~GvSB8Z}bxdxRHXUZq3Y{oq&0gHGY$5%u@M9qu3L$WtuHeSp}VlWA<tC2ao_%p4X z8=K=|!#WVS!i$YMyex?6F7@t{X}B2fuWEmWspFi9d>a0URO5=GXZU*h8?k>Yz8jN@ z&8F-g4D2i~@QrII+x0wC$LezXd6WK`q!vU4oMPfCS6j5q7q!);M}4=-Zhe@lJi*&q zB6va~CNG<oY1X156|+zwDfk-RY~H5zqtuIMukCW2c7+;61@r`n|J`vdiZQN&Ckjzj z<^Q;aqYq=F##rr+V(`BL>9Asz6=)D${_ISHN9O=AZ%TE#j;1B5hBP=u$4z@Rv(F9P z=!$)V31}IV%*i1QMYtq5h0J;E%fPq2mN?k#=T48*0-w0_8Vz-3lPoQM$Et8YIWJuH zL=B7JE9$+7$y((=JU@yGtJA7)54X=ozw-k|yFwNww;!=|y)56XK%aZ(M_?OuHr;N< z05dm#%4=<ho)wEfRvyg;ef4YpkGdTkTKv*EVYBA~GGuz67!-|F+!f!_4kTiF9b-rm ze?729J4G%7xA!&TZgXiODS%TnIQ;knZ49hYM~SZUi9?wkk0#dOTZgCd3}Lh505TR_ z0Zi#$-2!u%MSRxDN-v}&LH|utU@p`UI0oV%rw}PKY1a+i%TnLJ_acq3N5%lWSt;B@ zi&@~kpSj>-ap@(`4V7}&#+yHb7Ih4YK@F=-iCbr863%8l;=?d4ZB#f0YcfRvkBuoj zsl(D3<T#()VXkfr5WY_57zu2^26ohP4`~o#V8oH4yh_rm{jsWqRc+Qr^1G1qbp)rd zJQjucBh*u)d96pt$muYB+}+*Ya9XQfhr`+qQ}yM!ajp?Ed!8Rr!~b~HZKDr`gen6L z=>WDo$DXOMV+@6)@I!A4!bw@>WK5+D6)q)4((U7ngPK#+3i&BJVtSJW)fvYGV3oLO z_fOQ5->i~tgDfwn8*sO09w+{+mN*96DpEUq^}2W!T#i*CF5_|;JjoWXm5|Sp5EnSk zf>v*nzEbyf$ndt3R2?`C^rmX^UT*TejH3~iLZJRrSBP_<#o)L(G`@g`nC|e?^N$lb zV*1iJi5t&%bpddS?<vDf&}>;e_@FVu;)B~V;=6~lGw^?_(N)=oLU+thiqIrJ;zQrx zByv~h+O3Weg^8}j;C%!(bf0FL4!oY)=TBnyQJljv*!yK@u~hlV>kC+og&XbECgo$K zQ8<E$(&)iWZqlC_l=6lhraCpWUs4g(n_fc_G%UiKsgH5?IyG7L4nIVd^bW1;9aJPE z7y86eW)#e(K6G5SEVtwW_Ah0qG!wYErE7=Wae(o3zHfo$CfDk6Hi{pr7*pVsSED1- z%c#=YP+t=Pv@442P<l+q8u7R(g(^}R#p$6k;(xReIEk-W0eicsuwk373|i)_Hu_M@ z2(QOxv*Xd}W)20si1@vX^-5sPyE)(#qkF?_VjuYvBnUcn!mMf>rWw&O>JvIFt2}gr zOxDh_V-&PENeg2z@O-Z`M+f_dqY}g8hu9T7)Bj|j;<dl8`n0|}V*+qd+^)h={Z{b6 z`mGd~F9mYjY&ZpCdrI8YVOxF&Lto`r)#&6OMdO=y5%DZ!Ma%e94CiOX$OKmmV}elP z0ZTqC>QDD<1D0G{{);#F^ZSx{U+WFX5fKp;R8<SV-`w0By#ms3Zxwy%M0#!N54_jW z5Rj0eo!-ZfA5C^y{r;SsSaRBI`2ek%Lsj~{(b%A#^lJ`R`0#4=r<55e@#tPof0*)^ zRN)luhd3TKdi1~JTp|8Wdv?`M{iV84{FPc|T0gws9$93%+!H?e%?g`sewX3xxu@gz zdTzqyv=bSK#G|>mxR_a5qNGtNiw0mkxzmoP@2=O=V%+sA4vpGw`dw|2GvkAFS-z;I z-k?LQ#a7>9GqCdE7?+b2D;%UbN~^l~m<e+@8xzOkW?jlZsF8ViUPg;IJDdo_FT*Ex z5aH?00f%*R_Ek*GS{Y<@+V*hQec<1<a~oLLa8rTmeY!hSZ5$huR_@_rV^ePUzD^CW zn*l%6$kl;!U_9Rv=Zj`CAm_d5BGfPYA_V?R=3Dxjqkhe5?E?&s3IibHJ|deRpGEzl z^nzA2{HDBF0tJ6=@Xyu#rSH2FZ@a_E_C-CrDOa5Yto4KggS;$Ua)N<xLD6#1oKXIe zOg3{z5(+AHs9F>1BV_5bmUzb24NI8Q$QO?#ADa{|Qn>u!ZgHkLLvB4d;4OBk>DUwj z=ZcX$LQ|mk9#GL}SuB$R4Uk5g9iDI;!$U*J1K1t_H`)r0bvhh%RBL-FvP{hxlL61S z15hl`SxKa7-g7MSLnYNsi-CD*6lt_-Bxx7n<BDhaS@221$*eqjew6h$P61M)oTbX) zLI>p7n-!?D{#=L;d`Y3(#Nc2#a2{Tu$-<iIi+PuJx~nmC?(#?s@ITn<C3oZ>Pu*x2 zXc=(b6K!|6q|8&!oAjpSS4V&e5z?cBz%4NQc;@x}3&`>MCx?ZTe};B6I1|4-CR0&U z)16*BxR@)7|FubG{-Vwvccv5l7|Az|SA2FkU4^vLJJUZb0CC9$4ty(y@Ut||NkjgO ze6<ZfX6GCi(Xr8V5vDqaoewQ0n?Mq=(`?xL39PYZf`0%G6g;CK7-0d-$u~Lp86ct# z0kC)Rsdeig_5|7egGD!3cGXoZ-B$oGOR!ImjwS?TH<7(`4scsFO5E`k!^^M_Iaec- ziu%1soH&ZiW*``i6@>DDlp+>htZ#^s_I2&>cgXM3R+71{(ALDu$lWp+z4l&(4JP>a zkYQt6Q+CX+lOUW0U~g5-IJ^xI&nVf272_zArCGoOqtKiUOH*%sy2?W$engw-G_h;b zVzZ52{gm5fDfp$`l2@L#8F{PFY0ZYwJ+AxJs+2lv74N?5KX+{LVxT^E0r1ZR?t5?k znWu39a3uLbf7|%J^6@DV8Y2f8k04&zS%bG<ODc_o!rcs7oPz3RRQo{5a2c{4cnySs zEHp1%bi|~+Ig<-MeoZzKAfYfeJ3AT-a|||*I*vpeTIp@VqY40>98$96)8^xoF^hMY z%W({uEaDYYVPM<iii2C9=4;<``4@8UtX~~u`^H^a<>=b_Kmv;bp{U0s9^JQ+We6;g zsK6a5mkW=D^(Qf&9>Pq4Sdaa<v<CwbJ%cKZYDkIA!9=@_bEg7P)uAt8IyOV=Gv5`; z;$b={4}`;!I@N!Zfg25zUbgbH^jf09$F&Esu(>xUfp6G@(V2T?2*!k(ZI|KZr~E=y zF2!Z{?z<avIl~YHGJ#{w%FGlXRNd8~A3{V9(6%R(-B?d6y)-L5N+SfrAx;tqI2ka5 zMFGfNby99_Du69DgI_&<2G(+$T5TOQ@V*vnZ;BRXci=ttyLCLNzaOCW$w=aSNU4)? zq6AtAf({Rt3QX#l_~}{ez+KnazZG<S{Nz~di~0khy!B8AFz$Kof0pA+OUo?c+rqfi zL7A2kkePPv6Hz<dW(ZRfW^~B`z^=KDcbJuFzt9)87p2428hAH2i4Fs_<L?1Vud@?w zJ`nQ#Mt_PL2F|H#_;QkY&IIj?HuNoGY$<skQ9+nWs_kuK>|OZOTcR3zci*@t4MglS z#E;D+w18a|Ym$)Xmlde@Tm_QyEdjoOv9S2aVbZ+c9#$qfC@eV0_yHao7W=urs1_%d zNjku-{==-wi}dmRRzIdqtG|6mZQ|9RN%iVeWR8cy0@TZeQ(Os#ikQ6La>_z3*bXwH z{a@}Iz-cqzeH`kK3_X2kAdi|_YAHRf1#V!=WFoI4IsJ+B?6OOl_-n^SQ{KL+1gzx# zSIjk4dJ+0l)j|XnvXFAUR7`u|b?L)yHZ>Ca+#pJE8796*5b4|8+>t;y>2w|TGHBG_ z(tCf@>^Nw&H(}ZT8xOqd*R6VJNF_0Ph=Dha>m<y-vxxH6oDc!0prgzA$=w6?me!@2 z%emc)=(ELd!tW*EsTbwU5`ua@%h6j$)8cXp41f!S!dx~w5Ci{pZVmrz40tiSadY4t zrl9XzaWIxk;4lUJ&|y~h_4WvuN*Onrou~P@yeoP&x)hwOZ`bSkRjlz`mkkygRvE8; z_CK?#_8a6!>r7W@Kh)y7V-)aAW_X=WB5Q3xp{qsi4GmcNs7uOJ_bwL*=;Ck0evpE2 zk;A_D?QJ|z)!58|<bzq0tp*qZwr!i}f7=sb_A`b}eu#`X>0%2my4q}vMu%w|2`prC zz^9#9lQLjuzXc$u40bj@ir=z+!D~fRH6YfzJx9f`W|p9qCo62&j!!3c@%x*0{y1Et zL8jHf&?+sHxCp2pD${=$Im_McA%a?6Wwt`?)%f2Zu$$Yud;%P3;`0uzO;6Jg+Ku4E z@V<SekN~LL>du(9Zvp?j=TJ9YL5^?SC#Y%J41G`_zTJ>T&kFve`g!Q0hkCfOD9Jo; z-$u~XLgZl^tWC5*0yLSzC{2q=Kg+||pl#)2DC~#pAqc?ue5`dZo6SVh<7H=BuP%ms zcRR_clAXVUAbB9uqx;pP;CF?}GPI<C%v?#s!X=uQAtX&Eqnk^YVtz^B5HjC6vesKI z>pJMSyLD;&rsjQ|VR27{E!?2UCsA>qpEbrmgjYQ^0C!jddg&2v3?%{~q4#rv2DG96 zl+lE`x4hsYe(HOM+1El@Dew-0zbonV1bAb>^m`t175sJsR_aes#ngcroRzQA2mirc z>>C_<3W1eFFdQ;vngXAmZi+IhyOf|#zAB40T2N;&>{G(+%p2~2ha!u4&UBa9O5mUC zx5pLI?d53K20`MY|DZ3+3hY?VQRZ=NImm*2?hNl;{J&4Xj<0Y3+m;C?)8qtzRKrhC z_UO6xjA{_5M30<&9hHB=C+a(DD&#jdlW1svNM#u*2>n`iSlhtYJdWB|9qEokui-95 zF#Jt+CE6!0DXms`&3}6kKgzd;w5KA@3X)ADf19-DEetm1Th_3UQ6CI%1Yd$sfT1eo z`qi-TdH99uyMl4Tg19Yu-7aG%*)G(GEIk1o(<c?Glew+-bK!qSKQ(PynD^h%DbwDX zO2J-+xM&rGeVANnOutGA$|s<ebB>mY8s0uPbTat%L&Bl(({Lb3&K}sB{oSDAS8$5V znl{r%D;l4hu@Hw!UbBC1mDkMnjIXiK2bK9NfMN-B5=-T`T@t^9UD!715d_@K>ad%J zeb@Pt@r;^p+gO-HojCkW$t5LWO?Ln(Ob%VANq#2n8WkRUH;yL{%9>lAn0rQw6fu0s zCS-~w!C2IepDbr(TE7iiE@TYJkLdzgr`^mAY$k$415$r%A*1Tt=Dwow+1|dTt@a=f z+mOw2F=YV$v!Q*Mfb!oe5Op4tEFPN+n{w+JEPp3J-{B1jYWb#w;|<KDW_OCj*Es$( z)g^J<aCqp9WUy$=OT7o+c|KivO4ZUs)cQ6U5RWB-<HlKNzcw|=h5x*igxXRMg&^FP zeFMCn+vBQ!<rU!LKYskUb8ui<>3cNo@Z;Z=aQI>7c}bcHG~~6}Vp^Ou?2=tx-b&~7 zs7MhmOuN%dC!W#c7A&Z8`%-*SzKK<lBlFfuD_~c+{{lo4NgR2#9#*0`v{*Pa`XKaR z$T-&yyO4;V?br>34|atiLF^>ax{z@`QUciLFNG>*7(U0k7c=eD%P$|7@Iv+eYVn#y zg9VZMsT(c;I}|;|XvQ@w<<)#t)mBG`s$es|6})`FeW^joUKTVMG~7QG+3L9<cZg$Y zmERK?KCc<Y_J%_3ly7{e59sc^*d2@-1=_XVnt)IU2pA$FB5Dl!;atzVq4$8WD-qyq zEBX0Fa~+&5cMj{^>;G!WNsH11Ox=PvXflll0w{{Jo%rW*%3}Fq4ifp-?+8x1;v`6j z*WkN(uBM^g+5|onOfVYaF^G`m^I==Xbff2k6?u6gNccRI+1c4g&<u>o%}dB7^W#sn z{{r-<XUnmn_pm`9&vR2A{`@YtqCy6U1L=WGBkt+6RTiK%WXnMI4$vDrIW+)!paKdC z3Pwwe04>&CYmoq|X|;Oba_6r$BkD{Hl+^w{UTyFQFXd+(&=+L$%%yx|0}pA#><uVi zIQAoN8y4e{Xz_mbj0_Yy;ap*54?W8=hl6`pWr3JSVZB2emSAbMf)8=9y$b}7<Rl>U z9>xl7YaZRmjjj8x%FCM{qDJ5~S>i$XXux$?sZ~COhsSXC=6szrZaBS%3=)7ot>X!_ zFTdx(sg}2vI3gfskw+}7k0+RoYi%16|B<G6Ax}g-fDIn>!KyN?{vSGMQ2wFpWc;3P zu`4t|Wzo}d`OQhzz^?Ow`Uh*kq!=eE(R3NjRvRSbuF}SSDstl5M~YGbRY)G6UjuTt zhSl~Rfp-t9v#l{J@eXz{u_bs_qr=ZFF49!xH8iNKUp)YGy~y6O23qZwx&vR-vPL8O z5*&8Q8Yzo;aqINNtS;1oFp(e^C+OLEhq)I*wQ2*?1~9oIiXPE%mI3fk5a@~w9yJrv z8%1<om`7xoqY6>IT)3TbqkRt-N?9gHC&9&lG<MHuVx_31z!r1=u8?+6_BLRcs54H# zCQjDptF-yxJ$_AQv{rU}H>>o~*lKWNrtd(b^g8D}g?LyA_8w=I>c(nX>43=AUM758 ze00UK>xz3snxeFS7y_&uh@`BK!k-Ai&JQ+-2JP1m*}}o3{QSCBLjauR-ih^J=*=L* zol2>Zp;e2o_xlV5%&%k?EimPK*o&pFl3}qA$l5q;j9}MmAn0XkpKBuT@_geWSI35b z{=+Pcq8fOe-nY_fRl4)Z7(OpQe;AlqY4rE?B{n98D4gwnrNL?y?c2<5I4TIm*$FR| z1=267@#yE;ve40J6Fa)T`9Z&BPMEDwZEV4~h~mH+?A>v&q23aDxG@39)RuwSo#4`^ zU&(R_D|V0~%COHO4u)K?z8~S{th=pn`i^QP&9j>q2#2Tji@Z>a93)`MqKmKUQ$jDh zzVxmys2dvNn-@H9#~EH8-O`dSh9C%h5ioDmLcE3RKOIk9Zc(HGja8SVOLjmPi-D}Q zQ3_w<_D&WFcIFFANwr<;Gcb3!>y|gEovExh0e#Ow%GF07DlNA99{8?@u>dRuyK#|- zk}B}>iMr@XanVTD32VyH*UlZJs07>yKbbri`bN1sfQ{rxg8{gqsW0ibX79TtbCvV7 z%l3|;bi7>0<XkSmrk*FJq!c^FDk>@(A1{<sYY)P089kV$TyAv4740Y#vs3*};uJq@ zf*><JK!}Rj2Jf-lExADsEwrIl{Gry6MAZs(_Y}dq9z_@t<tJJ3>;zQGgeFN$@f=rN z)RHnNI#A|3O=o*>$}5#)V$NwA8WWhOwRJMcTHRJ%j#+`o;A=4}<PSIXx={sr!DI2i zp%WXTD`+^&d~=-5_$LXgwtTfF4X5#JH!-=8^Owv6Eu7`z%Gi1I!@O4t@lB=6uGbb5 zRX*<_pXq%COYU5kglSm;|E}#D=7f#GD3;tp{`ZU5*}xoeLJbR;;A)^=iWbb25u9I^ zfSk3&4@V&&>O^gu^E70A+n5>8+xpd%_o!-VT<R8IR#@0yayq*qG^U|fDFeWm#%h!@ zI=^$!Tc3`|@0q}gR(*_44lQ9s`)u_!ehxKJ8&b~?0W0x^tTliZE;5RCZZUiBf(ZmM ztmGEF*B}+;TZC|!lw~7ALKZ9*xwpp8f|(GU>QZ5H+An&8{bJ&b25}VGR6^sZqLhte zn8f^TMgcRL_F@#|&{?phI3G{$k+1X&Zv-X+3CEoG3yT&tUJV;g(dKRj1{4F^n$sGn z6ZAuJVbafecz%ALsQ<Su2amPwF&0~Syzqy2R%Sr_bzP<@UeD|J7;ed{Q}!)??d#5j zl%-4bSkJ^F`YyDe7mf+dNEP=dAj#rZxy&?t-wc<xG^6j$_De|793Gr%_;eDe{OGm& z<GG)kd$|&6nLys-fWdAa$oS>gZHn+b_Q@%(+arg0noXJXw(%DXmGo?=Ar27U<E(k1 zf+Lf>X{FDs5?~_I>LW?>PDPW`^NHFT;3_hZ0cI@mjC4;FsJALGT?1lJ5_p(Yok4uC z{U>IF7UUm<%%$NJT>REb_<GF+xtS&9_&8LV%sF(-n~<Zk)y}{%B0y?ICzMfG_kn#e zQVj**25JJr{7~t1SpTPy9C`3xkHxSJGi6NsS!e5w|MutZ&p{mtV4zu}mOa{@L5YgG z-S>4`*r^Ba4rdSA7PX^n@2a6>*6NiGB6A5f5HH;&d|&SN9g2%Al&BwOQJ;qUv*2sn z7{3gsF95!qHOkSd?H?R$qR8#N^6oA(cumf#)e+N+d~k6-b-MgTUf7T}`_=;m<%8Bh z3FCvp)9gLX*bE~L*;@CPkWa54t46U{*N#RY1|B56YDLGyw*F*-Hm=i}%NJ!dA*}o& zf>XkdV3eA~;~N%<lY<QH>X;;-^$8bM@k0W0op+I(*j}1_oDyVb+a;Il{;tvkgk=m$ zl_EVBuUrQojl5Y!9~h5W<sY&7tQ#@-Dpw^+ZWhT&yossAD;Jv!@qC7vgEGPjTVQwW z+fM4rcr{3W64z7V9ZInT-70p$4z6aTG7Ml|w>$pFEoQuwpGtsJsA#T@K5^Ub1hfHj zV-)1%vdmTO^-1+mkbUfINJNL;lpj5TcKRB0AU8BdZEywKCu1ShKfQFLy+uF}r)&2* z(wnk+k{I!sx^hxq;mQ8G0p!SEarLJe-*2Frk;exI!*`$%Jn}r2z8p&CC{0Gf@r6pc zKTsN}Mm8i3nM*%q`5R2!rNPVP#afeq<-CFYh<WW5*v_PQ+{0=RszP8y;>YT3yUAyx zlvw0Il;&;)`PHH&^iFVplR@>Z?N3#Lr=rF<=7Cj4wyG;geUy@hdvd;VB1yDJDy{nI zJrNl_BW@2k*Ahb<!yqBT4JVF@P@^umV$u2S16Q?R6DlDS3f2Slw)mUc(K$1g8WX*M z-&9(IC~xw3K*%qEXQU51Vu08UD2ua!Sv=a;`UfZ5R`9RlG(*X()JA)C3V&Ma@N9j) zF62+x*)hNZW_cMT-#<J^$jL=Zr!aqclT19^?DP(vFmtMck{K(Txmm<4l1IL^KS61a z?6Ue$a>%%aiH%osSz0Xl(+>@=q=~y4@V%ir$Ir>{Sc}6(rqkcN|JG4!u{nsQ<X{A6 zHvP#2nG|%M75NZI(Gs|%JQ2YtRAq4UO8Q)4Z-$jN$Qc#YZTA^)W*GV8{mS^8TmmF# zi5Poai1GZ&Wh*${WOx!Sl?#qYi3&nMk>?Tyl(Lkc?Bp*hmCSKuhP8fId<;<oQi7Ee zD$$!x)dtfNhh2XPns}Kpl;1zcWI}_Wq+D9H6&E9ZZbI)%xY^bYm0x6AM8`TDq-RsV z6nQTt9q2clo(xweEjsU&*iTQ+>FaAuTl#R)`C{aL@H|8K&t3+daj{4Oc-DaVBTKnP z7l_Qx?(W{3f_rpywEY$=gWAqcmEz9X=F!2rr!Y9hsYZ$6Ak#geT#t5olDyX>W#Bz} z{6?$GH3)>LJSF$Z*+oW0<oMB#TsE7_Kst}@nD>o4yJ`E+zs|CgW9C}{$8^3>1q~ix zi6W$|++ba-L^eXA&^9p5@Me@rzP8K|3ED7uE+w}9fj#x!8c9$QF%FRDj9(67Mn$Rg z)gsfRQ{s&4OCTyG<pnL7SeiSvkfwYF6)4JS{_uv(bOa&dn+G9_?6@BI4tMjZu@xeq zgKqXSS%6kW9|~6O3n`HqI1;O@n^nfxJ~c)RD%WQ|hdtW2&|dc%r0<F<Enp$8V--*~ zv)4Kv)TV2=+G-}^(v&5NW=Yc;x9J&$ON&aQp9u1|L~8P%rvC$T93~QF?&AS)af=K( zVj4u|tsR&DVOW-wmbOgOCpM8BNZh1;IGk`|yedv*n{hZoxy}{N3(085p`1AV8KX@o zHzT_=GtZWD<;&KsTI2ByffLWEt`!=oQcMGW^{9CwV)fmZ99SL($fms4{rnD2I7I<= zh#&dfybHQP=})4s0bqst;=8{C|H72S`xkd9q3YB{5#S!m%gaXwViW&`80x)1>C>kk z6Q;aN^Q+S#i70|$>R&A)twkcPM$;fObo|tf`pvxwT&M14oDe4<>nr_0_Xz7}VV6Y9 z*lF93a2(m}IQ?eB(hr!2JVs4bD1@WLs9I*FOrpfUFS)C{;q;!&EvczYU^a?+3=@Mp zz(5upKm^j`ELb$1*-ey2bw3wKA^DJc=T&an3Hpse?*@!vI8#42W$N-bB>mgSrBShU zPHf;h7P8$m11R0ZJxa96C>{wE|4~pziX8;j9Q(G+qC8A_!cM*I($|zgfq*)NMB$SN zZCu7+yj8%Ts4Y60Z@v2yE@MeCkALYGiI(Z8pax=kl@J2Wa(fg?C-j92DXXwS4_F^T z8v3BzcHki~M#g+UVQo%nF}*euS2sjt=-Av{G(8JQR$sdQv>id8h4zgwrY`3EgIWs* zaZ?mZWIL*|+0g56%iaD_{w&=~T1<v{z1`@qc9U&JDNxh%-BYSWHoc2fN0I}u-8jtL zMZH44Y6Zh}^D-o&ITHwhZm_A0#?+v+1Yp$a`E1nq8ZZMej*<gNk2T+aF1K7sXyiY8 zS*6AkdQ$QX>2`#&5*($I3Rwi6;I5}z{EKoYZcN=t7P}<eKh<<Uv9YlMxg+u6;i290 zy)6|3LsCfzwK6#a6O%lkRYC3#g&6z$_qW;UOM5h{uToNRIXT3|m6b_TQ*xnUVJOVP z01tF-_f$Na$mVTmqICWNtyYs<XirV$uU|&_u03e@aQ#m8W&;ujwBjuc&OWy$2{eyp z>Q?@9gp_*49gnpFBd}9uST=Hl0r3l^(Xza_+~Ty`2iHJJv(UZDaQD3uIm3j*b@=UH zXnmR0K48vfQv+`~8Pyf8ry)ho&Qw4yN`>rWiF6eCXM#GeSWg<6ReyOik&0MFBWl;M zAJ@E^vHr7qez%D59f?H5GA8`2H*A$h_z3%7!5h4zoW2{x*e3?;iU6%AAJ1v|2+hn~ zB%v1XV9Gx~31wCx_D?V^FQ3n2KT>BT8;82ed`Du62)0bZXf&qGNbVLdZN^acr0+G6 zvnYqnlAs%*K;?KCKO)iF&xBg-lMUV2q3a*{3K3!_sDQSU>#|3&Xy07HjTjNZ477DW zY<&xS{-nVW-U#DTU4#6>LC7P1Sl#5M!|#;%?_zU|2IFA?E||-J?gO4w)h@vHs<GV_ zU9Qsi|FyR#;pNrQ0*K8>y_G>zxExDLG<LZ}UR^%3vJS1(TkOrs@+(_L19e#<<X&J9 zWQ3O6VLr3-sTLNSd3=eJVSMoJ2heUTua5RlxVW@!7qzX<XNkIh9~Wa267svSyb`;H ze+|bO1CyEG8qw!J(EM@8H`~fHT*wv2@rOT+ucF<;X|+QRNho3NwW)_=ZW8X*^S>J_ z#}5G6<&x8={K>9{xyER^bQs}{3PJP%pQorJ$#5_-p{q+k`C<6bes-6C6RZN%k_1fc zQ4^fvV0Bnihv_|SqT8tV!he1#DlLuM8%-LmF&_QZ@pKv&jPE8My6)_dI}Fo+<&XFO zaF4{jK#-GVmv8nOF>R105b7vK<g{IZY_mGVU2=Lyw57dr7)BFSuXclF*^+hZZl$bu z$*H<zI7|f}KtpWWP@}m-2)Ce=>abw+`o2MM4(a6Uz|872*$N{YEXT^jJ;TEO_P@_D ztcL7PR*1(iNuAOK&8#{iP_)5s_W)qk+wOu7IJ40y*g)oTz|UJz@+^{5c2(0)vWNXG zoN<H6VofBc>g4#RX(<yp4WNz#Mkj>zZ9tv?cSupgdbf*J-w}`5N-OQSr5Drf*KelF zjcw+K{t^<nHX{2#;!cdnki>HV@5+#Jt%Ea*sQ;9v8oTc4C}OsUVo0bfNU407_QTL= zesx0=C@t<q@jZSkTnIaD&|*MH?$qa-S6jI|-|nsP{_Eu^+pX+JRjOL4q9<X|CGq`x zg+WT0R<i;yIG?OH_=D;g8uM3~OdhI3y_|Eg49n=Z5fK?b=B;6T&UY>&K5xijBtOf4 zD;@vIultEsEh|88bY#S6FcL3pz6U;jWko|-KUf;=78qK(I5L$jJips8vAp39RB$JS zbiF#!1VO-IPK~U1RPrc0$>wh)VflwT8%Nd=zku}m1hLKl+(xC>3y!>lX!@};h*xJ1 zAYt6qUdo1Tf&xm6htY?)u2t{RfLP1SC;tW@oTAz7w@RT_PQ-Xo6@U)FIC!z0ex;w$ z*ZIpMX67oVb_2@Dp6s+!?3j{ZqC#?Gg4&fyBK{`>aU9v)DSCK2RjBVP&P1RF$)tye z5|bHb|7Kup-y94U0wUW0KAsuGS4x9P)@;>A)6xih^9YZ>JKNNVLsP2ylFX0>!y&GA z;~$5G-Q-~$Rw?yH5wrJ8z8pZaD<ii9IG~Cpc8x}nRnIj6vkmNuTy)}IRtkRK%m@ak zoUK*GvCLQPc2YzFveL--QB;D05~ZKn(?pl3K0Nj@B_bx3g&x1TOkSF<{zH{>bzgaj z18PXE!HgX<GYXJ)$R~s$J^bQ)UVz|?@m7~_IkOB*q6ff%2(#+B?0Rb(kv!fuRRDm7 zgNck9lX2|l=$|q9Qb{A>SS$fWSkC+|&p@Losr&6o%q<|SLEkKrNUNUXbpD{utlWen ztglw1nN0rH8~VkU5}1KfFZlr*?z}H!pt|~RqDu;BI?v6V;s{db%OC5#hSl$izwt*2 zT4%!<_(92;k)b}|mvxbNZ7hM>9q>5u1%bjt&P1Xs<<{9?`NR=F;I;~{W$Rbi;?7v- zAjik7jBF9&Hp1}80CI>v5$Fz0B)<^H@9D9^QN8#jvW<_DTQ{++tNa<pyJ7Sm?!HE= zvB<QoK2?CyE=s<7wt~G+F8KwBmnz{vu8~f8-)+2j{ysVZ2w0S&k4ZO!^W@Nu43th> zkcV8=;s=D{0z^t3d|2rEiGl$MI5-}sp$*_<KB^~U3REI%@kB*cFkP@xV2VZa^|pW3 z!%EmENy>x5Rlx|#sC#R=<AOvoo!gF0$MFvm7pXsL*VwE4nN%e6rIMCHCgCK%UK4|v znj^^%ww+{9#Z$;a6ihId5*@lxM6HsT6Z54w;Ip{}{hW%FPOEz01?g1iHEQFdBsG8p zfec;%|16*)NxM^cmiv6U2jZjE{lRdZsJ5u4KxQX4XcRl|NNzXaWL;nH<IAtG=@PVR z(91epf3H(q_@)Z(F(|!sfMaoRUztn7R)NR1o0pqdd+y=~F-NAqHL0!Whaw$H<QQKT zxqwM=)^-*73`{CgkVXbWe-rrzrkrbdW=bO$JR{o>#_e5>G9*FjMKD?w0zF|peDLt_ z=;z%G5}I_(C`YGFSb~%oh|FmB>HL%kdb*xB%8s(;M|l!)bLHjsm%O*5w&xyg&Q=~W zaDUz;c^-NRUbANWJ8tVM9f9x<Z|FDCx4sM8wGEK;DX+XCfcBO&Zq{Fe)D3P{1EH9V z!%LN2sl~;vvWKI{Iv&LbZk+g8WrB&a4lUp&ao`NaSNt)J%1Bxsun3JVch9bvptLXJ zn=+4@g-7Yu6xOc&FnSU{_a47^#~q4q+GpJFF?a)Ib8FiM$g8ch;Dll>2;xjXBq&Jb zr)<CVMmaYZ6+3>dENF06PNK=}o-_ocBiCqKW~@Uhd2wFb_HT_{v?V{j>Q%hjD{`@l zP|vx*257Om`A}DmjwdBXAS5K{nOA8b&w9{9boBt0Gp(IRujX{?(a8o6FR=Mw_T0a0 z;(zrmS;*<NK-tS)2U#%}Mcu9VRA@VOJTdcqN|hkH-48wpmrM}OSE@^x!fk#BpSmKN zklohwV?x~}0Zs3d6f|ys!!@ZBD8RblXZ@3Jg+cnx{om^4ROKZJMfXMzm^)QvC8$B; z#na#<zr;W~Onk_4)2`_B%D97(@Dxzs02W$@>}o1NlUu2YjM#j7qtCxSovC7Y)A^!u zB{cqhKH$GxGK?Bd=d?H4XmhOrIQC>yBW4#bBO{Wofa07Hpiv`9=mgB$cvI4HZt-Bm zfPeL=`shLk(!B^HZ9{8RE%(ECr!Ul;LJn_ffFG@!Of&Fv0lMv&s3AW>&|<kJMH;(R zY%qbB8ZZVc73o;{oCh5p{b(?9OIBJs9Ly8unWK4HA^%3syOM*9+uqzr_j>}apSXt2 z8Osd8;b3kKxY2W$+=+>=vR_weF6V$uJz}S@k)W-rkB@|<VH%_8|D6S3Sq27|acW)o zm|Hmb)%(iXuT$`uj(BxKT<qkq<L05f5d^p_4t_UAe3xfwkD6-^_kjEd*_)~en~g!c zChjVUH%l3aj7$I5KjBI8I(MI&x+)L$MU_Ip#7z7p1XX_jKvv0@ffh`FXuBJ47TyC> zipC0a_$XWTDOu%O3<Ty7Ig~ddK6%xYY@}aYJv+LMdUdtuco4ocK?a_`5mFC&^n4<S z9fnOP`En*^;7GXi_F#k@gc!mIhJKvDmz9W-pOR;_#tK^P%Kdj~m4ZAcd))V6zOe*x zf8r~D%hg1>!a5Z`zVu2F<CJ|CeH&d!J1wvvgw3aM=wM~oUs-%!m*@E;%C5V580DY5 zteZF`w(^Q{MEwj<jJ4hBpE1nTm_Yi5&~i9vmql7QH^H>*f7=7p%FU$HF&|r~mvStM zQ?*gi!8*uvOz*x)-n(>ze2-(zO$8qqQ250W?)mxo%N}?J%5L@7p<1|!M!@jPD7SB8 zgmzP<5T5)j!_>)&riufq0h2se;VpXY04RkXK}STCt!;rq>-zWQ&Un5=`DlPogS|u4 zcGB8o7blFV*9&o9YSd8E{nSmzy4go`jZC~a!9Ty<$lJ`C3Oq#U7!j76q?cr3DDTyj zl<yirjT|k=kzIT)Raet}9p`0zMeF8xoUpnS&*RV2DVMXZ>&fHiiJK6M*;VUKy0^|f zfE>CfHHCOp2gd<=N?0%c;$mx2@C?@li^Fg<Y(i**5(0m{=xjXd4Vr0`L(1eh)B(5c z6c)>DHE6!=^y*n{#5^eJ1hrgzM=!2Y{Mj}}(7cUq{AbiIj8<Fyao!BlVHES|Ea)>W zq<s*fq}WPDnSwqX;%p>~l({ieG9m4(w7Up+^0(#NEbM81LekL^k!29R3P|Aqv(M6~ z%-no<;falMbRlKf1*G!fN%{U5*-_Uy*bjd<xQk}IzTH7bm)Ijx<KBEgj2HObU)>Bw z;hH~hM@}vHmJLgWTz&xk{iR^)b2m9L;rpA{vImf-hYkl*sOJ~JL~<wAEHhbwQmpCk zRXkoz@-ryi<fHI_{s2mxUJ~&MgKf7f7ByZkZuKOiN*TbkXaUfVcp3EG97Ah_OM*}^ zUkqUNkj3?<M()(OQm6!_L$f<X+#|wKiQU>_9A}s@_j%OmLSA?;he$3HDn0TQ!%>;7 zhXj7FHdd-K%BV?JqU@MhpEATo9408pk)WV|f*@*UOhLmSHZ=4ngGyu8e?0(~|MSpy zcy`5Y#3%#PWGj}ssp!e{$6+!x>gVhJ8N}a?=Beq;R9l1ZG}bN&ulo_N--kIK?mGVh zS9N2{2>w71-9};2K@^VW_*XsN^5tOtASn!3L2iuKB{KD-984m{Z)qG?3+Kp_Vd^CE zK23PrkDVZ?#BIrqu}mX#Nsj}wLcEE(xk?N-lElK#3Hxx}Fn(MnyTv8e3WV_e*2N!t z9JXNfbmT~kh(REj+1J*4m)+XbUN5Pxff>a4_s2Iyzl7W4FF2yG`~wgYRGp26O~pI6 zO_T9OvI2L?Oc2luP}&17`{#@~{dQr;Xa`JzGGTC)S3S?ow!FlbP~${y6R!CLR46KK zj)Ltf;B=S!6BKaR#T!iKN8G0jvzPclNtmsY?eYP84iK&mo~lS#^uhsZT%_6<`CtRU zKG_qT^7Siwn|?~e|GfPn!Ny!cA$H{KbAdqOFd*h!?1LKCA8RYLj;15$RCf{Vzw!|P zgyR4y!7rhUm$)7o8Yqed((*lZ7+N;InpvS2>Rz0#v)B};?g2Z-oW_oqJab$8f)7H^ z5v3UsqsVj8QsGLVSd;rd^guhMfZmmtv)I|Fyv_&iLN=N7Q;E9)Ylte~&%Ex3xhoAI z-uz|a^TlP*e{ddg(75wKX#151Y2>oi2Lp1~psIY1AGq=&(F9EmiI-5MKt5@~@57e% zs?B4|>m(lvot=&=CzzYd8Jh@*WR;)@Zw2fWnt;H3cA%VlWcZ!K18)<eVL@B}%$rxn zxEFF@L$McffiMb>+NNiWXT&kwxKBEqU$h?=V$NoQ?iLC9OV4~VXwC!*R-K17V{8(^ zEIU+)8=prVRBykDx;9-~1sE}cPpc{u9#@S#Mq$%)cYB~jIo^~;xHWne4hhp!XUcB4 zu3sYKrXLs&F)$LD&h-G15J;Y5c}1&4NNgCQ9OGc$0U7Qn#v+q`Cgp4boR)K$QLo_% zRQmakz6@<<shZka<toA23&*hW*m1!azK#2}^#KCXO#jb|CLz5?C0rFMW?pRsoSgtw zbm$2N4N0&&Gr_ir=H@0PR1z{%^0EUa^_;u!EUu!&{?&OvQ<n)$Ew==zwCudGDEH7~ z!<@i6Ey)6;wDia&&AI$%lyaAZts_Yt*ND>NC>%`Dr9tK+hO_Uu051Z24S9n<=mnG- zg^`HdYQUbyuuD}<4U%G5(Ul<Kj;j)gkV654dJ-Leu^MB!F9E{#kcunhSd{m79-;>j z??>NaI}#u0f+gg5M#GXOw~T{tAU49c<CSt`!Fz%J-4jF>fvIE=^kbGWuy~1xAnAPM z=Md+9V`zR9MkRTD>62b2kV0YCr-4;`pL06++>5lJvq-AFi@;=bz$}8ygbu~i48COi zAPVCK*MliNtHOFC@ftqt+104los5(QH%Nt!_1U5gv^!|6B~gPkPbj`YBwCAjHF)(L zWwp<X)6<t4e%`wpZxQg-`2}G9AQ;6JO-d$Yy)IFe&F>d9trNC;g8_x>fvJ?5DuCaS za4J;gA07vUt4|pQ>6iy~M;jnAl;1}$W82OoISuG-=CrYx3<6q;><pCgpvVfVN@t}H zd5cF5mHqKY34OU07m36PA(xVHyiX9e0;DPFZH&}7r#CxJ#GDUKvAZsvV_p}O9oOnJ zuOeCC^|VJn@&nVTfM??R{bniT;YlBIm$cFkWB$wKb~e}p$RTcSw~k(aLR!p3_Z(6~ z`V2PN`Gh1pH=z?YZ1fh*)WZF1fA4(D2DaYx`hX$!`A4N0fPLA~7UJ*;u3I50a4e=7 zL}10Dl!;&E16RmbyaC#^IrWhE+=rqn)F~wUpt1zGDs4WFXbM>m8<7z;PneVRV7csl zI1q|CKc-ptVVcS~?UekIwsUTACdo)7;TGxmHP`}4DNpp<YSgTuN)@~T%u!{H8E1@w zA-bX^VcvKIA4chvoG!Z0#YLXX1iKV2%rNtC%UX*Wy%eLQ<y4Zl=&aNc=mlzYeOeD# zEDcibx3g!flW(0j^kSC${EmwuK!Hj-vF@G+IIL%q{V!lrA6agKl%3VWT-KUw4?=r^ zG2lNWaT5jL*<?=J?>1yYdo_4G6IyzGM8PR^)iTjmutCTeJQJzBdn1tq<3P6sm#DDH zByVDfSAxx}_|^baS98J{@vZyfrQ=^q!;9BhF_s2oy4+Sg4u08|kl@TA$X6I4fH^(Y z9L9p~7!h`O!K$FdCt{3U!=eTTC}~FoRfrRm{aMI6mYWUe>JgK)-^-J%21+7$dd70C zx$Oh-B+UGL{aRO`m>0FQSMD!!0rop3<r)5|#GJ<C4Q^hZsU>`@$jT1*5UYWQ%;mmf zWb=q&`B&s1A5`eEK|qX9AT-W&Sx<0tgFR!X6=s)6fBIHSZLj7&BplTngP3sef9H`; zPfGAjX8uy1P|Pu@#VFpv92y?KuP{_`JmGtyu&g_)iuCC-bvv5MYqkzty#+#6e*MGI zB0zt9CpAo*YnzG|`^HVEjYIu3gXdsUKvDC$IN<-=tmQEM<w#U?7-%G&jL0-&dlMg5 z;@oL!;^^nd4xy!)U1~QQ7=FN~hPb&A=Tkb4p%~W;K}r4*&0W2v$jb-CI<o-w<7#q0 zqY~f%aKEgqlxcwjZBTV4WM{7H?*-Yr`^99~7wJDaaTMKU5SsC+-_f#7;izYQO~;an z!p&MzV@=U*>=5$ZHU;|8YcP|^g`l8PFwwm6aOcMivdG149eI;Ki7BTdNPR-J(Nj)s z>gX=WDGF+DxyrPK0>wWnKL=W3vJWNX&HYWl*iBa~AV`w;Yc8*Fm%VGWpg`}Nz;;SD zGn2|nu96RPF%R;(XcZIrz-+3YYiVI2)Z%eb!@~HeMpOoD>CPUSwSITV6W&(hM8bd3 z0!RV^Q%-2qYa*FHehe+ql@LD_s(JmDC@}(^$_e@74<ggSZWsbqT0|fgqh6x};}jwC zg|J}r+>_aQ33vj$Dg8C=JX(>7?1FKSZd7`&I!MvM4F=K$Zz<Y)f82wYl@-trWH!#s z?w%28z;X(k4p5PlU@K$gg)Wo}QmU9-wygF>5=syl!C@5Utedu>91&(wV0ajfxBtGL z{e6SoYQ9YqJCY2|d_+W<&xU?|Yb%bJu!cUY&FlW&7dc-s#{31GY(0r{N^8nfe(~3+ ziaF9ZhY}g7QkOIP#kao1jbl?ollP(r!m-OF@886$%S)w`9tXn$Y?hm33oS{>uo5H= z*Gr@R%s(S7Z$|}_psBMIOT-OAnI}k^D2-aMC?m`zVF@9*m0=|v=la-7BAJ{pZ)74^ zxEr|~Drw}vII^ZOZ8s{92h~#rA=>~dp!WsW+zH_Q6$%904s>1i56Yh=ftB(=`-YY> z=@zVtK;#n3;*4P(MO4XxvEzdK248>(e9wp}>iV(pNd8-70BMw$|7u$PhL>pTf?qXU zW$eSP1pRl^coSJY%d}|rn-5h^Kf0Ad{gB|hi*X9cie@oDIC5N0R`n{|LJ><`;&n5j z3J`sN%G-`B+W{w)K@nyoY#V~hz@LxF-Z(BDUm9b;hRc*fM83MxbaVXwb6!j?Oz*{p z1+rUOG|ZB!p4MBPM<=~*SpXfL7|rj^Uk0KGD#4(R*s9jZZ*X8j+JMQYHKvpJ35D*n zUq8e8hXTbEpyMXG-TkhlglnxC7;@=u1avdUrl+64v_m7Ndt8vQj(~p$+Be3$O&)k= z%+$X}wW=sZIU{y-+~=L~8VCTS>&=T+z~=*0*Spq#_0cPCn%s6^y1d;^A8fw5NTP(1 zQJz5t<E?)BEFK2E3Mhp;q0l2mUZz|)D?wLJIWWS;WU$EhqhxRIIpM6e`iL`IfVwQ& zJf$a+ACmMFrsr+WI!8m{X>HcU#mFsfy`Vh^2-p`D^^GL3N`R(Zw`eXOScqJP1cq5! zH7%S7JsX=0C(M{#evMuuICQC}jHfb0v>IR;RobPNl03z=8tBQGkg_$0Y7tq)M^*8Z z+fQOdE{Sjl$sxo}51QyXMYr8NEVFIT?A7!j!uTV?2fg1!xA*C9;DD5Fye_%LUT{*l zPo~xtCU9O>W`URbIzC293P1BDPCFRYm4%3>`q60C)2#t>SIF(<oo<bFmJZ+^xLc}; z7!_q@@pW}TIY^Ja<lz;N?@}Rzt(Q<UPd4L#_yUC}q(hsDfsPJ4YS{jGR0>B*<e30g z{p`QrEN)9jORMxVw*gk23c{eJM%XZc^Q|<U-`u3A{fY`R`U1(Sw0{)@aX-9hN@jpj z)Vzidx#ln%j;i~F^bS~Gc%A+0jiK+nI^&?A5X*Ew<wVEO1}2p=yIp?^jfzq|<bF>3 z00Sd8wp<bBb;oKW<Rop)&mYpBID)DdiyNdzJu7+I-OqL-<zkDsZ)f{;%C{$Pj^lwR zSNiY=vO|^$RB4Oa^w7{f_Yx*rt?|*YK_8|n=r1Ch=}*7)!y|qj9tDxRB9Vov&m<#6 zqJa?p5bXzOPZ|X|smO+MENtvyZ57Wv@X`syKGMd_u%0@sTq>}24XP_i7~FH-hV|*@ zOSXi`Je%s#2wTuh_C{5bz1cw{D!<c^lZlFUKYVSP2C4ksLI}E3S#1tS+o|OjU;Njv zT_^)R(XT*elqBhM;Y$^6ZT0DiSa>^Uy}$-g6yu!FVO39Ert#0`cTiFL_<!hn%cv~7 zs9l?u?r!NuK)ONcmhMLBZlqC^Zlp`PyHmPEy1Toi`4&EVjJ?M<-uI`&3+|h1)tqyk z=P{+YcXa;Y5JE4&;eiaofgfhpmwav->>M0hFV_uw+{A>R3L6_6zmaq;C9E25He?TP zgO;GC$BT`QQ)(L0nwm+*h2A%7UtTW7VC(Gb(=wr<k<=5Dc%6Rg+IPaT+swaxk#QtC z1(dRbEAh4pXWqCiZc0H5=D|a@lZ0%CGkBOb7o!+Nh6bJ#`Vn6TxD}5cKM4*6@1Ygb zNerrK;DEXR?<{k>O>19Syz$t}OH^$+KeF@H0W75KqMYB)$d*&V+^lU52Qt-AJiLF3 z>#aL~-LWnU=T11kfxU%f*jn_PjG|KwGh+DuyTGdIb*+-#tgm~8Na+=@K&TNSKq510 zGrX1g{OnL9lT2R((jQN|q-ovhL_<IR@C(gaRy>MgSQ*3kc<cVd1{}WEFk$c#Nxzup z@;D8rz>-F1x7GX|5=La%(D)&1`)aHjXI4~M8%m{~(k7(i4}9(s*hxRY<V~xz;JTVK zjMVgeHcaWEmq6K>hIuu`nXbN(sl*zy5uJ@yrV^f1g+(|nsgNN=&8g{jea!F2-hX@U z`ZHs53XEmHcp}$9UeGGfb>aVXj(Mh8V@<=YfUC(8gZ8$mXbj{vRJcE`03(&-hs}4> zk8x;9EL6fm>Q1UJ74+o`<Ms<l$!xMf`CDPvTeAGO2Ebi_)TM{2;+`DvLC;r4Ssuke zjlwPQ2MxBi$qxk?Ij6$b;;i%0C8DLa3Sa|js|aQlV0V22aURlgZ!iLj<*pMubK`XM zdr<uS>pjL9A8=+`q~aVOf88J|{#(tqDyozZU~{S4EM0qn=*P^-b{Bn-TuHk1?axsv zDk?g2Ms6qkeCIs2ksA;aRas6kO!ZMG>So^=`d+$#nx*kl)k;}iI-EjG%!k~%J!FPG z>>)d09wx24T0~@zn+avdKbJ6SzkcC}7&amNQs$<J-!#h|vj0QHMWJ*ICBEhPHKML} za<_;iY>Z<o`0*Jo&(AHJ$`Qplmfsvj4Wb9)4bP&y;F<@jcx?D#L_B}B+CI{?SDgL6 z1}&O8xfIoeg)WhpmNaWo%nE?8BcG}7M*?w+d4(wcMFVBcAU5sKgIv+D#H4x7uhB_^ z0<aF4kPJV?S`ng`BO!LZBhG&zJc`9BopdSlz)d;LPQJ&2yEqxyJ0Jd12+AokA;1oC zuax!WlQ?l7!2>D=&s^h<pSLF!Sy=3{imK!rDOH@@@)6=}5iA3|1GlU4Sh9bp1cxfg zg%^gyd|f2-a$fAsmw^ty`e{Nud6f?YB^B%ul?z?JGPvO+1klF%Hg1F>bIx0|?VB6; z|I9aduDgISPnsFR^frwr?k|iY{#rdnVTi%dmCY$OUP7SsDFzNkU2d!qQWV=MeJN{{ zE8`dU)7FZ=dFo9_Ij`)U4p^ssEB^wR#S3A7%%2b+00wTpHYPp23<BGBQR)5=NRm{o z)dQ3ztk*ov_seYNYow=3b@EjL5xUUnjP_6CHT3Ca6PT2T(JiB$^Dy2T8R*nmD`!`P zxxt^>r<yK0a(t!uTZRL}zd+_IyuZJ1dV9WAWj)8<2>8OApv$}p{RBy=&_|dB>?-Q0 zA^EbNTvJttPjM&^3h6p-a(Sh1My@d+Xt|+ylpT_XRuOoxRj26_daJGeKv1a`Bb}1z zvg;nF#^#D7rnlf*XutVjO8Sc5oSVxEKfoIg$L5$<2ZOdFm}G<f@PhQ*=?a3Fu4*tY zO;5{AhCisIJ0O}(CMDePs}+BEV?M5GK(Z4)a+>j{9?gEGtS9)+Z}uO<Yi8&qnlVda zTeY?r^mdKaS-Qf9aS{m20&b3hZr^mIQ$VdPiET1oN}T;qlvYFySwt)L58A_wDI|-G zDUUsu?HbjY$-xA@k&b~^ysdfJzZK(k%x`yf-q@~kHF<>or&4eab&~&S^pN1xO2y`H zMe*UihmS(#`HMeWvu5kJB-zoVw$X%HqW*p`WJas*;e^NK7ZO`YJ2-`g;-0kJSP0o9 z#ncFa^{{oz0f|onaPq3tcJI)Q-ojxcf4n0nt7lc+lXht(Sa*CBxiFg({C`$IFv79A z-+t%)2U@x960#AbIPD;hGCps1JyH=R7lr<Lt8yO(bq?+_KCA{Y+Kc%G{h*XXcv=la z!~PQ=rv5p^56)$>|H;tscB=fd8jV6~fhO%@ixH0`E_3kyZA0m4gc>xx;h15(3Dri> zo!!OGn1;{9U+>6paugTEexW@X>2<IlU}DBnksRFR7ydfWVBVAQqJ-OHk!2;MF@Pk> zHZ!@@f%b_?D`>lT+oOgiij{|O2IY?w01te0@oic|V=jG8*CQxD^bCy!9+ep`H5r0L z2L9rrLT^w@Kdg-{=Y}`T(OG7ogp9lz$28JLo})D#3xm`YH8kRz&=-R+$KNS|s=g+_ z^M)d%X0jMQS>@gVT>-x)U$3KnG>OA7pGti=_k8p2jvnK2s8jc~p_+fgcZycxKhnE} za*}E}Dfwukd+Tj6v(H0n-wQY|SSu9h5{8_25AtaW_Qf`o&EQw83!&`K_eP<sp5CbV zI(o^b-N;g{SCfgnOE@H7YU%rrrP0#Y&TP@;^35s`pfR*1gzIZzTQGQDW2>OiAgC?; zfsC`aupkNu&6zbb^6TvAA@fIs9cn0^j3LJ+Acpv6RWW$m3bz_+Wp8C=q0Pesti&I! ziJbHNv50s&yI%iCtQdoYQJ@nVGmQFS38rZA`kX~Z{Q3F0x<A&>QS0Rvt!1CTdcRbS zu7m>5L`8y!(c8wbNvk+nnh)9Y@_U^)ARaf!o(mW@$K61^0f{_7aT@8**XyGN+VYn3 zZ!)}}H=`w02{Ar|XZSvO+ydY>PSOjsxE5<y!7|FKy)2TKCeWd)vYB0>-+51J!^5Mk zq=YHn@?Gyh=4<h2V;xX*-M6zJF*hTGf+|t{qiwR4n4ei*NhF72TeS!y7-yB=Qyhn5 zn{@fE`!rfcm2x3E`(g%#HtvlzjI$W%oDgLFeY8d<w>K9@RWya!0HJ>RHFfevyO(~9 zaT@YIkvA&3Q4#yj{bJMGc$Rk|fb@pmV8pbEYAW7r1Lc(XSb4|+iSey%;&Yb&XNGIz zDH6o)D(|zdXy{FrH`<#177&`$W#Lmk`U?mKUB3B-sY4x?X=ruBOcmx*Erlgz@sV|8 zQ7+@MbE<ysrHZRsqVw3)KMy=v9%tupS64XgOuKQgu?tp6pm`jwhc9<Wm^xM*dlO3b zdq+apOnT`;a?Decv}D`OiICih?7K39vQ50u@!#;=5Wm%|lA~)=S6lgtoyx&*;zs8x zC}k85!5oi_HPbr-2c%b7N(C09rM5dSj;fu7o)iNhi0AhD`_Rbdo;Owt>JN3FPH@T! zO(Rt`G>VD*;e}|Il0;;z!mxf`S9Fp2W7HAZwJ3ioX=GP;I*atB<3eOyRf-MDgmd|T z?}u6Px?>$tGbubCk3x<B><y}kpiho$+6Kr3+9s4<@1Aa_*cH7cCFKVgN6v`MO!DeK zX<j1`Z*N-HMqG#=gfMuF%*5u`yjJehW#-m+n`4T^M|jnR!on5fYzhj*dj|-2Ez!T? zbJK~jVX_dD`q+k*p~a0raJ5uWe-P@nhzyMPJllmVDB%#Pd`nj~k2Ru}xVc3#rxG?x zg?iRYQXN9)Fh6=J?aItKuSvc0%SKCPBbZ*`;*HzSF(w#vQSx6&7p}v9^Tw(sB~;|x z{TAWO2T7_i)n<;Zu}K1#@C{lk?{gU*<!}e6K}CX>R=HB5AmzMxO45|mFP^4HH!+fo z4vk5MO&)e09%B2^$D<1RFwrrNAf3OYosiXM4Gq9nI|lZTzQjkJTzBbXhMgdbvZ?c% z;!wRT?B1sCb}RNn-8tK1Z`Rg6%r-Wx?iD!;aM7NoM5$&0suPxhBKi9_y>6Y#)t9)d zL4FAI#kv*AKg54MjCHWjMJ^ibCn;HnQ+&!jL5)O71g;i)q{OeQLJ$fSd^rTC(r*fW zs`}^mCl_a?<`6G*2bvj{a4LAt_H*$GK9+JSSZ_v=l77P&e=)uzrzIxlYvL}daX>4$ zi{790kqvD`3bRbI7`e1DmNkgc$p6TNGxS6MSHr>~-VUhVUzyS{D4qBSbjshJNCiDr z{Rv>+9JfDz#;K_)2k34|NLpf~dt*ywuMPw^1P_Ic?IOy)6Rckj^uy2PzK^n7rM`cg zSJZY6;WuECYbN~SwAEwjnV8g9(Sltm@A~>JlH;o=i&b3B)ugOHk|kr4G2n&oez`wY zABp{-&T55<S2%V&R2+}M<0@esG^}{cD1PsgOyG|$uI5x2$VAxJ**n8GZ-~enXTaQC z#b|0{i7*lP`Wqn*oksZg=wFogE|<<b5&0|E{<UYFonmv}8%-0qMdLU%e^R~c$1%yq zxW5TBVsxZxmvG%t9qg0*p7nl$PMiXIbFh-FAsJe3htJ+4>Wd}cr-I&UN4v_y;W8+? z4OXWZ%B=)?Xq@W2h9>2wCTb!=2D5L!9B+3&pD*#AeGA95=UQf0sK+x|_HNOwGtG2| zcDC&O6+94J@f@S9jOjOCQdB1@BosxhqYyWgzP^kJCvkeZOWx?|9X3olKf@E=_7@82 zlz&(=@b10ojxutJnnH67%`U9@**yLDiY`%uIr?ROyH<RH6>M_i^U3q0uu&~{sl$4$ z0i=b(u#O+r@w)wt8ItPyjNe@&nX1aqy$U8$*giUi-a#HLEDD^F*bXW5I*z2jRuD8H zuWkutF|gKbZ_^#Z%2$AItG*2qINz9kfeXj$aS7MnSeNOIk|`llu+{+AYj-j8uU1}X zzwmH~f|_Uqj)_)oLNLQ!1bdhICOKap1Q{Yfw<Q9wO=xK7KE+nX^F#jOV&exkZ5qY& z5{T4m6&Lp`aZw%1($n5J>KuoNmNQOuqNc3`ouEP~f&6B?_b~JfS$hV*$)Q@rKgGT2 zpfTBUw)5pxchzQRP>{8q`UGiCftBMm(C|@MI_%>zK3ng)r-8b!1Ss7OEN6366`vwQ zBreBb?$KVnx{ArdFwlR*FoqY6ZTX?EGBt^u?F_nXe5qnol%=ul8&Z&tS|N}YGvI)` z8|c9oo>_CbaUg(mugaF@+D?y7drzkg5k<i=tVn~l%lsJNiBR>C>cD!1cHAvPf5b;I z@+!8lp>ctMs6txpyGlPnzES-jOo(ZgBQ8eNPa1D@U=Q!K^kYrcQ=x7gB({;yV-G?q ztxs>+aQd8bH{+~Xc_?X%-@^r8#n7|0nspj}?J$;dDM+YcY{w9Sf-Wnm4|<hZ4j-Mo zYo*#g?Q?Lfd+Bgp4e?y&VIx+T-rSCMof1qM-Hc1#uaH4>07>QxbZiV}aS$MfSgg$z z8pTB7LEw3v6BKVpxBiXk*!+IA3}Fn3;b4nS1|FEFOL~4Io~7Pa4P-h;z?!+OuSyZ% z68%)M6MKCr!xd_qR{w%1vE!%xtOAf`m)bjhC7|@ZFnSmZPW>9rIbFN<$2us5eySI4 zCboQ9yt6LRhmXr%CxY)y$ao!djVtXF%Q(VC;6%d!_E|m;9fg4X9m4N(v0y@I7<F7$ z{StgyVo5K&H`o<<=7Ud<_fz3c>_5(Y_*@T@te2Y9jvF>mU-~>w1xGiBVcACHCQeIh zJERd0m&ZGPZ6-qTqEXRZksT!Rlt$4fB_pCjiV-(^C+r)FW~V2f*M!kk6rXSU!92Xh zHy0CcUurA-G?u9EDjoqk5Jx<ah;9U`#KjQ`s^-=CK`wq;Ds>vZxcxn;`Kz12N(S_T z#Gdys{c)n5?941my(qgs$`G$Zu^XycpaY5sT*S=#_ddvD;yFqL+^1sr`Vnr0w_@MC z)A<#0KU8yrp8Tz?&n@%Bv&TpcLh-4&UUxcwrlPLm9b77;;S_Nq0mO$#f(p05N7K%6 z^hP7Or1>bzPX#SSA7W5lhl_IJ9Wyf(C`2!l)6gkqB99oe@ZZRC`o?I}@GDFYRDLt} zl8-=&*$WIXRdt>@oN{EkYqVhQSfP4SkBg5lT<Iw&phG}KwO#J%S;?|pHiLv#vS48J zce_g|ECeB6%+urt#Q|^u^iuJ3Y`(DAz+Md+VjJ346NL%S3qVLOcs`Y|p_I9Qy>fk} z$J@22^DV<6KltsGRc3+ktGpu`k*u`xy=lQ08~oqd-}DwB!1y3ACAjgH#o47u;qPoU z^J<XQn?MQ6@Q1PIhsX(*EI9aDe$A2I+DfR={i)($2$(rKrWvUODGQ=blmM!d8*!zd z4Go%lxo>7tx4xFQUe8}>vX)-`B2RK+v-P%p`}7%T_NZxm@BU;kgvXLS?n;s{unov# zAr{&CMGP=}wAdu4p83ekT8JC|En0^apQ$_31bB~KN-=*vU~5bbEqGmQM$*X+%O`b4 zi=G4NxeQSd8+7>${CtTbvkD=_fzr3XrdnygT@tklH`XaPRp7Hn#ms)3xi6B~97T)W zo*Md3_!!mxn4ZVCX3#@;j3$sKIY<#v5nL}b@Ud4__fF4omeYN-xx@>>{<NP_fo53{ zHLy_S5X(qn^03hBY_?+f#-Ejhh!MDt8ZJ@JV+VhD-u}&(400MQ*{9BdyNdsw>C4WY z*FKMJ<stOA*ogaPn&ju(Cd<?)qZduU!OXP8=n8Tf3bq9ITZQ%Ybye!783SKE8>%<8 zY8(pM)tR4{C~@tf?7Og2b8gj&tXCjECMe~lA=Uq;6Oyor-B5BXUrRumhlPjvnFX^P z_geXz*@Q5Yh}t-tP|iuSIWSi`k9=0RuK^~P?aH$78Tc1VDJMT+MjfMl*HwE>jVi)K z6(V{kihid3&KP=h-c3n!_zKZ7K6<mh6zIhF%Sfv=pJTlOhBGN(2(ya_(%3XnweSp% zVu=<a?z4W(hw?B&Gd$z!O~%;uOe<V+Bg3S+Y51>7&_`*4v}&JLWhyl3vOP}%Ow|xV za10BaB>c95O9^CpE@9r8p0S1YIxsCQsOYxUwrRJGe)~Lmzxs0&6M|Oy_iH-J#X1PP zA*Y&aft&^j)Gf7sPd^mN%H&DEv*up8BD*jjVi9=6dKys}UkDle<^}xE%0bUZf{o~# z%qmTeOeYWTO@4`C^y*=CT(?40&RRo|9M+qe46Cc?mHQP>-CtC)xynHD){n`-oZ?WB zm-HJ<lO{xx-=%0Q$kI?>#}+GJCl$_6c2G=@crgL3AodqCP^{NtlgR?7rx(Bu^gt+R zs(ta)!G?Cl`Jz{6ojlPEa%>|uA3G$ZSrVQ#W5t94%Yw3UK!lyJm$4%J;pU+`ZOGEU zNU|SkNF&4mZ?^v<nFcyboh(2^rvAA0h1N5Z?kWswuZPEgT9<(VkgmC2hx54hUG2;& z@ySKq5Dq|N_$_^yy}7c|pp3BVElHJvX0Rb>=X(xRq)JJ~CVdj<A@RXUUE=0QAAITf z?m=@$?Y%;!F`#;Lfp@GBBh|`-QK~|c!4?mJs>6=j3|1qTIZ%O5FKl#DN(*)n^}^Fd zUe@CJ>qbTv-*WDm*X_VqG|WWEDI(FEZHy776OyzMnL!-ucAc(D{*HL?9`lr(PW&{N zV+75_gnl&|x*LZvVdMC)QTtjkGZ#6#h>1YXOZgz&F!J}T+nYEI`Zz@i+ZDrSR1Qai z6q3=>o}cP@^EE~G(rL!RFbdg_0?HZ@QwUm^1WV~N?&*Af8e`?cEI{cJzj&^#R+qFD zzVq`kw&%0xc^~JO&2I5q1`@033jD@To&iNa;tGmM(=8Nf+rh0N{?^xpdw$pR79W>G zID4`2bS6r~XfT=QLQPeHlBDhKsN$^U2sPEdbF921w%vy3b%x;@6I68&GB(RY88cNT z8txv%q3UHKEM0qIKoM{5?*1T8nfiVkfUNBa>F}+|0nuncVv}8%Iiz*_=SS?|1mo<I zr*qIcj-eD$|Di75_qPwF({}Pal)^`=ZD$U(FZ|Zk7Gnu^pdpcEz02upr@@amdqddK zd2kSaKGCJloF}pRbOb6UDb#=~u(@WpawyLmqOP>}33@aiCzMxVW@Ze(yv@QyR!NC! zi;j<F{PgJ)5dCyT!MqWFz~%?`&9CIXYJ0zyzB8+@QRW1Rh`hJSVItsGitkB7QOd$* z>+4)Z^f2RRXcqBK4@;P%|6LTsO2C{}+R}#}(t+BESEbvp%VuKg+#3w;h38cRDm6?t zLdQM{=eS6&2$1-6hBH^m_dmGU90rE{fcIlxY@v{v)Hac;CtRKC`+8PK%&JbVC?i*} z_=Z~FoHBUt6BI4_V|kF!kQfAm+bAi+fO`f+g6*=&fA{Rm8!HJMzh4Y{yE_pTeoOwb za))o&1b5ouEnUqMpy1ECN8d+L8U0pmmbTysQ$sL<A&aeSW+SOlLhPukRpRgB<s!`m z@X*6lQv4qPz0y&@CG?MU8#~Hh0#2w-$|HFi1Oi&XnN!O9x&x}}q(rUfJPGG|jgEP5 ze9Q;q=p7eq>Jf&{<|{F%vOXi)l`MB_20B~s7owBz)7cvj|Aw#As=Dm(hZZwOo#UPq zT`lFX;eI;-pgqNY(Hl~~jF2nssbnq#8a+!YRHj8f1RsVoeeFIEc#L7Il&KEP^lM&~ z1MOcJGhV0cqIb{-(3BtbtK4yB%_28n1;8|ZG_4V6=2FXpnM&KIP7IHX_1d8|F=2WK zsnBLjX^@ov4;}z4oo6~_K*)DsQl6R&UeXo1u?}FW!M-g?<=|n^#Em4Nt2Y$g8pU+u zoYmZnV8imqsgnCa-!yWv=i9vUf&%%RGJhKe91+!SO}^IuS@!I9>in=aN~~te;#VHF zxfy(d8<(-o&7_UF;F4Md&w8+4B&_|z$sA@+54VnUW{J`OVG;gec0Zk(CY(K1?$26y zSTYFtcN~FWbpesbh;PWEp#QIsN&vlxti7pFQnA~pf=Xqd0XMNEB3ReKx-h-nP<{;F z!VM_6!KJB27oBgbH3-cNTzOS~s+h4J4~S(cj08(HdhS&-<=Hsh$+0#9Lf?b^8GNXv zWP9)Shv{yP%Kv=vSmGW7vLJ22l)RgNdx)6&Ml$hIQGHOWkweE(#tP@V=~_P|!$+;J z4;!N@ramKmf@}tWEfA!3<fQ-@t25k!Z0!H6amQNo@Nk7^qCRLs`QvM#n~6!hwpc=c ziB`2Lg91dbyn{&-Rx-ixfq5Bs@xr3}M!4fzFdibOfTqirCYqNTnDt!Md)xL$S2c#D z^-w^jIYt={lsx+zc&*vy-DsS$2pVvL$XPR#6=ikc`vUtGwDsgW|5iSd^_==qDOHg{ z-#Sx~h0QqRcb5I&PIQn7K8;2)r-fz0%K3m4=`AGP>xCWI*&oBP&H|)lD|k>9Sye~x zLQVaSx?TU&z<6v{DN8-?3CSlNC;JP@YWydY$Sqc{J=qDbRpC%LJfIY0$3mLL;h~pI zcVHPrVLx#P0F7^=T@xN|Bk~CYq0w{%_>K`a#_Y_GDrhg&BtdJ#lr()nL2{BpL+kq| zNb!>3ep3JT?Hd)ikd4=2qNk4reG?_}N_0K8;@Lk<P{kW}#StN<sK6ww!gGqkrz`bs z?iZJ<cOY=exu?sgaM9Zb2NcUWX@Oo*;0lXh%%JzU1Hnavj_(;1<~#@v;Sf_I{5~E` zVZAC;HBw(Px;xSAA%F33%Rv^1J)#Dl?JskSlTD?=!W;THHi%5GOVqK|D%1VY(VZga zM32g=Bk3&3(BmZ}vY3B5n)~zV<i9(XA9zb-<sd(*j~AMdz^wp<>^xWX-&$W_oxMB@ zF+J0SYBJ`J2;kN<;MkfxM!_OEOFa_&UG2aoB@a1qQuulFyAU(tK7!q)cgBCWCDr_l z{iy;TDv%^4aVDy9Yb&UtkwHN)S<DEYVZ^*Dpb$=ngvX+4#*I(`F7xz-?sh2)i;7hC zm?w`ig>T#v<Kl9Y7z94woUW~(oFIpzG(*#x@>gu0R$E2VPb0`;f1&I(EKv^n?wUYO zN`hB5xVg;Z^A)-8;0JgCE8>z7+2hvQM)5LZG(-6qLPj!N#mDHm6hoWls*@hO6Uy^X zBy1((5&uz|(05#nlfbeM`h6)WU<cU@NvrB>0a1;kDv#JjI#B#>RfUx!_P#iEedskZ zE)mA2NB8Xw{EPO>00PkG6Waf|@f-e<7<!@x%f8qWK)n7#X2#)>D)7CyQd}Vywnyvb zge(qS*9Iz?5EJk~s!v(a{gkPorlNZ14%s<LqP`UR{riWG?*|@7*GU`Z$!5#&P?e73 zAT!w7%g;yv66y~1LcSW3$F6-J(}rzv#Zpqd1OKPi;I6z9{B9Y3Jj(a(xC}?glWbCv z-b+6Wt<?8Hh@Niz9ObVPIQY$4^z^-NuF{g9YFZv1iU!jrDM64>Vc&mPw;q$@-LnV~ z-EPoKlUxSD0%<Aw+ktN5fhuQTN%Rl8daRJ>Uacn6N?HP3xY;&_DTXtm++*5c_NUjj zPql)u&hoogo$!A<#BESrPWmfZI6Pe3BGt5MA!#2>cEyi6`>DXz0pJ8$T7{$+c9Fv@ zRk8(cVm~zu4Kt7C^d~J}s^L@Nyoaf;iVqGK>J>>r_kabEO$%O4F3+b?ei^l$#ozM3 zCwJRfxQN->mkz|fj~{-u)U*QCQMQTwwAMT4xI1zvti?j`i?fI_!6qUSIi_5J0NEgS z_if=ZcYEL1$A6lr4com+NKowSlPgwSjK$qWUCkxU{&c%l8<QMM+ZT~H*q;lNEMOjV z^LH<B_4wi3PnVcTBs}lN3bsbBVMs*Hg=?EIe_KOzpiSz<orU8Va)}geH!2_Fp;U>6 zc8>S5IHq3~M+qQl==~#UR6qW6#h;ZZrcQgAoBw1GmV*c`l$GPmhByXI<C)NeZZd&k z#?s0=NIoT;PS9Gn;_v%`wb@gVMxu^^Ji{~?=(oSwq{coIB^R~6u0?O7Q&J0`)uDQL zV=Ypk3%itDJ|;8KAwAaAL21GL4?2dSp*aECBQUX5ALlkRkCT7~aPOw-a^hBgmw4ll zj}UXd!<8ds5ru#ApiJ6eMtN16jk;bAp#vYIbot#7k?6gVn?*v=3~(A`7Lc<136U7k zP!6zF5sTAjN*UQa^95o@2RuzaF!ePpZ6n?OYoV}V>o5s%L&9z=k$MKUv!Z=5*Ww}* zd{;O1<R&FwE5!)n(Na~`e7`L|2YZ7?+kM02@V6wbHYS?IJIC~sLo(l<mt$DKVXsc| z{tIjY1ApRcz59?t1U}qD-V3k8;eW_Ef$a#=6HTz`+8Qs3Dr$DXe@u5@NANfwpbh@Z zlqfY{(cBd|r@P9P5v8{mtfHsJtf5Fi!96OMP>~6-37?_(sq`J{f%zMmYjP>+_Xr}0 zl?0`2XEoU5YWc_zh)z1m>EdQy33)`=1lGhqPXw(&3g|uyiR)Gl@Te%qYsdf5b7tvL zkJH=9T!F$gDItZ^t9odYjOfpnll5xF2&|@90yMWheD?121+L*BSFM8nV#4ck>#=vg zawI|_7H$G^>0V%Z00tQa!mnkNgunku^&Gi1r?bF_anv3c@c$bzhL7>j_t%hf0WGTR zlE<lObbm)>W4=a-ytlI9T^55cf3$LHV&HWnw!8|LT6ldGAK=kz8zJm0PY36E04u&} zMJL=B<1G5LQ>~$$t|MIE3+7~H@2KnEdw?W83*y}Phu<;|KWfdx`__rcv{u^IroYsF zHLdf{u?1Rk*?_!ha&04c>U{C;?JY8sb{*pjyOn?ex+^f~6MvJI1?2unOD&^LQWI8C zl6_}CBs*F?(ib!Uxp%RxD53o)3{6O0IgbFX6&eRzzAPC*Dnii0LMS{1bZla6Vp$|k zW%s0J^aQ~&7*hHDpc7FnNKc;?R((OO;kdw;?4J8Bt(_h7egXMiUxWhhcaVv%7akMj zzv$6ok1I>dQ-cF4UQpTG`)Q}#RR5QhT}^G@C7)^>NA|QTl5X7XNclxB7ATX75c!{I ze%Q3FD=H3ONa+V3jxa@|ysD16c9CF7VOQ-%Ii?N${o{56!S~WR<KKkyoZnC9Z--M5 zu<%-P!ed%RSPi1yeyS-W-~nQ0Xc5c+;&rLLR~13Sn9w`~P^+eNwt+d$-xTn47b(dA zUMVtZs*V;=f^GEvP(lNNHrQe*e_qeW{>;lOMC5}}1TDRSD&Y(O7CQw>{-upzJm#>a zD9I;@ijkPHSE$5MadFrLT-HgK$4fd(e2y&DCI?Y`-Z02tC?M!y6fnsZguVURl(?(a z6x-F67sx&G)T&%(ls|p6j`^M+5f_xy#(>h2e?Prbzx>|?YRTU~H9^AmEtola3L)1+ z%@=`~*gD{xD^aY!v_2QO+s#SSW^D2zZGB^y6D94Ip_4Htidz9~&;E+HXGT6e5#V#* zf62SOySc)wQq=sWd2&8`f&{Km?{9NyB>~wjy{7DO)aD=A=kw>Pi?3mqsq^#mPJ4WE zQyvdzeKsjY;$G<zALYWse|{Kw&2ADUvglmB3>9853%ce|dR>#L;(fsC3y&`7Z~OWF zRS8+zab@%W3DcTOturow2}!7JoN~_(_7EcVCB1Ira)Or`36|Ae$wUp)C)=lgVTFB2 z_$${A_TaE3!KvbZ>P1CxVn3e$?M7Iy7_F~y8xbkzU)~zKHV0@aa2N;{^ZxY#ezh4l zAwfrQpx4~<3wnV1&%ATQLnf*r$zGiT+CTb}bpFWR1sPx&jrqdznL)H3I}ch%JVyP? zI{KQbm;Ax4fF9N!^x;Racg+4~ye5kUMTwJ~W8y4S!{$Ffu7wl-eVzOJk+K&kx1ONM ziNl^t-}2Mm@$cjp9{rvz<HC+NSgVn&mr{I&FIA`x&AV|YP*@z`{czI*P111}lrkni z@e*nd@Lue`BB^<)Mt^+c(@^E7@8*5*{l6W>s~sA=f&bea<EU}~a25LGtcI`-Af^+* zF(~@)SlVNA@_GyfTly8taWuldOTOf=<wER_m+w+p+T0}Y27H6LpgWlK7de!Gk;~3s zpnUr07aE7OmMqzNF!>Mryi%?{nhA<xh)76NrJ#)tAt9kD=(~6h%zW~nPXoycVtPbH zMUCqnd(`Kp{!Z1wUN-%y^JzKK`?pUlZ*Q>zo-^nWlSRhc5B4gDsA}uCs^BH|6W}7h ze^r5tKPRF0?~cAQI*|BH9KcTvfDVB#4pPU<UF9{mqJjb`u%5sTJ1MBWLVNG-z20}} z`$Jk$=lkyyrtdlim%&bySL<T1^sl;?LhrNx4!k3Jx9_NiK12U$e7q0%$EW7Dx3=h` zUV6_VA|mEiRw}z5FVerXOnlgt6b47F2Ff9H#>_zk8qb{Be>`_x<V`a)@Dj~Xuj2R6 zc?wHQ<7qRzRhB;AFRTpO)GyKGj^EwhHkyS@KFHjzxS{q>*BJ8#DlYOeDz|a4N>hkI zQS)SudF=F;7sLve%EkgbEfrcMUIZa|{Rln<J#-g!nccWY-vQpC1*FC*VE4%Nh7nNu z`}<EcyV>2Ns7DqI;ezo<l;17D0&l6TV}SMZ8B(qOqC+1Ei8dp#8I0hpZ8h*s{r}`e zlRj>F`=Fabf&2S%;iYYMom8oE{yO_Wv%r5%bc~a4nNPkxZ6Dp7Z8&cBV-WDWmh|-X zF-H0P`i5f}-T*kEFWMV52MNhPe9c~Bt$vrMgc{sr^$>3U_~ZB;2+-?5u$(8}d0H93 z;BmMV2-2}ibl%tSjx&o{6WmlH0nm?Q04&`R)9&r5J59oj9YBX9(bGQy1l6GkvHpZS zykq*VUjD))50xgU_nm>Sf;$Fwf9Ft>lXuuujMzF&Y<yaPl7R5q9e-V0@OuRyWan3G zQbsCI2q6!F6$eMhuj8YtYTWr_^_UQ2`|XI`W+-hsIuvbZXXl;Qs-~h2$0;C?xV2r7 z<T*{Ktp>GA4h#(J_lA>#*k(hq*z@;6gjzzKq_Fvc0ubkE8+cyrn?;K5D?6vaBKyY1 z_d6@}#)CSU`T9#P{35iT6x=`tD<);{DzwQM60vS-a<cz}qF^4>TJv#}EH1P5WY+gp z;JooLvI+sXdGs!a#4u8FjW9C0EYT;-U0<P%+?t=F%S*A0&DDcJk+jtB1}Q2O;NHVY zw~u#}$w~T7Lm}aJNUN#EXB%_e$jiy83S08o*LFaX?gk*~`uMb-b8A^%x=BfWZ8N;~ zV=dW@dD>>?;P^myDDC^@%NHb{XP`zHEG};=>WBq5&<B`=gbY4+sn7g&zj$28Mk^rN zxx+a0Ki`^p0LAN8)zFjg^)c-JMB^Rw4eLypF`==NN>=lpm}(Ao=y;lxS#B}idkqBT zXj=-ZC1z?BF**9&H_0l}g}d872I7*<znwmhS(IO;xTG$dZ~N@D><H|5{Ix5sUQTvO zzewGgyZ^gz-`wu?d|hoa=Q5)QZ4u^rtoodDR`QwtpuGLFmR;*rz+35O4&n<Vt#bCq z(JGlDlD_awH*jA{Y{efM>$=-;!7}T(Szwa}XagpzVYM^*{Pw+|!7O2TPxPUuaVJ4c zbs({p1H057_invf%FBA#0+w`U0Niy3G#g7Trx8xc_{PSAW3M5bixVcKlP20@>+{_B zp}6<uICwS-_@Pv7_sh?WPI!xIxQiZcXD3q{dWCZOHd|GLGK_KY>Qd^BqJK<66IH6e zb}*b%kt|^T;=CkNM<1G-OQ<c;xea;hrQJmt=cpRyE5Ey5KB`~Q-yTWPP^F!p9xy;A z9G6qVK^d_rwhrb{5PrOL1VrFIZ^)?Iu*$n|ZDy<E<P6?<djCuQqsfEkrefQ64sGKr z-!$$OyD}K6QzH~tUA0hN2orKuRGw8o$8phDu%k*Y?ETR_1LS!tnJZ;Dv>X<rOgpJg z3NYe1BlAg{9kqvJK#-`#wd}qDq{}sIX~m-11F~8HFuOY4?Q_)@UqlzYFGlcQX~^Da ze}0>bnRx<>gxhmx&ataA_MJ*GL^Vsc(Yg~c&1#z-tL7K3&N~EVpZj409Oys!ijjjk zF!iz+yD-lU^N~O@k)7($O8^<uXUWg7-0*aF(EU7%ce3T3^NR&bmpQ!sk<V^*@RC1V zW5&^7HRfSd6JdI*tw5l&K{|7PAz`(+tck&Xizdao3SUF}xd_W`{!@MjL7>7ol>@u& z2crfB<RJF}IQjw7p>&g2gRMc(mtF%^@N&Fr!L}JzTyw5_Ek;WJs7lJOEt=*FiL2)C zq_LISX>CT1u_20<*8&n;t3Ok0zg>+ejMp0mxAy-QLYTCE0_TSoOUr4OBbfhvxC(c5 zM`GxKJQpm>5D*Z=W76+LRsXDf^eBRxr)_M>iKbF=2sujgG<iMmw^|7!-tpGUv>Bhj z1_(EMhZg0a?5Ot8PQ3QqLNwe=8qcF2Mgh$v1!u$rV;kN33p1W<s^cJi<%YlDiqn`N zCBl$}=CkMCT-g*%Di}X>xuVZ{*$9J%klmbC9E2htXrF-^jpRNt-i|vD$+6v(C;D@r zx6z^b$PXO(ls7$+BrdAxv|8*-qsblqOZMF;m2DWbWKXAGhRjoJ5_+Whr%2j52!%JJ z#0O#VbkQ@-?~m%yd~}|z+iF>qNW#lM7B-yMC5S?8qfCS|6CjNi2rHlUe#%e7^;(H{ z^a`im`!JU5oANRhM<$2d_2Th2eQ(oBXoy$~(T)LY(<j5e3t{UkWdyt~uSsv%uXhAG zb_b)H(%1ScT9~x03A->t2Bkc_2PM_n6Ysi3{P_Ll_-Wr$E5zw})og-sAPf&yOQmv{ zP)LKWAPk<jVlX)jWspv-`7m=_1f{8WG$#D~F#Z>n{}7!^5YpP~N(k9aJv0_<t(=Fy zL5Dtk-|BT!{2J~iE4g+KJ`a@p-{7t51?DtA$)pndKAb6!cn`Dn#ra&%(c1TF);mTV zBTBeAW76itYLK?VAW%6}!K~Gs=1?hU7fj|YszA-=!55g3(fZjWi|IJ?gYO}gEZZ1= z$uEncG$f?Z{)au7Wy>{&N9&v4`Np*jd1&nQzH2VO?7AscVa<IjOvTZ(-QOi@&{Rt5 zshu8EYCV_!2mbScR6EBLyX^#P?#ibauHI+u7#;#&f*sbks!-CYZ&legoVBD=!(t7I zyysymP}E0xbhV*o9RN?eiuUDK&>9nei_KjjK;*nSr1*1kDHkX1kWHl!A|~$<z402d z2O-dHfI2a5BZ8lWl&luGf+WQ=4jqL_G06^jF=#J+MmT4%y|B0!?Ypa1KHvW`3FUMg z1e1QezE4qS1;|d(e7p{CGRe?pgrvDQA|MDwhoouKR9V^|&a0lE?h~2o7uh}W%{XSw zcRyz9!?qaNj;8W*JdBZg9V)k6&RDLu-Gmn9>o2<9rRhsKxQ|AEws3cz`p)=1KxYF~ zK+OfTB#A45Y~fXzbvE-DDQ)YxXF4Snd6fC7!1sk5M$Yg>&x6v9P^3AjinQ3EHo^3S zHqPLy{s!q-8ftr+{H6_h22w4Bm8ML)`XyJhG?(dtKHoacmFb)JczUX3;CKapNW{(u zXYHcX*G;A0xXaq^_A4ZHY--ic*txOnkfSLQ*HmED_uLXhm6&;h+Wwr>yh|RkCz7(i zOBeKVrCMGa{PgE1=X3(CLlv^jh<Jh?6s})i9OBP>xnz}}3TcGoG}W;~EZs(YF>QD( zy7+eqdkcnvDC`A<G_Vop+E($=S160)_4%5nnd~y6r~_-4HsLE^D>Vb?ldKcYX- zL8?2e3$q_7`c6BeD9?c%FHW6}%Gprv`Mg`O#ZT-^9Me3GPEbvjjTJLza9Aib0`U)& zg;Y<~hJ4Kyn1xnPTT8hxDp2(PaUwG0)KQpH2>;JN$Hl=!o)9<MF8tq~h{F7s2ouBe zDN*Rc_J4n7Hw!$om-XgC^?&}HmyfNH1#`AWHp7Gae}Cpu2|RPDl;lzLKYiQ(zWhA3 zKb69K-dIb@|Ne|89eBo*ZaDOF(F;>%3-oBE1D5KQ4G=T9#e1E!)|WKx7i~eJxr=C7 zq`3@2lihSUg8%o;{$3RQ*B1as;u@WHLQtP?$9xlBelQqSL(?d@YW*8y$nvzV(?}J- zRU}TS>y(zXoDcqOjJ#vI2AGdlcR(Q%9$oX{%Xs@qW!V3f;I61yUc9>H=EdBJlQ`Cm zu(LUfJAhRAe&-dja~3umjEj<+s^=887)>4j+x~P_zV71`*hX^leq~!Z!dz+<kp5Ym z-`8K(8+Ha%OsTmYUQQN%=(crRI0#0<>%DvG6Mj+#u>syn^UC8f9#<!^(azk1?frNd z|5!1;D?(Dvb~@gDk7DvzaY@ynF<G}_a{VW#AH_C&2R%eUZMfre3Kz!aalUy<MmZO| z?|VbK<IkPiec#p$jAvh%+3_&#-nx;V3gcLOeO)w4_OSYjwfCztVywFF*2;3A>>6@X z(8`)qOJWWICi;i3uXp8j;Vm@(u8TEQDXby$)%Wrr)t-b>dXEvGwKmnwXqtpq9XB0> z9M3&|j-*n!V?M)uP9J#ulkrqD{DZSt*Wniq+nzrm)&pClhn&aqMLM1@&}Tf}GezNk zH!ZN0C%*z(>4t|x3t`3=(AUri_X;r|44+@r7lF;!TcL{H#vY?i=~&OWR4%B!Q4Y<U zF|zAd;99<E(Q$}5_{@};?6zMrfy8w-%Nnc_hc@IAzPy<d-#;5>iF)dvFLTJ^zq2&a z1w=8|&1PGJ9b*e{sXTS9r~ayG=&AiX;lX|wC;Yglm}M6c)t2#iXpsmqHLlAMwr%_t z7(X=8UKH*{rI*|_?&aEU>+YZ&jUrf~^q^1Zx)OYdD}q<+vgg6ltB#2?G|(xQ9pKK+ zhYX(B18}$kd}b|+O9#P3#Xr#Nh@qq&w?cp~TMf&2*rfI6ux&Z(h1j$ztyQ1<m=g|V zApm%+EcO!fsrs_*Zad;l=WGwJS{x2a>m?vY63A`mV)F&I=>54Z?Wb-J>|uqk9#4GR zUpR}f%MC|$3ti9F6`gQqvGQC9I;JcgtfMJ89+-aIYYIHj1b379LbcY_BV1dJV?MS~ z<PSK424K(e=eQ}hDsSal7XKlzjuA<x=r#XGYz7{?(;ZAx2<3nWKaN=|9`RI7geve3 zDh^vNM$IlpxLNHbs6}@d|Mp<E^+|LvO+Sc}-HpElk>lJ;e;Rw_g(Wd*ALCrV`yw5H zMfTj53MOSGkDPr3;=R=we2lz19IAg;Lms8obP$B;D9=V1L>@bL0394M(&38cXFv0e zaBdb5MY4{$_j0UP4`NbELy-3>C{b@no(M^1CcpBFf*|&QLf-nA4x@@~css^-Py)dK zK~E91tbdt}7Y{;fA(nZzOOyx4u*;D%2V>%#+jEey^QBVwP^vg0t3w@D$th4vz3d^c z$g?<Dt>Q;;YXlCo#=fnJL+o>KLC#Tp6nuWT5O1IA<uAV~ZGx9>0~OI%5UxTiBhi?< z!7#JLK|-mJaw%@x_`=<`x5BAsxwL}xhjF>`n3t_l-X~+PkshzgeOq;XuBMD)`Oe@3 z&&i~8-2(;J#Akn6Dx#Y|MEc$1wcq?Qmir_m1y$*k<{oG>_?sBvlr~@uiKQVk)$6!1 z+C9sSX9Mh2pFQS=^l|Tg%6hh)4>Ceq+>n+Sk@BRkh{pY{<*k}CPvP95q1}zw9O`Gu zO`_sU^@q>mDF4Q>I%pwuk-UYV=q`r7befX{J?h8bevx((mtx!W$$@FF`4FlLc{HkE z&KzT)xA(rpfHE}pvvkw1c9U!!@~S9<r}M<_g4TyE*2qlh#w7szChi1`h1xDKq)!z5 zrsq2!BVha{6oK??%dP!hkLR@?Eafo#;HJH82Sb1<C`@eG*m>!|490`J1oE|~y5~z` zEOFX1P^imuG0f3zXdLRJK|?2bK}CK+%W(?+P$8)|cUS^;O?yALU|HQejn{hwcpoqS zbhAC}YqT?zyZ>Tb=jeOh=59y8L?xhIkX&KFco|NS{ID@le$Z<JPyskLV-gCnIa2~p zDxUFfS1$w}Kg_v~6Q2{Wvva+8$-|Zt$c_LlQS|#$@M{`d&cf|<k=^0EW^NB`q9K|o zpl@G5L-46?K;A%Z&aJKbsq48wU^Ryn1kj0pTTgtHd4mtfehVN}V4cEIgrSI)P+G5{ zbWZT@q+S?YzcW-jgKHUhJ{82|I1Q1j$xTI+TEWW{Ja&jgdZrwI8Q_kuzPCdLgBtC3 zQyn4RXa>+01zd$a2mwb{2KU-M7|!A2^~Za+ASJh2MOKS)er%d)EjtA1>`3DPf+sbm z#n(e%0k7TyLK)O^tSndy^151Ek=zcHG#+Tk0Oab=MkqYu)Psx$w}Ut7S7;WekcS~f zvw>(r?rfjtSsiE{CRnBGZ`{ynkyE5uIzCV4kmC5w2U#pa5HGm3od&bQa4>aLZHXJE z=kQ{ptJ1gPk<YOfO)l$;-TeXx_V`~DwGf^_w-9Ng=|?Xfs(CxxCxjbMCG%)=unJ=q z3bW2W1@g==%MfTZ0egpv?F-_-M3E89{?*^qP%z|b(r_h+3cDl)S#|{EcdlVoA9Wl} zeTat&5e#`m6pq0G>g93v-GJCEUQ0-rM~|{OYH|AYxHPSGWf)28cp7p>qsa4NeWGYS zZK}PPshbbYA4-nh73(h^P=^p*A}7TLkNZg+OFDOOZhvowx>+FSKE>N_mtopK#uagW zmLZSOyj{m@$ItYM6ukb5s4+K8JQC|C1NpAFJ%H97I>C=Ss`(U-AJ(pdI>1=1=&Spa zBt^)xXoCRodZ4xVzcJ~y-cq{Szn3y}@5V(3I=nO!d(6xg?Qlcpd+xMTd2h5-NZHfZ z4^fuEk>K1}Ggw8QlI+Lw<WdA9IqGba4!C$i$w?%so*Rk3ye}#A{hn8marQCorLbV& z^>q49-~S@q_W!$ze3m<=iuN)XVf!2z-2_FcYshszD?We2kF+043>DW+JFrSngd<-I z>=)!@mmn6870~aMCzFO?Y6`D^rKISu%8<XF6B}eB##~*j=(fo4arHRyS|K9OBV_WA z9>ZtXYD;X{q>g@!-cx3<DG(4TN`?+g4|Aqg$Nvq6%MaQAaFo04EF7XZAm)qUq0!dD z%9HD^1{Zp_qTQv9*XZjn#F!mdV0ZKJ)954Ws0f34<qjZzA#DbC6Nzx06#WBi_z2{` zV2GzF?vXzt3dGeGGeAl(YOUK*bI#qoK%}CVL^H|dF3T&gCLruFK5nBDb<|PLdF$`= z7#{QZ)-q%IQL1)U(%XkrdGm<F{W)#4Y((>3g;u^sv#3zpwv1Sd@mmdz6#dab<oz2g zoB0a0!-TP6*t*_(h7~HSeOKZEvaP36IChj}KUpgZi-z3aWyM=yJ&9h?=ci)6>*x9| z<<27>fHJC-9Kqu+y{o7ODF<mWo9@rViGFP#!o2OwETVxTKi1zs92o6a<TSP8`>;V4 zNbWIJtdDd3;}``7-rHyfaw69@KZs)${*Fu76_g~Bkm@dYBEs{Xbizx0bbMB2c*I+N zmq+(Vw^J=mtQ2bP|83b36it1j+wm>b+Gw)##%G%&1HppEqym&rX)_DE2m;#u!X{*T z27uR-uxAGH6*0Pk!cXl1YH@mw)1Ta}^nQrw;xi#99A96m7^Zo!YN;lF1qh&&YpyXl z4Z6>fqV@>wl|6D7RWkKLu^>5oifMSalT5_EY`+^J#6*A9--+NTbXBPM9=)_4V?5T+ z-2MZ6hbpP!tLc2?5|>b9Q9~$-DjxO*KPl>VjErmI1@k?3t3~}wZBF>{Q&`Uo?@daw z(BYVU$_`19SW4;&0n9h;vvDSof?VFnsad~yo_~K*gfX=bv4n2>G6Fg8gq#QiqX}i4 z6ku10@?~T#Fskt(@<{tM1VSbr(o3C<w#De6@?_9`Nb^GHK@nvlM3&;HQCkygbX-n9 zJ_%9%9e?WU)nh7!8|wH$`;d-gp<C(&aTK9GUFAk79f}XP#GdMnF(z*?l^`z%6hE_n zMZHdLqcXSdG#Q#R_blOo9(`-sg)&-krQ)cbYKSMUSO4JmP9RnEZym(zzT1G$;UHF} z-b;8weU-PlPjccei7$RX&lw4mz%P5wHo$=CXNMY|gO#*}kBZQLI@_B=d|vZM0m=NC z+0H{2Mt>Wk)lr`|%~{1`rg<4BukzA>WBNEIHWme2*TK39d0U2BBSakYs99#}9lLV? zibyTon5U+_YXA<!PfS{NH<3sif=l@?5Y`sknKII#u#{z|1>HB_l?eWxo5dX=jR=AB z{&DIGiVYLJ!9#*+#z)3b2|q?34Q04PsM@w-hW8TihJ}9l%i#=EJz*xQKW167Cb=YK z3_YkiBwicaj6fu<Aty`l<Xr5@SHPx1I#c>WTCVc<*-QHgPn_bY`*Evcw5*}n!Rx@- zbrIdAoC<G4tH7QugmS|eorXMFKA^1!Jr5wxbPmHpa<tA{in@76bZB)H?<;49Z|+km zSg$lboDbz##+UnZ5HFO9KU(k3TS(!1;#%+EhryKSO!ZIa9P!$RFktb0;a-(-UBETs zfer;3?05n8{pu@W{DT$V5}gHmzL`3GZXkZ}zBCa}Dw3*hE&e}2NM5_i>o*~OZxfWU zq>!uNGShnHFMhs=KRdA*R@Qe-F&u%1pE$ikE94b9&O3y!ej2@DPiC;HIXn`dm?^>? zE{g&?VI1+*@}{qgiUbO^jy!drj>=&m<h({8<@APm*|)|nyFy*CXyMWC5;(K%2+|e3 z*Rj~}_^ysvE;*rW_ZCQ<?%={4ktLuydSB8oaxT*VKXnwGcp;s>!x|Y1(_K(%AoTf) zPPPqcjACCasipNc%@wZnSjtIZYo<s=wfYd)2(tcmF4{a<>QMQ;g)D;A(6<k{MX+$b zLlZ<pzmaKF8}*pXdy?S|k%R&nTYvp22pZlI=}_FLsBQXqx+1fq@J=6j8Gewjn4_wb z$qsqmliNj!R1JBSSrg`g=7qAbt|<UPFU<7U-_c*O2KeqS#t|AIM^9UA^}6FK@=Dj> zeLN)wH^GSXKpmFVGO!_96o|YxFT}@CoaHJROeT@^>>%)@_Z<5%y&;v|+Y~=sd3{h3 zC>k82&tQzM6LEig3KH%jn)8z+D)QZ!EoGL%p+*{AC|19p3F^F+aEdE;)Ae0zMyW@< zQ}n!&7u4j<Id3DXvCu!!gu+UA<I7mWs$CbPd+ryCX19XC^P!w*g9lbWRoCWxY7S|q zy)DWvtQltaLu1J@HWbREq@@|W<gd{1cc~wdi`RqNU};4Z^G%BJp7L0I=)YolMc5oE zvFmwZPMVzCJyT`g_08v6SSjV$wvzj4)Gg{(q<vY2oSe@^b5KcvL{c>ivivYQS}fUC zXo*n+!C&q%VwLUPbdmJnCSzEGX_y~HVI7T^3Ta>bRcv!=4WFl5;O&<=n!atY-r<W@ zQR?89(aDht;tq-l+1|p1a8s?{WPr<^4N7&KO3^xZ_?9`oq~K@i_1tHt&IH6K*wIXW zp`O?{D!mc|oDoV4+M<XaoJ(YG9`oFEtsfG9YE2=!V9Mmc<DO;hA8p#MO6^e6D66To zG05#hctm1C(j@Hv&>H_jg}Hd={Zan@J`2r<&J#;|+<9HLCzMojU4{$F!I<UB3KVug z1b69%->vP?)nP<n^-G%8fg<)(7JLUJVUM(W>RT@r2sU;|DEbI#!_v3&f1Dwv=Qpt& zD4>IQq9Ij$R2dccPNF(D7tv{xEP9a0|0J^=3J5(5K4B`2jv@?9kJoNnIqUMrEg0u3 zhWh>Z^Wm-xTfH#Xh9I7&5Qlb2;}8LlL1DL9{iR0BocHud=3va2))$8KZq^Ei)}><S zM_<)eRh#v#=qnOzuUJU^WO5M=8Y$fRdA~a!QN;CkysZ;DJqWEkQV2|uFzB?k>o5++ z%hTUtZP#HwN~TumNvASJPTt?^xkJxE+7)=_2%GY^bpC(sy?Hp)?fXAmqJ=xHsDyS~ zRCj4CDJfgB)fhXK$}+}S2V;xUqEM*_V~H#?#@NO_h6<IeV+=E9C|PF4AdG$aUDNmb z`P{$fe*S&_dXD~Z91Py?d0*Fcp66>h=ep*gDfiSPAfrKU67tLYl0U5-FfIO(Mb^ZV z@A9zwBiGI$8p@RG|0ZGgOlqWDB(O?k_MC<Kr+<B$YMFAtbo(N6!}<4cM$pXY6!VB_ z)%z~;nq4ybz#*+8*3ixL^HhybVz<_-e>`>TVN(A6(;k$U=@%=WT}}b9A+sR<BP-3M zE?%A8b$d0qYiHf|Zdv)i+sg*559s*Im$Yr+JXcLl4{3(2tCKhIJzD4XWqI?vJqj`9 z!WSKjzr5aaDTN)B;RiDli+Fnj7u<I0$K@yFt1o>|Jx-dt6Bl3Kvi^4Bz4?m4Sg~1I zH{J5ttbKo1bRX9-HZ$Bty<L27a|t*IT*J>gIAs*kp%J2LorAo*m$7cokRZvL#n8_9 z>!lQa^zfJQs8q3*atiStQ!z+UPc7i9ufILo!*X6nEIF0qdw{a;#*IB1hbc!&5`UL% z9nK-Mb?)_2DH%;qDjAgySNX~*2YVt<-*Yoc+TW6}?ysBDo8Db|&U^xS?ks^U)QhFc z-w)q$l5w^#2J*aa^5L|G)DL0SXrC@CB(HQ(R82%;GehZ$TsQv81NxHg{);*O@JHue zm3BZO6m4?U?xI!xsXX6|D+Y19sverm+`WHVcu-^G;Rs-MK+1%<!H?>SsRgiHnsTva zQ@rm?;l+n;%VN%0PfNF3$uOSxt%ADU{)T<*_h*5gX4oExeS;BS*#`tg<4%<onfk(& z$=MdM$MAUBSS(6CfD1lKhZr;3b<fxS%BLk8Tk5r6am|SJxk@|K)y0j@>YU`Ug=ZCo zuo(SswU;II{?^;i2wUPw*&Naq=j>k>qG8ZzaYKLZE7I~rmviIL-Ki|&SND7j_a3m^ z*zM|~k#&NjQm0`v*o_z6u$3hIY4#mu4(u$`{QZ%fEQSJy6~dIgJ^%jnH#yR4aa_DC zAus|QbbIs$p`z~kthfTED3|@t!$aoruAiHJe0thCD(Stk$Cf<&K+W^%wsiMIF~`3R z4bSKp9DVv1p%JNZO{n?sdf%re7QJ^@uT)JQGz@83&)pu_yQJ!?QZe-t13n9e3rh)? zR#<;_6KlI+{qr(JZr}sR^Acw7-9TYhF2k?qNW|WngXX6Pwr-J01BZ7gFUMWpx<--l zgP0$|S0AZA8M5AG^D6{lbnN;q#K*nMf2Bkm&j|P>EF|2jQ|!9VE?(=wk=1m#kyaHf z<8}+B1Uo7K#7EGGBPWbLZUlROKAIQmZkN9PGRhNw^K4Cl9rf-H;gMYKo7S7KFrEC! z2lr2~YyMl&H?${y-lJ=3=6vi9YMrl2hX1oC<9lq@-IE#J;Wgy?MtC$j{-ZD>e6!zJ zakFauu+NQ1$Gsz_Ir6!%w*zh)_uNW{u~Y8lpZDLe=cOXnVf@bHlb>4O?o9_lgx+8c zeek6lwaw1&RlQJ|tYQvYr|#Q}gAUNcJr@eTNN<9be_yB5`bb>^^yeQwJi6oE43k94 zT!Kum4a%=KVVpsVoQ;qWemsyRK5Mf@<>ZFZL#8vAi&!l?7?YkPes|%-*ty8QfeqW0 z*5zw_4?QcJ_`>Ati=EbvTP970Rg;BW6!;^_?j>$%$;sGvw~u`P>-@&t){d)N+TUUg z0tdm<Je7B=i;X;58`;J#xRoCh$ydJt_gLx)onvl5b~SZP!Lj=Xwmu+;9-aNFp%s6= z<<*s?f-62-Wd|<hcZ{z;aex`B8mM13eXvl(NyO?<&uCHY#QvAwg<EtV7PQFp#HT9H zj;-RC*XE7uY|Hedw?uw>a5|seda*yXbBjxR$rb+xirU<_Uyk+oSnkSi{pi?UIi0+# zFbf#vVV*6E;lR>dTT?Lm>+*lLIp;Aqz49<}X!>Q`sxcyB^wM`@g2LVe1q<OFpEmDV z?|b<#VT&Ex&4t&0dFk7__Xu#6#TRSm0yRErX(1Ds<%DQvo3;yzHR~5(8SZ|U(@(|* zk65o&k67;)j(wohuN#N%%6tQQ05qBtYG>XL2}xDd`8>7jyQT4QZ);)7<O6y8^S_>$ z9T$}BHv$!yi-3ThjRa%Ish7<`ZNaR=9oR?X$cTxM5v}G;=O-hEwju*RPJMGZ?<>>X zIPnlt^WA4i*(pc^$f>pa*XEm?lC@jCV@qbd$DHMY-IjyLuBR<_4H4EB2?@R_gZrBs zK$FZ6*r&y@HFVsUFvkt*pL$b%+$`wp^)~`_tC=|wHaDbXRr%GYih}W6SzHZMNu8M7 za>lcNb+$Z#5XysdM@Vwi3P6^(*_{`NxGtKMw{PH%(@ETl)SpM>ZJJ7ct**|I$@cRf zq#TjRzNOmHRb(jFjy91g;Nr~!g=pycC2^akC1H8>dREK)+J+;OK=eWf&6cE*YQW(J z4oyq30X2g@dBzUz8i2)-1UskOhM$$2t7uX|1~V9M;xS{lo59{P{GsmhTE0);plrax zeA9*6a|7$QSvT=t0rgmuMFR&V(E5LAmrcA*U3w80@>8?BoWw&U_+q&B&2FZ?NgHN3 zXMFvn0>KALYX#DW(?~YZ@@I^RpB7pJYKMT%$zCKa6$Fsr_|vsO96SN3?rnLa?D#9X zxj_|Gl&RGmH^f~Mh-)E0GPj3+bkXM8Gz$a;|NTh6Olg&b>b{|F^k86<7Hg3{TL4Ka zS=6R3`__v&dR2Zps#;{v$67gvYmTN9j|p^(>fah2{AFtS!boufY0QUCNky$J#vSd6 z^Ue`$!BC)f%U^%6cJ3EY?(PJQUXrV-VVfXrxnOM*f|=Zc{tdr1{Ut!Fng!A&v9+S} zbwO!&W~kXr1?Q_&&436T5me1!db*k73i9>6pX~@7(dw_9IlY3lBDu3&eu)QEeDsNd z+dJb=qsfzCg#Cl2;?rtsfJ9@@ea70x8a`WY1KduN#kx)By+SY8U@Ss??o0RGVE2>y zN0$a9fO0wY*x=l)P(l!R`a2qJL9Hbz3t++CI5BG-?D$~d=RI#ZZE22OuI{ql33SI4 zkkwF_WzV2yy8;mtJzr$XqW+0<?3O9gxIclvDeFVusW_eZ_Fbuy5BO3rXMeV_6WZ;N zCQz`eOfNTSb{B=U_p+8j<9*MW2)_2@SF2i|AmD_MY6fK{tiw;uKEyepnG@jXiiIgK zpKhTg-P4wzXPS$h9>f+2#V|c7b-}=>;kQf)EDrus`j-63tcfUA))|&yMBfN>P~!{J zCb2OA{TpKD1S&J%Bw*0tVAmijOfDvLsHvt~>_XY8&=sx|S@MWPo)l?RFQE+t7nin= zvKmTBX8CP3K<}cov88~{rM5X39FRa>HJ$Jl`5C1up(}BPWW#Q0cbGuahQOMe?woj{ zE43+N<)C@G)hS1eg*sy*W%xx2hUWp_I@Os_>$ei}rX=M~<%sqK*jZIq%2sTArK4=5 zhb*)bo5u<Sk5b<KaMOg1Yb6!$Nj!t1#%PT^8GaR(FqRL&LY5q;(j@|cnCpDP=f%_f zX*1+!(OywMyL5O)_B}mPQFzm&K~PyJb+1YVYi)IIt-fuXT7V)BHG)O0$)awL@trul zk6UXds<#y8x?>zzRzJ|eH|dyhznr02(D$g>sznYDdlgnS@j`0UrTX6BcVH7uB{rSA zTM4{D@|kSv-Y8c=hX!q3&0Gwm@{7qExC7S~ZcPvV5cURlG!-meRgj{d(yB`I5?PQ^ zFUC7h-?~k6U3;moR#H!>_v>~a?qB*Cwz2-pP3g*}@7r@9vtzm_sk5a+0%vA%E9<sZ zN8gDC*n8s$Fz3yLhDE`f+^`rErtbLR)T-)A@e+=_i1Yu8akT3M7RJ3YF5QeV&@&X_ zUJQl>+BUG~fqha{0JW-_-N=FFXi_`XArTT^L%_5-DS4pnwXBt%@Anm}0nz9vmc;U! zTQT?QJVNW3Ge+JP)k_|*-Qg;PQ%Afe5XuMBzZBP%zP{OH9RXVw)mhYb_|?HNC1;jL zzF$M?6;hMA_9L3jzzbOQ7b#5p?uoQAYA}s5nM2eBhcuYBF{V>M!<c;lc6a^^DgB;| z*04cN_Y!6bWU|{UtD)1${WaZt?H>25#)nNnUCy*Y^UIAr8ApTseAG2--f*HgF(@S~ z<V<j;H;(0cH9)rIAn$HIOCgt++v>6EHXa1}G;6!1<uyB=boWC-Pe6T3cNI4z52wLO zWPC+uWWR@jeOmUVTe{2~s~)J;s}!`(an;KcY1UG89@X1Kjj_s0Z;|;pW!woFXA!K# zK8mD`sLs9|&OJ`lc`L2m?z5}unwe=lUV#6g9j1t9t-2pqps*(|)wO1+Hn*(igG51L zcP4`--i4D)*{{HM*3oiW{vk!XRRg(33i5pFa6xB9r*!K2LCQ$jsVl1^OAi%#$sim_ z=LYw-sefxFMv+yBcBd#C(9_VQzOpZ{7j)fT(<sl07;6R_J;;>C@}$1sJo{7pl887D ziivKI{m|Z64e7)Soni6LvCCk8X_?@jzo%#<otzWze^^`S>@^r;cQAnQE|}6;MrS=g zt52$QRrX`h8Q!pns_EQZx1)J!zakS%x!iz|sODZ^PVkFXo=HWIuk>Kr2K$9$f#ML5 zlVa&oGj`{Moz;op_`W&Mh8aF6AVYsARDP=xyE6e9Feo*NW2^~@$Wf(v`!(`2AyzAn zd92*9u^vv0ZeN(3+FA(bdYbJ>T9}l?;%s8A)FKmgz$$ASmp{L_O>Aa5*fodaQT-OD zm{fv2P5*9d-i;vrDk#W5=9X{wiF>wbzYsMp#`3!nQP*EzOhpA-_LyZ*Kg@cXOWjM7 zV~<oZIn>0cjFoQziuX)gxI2Y-#~8r@^oYQr$oLHzA%D4LLW|^{)qY=6uo#mjS>B5t zWt~g=u{&qJUiE?V=H|GTW{(=%26#aIO&J$36EvZ0r+bXbtd(MJCet8vcNS5o2NAk$ z_nR59VroQKkZ7B@anLeNOC%HWHOASwrvj-QzzCc>-5-5ZOS~$)y!<O8P%3G*BhX4% zqfzY4c?oQc)gbI*XImKZxM;c3`6bsobL}v$^k7)6^c*aFQKrAmhrDUAcig3B;`Jra zykkY!bYWabBs_G2c#`6NTe*|;MCk~7t4}|8Wp?A&iIgCNY9`XI$J?5ekMgiDcgSak zCx>ILM6Y5YqTbb{qKPCA?Q95)6Z3JW>=OS&yQIUukHhK1FB(G__@1_qY3Q`2Z)@38 zk~hA!XBZQ<$uHSiJi<My5sS|7W}s4`(jNZ$7r@4T!E!6d=X{wH3t|0p+MR7Ee|_>M zQFG~~9p5VkZclVftqE`5en98my7fZ;`%T1})b^Bl*#F}-!7s-S9Z>HTX>9rT-><KK zGV$Mk{?9jcszQ<R4mbL){$CgV{X1}J+5f*?I@U-C$ddsHg5z$Q4bD%!7!sh{si+en zHy3`RFo0!jVgb%Q4%$k7CG1L@|J3XTjQ*i~0L*;8UQhMWU>liL?G(5XHjV&$sWbsJ zngHaw5N@bx*i^h+{CsQ~fe$(wrlvqS3td>Gk!w=~sJ0bVR-)pf(QE^LPZK)~<}o4@ zmX012crv!g5P%?8FOoWV)E#ytZvk?~LrlG+uY&?hTKpt`zNlNe#egcE11yOI0dzG$ zJknlTzhfS_@?^p0C~bm`Z-eoWZ2$@mJp*yI-p%f?usGq~z|YAmm2wf8MLNi5$~RI0 zj#3p=HQE=P&QF2y>GN(E##M2%#`N2^8v7qR6Rg7)bHdRYpzDX60=he#^c?4^Xez+6 zX3{<kkA$y|(3VmJ=x`rg#@CS!_FrQSUEGFlp8{LFg>1bF5*1fPVAsZJtaDWSy%wz^ zbmNC#abm1$r(VNJzXUB63jnKE)!tN9$YWJ}yQ5lS&$Xr5g1(jM{PkBbfnSUri~D$< z0d|*`IWbS|e;#TUK)@CH1+%mI1HdF_Ol@16-1eId5m^--F`lLN3tz2dDSPodd-Qa` z38c@Gx9pD>7ByBfL}%Jt_&z+Ha#Q7o?aG3HQ;eT;+jK=)=QqYmTmF(}|McxMz&vQj zK}9E5ZIllHL;vQ#+{t-of5$9Q;FLR#gBB=)o~Krfr`LVy{HU>xS&`tIf&lY+C0aA8 zcf!_jwm1RL*RK}CLQDfc>?)`>sRgx0g(2SaAwKd2Cq}>-;AxJ4(-eTek_-PO74D5U zC?m+c$ISjTsI0SNO}!cVT`^Oj$o)Q_4>p5iBST)5<JJpZhz8SW(Bb1GWN<oSZKZ$B zVKETUg_?7qlG}fb(~T3r0IrfL<A$9Grwap4<XM4V^aU#_%+277+43i|{BrUS2?E$B ze=a<n`F5)0!cs{ySo7bBpEYKS;z+D+H*JxVGEpZO207~`zWR|(H@UkQH&C{idPVZf zVyX^dRZ>DdgU2O*&df*W%l12KzRp#t1(f7h*`tEA>hL+Zl}XNF{y8Qp-&qFEvznU- z3Xb*U4o>c`<lB={Q_ELp*0jTdP561&lNQ%JCr&X5wZ92jc^1mfK%bvc+m&-wlM_6L zkCCOh_px$xsh)Fg`BmYAZ|*d8lSR8?Q>w$;h(w2ArX$0yTErETJuO)CaIelcy>R=% zeHX0PV+k>cwBS(j-?_0cS!dcrj-(L=oJevjM8H}S1aZa{?;b82E<~k4k$zAlG`{pB z|0#eBQy_}M@sL)(?9(dcHA5;i^P&AC>P?!P)cViLt39Hc`u;e(rZ$4$>-+LxNa*RY z6mn7;oV;{40Fs8Xn;w~+N2HDy*&#|u!{a3_1R~R!Ydjr3$27gPXfe`~nmNKzQwyN! z%h{1Se35+pa+y?g=Dv)k{k9|v=}@S#N6sB2!F$@(z-L9X#m%&&wxHG#)5&eco$u10 zo0x66=|XxDT5g3Dcu>}>?6g(4t)^JWVr>Ng3Dsu-$O9<Tb_pC-Uv_@s>VVFc&8Fh7 zN>Q7yDztxMTn+&d8W8m9ux!z|LIuZ?P-PDwl9T+mV+-SyBi0uw!n6nd8Vx30Yro{y zia^JdnN6EU!HwLCURF;)TIz^^9HUd+<9N$d@EyK68EoS)<Se(;vzQ`r(xjCKRrJd< zqzAS7<ZR~;li-B?H7@*&E%RW5m`QY)UxX=gR*SYU1rDv;H#!!&HFnWqveVz1HQxwP z6?ApcBGXqP8nh8*`|qO7BC1{y{xAC@?|<A^a1~tu=(`NJAX(5I(Cl(ysh8-A+mkm? z-Su9T_;9O)tc2KJe{z}pTm@<#3WaViP0l&rl>oC-($}PyEeZ%X`&BM#ql77O+IgfS zs9z#U&<R32$yE)gY`%7p{vv>|B<OftT;uKeIzt4qgu4v`&+=a~Tj?^xJ6qIKz5*sR zSHssRA$YmnDGWpTRdwS%{c+TgkwCoDjNJdMvr9K{kky}NtG9!G>`JTXn|uhdFYtMd z%lFsy{|Ht}{EU8;GY*3G;5UYY*dt84%pt}-cVsN&!~vFpoY`2tG?5QUI*b#+N+o^N z<OSj&NrduD`a5)Hd-_7*LI4g@HEb2vKg>4Wp;Xr!<d+tiFg%Yk@AAB;3l^BRYn#7T z0ci9o&_X3&--ZOs3yLgF>`?7D^~V;le^I5V(xg>M2%5!7)=k?MI(iB2!~()ZftrrL zu~Tz8&B+OSA6u`9Zso+#bMJEea!nKHLC|Uv;D$D-{CpQY0$lHTw*~$eaMaxpxKmX< z4XR~}mgF-98fQGI4;RjQ#!z9%nG~u&HHr_%-KPh2_00B=?x$cvr;$PiM3A>~C1;m~ zk4d_IaMxWGB%UE)){JTzp=6#Os}_CB(wRWbR6GKW4$bjkMGS#XiIsh#&^>2%oGr3! z-@X6LuUUJE-J~Mqqbm)UqdLljIxe%4=Z;MY<RW8bLy6PGwfb#gUd$xB9bL34(z|SU zVW|-HcAxZOWTbAIvIF}H{8Wdt@_tQb*7NkpOs|Y4RIrG_uHZJSU*=9?8#vsXGC&z7 zs4EF$74j66h1tZJn!PhM5E9#jrdu$pq+S)?aB+?0W`56N^!h#T%4P>oo>`pYvmids z={JwCUgeTk;SPu;qSF#lj`L%QHCIc#5%l?zY_X&jM!p6kz5Gs_@y?gvmFJ2z<Ch$G zKRb=XEQbxdgx%emp@bEDr02MR?bG5^)bk$qisnZ*fgX}scsp@UJP{lczIIRm6`X5y zrcI|?v?qev1U+gWY^D8LN?Dhs495U9D<H5G)bm)bsd(_k<itqI0Ay+>x-MxhNec%- zjR*GVCJfVcBTTo@Kg4q$m};vg=CX1zc$UKDyfr3yp_m)0W(5fVsmcEeUq4Mu1=THW zw;399&FebJqJJAVmo=*9aq}u)pOCYNudE*71&Omt3ZbMTo7sKESeC0e;e=g_Wg4#J zZ`Y2zHf^i#SMO?E06583iaHLIt5tI;F&H|AD$V~M0a{ZQ(Nz=}1d8m^ClKktw3@|T zbk8{j9>FUwtVh<W#lou-jum&?WMMEzUP(m{rfb(<SIfR%r?9^Mi$V}@XQEEJ%=W0w zBJzkA#{+Y%N1>PxkE0(lV`Ujm--Cd-Qw7k;oQ-^y>M+qky{t)6clYBnZsi|;^n=Pt zqdtc16E#W_R^BWMp__C(p!;95)o@eGc`|o@O)jNozTw1by~v>Ld-rSjZFUNszR)wo z#SVA9IQ)P@j~m>pjn?`~G?leHSEZ~Z>Qfc&1iy9u9L*)K!d2ct`8w|a`xO51OdsiC zbdo2b4y)icMQ|Ov6)3WoUpcEp{~Mc_Yn^w1?Tyd(TScv4Z=5Tx|I+QLd{e5bJ*u0j z?GQ*fRQN+FbJd~e+Nnfjgvr6SkFv9c{?BYXu$wvFG7=|v&+-fzw7D;y{TDpte=mzz zooRn$>4ZNaSVfR2!*f{*uaM(?Jl9nZPY<cveEn$)zP?l}qCP_-7juj%%_J;TqB9*Z zEiNs=A|lk|BHO6aEhO@!7`d?Z5%rLaomZ#ZVa77^)}?TZLXBdb^d%^Acj0nh+e)9N znG`@K%K{8I6}L7Y2RAWSftr|Wk;aFA4X^4Zand-iQRZV@h0$DnEG&<uupNs6D`(*} ze0>(J53X=d=`y=)c!iTq_c%4?ZdFaEC)C26&|6gopuPw~rbtFD>ULy&WD;HFB-_6% zxgshrGX6srC#DgOgJ9>d5RMC9U(IYVcrx`sZe7;lkDM6yL;S|tTIUd6uH^QV{nQVs zX?353OumMm=`Byr_>ewBW(teQo4`oy6Rxg@a3|faslFQZCVfY0jR+)U{#L*GOS}AN zI(g4suOWxh5ov;s-tNfEv!0-Jf}p%x+XW{Ub(o)FL`=`vQlgS$@;nqT^d41ZXkXtd z$Wz1<9cLHHi@VfpMfZ=RY1IYF7JLFPE0pIQ7u>gRBR@sL4BT2>@mt<@>|@S+OaF3< ze<Y!>m&UPDzTj}RTqt8nPzfDd(BrZ+c>X#?sB1AY3P<ZTeNJz#pxNk92bHm+CZd+M zPn69oc?e{+W;bDFM+(#n7Sc_l7o_Jgql?RQtZtm`Mx>4VrH|W1*rbVBDINN)<ThA^ zx_bmWgt8JW=llh{vF?-|s8&fh+$OL|w;~o|ySdi}2@O9ZXNf#Rp6MB1i<GLlfyqg> zLXva9<hfa7EkRER>Ip@>W%Y`2IdkkT#P0q>PR#Joa1|$J)uG*-RJ1~@P*HblGUV&i zdR?u)p%%^fjRFOn$eJH=S{-`N+`|jWlf<%enUN8?7|C~{`q&L1Ir%27RiE@!`;1(h zMH1?-sMUEI`1(E7qDqS#Bt0CS{1E>anhB6IC)$&%1|dKK=FnB7$=t=9vZ`=!r>7v- zC0y|h^S5hUI;_sF)KbZ*E$g{<4{BneZAG$Zr_6Vww9FQ5#ngC?ZZ2kg{hT96EthiJ zV)}Jb5hLI!W7`8zm~<52_v?NNF=jiXpB$TwzW3oJ%!huZH#Yj^+Ih$+s}zrT+V=&V zX4K!|a{=My=bfTV<NbE6p-P3O1ZD_VNpDwx-qrPn$ZyH6Vy2=RqWjR(tdUq)AqQS> z7{0UeP>yAaXwk7BqA|w?P4DE@xka*qN)L5<CSF+nc)?!mnW_)NGch{;7>5~aFjgsh zwc)z*VS&R#yAWsny_{ho7c3)jCF)XnHIvt^oBcX5Hu{4oZgFW-_~fQ$AT-7*RVn$| zvguCsMp0kENIMmPeSI$ml#0FAC7jItK+rul5gUCu+|uR!<ZrCfvrR~3a|?tj?XW3p zp=hB*fHCOl=uF5I?||ZFpd5Xiw(?))^{*lp62cb}h^)~dEF|fAd8UIjRa&KS_o345 z6jN#}m~1OI{^cB1WCkb|e4~0Wy0m%sh|GKM#onI{m+JO2d6i0NnmAWwHXZI8;%@-B zjtUl1Mk}9QUC~N5wczZ2!-?U<_s_@l_l&TW_(kYEbmsLe9E7e$VXMp7kt`f$4Z>#( z;M#>$>8NuCXVt%C3}i)tJb)6hJdN5t3UE6FhTI)S<mP;IqT1|TcJTp);pc{|U}5nG zI@JfOZn)yMlj@PzkS__juEBTGl6#bIC*3Hgcyk!vx0ov3UY(Cy3)H4&zK%o1jP<>v z=c$;5a<0>4q)g_CzpBYg)!f^5;poHt8pRSi2ngbJZl+NBt!$xmhZEX!DxTg?{UOE; zADv~V6N%~^jeu37kNo=J)$0}47!uy3+UN}Wc$+jVpNI0}m?_`IM_WFJ>JSeR8847! z5{eQR_(aP@(WksoVvTECY&;np73y?i9A-#$H);6!Vyh{AF9m-5LEbhIW4n{ke)?-l zG%UlWI)WZVIjG*N-{c}dojr0wB2pr|TAqk(0W*^db(yKGtX`<l0ACPR%YB(g^6Ko; zL7}zb;Ybjys3;Eut$j)4<Z0|ydawEC_97Aa77A6G*#E<@NmAWU)Z90)`iiaVDEcTV zJ2KrA;>PMT-D)d0zqSTa_-BPeHz^R@#H%+uJnM}lslp;VM2_=w(9TZPP>!*bD}LDh zk$$Mk8N~<mSWY%4GPRnLh1~*@%So-`dLx=Lh*Wv=P<2-`S0YuK`j*HjNCx<%lwSEi z4>a;tL|FcGTx{(Q^?O2g7UmWmL3N1tW4mKe@KV6{6nWOJ{P((9ky(S2!txH6^AG$y z1|<KgNQ#oN)z$vk==-AYBJZC^k00wp>3P%}t+?HJ$Mx_~mS+rB>xLs|#SV*W{Cw^& zk)xA^Qod%}>nc6zDJ6kRcZ0izvkEEJqK{`KQkEN>mK*lXlqOkPQ?SsecF!i1$t#$X zJC3Z>4$n304T5@<UW2W-Ipv$o=)1esTU=S)Eu<<blu&+Xrd?H>K~t_72Zjhi>roj> zdZO$Ca#rFgc`le-9%kcJthn%7S6ea$p++$mRVYJeauI&(=Y}ytG42oWtR6{YaWk*Z z5Bju=V5kDz`T9>cGCE8t!`1lV(U~q31_d5VOdpKh2F%^!=|IqfPVAP(e4sc7ubM8g zg_fe$lO9T5qm#T{4XO=oQ^1_P%479dfn8TeIq;l|QYod}GI;113R+H$1A+I_Jx{V4 z+mDjfc2T=zP=5{F?;?mXw}7klCK2YelHR>Nek$=8ej`w{MuuqND>T~q&8D!8Yj5p! zy#5BqVai5qP&7Y9kzQg|Amt>sOPp~yo_{M_=T>!~Td0<K{TI}ZlF0aiwxVeT^#y$Y zBA&RJ?Uz#E*Z<X0*(~aqgcAO||3%^@Ei_X?L*gWZ=wO@I%ga@0&J6PtAGg?>0u2Gr zn{$NN5->r=Qs84hydA9Z5*X6`c-TFq+h|18A>Q5ISPV#d(1w(O+mv5#1#)PtXat^> zo1M#YUH?9)y5Z$8O%kzaTfGyY{!9(5OfG5fgb+tXXSeRyxmg3RYt`D}8HUxTP_h8+ z5I>6oGHqK3fRnJ&cC2d8k~hP5rb_G#NLujfF=chdb&8{TEcL)PzIE)^fviF-I#Wi2 zYALYw!o8GQy4N^$oLWwd=_%F{f#au5G<{Kk%6roT66J9*Q%!#EC9mQwOXo`N4cs2? z=zs{tZ=ShZV^sR20N2w0T|8jEKABsV4g0+N9CW~sKZ8Mj3*Lg+)u(ufcf{=nQo?QI zw(W~fwM$CknroGouaEV$KE*%gEQo<LCaMG0ZfR(lZuX&k_={4R3W@Bpa#ZUtPmwEj zMvPUuzhzZ!Z*8n-)FMMX7WP3?+tn$DQ|ezPhA*3<z?dpOd)>@WQD2WTZrRHzY1*FR z`lWu;dYu=EAIOqO!bll4=i>>OB<OY@S1{P$BvVTHL0YrorgZPlw5MYV&x7hV$QIJe z59b^zy47*<w{{F>0hItlo{>8{$8SV4UYo}hipcXeyGb>&>W#vw+1Jgn5bRMbAS7N0 zan(dN6jNZ-nWssf)*_eGzCtt^U2K(1@%!4|>O3)!<@H{p78Hi)V2_JthzS_7G}9jk znI%>eHM2D;=r}M51uY#*nwBn0PXnpa+5uo8>pPTqYGEOocd|!3<*(3Q15YGI@@AE| zQTW0ra&;KlO|B{_VY$w^J5%zEs3wmjQ+7w5QKjx=xWR}H{b&_NQ|myMX7*x^gCSKK zqX{LA9yl2f<}JIUT}mik6uP@Kx-fJ%c!vfC^+tLoyMm<ds;Kt{eW#62gU*4l1qOMA z!LK@IGT>m~>{8LGbY0IN>grlSJG+L4k$SXZaX+3O3MAy>f>h{!|MT8jcTke+m@ZmM zUS)?|mTE!~6K$BmKI(MxKro57u9wzuQ#nj2SJNR+B5!rZN%<OvL$TOF(P(mj;&0_} z$sV*wH!(zmy%l+)ZHHtE)bMTz2GXZ^UPME?mRhhPkpfbCo8>{f(Q96vv$r?>mh=J5 zrIU)N`$B6O%<;0;exjvU=d#sib5h5C`k{}lnNdlbF3i_+&(Zk?SV&cCBg*5TLC!B2 z($BlcY4N?2Eji@!{dm+ccp>^~&OV7xyD#tWMQ1XL9S*BL0?7rG8>Xq&xZdtQKX-q@ zgn;@q=^<tce5&1wDOlDh`gqh;Oe9mtd}Guh3>xZnt)k;rCn)AgfMnEk#ep{s&Eea} z089}UWhO3k8c11p_iYV5=ygvd>0EN6@ggw9zUnB8n>^&ry1w)9&lam7>QZj^t(6Bm zSBr+?wwbhJeo&kudW9lHAHuYfyq0{?_#377GmNTb_DP&`Xv&n?<`7lO+=*yWdF=W+ z12U?;`gmO3P1yq{YcehZK_Kxbb3b!JMiz;Pt>Y;Ji<UP#{0%_DSIl*N)C5zX84<U8 zjZNhGyU?9*>~lXO;~Whdba0CJbcB{AI)<53cz6xKv^SBN&%_eYGEw@NY>J|;L`3L} zrYKG+8+gChlmeAPX05!g^-!GTT;ZPernET4bL^#C(hR2P#|_K)d<{X3Pqa=CD$vZJ z=>G=lUb&!72qm>)H=vyz*IAG{T3@o318P7&i4!+wxE8Q}mZz+{qq`&W{1`NTxT_$( zJH$r4y{5mWZ`um!$17Sbc92TxM_rTc7|25BIbitJ;JCzx!IXZsI(0W6harmW1vD^? zUkxYlaI9Q?#_E1=DR1Nmp#0VPI2AOLdWuxA>gQWN)PBpL+KA3h@~$@|oQ@k$Gr9Rq zpav2Ndo7XBIKURvp{|{(KLE{(adaM}s9i;4Y$ObM1Q1x6=*%kcg;Ap#GAiySQfq6D zt<KVjnNI)~cm4ah<Hm@?huWo=VfN?}mS+^qCF!~GQt|`kyGcK_nD1pIndLHv5eQyp zre!3nea>Z=uGk^W)U!?giH`m7A~kb~xD(pZrFdH8h)JW#q)DC0k0>epa;awL*|zA& z!~0Tp--7xPv7H)iQ4&O&+BNjJC}GvdT*M$0hcB40$e@tt{7adog?S&|t-5sTu|)4D z{ZxL=2|%EN8!Wmdd=VB1OYFNmN;LhL-NEbIOIFxFqdz$<ymqpAnz-0G4NwHoW!ZFc zW8TwliI>oyGd<C7Rn4sqmXIUk9qq!4avk&}PCGQekE=bgk0IKja)XhOK-lrWtjsRg zb(3DTaq@|BZnT=5)#)>7L>-FsG~!eyWZbT>!yZcN=yN1l>}e0FC;|1|O%*6NNAg&s zuTqEChKq*B0VOMxyqA<&P6>^5_3E^DN)x@E6fPEpeQ#@sO%vG}O46tTxir~sKiiKP zN|oL_lj!~s#hbO7tST@LEqDlO-!pKz$|@3#iU6qFP`iwhV0R8H$%dZ@WgFANe)@tB zZuoD_;W%epu6Eg%d0}n(f)j(ziCOHMFC7FqGmQEO1aDUYz;=UZ?Ujai0AxT!Y1pG6 zXAk**Tir6v`G<353E|iAAJ!gvFZLMLGqZ*lRlA8~ho#va%$v;JJ}Sy%q;;z7R`hf8 z@oY$!h&eWXUI`|8ILXT{Pa(vuTz{<~=2#s}Qqxv~9aJqE7T#FUMDyG=x}&nuXayGo zv#;v035B~fcRRK@baZ6dcXY$yM{|U*1RnQu9`BQbOsx?9d^ao(caN*#JK8rAUHjpM zBV5Em%e3ryCN&F>Uv=32;v&sk@f<chl;q8+8EnjZ{SNl^Z+v3zc5F+m6i@M`yGuAI zY#Xtk^FO;2;mSAu9`nnGJ@CQF{o_7Z`?^${CF3;TXQ4A00l>Vw*%I1v3R7&muE=3q zeq|XZwI#EKZHMm|(Y+6ZjMuC#tAyR9Kon~Pa%yE|8Du3&Njo5JLj4_pe`=&RvQDIq zTi3<5X>nr^33q)1w4gv%?t^U@8-8;=LJ!D1-u|CpT7njx7Ayq4daeYkier7g5qy>R zvt#@<Cq_2GVOWMqpd<q0K<uK;a0yU`V>y_{!jsN|XZeaq@XD~|>mxh~?~B|$0%ECj zn>9h&6_($$$KF@??oJ?)yc{zL+U2p!2l+Mlqy3I{T3Hquk;2P&g&38q1))mO9Y1X& zIv>!)V^M}@*hE|wKGk6q_oT+CNJgG$^|-@XOeHBqY_DwuHhpyF6)*RK!zkWC7IUmq zxC$?hn9E}dwhG`nD+>W^Z3ok$AEhXnFdVqfv^~AikLjv`>aK07F|riTw>*H*CT1&z z3P0rPX7fI3BSrL8Nwd)}5wGP5qABNsnIb#13w|h#h`vEB%+NWPl%c^+r{AY%w`Y}2 zH5YhgFG-%^F9@1u(7_`QATSv`Yo;pLLksE&`T|$m8|diN@#_caBc{7J=VkaRIJ&Ym zE)Z9dH|m~J)os$iYyD*_H+tc>w|?VM9jIQ%&-6o)X9&O^Qq%Rl<LkuN*HQ-DIj0=L zXO^Qg$(+vCN2}z@3XO7+N5fg1C&RfQU`vMy!v(`t<FxVTAZSoYO=#a*8J?lrBX_|C z{OijMOPM*9g<|cJXS?psu{E^ZGxy~>q>~ysk*K6Ib2L+5ueS0QzKHsxk=$&c!DeLd zyOI192l*T5!4O3C6|7hl=`5qcf@G0S$?Fu64aK7~(Ev709xK5Zh~1+8rCoM5*nuAo zmQhGGYF|Qu1|`rR3WpkZd-^+t{|GE$b7N>Q_)Mikxrm`mj5E>J8KC94MoF|9ECxX| zCD1P3cm=@Gs~XgntB1^sI<tBVl%-AbC1e;^jCMIA7n7eQt0$LMA?%L2`HXvO*BTWy zq3q_^wI+o;=%~V{(afc@Mkq2YyzC44-CdU#UCv53l0I>*Mnq|k7K^8InWhq)BGQwI z>F&FT8H-<?c^Y=rq;Wj2EPOUm_Z81uD{ZZP6=N34<<InKBMGETS}m_Nw=LNUfg+Fh z4=O!Gryf5&PNY6sq^wPxb5|abP42%-3!NUFmfUQ)nQt${ERT~-_SJKnW5%YsNXLVT zNW{12kxAK}g!H^^E1<CiUw#YUMmqmL(5c5HJt#9Xs6yj?WueA<4c7^DX3!lVr{#bd zUT^_FjquL5th5-l_%gd|%32VNntpp~pDp4Vsc3GQ>T8AUO8fAD6N#C=vw~F3XN_u< zp`DX~YRmUd&M8N6%@A`PAtb6aV-U>>mEq@%aKLjh>{FU&lQ_ow#$n53QYt6Yl+5l2 z3Q1@&ReB|OB5Y=vDsPAH<YIx8Ke`Gyy_3#MXM;idd^fDkPNitNvZS{$Yw2!HlmQ=4 zK=K=5PiHkbaN=zg|KmTC_pg=`HVApjwin_%|JC}DDJ(3X`IBh;uP%|RCl08;4SVeO z{GYCr-$--M(F5vxj}jby+hqUrtlU5Yt!Cy@*8Sh%^Ut;ZEAId6t`xD&rrC0bWRCoE ziQoUE50Ih$7kI+I?waTbNb1UV_JQB;;h$@ryaHao;#mFfyUu{t7xp8=O<Vpo2o~UV ziz)iif88}3wA)<0a9PvvpEv&d4LsYqJ>}U;n(DvrN&@k*c(C*0zX#zzar3Xc{uz2; zbp09n^+JDEJqW8m2}elyPr?By^-r!B-u$P`f*Sg#%mQKP55n2J{SUa@e&FOEa0v$C z53bkwL#Y6b`mYr6hf@7vv%k9p{~`asN&Fv5^@mdZR&D;jr&KP->U!6$+vY9U=KTK_ zj3WN%Ie+w=Kgs7mpIQ8)=ls!g{%H6ATOj`EIe+w=-)_+#JqLJlfApL`dd_c;^pBnc zq>Min`5!$;AY;}2=}rKH@Sjh8{=f8`WjX%`p2yB9cy)js`PLcfnO-i?y%G6;0IC*w A>i_@% literal 0 HcmV?d00001 diff --git a/HW2_KnapSack/.idea/.gitignore b/HW2_KnapSack/.idea/.gitignore new file mode 100644 index 0000000..5c98b42 --- /dev/null +++ b/HW2_KnapSack/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/HW2_KnapSack/.idea/HW2_KnapSack.iml b/HW2_KnapSack/.idea/HW2_KnapSack.iml new file mode 100644 index 0000000..6711606 --- /dev/null +++ b/HW2_KnapSack/.idea/HW2_KnapSack.iml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="PYTHON_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$" /> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> + <component name="TestRunnerService"> + <option name="PROJECT_TEST_RUNNER" value="Unittests" /> + </component> +</module> \ No newline at end of file diff --git a/HW1/.idea/inspectionProfiles/profiles_settings.xml b/HW2_KnapSack/.idea/inspectionProfiles/profiles_settings.xml similarity index 100% rename from HW1/.idea/inspectionProfiles/profiles_settings.xml rename to HW2_KnapSack/.idea/inspectionProfiles/profiles_settings.xml diff --git a/HW1/.idea/misc.xml b/HW2_KnapSack/.idea/misc.xml similarity index 60% rename from HW1/.idea/misc.xml rename to HW2_KnapSack/.idea/misc.xml index 28a804d..8656114 100644 --- a/HW1/.idea/misc.xml +++ b/HW2_KnapSack/.idea/misc.xml @@ -3,4 +3,5 @@ <component name="JavaScriptSettings"> <option name="languageLevel" value="ES6" /> </component> + <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" /> </project> \ No newline at end of file diff --git a/HW2_KnapSack/.idea/modules.xml b/HW2_KnapSack/.idea/modules.xml new file mode 100644 index 0000000..897bb01 --- /dev/null +++ b/HW2_KnapSack/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/HW2_KnapSack.iml" filepath="$PROJECT_DIR$/.idea/HW2_KnapSack.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/HW2_KnapSack/.idea/vcs.xml b/HW2_KnapSack/.idea/vcs.xml new file mode 100644 index 0000000..deb6fb1 --- /dev/null +++ b/HW2_KnapSack/.idea/vcs.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> + <mapping directory="$PROJECT_DIR$/metapensiero.pj" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/HW2_KnapSack/Archive 2.zip b/HW2_KnapSack/Archive 2.zip new file mode 100644 index 0000000000000000000000000000000000000000..c9780e5220e1803024ede279f0f586115b613a26 GIT binary patch literal 96243 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 aZ>v{%DKPMVS_AzqeLw&Jw#)Yk@IL@IDdDsL literal 0 HcmV?d00001 diff --git a/HW2_KnapSack/Archive.zip b/HW2_KnapSack/Archive.zip new file mode 100644 index 0000000000000000000000000000000000000000..7c63757942d8e79a669eae0ecdd5d6e2dbdc66bd GIT binary patch literal 2646 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 literal 0 HcmV?d00001 diff --git a/HW2_KnapSack/Screen Shot 2020-02-02 at 11.49.03 PM.png b/HW2_KnapSack/Screen Shot 2020-02-02 at 11.49.03 PM.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa0bca6d9407fdfa0e229bb2ee0994a16bcc20 GIT binary patch literal 109405 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 YbZD{x)7Xu2hJX)N@1kyzj!oFV0qP!4kN^Mx literal 0 HcmV?d00001 diff --git a/HW2_KnapSack/simpleKnapsack.py b/HW2_KnapSack/simpleKnapsack.py new file mode 100644 index 0000000..8385030 --- /dev/null +++ b/HW2_KnapSack/simpleKnapsack.py @@ -0,0 +1,111 @@ +import time +import matplotlib.pyplot as plt +from random import random, randint +import numpy as np + + +def knapsackBool(i, size): + # knapsack is full + if(size == 0): + return True; + #over full + if(size < 0): + return False; + # no more objects + if(i == 0): + return knapsackBool(i-1, size) or knapsackBool(i-1, size -S[i]) + + +def modifiedKnapsack(i, k1, k2): + if(i == 0): + return 0 + if((k2-S[i]<0) and (k1-S[i]<0)) : + return modifiedKnapsack(i-1, k1, k2) + if(i == 1): + return V[i] + if(k1 -S[i]>=0): + return max(modifiedKnapsack(i-1,k1,k2), modifiedKnapsack(i-1, k1-S[i],k2) + V[i]) + return max(modifiedKnapsack(i-1,k1,k2), modifiedKnapsack(i-1, k1,k2-S[i]) + V[i]) + + +def memoKnap(i, k1, k2): + if(C[i][k1][k2] != None): + return C[i][k1][k2] + if(i == 0): + rv = 0 + elif(i==1): + rv = 0 + elif(S[i] > k2 and S[i]> k1): + rv = memoKnap(i-1, k1, k2) + elif (k1 - S[i] >= 0): + rv = max(memoKnap(i - 1, k1, k2), memoKnap(i - 1, k1 - S[i], k2) + V[i]) + + elif((k2-S[i] < 0) and (k1-S[i]<0)): + rv = memoKnap(i-1, k1, k2) + else: + rv = max(memoKnap(i-1, k1, k2), memoKnap(i-1,k1,k2-S[i])+V[i]) + C[i][k1][k2] = rv + return rv + + +def dpKnap(i, k1, k2): + if k1 < 0 or k2 < 0: + return float("-inf") + if array[i][k1][k2] is not None: + return array[i][k1][k2] + if i == 0: + array[i][k1][k2] = 0 + return 0 + array[i][k1][k2] = max(dpKnap(i - 1, k1, k2),dpKnap(i - 1, k1 - S[i], k2) + V[i], dpKnap(i - 1, k1, k2 - S[i]) + V[i]) + + return array[i][k1][k2] + + +def probGen(N, aSize): + V = [random() for x in range(0, N+1)] + S = [randint(1, 2 * aSize) for x in range(0, N+1)] + return S, V + + +K1 = 100 +K2 = 100 +N = 50 + +_memoTime = [] +_size = [] +_dpTime = [] + +for _ in range(0, 10): + C = [[[None for k in range(0, 100 + 1)] for t in range(0, 100 + 1)] for b in range(0, N+1)] + aSize = randint(1,2*N) + S, V = probGen(N, aSize) + memoTime = 0 + dpTime = 0 + + for _ in range(1, 20): + + startMemo = time.time() + memo = memoKnap(N, K1, K2) + endMemo = time.time() + memoTime += endMemo - startMemo + + array = np.full((N + 1, K1 + 1, K2 + 1), None) + + startDp = time.time() + dp = dpKnap(N, K1, K2) + endDp = time.time() + dpTime += endDp - startDp + + _memoTime.append(memoTime) + _dpTime.append(dpTime) + _size.append(aSize) + +plt.plot(_size, _memoTime, color='blue', label = "Memo Knapsack") +plt.plot(_size, _dpTime, color='red', label = "DP Knapsack") +plt.xlabel('Average Size') +plt.ylabel('Run Time (seconds)') +plt.title("Memoized vs Dynamic Knapsack Run Times") +plt.legend() +plt.show() +plt.savefig("test.png") + diff --git a/HW2_KnapSack/test.png b/HW2_KnapSack/test.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac054051178e16fcd82b0c465f9a43eb4b6d18a GIT binary patch literal 2411 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1{5*9c;^X_Vkvg=4B-HR8jh3>AfL0q zBeIx*fj<$18CTdZ&jboul(<He1m~xflqVLYGUO(f6y)TW<YXo(l%*CGXXfV_>lx}9 z=_q8BloVL$>m%g#@{7{-Rl65@F)(nP^mK6yshIQjnjs^D0?z@11N)ypWa?Answz8w zMu&mH=-hjtMfZ#v7#IxM1Q-;KF)%S4k#JyWkYMIu5J+ZVWJuysU~uSRWMSwq991+L u1f!{7G$V|b1*65`XpJyhDblrFpr=;JzGwOJO-aD^3WKMspUXO@geCxV1fhNa literal 0 HcmV?d00001 diff --git a/MinimumEdit/.idea/.gitignore b/MinimumEdit/.idea/.gitignore new file mode 100644 index 0000000..0e40fe8 --- /dev/null +++ b/MinimumEdit/.idea/.gitignore @@ -0,0 +1,3 @@ + +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/HW1/.idea/HW1.iml b/MinimumEdit/.idea/MinimumEdit.iml similarity index 88% rename from HW1/.idea/HW1.iml rename to MinimumEdit/.idea/MinimumEdit.iml index 74315ed..307c261 100644 --- a/HW1/.idea/HW1.iml +++ b/MinimumEdit/.idea/MinimumEdit.iml @@ -3,8 +3,8 @@ <component name="NewModuleRootManager"> <content url="file://$MODULE_DIR$"> <excludeFolder url="file://$MODULE_DIR$/env" /> - <excludeFolder url="file://$MODULE_DIR$/venv" /> </content> + <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> </component> <component name="TestRunnerService"> diff --git a/MinimumEdit/.idea/inspectionProfiles/profiles_settings.xml b/MinimumEdit/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..0eefe32 --- /dev/null +++ b/MinimumEdit/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,5 @@ +<component name="InspectionProjectProfileManager"> + <settings> + <option name="PROJECT_PROFILE" /> + </settings> +</component> \ No newline at end of file diff --git a/MinimumEdit/.idea/misc.xml b/MinimumEdit/.idea/misc.xml new file mode 100644 index 0000000..66e3965 --- /dev/null +++ b/MinimumEdit/.idea/misc.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="JavaScriptSettings"> + <option name="languageLevel" value="ES6" /> + </component> + <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (MinimumEdit)" project-jdk-type="Python SDK" /> +</project> \ No newline at end of file diff --git a/HW1/.idea/modules.xml b/MinimumEdit/.idea/modules.xml similarity index 57% rename from HW1/.idea/modules.xml rename to MinimumEdit/.idea/modules.xml index e304951..fc8be15 100644 --- a/HW1/.idea/modules.xml +++ b/MinimumEdit/.idea/modules.xml @@ -2,7 +2,7 @@ <project version="4"> <component name="ProjectModuleManager"> <modules> - <module fileurl="file://$PROJECT_DIR$/.idea/HW1.iml" filepath="$PROJECT_DIR$/.idea/HW1.iml" /> + <module fileurl="file://$PROJECT_DIR$/.idea/MinimumEdit.iml" filepath="$PROJECT_DIR$/.idea/MinimumEdit.iml" /> </modules> </component> </project> \ No newline at end of file diff --git a/MinimumEdit/.idea/vcs.xml b/MinimumEdit/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/MinimumEdit/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/MinimumEdit/Archive.zip b/MinimumEdit/Archive.zip new file mode 100644 index 0000000000000000000000000000000000000000..85ddedcdb217bc8d665928af6886010a89530eb9 GIT binary patch literal 29483 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 YzbMN=LjAiL{O^GQ3IYP^@-O$l0N6lXnE(I) literal 0 HcmV?d00001 diff --git a/MinimumEdit/MinimumEditDistance.py b/MinimumEdit/MinimumEditDistance.py index e69de29..e4b0304 100644 --- a/MinimumEdit/MinimumEditDistance.py +++ b/MinimumEdit/MinimumEditDistance.py @@ -0,0 +1,47 @@ +from collections import defaultdict + +def MED(i, j): + if (i == 0): + return j + if (j == 0): + return i + return min((MED(i - 1, j) + 1), MED(i, j - 1) + 1, MED(i - 1, j - 1) + (A[i] != B[j])) + +def DPmed(i,j): + cache = [[0 for _ in range(j+1)] for _ in range(i+1)] + for x in range(0, i+1): + cache[x][0] = x + for y in range(0, j+1): + cache[0][y] = y + for x in range(1, i+1): + for y in range(1, j+1): + cache[x][y] = min(cache[x-1][y]+1, cache[x][y-1]+1, cache[x-1][y-1]+(A[x] != B[y])) + return cache[i][j] + + +dict = defaultdict(int) +biggestEdit = defaultdict(list) + +fi = open("words.txt", "r") +for line in fi: + l1 = line.rstrip('\r\n') + compare = l1.split('->') + arrayOfWords = compare[1].split(', ') + A = compare[0] + + for word in arrayOfWords: + B = word + editDistance = DPmed(len(A) - 1, len(B) - 1) + dict[editDistance] += 1 + biggestEdit[editDistance].append(A + " : " + word) +fi.close() +of = open("results.txt",'w') +largestkey=0 +for key,value in dict.items(): + print(key , " : " , value, file=of) + if key > largestkey: + largestkey = key + +print(file=of) +print("Maximal edit distance word pairs,", file=of) +print(biggestEdit[largestkey], file=of) diff --git a/HW1/env/bin/activate b/MinimumEdit/env/bin/activate similarity index 98% rename from HW1/env/bin/activate rename to MinimumEdit/env/bin/activate index 55e1c9c..1383e63 100644 --- a/HW1/env/bin/activate +++ b/MinimumEdit/env/bin/activate @@ -37,7 +37,7 @@ deactivate () { # unset irrelevant variables deactivate nondestructive -VIRTUAL_ENV="/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/env" +VIRTUAL_ENV="/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/MinimumEdit/env" export VIRTUAL_ENV _OLD_VIRTUAL_PATH="$PATH" diff --git a/HW1/env/bin/activate.csh b/MinimumEdit/env/bin/activate.csh similarity index 97% rename from HW1/env/bin/activate.csh rename to MinimumEdit/env/bin/activate.csh index bea04c2..7eb5f93 100644 --- a/HW1/env/bin/activate.csh +++ b/MinimumEdit/env/bin/activate.csh @@ -8,7 +8,7 @@ alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PA # Unset irrelevant variables. deactivate nondestructive -setenv VIRTUAL_ENV "/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/env" +setenv VIRTUAL_ENV "/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/MinimumEdit/env" set _OLD_VIRTUAL_PATH="$PATH" setenv PATH "$VIRTUAL_ENV/bin:$PATH" diff --git a/HW1/env/bin/activate.fish b/MinimumEdit/env/bin/activate.fish similarity index 98% rename from HW1/env/bin/activate.fish rename to MinimumEdit/env/bin/activate.fish index e70bc33..3edacbe 100644 --- a/HW1/env/bin/activate.fish +++ b/MinimumEdit/env/bin/activate.fish @@ -29,7 +29,7 @@ end # unset irrelevant variables deactivate nondestructive -set -gx VIRTUAL_ENV "/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/env" +set -gx VIRTUAL_ENV "/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/MinimumEdit/env" set -gx _OLD_VIRTUAL_PATH $PATH set -gx PATH "$VIRTUAL_ENV/bin" $PATH diff --git a/HW1/env/bin/easy_install b/MinimumEdit/env/bin/easy_install similarity index 81% rename from HW1/env/bin/easy_install rename to MinimumEdit/env/bin/easy_install index 1029bba..36075fa 100755 --- a/HW1/env/bin/easy_install +++ b/MinimumEdit/env/bin/easy_install @@ -1,4 +1,4 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/env/bin/python +#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/MinimumEdit/env/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==40.8.0','console_scripts','easy_install' __requires__ = 'setuptools==40.8.0' import re diff --git a/HW1/env/bin/easy_install-3.7 b/MinimumEdit/env/bin/easy_install-3.7 similarity index 81% rename from HW1/env/bin/easy_install-3.7 rename to MinimumEdit/env/bin/easy_install-3.7 index 450c46d..db10cf7 100755 --- a/HW1/env/bin/easy_install-3.7 +++ b/MinimumEdit/env/bin/easy_install-3.7 @@ -1,4 +1,4 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/env/bin/python +#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/MinimumEdit/env/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==40.8.0','console_scripts','easy_install-3.7' __requires__ = 'setuptools==40.8.0' import re diff --git a/HW1/env/bin/pip b/MinimumEdit/env/bin/pip similarity index 79% rename from HW1/env/bin/pip rename to MinimumEdit/env/bin/pip index d9343c9..4077e02 100755 --- a/HW1/env/bin/pip +++ b/MinimumEdit/env/bin/pip @@ -1,4 +1,4 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/env/bin/python +#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/MinimumEdit/env/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip' __requires__ = 'pip==19.0.3' import re diff --git a/HW1/venv/bin/pip3 b/MinimumEdit/env/bin/pip3 similarity index 79% rename from HW1/venv/bin/pip3 rename to MinimumEdit/env/bin/pip3 index 6b8ccb6..a89d98d 100755 --- a/HW1/venv/bin/pip3 +++ b/MinimumEdit/env/bin/pip3 @@ -1,4 +1,4 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/venv/bin/python +#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/MinimumEdit/env/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip3' __requires__ = 'pip==19.0.3' import re diff --git a/HW1/env/bin/pip3.7 b/MinimumEdit/env/bin/pip3.7 similarity index 80% rename from HW1/env/bin/pip3.7 rename to MinimumEdit/env/bin/pip3.7 index cbc9921..40770df 100755 --- a/HW1/env/bin/pip3.7 +++ b/MinimumEdit/env/bin/pip3.7 @@ -1,4 +1,4 @@ -#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/HW1/env/bin/python +#!/Users/bradybodily/Repositories/CS5050_Advanced_Algorithms/MinimumEdit/env/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'pip==19.0.3','console_scripts','pip3.7' __requires__ = 'pip==19.0.3' import re diff --git a/HW1/env/bin/python b/MinimumEdit/env/bin/python similarity index 100% rename from HW1/env/bin/python rename to MinimumEdit/env/bin/python diff --git a/HW1/env/bin/python3 b/MinimumEdit/env/bin/python3 similarity index 100% rename from HW1/env/bin/python3 rename to MinimumEdit/env/bin/python3 diff --git a/HW1/env/lib/python3.7/site-packages/easy-install.pth b/MinimumEdit/env/lib/python3.7/site-packages/easy-install.pth similarity index 100% rename from HW1/env/lib/python3.7/site-packages/easy-install.pth rename to MinimumEdit/env/lib/python3.7/site-packages/easy-install.pth diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/PKG-INFO b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/PKG-INFO similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/PKG-INFO rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/PKG-INFO diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/SOURCES.txt b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/SOURCES.txt similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/SOURCES.txt rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/SOURCES.txt diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/dependency_links.txt b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/dependency_links.txt similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/dependency_links.txt rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/dependency_links.txt diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/entry_points.txt b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/entry_points.txt similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/entry_points.txt rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/entry_points.txt diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/not-zip-safe b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/not-zip-safe similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/not-zip-safe rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/not-zip-safe diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/top_level.txt b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/top_level.txt similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/top_level.txt rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/EGG-INFO/top_level.txt diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__main__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__main__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__main__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/__main__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/build_env.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/build_env.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/build_env.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/build_env.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cache.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cache.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cache.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cache.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/autocompletion.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/autocompletion.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/autocompletion.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/autocompletion.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/base_command.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/base_command.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/base_command.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/base_command.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/cmdoptions.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/cmdoptions.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/cmdoptions.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/cmdoptions.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/main_parser.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/main_parser.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/main_parser.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/main_parser.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/parser.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/parser.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/parser.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/parser.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/status_codes.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/status_codes.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/status_codes.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/cli/status_codes.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/check.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/check.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/check.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/check.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/completion.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/completion.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/completion.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/completion.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/configuration.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/configuration.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/configuration.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/configuration.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/download.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/download.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/download.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/download.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/freeze.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/freeze.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/freeze.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/freeze.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/hash.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/hash.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/hash.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/hash.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/help.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/help.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/help.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/help.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/install.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/install.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/install.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/install.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/list.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/list.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/list.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/list.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/search.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/search.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/search.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/search.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/show.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/show.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/show.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/show.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/uninstall.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/uninstall.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/uninstall.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/uninstall.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/wheel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/wheel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/wheel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/commands/wheel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/configuration.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/configuration.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/configuration.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/configuration.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/download.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/download.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/download.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/download.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/exceptions.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/exceptions.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/exceptions.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/exceptions.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/index.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/index.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/index.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/index.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/locations.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/locations.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/locations.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/locations.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/candidate.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/candidate.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/candidate.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/candidate.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/format_control.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/format_control.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/format_control.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/format_control.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/index.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/index.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/index.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/index.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/link.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/link.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/link.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/models/link.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/check.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/check.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/check.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/check.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/freeze.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/freeze.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/freeze.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/freeze.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/prepare.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/prepare.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/prepare.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/operations/prepare.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pep425tags.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pep425tags.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pep425tags.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pep425tags.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pyproject.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pyproject.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pyproject.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/pyproject.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/constructors.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/constructors.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/constructors.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/constructors.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_file.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_file.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_file.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_file.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_install.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_install.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_install.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_install.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_set.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_set.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_set.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_set.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_tracker.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_tracker.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_tracker.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_tracker.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_uninstall.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_uninstall.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_uninstall.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/req/req_uninstall.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/resolve.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/resolve.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/resolve.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/resolve.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/appdirs.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/appdirs.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/appdirs.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/appdirs.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/compat.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/compat.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/compat.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/compat.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/deprecation.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/deprecation.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/deprecation.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/deprecation.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/encoding.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/encoding.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/encoding.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/encoding.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/filesystem.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/filesystem.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/filesystem.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/filesystem.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/glibc.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/glibc.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/glibc.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/glibc.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/hashes.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/hashes.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/hashes.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/hashes.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/logging.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/logging.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/logging.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/logging.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/misc.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/misc.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/misc.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/misc.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/models.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/models.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/models.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/models.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/outdated.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/outdated.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/outdated.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/outdated.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/packaging.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/packaging.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/packaging.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/packaging.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/setuptools_build.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/setuptools_build.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/setuptools_build.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/setuptools_build.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/temp_dir.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/temp_dir.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/temp_dir.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/temp_dir.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/typing.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/typing.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/typing.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/typing.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/ui.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/ui.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/ui.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/utils/ui.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/bazaar.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/bazaar.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/bazaar.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/bazaar.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/git.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/git.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/git.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/git.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/mercurial.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/mercurial.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/mercurial.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/mercurial.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/subversion.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/subversion.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/subversion.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/vcs/subversion.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/wheel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/wheel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/wheel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_internal/wheel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/appdirs.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/appdirs.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/appdirs.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/appdirs.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/_cmd.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/_cmd.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/_cmd.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/_cmd.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/adapter.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/adapter.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/adapter.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/adapter.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/cache.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/cache.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/cache.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/cache.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/file_cache.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/file_cache.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/file_cache.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/file_cache.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/redis_cache.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/redis_cache.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/redis_cache.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/caches/redis_cache.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/compat.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/compat.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/compat.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/compat.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/controller.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/controller.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/controller.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/controller.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/filewrapper.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/filewrapper.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/filewrapper.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/filewrapper.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/heuristics.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/heuristics.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/heuristics.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/heuristics.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/serialize.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/serialize.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/serialize.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/serialize.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/wrapper.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/wrapper.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/wrapper.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/cachecontrol/wrapper.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__main__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__main__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__main__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/__main__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/cacert.pem b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/cacert.pem similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/cacert.pem rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/cacert.pem diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/core.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/core.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/core.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/certifi/core.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5freq.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5freq.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5freq.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5freq.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5prober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5prober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5prober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/big5prober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/chardistribution.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/chardistribution.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/chardistribution.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/chardistribution.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetgroupprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetgroupprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetgroupprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetgroupprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/charsetprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/chardetect.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/chardetect.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/chardetect.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cli/chardetect.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/codingstatemachine.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/codingstatemachine.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/codingstatemachine.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/codingstatemachine.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/compat.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/compat.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/compat.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/compat.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cp949prober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cp949prober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cp949prober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/cp949prober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/enums.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/enums.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/enums.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/enums.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escsm.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escsm.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escsm.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/escsm.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/eucjpprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/eucjpprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/eucjpprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/eucjpprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrfreq.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrfreq.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrfreq.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrfreq.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euckrprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwfreq.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwfreq.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwfreq.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwfreq.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/euctwprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312freq.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312freq.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312freq.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312freq.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312prober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312prober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312prober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/gb2312prober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/hebrewprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/hebrewprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/hebrewprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/hebrewprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jisfreq.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jisfreq.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jisfreq.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jisfreq.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jpcntx.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jpcntx.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jpcntx.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/jpcntx.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langbulgarianmodel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langbulgarianmodel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langbulgarianmodel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langbulgarianmodel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langcyrillicmodel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langcyrillicmodel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langcyrillicmodel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langcyrillicmodel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langgreekmodel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langgreekmodel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langgreekmodel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langgreekmodel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhebrewmodel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhebrewmodel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhebrewmodel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhebrewmodel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhungarianmodel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhungarianmodel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhungarianmodel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langhungarianmodel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langthaimodel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langthaimodel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langthaimodel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langthaimodel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langturkishmodel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langturkishmodel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langturkishmodel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/langturkishmodel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/latin1prober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/latin1prober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/latin1prober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/latin1prober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcharsetprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcharsetprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcharsetprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcharsetprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcsgroupprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcsgroupprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcsgroupprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcsgroupprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcssm.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcssm.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcssm.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/mbcssm.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcharsetprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcharsetprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcharsetprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcharsetprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcsgroupprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcsgroupprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcsgroupprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sbcsgroupprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sjisprober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sjisprober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sjisprober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/sjisprober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/universaldetector.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/universaldetector.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/universaldetector.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/universaldetector.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/utf8prober.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/utf8prober.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/utf8prober.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/utf8prober.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/version.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/version.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/version.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/chardet/version.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansi.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansi.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansi.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansi.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansitowin32.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansitowin32.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansitowin32.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/ansitowin32.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/initialise.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/initialise.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/initialise.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/initialise.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/win32.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/win32.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/win32.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/win32.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/winterm.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/winterm.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/winterm.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/colorama/winterm.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/misc.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/misc.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/misc.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/misc.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/shutil.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/shutil.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/shutil.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/shutil.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.cfg b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.cfg similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.cfg rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.cfg diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/sysconfig.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/tarfile.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/tarfile.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/tarfile.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/_backport/tarfile.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/compat.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/compat.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/compat.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/compat.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/database.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/database.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/database.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/database.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/index.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/index.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/index.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/index.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/locators.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/locators.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/locators.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/locators.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/manifest.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/manifest.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/manifest.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/manifest.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/markers.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/markers.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/markers.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/markers.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/metadata.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/metadata.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/metadata.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/metadata.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/resources.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/resources.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/resources.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/resources.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/scripts.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/scripts.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/scripts.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/scripts.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t32.exe b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t32.exe similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t32.exe rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t32.exe diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t64.exe b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t64.exe similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t64.exe rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/t64.exe diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/util.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/util.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/util.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/util.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/version.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/version.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/version.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/version.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w32.exe b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w32.exe similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w32.exe rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w32.exe diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w64.exe b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w64.exe similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w64.exe rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/w64.exe diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/wheel.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/wheel.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/wheel.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distlib/wheel.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distro.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distro.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distro.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/distro.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_ihatexml.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_ihatexml.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_ihatexml.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_ihatexml.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_inputstream.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_inputstream.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_inputstream.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_inputstream.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_tokenizer.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_tokenizer.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_tokenizer.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_tokenizer.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/_base.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/datrie.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/py.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/py.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/py.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_trie/py.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_utils.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_utils.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_utils.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/_utils.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/constants.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/constants.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/constants.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/constants.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/base.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/base.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/base.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/base.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/lint.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/lint.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/lint.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/lint.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/optionaltags.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/optionaltags.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/optionaltags.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/optionaltags.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/sanitizer.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/sanitizer.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/sanitizer.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/sanitizer.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/whitespace.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/whitespace.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/whitespace.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/filters/whitespace.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/html5parser.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/html5parser.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/html5parser.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/html5parser.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/serializer.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/serializer.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/serializer.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/serializer.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/genshi.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/genshi.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/genshi.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/genshi.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/sax.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/sax.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/sax.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treeadapters/sax.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/base.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/base.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/base.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/base.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/dom.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/dom.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/dom.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/dom.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/base.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/base.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/base.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/base.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/dom.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/dom.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/dom.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/dom.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/genshi.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/genshi.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/genshi.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/html5lib/treewalkers/genshi.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/codec.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/codec.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/codec.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/codec.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/compat.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/compat.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/compat.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/compat.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/core.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/core.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/core.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/core.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/idnadata.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/idnadata.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/idnadata.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/idnadata.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/intranges.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/intranges.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/intranges.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/intranges.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/package_data.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/package_data.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/package_data.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/package_data.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/uts46data.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/uts46data.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/uts46data.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/idna/uts46data.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/ipaddress.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/ipaddress.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/ipaddress.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/ipaddress.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/linklockfile.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/linklockfile.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/linklockfile.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/linklockfile.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/mkdirlockfile.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/mkdirlockfile.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/mkdirlockfile.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/mkdirlockfile.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/pidlockfile.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/pidlockfile.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/pidlockfile.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/pidlockfile.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/sqlitelockfile.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/sqlitelockfile.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/sqlitelockfile.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/sqlitelockfile.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/symlinklockfile.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/symlinklockfile.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/symlinklockfile.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/lockfile/symlinklockfile.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/_version.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/_version.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/_version.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/_version.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/exceptions.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/exceptions.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/exceptions.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/exceptions.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/fallback.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/fallback.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/fallback.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/msgpack/fallback.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__about__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__about__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__about__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__about__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_compat.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_compat.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_compat.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_compat.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_structures.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_structures.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_structures.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/_structures.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/markers.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/markers.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/markers.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/markers.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/requirements.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/requirements.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/requirements.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/requirements.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/specifiers.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/specifiers.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/specifiers.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/specifiers.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/utils.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/utils.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/utils.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/utils.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/version.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/version.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/version.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/packaging/version.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/_in_process.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/_in_process.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/_in_process.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/_in_process.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/build.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/build.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/build.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/build.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/check.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/check.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/check.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/check.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/colorlog.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/colorlog.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/colorlog.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/colorlog.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/compat.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/compat.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/compat.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/compat.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/envbuild.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/envbuild.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/envbuild.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/envbuild.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/wrappers.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/wrappers.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/wrappers.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pep517/wrappers.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/py31compat.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/py31compat.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/py31compat.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pkg_resources/py31compat.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/bar.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/bar.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/bar.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/bar.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/counter.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/counter.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/counter.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/counter.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/helpers.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/helpers.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/helpers.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/helpers.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/spinner.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/spinner.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/spinner.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/progress/spinner.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pyparsing.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pyparsing.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pyparsing.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pyparsing.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/core.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/core.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/core.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/core.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/parser.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/parser.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/parser.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/parser.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/test.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/test.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/test.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/test.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/utils.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/utils.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/utils.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/utils.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/writer.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/writer.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/writer.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/pytoml/writer.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__version__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__version__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__version__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/__version__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/_internal_utils.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/_internal_utils.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/_internal_utils.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/_internal_utils.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/adapters.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/adapters.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/adapters.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/adapters.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/api.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/api.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/api.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/api.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/auth.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/auth.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/auth.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/auth.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/certs.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/certs.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/certs.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/certs.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/compat.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/compat.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/compat.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/compat.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/cookies.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/cookies.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/cookies.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/cookies.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/exceptions.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/exceptions.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/exceptions.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/exceptions.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/help.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/help.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/help.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/help.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/hooks.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/hooks.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/hooks.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/hooks.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/models.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/models.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/models.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/models.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/packages.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/packages.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/packages.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/packages.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/sessions.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/sessions.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/sessions.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/sessions.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/status_codes.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/status_codes.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/status_codes.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/status_codes.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/structures.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/structures.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/structures.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/structures.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/utils.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/utils.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/utils.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/requests/utils.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/retrying.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/retrying.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/retrying.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/retrying.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/six.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/six.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/six.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/six.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/_collections.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/_collections.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/_collections.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/_collections.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connection.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connection.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connection.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connection.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connectionpool.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connectionpool.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connectionpool.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/connectionpool.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_appengine_environ.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/appengine.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/appengine.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/appengine.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/appengine.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/ntlmpool.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/ntlmpool.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/ntlmpool.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/ntlmpool.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/pyopenssl.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/pyopenssl.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/pyopenssl.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/pyopenssl.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/securetransport.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/securetransport.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/securetransport.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/securetransport.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/socks.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/socks.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/socks.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/contrib/socks.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/exceptions.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/exceptions.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/exceptions.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/exceptions.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/fields.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/fields.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/fields.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/fields.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/filepost.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/filepost.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/filepost.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/filepost.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/makefile.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/makefile.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/makefile.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/backports/makefile.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/six.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/six.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/six.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/six.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/poolmanager.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/poolmanager.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/poolmanager.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/poolmanager.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/request.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/request.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/request.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/request.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/response.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/response.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/response.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/response.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/connection.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/connection.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/connection.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/connection.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/queue.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/queue.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/queue.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/queue.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/request.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/request.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/request.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/request.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/response.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/response.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/response.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/response.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/retry.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/retry.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/retry.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/retry.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/ssl_.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/ssl_.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/ssl_.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/ssl_.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/timeout.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/timeout.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/timeout.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/timeout.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/url.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/url.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/url.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/url.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/wait.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/wait.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/wait.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/urllib3/util/wait.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__init__.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__init__.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__init__.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/__init__.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/labels.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/labels.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/labels.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/labels.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/mklabels.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/mklabels.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/mklabels.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/mklabels.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/tests.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/tests.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/tests.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/tests.py diff --git a/HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/x_user_defined.py b/MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/x_user_defined.py similarity index 100% rename from HW1/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/x_user_defined.py rename to MinimumEdit/env/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg/pip/_vendor/webencodings/x_user_defined.py diff --git a/HW1/env/lib/python3.7/site-packages/setuptools-40.8.0-py3.7.egg b/MinimumEdit/env/lib/python3.7/site-packages/setuptools-40.8.0-py3.7.egg similarity index 98% rename from HW1/env/lib/python3.7/site-packages/setuptools-40.8.0-py3.7.egg rename to MinimumEdit/env/lib/python3.7/site-packages/setuptools-40.8.0-py3.7.egg index ce088400511b99d84d189f17e7465f74e4e0d8d0..ab965881281656e88b238398d4f6d2299b7ffa48 100644 GIT binary patch delta 2754 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 NG-5Lz9znQ}zW~3sDEI&X delta 2709 zcmY*b3tWt87oYc?nt7_BDY_b!qR2N&OtV<qZPi4k8@Ai3tU+$ITl$DhRANh6StnG} z)N~ouOf}smgi6VhP}mlQ?_=4LHq`D)-!o0VUGMLAe$V{R`JeNg_nh;d-wY31{yuD3 zVM^MBN!UJCa~Rec8WhS^28E(Wp-@(Mc(6VB?%sAjtJFWr*JZkp93k_-^3V1zyTl1F zi~ecs;-$Pbds@;HxsRsYwAg@ZJJ(64Ux<DCX6|ky)}A|-Kh@8(if#8Tnv>dX>ur!h z-@fkZ3EHWG|3)kgOXf2&!Y}PMQ&>heDm){MY&V}y^~j~f2}>CJR^K_yF6%Z<4!0c0 z&(d@ih!=2l_r|zu2A<h+ROle}*_c}q=h9R4^AopLfoWwxKD*58mdC00`STUdr&`V( zC%=>U4@Q3R=)wNRA#3-sDNTQlh-8+r;xB)2*{PiKoX%FHdxj;n#S)eJ#yo>Kql6~j zj?yqqBJ<R+G<xMG&jcN<h>!uBwvF}u)F%!@0V76%JM}AOCMcq=yL~O3HjpCN(Zz3c z&GW9OCoa#9YJIBFq!8r13BSh98&LEVzTM9IFil!s63`6#bqcdhEVi+cSaIT}#mx2X z=Xb~L+P9{gbyUvJ_;vhi!RpN6p+~&C#iRLJ&(|G^r|yuw)n6%aofZ1*L*TQn#r4hm zyAt{f`PuhUy2oyHHNBHA5;jLyZkal62ua_&lnCaY-ud9^z5Pv`^h7ViagVan)>{Jq z{Lv8lfLpc0p*0;l3@)Gj&yb1T2>6=QQUiY(7w<2-w(`%Jw*$i!b|u<YVf8g{E(Bk* zIJv?xhJE6)%*dbOUVg=_wI*#{L(2nQf5aUuX^hnThMn$Wvp3wT`3*<-{`KqRu7-mT zPu?-?H@o~kp?~DyK0&m=c2B5z`&CJE@cjLphn?@g=&N3JPX<E6*<6DvMRCPaE%!q@ zYb6WM5K^UhYf4t&+LUkH9tE>(#$NgHB5Km<$<6Wo9<HmVw8k^I&LIIyw_Y^VT9o%= zCCA2jitBOjInlRyUW@BC5JKMOlPwh-N!(S*t{Gc9I`STWZsm2{V(9*F*GKGn<HcV} zMz?qVl9TO!aUrL8VaB}G1OFBdN8WpVeCgRWOMKj=@+E>S^8N`AkAs|pZk)$U_qOUC zd$q4^`@poRL0*-8Crt_+%I4>bjAqZLc{kj69#SX`QVs|GmEyU?WXHL#D_ey%L7EGA zd_xP}-+npk#|pg>?;F{By?8|L+K&zk-TU`BG>Dr-Y3I0P;_S<B?<C!SwzyvZjdjxM zZqY7z^6&|(Yf6o{w2({seuWSDj)gXE2hzHpv4>4A%zM%h=o*w&SP{-G;yquu$H{hs zmXfmhZh|k1`_A#ELEY2XrJG^`jfFL{{r`+#-WY5bne{*)$!~wgmab9soa7&MITzh7 z{}B6R<-i$1N8k6)Js)pi)_Ai|&opmv8hzoMn&~z|FQx~dUw;2dTO!+WtkFM6yUu=X z^tmTAM_cRf+6({c;axK8;H>3qk1~ADbpD{Hql^j3jwtQ53+P_7u^{U~-b-$`F#h*l zrF&m8B93H_XnmN+yWT0E=ic9Z%<uEjoxAl}n)1@2)r-uyPd#5Zj61xOrbwTa3%}YL z7Z<#{>Tzad=ZF64reht9!NL8*y~?)H<1*G8JJI2g7L8-%;Jy`J7lee*DyqhGynhfy zwUy%ZuHSi!x6*7w3Pq(|p?F2p*Q8=oCY8~lIu%`vd*p;drW>m|6K$9&HcSEwiG_+q z1B)gW8Wwu74HF&JQpKLwcwnD{993=*k%MLs9gv)ZtR`@&3crQ69P}@96}{CYD6oK} zP-Hq3iV05T<5PX074&n_+zF@Uxo8HNr<-{}*GSiA6+up?{{LMd0ow=@$j(J>#4hN| zMPCrbU@k)L#0%IYLOfy{$VG@xl&KCAFv>%V$z=c)B4nHy1q|3GLo7I&ho+MEw}Fco z8ADATvL}O%sK9I(mmzE2`5&{wr{n+|oW&@BOixoWte_)}(1KPmvL(bYBu2qx*fEvC z5~A|)Rr1qn@ai<73+F2ki^={Z*lw}f{zoW%3QVuWx$p~cE`AMabwUAhAf@Nj;BEn0 zO!aFgAgZ011q&qjN;3$Q;1?G_js$rV_Anqp9)uBa3egJU3hXUJu0$*}sty?tMaYQ= z0hc1=LcD~;BJ8Jxwjyln2km0yMC~1<!q_0y7~IPd6Jm;yDKP*U#mJdRf=)~zM8GUT zu2gZV23$<lFobO-IE7F+S%Pir;cf|Xp_*4~!t!cO6G#%_7;aKzO1)F72}8A-2Cz$t z>AsLB#q=uZlj0m>!1^ri(Kirz7OkMZvY-KD7R>}Y&mvo@pCt{VEHN@H#eO8Xlwyjn zH4P%IX@(%eN~*sj4Zd}x&4d>!WY47mpGz|Wb{R$;81-|p`$Q(&meH7a#MF=EKnUcP zA$MxOI}NlwXe>BffV2I|^Aipa7L?=S^uf2~$eF72r@=jcni({dA!cS=5(8e9qp8#_ zYiaOUj;6!uwKN?tli`bt)G7lAlOYc2YzuvIWB_F{JXIGxRKNm0s4N+tYOo`f(1uVs zvLy#rsx==+iUpl=G?f^GUO65(C0}JVSIw0vXa~}n_&>$R_xUS8ZTmQ8w&aCSwdUhs z*%BwfsS^2-zwS{R@HCmi^-A2J^b|VycG9QAr4+gjEK@b^#bG*g%HQF84o@-|N9agh z(C{kk>6138mrLk0$f`p2R5E{3)mw#EK)mE{0uw%0;PTuqoK(dt5SOY~I*EQ#V0xf( z5~V6}CU{<$P}lNFCM7MCjGh*{Htej%0k?Eas^rx;#G=j#WCc1kxS~mH__h{T->U`} zJk?VLSRkrFY%<hG1!lr;*n$_-tXjMy>>;WaSLj`c+Ue(7<U~fVR|C5`#3h|KszH1m z4woiSgGK?;f{n#U4_<CTy8mcO&lWX-5rOb%)Z=tQwyHIu_4u=v$EZO`Jz7NGh*N{{ zI7Ej(RNS8AN$*2A{KO2;%Rv9^xoL));FW=<stNf@+>>di5G*`}%;2FCF=-F85pLuE E0Hq5!?*IS* diff --git a/HW1/env/lib/python3.7/site-packages/setuptools.pth b/MinimumEdit/env/lib/python3.7/site-packages/setuptools.pth similarity index 100% rename from HW1/env/lib/python3.7/site-packages/setuptools.pth rename to MinimumEdit/env/lib/python3.7/site-packages/setuptools.pth diff --git a/MinimumEdit/env/pyvenv.cfg b/MinimumEdit/env/pyvenv.cfg new file mode 100644 index 0000000..9977434 --- /dev/null +++ b/MinimumEdit/env/pyvenv.cfg @@ -0,0 +1,3 @@ +home = /Library/Frameworks/Python.framework/Versions/3.7/bin +include-system-site-packages = false +version = 3.7.6 diff --git a/MinimumEdit/results.txt b/MinimumEdit/results.txt new file mode 100644 index 0000000..e7254cd --- /dev/null +++ b/MinimumEdit/results.txt @@ -0,0 +1,13 @@ +1 : 3265 +2 : 1095 +3 : 93 +0 : 38 +4 : 16 +5 : 5 +6 : 3 +8 : 1 +7 : 1 +10 : 1 + +Maximal edit distance word pairs, +['unconfortability : discomfort'] diff --git a/MinimumEdit/words.txt b/MinimumEdit/words.txt index e69de29..eea615b 100644 --- a/MinimumEdit/words.txt +++ b/MinimumEdit/words.txt @@ -0,0 +1,4282 @@ +abandonned->abandoned +aberation->aberration +abilityes->abilities +abilties->abilities +abilty->ability +abondon->abandon +abbout->about +abotu->about +abouta->about a +aboutit->about it +aboutthe->about the +abscence->absence +abondoned->abandoned +abondoning->abandoning +abondons->abandons +aborigene->aborigine +accesories->accessories +accidant->accident +abortificant->abortifacient +abreviate->abbreviate +abreviated->abbreviated +abreviation->abbreviation +abritrary->arbitrary +absail->abseil +absailing->abseiling +absense->absence +absolutly->absolutely +absorbsion->absorption +absorbtion->absorption +abudance->abundance +abundacies->abundances +abundancies->abundances +abundunt->abundant +abutts->abuts +acadamy->academy +acadmic->academic +accademic->academic +accademy->academy +acccused->accused +accelleration->acceleration +accension->accession, ascension +acceptence->acceptance +acceptible->acceptable +accessable->accessible +acident->accident +accidentaly->accidentally +accidently->accidentally +acclimitization->acclimatization +accomadate->accommodate +accomadated->accommodated +accomadates->accommodates +accomadating->accommodating +accomadation->accommodation +accomadations->accommodations +accomdate->accommodate +accomodate->accommodate +accomodated->accommodated +accomodates->accommodates +accomodating->accommodating +accomodation->accommodation +accomodations->accommodations +accompanyed->accompanied +accordeon->accordion +accordian->accordion +accoring->according +accoustic->acoustic +accquainted->acquainted +accrediation->accreditation +accredidation->accreditation +accross->across +accussed->accused +acedemic->academic +acheive->achieve +acheived->achieved +acheivement->achievement +acheivements->achievements +acheives->achieves +acheiving->achieving +acheivment->achievement +acheivments->achievements +achievment->achievement +achievments->achievements +achive->achieve, archive +achived->achieved, archived +achivement->achievement +achivements->achievements +acknowldeged->acknowledged +acknowledgeing->acknowledging +ackward->awkward, backward +acommodate->accommodate +acomplish->accomplish +acomplished->accomplished +acomplishment->accomplishment +acomplishments->accomplishments +acording->according +acordingly->accordingly +acquaintence->acquaintance +acquaintences->acquaintances +acquiantence->acquaintance +acquiantences->acquaintances +acquited->acquitted +activites->activities +activly->actively +actualy->actually +acuracy->accuracy +acused->accused +acustom->accustom +acustommed->accustomed +adavanced->advanced +adbandon->abandon +addional->additional +addionally->additionally +additinally->additionally +additionaly->additionally +additonal->additional +additonally->additionally +addmission->admission +addopt->adopt +addopted->adopted +addoptive->adoptive +addres->address, adders +addresable->addressable +addresed->addressed +addresing->addressing +addressess->addresses +addtion->addition +addtional->additional +adecuate->adequate +adequit->adequate +adhearing->adhering +adherance->adherence +admendment->amendment +admininistrative->administrative +adminstered->administered +adminstrate->administrate +adminstration->administration +adminstrative->administrative +adminstrator->administrator +admissability->admissibility +admissable->admissible +admited->admitted +admitedly->admittedly +adn->and +adolecent->adolescent +adquire->acquire +adquired->acquired +adquires->acquires +adquiring->acquiring +adres->address +adresable->addressable +adresing->addressing +adress->address +adressable->addressable +adressed->addressed +adressing->addressing, dressing +adventrous->adventurous +advertisment->advertisement +advertisments->advertisements +advesary->adversary +adviced->advised +aeriel->aerial +aeriels->aerials +afair->affair +afficianados->aficionados +afficionado->aficionado +afficionados->aficionados +affilate->affiliate +affilliate->affiliate +affort->afford, effort +aforememtioned->aforementioned +againnst->against +agains->against +agaisnt->against +aganist->against +aggaravates->aggravates +aggreed->agreed +aggreement->agreement +aggregious->egregious +aggresive->aggressive +agian->again +agianst->against +agin->again +agina->again, angina +aginst->against +agravate->aggravate +agre->agree +agred->agreed +agreeement->agreement +agreemnt->agreement +agregate->aggregate +agregates->aggregates +agreing->agreeing +agression->aggression +agressive->aggressive +agressively->aggressively +agressor->aggressor +agricultue->agriculture +agriculure->agriculture +agricuture->agriculture +agrieved->aggrieved +ahev->have +ahppen->happen +ahve->have +aicraft->aircraft +aiport->airport +airbourne->airborne +aircaft->aircraft +aircrafts->aircraft +aircrafts'->aircraft's +airporta->airports +airrcraft->aircraft +aisian->asian +aka->a.k.a. +albiet->albeit +alchohol->alcohol +alchoholic->alcoholic +alchol->alcohol +alcholic->alcoholic +alcohal->alcohol +alcoholical->alcoholic +aledge->allege +aledged->alleged +aledges->alleges +alege->allege +aleged->alleged +alegience->allegiance +algebraical->algebraic +algorhitms->algorithms +algoritm->algorithm +algoritms->algorithms +alientating->alienating +alledge->allege +alledged->alleged +alledgedly->allegedly +alledges->alleges +allegedely->allegedly +allegedy->allegedly +allegely->allegedly +allegence->allegiance +allegience->allegiance +allign->align +alligned->aligned +alliviate->alleviate +allopone->allophone +allopones->allophones +allready->already +allthough->although +alltime->all-time +alltogether->altogether +almsot->almost +alochol->alcohol +alomst->almost +alot->a lot, allot +alotted->allotted +alowed->allowed +alowing->allowing +alreayd->already +alse->else +alsot->also +alternitives->alternatives +altho->although +althought->although +altough->although +alusion->allusion, illusion +alwasy->always +alwyas->always +amalgomated->amalgamated +amatuer->amateur +amature->armature, amateur +amendmant->amendment +Amercia->America +amerliorate->ameliorate +amke->make +amking->making +ammend->amend +ammended->amended +ammendment->amendment +ammendments->amendments +ammount->amount +ammused->amused +amoung->among +amoungst->amongst +amung->among +amunition->ammunition +analagous->analogous +analitic->analytic +analogeous->analogous +anarchim->anarchism +anarchistm->anarchism +anbd->and +ancestory->ancestry +ancilliary->ancillary +andd->and +androgenous->androgynous +androgeny->androgyny +anihilation->annihilation +aniversary->anniversary +annoint->anoint +annointed->anointed +annointing->anointing +annoints->anoints +annouced->announced +annualy->annually +annuled->annulled +anohter->another +anomolies->anomalies +anomolous->anomalous +anomoly->anomaly +anonimity->anonymity +anounced->announced +anouncement->announcement +ansalisation->nasalisation +ansalization->nasalization +ansestors->ancestors +antartic->antarctic +anthromorphization->anthropomorphization +anthropolgist->anthropologist +anthropolgy->anthropology +antiapartheid->anti-apartheid +anual->annual +anulled->annulled +anwsered->answered +anyhwere->anywhere +anyother->any other +anytying->anything +aparent->apparent +aparment->apartment +apenines->apennines, Apennines +aplication->application +aplied->applied +apolegetics->apologetics +apon->upon, apron +apparant->apparent +apparantly->apparently +appart->apart +appartment->apartment +appartments->apartments +appealling->appealing, appalling +appeareance->appearance +appearence->appearance +appearences->appearances +appenines->apennines, Apennines +apperance->appearance +apperances->appearances +appereance->appearance +appereances->appearances +applicaiton->application +applicaitons->applications +appologies->apologies +appology->apology +apprearance->appearance +apprieciate->appreciate +approachs->approaches +appropiate->appropriate +appropraite->appropriate +appropropiate->appropriate +approproximate->approximate +approxamately->approximately +approxiately->approximately +approximitely->approximately +aprehensive->apprehensive +apropriate->appropriate +aproval->approval +aproximate->approximate +aproximately->approximately +aquaduct->aqueduct +aquaintance->acquaintance +aquainted->acquainted +aquiantance->acquaintance +aquire->acquire +aquired->acquired +aquiring->acquiring +aquisition->acquisition +aquitted->acquitted +aranged->arranged +arangement->arrangement +arbitarily->arbitrarily +arbitary->arbitrary +archaelogical->archaeological +archaelogists->archaeologists +archaelogy->archaeology +archaoelogy->archeology, archaeology +archaology->archeology, archaeology +archeaologist->archeologist, archaeologist +archeaologists->archeologists, archaeologists +archetect->architect +archetects->architects +archetectural->architectural +archetecturally->architecturally +archetecture->architecture +archiac->archaic +archictect->architect +archimedian->archimedean +architecht->architect +architechturally->architecturally +architechture->architecture +architechtures->architectures +architectual->architectural +archtype->archetype +archtypes->archetypes +aready->already +areodynamics->aerodynamics +argubly->arguably +arguement->argument +arguements->arguments +arised->arose +arival->arrival +armamant->armament +armistace->armistice +arogant->arrogant +arogent->arrogant +aroud->around +arrangment->arrangement +arrangments->arrangements +arrengement->arrangement +arrengements->arrangements +arround->around +artcile->article +artical->article +artice->article +articel->article +artifical->artificial +artifically->artificially +artillary->artillery +arund->around +asetic->ascetic +asfar->as far +asign->assign +aslo->also +asociated->associated +asorbed->absorbed +asphyxation->asphyxiation +assasin->assassin +assasinate->assassinate +assasinated->assassinated +assasinates->assassinates +assasination->assassination +assasinations->assassinations +assasined->assassinated +assasins->assassins +assassintation->assassination +assemple->assemble +assertation->assertion +asside->aside +assisnate->assassinate +assit->assist +assitant->assistant +assocation->association +assoicate->associate +assoicated->associated +assoicates->associates +assosication->assassination +asssassans->assassins +assualt->assault +assualted->assaulted +assymetric->asymmetric +assymetrical->asymmetrical +asteriod->asteroid +asthetic->aesthetic +asthetical->aesthetical +asthetically->aesthetically +asume->assume +aswell->as well +atain->attain +atempting->attempting +atheistical->atheistic +athenean->athenian +atheneans->athenians +athiesm->atheism +athiest->atheist +atorney->attorney +atribute->attribute +atributed->attributed +atributes->attributes +attaindre->attainder, attained +attemp->attempt +attemped->attempted +attemt->attempt +attemted->attempted +attemting->attempting +attemts->attempts +attendence->attendance +attendent->attendant +attendents->attendants +attened->attended +attension->attention +attitide->attitude +attributred->attributed +attrocities->atrocities +audeince->audience +auromated->automated +austrailia->Australia +austrailian->Australian +auther->author +authobiographic->autobiographic +authobiography->autobiography +authorative->authoritative +authorites->authorities +authorithy->authority +authoritiers->authorities +authoritive->authoritative +authrorities->authorities +autochtonous->autochthonous +autoctonous->autochthonous +automaticly->automatically +automibile->automobile +automonomous->autonomous +autor->author +autority->authority +auxilary->auxiliary +auxillaries->auxiliaries +auxillary->auxiliary +auxilliaries->auxiliaries +auxilliary->auxiliary +availabe->available +availablity->availability +availaible->available +availble->available +availiable->available +availible->available +avalable->available +avalance->avalanche +avaliable->available +avation->aviation +avengence->a vengeance +averageed->averaged +avilable->available +awared->awarded +awya->away +baceause->because +backgorund->background +backrounds->backgrounds +bakc->back +banannas->bananas +bandwith->bandwidth +bankrupcy->bankruptcy +banruptcy->bankruptcy +baout->about, bout +basicaly->basically +basicly->basically +bcak->back +beachead->beachhead +beacuse->because +beastiality->bestiality +beatiful->beautiful +beaurocracy->bureaucracy +beaurocratic->bureaucratic +beautyfull->beautiful +becamae->became +becames->becomes, became +becasue->because +beccause->because +becomeing->becoming +becomming->becoming +becouse->because +becuase->because +bedore->before +beeing->being +befoer->before +beggin->begin, begging +begginer->beginner +begginers->beginners +beggining->beginning +begginings->beginnings +beggins->begins +begining->beginning +beginnig->beginning +behavour->behavior, behaviour +beleagured->beleaguered +beleif->belief +beleive->believe +beleived->believed +beleives->believes +beleiving->believing +beligum->belgium +belive->believe +belived->believed, beloved +belives->believes, beliefs +belligerant->belligerent +bellweather->bellwether +bemusemnt->bemusement +beneficary->beneficiary +beng->being +benificial->beneficial +benifit->benefit +benifits->benefits +bergamont->bergamot +Bernouilli->Bernoulli +beseige->besiege +beseiged->besieged +beseiging->besieging +beteen->between +betwen->between +beween->between +bewteen->between +bigining->beginning +biginning->beginning +bilateraly->bilaterally +billingualism->bilingualism +binominal->binomial +bizzare->bizarre +blaim->blame +blaimed->blamed +blessure->blessing +Blitzkreig->Blitzkrieg +boaut->bout, boat, about +bodydbuilder->bodybuilder +bombardement->bombardment +bombarment->bombardment +bondary->boundary +Bonnano->Bonanno +boook->book +borke->broke +boundry->boundary +bouyancy->buoyancy +bouyant->buoyant +boyant->buoyant +bradcast->broadcast +Brasillian->Brazilian +breakthough->breakthrough +breakthroughts->breakthroughs +breif->brief +breifly->briefly +brethen->brethren +bretheren->brethren +briliant->brilliant +brillant->brilliant +brimestone->brimstone +Britian->Britain +Brittish->British +broacasted->broadcast +broadacasting->broadcasting +broady->broadly +Buddah->Buddha +Buddist->Buddhist +buisness->business +buisnessman->businessman +buoancy->buoyancy +buring->burying, burning, burin, during +burried->buried +busines->business +busineses->business, businesses +busness->business +bussiness->business +caculater->calculator +cacuses->caucuses +cahracters->characters +calaber->caliber +calander->calendar, calender, colander +calculater->calculator +calculs->calculus +calenders->calendars +caligraphy->calligraphy +caluclate->calculate +caluclated->calculated +caluculate->calculate +caluculated->calculated +calulate->calculate +calulated->calculated +calulater->calculator +Cambrige->Cambridge +camoflage->camouflage +campagin->campaign +campain->campaign +campains->campaigns +candadate->candidate +candiate->candidate +candidiate->candidate +cannister->canister +cannisters->canisters +cannnot->cannot +cannonical->canonical +cannotation->connotation +cannotations->connotations +caost->coast +caperbility->capability +Capetown->Cape Town +capible->capable +captial->capital +captued->captured +capturd->captured +carachter->character +caracterized->characterized +carcas->carcass, Caracas +carefull->careful +careing->caring +carismatic->charismatic +Carmalite->Carmelite +Carnagie->Carnegie +Carnagie-Mellon->Carnegie-Mellon +carnege->carnage, Carnegie +carnige->carnage, Carnegie +Carnigie->Carnegie +Carnigie-Mellon->Carnegie-Mellon +carreer->career +carrers->careers +Carribbean->Caribbean +Carribean->Caribbean +carryng->carrying +cartdridge->cartridge +Carthagian->Carthaginian +carthographer->cartographer +cartilege->cartilage +cartilidge->cartilage +cartrige->cartridge +casette->cassette +casion->caisson +cassawory->cassowary +cassowarry->cassowary +casue->cause +casued->caused +casues->causes +casuing->causing +casulaties->casualties +casulaty->casualty +catagories->categories +catagorized->categorized +catagory->category +Cataline->Catiline, Catalina +catapillar->caterpillar +catapillars->caterpillars +catapiller->caterpillar +catapillers->caterpillars +catepillar->caterpillar +catepillars->caterpillars +catergorize->categorize +catergorized->categorized +caterpilar->caterpillar +caterpilars->caterpillars +caterpiller->caterpillar +caterpillers->caterpillars +cathlic->catholic +catholocism->catholicism +catterpilar->caterpillar +catterpilars->caterpillars +catterpillar->caterpillar +catterpillars->caterpillars +cattleship->battleship +causalities->casualties +Ceasar->Caesar +Celcius->Celsius +cellpading->cellpadding +cementary->cemetery +cemetarey->cemetery +cemetaries->cemeteries +cemetary->cemetery +cencus->census +censur->censor, censure +cententenial->centennial +centruies->centuries +centruy->century +centuties->centuries +centuty->century +ceratin->certain, keratin +cerimonial->ceremonial +cerimonies->ceremonies +cerimonious->ceremonious +cerimony->ceremony +ceromony->ceremony +certainity->certainty +certian->certain +cervial->cervical, servile, serval +chalenging->challenging +challange->challenge +challanged->challenged +challege->challenge +Champange->Champagne +changable->changeable +charachter->character +charachters->characters +charactersistic->characteristic +charactor->character +charactors->characters +charasmatic->charismatic +charaterized->characterized +chariman->chairman +charistics->characteristics +chasr->chaser, chase +cheif->chief +cheifs->chiefs +chemcial->chemical +chemcially->chemically +chemestry->chemistry +chemicaly->chemically +childbird->childbirth +childen->children +choclate->chocolate +choosen->chosen +chracter->character +chuch->church +churchs->churches +Cincinatti->Cincinnati +Cincinnatti->Cincinnati +circulaton->circulation +circumsicion->circumcision +circut->circuit +ciricuit->circuit +ciriculum->curriculum +civillian->civilian +claer->clear +claerer->clearer +claerly->clearly +claimes->claims +clas->class +clasic->classic +clasical->classical +clasically->classically +cleareance->clearance +clera->clear, sclera +clincial->clinical +clinicaly->clinically +cmo->com +cmoputer->computer +co-incided->coincided +Coca Cola->Coca-Cola +coctail->cocktail +coform->conform +cognizent->cognizant +coincedentally->coincidentally +colaborations->collaborations +colateral->collateral +colelctive->collective +collaberative->collaborative +collecton->collection +collegue->colleague +collegues->colleagues +collonade->colonnade +collonies->colonies +collony->colony +collosal->colossal +colonizators->colonizers +comander->commander, commandeer +comando->commando +comandos->commandos +comany->company +comapany->company +comback->comeback +combanations->combinations +combinatins->combinations +combusion->combustion +comdemnation->condemnation +comemmorates->commemorates +comemoretion->commemoration +comision->commission +comisioned->commissioned +comisioner->commissioner +comisioning->commissioning +comisions->commissions +comission->commission +comissioned->commissioned +comissioner->commissioner +comissioning->commissioning +comissions->commissions +comited->committed +comiting->committing +comitted->committed +comittee->committee +comitting->committing +commandoes->commandos +commedic->comedic +commemerative->commemorative +commemmorate->commemorate +commemmorating->commemorating +commerical->commercial +commerically->commercially +commericial->commercial +commericially->commercially +commerorative->commemorative +comming->coming +comminication->communication +commision->commission +commisioned->commissioned +commisioner->commissioner +commisioning->commissioning +commisions->commissions +commited->committed +commitee->committee +commiting->committing +committe->committee +committment->commitment +committments->commitments +commmemorated->commemorated +commongly->commonly +commonweath->commonwealth +commuications->communications +commuinications->communications +communciation->communication +communiation->communication +communites->communities +compability->compatibility +comparision->comparison +comparisions->comparisons +comparitive->comparative +comparitively->comparatively +compatabilities->compatibilities +compatability->compatibility +compatable->compatible +compatablities->compatibilities +compatablity->compatibility +compatiable->compatible +compatiblities->compatibilities +compatiblity->compatibility +compeitions->competitions +compensantion->compensation +competance->competence +competant->competent +competative->competitive +competion->competition, completion +competitiion->competition +competive->competitive +competiveness->competitiveness +comphrehensive->comprehensive +compitent->competent +completedthe->completed the +completelyl->completely +completetion->completion +complier->compiler +componant->component +comprable->comparable +comprimise->compromise +compulsary->compulsory +compulsery->compulsory +computarized->computerized +concensus->consensus +concider->consider +concidered->considered +concidering->considering +conciders->considers +concieted->conceited +concieved->conceived +concious->conscious +conciously->consciously +conciousness->consciousness +condamned->condemned +condemmed->condemned +condidtion->condition +condidtions->conditions +conditionsof->conditions of +conected->connected +conection->connection +conesencus->consensus +confidental->confidential +confidentally->confidentially +confids->confides +configureable->configurable +confortable->comfortable +congradulations->congratulations +congresional->congressional +conived->connived +conjecutre->conjecture +conjuction->conjunction +Conneticut->Connecticut +conotations->connotations +conquerd->conquered +conquerer->conqueror +conquerers->conquerors +conqured->conquered +conscent->consent +consciouness->consciousness +consdider->consider +consdidered->considered +consdiered->considered +consectutive->consecutive +consenquently->consequently +consentrate->concentrate +consentrated->concentrated +consentrates->concentrates +consept->concept +consequentually->consequently +consequeseces->consequences +consern->concern +conserned->concerned +conserning->concerning +conservitive->conservative +consiciousness->consciousness +consicousness->consciousness +considerd->considered +consideres->considered +consious->conscious +consistant->consistent +consistantly->consistently +consituencies->constituencies +consituency->constituency +consituted->constituted +consitution->constitution +consitutional->constitutional +consolodate->consolidate +consolodated->consolidated +consonent->consonant +consonents->consonants +consorcium->consortium +conspiracys->conspiracies +conspiriator->conspirator +constaints->constraints +constanly->constantly +constarnation->consternation +constatn->constant +constinually->continually +constituant->constituent +constituants->constituents +constituion->constitution +constituional->constitutional +consttruction->construction +constuction->construction +contstruction->construction +consulant->consultant +consumate->consummate +consumated->consummated +contaiminate->contaminate +containes->contains +contamporaries->contemporaries +contamporary->contemporary +contempoary->contemporary +contemporaneus->contemporaneous +contempory->contemporary +contendor->contender +contian->contain +contians->contains +contibute->contribute +contibuted->contributed +contibutes->contributes +contigent->contingent +contined->continued +continential->continental +continous->continuous +continously->continuously +continueing->continuing +contravercial->controversial +contraversy->controversy +contributer->contributor +contributers->contributors +contritutions->contributions +controled->controlled +controling->controlling +controll->control +controlls->controls +controvercial->controversial +controvercy->controversy +controveries->controversies +controversal->controversial +controversey->controversy +controvertial->controversial +controvery->controversy +contruction->construction +conveinent->convenient +convenant->covenant +convential->conventional +convertables->convertibles +convertion->conversion +conviced->convinced +convienient->convenient +coordiantion->coordination +coorperation->cooperation, corporation +coorperations->corporations +copmetitors->competitors +coputer->computer +copywrite->copyright +coridal->cordial +cornmitted->committed +corosion->corrosion +corparate->corporate +corperations->corporations +correcters->correctors +correponding->corresponding +correposding->corresponding +correspondant->correspondent +correspondants->correspondents +corridoors->corridors +corrispond->correspond +corrispondant->correspondent +corrispondants->correspondents +corrisponded->corresponded +corrisponding->corresponding +corrisponds->corresponds +costitution->constitution +coucil->council +coudl->could, cloud +councellor->councillor, counselor, councilor +councellors->councillors, counselors, councilors +counries->countries +countains->contains +countires->countries +countrie's->countries, countries', country's +coururier->courier, couturier +coverted->converted, covered, coveted +cpoy->coy, copy +creaeted->created +creche->crèche +creedence->credence +critereon->criterion +criterias->criteria +criticists->critics +critising->criticising, criticizing +critisising->criticising +critisism->criticism +critisisms->criticisms +critisize->criticise, criticize +critisized->criticised, criticized +critisizes->criticises, criticizes +critisizing->criticising, criticizing +critized->criticized +critizing->criticizing +crockodiles->crocodiles +crowm->crown +crtical->critical +crticised->criticised +crucifiction->crucifixion +crusies->cruises +crutial->crucial +crystalisation->crystallisation +culiminating->culminating +cumulatative->cumulative +curch->church +curcuit->circuit +currenly->currently +curriculem->curriculum +cxan->cyan +cyclinder->cylinder +dacquiri->daiquiri +daed->dead +dael->deal, dial, dahl +dalmation->dalmatian +damenor->demeanor +dammage->damage +Dardenelles->Dardanelles +daugher->daughter +debateable->debatable +decendant->descendant +decendants->descendants +decendent->descendant +decendents->descendants +decideable->decidable +decidely->decidedly +decieved->deceived +decison->decision +decomissioned->decommissioned +decomposit->decompose +decomposited->decomposed +decompositing->decomposing +decomposits->decomposes +decress->decrees +decribe->describe +decribed->described +decribes->describes +decribing->describing +dectect->detect +defendent->defendant +defendents->defendants +deffensively->defensively +deffine->define +deffined->defined +definance->defiance +definate->definite +definately->definitely +definatly->definitely +definetly->definitely +definining->defining +definit->definite +definitly->definitely +definiton->definition +defintion->definition +degrate->degrade +delagates->delegates +delapidated->dilapidated +delerious->delirious +delevopment->development +deliberatly->deliberately +delusionally->delusively +demenor->demeanor +demographical->demographic +demolision->demolition +demorcracy->democracy +demostration->demonstration +denegrating->denigrating +densly->densely +deparment->department +deparmental->departmental +deparments->departments +dependance->dependence +dependancy->dependency +deram->dram, dream +deriviated->derived +derivitive->derivative +derogitory->derogatory +descendands->descendants +descibed->described +descision->decision +descisions->decisions +descriibes->describes +descripters->descriptors +descripton->description +desctruction->destruction +descuss->discuss +desgined->designed +deside->decide +desigining->designing +desinations->destinations +desintegrated->disintegrated +desintegration->disintegration +desireable->desirable +desitned->destined +desktiop->desktop +desorder->disorder +desoriented->disoriented +desparate->desperate, disparate +despict->depict +despiration->desperation +dessicated->desiccated +dessigned->designed +destablized->destabilized +destory->destroy +detailled->detailed +detatched->detached +deteoriated->deteriorated +deteriate->deteriorate +deterioriating->deteriorating +determinining->determining +detremental->detrimental +devasted->devastated +develope->develop +developement->development +developped->developed +develpment->development +devels->delves +devestated->devastated +devestating->devastating +devide->divide +devided->divided +devistating->devastating +devolopement->development +diablical->diabolical +diamons->diamonds +diaster->disaster +dichtomy->dichotomy +diconnects->disconnects +dicover->discover +dicovered->discovered +dicovering->discovering +dicovers->discovers +dicovery->discovery +dictionarys->dictionaries +dicussed->discussed +didnt->didn't +diea->idea, die +dieing->dying, dyeing +dieties->deities +diety->deity +diferent->different +diferrent->different +differentiatiations->differentiations +differnt->different +difficulity->difficulty +diffrent->different +dificulties->difficulties +dificulty->difficulty +dimenions->dimensions +dimention->dimension +dimentional->dimensional +dimentions->dimensions +dimesnional->dimensional +diminuitive->diminutive +dimunitive->diminutive +diosese->diocese +diphtong->diphthong +diphtongs->diphthongs +diplomancy->diplomacy +dipthong->diphthong +dipthongs->diphthongs +directoty->directory +dirived->derived +disagreeed->disagreed +disapeared->disappeared +disapointing->disappointing +disappearred->disappeared +disaproval->disapproval +disasterous->disastrous +disatisfaction->dissatisfaction +disatisfied->dissatisfied +disatrous->disastrous +discontentment->discontent +discribe->describe +discribed->described +discribes->describes +discribing->describing +disctinction->distinction +disctinctive->distinctive +disemination->dissemination +disenchanged->disenchanted +disiplined->disciplined +disobediance->disobedience +disobediant->disobedient +disolved->dissolved +disover->discover +dispair->despair +disparingly->disparagingly +dispence->dispense +dispenced->dispensed +dispencing->dispensing +dispicable->despicable +dispite->despite +dispostion->disposition +disproportiate->disproportionate +disputandem->disputandum +disricts->districts +dissagreement->disagreement +dissapear->disappear +dissapearance->disappearance +dissapeared->disappeared +dissapearing->disappearing +dissapears->disappears +dissappear->disappear +dissappears->disappears +dissappointed->disappointed +dissarray->disarray +dissobediance->disobedience +dissobediant->disobedient +dissobedience->disobedience +dissobedient->disobedient +distiction->distinction +distingish->distinguish +distingished->distinguished +distingishes->distinguishes +distingishing->distinguishing +distingquished->distinguished +distrubution->distribution +distruction->destruction +distructive->destructive +ditributed->distributed +diversed->diverse, diverged +divice->device +divinition->divination +divison->division +divisons->divisions +dum->dumb +doccument->document +doccumented->documented +doccuments->documents +docrines->doctrines +doctines->doctrines +documenatry->documentary +doens->does +doesnt->doesn't +doign->doing +dominaton->domination +dominent->dominant +dominiant->dominant +donig->doing +dosen't->doesn't +doub->doubt, daub +doulbe->double +dowloads->downloads +dramtic->dramatic +draughtman->draughtsman +Dravadian->Dravidian +dreasm->dreams +driectly->directly +drnik->drink +druming->drumming +drummless->drumless +dupicate->duplicate +durig->during +durring->during +duting->during +dyas->dryas +eahc->each +ealier->earlier +earlies->earliest +earnt->earned +ecclectic->eclectic +eceonomy->economy +ecidious->deciduous +eclispe->eclipse +ecomonic->economic +ect->etc +eearly->early +efel->evil +effeciency->efficiency +effecient->efficient +effeciently->efficiently +efficency->efficiency +efficent->efficient +efficently->efficiently +efford->effort, afford +effords->efforts, affords +effulence->effluence +eigth->eighth, eight +eiter->either +elction->election +electic->eclectic, electric +electon->election, electron +electrial->electrical +electricly->electrically +electricty->electricity +elementay->elementary +eleminated->eliminated +eleminating->eliminating +eles->eels +eletricity->electricity +elicided->elicited +eligable->eligible +elimentary->elementary +ellected->elected +elphant->elephant +embarass->embarrass +embarassed->embarrassed +embarassing->embarrassing +embarassment->embarrassment +embargos->embargoes +embarras->embarrass +embarrased->embarrassed +embarrasing->embarrassing +embarrasment->embarrassment +embezelled->embezzled +emblamatic->emblematic +eminate->emanate +eminated->emanated +emision->emission +emited->emitted +emiting->emitting +emition->emission, emotion +emmediately->immediately +emmigrated->emigrated, immigrated +emminent->eminent, imminent +emminently->eminently +emmisaries->emissaries +emmisarries->emissaries +emmisarry->emissary +emmisary->emissary +emmision->emission +emmisions->emissions +emmited->emitted +emmiting->emitting +emmitted->emitted +emmitting->emitting +emnity->enmity +emperical->empirical +emphaised->emphasised +emphsis->emphasis +emphysyma->emphysema +empirial->empirical, imperial +emporer->emperor +emprisoned->imprisoned +enameld->enameled +enchancement->enhancement +encouraing->encouraging +encryptiion->encryption +encylopedia->encyclopedia +endevors->endeavors +endevour->endeavour +endig->ending +endolithes->endoliths +enduce->induce +ened->need +enforceing->enforcing +engagment->engagement +engeneer->engineer +engeneering->engineering +engieneer->engineer +engieneers->engineers +enlargment->enlargement +enlargments->enlargements +Enlish->English, enlist +enourmous->enormous +enourmously->enormously +ensconsed->ensconced +entaglements->entanglements +enteratinment->entertainment +enthusiatic->enthusiastic +entitity->entity +entitlied->entitled +entrepeneur->entrepreneur +entrepeneurs->entrepreneurs +enviorment->environment +enviormental->environmental +enviormentally->environmentally +enviorments->environments +enviornment->environment +enviornmental->environmental +enviornmentalist->environmentalist +enviornmentally->environmentally +enviornments->environments +enviroment->environment +enviromental->environmental +enviromentalist->environmentalist +enviromentally->environmentally +enviroments->environments +envolutionary->evolutionary +envrionments->environments +enxt->next +epidsodes->episodes +epsiode->episode +equialent->equivalent +equalibrium->equilibrium +equelibrium->equilibrium +equilibium->equilibrium +equilibrum->equilibrium +equiped->equipped +equippment->equipment +equitorial->equatorial +equivelant->equivalent +equivelent->equivalent +equivilant->equivalent +equivilent->equivalent +equivlalent->equivalent +erally->orally, really +eratic->erratic +eratically->erratically +eraticly->erratically +erested->arrested, erected +errupted->erupted +esential->essential +esitmated->estimated +esle->else +especialy->especially +essencial->essential +essense->essence +essentail->essential +essentialy->essentially +essentual->essential +essesital->essential +estabishes->establishes +establising->establishing +ethnocentricm->ethnocentrism +ethose->those, ethos +Europian->European +Europians->Europeans +Eurpean->European +Eurpoean->European +evenhtually->eventually +eventally->eventually +eventhough->even though +eventially->eventually +eventualy->eventually +everthing->everything +everytime->every time +everyting->everything +eveyr->every +evidentally->evidently +exagerate->exaggerate +exagerated->exaggerated +exagerates->exaggerates +exagerating->exaggerating +exagerrate->exaggerate +exagerrated->exaggerated +exagerrates->exaggerates +exagerrating->exaggerating +examinated->examined +exampt->exempt +exapansion->expansion +excact->exact +excange->exchange +excecute->execute +excecuted->executed +excecutes->executes +excecuting->executing +excecution->execution +excedded->exceeded +excelent->excellent +excell->excel +excellance->excellence +excellant->excellent +excells->excels +excercise->exercise +exchanching->exchanging +excisted->existed +exculsivly->exclusively +execising->exercising +exection->execution +exectued->executed +exeedingly->exceedingly +exelent->excellent +exellent->excellent +exemple->example +exept->except +exeptional->exceptional +exerbate->exacerbate +exerbated->exacerbated +exerciese->exercises +exerpt->excerpt +exerpts->excerpts +exersize->exercise +exerternal->external +exhalted->exalted +exhibtion->exhibition +exibition->exhibition +exibitions->exhibitions +exicting->exciting +exinct->extinct +existance->existence +existant->existent +existince->existence +exliled->exiled +exludes->excludes +exmaple->example +exonorate->exonerate +exoskelaton->exoskeleton +expalin->explain +expatriot->expatriate +expeced->expected +expecially->especially +expeditonary->expeditionary +expeiments->experiments +expell->expel +expells->expels +experiance->experience +experianced->experienced +expiditions->expeditions +expierence->experience +explaination->explanation +explaning->explaining +explictly->explicitly +exploititive->exploitative +explotation->exploitation +expropiated->expropriated +expropiation->expropriation +exressed->expressed +extemely->extremely +extention->extension +extentions->extensions +extered->exerted +extermist->extremist +extint->extinct, extant +extradiction->extradition +extraterrestial->extraterrestrial +extraterrestials->extraterrestrials +extravagent->extravagant +extrememly->extremely +extremeophile->extremophile +extremly->extremely +extrordinarily->extraordinarily +extrordinary->extraordinary +eyar->year, eyas +eyars->years, eyas +eyasr->years, eyas +faciliate->facilitate +faciliated->facilitated +faciliates->facilitates +facilites->facilities +facillitate->facilitate +facinated->fascinated +facist->fascist +familes->families +familliar->familiar +famoust->famous +fanatism->fanaticism +Farenheit->Fahrenheit +fatc->fact +faught->fought +favoutrable->favourable +feasable->feasible +Febuary->February +Feburary->February +fedreally->federally +femminist->feminist +feromone->pheromone +fertily->fertility +fianite->finite +fianlly->finally +ficticious->fictitious +fictious->fictitious +fidn->find +fiel->feel, field, file, phial +fiels->feels, fields, files, phials +fiercly->fiercely +fightings->fighting +filiament->filament +fimilies->families +finacial->financial +finaly->finally +financialy->financially +firends->friends +firts->flirts, first +fisionable->fissionable +flamable->flammable +flawess->flawless +fleed->fled, freed +Flemmish->Flemish +florescent->fluorescent +flourescent->fluorescent +flourine->fluorine +fluorish->flourish +flourishment->flourishing +follwoing->following +folowing->following +fomed->formed +fomr->from, form +fonetic->phonetic +fontrier->fontier +foootball->football +forbad->forbade +forbiden->forbidden +foreward->foreword +forfiet->forfeit +forhead->forehead +foriegn->foreign +Formalhaut->Fomalhaut +formallize->formalize +formallized->formalized +formaly->formally, formerly +formelly->formerly +formidible->formidable +formost->foremost +forsaw->foresaw +forseeable->foreseeable +fortelling->foretelling +forunner->forerunner +foucs->focus +foudn->found +fougth->fought +foundaries->foundries +foundary->foundry +Foundland->Newfoundland +fourties->forties +fourty->forty +fouth->fourth +foward->forward +Fransiscan->Franciscan +Fransiscans->Franciscans +freind->friend +freindly->friendly +frequentily->frequently +frome->from +fromed->formed +froniter->frontier +fucntion->function +fucntioning->functioning +fufill->fulfill +fufilled->fulfilled +fulfiled->fulfilled +fullfill->fulfill +fullfilled->fulfilled +fundametal->fundamental +fundametals->fundamentals +funguses->fungi +funtion->function +furuther->further +futher->further +futhermore->furthermore +futhroc->futhark, futhorc +gae->game, Gael, gale +galatic->galactic +Galations->Galatians +gallaxies->galaxies +galvinized->galvanized +Gameboy->Game Boy +ganerate->generate +ganes->games +ganster->gangster +garantee->guarantee +garanteed->guaranteed +garantees->guarantees +gardai->gardaí +garnison->garrison +gauarana->guaraná +gaurantee->guarantee +gauranteed->guaranteed +gaurantees->guarantees +gaurd->guard, gourd +gaurentee->guarantee +gaurenteed->guaranteed +gaurentees->guarantees +geneological->genealogical +geneologies->genealogies +geneology->genealogy +generaly->generally +generatting->generating +genialia->genitalia +geographicial->geographical +geometrician->geometer +geometricians->geometers +gerat->great +Ghandi->Gandhi +glamourous->glamorous +glight->flight +gnawwed->gnawed +godess->goddess +godesses->goddesses +Godounov->Godunov +gogin->going, Gauguin +goign->going +gonig->going +Gothenberg->Gothenburg +Gottleib->Gottlieb +gouvener->governor +govement->government +govenment->government +govenrment->government +goverance->governance +goverment->government +govermental->governmental +governer->governor +governmnet->government +govorment->government +govormental->governmental +govornment->government +gracefull->graceful +graet->great +grafitti->graffiti +gramatically->grammatically +grammaticaly->grammatically +grammer->grammar +grat->great +gratuitious->gratuitous +greatful->grateful +greatfully->gratefully +greif->grief +gridles->griddles +gropu->group +grwo->grow +Guaduloupe->Guadalupe, Guadeloupe +Guadulupe->Guadalupe, Guadeloupe +guage->gauge +guarentee->guarantee +guarenteed->guaranteed +guarentees->guarantees +Guatamala->Guatemala +Guatamalan->Guatemalan +guerrila->guerrilla +guerrilas->guerrillas +guidence->guidance +Guilia->Giulia +Guilio->Giulio +Guiness->Guinness +Guiseppe->Giuseppe +gunanine->guanine +gurantee->guarantee +guranteed->guaranteed +gurantees->guarantees +guttaral->guttural +gutteral->guttural +habaeus->habeas +habeus->habeas +Habsbourg->Habsburg +haemorrage->haemorrhage +haev->have, heave +halarious->hilarious +Hallowean->Hallowe'en, Halloween +halp->help +hapen->happen +hapened->happened +hapening->happening +happend->happened +happended->happened +happenned->happened +harased->harassed +harases->harasses +harasment->harassment +harasments->harassments +harassement->harassment +harras->harass +harrased->harassed +harrases->harasses +harrasing->harassing +harrasment->harassment +harrasments->harassments +harrassed->harassed +harrasses->harassed +harrassing->harassing +harrassment->harassment +harrassments->harassments +hasnt->hasn't +Hatian->Haitian +haviest->heaviest +headquarer->headquarter +headquater->headquarter +headquatered->headquartered +headquaters->headquarters +healthercare->healthcare +heared->heard +heathy->healthy +Heidelburg->Heidelberg +heigher->higher +heirarchy->hierarchy +heiroglyphics->hieroglyphics +helment->helmet +helpfull->helpful +helpped->helped +hemmorhage->hemorrhage +herad->heard, Hera +heridity->heredity +heroe->hero +heros->heroes +hertiage->heritage +hertzs->hertz +hesistant->hesitant +heterogenous->heterogeneous +hieght->height +hierachical->hierarchical +hierachies->hierarchies +hierachy->hierarchy +hierarcical->hierarchical +hierarcy->hierarchy +hieroglph->hieroglyph +hieroglphs->hieroglyphs +higer->higher +higest->highest +higway->highway +hillarious->hilarious +himselv->himself +hinderance->hindrance +hinderence->hindrance +hindrence->hindrance +hipopotamus->hippopotamus +hismelf->himself +histocompatability->histocompatibility +historicians->historians +hitsingles->hit singles +holf->hold +holliday->holiday +homestate->home state +homogeneize->homogenize +homogeneized->homogenized +honory->honorary +horrifing->horrifying +hosited->hoisted +hospitible->hospitable +hounour->honour +housr->hours, house +howver->however +hsitorians->historians +hstory->history +hten->then, hen, the +htere->there, here +htey->they +htikn->think +hting->thing +htink->think +htis->this +humer->humor, humour +humerous->humorous, humerus +huminoid->humanoid +humoural->humoral +humurous->humorous +husban->husband +hvae->have +hvaing->having +hvea->have, heave +hwihc->which +hwile->while +hwole->whole +hydogen->hydrogen +hydropile->hydrophile +hydropilic->hydrophilic +hydropobe->hydrophobe +hydropobic->hydrophobic +hygeine->hygiene +hyjack->hijack +hyjacking->hijacking +hypocracy->hypocrisy +hypocrasy->hypocrisy +hypocricy->hypocrisy +hypocrit->hypocrite +hypocrits->hypocrites +iconclastic->iconoclastic +idaeidae->idea +idaes->ideas +idealogies->ideologies +idealogy->ideology +identicial->identical +identifers->identifiers +ideosyncratic->idiosyncratic +idesa->ideas, ides +idiosyncracy->idiosyncrasy +Ihaca->Ithaca +illegimacy->illegitimacy +illegitmate->illegitimate +illess->illness +illiegal->illegal +illution->illusion +ilness->illness +ilogical->illogical +imagenary->imaginary +imagin->imagine +imaginery->imaginary, imagery +imanent->eminent, imminent +imcomplete->incomplete +imediately->immediately +imense->immense +imigrant->emigrant, immigrant +imigrated->emigrated, immigrated +imigration->emigration, immigration +iminent->eminent, imminent, immanent +immediatley->immediately +immediatly->immediately +immidately->immediately +immidiately->immediately +immitate->imitate +immitated->imitated +immitating->imitating +immitator->imitator +immunosupressant->immunosuppressant +impecabbly->impeccably +impedence->impedance +implamenting->implementing +impliment->implement +implimented->implemented +imploys->employs +importamt->important +impressario->impresario +imprioned->imprisoned +imprisonned->imprisoned +improvision->improvisation +improvments->improvements +inablility->inability +inaccessable->inaccessible +inadiquate->inadequate +inadquate->inadequate +inadvertant->inadvertent +inadvertantly->inadvertently +inagurated->inaugurated +inaguration->inauguration +inappropiate->inappropriate +inaugures->inaugurates +inbalance->imbalance +inbalanced->imbalanced +inbetween->between +incarcirated->incarcerated +incidentially->incidentally +incidently->incidentally +inclreased->increased +includ->include +includng->including +incompatabilities->incompatibilities +incompatability->incompatibility +incompatable->incompatible +incompatablities->incompatibilities +incompatablity->incompatibility +incompatiblities->incompatibilities +incompatiblity->incompatibility +incompetance->incompetence +incompetant->incompetent +incomptable->incompatible +incomptetent->incompetent +inconsistant->inconsistent +incoroporated->incorporated +incorperation->incorporation +incorportaed->incorporated +incorprates->incorporates +incorruptable->incorruptible +incramentally->incrementally +increadible->incredible +incredable->incredible +inctroduce->introduce +inctroduced->introduced +incuding->including +incunabla->incunabula +indefinately->indefinitely +indefineable->undefinable +indefinitly->indefinitely +indentical->identical +indepedantly->independently +indepedence->independence +independance->independence +independant->independent +independantly->independently +independece->independence +independendet->independent +indespensable->indispensable +indespensible->indispensable +indictement->indictment +indigineous->indigenous +indipendence->independence +indipendent->independent +indipendently->independently +indispensible->indispensable +indisputible->indisputable +indisputibly->indisputably +indite->indict +individualy->individually +indpendent->independent +indpendently->independently +indulgue->indulge +indutrial->industrial +indviduals->individuals +inefficienty->inefficiently +inevatible->inevitable +inevitible->inevitable +inevititably->inevitably +infalability->infallibility +infallable->infallible +infectuous->infectious +infered->inferred +infilitrate->infiltrate +infilitrated->infiltrated +infilitration->infiltration +infinit->infinite +inflamation->inflammation +influencial->influential +influented->influenced +infomation->information +informtion->information +infrantryman->infantryman +infrigement->infringement +ingenius->ingenious +ingreediants->ingredients +inhabitans->inhabitants +inherantly->inherently +inheritage->heritage, inheritance +inheritence->inheritance +inital->initial +initally->initially +initation->initiation +initiaitive->initiative +inlcuding->including +inmigrant->immigrant +inmigrants->immigrants +innoculated->inoculated +inocence->innocence +inofficial->unofficial +inot->into +inpeach->impeach +inpending->impending +inpenetrable->impenetrable +inpolite->impolite +inprisonment->imprisonment +inproving->improving +insectiverous->insectivorous +insensative->insensitive +inseperable->inseparable +insistance->insistence +insitution->institution +insitutions->institutions +inspite->in spite, inspire +instade->instead +instatance->instance +institue->institute +instuction->instruction +instuments->instruments +instutionalized->institutionalized +instutions->intuitions +insurence->insurance +intelectual->intellectual +inteligence->intelligence +inteligent->intelligent +intenational->international +intented->intended, indented +intepretation->interpretation +intepretator->interpretor +interational->international +interbread->interbreed, interbred +interchangable->interchangeable +interchangably->interchangeably +intercontinential->intercontinental +intercontinetal->intercontinental +intered->interred, interned +interelated->interrelated +interferance->interference +interfereing->interfering +intergrated->integrated +intergration->integration +interm->interim +internation->international +interpet->interpret +interrim->interim +interrugum->interregnum +intertaining->entertaining +interupt->interrupt +intervines->intervenes +intevene->intervene +intial->initial +intially->initially +intrduced->introduced +intrest->interest +introdued->introduced +intruduced->introduced +intrument->instrument +intrumental->instrumental +intruments->instruments +intrusted->entrusted +intutive->intuitive +intutively->intuitively +inudstry->industry +inumerable->enumerable, innumerable +inventer->inventor +invertibrates->invertebrates +investingate->investigate +involvment->involvement +irelevent->irrelevant +iresistable->irresistible +iresistably->irresistibly +iresistible->irresistible +iresistibly->irresistibly +iritable->irritable +iritated->irritated +ironicly->ironically +irregardless->regardless +irrelevent->irrelevant +irreplacable->irreplaceable +irresistable->irresistible +irresistably->irresistibly +isnt->isn't +Israelies->Israelis +issueing->issuing +itnroduced->introduced +iunior->junior +iwll->will +iwth->with +Janurary->January +Januray->January +Japanes->Japanese +jaques->jacques +jeapardy->jeopardy +jewllery->jewellery +Johanine->Johannine +jorunal->journal +Jospeh->Joseph +jouney->journey +journied->journeyed +journies->journeys +jstu->just +jsut->just +Juadaism->Judaism +Juadism->Judaism +judical->judicial +judisuary->judiciary +juducial->judicial +juristiction->jurisdiction +juristictions->jurisdictions +kindergarden->kindergarten +klenex->kleenex +knifes->knives +knive->knife +knowlege->knowledge +knowlegeable->knowledgeable +knwo->know +knwos->knows +konw->know +konws->knows +kwno->know +labatory->lavatory, laboratory +labled->labelled, labeled +labratory->laboratory +laguage->language +laguages->languages +larg->large +largst->largest +larrry->larry +lastr->last +lattitude->latitude +launchs->launch, launches +launhed->launched +lavae->larvae +layed->laid +lazyness->laziness +leage->league +leanr->lean, learn, leaner +leathal->lethal +lefted->left +legitamate->legitimate +legitmate->legitimate +leibnitz->leibniz +lenght->length +leran->learn +lerans->learns +leutenant->lieutenant +levetate->levitate +levetated->levitated +levetates->levitates +levetating->levitating +levle->level +liasion->liaison +liason->liaison +liasons->liaisons +libary->library +libell->libel +libguistic->linguistic +libguistics->linguistics +libitarianisn->libertarianism +lible->libel, liable +lieing->lying +liek->like +liekd->liked +liesure->leisure +lieuenant->lieutenant +lieved->lived +liftime->lifetime +lightyear->light year +lightyears->light years +likelyhood->likelihood +linnaena->linnaean +lippizaner->lipizzaner +liquify->liquefy +liscense->license, licence +lisence->license, licence +lisense->license, licence +listners->listeners +litature->literature +literaly->literally +literture->literature +littel->little +litterally->literally +liuke->like +livley->lively +lmits->limits +loev->love +lonelyness->loneliness +longitudonal->longitudinal +lonley->lonely +lonly->lonely, only +loosing->losing +lotharingen->lothringen +lsat->last +lukid->likud +lveo->love +lvoe->love +Lybia->Libya +maching->machine, marching, matching +mackeral->mackerel +magasine->magazine +magizine->magazine +magisine->magazine +magincian->magician +magnificient->magnificent +magolia->magnolia +mailny->mainly +maintainance->maintenance +maintainence->maintenance +maintance->maintenance +maintenence->maintenance +maintinaing->maintaining +maintioned->mentioned +majoroty->majority +maked->marked, made +makse->makes +Malcom->Malcolm +maltesian->Maltese +mamal->mammal +mamalian->mammalian +managable->manageable, manageably +managment->management +maneouvre->manoeuvre +maneouvred->manoeuvred +maneouvres->manoeuvres +maneouvring->manoeuvring +manisfestations->manifestations +manoeuverability->maneuverability +manouver->maneuver, manoeuvre +manouverability->maneuverability, manoeuvrability, manoeuverability +manouverable->maneuverable, manoeuvrable +manouvers->maneuvers, manoeuvres +mantained->maintained +manuever->maneuver, manoeuvre +manuevers->maneuvers, manoeuvres +manufacturedd->manufactured +manufature->manufacture +manufatured->manufactured +manufaturing->manufacturing +manuver->maneuver +mariage->marriage +marjority->majority +markes->marks +marketting->marketing +marmelade->marmalade +marrage->marriage +marraige->marriage +marrtyred->martyred +marryied->married +Massachussets->Massachusetts +Massachussetts->Massachusetts +massmedia->mass media +masterbation->masturbation +mataphysical->metaphysical +materalists->materialist +mathamatics->mathematics +mathematican->mathematician +mathematicas->mathematics +matheticians->mathematicians +mathmatically->mathematically +mathmatician->mathematician +mathmaticians->mathematicians +mccarthyst->mccarthyist +mchanics->mechanics +meaninng->meaning +mear->wear, mere, mare +mechandise->merchandise +medacine->medicine +medeival->medieval +medevial->medieval +mediciney->mediciny +medievel->medieval +mediterainnean->mediterranean +Mediteranean->Mediterranean +meerkrat->meerkat +melieux->milieux +membranaphone->membranophone +memeber->member +menally->mentally +meranda->veranda, Miranda +mercentile->mercantile +messanger->messenger +messenging->messaging +metalic->metallic +metalurgic->metallurgic +metalurgical->metallurgical +metalurgy->metallurgy +metamorphysis->metamorphosis +metaphoricial->metaphorical +meterologist->meteorologist +meterology->meteorology +methaphor->metaphor +methaphors->metaphors +Michagan->Michigan +micoscopy->microscopy +midwifes->midwives +mileau->milieu +milennia->millennia +milennium->millennium +mileu->milieu +miliary->military +miligram->milligram +milion->million +miliraty->military +millenia->millennia +millenial->millennial +millenialism->millennialism +millenium->millennium +millepede->millipede +millioniare->millionaire +millitant->militant +millitary->military +millon->million +miltary->military +minature->miniature +minerial->mineral +ministery->ministry +minsitry->ministry +minstries->ministries +minstry->ministry +minumum->minimum +mirrorred->mirrored +miscelaneous->miscellaneous +miscellanious->miscellaneous +miscellanous->miscellaneous +mischeivous->mischievous +mischevious->mischievous +mischievious->mischievous +misdameanor->misdemeanor +misdameanors->misdemeanors +misdemenor->misdemeanor +misdemenors->misdemeanors +misfourtunes->misfortunes +misile->missile +Misouri->Missouri +mispell->misspell +mispelled->misspelled +mispelling->misspelling +missen->mizzen +Missisipi->Mississippi +Missisippi->Mississippi +missle->missile +missonary->missionary +misterious->mysterious +mistery->mystery +misteryous->mysterious +mkae->make +mkaes->makes +mkaing->making +mkea->make +moderm->modem +modle->model +moent->moment +moeny->money +mohammedans->muslims +moleclues->molecules +momento->memento +monestaries->monasteries +monestary->monastery, monetary +monickers->monikers +monolite->monolithic +Monserrat->Montserrat +montains->mountains +montanous->mountainous +Montnana->Montana +monts->months +montypic->monotypic +moreso->more, more so +morgage->mortgage +Morisette->Morissette +Morrisette->Morissette +morroccan->moroccan +morrocco->morocco +morroco->morocco +mortage->mortgage +mosture->moisture +motiviated->motivated +mounth->month +movei->movie +movment->movement +mroe->more +mucuous->mucous +muder->murder +mudering->murdering +muhammadan->muslim +multicultralism->multiculturalism +multipled->multiplied +multiplers->multipliers +munbers->numbers +muncipalities->municipalities +muncipality->municipality +munnicipality->municipality +muscels->mussels, muscles +muscial->musical +muscician->musician +muscicians->musicians +mutiliated->mutilated +myraid->myriad +mysef->myself +mysogynist->misogynist +mysogyny->misogyny +mysterous->mysterious +Mythraic->Mithraic +naieve->naive +Naploeon->Napoleon +Napolean->Napoleon +Napoleonian->Napoleonic +naturaly->naturally +naturely->naturally +naturual->natural +naturually->naturally +Nazereth->Nazareth +neccesarily->necessarily +neccesary->necessary +neccessarily->necessarily +neccessary->necessary +neccessities->necessities +necesarily->necessarily +necesary->necessary +necessiate->necessitate +neglible->negligible +negligable->negligible +negociate->negotiate +negociation->negotiation +negociations->negotiations +negotation->negotiation +neice->niece, nice +neigborhood->neighborhood +neigbour->neighbour, neighbor +neigbourhood->neighbourhood +neigbouring->neighbouring, neighboring +neigbours->neighbours, neighbors +neolitic->neolithic +nessasarily->necessarily +nessecary->necessary +nestin->nesting +neverthless->nevertheless +newletters->newsletters +nickle->nickel +nightime->nighttime +nineth->ninth +ninteenth->nineteenth +ninties->1990s +ninty->ninety +nkow->know +nkwo->know +nmae->name +noncombatents->noncombatants +nonsence->nonsense +nontheless->nonetheless +noone->no one +norhern->northern +northen->northern +northereastern->northeastern +notabley->notably +noteable->notable +noteably->notably +noteriety->notoriety +noth->north +nothern->northern +noticable->noticeable +noticably->noticeably +noticeing->noticing +noticible->noticeable +notwhithstanding->notwithstanding +noveau->nouveau +Novermber->November +nowdays->nowadays +nowe->now +nto->not +nucular->nuclear +nuculear->nuclear +nuisanse->nuisance +Nullabour->Nullarbor +numberous->numerous +Nuremburg->Nuremberg +nusance->nuisance +nutritent->nutrient +nutritents->nutrients +nuturing->nurturing +obediance->obedience +obediant->obedient +obession->obsession +obssessed->obsessed +obstacal->obstacle +obstancles->obstacles +obstruced->obstructed +ocasion->occasion +ocasional->occasional +ocasionally->occasionally +ocasionaly->occasionally +ocasioned->occasioned +ocasions->occasions +ocassion->occasion +ocassional->occasional +ocassionally->occasionally +ocassionaly->occasionally +ocassioned->occasioned +ocassions->occasions +occaison->occasion +occassion->occasion +occassional->occasional +occassionally->occasionally +occassionaly->occasionally +occassioned->occasioned +occassions->occasions +occationally->occasionally +occour->occur +occurance->occurrence +occurances->occurrences +occured->occurred +occurence->occurrence +occurences->occurrences +occuring->occurring +occurr->occur +occurrance->occurrence +occurrances->occurrences +octohedra->octahedra +octohedral->octahedral +octohedron->octahedron +ocuntries->countries +ocuntry->country +ocurr->occur +ocurrance->occurrence +ocurred->occurred +ocurrence->occurrence +offcers->officers +offcially->officially +offereings->offerings +offical->official +offically->officially +officals->officials +officaly->officially +officialy->officially +offred->offered +oftenly->often +oging->going, ogling +olther->other +omision->omission +omited->omitted +omiting->omitting +omlette->omelette +ommision->omission +ommited->omitted +ommiting->omitting +ommitted->omitted +ommitting->omitting +omniverous->omnivorous +omniverously->omnivorously +omre->more +onot->note, not +onyl->only +openess->openness +oponent->opponent +oportunity->opportunity +opose->oppose +oposite->opposite +oposition->opposition +oppenly->openly +oppinion->opinion +opponant->opponent +oppononent->opponent +oppositition->opposition +oppossed->opposed +opprotunity->opportunity +opression->oppression +opressive->oppressive +opthalmic->ophthalmic +opthalmologist->ophthalmologist +opthalmology->ophthalmology +opthamologist->ophthalmologist +optmizations->optimizations +optomism->optimism +orded->ordered +organim->organism +organistion->organisation +organiztion->organization +orgin->origin, organ +orginal->original +orginally->originally +orginize->organise +oridinarily->ordinarily +origanaly->originally +originall->original, originally +originaly->originally +originially->originally +originnally->originally +origional->original +orignally->originally +orignially->originally +otehr->other +otherwordly->otherworldly +oublisher->publisher +ouevre->oeuvre +oustanding->outstanding +overshaddowed->overshadowed +overthere->over there +overwelming->overwhelming +overwheliming->overwhelming +owrk->work +owudl->would +oxigen->oxygen +oximoron->oxymoron +paide->paid +paitience->patience +palce->place, palace +paleolitic->paleolithic +paliamentarian->parliamentarian +Palistian->Palestinian +Palistinian->Palestinian +Palistinians->Palestinians +pallete->palette +pamflet->pamphlet +pamplet->pamphlet +pantomine->pantomime +Papanicalou->Papanicolaou +paralel->parallel +paralell->parallel +paralelly->parallelly +paralely->parallelly +parallely->parallelly +paranthesis->parenthesis +paraphenalia->paraphernalia +parellels->parallels +parisitic->parasitic +parituclar->particular +parliment->parliament +parrakeets->parakeets +parralel->parallel +parrallel->parallel +parrallell->parallel +parrallelly->parallelly +parrallely->parallelly +partialy->partially +particually->particularly +particualr->particular +particuarly->particularly +particularily->particularly +particulary->particularly +pary->party +pased->passed +pasengers->passengers +passerbys->passersby +pasttime->pastime +pastural->pastoral +paticular->particular +pattented->patented +pavillion->pavilion +payed->paid +pblisher->publisher +pbulisher->publisher +peacefuland->peaceful and +peageant->pageant +peaple->people +peaples->peoples +peculure->peculiar +pedestrain->pedestrian +peformed->performed +peice->piece +Peloponnes->Peloponnesus +penatly->penalty +penerator->penetrator +penisula->peninsula +penisular->peninsular +penninsula->peninsula +penninsular->peninsular +pennisula->peninsula +Pennyslvania->Pennsylvania +pensle->pencil +pensinula->peninsula +peom->poem +peoms->poems +peopel->people +peopels->peoples +peotry->poetry +perade->parade +percepted->perceived +percieve->perceive +percieved->perceived +perenially->perennially +peretrator->perpetrator +perfomance->performance +perfomers->performers +performence->performance +performes->performed, performs +perhasp->perhaps +perheaps->perhaps +perhpas->perhaps +peripathetic->peripatetic +peristent->persistent +perjery->perjury +perjorative->pejorative +permanant->permanent +permenant->permanent +permenantly->permanently +permissable->permissible +perogative->prerogative +peronal->personal +perpertrated->perpetrated +perosnality->personality +perphas->perhaps +perpindicular->perpendicular +persan->person +perseverence->perseverance +persistance->persistence +persistant->persistent +personel->personnel, personal +personell->personnel +personnell->personnel +persuded->persuaded +persue->pursue +persued->pursued +persuing->pursuing +persuit->pursuit +persuits->pursuits +pertubation->perturbation +pertubations->perturbations +pessiary->pessary +petetion->petition +Pharoah->Pharaoh +phenomenom->phenomenon +phenomenonal->phenomenal +phenomenonly->phenomenally +phenomonenon->phenomenon +phenomonon->phenomenon +phenonmena->phenomena +Philipines->Philippines +philisopher->philosopher +philisophical->philosophical +philisophy->philosophy +Phillipine->Philippine +Phillipines->Philippines +Phillippines->Philippines +phillosophically->philosophically +philospher->philosopher +philosphies->philosophies +philosphy->philosophy +Phonecian->Phoenecian +phongraph->phonograph +phylosophical->philosophical +physicaly->physically +piblisher->publisher +pich->pitch +pilgrimmage->pilgrimage +pilgrimmages->pilgrimages +pinapple->pineapple +pinnaple->pineapple +pinoneered->pioneered +plagarism->plagiarism +planation->plantation +planed->planned +plantiff->plaintiff +plateu->plateau +plausable->plausible +playright->playwright +playwrite->playwright +playwrites->playwrights +pleasent->pleasant +plebicite->plebiscite +plesant->pleasant +poenis->penis +poeoples->peoples +poety->poetry +poisin->poison +polical->political +polinator->pollinator +polinators->pollinators +politican->politician +politicans->politicians +poltical->political +polute->pollute +poluted->polluted +polutes->pollutes +poluting->polluting +polution->pollution +polyphonyic->polyphonic +polysaccaride->polysaccharide +polysaccharid->polysaccharide +pomegranite->pomegranate +pomotion->promotion +poportional->proportional +popoulation->population +popularaty->popularity +populare->popular +populer->popular +porshan->portion +porshon->portion +portait->portrait +portayed->portrayed +portraing->portraying +Portugese->Portuguese +portuguease->portuguese +portugues->Portuguese +posess->possess +posessed->possessed +posesses->possesses +posessing->possessing +posession->possession +posessions->possessions +posion->poison +positon->position, positron +possable->possible +possably->possibly +posseses->possesses +possesing->possessing +possesion->possession +possessess->possesses +possibile->possible +possibilty->possibility +possiblility->possibility +possiblilty->possibility +possiblities->possibilities +possiblity->possibility +possition->position +Postdam->Potsdam +posthomous->posthumous +postion->position +postive->positive +potatos->potatoes +potrait->portrait +potrayed->portrayed +poulations->populations +poverful->powerful +poweful->powerful +powerfull->powerful +ppublisher->publisher +practial->practical +practially->practically +practicaly->practically +practicioner->practitioner +practicioners->practitioners +practicly->practically +practioner->practitioner +practioners->practitioners +prairy->prairie +prarie->prairie +praries->prairies +pratice->practice +preample->preamble +precedessor->predecessor +preceed->precede +preceeded->preceded +preceeding->preceding +preceeds->precedes +precentage->percentage +precice->precise +precisly->precisely +precurser->precursor +predecesors->predecessors +predicatble->predictable +predicitons->predictions +predomiantly->predominately +prefered->preferred +prefering->preferring +preferrably->preferably +pregancies->pregnancies +preiod->period +preliferation->proliferation +premeire->premiere +premeired->premiered +premillenial->premillennial +preminence->preeminence +premission->permission +Premonasterians->Premonstratensians +preocupation->preoccupation +prepair->prepare +prepartion->preparation +prepatory->preparatory +preperation->preparation +preperations->preparations +preriod->period +presedential->presidential +presense->presence +presidenital->presidential +presidental->presidential +presitgious->prestigious +prespective->perspective +prestigeous->prestigious +prestigous->prestigious +presumabely->presumably +presumibly->presumably +pretection->protection +prevelant->prevalent +preverse->perverse +previvous->previous +pricipal->principal +priciple->principle +priestood->priesthood +primarly->primarily +primative->primitive +primatively->primitively +primatives->primitives +primordal->primordial +principlaity->principality +principaly->principality +principial->principal +principly->principally +prinicipal->principal +privalege->privilege +privaleges->privileges +priveledges->privileges +privelege->privilege +priveleged->privileged +priveleges->privileges +privelige->privilege +priveliged->privileged +priveliges->privileges +privelleges->privileges +privilage->privilege +priviledge->privilege +priviledges->privileges +privledge->privilege +privte->private +probabilaty->probability +probablistic->probabilistic +probablly->probably +probalibity->probability +probaly->probably +probelm->problem +proccess->process +proccessing->processing +procede->proceed, precede +proceded->proceeded, preceded +procedes->proceeds, precedes +procedger->procedure +proceding->proceeding, preceding +procedings->proceedings +proceedure->procedure +proces->process +processer->processor +proclaimation->proclamation +proclamed->proclaimed +proclaming->proclaiming +proclomation->proclamation +profesion->profusion, profession +profesor->professor +professer->professor +proffesed->professed +proffesion->profession +proffesional->professional +proffesor->professor +profilic->prolific +progessed->progressed +progidy->prodigy +programable->programmable +progrom->pogrom, program +progroms->pogroms, programs +prohabition->prohibition +prologomena->prolegomena +prominance->prominence +prominant->prominent +prominantly->prominently +prominately->prominently, predominately +promiscous->promiscuous +promotted->promoted +pronomial->pronominal +pronouced->pronounced +pronounched->pronounced +pronounciation->pronunciation +proove->prove +prooved->proved +prophacy->prophecy +propietary->proprietary +propmted->prompted +propoganda->propaganda +propogate->propagate +propogates->propagates +propogation->propagation +propostion->proposition +propotions->proportions +propper->proper +propperly->properly +proprietory->proprietary +proseletyzing->proselytizing +protaganist->protagonist +protaganists->protagonists +protocal->protocol +protoganist->protagonist +protrayed->portrayed +protruberance->protuberance +protruberances->protuberances +prouncements->pronouncements +provacative->provocative +provded->provided +provicial->provincial +provinicial->provincial +provisiosn->provision +provisonal->provisional +proximty->proximity +pseudononymous->pseudonymous +pseudonyn->pseudonym +psuedo->pseudo +psycology->psychology +psyhic->psychic +pubilsher->publisher +pubisher->publisher +publiaher->publisher +publically->publicly +publicaly->publicly +publicher->publisher +publihser->publisher +publisehr->publisher +publiser->publisher +publisger->publisher +publisheed->published +publisherr->publisher +publishher->publisher +publishor->publisher +publishre->publisher +publissher->publisher +publlisher->publisher +publsiher->publisher +publusher->publisher +puchasing->purchasing +Pucini->Puccini +Puertorrican->Puerto Rican +Puertorricans->Puerto Ricans +pulisher->publisher +pumkin->pumpkin +puplisher->publisher +puritannical->puritanical +purposedly->purposely +purpotedly->purportedly +pursuade->persuade +pursuaded->persuaded +pursuades->persuades +pususading->persuading +puting->putting +pwoer->power +pyscic->psychic +qtuie->quite, quiet +quantaty->quantity +quantitiy->quantity +quarantaine->quarantine +Queenland->Queensland +questonable->questionable +quicklyu->quickly +quinessential->quintessential +quitted->quit +quizes->quizzes +qutie->quite, quiet +rabinnical->rabbinical +racaus->raucous +radiactive->radioactive +radify->ratify +raelly->really +rarified->rarefied +reaccurring->recurring +reacing->reaching +reacll->recall +readmition->readmission +realitvely->relatively +realsitic->realistic +realtions->relations +realy->really +realyl->really +reasearch->research +rebiulding->rebuilding +rebllions->rebellions +rebounce->rebound +reccomend->recommend +reccomendations->recommendations +reccomended->recommended +reccomending->recommending +reccommend->recommend +reccommended->recommended +reccommending->recommending +reccuring->recurring +receeded->receded +receeding->receding +receivedfrom->received from +recepient->recipient +recepients->recipients +receving->receiving +rechargable->rechargeable +reched->reached +recide->reside +recided->resided +recident->resident +recidents->residents +reciding->residing +reciepents->recipients +reciept->receipt +recieve->receive +recieved->received +reciever->receiver +recievers->receivers +recieves->receives +recieving->receiving +recipiant->recipient +recipiants->recipients +recived->received +recivership->receivership +recogise->recognise +recogize->recognize +recomend->recommend +recomended->recommended +recomending->recommending +recomends->recommends +recommedations->recommendations +recompence->recompense +reconaissance->reconnaissance +reconcilation->reconciliation +reconized->recognized +reconnaisance->reconnaissance +reconnaissence->reconnaissance +recontructed->reconstructed +recordproducer->record producer +recquired->required +recrational->recreational +recrod->record +recuiting->recruiting +recuring->recurring +recurrance->recurrence +rediculous->ridiculous +reedeming->redeeming +reenforced->reinforced +refect->reflect +refedendum->referendum +referal->referral +referece->reference +refereces->references +refered->referred +referemce->reference +referemces->references +referencs->references +referenece->reference +refereneced->referenced +refereneces->references +referiang->referring +refering->referring +refernce->reference, references +refernces->references +referrence->reference +referrences->references +referrs->refers +reffered->referred +refference->reference +reffering->referring +refrence->reference +refrences->references +refrers->refers +refridgeration->refrigeration +refridgerator->refrigerator +refromist->reformist +refusla->refusal +regardes->regards +regluar->regular +reguarly->regularly +regulaion->regulation +regulaotrs->regulators +regularily->regularly +rehersal->rehearsal +reicarnation->reincarnation +reigining->reigning +reknown->renown +reknowned->renowned +rela->real +relaly->really +relatiopnship->relationship +relativly->relatively +relected->reelected +releive->relieve +releived->relieved +releiver->reliever +releses->releases +relevence->relevance +relevent->relevant +reliablity->reliability +relient->reliant +religeous->religious +religous->religious +religously->religiously +relinqushment->relinquishment +relitavely->relatively +relized->realised, realized +relpacement->replacement +remaing->remaining +remeber->remember +rememberable->memorable +rememberance->remembrance +remembrence->remembrance +remenant->remnant +remenicent->reminiscent +reminent->remnant +reminescent->reminiscent +reminscent->reminiscent +reminsicent->reminiscent +rendevous->rendezvous +rendezous->rendezvous +renedered->rende +renewl->renewal +rennovate->renovate +rennovated->renovated +rennovating->renovating +rennovation->renovation +rentors->renters +reoccurrence->recurrence +reorganision->reorganisation +repatition->repetition, repartition +repblic->republic +repblican->republican +repblicans->republicans +repblics->republics +repectively->respectively +repeition->repetition +repentence->repentance +repentent->repentant +repeteadly->repeatedly +repetion->repetition +repid->rapid +reponse->response +reponsible->responsible +reportadly->reportedly +represantative->representative +representive->representative +representives->representatives +reproducable->reproducible +reprtoire->repertoire +repsectively->respectively +reptition->repetition +repubic->republic +repubican->republican +repubicans->republicans +repubics->republics +republi->republic +republian->republican +republians->republicans +republis->republics +repulic->republic +repulican->republican +repulicans->republicans +repulics->republics +requirment->requirement +requred->required +resaurant->restaurant +resembelance->resemblance +resembes->resembles +resemblence->resemblance +resevoir->reservoir +residental->residential +resignement->resignment +resistable->resistible +resistence->resistance +resistent->resistant +respectivly->respectively +responce->response +responibilities->responsibilities +responisble->responsible +responnsibilty->responsibility +responsability->responsibility +responsibile->responsible +responsibilites->responsibilities +responsiblities->responsibilities +responsiblity->responsibility +ressemblance->resemblance +ressemble->resemble +ressembled->resembled +ressemblence->resemblance +ressembling->resembling +resssurecting->resurrecting +ressurect->resurrect +ressurected->resurrected +ressurection->resurrection +ressurrection->resurrection +restarant->restaurant +restarants->restaurants +restaraunt->restaurant +restaraunteur->restaurateur +restaraunteurs->restaurateurs +restaraunts->restaurants +restauranteurs->restaurateurs +restauration->restoration +restauraunt->restaurant +resteraunt->restaurant +resteraunts->restaurants +resticted->restricted +restraunt->restraint, restaurant +resturant->restaurant +resturants->restaurants +resturaunt->restaurant +resturaunts->restaurants +resurecting->resurrecting +retalitated->retaliated +retalitation->retaliation +retreive->retrieve +returnd->returned +revaluated->reevaluated +reveiw->review +reveral->reversal +reversable->reversible +revolutionar->revolutionary +rewitten->rewritten +rewriet->rewrite +rference->reference +rferences->references +rhymme->rhyme +rhythem->rhythm +rhythim->rhythm +rhytmic->rhythmic +rigeur->rigueur, rigour, rigor +rigourous->rigorous +rininging->ringing +rised->raised, rose +Rockerfeller->Rockefeller +rococco->rococo +rocord->record +roomate->roommate +rougly->roughly +rucuperate->recuperate +rudimentatry->rudimentary +rulle->rule +runing->running +runnung->running +russina->Russian +Russion->Russian +rwite->write +rythem->rhythm +rythim->rhythm +rythm->rhythm +rythmic->rhythmic +rythyms->rhythms +sacrafice->sacrifice +sacreligious->sacrilegious +Sacremento->Sacramento +sacrifical->sacrificial +saftey->safety +safty->safety +salery->salary +sanctionning->sanctioning +sandwhich->sandwich +Sanhedrim->Sanhedrin +santioned->sanctioned +sargant->sergeant +sargeant->sergeant +sasy->says, sassy +satelite->satellite +satelites->satellites +Saterday->Saturday +Saterdays->Saturdays +satisfactority->satisfactorily +satric->satiric +satrical->satirical +satrically->satirically +sattelite->satellite +sattelites->satellites +saught->sought +saveing->saving +saxaphone->saxophone +scaleable->scalable +scandanavia->Scandinavia +scaricity->scarcity +scavanged->scavenged +schedual->schedule +scholarhip->scholarship +scholarstic->scholastic, scholarly +scientfic->scientific +scientifc->scientific +scientis->scientist +scince->science +scinece->science +scirpt->script +scoll->scroll +screenwrighter->screenwriter +scrutinity->scrutiny +scuptures->sculptures +seach->search +seached->searched +seaches->searches +secceeded->seceded, succeeded +seceed->succeed, secede +seceeded->succeeded, seceded +secratary->secretary +secretery->secretary +sedereal->sidereal +seeked->sought +segementation->segmentation +seguoys->segues +seige->siege +seing->seeing +seinor->senior +seldomly->seldom +senarios->scenarios +sence->sense, since +senstive->sensitive +sensure->censure +seperate->separate +seperated->separated +seperately->separately +seperates->separates +seperating->separating +seperation->separation +seperatism->separatism +seperatist->separatist +sepina->subpoena +sepulchure->sepulchre, sepulcher +sepulcre->sepulchre, sepulcher +sergent->sergeant +settelement->settlement +settlment->settlement +severeal->several +severley->severely +severly->severely +sevice->service +shadasloo->shadaloo +shaddow->shadow +shadoloo->shadaloo +shamen->shaman, shamans +sheat->sheath, sheet, cheat +sheild->shield +sherif->sheriff +shineing->shining +shiped->shipped +shiping->shipping +shopkeeepers->shopkeepers +shorly->shortly +shortwhile->short while +shoudl->should +shoudln->should, shouldn't +shouldnt->should not +shreak->shriek +shrinked->shrunk +sicne->since +sideral->sidereal +sieze->seize, size +siezed->seized, sized +siezing->seizing, sizing +siezure->seizure +siezures->seizures +siginificant->significant +signficant->significant +signficiant->significant +signfies->signifies +signifantly->significantly +significently->significantly +signifigant->significant +signifigantly->significantly +signitories->signatories +signitory->signatory +similarily->similarly +similiar->similar +similiarity->similarity +similiarly->similarly +simmilar->similar +simpley->simply +simplier->simpler +simultanous->simultaneous +simultanously->simultaneously +sincerley->sincerely +singsog->singsong +sinse->sines, since +Sionist->Zionist +Sionists->Zionists +Sixtin->Sistine +Skagerak->Skagerrak +skateing->skating +slaugterhouses->slaughterhouses +slighly->slightly +slippy->slippery +slowy->slowly +smae->same +smealting->smelting +smoe->some +sneeks->sneaks +snese->sneeze +socalism->socialism +socities->societies +soem->some +sofware->software +sohw->show +soilders->soldiers +solatary->solitary +soley->solely +soliders->soldiers +soliliquy->soliloquy +soluable->soluble +somene->someone +somtimes->sometimes +somwhere->somewhere +sophicated->sophisticated +sophmore->sophomore +sorceror->sorcerer +sorrounding->surrounding +sotry->story +sotyr->satyr, story +soudn->sound +soudns->sounds +sould->could, should, sold, soul +sountrack->soundtrack +sourth->south +sourthern->southern +souvenier->souvenir +souveniers->souvenirs +soveits->soviets +sovereignity->sovereignty +soverign->sovereign +soverignity->sovereignty +soverignty->sovereignty +spainish->Spanish +speach->speech +specfic->specific +speciallized->specialised, specialized +specif->specific, specify +specifiying->specifying +speciman->specimen +spectauclar->spectacular +spectaulars->spectaculars +spects->aspects, expects +spectum->spectrum +speices->species +spendour->splendour +spermatozoan->spermatozoon +spoace->space +sponser->sponsor +sponsered->sponsored +spontanous->spontaneous +sponzored->sponsored +spoonfulls->spoonfuls +sppeches->speeches +spreaded->spread +sprech->speech +spred->spread +spriritual->spiritual +spritual->spiritual +sqaure->square +stablility->stability +stainlees->stainless +staion->station +standars->standards +stange->strange +startegic->strategic +startegies->strategies +startegy->strategy +stateman->statesman +statememts->statements +statment->statement +steriods->steroids +sterotypes->stereotypes +stilus->stylus +stingent->stringent +stiring->stirring +stirrs->stirs +stlye->style +stomache->stomach +stong->strong +stopry->story +storeis->stories +storise->stories +stornegst->strongest +stoyr->story +stpo->stop +stradegies->strategies +stradegy->strategy +strat->start, strata +stratagically->strategically +streemlining->streamlining +stregth->strength +strenghen->strengthen +strenghened->strengthened +strenghening->strengthening +strenght->strength +strenghten->strengthen +strenghtened->strengthened +strenghtening->strengthening +strengtened->strengthened +strenous->strenuous +strictist->strictest +strikely->strikingly +strnad->strand +stroy->story, destroy +structual->structural +stubborness->stubbornness +stucture->structure +stuctured->structured +studdy->study +studing->studying +stuggling->struggling +sturcture->structure +subcatagories->subcategories +subcatagory->subcategory +subconsiously->subconsciously +subdivisio->subdivision +subjudgation->subjugation +submachne->submachine +subpecies->subspecies +subsidary->subsidiary +subsiduary->subsidiary +subsquent->subsequent +subsquently->subsequently +substace->substance +substancial->substantial +substatial->substantial +substituded->substituted +substract->subtract +substracted->subtracted +substracting->subtracting +substraction->subtraction +substracts->subtracts +subtances->substances +subterranian->subterranean +suburburban->suburban +succceeded->succeeded +succcesses->successes +succedded->succeeded +succeded->succeeded +succeds->succeeds +succesful->successful +succesfully->successfully +succesfuly->successfully +succesion->succession +succesive->successive +successfull->successful +successully->successfully +succsess->success +succsessfull->successful +suceed->succeed +suceeded->succeeded +suceeding->succeeding +suceeds->succeeds +sucesful->successful +sucesfully->successfully +sucesfuly->successfully +sucesion->succession +sucess->success +sucesses->successes +sucessful->successful +sucessfull->successful +sucessfully->successfully +sucessfuly->successfully +sucession->succession +sucessive->successive +sucessor->successor +sucessot->successor +sucide->suicide +sucidial->suicidal +sudent->student +sudents->students +sufferage->suffrage +sufferred->suffered +sufferring->suffering +sufficent->sufficient +sufficently->sufficiently +sumary->summary +sunglases->sunglasses +suop->soup +superceeded->superseded +superintendant->superintendent +suphisticated->sophisticated +suplimented->supplemented +supose->suppose +suposed->supposed +suposedly->supposedly +suposes->supposes +suposing->supposing +supplamented->supplemented +suppliementing->supplementing +suppoed->supposed +supposingly->supposedly +suppy->supply +suprassing->surpassing +supress->suppress +supressed->suppressed +supresses->suppresses +supressing->suppressing +suprise->surprise +suprised->surprised +suprising->surprising +suprisingly->surprisingly +suprize->surprise +suprized->surprised +suprizing->surprising +suprizingly->surprisingly +surfce->surface +surley->surly, surely +suround->surround +surounded->surrounded +surounding->surrounding +suroundings->surroundings +surounds->surrounds +surplanted->supplanted +surpress->suppress +surpressed->suppressed +surprize->surprise +surprized->surprised +surprizing->surprising +surprizingly->surprisingly +surrended->surrounded, surrendered +surrepetitious->surreptitious +surrepetitiously->surreptitiously +surreptious->surreptitious +surreptiously->surreptitiously +surronded->surrounded +surrouded->surrounded +surrouding->surrounding +surrundering->surrendering +surveilence->surveillance +surveill->surveil +surveyer->surveyor +surviver->survivor +survivers->survivors +survivied->survived +suseptable->susceptible +suseptible->susceptible +suspention->suspension +swaer->swear +swaers->swears +swepth->swept +swiming->swimming +syas->says +symetrical->symmetrical +symetrically->symmetrically +symetry->symmetry +symettric->symmetric +symmetral->symmetric +symmetricaly->symmetrically +synagouge->synagogue +syncronization->synchronization +synonomous->synonymous +synonymns->synonyms +synphony->symphony +syphyllis->syphilis +sypmtoms->symptoms +syrap->syrup +sysmatically->systematically +sytem->system +sytle->style +tabacco->tobacco +tahn->than +taht->that +talekd->talked +targetted->targeted +targetting->targeting +tast->taste +tath->that +tatoo->tattoo +tattooes->tattoos +taxanomic->taxonomic +taxanomy->taxonomy +teached->taught +techician->technician +techicians->technicians +techiniques->techniques +technitian->technician +technnology->technology +technolgy->technology +teh->the +tehy->they +telelevision->television +televsion->television +telphony->telephony +temerature->temperature +tempalte->template +tempaltes->templates +temparate->temperate +temperarily->temporarily +temperment->temperament +tempertaure->temperature +temperture->temperature +temprary->temporary +tenacle->tentacle +tenacles->tentacles +tendacy->tendency +tendancies->tendencies +tendancy->tendency +tennisplayer->tennis player +tepmorarily->temporarily +terrestial->terrestrial +terriories->territories +terriory->territory +territorist->terrorist +territoy->territory +terroist->terrorist +testiclular->testicular +testomony->testimony +tghe->the +thast->that, that's +theather->theater +theese->these +theif->thief +theives->thieves +themselfs->themselves +themslves->themselves +ther->there, their, the +therafter->thereafter +therby->thereby +theri->their +theyre->they're +thgat->that +thge->the +thier->their +thign->thing +thigns->things +thigsn->things +thikn->think +thikning->thinking, thickening +thikns->thinks +thiunk->think +thn->then +thna->than +thne->then +thnig->thing +thnigs->things +thoughout->throughout +threatend->threatened +threatning->threatening +threee->three +threshhold->threshold +thrid->third +throrough->thorough +throughly->thoroughly +throught->thought, through, throughout +througout->throughout +thru->through +thsi->this +thsoe->those +thta->that +thyat->that +tiem->time, Tim +tihkn->think +tihs->this +timeschedule->time schedule +timne->time +tiome->time, tome +tje->the +tjhe->the +tjpanishad->upanishad +tkae->take +tkaes->takes +tkaing->taking +tlaking->talking +tobbaco->tobacco +todays->today's +todya->today +toghether->together +toke->took +tolerence->tolerance +Tolkein->Tolkien +tomatos->tomatoes +tommorow->tomorrow +tommorrow->tomorrow +tongiht->tonight +toriodal->toroidal +tormenters->tormentors +tornadoe->tornado +torpeados->torpedoes +torpedos->torpedoes +tortise->tortoise +tothe->to the +toubles->troubles +tounge->tongue +tourch->torch, touch +towords->towards +towrad->toward +tradionally->traditionally +traditionaly->traditionally +traditionnal->traditional +traditition->tradition +tradtionally->traditionally +trafficed->trafficked +trafficing->trafficking +trafic->traffic +trancendent->transcendent +trancending->transcending +tranform->transform +tranformed->transformed +transcendance->transcendence +transcendant->transcendent +transcendentational->transcendental +transcripting->transcribing, transcription +transending->transcending +transesxuals->transsexuals +transfered->transferred +transfering->transferring +transformaton->transformation +transistion->transition +translater->translator +translaters->translators +transmissable->transmissible +transporation->transportation +tremelo->tremolo +tremelos->tremolos +trigered->triggered +triguered->triggered +triology->trilogy +troling->trolling +troup->troupe +troups->troupes, troops +truely->truly +trustworthyness->trustworthiness +turnk->turnkey, trunk +Tuscon->Tucson +tust->trust +tution->tuition +twelth->twelfth +twon->town +twpo->two +tyhat->that +tyhe->they +typcial->typical +typicaly->typically +tyranies->tyrannies +tyrany->tyranny +tyrranies->tyrannies +tyrrany->tyranny +ubiquitious->ubiquitous +ublisher->publisher +uise->use +Ukranian->Ukrainian +ultimely->ultimately +unacompanied->unaccompanied +unahppy->unhappy +unanymous->unanimous +unathorised->unauthorised +unavailible->unavailable +unballance->unbalance +unbeknowst->unbeknownst +unbeleivable->unbelievable +uncertainity->uncertainty +unchallengable->unchallengeable +unchangable->unchangeable +uncompetive->uncompetitive +unconcious->unconscious +unconciousness->unconsciousness +unconfortability->discomfort +uncontitutional->unconstitutional +unconvential->unconventional +undecideable->undecidable +understoon->understood +undesireable->undesirable +undetecable->undetectable +undoubtely->undoubtedly +undreground->underground +uneccesary->unnecessary +unecessary->unnecessary +unequalities->inequalities +unforseen->unforeseen +unforetunately->unfortunately +unforgetable->unforgettable +unforgiveable->unforgivable +unfortunatley->unfortunately +unfortunatly->unfortunately +unfourtunately->unfortunately +unihabited->uninhabited +unilateraly->unilaterally +unilatreal->unilateral +unilatreally->unilaterally +uninterruped->uninterrupted +uninterupted->uninterrupted +UnitesStates->UnitedStates +univeral->universal +univeristies->universities +univeristy->university +univerity->university +universtiy->university +univesities->universities +univesity->university +unkown->unknown +unlikey->unlikely +unmanouverable->unmaneuverable, unmanoeuvrable +unmistakeably->unmistakably +unneccesarily->unnecessarily +unneccesary->unnecessary +unneccessarily->unnecessarily +unneccessary->unnecessary +unnecesarily->unnecessarily +unnecesary->unnecessary +unoffical->unofficial +unoperational->nonoperational +unoticeable->unnoticeable +unplease->displease +unplesant->unpleasant +unprecendented->unprecedented +unprecidented->unprecedented +unrepentent->unrepentant +unrepetant->unrepentant +unrepetent->unrepentant +unsed->used, unused, unsaid +unsubstanciated->unsubstantiated +unsuccesful->unsuccessful +unsuccesfully->unsuccessfully +unsuccessfull->unsuccessful +unsucesful->unsuccessful +unsucesfuly->unsuccessfully +unsucessful->unsuccessful +unsucessfull->unsuccessful +unsucessfully->unsuccessfully +unsuprised->unsurprised +unsuprising->unsurprising +unsuprisingly->unsurprisingly +unsuprized->unsurprised +unsuprizing->unsurprising +unsuprizingly->unsurprisingly +unsurprized->unsurprised +unsurprizing->unsurprising +unsurprizingly->unsurprisingly +untill->until +untranslateable->untranslatable +unuseable->unusable +unusuable->unusable +unviersity->university +unwarrented->unwarranted +unweildly->unwieldy +unwieldly->unwieldy +upcomming->upcoming +upgradded->upgraded +upto->up to +usally->usually +useage->usage +usefull->useful +usefuly->usefully +useing->using +usualy->usually +ususally->usually +vaccum->vacuum +vaccume->vacuum +vacinity->vicinity +vaguaries->vagaries +vaieties->varieties +vailidty->validity +valetta->valletta +valuble->valuable +valueable->valuable +varations->variations +varient->variant +variey->variety +varing->varying +varities->varieties +varity->variety +vasall->vassal +vasalls->vassals +vegatarian->vegetarian +vegitable->vegetable +vegitables->vegetables +vegtable->vegetable +vehicule->vehicle +vell->well +venemous->venomous +vengance->vengeance +vengence->vengeance +verfication->verification +verison->version +verisons->versions +vermillion->vermilion +versitilaty->versatility +versitlity->versatility +vetween->between +veyr->very +vigeur->vigueur, vigour, vigor +vigilence->vigilance +vigourous->vigorous +villian->villain +villification->vilification +villify->vilify +villin->villi, villain, villein +vincinity->vicinity +violentce->violence +virtualy->virtually +virutal->virtual +virutally->virtually +visable->visible +visably->visibly +visting->visiting +vistors->visitors +vitories->victories +volcanoe->volcano +voleyball->volleyball +volontary->voluntary +volonteer->volunteer +volonteered->volunteered +volonteering->volunteering +volonteers->volunteers +volounteer->volunteer +volounteered->volunteered +volounteering->volunteering +volounteers->volunteers +volumne->volume +vreity->variety +vrey->very +vriety->variety +vulnerablility->vulnerability +vyer->very +vyre->very +waht->what +warantee->warranty +wardobe->wardrobe +warrent->warrant +warrriors->warriors +wasnt->wasn't +wass->was +watn->want +wayword->wayward +weaponary->weaponry +weas->was +wehn->when +weild->wield, wild +weilded->wielded +wendsay->Wednesday +wensday->Wednesday +wereabouts->whereabouts +whant->want +whants->wants +whcih->which +wheras->whereas +wherease->whereas +whereever->wherever +whic->which +whihc->which +whith->with +whlch->which +whn->when +wholey->wholly +wholy->wholly, holy +whta->what +whther->whether +wich->which, witch +widesread->widespread +wief->wife +wierd->weird +wiew->view +wih->with +wiht->with +wille->will +willk->will +willingless->willingness +wirting->writing +withdrawl->withdrawal, withdraw +witheld->withheld +withh->with +withing->within +withold->withhold +witht->with +witn->with +wiull->will +wnat->want +wnated->wanted +wnats->wants +wohle->whole +wokr->work +wokring->working +wonderfull->wonderful +wordlwide->worldwide +workststion->workstation +worls->world +worstened->worsened +woudl->would +wresters->wrestlers +wriet->write +writen->written +wroet->wrote +wrok->work +wroking->working +wtih->with +wupport->support +xenophoby->xenophobia +yaching->yachting +yaer->year +yaerly->yearly +yaers->years +yatch->yacht +yearm->year +yeasr->years +yeild->yield +yeilding->yielding +Yementite->Yemenite, Yemeni +yera->year +yrea->year +yeras->years +yersa->years +yotube->youtube +youseff->yousef +youself->yourself +ytou->you +yuo->you +zeebra->zebra \ No newline at end of file diff --git a/PolyMultiplication/__pycache__/divideConcur.cpython-37.pyc b/PolyMultiplication/__pycache__/divideConcur.cpython-37.pyc index 77f420a75c1fc67dc148f2bdffcdab6e0534e1b9..ec94bb5c8834993d4bb7b06e48651ec790dcc779 100644 GIT binary patch delta 81 zcmdnTx{sCDiI<m)0SNXUca7uR$jidW$S_%maSP+E$;TPh8Tlu_XI!qq50o!L5CTB% XEe@O9{FKt1R69l>ub2r)a4-P?{=g9Y delta 81 zcmdnTx{sCDiI<m)0SL;DyT<Ws<Yi%GWSK0)xP>ul@^MCWM!w1K8JBDD0p*Jj1V4~_ Wi^C>2KczG$)s7L!D`o-`983Vx+z>Ya diff --git a/PolyMultiplication/main.py b/PolyMultiplication/main.py index 3c5f57b..df78e58 100644 --- a/PolyMultiplication/main.py +++ b/PolyMultiplication/main.py @@ -4,7 +4,8 @@ import highSchool import divideConcur def main(): - count = 1 + count = 32 + power = 0 while True: highTime = 0 dcTime = 0 @@ -14,15 +15,22 @@ def main(): P = problemGenerator.GenerateProblem(count) Q = problemGenerator.GenerateProblem(count) highTimeStart = time.time() - highSchool.HighSchool(count*32, P, Q) - highTime+=(time.time()-highTimeStart) + highSchool.HighSchool(count, P, Q) + highTime += (time.time()-highTimeStart) dcTimeStart = time.time() - divideConcur.DivideConcur(count*32, P, Q) - dcTime+=(time.time()-dcTimeStart) + divideConcur.DivideConcur(count, P, Q) + dcTime += (time.time()-dcTimeStart) print(i) - count += 1 + print("Highschool Time: ", highTime/10) print("DC Time: ", dcTime/10) + saveArray = [count, highTime/10, dcTime/10] + print(saveArray) + with open("results.txt", "a") as myfile: + print(str(saveArray), file=myfile) + myfile.flush() + count += count + myfile.close() main() \ No newline at end of file diff --git a/HW1_Stones/results.txt b/PolyMultiplication/results.txt similarity index 100% rename from HW1_Stones/results.txt rename to PolyMultiplication/results.txt diff --git a/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/contentModel.xml b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/contentModel.xml new file mode 100644 index 0000000..ac5e8c8 --- /dev/null +++ b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/contentModel.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ContentModelStore"> + <e p="$USER_HOME$/Library/Caches/Rider2019.2/extResources" t="IncludeRecursive" /> + <e p="$USER_HOME$/Library/Caches/Rider2019.2/resharper-host/local/Transient/ReSharperHost/v192/SolutionCaches/_SimpleSpellCheck.692991529.00" t="ExcludeRecursive" /> + <e p="$PROJECT_DIR$" t="IncludeFlat"> + <e p="packages" t="ExcludeRecursive" /> + <e p="SimpleSpellCheck" t="IncludeRecursive"> + <e p="bin" t="ExcludeRecursive" /> + <e p="obj" t="ExcludeRecursive" /> + <e p="Program.cs" t="Include" /> + <e p="Properties" t="Include"> + <e p="AssemblyInfo.cs" t="Include" /> + </e> + <e p="SimpleSpellCheck.csproj" t="IncludeRecursive" /> + </e> + <e p="SimpleSpellCheck.sln" t="IncludeFlat" /> + </e> + </component> +</project> \ No newline at end of file diff --git a/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/encodings.xml b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/encodings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" /> +</project> \ No newline at end of file diff --git a/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/indexLayout.xml b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/indexLayout.xml new file mode 100644 index 0000000..27ba142 --- /dev/null +++ b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/indexLayout.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ContentModelUserStore"> + <attachedFolders /> + <explicitIncludes /> + <explicitExcludes /> + </component> +</project> \ No newline at end of file diff --git a/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/modules.xml b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/modules.xml new file mode 100644 index 0000000..9865acb --- /dev/null +++ b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/.idea.SimpleSpellCheck/riderModule.iml" filepath="$PROJECT_DIR$/.idea/.idea.SimpleSpellCheck/riderModule.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/projectSettingsUpdater.xml b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/projectSettingsUpdater.xml new file mode 100644 index 0000000..7515e76 --- /dev/null +++ b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/projectSettingsUpdater.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RiderProjectSettingsUpdater"> + <option name="vcsConfiguration" value="1" /> + </component> +</project> \ No newline at end of file diff --git a/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/vcs.xml b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/riderModule.iml b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/riderModule.iml new file mode 100644 index 0000000..1a4e0d9 --- /dev/null +++ b/SimpleSpellCheck/.idea/.idea.SimpleSpellCheck/riderModule.iml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="RIDER_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$/../.." /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/SimpleSpellCheck/SimpleSpellCheck.sln b/SimpleSpellCheck/SimpleSpellCheck.sln new file mode 100644 index 0000000..a07d0da --- /dev/null +++ b/SimpleSpellCheck/SimpleSpellCheck.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleSpellCheck", "SimpleSpellCheck\SimpleSpellCheck.csproj", "{D57220C7-2B13-4E8B-80A5-C3B3F3A75596}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D57220C7-2B13-4E8B-80A5-C3B3F3A75596}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D57220C7-2B13-4E8B-80A5-C3B3F3A75596}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D57220C7-2B13-4E8B-80A5-C3B3F3A75596}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D57220C7-2B13-4E8B-80A5-C3B3F3A75596}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/SimpleSpellCheck/SimpleSpellCheck/Program.cs b/SimpleSpellCheck/SimpleSpellCheck/Program.cs new file mode 100644 index 0000000..09d422e --- /dev/null +++ b/SimpleSpellCheck/SimpleSpellCheck/Program.cs @@ -0,0 +1,25 @@ +using System; + +namespace SimpleSpellCheck +{ + internal class Program + { + + public int MED(int i, int j) + { + if (i == 0) + return j; + if (j == 0) + return i; + return Math.Min((uint) (MED(i - 1, j) + 1), (uint)MED(i, j - 1) + 1, (uint)MED(i - 1, j - 1)); + } + public static void Main(string[] args) + { + A = " igigig"; + B = " gigigi"; + } + + public static string A { get; set; } + public static string B { get; set; } + } +} \ No newline at end of file diff --git a/SimpleSpellCheck/SimpleSpellCheck/Properties/AssemblyInfo.cs b/SimpleSpellCheck/SimpleSpellCheck/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..313af80 --- /dev/null +++ b/SimpleSpellCheck/SimpleSpellCheck/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SimpleSpellCheck")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SimpleSpellCheck")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("D57220C7-2B13-4E8B-80A5-C3B3F3A75596")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/SimpleSpellCheck/SimpleSpellCheck/SimpleSpellCheck.csproj b/SimpleSpellCheck/SimpleSpellCheck/SimpleSpellCheck.csproj new file mode 100644 index 0000000..ca4f26e --- /dev/null +++ b/SimpleSpellCheck/SimpleSpellCheck/SimpleSpellCheck.csproj @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" + Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"/> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{D57220C7-2B13-4E8B-80A5-C3B3F3A75596}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>SimpleSpellCheck</RootNamespace> + <AssemblyName>SimpleSpellCheck</AssemblyName> + <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <PlatformTarget>AnyCPU</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System"/> + <Reference Include="System.Core"/> + <Reference Include="System.Data"/> + <Reference Include="System.Xml"/> + </ItemGroup> + <ItemGroup> + <Compile Include="Program.cs"/> + <Compile Include="Properties\AssemblyInfo.cs"/> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets"/> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> + +</Project> diff --git a/SimpleSpellCheck/SimpleSpellCheck/obj/Debug/SimpleSpellCheck.csprojAssemblyReference.cache b/SimpleSpellCheck/SimpleSpellCheck/obj/Debug/SimpleSpellCheck.csprojAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..7e066edcf40a78a37e6fad350ab20bd29728b2fe GIT binary patch literal 9752 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 literal 0 HcmV?d00001 diff --git a/Submissions/HW1.zip b/Submissions/HW1.zip new file mode 100644 index 0000000000000000000000000000000000000000..8c920218aaba0062cf3cfdc28fb5eab3dea4eb17 GIT binary patch literal 134778 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ÅBL zMS}BRk<3U6Gs_($52(BKj|d3~Nt_WZdBg~J@^x-7Do>3}ho`Xq&a11-^+)|zxeW1@ z*h-mb2`N9q$)(aU_7jW8pRr_unR&RZz}6$e9&0}7SC}*M)cxQQ`+j5s=f@EvmZCnY zJ~3k0(Uo5Y+WD@??EEkXi_A9-iY?Xy1k9P=>MTJe0`bdNv5nZ4OidvUQxb<&iUeOM z7D<F8`@J?c$?1?$ql_}Uu@ITOa+uWVWC}`CzqGhkrGA)b(Zo&XJopM&J{PYtOXDCx z)K0huA&S1pE(MwZ>($mu<GeCQTo-4o!J4Z7!mg-l;Nhh!Ii$VL>F?$=m&n=p!7L{_ zQ?L&+7*J$&&A%t3X(9USBYIC97OLTzHfhVM8dlvZlhQO68GlHgFx2H_`>CEvt0GHb zVmD-92F^bQ)#S_&6C%PWgqT6S0>ye=)A^KI0<Mwv5W%pN$cnhS6xDGKcZ$e3qjLW? zv+E1kb+5ApxSha<k|#}k5us@OJ=~d%Asfd!$l2H0mKYVh5bOH%NZx@+GuK#v7+V7{ z4KwVfb-PQyYCuVg+aDB=)xM0(&BklQeq9cA{-%jXHGhTL;(dGBVz)rtzE&iIfnv!P z-t%uSOZ#gY6keS?C4*V~)cE4m&N>`8S=sD8k@lG(8{f%vbYg;M9w~_liz=NihM1cp zA9m^;CnqNps#Xa+lga*K3_(78K2|IouK9;r1adE^=(}um(y;p*iHB*vjp7h7XX7;6 zKxYuWV!I+L1>@|Fv2jfc>F+QBn{Co)_5BU6@e1=GHx>^3h++^)250P9k&jy&#R!(K z-_Oa7(7fI*x$QtQH10>#AS?(ytTp1$d3{XXCcim4S4F2??n5|Ec#Xirz)>y@|5-lG zWn?3FMC(=lsw~Cjq<X=8meyxj;~!O->Y1nXc9CNuJ%(m;I<j#E0;oQuIVmidV|i31 zaQS9imkz0|v!5suSIR#iVVo>^Kh)@>KUvqIhTCa{B+m>8LDlt2i{YaPrYyE6U_cn) zGD?OO>DgFMyH51c7pDOqF~sC>4_M_%El9X~^xu2Pm|w%r_kc+#Af#Xhl{Qh1KeGmk zlu2pba$c{3iE8qK-l@X$u8=}}9Vru-ZLcPcUL9S1`e1IRTuaKY%dn4rNcVBMRPLh^ zZIH`m3#fD5P$`WnW|zX&*xo?KK{S+{_yLq(@RC;kfgFG<ihQU{8qD?nO&tPomsRTf zz(TyhY0!iLVEQt1GjdPK9l;bAaR#HVc2V9EixSkCE#X}oS|mDeLLvcSmzPZP0a=Ut zsMimC;rZ0d3#*SrXKAx8=V1ECM^C6)ZwN?{^+0Y`tAEnE7Cd=4uwssWf(5&;4*eaJ zH{z@<;F*Y9ZwD#Eyg%G+znqHW1Zngsure|*u<^jTD^p8IQajsX+R`YMeLh=DP3+@= zuw3l?@<OLP%jVrzxkoR-dAS=DSzZUwBQA@vqL=V*yu&^IdDi;-Bx0)&2g;48KIXIl zl4iCgvR&CW|ALgFCiNW?X;jm~l@v{KGLd@_ccjEFq2aBq4Q0E0p_l{FJOZ-wL1D4* z!f*?W!V*oE<Mse=-S7$|PM}CIlRy@)6VG`FRAMss<17DiW64dgne+4D{D96^;aK(X z;+2s7*(j$;EH^Ke_KvPt=^QK|J?l}c4lQ(OdS_;yY+)iAGT5AmoDX-JiFLY*ix;-r zyWl&7@f+d2fx4@(Zo6KnQd7)004mOeG-n1DMm<iiezL9w$TV`W6YC<&0ZK931s_l& z01_aehA1-m%<-}CMFYCcJ+gSs8S7B%b;9n5YhZ%-(U8<&8xKn=EF6oxf)e$Cls;w! zKjO@#ev!`y!M|k5s4N|dnbTmu_OpVs;(agbdKnGtSZ$QTNVJVX;nRI`I5+LXrU^%- zI?|c4Z_SPshbhRqu)-i$^6Hnv#PQ3;yOaUsO~V8Fhh3@w*#}E}uj84*gs&})XrkzT zEK|Z1Qw!4`c9lxDS)T}T&iDXiGTcfGHeVJ`FxYx|iYrL*8b6MFV8j5MPzL@5?qNYt ztMM>|kOx#v&abhit~CL^rL}98HfEZ(FdNjg5v~IuO>k>jqt0>(SG`?jbHjaIR8cbP z!P&!zv(I_a?m+5hXS<EN4Con9QZG?HZodUdqR7N@nf-UQzY@CGY@@+^la`rj%S?qE zwm1CB&}{kZg&><7&eM&Kr5wr=!VmU`D{W^DT{{$izHbGHy#OJUPoV@j{7)NuirsFb zsVpTX{b96?d|ju25FvUr9z-l=*D|$>{U(CbN-vC_^&k}F{geozWKBYT$+7OcEtD!Y z_czu1T>5tC45>4A<jvM+1Aop<fO0yaGa_cMI41rGgLjT3z39y3X_iUk_HIV{)@QED z=P{Z?sP@xR2Mul;BoC4lL&8f;DGq@@e~o;HmDUywQ~&J;Bpf>365&VGJxzcSVXfw| z;Bj@6qF^+Cwx-FOGsho_H|_W*GrzdkP?U`mT?YofG8&uY;Ez=*%sBfYQfm7B;V+6B z=FfM-993ie{X!VI#Sg_iiinw>sL+I>6L_Y5ArZgtYh{{O5*Xr<@MG|V*ax}UHGY(S z^tzoYHh##h(Qa8y%0D%^{X&{CB|lNsQwsP-Hk#=lxE$Hp#xI;N0dN6|LTusgsU63k zM__75o5aMZuO-2**LEvEblLs5XhX5TlQV3dR^9p5dxt-`vZ<0hsAv8=OVTEa3UPtq z5|zY%B4{?B&<;~A45BX9{@1e9l)s!k^P}DiT%}rKZS@Q!A(`<gpOBa<rppxmr7A`S zWhbQaU~*o&TWq=3szc9YtMn~eAnhBt4QL*NNWi+D@s&gY>FXWkVSJfPttMjD+s(3J zbx)fng_GWV#mLXU9%OrMeNFB8!4wfvW6-Aj{I{(qqwyo2CuXRUvNFCdL-AQOF}J)j z-zKat&^lxpAe?`K?GdyozGL(7_f)$B-YRNDSaRZH8S}Xp>Uo#<mAxSBWc~}xHQ>_R z+<b_!EStLgRsx6~eznU_j6<)S{PNKA(iB0g49*kwGheJX@f3>vw1n96*%6)Z;{E0t zvnjB4(iuR{2dhe@MjU{oUoFjq&NLGcxVM;FG$BTxgPKigFC|@SJ0DXFGT^q_`KzA^ z7sOv*&xa`dcvBb9l05w;jnMAnHS7(Vxz||c*mHy3&-iR&vc<dMG=<2wq40QY{E~RP z9<a{zj|y?L!`#B+O>Q&R1I|jIky(EHwA}E!aYPS#Wo6{Oi}yB7-W?!uawn!w;j}Px zz^m{^2*{ghI1u!*aAOzJ@&EuQ4p-!t2yJL%Lmg{RVrecDN(FwuY;u@Ma>-Y-e9oQG zQa)SiONZ}G2Ns(^QN2y1Q-#<~S`Iy|d%<Sp&049*KJ;beWy^H>DF{@v&O%*%KPd5# zHnu~Fjx9>y8yG%D!6R5WJ=lCTUPR-XsFD@KnlT4>$zByCv)ZuMy8=wWw$O4hNq0!8 zu0{-^Cp=V5k7cn-1KYW;`<!H&FYr{H7zF}EO^ebJZTWmWkQ!SoS-=6zYP`og+_m)_ z)_E|!)wBDouSNUArGuw|88w{_xw3#N_%u#CKwP1;7U(4N!u<5UJs10xrn!;XHCusO z@-IN=2zFnS3w;MYk{Xapfs&y#>4%UcN;4Si%O5x@=`<4Dgb+A?SS|)ApO916MHu5+ zp4$Zf-Zds%rm$aU#b(l4u=C1pnz3U-0cCjkl#XO3X4H0jGSv^H9~D7(61JGsT%>hw z`x7FItYd`p4+lkYiuEa3{6mcPIB_jOQ-*a$-_1`J8{p9sWRyULCNK3;?XvQAI|f&# z1^}!@Hi#^Qo*dfG4*VRE*t@oQrkV*-7H=?mbR2ccr-mZoaMpb%R@)3a;fCPA{^-{B z+1F&r8GN_aIIOnoOp2O32a@XTI{oc?qfe>+Hb5v5%(MywquV#b(2vEv3A$|jfshR= zb4$zR3d{{ksr}Qo^;T~}k>Cz;k>G2xAj&(U>bSh#$Ky9srKf&&<vync-F35fdt^VP zfC$ee_Bc?KFWB8h7tYIu6v|k`LNXZ?w1EWnpa_UGEJp5~a74tKuMaPrvVQ8_#<0uc z-?=4{U5X^_QOBD!@MnM!l!;G*2-i9ewyF<%qy@?j6e|x37Dg&;y(WMbe=mh_X-|cR z;o%anPpd=m)T3l6`s$j(KjSIDZ2-GO1K>U;ZCNBb$k09#*sn37@rl{vp<#;VrF1+f z`ocbB7h~L7rzRJZsrPLbJ=^ID10<t(cbB~Dv^H1m=j@isz$6Rk(eGel#<dpHni=ZM z>rG`Wc--BmoaMAE<#5Pk2$c`kx+)c&0pGQc($)oQzhzfL2r~tCm#p*<JfL!zC~C^L z7y);|hM!kGg8Ie(Gz^mVE(IpQ#EV6ay=}(DVtnhJE+`xuqzJILkM%wKeoLr9J7hBQ zgy%h_>Y-C-#4_az6!g0D-OI2#ag&1%S87#7JHT88pR#t}nGy+k)w63H9KU%K`Gv8# zt^3^)-36thY#>91`!Ph`C(*0$$gA7rJRPb8FuhGBOVGTl@jkpaI_QB;71T}5*LLg? zN9B5FvX`8;HCw!L$Z-KjJvsbx24`_2x}&3rJTaLY$4)*5lom~j(M#kg#WB0|$fTIl z>EF#t@&ert-99XsNC>SylT&0YQ!u@xi`H<;h}QX?7)5yJpw|dVhgY}`#t>%v=?_Eu zCOtzX6Zn<7>5KUbIw?xOtJ8CzGQQe6^+cfkHaf4~i_XfCGF{uGa_K?Np;mwSY>^Gi z<8e6t`QOj4WV<s|4yR%*xx)7NPA9?FDJu9*34>a}!4V%Tm~V4jaQPUSEq0&a_y+{U zR!r+06<V@1e$jVobE{8fme&N%IrGjqGF(Mr9`?}Hai1fK?xr_sKSDYYDdCLKU%`+5 zx};OZ2#6DYPr_T5F7O)~&sj2jHq^CXvWaWX`sdzv4#^v1%wI|xo|1e&6hII7EO`z8 zl;>piYJ{7#4%8e(f7o@b*^3^O?}K&fXQ5P@_Ap##kAR=$e_)%w9)0Z5+=y%Zy=nW} zwoQlMo}<5fEz8U084$GMEiVW_5ocuPg4eV@d4YB}R9XNn8WTc5O35?~a1B|Wq6IPp ziUk$H9zd?H-xROq-)MpKNpwnyuctnzOMji_CZ-u%j;DwVN#D;4Fk<K#^oG`&@B<K{ zak6<U5nU3J=Oa8lj_1b-=_Pw%NR%la09^%Vd|#&$UI`jV2jxCv+lTkv8i)jn)X6$k z=Z)3zFs$OQPE~_{wzdCgf-M&McSJBOQyzCw=a%2+JwzgS9%DO(?|qL+93$SMLdcwI ziHLrtV_hI!U^I@ZYe=Iin-0_f?t5a3vR_zAT$OAw^?CXqx7Xs}7yLlKJ^nr70r$4Y z`G7yPr_C|0Kp&dLn#yYIm`NGUTTu}G@x8j_ND-}8IBvG!pLU6X7!vxPyPvGlb0aNs zW`F$ubnHj>$`P|%agM1HU*QEEtB5=`!>N;hITw5L4rg(D33UWEFP+EKv)fD?3bI*G zx0rPq@^4K!kRJO+z&ZyVFqD|RaIz@mPP>!2Qv(1~u>e&u&`!4Sp=)WQ2&RzI?1BFU zJSSv?CC`?Bp{(1GIeczXZs9e`1T^OutNd#8sWiCpf*ZR5^ww3^3(aYPl@F=;PmCyD zjCL=*sW?BFgfz|HgPN7+?Z<UYev2ziA{kP|!(wSIqS;i=!F&sx`Dq<>J^|u6TdXRq zkX-8u&J)Wg@$|ESA_4HWTXqHaP%4;&uKQEV4;ny|?8_o<e!ZrBJ*CSSClpM?YTVXU z%R!$BRRX&`_4YN(AAY0?m8jE3T+le=9+UB45p%c2otn;l8CllxPV=3NRo;FFHGLDr zu|!I69Sn**H<YZzW5hH#YY!>>S?}qQf=I`aJ5<oy$37!*>5~$X=D+Ft3T1)c&{qbR znyf~ZcvsCa0(v1h_sG^TcCh;i&waUK33&sqko32Q^f=u16b*ze#|ZhKu4kEZr2EH% zpIqIpjULBic1qHW8k@-u2KXRC^{I10R7Us1%=PT-RJjP061H<sx9h9~pWM|#199#Z z1+bK{0Yn1q5W3d{Y4$w%vezjl0wE!%ZJ5TVbQmLXYIH$AushuI<Dg+yv9vbYbB#ef z$gYFYl%c_eY#IG1%=KTY_IHqK(%6{^tcfv2@|bEls0Z{omH&<A1y|`zj{@nZ*@ZX% zz-^DCq|)@l4`g+uckEP@<t7f2`@Xk@B;Bt0PNu($7+(K!HNIzsiEA<etNHdOlDQji zKB7PTzPQ;3SRwC&f^b*}BIS@-QOHW}MY{;O|5W03s4+Af2udpieqQ%$11WD^6qaxB z%fRq0U9Ex+qnhSNqc|4~mcZl#vn}F^M$c3@jc0jFn$qry+yx8D<0Ov@dTJeT_$&Ze z>LyJ}n=*`C-k3k;DYnmc!KTLXFu_Ai_J-sTIp57*yjD5BX4*)yKL`Pq%)Y=dw!_(a z;`TUlGme8y(jKb(uca5x${G5Z1WIU<x)K)NZ2N3`yKu_>Qx|+sAd1XmG)QnCa<SpX zmH<2=qZ24U*aSxKh~c0R8Wm&%(SQU;Og<})Vqwf|Shf={;BTKok^oVCgqvc&73MZg zh{NF}Hod48J%?%2(mx;;mT9&Y05LH$pa}))XzvjZ+O($SLCRfXv>(IV3*06@E&vj! zB*Juk5*8>3DF8D-%)j}PW=oZt!etjJi+_6w(69OIdhe%8dV2E(di3=(JoK7`e!bdB zQX!5C?S>4b4u0SZFBS%#ICp!}Jl1l4*|YrF-5`i17~;sRub=ufB}2$#Kibb#!xVpU z*7;|R+8Q{JWtV)hw@EZVd`p=poXlY7yxL9NXg_G8*Z6(NIs_pZIWzIRhD%c~w=?o9 zX2&@s=^d?ZN!81AgWjjZ%v9^6gFnk(Hvj~J&7bqYUH`_;vL2F1icG^I6GVv2h_}%+ zAQyX|Cq6#kEEuN|7=K~6h2W@ryq2O|vkHMbqGG&FE6i)~AG&y8eNf(Xp%jWBFMvuH z>yAih5me9C_6?sLCEf^?Ie{Rr!?PS&R`fL0z|jRN=QTz;>$}N|N|PzdbW8PRt<q8e z`@3-&r1#j3cR1^cr@}Ji$diE&B6}nahbL^@DW!*x<Z4(Yt!;GY1*aAnOl0l<UhTB? z0y$fir9L6j!E;)kHJJt;ma(e9PW%Y98fL~KG3i&?JT5YT5Jp++H3TUoGs_0|0v`_) z&!4dPg~eDzv1bIj)VtY)B3CvaYDR8{f%Lmg8W$~7$U@hv+(~s{xxm;Js;3F{n#elC zzV&(ya3j=oSQ{S&`bl}sf3`tP13_&^qnTRM3Qo0e?wpg<S$!;%p*-n1kdwoCLzEdO z0yH3rOc)3zS*Ekf^)4+r^s*6>?2w%cG*##jbyx4=$~6r~{5LrR!GXu+8F(c#DpB!o zW_1Gt8+$Qkd)yH82|O~KY<38a<~B1Z+gXv27jX&3>)aXHtFO5C7QzWoBrx(Scm=1# ze#^%)a%TW)#4R7zNk+>jC`y_p<-OlgMVU4-U#~WwY<(nP=(mKH9L?6tS%+gg9T3es z-?Ymli&Q<tXEYbo=vjtL;>4U-{e4|tSqx30+JL*3IVZEiORF$a6)s*bJz}mdzF88l zO<h$gm`Upo>0JP9<t-|qQ#P^xdRLLwE+pxQEci$$lUL^aVXu4QEbBESZ(A0Ol3u?d z)oaMixFFVU(ByxV4i(akyCXX5eyA0CzT0-anbXO7Mmm1|XX+`YSRW<>p3M{yA5kB1 z->Cj0F+DoTe~eo@94kp)2~HsR=^IMpZogC(twaXhV2iDNP?2V~w~1xyJ$>cB{Ph>Z z7G-I7`35HbzzQnKKUnXj?D4*1bMgAv>QAa5w6(Zr=~A?f<mQ2tnd~~I+O9&rPDd|Y zenQ5i9MQhnH(+*NWN!%!3@A1Ut%4H{=#$)8BCbHlWm)@jrKE894kx4<FPB+@B@ElP z$Id!D3iP$$&s9(B%j4A~%M(amWCEFg2!e!It(?K}^I8gAjEU68Kt4{<s|7&&VdmnV z?~#~ih*!h40ZX6I-JdOXjc3BI9xFS0vB-Y?l|+ydlez&S44{A0^#)?#opOpI^|eII zi;2Mt6}U(Mb+`KZI*JrI?XxdccfTVTW`n6C0%Nu}3Acq31wyYP!cex=a{ZcEKhWMI zEJ`SIVto`P8<-`Tg_?CvKDPnT(KJ6(w?GOW>1-EjX&!J-$$RXx6lZ^B!)5)IU3=~? z?GrB4Xq47Zw1}6s(r5aKQ~$1hZi?0RSRokyFS6mDu*@3FW4HJD=I!{$;EO$z&aT^t zp}fFjF{$@ZudA(Fw9YHS)&J`S0A6n}lgYYD$3c1*FHFKhOb-hSh5{bl9JZ|TzrwF( zRq`AA|0`)AsqK08$w~r3tPipZM8fj=x)AM3oYuSX*pm#}vfp+G_|bN?9|Ga1f!UPJ za+%2a!y&sJm2LB?@D;5?aD!I5O9nrTuxO>Ww;QP(b|qQRej8CRfkIVHYVy@MY<_D0 zJIOMv;*!uJ{X4Cb!CVX125>_+`=jm=v{F{t1BVAGQ7_(x?8SUPUT4ek>g7O&MU*&= z11SgTV#0oX)E31iWvkpj@81Asg|k586<ELjf?X2I6!|6wm&bsOPC`ts^T}h5{V9nu z9O<y?HH!go<mf<U|EsKZLcy>R-qYn4LHw4j4FJ7lD?m8{49x!Ry`Pf;qg;=XzyVDP zMIj)ceYXh%8rxWeU{58;ePvX+f}s5!XRZfUo{L_m^*ol$Y}KE{Ws$)+|2_wN6LQfV z6!;H9u<YtkCUR0C<*_=WVnIr)gAQx!<#%-C&oM?SOPrF_<|D;|N{)!dSzX3;@He`9 z{m`efe8X_UZ|2Um+MA+zdoDy>bahh!^wV_cqlQRc93DrSzJrtCTFG`Ya2zE9V{ciG zXD0C9T6TzWP+eeNZ%41ZnDgqJm$KdP|8QKI1tkwo<*D%WZp&|93T$|0wa?f}hny`^ zvKLrC!D;;0WvZn+37cJ-IXZihTTA&M+fp==mt696>3KB8z~XY`6u&~|?m60srAD)^ zE!X#@0Ith>5J)f5tWf>@T2LryMkSHX0ZBjvI39Q#7NPSzk9j@UHSc}Bn~W`c><}|G zBLq@HHZX)=sGhm9Fa<8#D;lQ~)XR4PN!p4|`n={n_<APPZ`E@Y#a{ELcgp8H$pb=q z)}SH5eO<KyBpgyGQb)PugTUuM_R3Xe*~y>ZJ+_c<E9nzs%mC<DJ8xA}<#MBqyOk_! zR}1(PLo20?CBkfNOn&YA+WEiRvaJ0#3zOgsezK`pJn&#cz;^~tMPC~*txBP6!?Ga^ zAXclWTYeNX*fVDOttN-S?x8ZZN<tMxHYxm2{f}sn>~r>EezFYb*vi`Xv~`%@BCq|! z-?xK1PM;F{YNGPD-vHM?*PlEYbz@0D{c%h4eNBE1F$^Yve=TYvV^!NIveL?7@iInH zvWx5CMr&&9b__`cI>q}jwJGzgv594ydrbNR;Q{Lkqh@786vsgDm9mYNN6^_%zhi<o z!Z{@CGTUDf7@ClhVu7JARK7h0&4hdm<b;2CS5JjHdY>%v?i6HIS}7Va^9F#AVK;SV zLZ|qsT&0>*{C&~b5U~Wflp~B{h`C3a#Vac(*IfE9{y>tPb=jZ)_BySAlx=^>#Yg|m z+5P_0AZ9JIia()Vo*{=<x9Giuz`LyW471F;TY;}3pkrgZe?9yEWzPr95OiTsAj%&F z$%>2sq>*?_$@Py8I8N@ef(Bh)4gZL&E3nGNz777@)Eo5whAlZIS+_$nQLf1zjs4AU z4WPw6JE=LE%?5R}SzzN8Q7|>}=ww=VqT46GOxyB1B)?X3Q{s{cJ*$z*|3lb2M(5Rq zU8Av+ra{x#HXFOK?Z!@H+h~kCwr$(CZL6`<b0^Px&im(l<NK8{I?|nMU7B-VYwxwr zRTRGSnU?+LQ}QI7ar@6xk-#3XO7*S7@#D3}p)X*_enAtkQV>y0njVT|YB+=o#Q4p1 zj(@B*r#mG-cwZo>&^xnV8O(AH;|}GGJ$Idu8gvPRXOOL3Kf3DDVc30P%c66axT7XF zTjU`q`KCv$(mmRIY|60Jo_~My0K0gZ;^<KkhB>cwCYyAgzdf1<-w`meJgr&qGx-^y z*))9P_?ekac1@<d5A+orC9auaPPQxv*au7N9KoZuc@rnWAmWkZg6c<22KM7*c^L~( zjB+nqPU#F9RFwWs-i#K7K=h)Meck%*m1EEZu(o`yQ2~1GXX<rX%EVfkc8$uc69~76 zg#;1^YzJabrL1SYh>oHz1c6Z&lfrMl=2{08GI3%^1yk&LqG5RE8p9GMMHTDuA1ZKW zoJt2~<sg47x@nOuH-Nm(Mzg=Caie`LftXH@g%Oz^D^f~)0%7#&s;Z(<$LzGmivkFM z0dF%=iNCzm@!XCGC8<BpDj`2#ZEWnVNpr}9#`l;CILd;E!ekbiVBZZ7p$17Dq(fq- zj7nJJ?5EuVC6`2FS8qAbqFLWm1MGhjYY@>0DMFYX8VP*U)I=kz{$0M4+S=)9>?_7z z#mg)&<@n#3@c{yVUxRDF=*k91H7lv!!joFqM_idq*9dQ;rg)AO*M!(CmvmRG7+i2| z6l8=3uFPYSoDa%3N$DrF=;6`%m&^9mCQoK1WM<G(-%F;U7zB?$6f!OS_zHo0-I>ke zw}`zGy>lAe!Uz@oY@_p`L~rkUm4afRk46j4F;!U<S{f~BfLPdf6$0=&=|1>4oc1>} zAN~GQ^2h#Qjtg450MYe!^{=G4<UVnXmb04CJlRa%Z|y$Ef+PV&^L?SH`#@RA<O5+9 z_lK@UY$&v#1frM&fpb6MYq0^Q>wMA8OZH9x@JWw;5jz#OwWI4DipDf*z}!C=JxjkM zsr*~T8!#tFPApAKW2W(wd>`7+Ox}aD!oo<600qesQ`_!O>Bk&PtrLV?+4NiEDV&<_ z+w&cmOV4PjO90uoo`0rY99wx{1L3pE#Eh3&)AwWX^?=yg(yc75JkYFa9u2W5m59hE z<|^@xq*ie@idqPQy|#{H03aNIZFSz@`SC%pVbH}NIIhE!Ye}d&fK$m0U@gnzC$6Qa z?ftK+kLF+P{?%o24~ac=hY^azCqoj6h5qvh>nQKn+=OQyAlE7n`?5j}Lb=D4TPsM% zG8Vt6<37%tYY%n<agKhgHpQ0hhRiWHm-?ab6X5QJAb|2$-lJQ@cG1R^ZSNxX!NiMr zcHuk*l8aSaQ~)(CBs1!yNaDt9Mk$xMzCIw?;=Pfd1V`<k=6I(G@|dq<SE%<OGYZck zR!`^F#`Y8D$Bg?)?8mx89JmY-BLy#)F|d+~OC+x!LQ4(n{qO^WBZu~dRz@gCz7y^@ z3AE>;gMRhO*J3O~lc<YS*jDwx0~4uJ)^I%BmIaKKIdYNw<BxeY)y1aOPNSrq=ewS9 z^<YDrpIQIxLM8pTUpYd6e@Op63>S?yc5O{-mI(ALOCHPhU@W;He<oiNLtI9tVP-II z=k{z_F$e)uANAkIN%2g`Ah0xO0f#QtvO2}Z#WT60UnHlqOTzI3^f<gHvu%|ftAZ@{ zt9@!t^R|2n4h=8kF~};TU9lfV06kcMUCH5X`{z8#$?yRMRe`va6u@E1zmI9>!atRp zOH2rRU0j=;&8u*S$!2eM+a<9mzkiYVp{^z~*X7qoht!5|kzmYAlQO3Ch4_mKGpS@L z1F*kj)a#|mPTZ6>hWXS;+UGYp+D)hp09o#W{prxWI%M_>=kY?pQ9}tSBlhPZPBVF4 z+P1}`q`!jys}xK6PI}v}&@Up$0NCb+%Fg$eV?g}eeqW!kWWB&%LhSIX4d#}5t?}^f z@hqZ?9v@65XkFF--|sbcaCIgoruR|_Iq|{Jpi5jE6vSNQbk8o(t^U4B>p`r}K-`!6 z(Zv+_*R#2LEbU>{?VJ?Apu5}THx;)gquoA()7CHle<?A;1MKK|qFtGTl^3qTSyLF2 zjYHu0v~lAa3QaocDRwtWGE6do+Hr9w;_H_s2Q(8Kw6!dVhv!erHR7yN8b2iCZ<G=K zjbxwiWj#wu+B=QnJK!JXBXhNE2Otgf8F@S6z&G~&VO(n4^@&3n-+zHbV!!G}jx7M^ zg7B@Oq19GX5ZVkt!}Y4F5=B9Y4CAoc?9g`UR?y?~L8_9Cjg2MY;nAir6AO#Nuaj=G zckT)`fql?f18ZgZ;k?=bUL!zE->M7|ad0KdX7>AXWUZY^lbGt|Po(L_Z|zY?-csil z7D+q#gq?=lm(BU}uIF_fuS;(R=mk)6FZ}tTyG>B?nA-NtD6RCHiLXDUVNg8Zr7J+m zH6QS*=F(baPl-(Kf0K$kT1e7Lixya|C=>i)J74IU=A{0yMv>j{sy1u;TOrygv*3Vc zc*CG9p}$4uT!VEFBR3L^y#BV<U>o4^6Drji$cSp%Upx9f{%AM*c_+Bcj>DED$2oW~ z67}0{70r5^sLGMWxf7%e+!we!)YRL%Uch?b$8nsN%DVYKb0LmPb4=MW_MV;vRtw{2 zo&Wf$WpUyz5d=H`Qm*~jOGIKXJ`f1W?&a7b34*G{lFjEl#9gZQ!OQfl{fYPP(0n$+ zmsiZ{xVK@uKGs;An-zMvdPc{cXB6~+hw2lkY&Yz~W;ZIHZglxhbd#QuR;Qt2K7v%t z@q@y~?&JNBhDs6C=M%Zl41P3+p`KHRPE#7v`n_-ZaX&$h5lK!Vz9t&-@Ja^#WhuxC z3%Ufg9P)lN+#6&AuoOg0kWL?jR)550BAFAfYp?>?h7rM3?K2Jfz~+y;2115CJh6b? z8u(~8G2#_h=rrNE*A5;R#|f^yrL!r1<nXwUj|>PTN>sX<4{s}&WbP!v_E*9j)+17K zZVD#>sT0GXM(Y{*zPT1kgL^)3BNg&`>Pr+#>%PA3cYmD<>~~guiwYv4KjR=h5Y?rJ zV}k;k+bR_F`{M}z-@R(fLfK#>tMj(}lwJob>3~d0^>z~FSW#(Sabj{|E!_-$iv;4I z3Z<r<2<P!sd{`^uGgxM%C4DW``bf@rpx=sQpxL&nE(`)_KC4PR0E!q2>C`9g`}aPW zG(q4xUJ}gy=nP{>+VB60TNI0d3Z6+N8L=|p8l}{TWUtzO?`jHE_7kHq;~{sDiGi<o zV047|v5!77TFbWdaJD-`XjNV#v&Fl1_^*Ng6I}jT6{<ZA06~T+*47CR2r{*x^xF=g zLJh}zow~hr`6UM<?(nscv9S8a=L)fT^;9Foj}noWU-Rp}RsWsxDpqV#bgP$+iGy}X z><e(yh+Rs+r|a(PcyHmvRr`faCBljSxsGsz->ex>k&Lv+?9HbYt$QDv%KIUuwm7eD zMJH*_MUk}{qcBmbTYG_+r_!kqn}-;=oEmU;w%90!U^t-c>e+7A?K9Y;!|SP%p7Vms z$=+Q71`nnyGQo2s&1$nQ6Q_wf9vByw`rlyKF4?#8l4A6aWTDggrgR5pi-F8OLxk(G znJA>eShFK6eSdf_VbyT?puI*$(NTj{JUY@0(a>cO%`9`JOO4z#cN-p`H;0qr<zC`q zz;T8uKNR6?T^ps2yYYhpFI{e`6oQ{RYxWEN^Z%%p(7>4T4*R7h+uV=ShIBYMILHb* zU9R+>&T1$3BDpSrlKl=b&^k&f{RU};<WKF5VNXr@^}w3+3_s+r);d!H)h`zGy<GXP ziHJ9FNW<ikZ1DSkOiTmQ!~acgxPz!EYp?HO2OS4uCh2_-(o4d0t5nD@){UyRU`Y{{ zmO@h$j(Cct-<<3$Za|Zkk`31fZS_+FIR=|KWnf4+ZpYZ_T)?E`4d!CDUh#bBaE|2F zX}!#_zxTSC=r}EFcTx(G!p90c;R02FzaM#dxsG2tW6xvw#mu3je86!@@*GI7-etKy z-8GyjwWlo0VzZ-sahpDDy4C0GVa29+Z~&NR8FB+5!&ZPdGB9Ukkxr?y*dbR$%{3IU z^HzuGUd(<Inxq`L;YKi3+j!aP_Ae=!TdFo7l>;X?Cc6(?EJM(3@6kod3{VFt^+gTl zn%~*R=M1nb<8mH}#N{HPrIjwn1bVb*5#Q@k4>3*c><hV*$$pDa_u~06>Gg27hpW4F zh1{lL&sIl?2GVX8AVRQ46EvxeM<I(JrGV+nAK1k1H@QI6R7r~{w2~w<tQ`sfbBC#e z<*4G(AuWw=!-eTqUSLeyQ8AQE+fZ@`3p!%jV{GGOrp33uQKUoVA<b4<B2x;;{yG6h z>4AZt6mBQC*>5Cd+;Y>h+WpfkHg+Af?N8{`;A++lxrztI-@44V`Y1PQ2iZ$YO7hCe zq}HjZsq?e51wO8Z@_y{a-}8mWo9YVXSu;G9S8KjtxZghb>Kpy#%eSK2Ju}^CEiTt8 zDbUC18hO+}O3qV|=(Z+Sp(a>##Hv7=b%H#0Me@iM8w|g4J4Sv~<^_pS`{!r-T1QcE z@{N~r;A0=27fMYEd{HZ%tV`o^o2ac*qgXGK7=Dr$mLb7=`$*xTkls`+$qI(*L4k_E z@-D`iZS~D#ZTwpr0a<t{H~WW~0$GK{UfsEQ#wqyjH8(#$e7!$vv|MAPvD;S>S+m?! zrsZ6uE~uvlMvg5nZR28@G$tMj7#$cKb~#F{vy`$epg3~_Ax8_{KlFcni(bGfVM{^E zD2rYS;m>zxvKB^|ae1!i4)ogS0W&_0gp$$tKKv&G=&?U($C8TEU7_@@FMpbA((s(c zbh>1Q?O@W-^%_ZWT8S}8?&2Vc4fasZq8VWRUK-Hdm-xofTOPwl0TalxJHsh6_cMW7 z-N!q2XS+f@Jq-?H)SEBRvLq%}-DOJZjB2ct3u<llK>FKoSs7lrnQeDN8RwuZIp56Z z^_1O`6o$aNrbu^5I&<)Ps`Tv8N6;pPOTJ7NYOa1`&~#?8nQ0hLd#!+yNju}g$7_X> z@tA#b-FG}xaA+Ex!7iyJuIja;6&@=fyH|`FPa+GdXR*;&>-lj}4z#W}=RPC<(>nK; zv58!ub?NN}o7F(;_K3*b97O>rLz|h36>KqTK`ts1-jF_ZbtnQTD&N<j(&J2cC6vv$ z=EPwUZ{v82=!U3xP<M#;2h7Hcd5QHWp?_&)%r0i8mUCgTUu{?i0#kUgQHO^aG0mmk zeKHjX!~I?De3&ZEnb4=<T(}xX1U=o?)8CNIwD@66GB%r{doZxGyudfEp={UlQXR9) zE%Pqz2XQTk3OM=1O|G^`8PK6FJ?gtvcI(5G<q6)_;=vQ*F?rcEjI$OMDc=hf5`%By z&E{=dze>J&_S!DTX;-L`S3pmI_&=Q1q8Q;Qc%l$iRsJ7cIQld;YJ}PDC<?z9NQ)V( ztU!(Ea=tSS9-YI?51U+_rlV<zsv!kV-f`Dn&E#`OJGx@uU<_IYC3AL6O&%@*PA>B| z_HDp)za<Vf`?b>}rNAdHtwuwg$v8`k&#@}pPtFU64WMBWd_%P#F<Gk|i0emQVRcbu z`gH$lc$6P7+7+@ex&4g!%ggek3-q~neg(QwXVdL&4A|!8FL<o&(6eIk#>%5vp>Ou) z&(-bV(BhZ=5;S`*AVa40i9%6Z#oh2O?LZ=?)iH!5^3?-vv{U5Ncl)#vXPZ+KNdcU^ z!Qsz2v=Puo9VOb%7j|VfT<TbT(+*Fg8G>fV0c1?L0+`bMx&@{%i}<Xwm0m~*{QkS9 zz+9*ya16vj4nYzolCC@2x23-S>O~4+pOhY0vywQ+7PG*5zjVRD<kU@?8!F|hjW>S< zE$SE)g&J0y60^?8Aeha1#)Dy8+Nf|0)?|zV78_%DVuz&>$Z0;A!(81Mm>Oal`$%8| z7SLMDeWXEzfe}aY@+t|h_UEb+7PVO$iQj@!w-Fpd@|fge&rmOo=CvLnBNxMTaSsps z!>O%y9S&<djMdkFjdBf<+4B4d8~%@>ZX10nBv2V}NK?q$ony;T*fD}aQuw301>vNu zayF(?h6<M)BjNUS#zD;~YK82A4Kc0Bg7T7m0@#(fXb#TQlRmnVZG$WihZ``rXPzg{ zS4$j&Z562;q`j`*1(st~h{`x!2G6p^YQ^QV#Krhev!K=6q;AxG9n!t6Bvc130=+4l zyqBANuj8miBoV02>k6?Cwdfr;hsGCh5z`zpJ<pxU5Yv{%iQTw=tMh}C|4tregl5g+ z#siHJ5*yr>5!*eUoq_*XjjqZ%6uM)6R)i-06%YFH4!~8NYqvT^7$&k3gZmZe&;#me zTJU-*pL0O>Nu0wn*k>}dSgK_5_ySXY;Z8fHN%<6M6b^r)G<tB8izG9hLf)XmM5l)4 zX9}Wv(|bsQhDCTY)hYIVrzZ3M@t3HQ-l3KK!-^#2LZ3K_^n%%xr;gi}<(6Dv|4SY! z%>X8D>Dn<@9I$yhKeoVfk!f`~8^#Y+j45!)tI?9`rdMfgsILhRu@e^Aq4b!HHR5tn z2v(#ph|xi%$Ny==cM@B(0{V7QVZ$~}8MMq<ZS<*@0bZBYX2+w`%^V6?5%K%!>y<#8 zcXPnWNB4(WMZfYTh~szagjv-%Of#Tk)F*UUR(bpiGG4pPj#1FwBq@x+!1cY&7#-{% zjsk?o53wnDrk!VB;I@BSeNkVXJ^_R%E?1$bek*vO{Z@+0*ZjF{HXQu1Jtc1Huq{Wy z&^P&2H9Gkx(Rk)vgxm{R(K0?2!}(b;GQkzY-$5vFfhHdp^{08Z0Zpzg-{Z;s@o6&8 zd%ZpxA|j%Ks%qiyySuxS_wvS#j~#s}0G&3~7oOW_2uR4#PVdv_ug1G9e&=UrmK-)) zK6!b0Lsfdc(O96KbZZVbc<^fV7Zm9z@#tPo=Ztxbs&I<-L+no*J$k>fZxD}CUtP6R z_EZ;&rKwb=^}_q@k%gzrJ>io+y0F>iZyBDRM_N9w*CreeJK=#yT<WW<tC^)G3Tl<I zXlQ&7xr>gM->$dQqFnVV4vpGwdR=XiGvkA_S-z+y-k?J)#a5=V>6rO&49kg%6%JDD zrBz+LOawU`jexPZS(oxJYNQ^X*U@6l4rl!F%kY2>Lfl_-z?Gj}N{fnGD}$^~+aB+_ z5B!&QZUYM&ZYof{FAtZhjbmd{%00ZStjZ0)*QrJUv_Kqc<m|vcG@5UT^F=crkn`Sj z5$u<J69nIrF-==@)T>#oeS*POp|_qC9+AzD&!YNLdPO4=eplWsj)FHgcz*ME?fco3 z+8(g8eNiv(%2g+U-Fm`-US1Y1DM8=2plCU0PB8yOCYz}v5e1bhRILg18M5?MODuis zjycR}<fq4yk4-Ws30!_~w;1D`0hcZuuok=2bZm-%am7d)p)Sz<BvjN|7Rw|vGc$&p z9iDLP!$U*J16Uqbs|{9gEYsnrqgvZbk!5Pm-|2CEJ7DXjbyfhB&HIi;eyAkBQe$A= z8igCJ8j0J5c{$_hGYh_nJDHV7&yTVkVHY3)<SbQ=7djxvKDt1i^^Zb4;7SVJCI$z~ zf${JHO%l>nU(CC<`?VTF>n@K(5C4a?USdc7`NEB6frcK(9bmh|DQTYkw@G(OesyHs z@l9%U5SRsKUoX9W{{%T*|K_l8_FtnN4bH$TkI7Kf)O4rQ4ld@5;(KqBnZK&D$C>Fw zKSlD5;}M%(PE#SN^v>`P3qV|Qfdk))A^0JMeb$gaBVTR9_q}tDlkn7Vy6C$)yPXfs zcUJyHBB$A~&j_rsWPpDG1{6HKAQ)i*%*i(?__YsJb|_AkxA?-k^_(q1_TX^Q4VF!H z74z5o+L~5^eOh!h0kKFpvX{;wPOC<VJDy^A8P+k!YGh(jzZbC+dy&};1cQ-+U>;CX z#KMdA4KdKXuN@zS9F?{b&vk{i0<I%>%V2cddlfbq;Xf(E#<r&Hm|rJ;I5U9$SH+CO z#{uH$CA+Yq>}9gl3%Fq9nzLc4>a8y~c}PUhXcL{rc5Pa$w$ZEKa=R=Aezsfk$kQ|< zZxuSN*)X`rb-!DcQbn!eK6d?2jxAmd)aNb$@fqKJ{{x@78yA2;k{|T1jaQnNSBby~ zIml=P@y5;?y!}=}X(SZxZqVWa^jCVd50nh20qddHKp4nE^TJg}OzH=iT=DX0vJwLY zg^}6i$zYgcuzA#JB-+qQZxb$M0O;h9k|nP;FRzSQyu)0MW5{F?kEjYg>po{3-1;<c z`@YM6lzV6W<}lkg?#3$Tm#q&Z&?pe{`tL-e2UfE5fd%3fI3wk9;jys(#75IY-;*KM zW4|u#!$3sOph}?{P++k$(rjZts6bS8=!u(*&CvMFcZD*0m<-AT^F30h`d<<-qhZp@ zRx(R(#T$HFdk_nodvg+ahdmgaxmJc?jHy_6>F+Y-7pii}ue*0YVa(+cLjY*jsb*zH zG7x-sb?Al=kpr~t31m0cQ%kSSN>5S=z_5uD`2)@d%wSP4akA<p-P}}wz0?eT_4E~J z%Y90<b=1J8E!N)TEllpfdhB=Wcv1fhp!L}ZU_PYO$p|2hR)V0z&8Y&DGA4F$**fsh zHTItcU0=UB7W<<9K`3uM)&Vy6JooeEIFr&ci}<!MPIXYmr37TgU3&m(huaK6a>C3n zGNH|Y<~p8X7RG}@U({Zd4qIzr-CzS82581V>!#P)2`3*&`Hs+EqK1KS>KeYDWSTQZ z`>73mj~H7@)<;+nrjlZN-x&K4KJ_6~LmwU+_oaXwWQORunV1IHS4Eq|<@sd!>pfS2 zqI`>=H()F*K602O@5sZ-I0uCp8yPRaL&M@A*B8~|%ra32nAPV@sys+vKePHdbz1#n z9kqa)^GWsU3uN}E!2;Clg$o>U`ihvmBROS37c2)Ek^Y~L4d65xpBRVwCtX+18K|SC zmRd?LYJnNpG6~>uB%?c%nq77&6MOHtYRWrM6^E5Lkp8}=N+(Qrp<0NbLK;%8oATWr zSY3Lsn@x>GK6i+coCbi;R-U%a#T5yplTNo`Z-a*YExnH?&5nbH`xBP^N4Vfsd-v+0 zA(cevA^P6bu9GnT#UjdEb3z!LoR&5xldA{pL)N95%eg%Y>#@df!tW>Gsu$(V5`cQX z%F$Uz)8KIM4}kNB!dy2x5CMO6ZVm5p3|KL{adY78CZM0LI2_BxcbEb`=s2tUc6$U& zrHl*B&eMEc-W9zXT@p^#x9ffVCe~=K%LWq-vy4YC`@goTb_DXLb*3w{A8K*kF$!2F zGdxabk+n9U(AC0^2Kp?#R3&Aq`_~KjwDEVMe@H+$$zb37_BWm=Yi#B~^1-Z0R|5=y zy=|ND|K<}RwoCd=K8W-<sbULG+S+W4Mu%w|aZF?~Af}yJlh9*je+Gx%&gM_?hw2x& zRWwlpa=rV%s2J8v;#Bgag$>*BX+$o5|5E=x57%grYBkWeO345gDZ81J>As9y=I-_o zLanYcS)ul7{ND@M&23#i0S*-Kx<g~r)AWaCBN!0gcc2s!0Civ88PjGO@Ly*e>ZUEo z@s0ZiH7%R22MUbahAetk@Hf>TLsvai!<9ve=6MG;0wxy1PupN^A`Rl8N#us9T8w&G z9!C0YD_=ulzuXQ%0GrR(TKBTq3?yA1HpcbpV#rU}NlKCEJPLy3hD?j@SC4|<6)a2F zk_0MqB@GLgXde2IRGIW{&R^v7OZ>->`OcBG-fCI5K}YV^rSY4Zk8uXYJrTBWgTmiL z#C$SqjQ$9%dTIdSumtqlBisl|7(!e(bAcMPq5guwn5wtD;3|IVce<H$p{yi$2mZg6 zG&+3TG1VJQZZZ|Tc6}DAZ&1Zlf$1ET?^1{VGk39XaOf!nS`I;f%$Q*UTzZ-b%IL49 z1a-1iS+voDI{jgv5-w++a0grz+3$ZD9{{cR{<(hpoFUy_j&^Mj#4dVIda^7)kM*2n zoYt0uEZFDH@I1u-xAfci`u2Zq8DKI^P6vSb;g=VC^jv!eH3(F~XAa(u%JcAv`i`0k z`Hjs)YMMWiS%wONd&>@M8+e+hQ3t9c-ErtOT%`yGN2E6*ePR+)YK6Ca_lNPLylY7N zDq<`k+0^p)iTmC{U}L^z4GZb@!SIIgB?tu=s*<kK28FM~Z<N0kj1m^aY|-m>89GUK zp+;os@M#&psZgHHZMFXu`Y-fT(<X&^|4W@R?5!yk>}80GRzcW?$&|+Qs+6F70$Mrd zXc(#B?Q=sXgYUm291Fb+2NLJ(gRR*=3@S<k|5r_$$+H!;&)ryvLnV*df3?bEW_!uo zSm=YwB#m^a%-=~QncsFz^cHqy+oX#ha5t;NW)k*W=V$sWYQAk_VImb^*i^|SIbrSB z08*G7x=xe)OzJHvJl1X;cOH~Ampl>Ij3fzS_>xV?6mx=+h#enk&dRi28?;==7?L03 z6|zpdnH$(l1hEFB-q=EV)nA*(ipE!a`<Axa!#pelR?EfY0r(#V_F??W|EfULxs9{9 zZLVy}t!FU(ovxTaebHj7gzc>bPR`~OiKlV;ZK_NBwBh*J8A*T9h=*#wj7PzzD^ICf zYKThD1_R=`L}1(~3vF*xlT7IRtt8ZzYA6KZzRVPedT!6FdX+aojQ{%e>(1e!Nu}?} zw8NkOQo`Ynnddc028c{jo9%atvxZ&L>+5@|ydD)vf`w^!Iw`;<9Ztc5Dwi+$PvyH< z6**FGt<(ZGg~y*jHj&7lSL<OVl0$=uO|1t)2ZoG&>#z%n_`{A(U+8dG2ol6j0<8-f z`zwVaYVMvw6%!1vW8IsXcFOh7uS>Y0y8pCz%%Z`9$o$j|7Jwd#o?<ZLoR#!yKB;P} zqeWG)8Q%(CKIFRApkONt8VnllpNeetT#!4)wzSIci433DjAH%J)jQ=Izv%+HJFj*J zqef$hML#|QLczzUkBEq<(eH<I{o4(_52RfHQG8D&Kfh?s!^`E)VVy_4y_THRC{19i zTkr-=qV_-lMRB$h`!P;YEMLq{EdTx+!ReP6F%se}_->x7Nocn=z7IJgjD}bYB4qh| z*j6#^=-<JLygXqfJZ_5Y?CcY0dIsd?CFGL%@fVu^2>Q#b<=D_?2h_v$+?0p^`;c2v zAp_)rbU>vM_j1uHi|2NfEd$v*KxgFS)PTco!>^#AV7SBpLa64hwTKVZv|2rIz4K3- z0d*z@O7h?Uw>Ef$hvEk|=o_+m#!|kKzK4`S_6C$M9NUSv4YScmv{*k|dO8ZNP_B@& zhpuIr!{MW=GJnjoknXV!bFh?J!IwDL-Ua+;GGY)q4<m)PHIHuO#?}K@<>k#UQ6uo0 z%<&++)ZjWSR4U)X!(%vlbEGGY8ZI6ogZQB@>bL{#%OAP1tL3f5Pw<JD<q-?(<MC(X zTHA)i{-i2i$rDlyV1WmHv8qh1|8L%*U;d@+Z2XaSu`4t|Wzo}d`2!?tVApv;{ev}N zl8pdL)Ln+N)%pp!t2D9SikvtPkfKyT6_Up1*MQosVYPjS|Fdd!wl!wOKZhNRtO;J# z=<suki_}$l4Gk*mH&2?@?W7;7fkwNf?$8&ttkKZE1e=YbM$%$l%sLH_)rDFRCLHAA z1U)<NF!x5FR;_Q+047&N-Xk*3JOCaF0$q{Lt!7Mer-=Rw<{260q(VeD7jCEA@W8`` zLYC3dNnkM`mCZAnNGWP5u*KZJE2JHitqpz**BQHC6Fck2P3nB`KA$ENS}Pl#n^oFq zY&EzM<8R|}%XN-<a<Q-ytbL9u)s5BE(gESE{S5fH_~?pd*A@4OR7ENOFa%gR5D8fy zh4To3&M!8I`t7$**+Ri2e0;yGhRi-jZ<zl(decvLr&MaBZ`I=M{XIhtvzNrI1*ZH6 zd$lAj5f=M|tc}ge0Cu|uf?lTfqbBkp&o?e|b!<5EznO($R0EIGrz@>ir8-}X;PdkH zhdVr94FA2q#m2-ChO<7dG+3>ona=Enqk@oMp7BsxAnj3(N59sVg^orW+tK#T5Be>0 zz-)zTV+q7X6bIH|?T&*D^_I}VjqyXKv<%Gd1ed<-CCMeM*g*;_!@deT7;wV+eubN} z?zY12JE@g0&u(5I7@pQE@<J_g5Qiy?F21Qx4!!RB*}J}=ZeWCGUhujdXK;OTPeZa8 zg24Zi-@H)^@gA=KVmxKJMUfgbR$YQN$pKw72C~*hDSVB~J4ra$nKv*w#dfVv-`wG$ zTi&>Krn24`^izYBtB*caT5R<_@!k$&nr`)BH7*iTPzGMVP!+u>E*i=@VNN;v+PQ-i zm4F-KC6VPq-zj$ouo9nW&;v6x<t^>r?9*E^H#sl6te-CIc)N|sxn6)x`3p!+E_RAl zR8%xNT_~s09)#O6d@@PC-sp%c+EFNGqdZFF5Ib&yAT>Eeh>F<;@3Gu1xkC;uw4qY` zqt=i}+3M;4QUvdM5@AS~pJ>Is6HqA=nkYWSeOhr<OG2;cK#}t@o$bLPuT=j1`<$kM z5x#k9TPMA&)qU0Vm=%Z&o)(ir{%}*T8)c9eJSN}AbYeqf1r2+dcaEbO?<`@}mbccp z;Ub>(E+!Xp{+el^g`-?d87q%&nCC_zzNvKC_10pd%IA~vnLJi7=gxJBo0Jvs?b?3K zoUkw$M3Y*`{{8g29GD|Ys9^>ZSPj%o)`FQbg!9Ydm$MfC<0uGZov3Ydo(3!*j+ybi zuU}36#F3?O$$LCmAt8T>>FkEkn1)`Z^g%rLu^OfH&fn~G))yo4`^K;$RbQi%LQ5FX zeppGz&!GaeA$9!_Fad9*tpPM}kx?{ri`n~Ej39_%CHLUH`Y9-;5kg^-mW>DrS+JO7 z-Wr(&Ga=a3r9xyhKXnKDMa3BO<H)lq1;<fEC>qDU6Y;ef2Fz&Mi;|N;XTg?Ye?5Cd zzR@+f<DUp57;`=-ELzlfH)yy(o4XqrPz-EqPHmt{&<n|hN&Cyqo%wsB{y(=IKG(L# zSZw9-z#l(YnF0CNZJDN6J&)saxFwHHnQ8u-^v;B&rAzc!&%`47F0`K)wlVcc71uYQ z$l_AD&M^3N#;45a`{@1RlGMkC7aBgD_$q&T?an<9a&xa&A}tfhdK@s=%mW#I?%gK~ z&10Qi;J7`ro2S~8No^bb#864gh8kiA;W^Ek7c4k2&YM>H!6FVOETuk@IPX+6IXw^1 z)&N(LfebKXj%T2KAxFJef$16$g%Zd8PT3j63)_EYHfTZiMbKOdPQk@*t%SGNT!4#7 zLXMYRmC>AC$GizSI$P}$93ujxR%AjMh2;R~7em!hOCEVDe1iN?sWe#smysNK@V)0^ z*oK)h#)GWO^~V4F^KgDxM+__pmZ)WqwpUQXqHgyCofbB#!H477!?s23DBFi>D4Df- zrNhWv0u97#cX8jhhXaS=A`2y|r&-jO;r=Z6+BSxt!)XgFA5U?#YWr^-Y^=!Tz48f{ z={&}l)#`|8MLsy#-#T6XAunu5nVI%LLHVFHP{8=0a5sBTGc?0ULAKWYBjDBT$E;B- z{$)qa9|I4PR<)vIY+HXeK@-<$&FPCWnh;ig6~Q5Hhd)Y1>|u&Y?BpOrvpOchYkkH^ zS^Sj1ROekJC%T_%AEyM_*>=t8da$eX1YsG2Ql&_T$s^anOD%6!(FewDR(UR3pLHh+ zU*)Pq!Nn{wi90a`xN)($63eHbIV>ZnumyU@zU{28j7Nhclc=5&_gIoS=w7i4c5pR4 zg?`}sZM)<Dz+(Da`Gq(*xr*l6=nI$aPC(n!L8^kBT$Z`2y&j1!3bK!#4YA13$IXwP zFZbs)=s;~~gxcT=c0kHZpm%ZYMstsVAV%Bnb)q|E^&&pvGj-#nzQUa?y#dt7(l~n4 z44)aOX6W(7!QhjJfJgp~r7MS$IZ2ffcYLE%?hlkgs*w#zMds8?UN(h^yVifZzFKSI zx186vA2F}J0o$1ri+frPLRAQi0DP_9wwru4OpZkkL}~6;kY6oYLhl6kHy%{q+WuB0 za3NxZZ5~)<Xsfz{)JGv<urKE;C!9!wq|&OF))SH5GvfAyeJei1J`55f)Ntmg2sP@0 zBO0CGK5$bDHlY$Sp<q2wZ;Q979i1~{sWH(D#7(6&i1H?nCxrY0cm}$#6MBf<fU-Cn zn8lL=t^dZ!wiSG<*v(KfE49&HokHK1Iy_rnZwvVnc6RhJnG8eplOCU*#O36orIML` zeq5P&yxHj;JYnWk1tl|9HgmW5y+|JU-u?`wJ+jN{OUW_A)^{x2lIzl9iA+B<+>$1) zY9RK8>YTnNea>1OHZq+4<^AtIYAqH!;glSVz|5vUsQ{yb&Z{CX0ts3Ir=%w$7`dtp zPF_i$OYGgS(gqoWqPpz?J@yO(ue@IwUz1CK#4I60j|&m5U%6}rhnoyHz*4#3goLml z1QdBLVL&NM`NdBDs#3`uTV`16sN!pg8c-6foKcG0b*eU)lsN4AlT*jbjG-K5j>&`u zK}ou_YAY^AWNtzqh`ZU=4wYYJTSUh?9HwPcy%l*cB_8TET$~M8CN4Vfm)K8F>oC zOk4VJ(E4KJe(}6S_#a;eU2-x@09QF+{>)si(FG#2v%9<haf5qwbhP~zEWO&!PL<-$ z<>txZx~C90`GrP_!64%!fn1MvTB5wyBt_sOdi+MK%Pk0mh&%<?+2vJwMdbL&pIla( z>p)tM?U+x;UEa0*&rfIB$uaY-fKysusDcI$Fn}-#3l~@y3!#mm2(%4MGrSo^qOUCz zM1nR<o=b_Xe_&6&w?-mVM2rLEUxuHDF{2`sdTNoWQps^f^(7FM67m9;jLglQT1Znq zg9_y3)aN`QGaW&Qc;-RK!aJ^qzQf(TYOI9_=%AbZj256((Z>Q+2ZBnZ`i?{@>t>ZP zwl9qlgUa<8uVK&jEi|{i`f0l&N(-2X>zD-;&1|)fhqY-MuC|&09O^QFNR||hQJbz| zxRi(#`k4S<OQa^>McRME9ES;j%ws&1OxhMHbi_1>%*W@rd{4u&Bs4T-nm(}rGN5pi z{Nr%Of$^?5m2JlE2<19gI4>xp9fxw}bUsFtP;N$gZDyV==gOP?t7?tgGXzd7r@B^f zq)IUr_|%i;iHOxtEIG714v<a$-1qZ4JmU}n`qYnXZr%l5zciCjIsmLtPi*%n@E=S` zynk_*5~@yJ6h6+eyu5s5AQsU-h@svqls-MGF(HbFRKGeM;)o&`#{ShJl3FC9YBUW} z1IKUOsHW~s;5v18;{@0NS<-X^-6JeNgj@iYvD3C+;n=g;u=~x1rJlYYa~n2Qp%9D` zp=z0xGKvr#U2|1=!|A@5TT)RP!)z4w7yyDhz(5upK={+*ESNQ&*^HG&fBh(sMDii= z&a2$C6Yv{@-VGSTaHe`~%J{|Ckocb?mqta`Ik12ZEo8lG76vDuctnXd9>pbw;yVdS zPqu@=oMYRTS(Jw<PuQuqU6M`?<PWG*00^B$XyY&h<E{enL~YU0eCrcWIE^GkJ^qtl z#9Ah!0vd>ERe}iA%k5DpozPb<BrHPuJz#zKspx}p+kwYK80qu<1hqM(#dO+?oZS$S zp<{Co(R9opS$%1G({}iM7TR}0-+z6de^P5<Cu)j9iEKwzHXC|BvfS+-<;(hYP4k_8 zUUxTI+HSJVFd1rkzI#fQ(582h@<d_)wi}y?tEgAdSFK>UZeE61BxeF4&<!?)!H5c! z1|N({J)e~dPXlHE#!+Gb>AB{2=5ou8xJLe~msLtUfhPs`(65eA7W|Vm5<!c=Go1A_ zi~m^e#GQ#d@nV;_`?s3z7gknQpmroWK0da4eYB;dr%x;?p;9KJXJnKwkWMA@heC`! zIx?M|zP3lRl9rT=%gG@suB=R)nvx3*3qxTNij9q(+r1FWCbaoDG*K%5kVdOXF0`kn za&ONt-?aw~53b*--fTepkVdS9-r48gIDz`vOx?<Vj(|e9xZ}B&e*|{Q4AVw#Fd%-R zG+LGihf9oR`|!5F7q!s6%3$|%Cvt`noAcQ8KWcrQ)jnX(YEuJmIT_UzuB#zQ#>QAc zCPInqV~KPUc|JiESF9_A%%Zov37{lW(TLhL=*KayW~l$6p5HAj^gt{gvHTr=)*H6U zBYcGIpTHgNNlxD#V(be&Rz-l;i;w5De1v93E|Or2cQD0yCV|W<#KGBj%j?&_v0tgu zlZ--LWqu<uMg&_XVl*02q$hQYl{RB2d(!n9%UP7eW{J~|kfX9cjh_(f9%MkR_Q{5B z?9ld)NJE6!2`HfL<htyWFWNU(a3MxSFd2`1f7&t)eEp_DAKnP#QeA`m#!kR3c3j=$ zrNie0_%E^9M}u)Ofe_58Px}Q|vTAp!+MvdES7f<L&wp=!U);;9qh&mWRq|sSG?~+} zq(ozvQ~2HG2Mf#4O1;JYtSq0hW%SvZB_VR}ALx?^Ew|%*Cg%$+Ojh&w5+{TB;N35v z-I!h-?cZ>4Xxgr7Tb(Zfzy3Wh#wH}>cVT(~x`y|L<BXnfk3T*{pZ`LA?vQV`m1nS! zD~9b4e-U3rvxVJiha8en!qjV1569Fb)T`_NFjkHi0J6&|r%{>7ruKb}!DQ(;!W$KW z@CzPyQAeV|U}Qp97r*k;@Ui{uF5f0t1*j!4nA)=@IQik~u%-^<r);9#sQ1EqeJd(0 zjoTkh9IY`L-RpR{hzrJZ6AN8;cE}xuX~6Wy{r~13fc-#_vt<`kdySYjNMi_f6hkta zu0YmV9ilEd-4mM9UO5cIiK=(I!Ln?Lx^=fwmWQO2U!>TK1z$izY}!zxIfV(fpp@z` zVRZXUAvlI~@^xTlb((C2koA{i<>6joVUPSDa}25>yOR{+F^p5Det~9Go!~3l;I(_y z=?~v`7kt5<jZVe_Dwjh(o{ExJ;heIYnttMaEYom?4MvMK;hd_o(@c|6MsVsF(>yR* zK}^#Dd3>B9MGfoSE*3pUTqY~6)YF#U?{0fXjMp36Oi%qK#Bgnd_JKs57?B}>zx>{n zA>~?!mljd~vo+P&^+-z|vpp0;OjSWb>BD#shEBcL4UMm~xF5y)Y+ASwcF~|kkC4=< z$2+gK^6+=Nx5oRQm!oXAvL9usYNd*<xJ8%v@81>r$z@v23Qp%Mq`kpkRL9Vmq-8R= zDUWq?{)(nsMt>X;k^X1i8ph}E&UM6(4LOXYS9#OY@l3v7-)Pjb0(3`5Mhpidal__& z;Nw?TG?ev%rO@u(&+8XQrm}_RcN->_H{7w<%_aqZd3B-*fPlkX7+P_w<WY2z&fiJE z@(p!1j;tg81nKn&VwuT)6H<D=V$VB_rW?D2cz5;y3dUXSrEJ(HC?IYfM<3(3R(-Mo z(UzHS{tZAnMZMc^l}x1!z<5*ThYr9ve6yW?r<>8!`Nu74<|?Ol2g<;f<g`=ln4Dm& zLVRb8+Lb{pcAkznj%@A}J-nSF*e8uW5vV~t>EWToX!gB-GcdMq4h9nek#ztM*9=0M zLVuDaTeZ=oGy=~&!sFl0HWlK~l&YQt6Qurdh^yWB*I^+yc^HRP3f)n}?1Pe@htO=w z$nE14#VVFqH5x@$J-7HwHn1yl(SZG|WW2ta5e!f{TdRsw8ENfy5=4B`(#ZHxRQ!Sx zrOfPU!fR9?Zu^)LVdKg|k0Vawx2Bu_dHKiHedR3<i@mxvn4x24Mgh_e`HUc>hfj>x z>-o6QXsgS&oJj@-;Bh-G8fMjV-SzR=h{Wl(iGre{(cwgTjqy0vYjkEzzGUJ^I3{yI z5vDVr%c~@PJBj=KS<JmpoFrYdFn~rq$La5rI+Jn}wve7$jb;+r$G4$BeJNCbdDcsO z!GinSmp)Kk{SV-h44TG$H>Ws))cJO9z2C6<Tk!~Q6u)&goSqMqj0qX)3tm|lvDd~D zsNEsA6K@bGJmgFyx>9bP4W>^V(GyOq&|0=$g)PpEbq;cT%*x0X0Zt<fw+w_$k52@; zLlf~H;`k#SW;m)BpLn*>NmA=3rgfD+{dhNw?$d*Gv>LNa+v-aND9xh8yJsud=gB2| z!{nJt*pO=^Q{E37Z=OddXFv$25P43#8=NPDcBH3p;)FcrtQI>Y5aTCQ>fpsh*8>Oy zBw%BET!c1&llrKhjVVwHuf-D<Rl#(@N`fgC&DYzWuZNYeO%j&}g{y+$mr?cBbjJk= zXE?W=nvCNe0v4&hYS-ASoKGr}`cg_sA`^3v-L8qkOwAGJ2is24tKuqTAqpfINs0{J zDWX=1&x!hyAM)DVgZ@ZCN~2Ld^n!FM^cuDCQIZ@$f<Oi@fPdvzk)YWryv%*Q-Uso~ z>i%M|PFP!1Qy{Yw8#IcQcOthNaJH_e`}J)vY`O%k8uYpj$KUG$2fnF-YYa*^E!!9M z@Ub$Nn6(0zbvG{;Q2W=#4**y|r@vy3RBvliThR|iDwNPMzASR#JNaeXP2}sbtha&` zG8p>DCEwwAJQ|)EQpg3b$TkFV``4rNiIBPx3|57*nY=x`@bK{Hf4k|$HEEepPA-}- z1t>5Onb027_$Ux`e|g?1JIb1$<cY`4m6zLJ^W2Zx{`F{cw(^jHJO8+n=cyO}J!{6l z<G#Mq5lH`VhmHtM`>t%)HbBy*yz+)FhUpT=&H8JQy1~tAAQY3Zc__0hwK&;S_OTUN z#-n(_jQ~GXCKxH|&;srN1D7biV$Z3RhEnn$Z`rs!yt;k|rFk3QlzG-HJV~=Aw|4D^ z(G}0!fBxwmcPzGPpZ>T{?_KPRYHiy9d9!sHoKVaOL6qT#1O=)5lI^$NDCg#)V#lYI z1r5%^K{&bHlZt?J;u>wsgn3LUFUDirZra#IQ}Rbzx8mJik&{K3YR&~VK#RrAhpKXP zJP{CqkdUBjUZsIN>p=(6)nnHNp|$hu)tqKMI@#di1vVedmiv!Y?4O<`GZ~#0C|lY4 zAj|hf5qB$I6`D>R&+qv@rAm<9?uTE5N+t;AE7iqK;5L7QPu&ns$Zl);F{17ggQoRK z2pF}0%r&VJ$icecXZ@4zg+TiL`hV<~Q<j$`6g?U~ec!1nD?tq!FP;V`-V+7sF!mwM zO}(MjE#nGC!c{<l12X*%+0_(ZpxmvAjM#knczyo;<x&;Ho7NYVGokU{>mlFul0npP z8i&2%Mw@Gm%auOq)QH*D+sKH7>rN=S;myIg1cB3Z&d-mVw47T!7%<@9eX72?5P)<q z!bsWB7*@;uG1}=1H7A$DT^is+>n7C<{84~zJ0@blhY++_u1TKCW)&NZ@1<7Je2{{4 zs{EH59Uc8-Fmg*)N-7-86Xun@d0HX=PR_fMos`So-0;`$1ROsx4Vz2m8T{kH+#GPj z*Dkp;V_#*zuF_nN0hxNlP9Z}9TU8$)aZ7_#29f{wEC9<gFu3#!>%!;U!a-^88)v^x zfmd3h)d?}tv*V7tr}9P+V6r&)-5K&;U#325t~op|cD|E-+$zFqqu;KHvr6pETm~ZJ z(l31;o+z*L@S~}#^6)@JDFjT^*k4>g<>(KxO1=!VKmtVD!+5jMKA2K8W|+fQ*{W|z zDz~B_FvrNDJQ49pt0tr){bK6b(QQ<#t39WK@TCbd@O+Jsy3nJ4CxX~uSOt@=XJQ6U zgi7xZN60{kAPiyX#_@ew2pRY&xL0eepw({Nk4mc)<T=>leh2f8C5ZVG-S}Is0%!~C zRCsyQDus=b5193AenHx4fdwIKzKlZ$E5q((@p@hV%_mlN-POe?|K?@g#38<wSCk{- zr;lQ!?N<MaVW!3i(l>;b!%nj-+`_R5re%L*4<weGi5Fu&woq^7nB*5~qauTKkZIq& z`zCoF()9B^PBk|bd|*J~7e~0}=jX3`;OQy4)!&C|;U*e^jbBE&eH$aRn=+Z;EVJyp zPF6H!Tucn%B==2ti*EbVK`MF#Eg@mHwgn1}>%X@Lqxll$lL1~0whj^7No$W?>@db& zFT?}MQ3Fl)3pX9>W*?C?QnBI$|NM4CZ!>F3@DRaML|883UgC+Nymu24-dhAUGPEE^ zHnF*sUz+ag*l+7AT6d@81l6Uu9_KF?oX)>o&z^rw+=W=ou3C4}etfwHCF8L#IfZyr z2geS2K~OLD=3;A6@Cw%ji%owrY)oK-5(0m_=xj9V4Vqz?L&E4d)B(5c6c)>5HE6!= z^zK=0$TTS71hriJKqsbB{KGazz`TuiJTqz+Mysv<G;ap!IEra>7W9<{(mselLUg5~ zOhFG0aW;}!(%gtKiGXHS%3T;d$#nTX3u~H>fMm2pco~GZ0#Ycz?1vO86BjRTIG|CE zHlz%zfJ8n#G2b5}JL)zE>*?PHSJ8}@=>v3hi9I3}&fOQpc>bgQ>Si!<*Zg@qGAe-& zH7pTw{RQ;sXTj8uZZaZ*&zje=H{0ra>TocDdVK@7NG?FlGNTnJ`I_E-#q-T1AHC9D zJ_<MJpBQ3MFY)+<!M6JqiyE&tw|e4HrF3XK7k<#MxaoA>>_ck=O9D_ZKlNdCk;U|; zMjq5SlPLwHLbE%B-6O(LiQL*^9A}umA8@PFhP?4y4-sD{RC?qqhNCiB5Ah$ZHdd-K z$f!wFqU;!3U(m-!949Eq5u>1ggCJ~XNJhgTGBEHbg-T`8dp`u1KY!{wzP#ZwWRQVr zvK39)RP<y#cbH6x%6vb#g!tFdJT<+UVypj~+S(=I{UGA~_b~g@L+3wWs%~r<!XN6Q z+bAqLh`>>w?$zTiUk}y~lE8o!<i>biBU4Sv!2mFhq_ABroFmVMsS?ThG~sQ(c7mi3 zwIwyiGLFn8J`c<a@&JD2D$(Cb5DC2|9KdzM_;DKV7MEBn5Wx3a7k}+>*n-v7ks~%F z0)b#+TU+m4c5736zoxuZ=*r1|JiRO06KapYVvoY~4?svzbv7I}5$oJGNx~D(3fw6( zMnEq>X%D#WpEKg{+l3vY889&>xeKoHs^`AjmKXmSY6Rdi=A2JJg`(7EFW9aEMt8YC zK>?dhtigDG#C^&jdx;m6n8_;1E*}`%EFieQR1q`lhG+Z6MXHUF4K_fgMehqt`TCW8 zoPJ8p_qzQh!Ny!cA$H{QM*%-zIMuqN*atPNKh{=o9Zg5hsqQM+f931T{dt_Kj_c3R z#cLdobPW{60x9{PIt(ovU(Kx0D|Igp*I6v`3-^E>BMu|SYwo!%K7l8}*ND>eh*9J@ zDamjpP|V4LKf0iuk{Y{xZ<n#NQF)zDT!pMMX&2%T1J)2#z<=g(Kh9lg0P*H46PqtC zgFeT8#zy1H2chX#9;BAbRv!$=U4yFfIep^Hi$oJJF(6t(kp%gs1%Cir+N(B?C9jio zEO>b_uAE?QE@x!SFPv3^BD58-Q)mnV^TUB+?wS55ha27|M8krn{*@=MjA1|I(1v_J z<O*RF9<@!^2-lE(xbc8wIKSv1F2tPG7~L%rbWhiOGHA{i3Raz)CVgxY!7MvekPDAn z9aQ(AiK;eDTZMR08jnU*COobhd5qkq=i&ZPiDJAdm0)Z1CL9u`r_O}UU|p|7#!W9U z9%5i5GL7>IA|a40$MS|oiGau;L^;O6z5_DcQIuIG?NZX&7#J<*GQ(bjGpMw`fBMq3 znIvm!Yn7`6YOfr_#$(3?Vt6+m*VYH{NizI@EE<ROo|JG_sF-=R;d6AZMkWruz@Q-s zbY~>kHc{W*C5K8tW=LFjz@+@;>bs1qD6xNc9?<;72&R@>f>c`ex3MVq*ki*S-#RtX z0;II`#3j|aJTpqUOWf9xxQ=r~>3I|mrs!Hf;~B%*cbuOGfvtwD!5{PrN{!r5SZ+07 z-(%RNs-^}>F|6oDfMCZ}2}IDL075;H7Oz;1q1+cAVS7l$6>==f`!_e?6NvY-Z?PS* z4|Ks2ay)}UNt0Xpp(%)s(EWI&9BJ@=pnvxSp+#T{DFoe^WehAX01+gOm+UXZU%xRl zKXSv8yuP$aFJnl-u-l8kD&8MC9lY*ETF_a<)!s#5GCE)uL1u!-VyXH+)Bg~Lae?c? zlwMY0e!RqM@U(ANqgr=1QX1SK89LTyi#E{iptY7r1=2jB_%R~UTEwlvt!FQ*eO;WM zzSi*b-qrYEz&C%dfb9>0K}^xOWJ1>K8dcf+aY55MVY@fD^yJ6DRB}y~em`8og<zF` zcpQ+fzNG7?eLt)_*#MED_&s_Z+jc3zp-*Qsr;W*|AJ9@{r>~3)MOs)@IxBU|Q#^94 z?2k7};LD}BNGL`Cxs-_QeTJ|VAVooEW2nY4z1eXl>U?;C)phM0^S+?$xK^KW6Uhv( zt3CRa@BI;IU!UvmyQPq)7d^;bl1e{}`JdO@*<eo~$2hs&I=cM{sWB7Xb4U$oGgzd5 zC;lJ0-Z8q)E@~UyVPo62Z8lD$#&#OpjgzKHW81cE+qT`<JUe~fG0u0!cix{FS$psM zUQ^dxbIxl?bMO+m;6O)h(M~NqzW4Xew`}0(Pp=Oc;anms&pd4jb+r9<!hq>kiVPZy zZUzXgSe7yisv`3I{)Rt5w>GEoJ1+OBs0wuo!SPpFJWQ3209O>H{7<{DBkEpIXKBF- z*#|HH$~k}LS<hkG%2=J`{F1gyUP)%@2n5j<*|;_60%;j9^!sYmtf5L(`~j>{70nq} z%z`2Mq9sxOI5=M>+2ouqdd}h^FBZaGN;ej$d6;GG#q?gvQL=Js>3eiGnsD?2b^1Q- zCv4UR8PEIKi`B``$r}a<D?vf$#oxf}RwtqEkq;=WSJDG9P#I*_yI(4<>Y;9HP4<T& zy&aD`f28pegkag_&f6b0<U)Ei`Mly=dVR&gDD~7c&{l8&<cwYk)IPlt2*R--+rmrK z*k#gp(IhLu7F7akY<4?Z6Rz-|=SgoJ|BW=fd0!M`YeJ+cY{lUclx>L!&m053L5XOy z+fOxzvZ6bOhaO+CDJctlHNmN2RR?_>Obq{3AxT*FcOmaoVK%U<M?%_hKTo>aKyw;j z-$bD`w|yXvltoaWU;73G>#COS#`A41&~c}vJUt+Vgxh4i!Nc1tr9^-YNyUi(d^PBp zrQA<~d>%eD|Aqp9sLFr?02rfyYhLKFo#EvMd&NvE%`TB;`c=zpujW3*pVXTGOt}PY z_!QF;<NcCY#LDA~xhA!lBs*9_!r~5;hAK`c{LYk?^=8!&FgR)2(Ny2Fbz$l);j;4U zpH3Fj4gTl2_fp49yx1>xLVX-E(;SwISqVkm`|42eqgmT&TI@tze0ZxnU@|<zoc;6i zab@nErY5d_uI%4*w6ja?<^#h|1T^4xcaj3ir_q$-TE9_}{zUOsZ++(%fMlCl0R3|_ zd5~WDW2=w%ZDplQ8%!NOt<IGE!hQYU0s6z^ViNS5?BASN%I-37t+*5$v}`jNnpr=y zu_WR!^OlqtGjux#xO|UIp?>rltRxB%NXTR?G#`At`7y&R3Q2os{v-?ul@vG`3{*RP zm6WEA?t+}6U+pb78TODM1SjQ}31M;B$5M(G0j8iFW-FH9q)7)g*Ee{}J~i5qAdgL; zJ0+VLiDe}>NyoWZhk0Fe-xCBt?W$jE>7c>Y<M2>JLj|ZuR0r(oFP@sUk2(~I?kjO4 zV8yft`z3^?T+nFNzGnRSGqglsLh@3m?)@QEVhl2s^ZRcAK(2$s=r?F-5urr1MvX3% zOZZnYqJqs!FBaP+pb79N_t&)ZX-6b*2**NrQ0u?zB18o@7|IrW!nJ?%aZldX){r<{ z=Ho0Jp6L;Wtmn{abUH1{(3LTYB3CK}$yLm5Th{v{@g;CfU{FePwoTiR&Tz9RP<%`# z+aK>2AD_o=H9w|FoJogfkl|70v%kE5junSb*nT;#&Fi-5i<qw%V-W)*Ur*$o(w_2C zT-+N~wLtjcR3ax+>UQC{_;1MI)Xd2AU(o~Z)NPXgBjM)yTKTNU$*2H_^)AU$TUt7_ z1cA%_+PFXC??}t1sG#DtbeCd?c>z>;!ej}us0E91qC8So;L=;^*0Qng&%LD5N%8Z> zrox505z8Uc#!gHlYnsyzql);DJyqcH4Io1LVt5uVblA9sLV@=KUDy4Cisy--rF>uf zLQ0wS3Rb^@=aR_dj$xmKSIL8N;DPxCUjc+{(xZ#I{wzFG9DN-?808ndnO3~xC*Hae zR0~rbL%f$_utAM8mDjgQjpDdNtaAC&tsLTy0NY)RTS#6siwWS$aXVYpuWSo}FL8_0 z%YZC^_sdkYA6IbzN-CW))L7L1Hy)#4J{CvgxNKZ$v>`hlb22f->Ppky>HppHVtQrv zC^0OQ-O{3Io>=v=-s(C!>3z=%4GkTwWz#G+5J^}G3VFg_wMKD=3-!D0VZ*b=Y?2_p z&~x@1Cv-r_(b13Lp`oaD&xeu{p0(!Y!wgU3g))tpw6rs*_Al^hKd;EyM!;<N73s!& zOrQ8>%r$HxTUC`KUEw=A9`i2v4TXSDvw78O`L8be(E49}^oEx<xBX^<*I}m*I$z^! zf|Rjwo?$xEy+PV6J|=@I2&E^H$TMYLhC&z{VOLN26i2q{V38lPbZ_q^(X6e;h%0-b zhCJFll^23Pg6s>H*L}`9S3}`>ZPwM*$UR-Xup<BfDyFKjkqBBTrJq^1XrUNXh*X9E zid9-QEt>FUHYN#1lqtLX7QIGz=vrR|Uv-FhHP9-uv`alXX^Lkx$crgHd20^UGNMR; zy5c3bpVXK_8twstON4^~B*ANne!F>CZrhQ?yXomG)1Po(^nO#l-j|P{0U5nGJqpYH z;KVTB4DA~%puDWjgRTv9eT|isGV`U*JD4<7L`bIk(P-DxY=Q2skk{KM%@+G2%@0xz zZ%Zu!v!bjluC9*FU|FA|<mvro^Fx&gx?W1%BFUT!TnrLkM3*iD6CE9T)TsUWq!fmX z*ef2i`ZeI7S<;@Kj!ro<w*gv%8r-m@M${;t`?EBi-`w<F=N%Pl^bLYd`QYXk_~Y=R z8Mz^5QS%xB#G2D=7^>b2!oLISEANZ{W@8vSZ!WkfDJ3#I&$-btbzIk-Sv+okghWQF z9rM1XB0@naj4fA$dOxt)iMYtx3JU&iPZ&YfkHPz;Pctih-rdiBC*x+1f8b#MZOX4F zZ;tDUFIV>X50X=sDP(Dj`t;DyBkvLxTCK^+uwfsT8ps~8-89CLL0I_S@yRa=cLeef zjhQ642s8lEAMt*}SW3-;oD?J@1y**B(6)+KK3Lg!5?@&p7HBVBHXc>zx(2nCL`>c} zAEWv-izR!aB)(0JD7dXJ%#OxY(!JTgMpTbdk&=jub`ifdO#>=zT8Kb)DyuDE=sLCi z<BC80+eOmR6Z{M0MoAMn3*V~nYOBxBB*NOc>xDMPPe{4vbJ#RemT3d>1)WsYktI0~ zwf@l|gxmmw2OJO%q?lOU^0=z8u(IxdmK%;a@o>zGo12?M@q5-2w)FR!a>fn<p;3*` z*P0#XRn(-^)sqa1e?D#pe-_0c8tfX=v%tV$RTGoA9SgMWx*=GsSJ*z=I1(NG%UMz( z<vOaIxa0OYN%_s_N6wfp5_0UXpujtv4Pszunz&M_$9?P}H{JVu#aZQkj&2&yA(Jft zW7x}ovCQ=;y>oNz(fv3-QMv8<udR>PFF5R+lHBPJIE(opPR0)VQ|VezF7DaVMyu}r zXT}Y|ycs7Zh$j%5{WagYC@SSJ1DZe6MV2+h^$I#mK5kV)<#)NeJt{cRAaJyrG;Gq| zAND2E$<!sl^vA<CX+e7-QQwz0{6@W=5tF18LRvpQ-fHNq37v-+JPb-ash@5+pIv_* zXwpb5HtN&A!f-8`n!jfs+)dV^F9|DZf+{tVTL0>rh06O2^rYXx^B0ubFkDP&#_RgL z^;7$(#o-SZz`xA1XQ=LGDKN(DM(3bbD1|50pyEtP$YlzUv#Yz_pY!^%3_V@D6lCtr z17$fRn#ggQAGpPJU;O_U$2`)lP!}LKs|*6l^g27{qmkjZ5g=z>4#tvmebIOxhmg;V z@dU~k2;2yCB?E(lX%9Y`luYJ|6hn)9*a!>R^g!jBV0&~Bl-!d2zw7u&D}IC5Qz3Cp zOrb#2G)j?^mUS#{FU`K5SjS!OsPg?3W)LGEi_1F@=fQ3a1VJ-c967SkH!nns75kw+ z{G4Qu_rEeOQF4lpzi$#2omR1_i7Mx@+Y%!0uy7gJ*)cS6v^hdrBT|rRXDgT>BO{|S zrR8+QDs;+c9)AQvq8f{Nn)yNUMD3hseV<!rS=lhd^_tC!h73r#n3(T*4aaaa$7rLr zf?RYO`Smbx?vFEy4zsu5D*gTFLi#Px{fe9<@p~qDqjs}o93%?oprZR8zatt3=8j76 z!zNkxgWf(M^L<@&$Q<AeV|h*CRRDbeCa$$_{M+sbqOsv;5%IjWDkre_o^f_3YLtko zM3Q7PX4<$S8d8iUF`FQD%Wzk!Cy`8Iho)7+ST{|ibt7n$1*dt!VTnmA?7yRvM))A? zQ9x)4MB1UFHzEN?KO?UDq2EN}6fSxcxgh5qm*&J!A#X0mkFUpqi<K6gq<`Hb#=j_J z2b+uH4Pw6{AagA@ANv0EAR`Qm-B41NV3Jfu&#N5A%Mn7=!#s7ptBfW5N0ne-BeD89 zmA=vtNxzXF`xrdj<=eP`gZWMAJ9b$WOGNc*Pk$ySq&Oeq<lye3KxFQ9o2FfB6YuOw zlgExTQ07UCqbNU(<MD=yqws#$&XedP)AZ!9i%gYaE11VXf~(3-HiHPGIcBV9PjF=R zbH49y`kAIZ{;K4bdDa5j>EPx+0JC-@=!a4O_>OD+ccnfiBclR<X0xX7ayG$xp=_n< zuPAP{?O}RSVZBl(wNS2As1yL*gG6O;av86tOD&T?r#OaW5$%+Z%x0jc)nKKVQx)b4 zb!nGoyyn3Ao8+Ma9h`TS&`0p(<iz;tdcVeMnWg!n<7F>9m_Uho2ESb32ly&l4SCe) zw~D?zV`Y2uICy|uhL)>remT?lJu-lj6O>EQK6!KtnhQ;NfjVKJ)^Zj=rd$epNvO@D zeV!JZCzP1chGnM7^xc@?3$H0Bhb5N(PfT>{b8anU%B~>%U6!*Of@{Y+03KD%NL;#( zhKV$9U{|kyG_!PSxc+ZT-tgu^3}ydhM=ZE>L-RiMA%*OBsP0g^AK`V2RN}2DWwGrV z`!qU7hN=ub;bZ6tI2Hbn=dfC=#^c?5DjiA8bMca*EVEG>5p{$S?Pw{KXPNV`W|{Nu z$Ib_J%8PR&2|D9l!(X`D^K+)<<F!nmj<lF;wm4ecL;mYha0_w#R$%a&;Mh*a>}N^x zUCiA}uKN0OK3lzRe_Dd@@0_N=j7g&INf1b8yY|_P`)x434TvqITvKUZdR{C*CP_Xm zf^R2m$6{FAoDcGw@`CMGBm*``G`JtnM1+lu%Ewa9?btgGZ$dXF%l!X`_0M#LFuFbc z;r>Uo^3)?>%};XKMHFRt-RkmJNtj3&tl&xMB@FcX=3xB$Rv@jNh;LvDsVwySRsbT} zY<!ri_b*>a=eePGef_8TN^cbkxwIm6%C$BFE(r|!pp&Pj^2-PnFlzlt{dgm?-N0wt zo5M*pubGFRk>Nz}&hkS7$I?<eK!1RO5=(}E`dnDtf1OExEbU1OdCVZgh(n<Vf}3Mv zbgKpC6_sApal_W9f+&od4}Asd2kQ^@CIS}Up)oq?Jm`2o4xgf<Z^-wiNOP-B6DTzN zfPnzEOD^@gJ-Lw=-n2|*kqQ56{L2)IfhOECrSW7Kh`O-80nd!C2*4EUune^Jp6K}} zC=NND+1SMv=OLU*{_o`b9fTi7amc3gX|LBFOkba=k>5tUwTbmr{F?rdwByZ69Tm$; zsN|*=A_^bxbi^!ujH>)8V!vUmlA}r(bvimNq$oNO*;O=w+O#SLwYxr^0IPXtQu1-| zlu3V-A={}X6#ANQMzr2G_#c->+h8ZXS&wt5WdNj{rlz=HV?9J0G8ZwL5+Vh(%IYjg zoSm5&u761Gl8J$DcUK>w9}L83Q|Vj`5gIlgAk?yI<f$EUE5y>y($Y+miwizY{f8B< zQ@$T6E?0LC@qdgJlOW)7R05OwQ7INc6)oLaHp`5^zP?uVLoJxF+Gx|*@OsecS2nm4 z2)Gg!3K~P|m_#F}VP|MPW63WZaAXC%?Gk<z(d<pRT7yu+68Xz7z|Q`@|GP?A*>)W& z&F#GxEuoBq{5?F==iUA3^=1-1>65g$9`#7hBFeI}B9faTz`m!tl|^pI=~!~t-Myo% zj4s~d>%edpv1qiRR<SSYiLKqZsR<4!Xqob?rqO<4VOC`|t}MJw%^Em=oMmBOX&kyu z((TvY%V=q3($(mkn?-oaI3_D_Cy{fA-9W296Lr#g19|Am!m0Fn(2Wbk<jK38p1LuH z>2N2wKM{}&N>~nG)>_!&8NU94qMbu(GN9W-FcxjK26aq)t3G1|K@RPh@y_=1rnxtq z$A{^y`FYh74YtR?q^a&_22dxj2%q=TU4_=`@hQ|#8|}JHM{F3Qt1^{rD=w>uk8B`} za-Nb|R`zu(m*3J5UO^)-IQ3w7TUy50+GMvi?nOsKE84^d<FdaWyFD7G>)Lb}NGLlQ z82`m=G(hz$*EB6jL#ERd7uF5et|u!n$H)^2i;3$Ik4?Qsma0QlW%D;$8Y|6(E0qhs zq(L}<J{}HrabOYh4n8JZp~!5a+~)9eqUvz9FI5kS2RS_-UYnWS@+a#DhMyYDFVHKB zjU$!S)Jk#vpadw_lZ2!#!%z$Et9l6ikQ;Dq+Z4^qnpx!DuOfY@IACbE6k-FjAf3Ns z`J$8&ckRHaCxypjlE`8MeS>mh<A#S!`YtdN=$KI;KDs<ewJl*IAmFuG<6@7<$|9<r zP4^rJusybKk2~YN3LtYCn24-wdv3mDNH1@5x5ku+j&rLDgoVq;Sr-+F4h-WQSs?w! z;-nH`Mq$7s@UjW3K#Us)aI{sCe;4RAiwubOxH<wUDq|I@W}~WEK^<2~+}p=rRtj4p zL%15iul+@3zcO(v<wDQCqE3F;Z>=G{8$``_!{k~pNe7N3Ow^xr<1+S;KUp&;t|aT` zy9Q}Gf?tcGvUqNVh99twrPp5ll1K9<i!n?Nkn7;4RIC;+O1&<fmoR4cji>0-PK+d^ zLZp*s{syrE1vq%~a<2h9OLU0C&fqQU#9{Q>M%>B+?HWG$8yp{Xao?kh5_SP6%&f|5 zj867x*aI!Sot7+T+RHZQKN;HxQ977WdpBjx_MgSl6-ZUg_DA9^0)z@r9tT{z6>D!X zwgP>jsY|u1l2b(cUnjd*mLu2nPLdR?!b!~YE)XK&6Su*7>|hgrZwUb8s(5m-FQu4@ z3Y7f{hmuRP(sJ=udjm}L%h=^SmWDWZ_}|Le<*fFi2na%vr#=VY;nEWm3)L~!R9L~} z+=O4Q1_?)ZBLx}e7z~^{Xe*jTD88lSLF)S={X4@#$2;(^J=vUB(<`6(!NV#Y`cA;_ zq3nkZ&UD`S;f-EbQ|Y?lE&)P`2m4}Zq3GEK?F#KKw|h`RI(UKFZ%;k;QR(w0vtRD> z(7LH|cm}l#o?JKM8>gunOHD_ox`i0zLi#*7WR@IXLt3ijVyYr(^@A`OjgSU2{3!V4 zQguA`yDFn40%q~#`Dkf8G?$CGVc?kjIj!i6S2DIAlBkMfaR438VE4cx&x$?_cbp!5 zYYnZjwFUG{0C6Y|I+a@ZpXh$l7w222!-&God%yat?rxFgKh4GooWgPJ>IGz9htQ33 zkY64H3}_w5I>lWMl}838{$z{IP>GU&?Tu73Hzk9~9`e|^M+IB(m=_JyI@ng9ja7hB z?J_#XknSf?gQ3^vH?=6fw~*uF(3phwJ3JkEU$1jtg@&Wpacr>2HDVfV{A|;1FwSxV zbFvud4;l`t`iN0fMDd*}D`^lG5Qrkzl8YP7*x5jV6u-PYB5L;d88$|+vd9(Q@c;^Y z$vdVV@GNG0s0f#;BG(#2aRgy{wL(3$sg2uYiga7psS%%G36Y%maq;mcXi(2tZogBn z2Vy2Srsa!zzGJs&0;{~U==<DEsH{|QTt!C!F-RphFv5k3N`gKf+a-zAz?$@63847( z<q1ay8Fky{DZ@Uja?^6FudxFJm~hkkSOOL1Z5_kTP@9fP!59ZNNMo3T*iFRrx25M* zKPEbEU<(D`Iqv4;FO+a+{(<$uId<aHKz+E6jzk6>nvjr?6O#SRkJrMpwdU{4niTRG zWq`DMC1<y6QDH5M^2>oZ@?86fwkvj3+?M?Wt-xYQzQR^aF>q>{>|?!YBG5Kb^Ejq1 z3Zs1|TOV#!7flu#IT@RIa}ZM!)LhTurXPY*VLvvom<M(|^i+Ms5imH1H*#2ON-yC6 zi5oE}$CNi;?qaf$^>p8m4WWc%+fsCu=I7vYoM5=RgKKEzWhiV0N9ClVHnF8d^jIOE zhx@Pu7q^`s?Xe-<YI3AF4l<(C#i%p^Q6vmw@)U?i^l$zi&^15EPOUa6r(832$Gzku z?_!IanpbIXtE5!^C=Fp38Z^$L02Ubja?m1}t1)RooIPvk#u}@pfj-)cAHZG5p8l$~ zx_n|rA9T#yi?d?nBBd-9gABThp=NG3>DK?<Whm)flu$?8i7WsLR#Da%_$8|nDmwYd zQn_=%>-1dv*8aX0@KNDzEz*$D+KG6d8blD?ia|6amx+4{Lg@2+Tu5UQ2Wb5q{>c-V zK!N3g<|57wjJKuQ38gzXec7sjo`j`2-KUa<vgK7Q>zjtTN_(mq&T@)?Fmc`4lElWq zEl{!*A-<L72(d|T{G=$c<)!pi0;80>)jS+5^NXEWoj8jHM*TYWWo_Hew+2wTA+k^2 zOtf$5@lM*f-+yd)Uhs<<5pp}^8CKgRR<MQ(K?;X0>Uw_5M}o&@`3gOKEfRzS2Cj<1 zs9T0bi6`NS$%IywZ#we+_A(#t$dYp9#p808WVPO+a^AFy@OjVUd{A_27^+P~UgCn3 zrhPizSY^D!?^axRPYNaNO_>o~4=H$E0zzCe*cefhuYx`yh_*VS`7OvjCGmyE-%Z2Y zeDY8*PbBxlFJo~B@8Y4s0?<VRaH+;Y%bXoRLF>L;pXOnur;(>)iQ2son0|Q-sHQ<G zO6(H@ABq$1W}#<L7=S-Yseri;L2IgI0P`=wb`~)mI{y9*1=B&?|0NCC#}{WmydCZF zt5*N7m(jXMq~y?!LD#Gck3Itxfc$%FqxM4KVpT)cSI9IF{dv4ZY{2(7>?+rQH{<Rp zq-F!zq?ITO^P;wr?=c82V<oxq4p~`pB*M4J=}07tk$-8kv6y7oePT2zc;yy`t3ypa zzeT{t90&LtD?2To%{$ONH=EISZIZpK#>K}MZ}t@xQ9&ah*lhImZD!kSn1FyOn9<Ps zxjv^B7Xu+*%=_GT`Qi45jn9)#ht?ajU9_#hQRdMD6=Cr3e1GVSqK`{)Yf|YK;?4Uz z9qyhrt<X&S!XUPJ%d8^7FZq8dgtF5sj~Dnq$KW59rm4+<0OLE~JpV2mgOhWK+{02W z{Z^nQQ-HWd`0M1yYvc?=HY8L%ulo2veKqLB$$V)L0DPH>Zc#Ep(hRp7-k+@OQB<Lz zsYzWYk7+S&|955k{mP9xWBFY_QIaFG%}*P)cW;H=KynJ7=h;k}@L0mPBME#O=HYLs zFeNs=5yLb;%=U=L7k|(*7Gs2mMr$!*(e-8-aZuGbm!lNCqN&Y~u6o|=MN-L(eM{<& z7QViWL6*i1WCp8Tgjy++r&q!uIaLUKFxE()c23kN-rXVHQ-aEw5HU%)a$Cc<{u?dw zbgAz*<7H5vvao_>MWX}#7L6^1f0`<!#J^La=Vhm?`ZFWfNml#K`WEvSn)yj)6{1B^ z)bMJJeJm}$(d+7flgXw&lOH2KF0EjbThlH4b?iur$J0ZhM4;nH*$H_r<X!xqEFTum z{LU3LOLu{{wPp;a1^fcG7K^kfgU_CT)5QhxiA}f)cr<ZNHo2Xh9cA*CMLi!KYci&K z6;?UT+AQyNQVcs#yB@T(+$WV1t4)v}2@3h?u#MAH0^-)Oy9%zA+X=8M5K!O++29*- z#EPLNGlFzNDpSk?xfiXbAn<8U<KA*Fb&zst2h|nfi%_3a0_?mvnGLjdJ$IdTb;{5) zH84os@VZ%chm%Or`Hy9-;hVS{SV*n9lDJ*a{RSHCg{(VO;Ot5MqbNPNAcn??%EecZ zB<qxbIB(sU@0DRVCYXk`d$h4TS(X??2Kq@23sAom!2YK5Q>vJ6Nmr>;<#=598>>M7 zLf0>H6!+Z^D#w=Yy9NJhe8n6xU{ANcs-)df-=Wzt5$ZknvQ;pF0-%(dCZ-}?YXI1e zI@aCu<u-{U?5hlU_`*w6C(rp_wGPOZ*oJxG2|>X$QV4_l0Hm>6SFyYm13&)qHzV!Q zE44V#UA&4J^@|`6=%9Apw*#t|tN{3DjV4B8s!BSQzNPaoH`UB8(jeT8ld|BK=p;mC zLwXAY36Vt4scNe-6y*1@rHc1S#fzj}Bn#u7boynyXu&2b_^KMr(%Hc1>G^6k)(4PN zR|)peLIZO_57ue0N}lNj=GX?zUbe8XOZZ&dhVlu+7DW}6{7P9fcG8wODX#9?3;GO0 zYxpOT`V;~*P$nlS$rNDOs)YVR(v9c!pKLvg87_jUkaB0|+2{C~$Xyn|;C!}%Vb{}1 zuN0qL(hIPk&JhdE7-MOzuGXu->0!gKky8)SU#c>=?j?LzNHR1U6i50MAC%N1Y6|<^ zhl=OrRPRIcxL9E_pH#&e%ArbxKqDVqp$1kOP4pLN16tHxkP4CXsS;F1akHaBdXT-a zC#E*sh6cxjD<NTg+qFl2uRU$a7#$9~koZ83A##}3ucY0`OuSgv`wV5GuXrObD3?T3 zqL+EB<A_E^)LYSDz38+FyXR-kn)mWqd2l%;bl9?<il^cFk<&}AOmS+|aq{9eoBAIJ ztPa?z_!H%Q1*-WgbtQIE>4t*faycM;ifR$_&>AS%>luq~89csfla+!D7w6;gYuB18 z4N3dqhXuE>ecr;?gY3b3y`oPv_?8P*Sk2}h{v|1KMWqB8X7ZGs`VHq;`@dITcwMgB zyqwP<?L?+B=tyCrfy%rbVyt{p!qf5mx9Y0xFG8AK_he;RY^OCBai;z@9cXPJ92&!G z1wC07BE~V`O!+nuf~qsozl1yQ=wyVeLiMC$5QpnnK#ONv_H#TevBfsb6vV32`wcB9 z!7!)n{dzA}o~9f|_qCzWXWEO@@gR8xRPKl6ffK7rFt1gu*<^yP_f4urqx0ofw_Xa< z@hDn!J|tk)oGNYcI*HM%D?mO;uFh<dV7b+`64c`nw<ldJL5JeUjN%sf;-Y>qTQ&-u zQfgF3bbKtWxw&}>ifB(1IFslr8gF1(>~A6;mE->PKlG~Gq`84YLSojrbl98<@qOv= z3fXAPgWYQ|?k2o6twKLD!V;FLr%M7EvFX#x+Xj(-bs=<P)@ToDGaDH@4FrLcCaoy@ zSF0KAhD@3Z<~mDk^5J`Rhtt=58+vuNJ_`s-f%0WpYa@}I(=?K8#Mzo3{C(Ac$EZpq zFD+ZN#zd}bN*Z)*4oZpiRv9QTDgvN!ogknYcFP1L*lZa6S7+bY-ArJe{v6mlI*h3D zUH6NXJ!4|#KkS6Ea4}5)g}UmU5Q`!+m{x9;GGh%>fi?gqjIC~E#;;R=>1wD~;O*h& zAjpH1vpP#7z)FFX^XMw#5ctP*8#}>U28>YMq<_CrKx0#qiiauW|2`Z`&LzNYzvfD~ z)@gRgXYw)~iKBK{wQhtSy;`Y8Cd>AQu`S!^RS$5oIw?jXI-#;N9Giw}(5SiX@&gkw zMOfyX6W%IkwdQ1-+1N}h^^M+@>^Fd`wj-0i^>6klt5RAJ`W|!^PWQX_+W#$vxmvn5 zAj`LPOV(^)pEi>?^$4kp+MlBG?~u|nd-f7s>zzM%^AF=XzE%#EeDL}76Y|9H$XL%q zN+Tn>uOM<AhNOB)h5rhv7k6z}S{2xo8>dE<Y01D%x<fM5awL+6U@J>w<)Tr?h{UF9 z)EC~LKyhVXQs0YUM)gClkxij)8NWF8Y2Ey!0`X2=c?!efs;+fy@v-`EWY6}n!54M6 z%yO|Je)IK!lg2Bkc>~SVM9Po@GO3OKst@(Eg>`5wnbqX|^~qt`BvI<){Vn|a(n$t6 zML0{W?Cf@USTYduA3A)zJ*>iT8Sspn6%9QIDEU(h$=DeSB$c{O$SGA1>T%*pzyR$! zNE>{h7u1*Lr(hF2Mo@X0!A&<?ts0Jro(s29fszU1`LIZ~+<1^=v&V5QUB0#Bvn*q? zsYBbV-4#@bg+%AT!S{t;*6ROC%c!F6!!p3M1x4a{h3yO`jY%T$R$g^PqnTC9LD~}i zkMZ^p2+a?T-><t9O2%H}gZ#{T@M*V!Dt|rY;M0~CIr*7c{*A_+Ypg&)7GDW_Aqo^u zZAbdN8pUghBn*{l)GE`+0fN5S8?~S&V~?GhR&bWCuDR`oJ8TDG!m#tHI|sK=e4c?> zE!T+IbiTQ$&?N1IWM^le!;b|>Ts;Kbt9SftHcVY}-Sh$?XY~+9_^shTt1SCqR&!td z+IjGIavLWkm4!xp8jOWj_u}BbS`00kk&n<prBg`cwlU0DI-L^0vVl+$uO31yrHsWo z@evSiVuDs>*Zln&V(k03*JZX2+<mV`QS#$h;9JspvY&vA+JEJxyi(Qri^K4GC04n! zQ&N5wRM;hSE^3JkdxjBsmJ7Ehv*b|Wo*8%7@ox#kA<<OWSPl`^hAi}NN{FAQN&Hs& zsp-04lpKzdh=_y#ig=#lobRfkp`m1yloIh;bkx+*W*P3{`DNPf`|&L1Gi33GJ#n}& zsY>7pTTtx6P#Fq?dncups$J0RvThmQQaPyYg8WNm9W~nAssn?Ac}4UF&by$Ug{XKw z)>_!yvCkl3QX_nSoX(?uDONU6T{n2XQ12u9oZ*%QDH3@@2)H`g;1ngC&wzl^_i|_w zTG$b9V6IoBO3~7uCt^p6%5T8$F3Z&6#=$jPdH=gSYku)xjU@$hov;#^A2r4c%!p%D z(b|dRyQofU1VcD^dK9C0qzlw#uKdM@+*X5RZgHOg8p&1KU;gP@duGXRATt-m-V=WW z=wVKvZEt^O{#Pxj<)s};<8xO6!7qz5QjXi+L=cV)3<S@nhxQ1=<5r@OOQV9tWKcHY zgsv*n>(mu^J|ZnHDN#D6pZl97_~@D#7nher!{_~YxxI670T&M63Px$nTeWvtYZ*zs z04;+SOgf-nrWp9gC4q<lAG2a)Z-dM0H{9T93UC89MI|C~rmQp#;-x1kMhlSz45T?q z&yn&-M)ypW=iHBG6j$Eynae~Y{$puEI&?Nn0-Al`^sNM+El4W}rLvD1pcY;E8%z(u zaOu}AB}UfRm(sMIQDQg@T;x6X-ls>X&)zRR0DRhGLg&9}{H6zdeGh~nna{BVAYM<A zUbKHB3lI}kh%4qmb8o+$kwK^G*+n1}plfx#P@OlUDv+)sCnNjn2GTu;ueu)c=g;@9 zKd0`0?~`^-lT9|DK&u_5fSJMmabae{7Xr5~)ncAH{I{MHFXN^IQTcKL%u~Pj_Mo2p zGOS){UQALkHw>D;aC6L(kw4c{^et6SfDk>y@FU7kDPSbjO88RDCr@GBS2;Z&6JCvO zj{rMRpm^{<TDLx<^P{T>AiCY9SirvxggAptLt-25H5{&S@{vILuC2oeg5=q5w4k8D z$AOV!t)HsDD9kyj3Do|K`p)@wAgr_a<JlnipNDt~Y{<>{A_Iwufl;EIz91mwg~B5L zL+d213fYZ#N<l-TnBc}Xa*UxyrpQ&KKuupi>+iDeoW<v9_<T6`S=yJ<)3en^c>?c8 zgH>QQ&3`wyv64<2JYlnhweR;r<a)Sz6SIFJ6@c~<KlWw4WfQckVh`<odtlk&X#7l2 zg8{pry@WKuIwBG-rcw?YPA~6>t@xa?b8zy<zgOM0Ij#l)8vUSbsr*_j#u36+9zl-z z(|&zSaxCRwME=N79(XdJY2f3-alqF3>$R^o9<ES${-Y&Coov&nkcu<M0Z!q8n(%Ok z<mYr2y2Gzq*l62{Z!zu))rg4Kn4iY6@M#=nZ{_DY|Clst-~LU-UzN$HEqI!m7SIUF z0)mQVWZ827=Yxbkbch0vS@eFW7M4E)zomv#@mpzEJ%|l&FI@^X<8}?_>!*W*u}w2e zPI}`em$VbtBXv+IsDv+Rk-aim2^DEWtS47aO3!pjO}2EAnsNS9XJj??nPNyeI_BE* zyjJ=t{4Oc%uk#JLahua+KhcTC@z}p&$l@>vLovN75;U2R-qq(I>{J4@pkfqm|LDWu ziW#_?C6p|(%2;F-5irdD5+7Dm^tVwGiPNP^9pAh1VYl0{$5iJ5s=m5~O{D98S19b- z*v|nT@mXxd)2@K-tmH(*rL@Ed%f(eSxkbUpQa%E2qFkA=(08B5-cGOC=0ra^oDIL- z+DN_h@SJ*XR66uyBZdJO>{ao_f+31%coT_rUVarr^I)8D-*}#l{VM?R9YhdZr~{p@ zjp4emym}YZj|{gRX!q-3%Ag0jM9Gz^)}F{^?JbVXD4pXVB^?!dHF<0j&I#Fssw}`B zRHnRn`B#KfQzq$qB1tJRXd#$t?DCGQIy54cLO1}7qgHZ;sEKDnJ}w%z6<)ywzttzT z;}QslYo#CRANcd_^Z(d$mZ%ZVGdc-f7$mHc5>nYcYe)A8acB1(t+uMhA=E_@z&P!o za*h^mF!V<_>g9CT5{N6UCcpOQiiZGJAN}*FKFRd7nGK?V@M{A;;o(0Ebl_B9$OcM` zwf?+__n*XQe#C#g+=DFpw<)tooTsHzJxs{N{EiY5v$W>k5P_<Evvh2s;daHdxC@tD zCBBRIcOS5c5On%R1?h4MA-ZQtB{&%4B>a9@tEQQuCD=IdNhdlm;c_enM(J`D$iDlJ ze#<cYZ+kvwXg3Poc6mpK?t16lg4Vx@t(kloYhd0qx4j!Qf4%n1_5??#*+Bcr-HJ^E z))NqD&fB74268gqR!^&y)PfqAWY;|e!h+Zc8;m&B72<4DRYv&_uqGsLUPrLm88#0) z2d^7|$O9-L0CMmCU3;i|sAh@tIelrFeSr`(`eeQ-R6_Da85v80%AZtg=+01ON7p{< z+gIn@!NB}(FhY*|4=@woDL%(8{0CUitII3Xg8ZvKsj@jw(l0s5{$Hl-T5`LdZ)t{c zgzsBI8HT+Mq`|VWf5iJsV0hmtQmi|6<mJb1Bz1$%#_6Krztl$EJBu@<vM3M0pHqfR zr#$UK``kKZ{!=)Qm6HtKPN3qMd9FKR(rrO+1(F}U*HvJ14bxVF38DDo?MNPfsR|rJ z0pr33-7==K3CMK{mBZ9tBPE>gl8Q{4Z=eJs0&AUFQZUwkGy|js_bagl`T4~#JmB&y zEG&W5kb0{P)~TT1KCcmsM;Wsa#y1zQ8jqR$f`Atl7l($;VU=`yzOJ>-<G@gBbQ;C; z6C5s>1V9BYhe9ML_|vyTfwNXczEf3kmB>9`rN(7Z(fo&1%%8%DxWJ?i8u+%tmxaT| zjsFU$We))={5YNa;LFq`0xoCjpABLnJG8203M4z9SD*7eALXWN(zbXKv@_}FMoGD5 zYGqCeV^o3Jv3%j~Tl^NDn0KTg7M%a|{CI~_Bd;E+esR5Y0h{lK`tp=VDUs(Fn^9Ns zHevnGA$WV&-24u^O<P%6aXjXcop*n|8njL=5%tUv{~;S5UhsXKn8hecXw9j112nv7 zNnJ&U)bpND8S^{pV0d)VP)C8-momci^Xk_BfoZMfR+%^ETYUl@Q>4ef5NCk2&-A*3 z!x2h)JV-`+GYcV1m+*x8lPm0d!h>ul(Bp=!^Us(5>t2)xM(nrihhFHNs)@!r*Kwgr z-i`gqdsCx-U(H|2{on<k#<l1w!0!MI=yfl={O<5+PAg6kuUQEC_{R-$i2vB1qzcE6 zZwTkQLMDA6cuWB8=T0M55pPldF!o?e?Yf`kR-O*(G1%D;pzm0kroAVOg_JwH$UVo) zM$m7aO}Q6L{P#F7FXI)Tq})3EMi=(S&Vw88$LG_@pD^s$hIaMvC(u?S8E++d^g;g7 zt3OXUVoY@nbANyA1H<on4osc=_K&@GnEU4F3x3__Y4i^!ucjJbUDuzdfAs(7atyHl z&*d0@tB1`$!=B|R>M39$0T>2_|AnPvW=GGr5THxHV>pk7K5;IT7_(T7P5FG5>hjhW zJ|^H3EC)V=XM8q9@EJHCJ{14YywDVgl|<S8tI>b7&zqI16Ipe2$}q67^W|k_vN$+6 z#&6Ge*NvTT-@Gpa2#aF+goT9-8y)&oS0o?i8z635W*fZP{_6af*dFXN9(>-AV3keC zJp}Ys_EEJ~Y|6k*9Kyzc6Z=wyfwe5I^RGr<9UXwj6zBDFKb%0X^*KT6aC@Y<?OIY) zBnh;qy=V!7>8=p4pGU{UC(eVj1XT?_|9)ZNxoczt=!x>{o%PoLo$jSld!2j*?h&=? z9|V1`(f@jUexCA9%`YG9?^8#8-aQ8c1Cv)>t>|*TM*VqZ;_H!wATZRb!JmO;E}ljp zaxI(u$LFpMw`YO~+(Z+EyZB=yuHy3Yc*@M5O6%S)tD7U%jq4P7Q_oLN%_hI*UZtNl zT@i*B>I}I9<kz@q6+2iNrAS0T$+@y7-4BN<i(&=KWn$}tVaX69F(Yt@8pp9nsKI*3 zD{QCS2Tw82%s|w($mr-~2g0yP{rvo9T3u~l;8i1wMlpc$Nc?tGgbLiHimqWs?<?4P z-8K6`e0)t>JQHyKC7W8n|J7bJ=jEDzl9!iP<R(@rxPHK*l_puq+h7-967U}%Sn?D7 z#qalnzmHeD4tqn$*t{-feS?FvQC|I_=oaBkFXyeFy*DcM;u5nwt)3$7zPFb+YMg|P z09QY(DXcDNupKR%=6uoa%W8ib_p|i?U^-Tf#7zw4u(*~z!$~IO5B4@$YX{O5)A`dw zdjX#w&7TTZyl-e66TlS$9qWg~#XYI(;^`-d|5|N?@X{UdC8%roXgZgih^WiDYTU+g zX4iZbR2<-WG(}urG`)$8jJ&dGojP89fdg{3-5ZRq<=gc`Svl_dt#(p?w)1J+b}xi7 z0|}I}ySw|@b4y)bi}f<0YuL5p20!0%MrA9oQ(|~{_+%iQ0ElgN<x4%LPa{+k8YBcw zPvvA~!!-3g?oLc1g-;ZnQX$}cV&jLL<Obp)?L<s>K6ByEM(a8LUARx(I=%~OF$95W zn4g;)`Yz9(54zoY-XeoRuQ`|fXDe+6$KAm47v4xYQjdLN7y*%57$H@*@H@(pkHBtT zU4ih%dMs^g?MPrGCHdD8k}5e!F-WP-sjdoH37-W}SgbB76_xlLL)OP{va-s87Cd(K zT_6NU{;=9!UhUVM8Wy*%l9InW^zVHc%Z_5+59nE0zf+w_`2+_C!+L!jq}q;@R(6zh z#a8;fouc62(0Dzkeel}$b2$@EQ~^3U!&r5_pG@2zw}ba<M&Etz&mm4`nxDZQ85hG0 zaSRodvRjWulylKSrqU%%@=B@1)SwlkZAi%0>B*HuWU2F*l9i;2j}B6X<C0B7FFz*D zD(_OA(>6>GybjwA`3~J5Y|Cpmk{vT{(hiqj9#&skJ3T+{YmJtj7j?kQ!d%XkKXR|i zys1wsJH0h*+wc6@q&`^jZVWUkS>7gUq)YGz!}nY%<TLOrc|&4dj+$;5mK^qqtkXF+ z+>Exu>KAo+?FRA_b#cP`qR%`GyRl<x1MoELStO4+j~Z1{KkZ>32yo~n2)&$=d7LdY z9LL!u;+vaK&pk)2Z!YLyFIp(it*-OpN8`jQ(J`%8u|mi?UN$~x9WmEbFxK2%uP)}* zbc$tlt@mq2q-o>gRV7uMg=dXI5|wIychOvv;jg0fv)>Y`B8@IDC)Af|J^gwgpge+~ zVyzkDseHcQ_}jRtdoZ4=rcAlAFsuiMGbO8l4nJ;PY8AvPC-`>jaM}H3@Fz&rQ&{zL zxF)^jd2%NA3bg<`K*Yb_E$`pC(~p)?n@(0u!#kgJ&Q042aI#ASco%Jz5N?1Gkun0; zmaoH<@E3>)1!tC_=)Pg1{LQS*3Uo?VvkAJxG)Fmb(cJNsq`j{Cv&nchT@8*6w_O(N zl{)71QsJCo84Z8%Bdy-f<yx~~;nklv<CtI6WF9rW+44}bE+Akr`kqZ$kF+NLkjej2 z&X#Gm>V`?TJfKFc>&MXg3Qh0zGNy+PHd`nkIg$(BD1&?i{?W7&Nn6pBlV(4F4H7eG z!ArBz^!|L>`>}+1vHvr-p8-{yKD_gd$98MvmN#5&(Lrx3=5<0HdSSn#h_AazD(hr5 zVXL&Fg~o25BGsw}OHK2m1l4uLys!&9KyHf6p2g<7L6aO@pxZDc^)SI`hEc5E{)qcw zx*7ui?NrUGO)G?``f~4fjHK@08cE-dXo_Hb7xn3+$<6u&O<LB;QIa-dK5>q%f>fK( zyK%XxM*X1np=kl=IjeVI{Lo-%yX<iQ>i-~y+;hWU5u^aF8-@)40Dw37$ptXG`NO>g za)q+FEjOA>!T#6ZbPprq72mCDaM3O{PvcfB-a4RX9T;7c1+^tRM!fJmcKxO1YSerk z{W{UGYLkjSZiIY*^fQ<qQzp$}gt~gykAKr~lAjcM)J*-u<9NAZ9y|>wKP1@_Z=D?I z5q*$ec1u<qq3@I*%VwGQFNyKCocXX0oyJ_z-h)34&P>Ns(7&ZJ^-176D<e^Au&hrc zcloW`^}<(oAX5^)Uj~nwrdlWTN%79(cXZ(h?nQ}?KwxSkWtqPGZAA3a`mpM#XHdWo zul!Nmbls3340-@R6Hbo}J5eO4cr{>Nn2zDO8Smg3PJaA-GTA5fQx(VOM%{GcvG#nP z(#t4t8H*9m+g?GuGVOYx_kWW{KxuOu4TSZ7#n!Stoluv$*WJ`Wp=?h$0vFIL=i)vs ztIe7D+AHMC>nF=gDMl_Ar{h_-2b2R&c#ujOnf;7hI#?A>(26CE(OC$MR9fBl#q$zS zb)CPHf*-F_4+y+xNF4kiR-ShPaIUH$u|U_#em3p*g#gQ^cE=d2j<dy5wv&~|9sXq+ zxa&FrxvlTgX?Q-bSBm35$CwA>yzZAN?FQ5v9U{(Q#9f_GD05@g2-?A+$?R*ux9cu* z$>cPP=JMB+K$r5NicAP8eXWy4w48W>&moyC(;R=xD}$^sDj?T6%M!$}?-IkM5$b!r zdoN8C5_^B*lE*8vV@y_D_tFkt^>@McVV&IfZ-V4|CpC)XP9Aj%*2k%2C+j<l%?xAS zrg;p<z=viG7q$=fAtReIs8kx8GV`vJhE!TutUm6~74Rx})d?<bP0%HKB#Vq1%FnN$ zG{g&y&D+F=VZS>gnZ3A`jT5!cA(Q(h^36SZml&iEI>2?9JTY!Jf|r4Su>N7gQ$jTJ z%t4R<h473Unex_aoP80^6P0t#uD52>`=#F~gxz5TsPt2fgYsINH;0pmUY=)<S%ip- z0#cm25da+FQ7OuFWrohz>za@Emqhx;H5Lyn6V@fuqaQiC5N!rF6KUM6uag9xXNqmN zixxW_k0B+6x@)e_>AI5kZWGboW^PXNe`v-0wRX)i+)ep3B=D+lCV0P8Smn@95>U2J zd1R215k;9^^8H!OrDYFa^EfTv4S`*jtV)j!?BLHx=wJ`J8)}k@r69MnE^OJQrXkRf z+ic0QZCrOTNq1ft9`tEY-&}YU!_-l(0ESoKi$olLchW4mByK4W<*ev<KB<z>vaVOT zV&O!!g^MOh+*X26J$6kHR-oq&?3lf%`<gszhbw9KoWbwuLbkCzVm@2IzK}p^UjrvS zE}EbNis3sL2UAceo2*nImySb3Q5!qT&}+aG(}BsLjrE*xys94n&r*a#0TFSnX&E1V z2fsGeSg3BC#Ud??FuZ+h9li;4r6wC~?%5aY3+kkI{AACTHzp~mx{ikv@E-wPpOZSf z)k`6qEBQ}A7e8}2b58L#F+(<2F<DBV$!aFoyq};2Y9`rNv-_=XAE<?v@B8a{;7Xv> zesMz5MC4H@lF<LhpHrehMV=8gI4J(#Rz#uvNCc1JGEWq^vH9QE9AyL79A`7#DF1IO zB%$kMfI3?zlj+X+zpuGf0Is=JNOCXv-&W*-uaNtZ$*ts1wx#~>YdolcYdomNLcB{p zIc4@Ec+aVPK3+C=ftbNH-t(fpv8?5!WFG|4O-REm-FXCz@UhDQ_<x_AKPAx*K9l?p zam|j0zYsp2CVdh<KNy6drfv{avlB}DYhyv%alGb!#WHbTRja(L?Rw;)Ir5qAe$}?K z-EBNmP;g?~izk!KTxrbj3;&U@Nq)Sl#oo>Gg`+6yqo9*1gWKC*Tc1DNLbgtVCL?iC zvh$7Xf@TwGQxBc*ca=L{jsYF`7h;<SiV>!gTj#A83{GN=w~hMU{#ElTu4lJ%#ov2v zTvtznU@-@t-v<TX6@l0QbF+2x?HrS%8_(cy`PJrSDvWos6w3uVDfb`)^QBKdd9t*u zX2g)NS3bGX+%cupn&-3+*LB1F(CZR1jM@Eq?~;&oIrhZok>JpeGp+ZfqxJcuG?<<R z6UCOzmEckk-Rw7U$pqo+))&Ts-%c>Gsy_Rh8v!!ga7lri+m3CCx!5R3-+vPyeba_A zQ-9bIX{nLhhT~}*;Qd>F5kmTN67Q<LrD0LsD7@yp<@DG2@|$-gncOq|6~;%#@Y`(W zd)-(Hd#Sd4KRWZV9}em(bELbh`^HTMrq80D&)W-K6viLpBAahSce{iiO|NHWg0!DR zU!&ukn|M6nJibxEe0#+EA@V;B-6tF~P(LupoDl}1>|6I@WOnXO^*&nG97gGbu8i>r zpN1q7@LiU&t$<cy-vL*~lfPKzGrMb&sH5tAn@bq~hoObaKZ?F#DaQ)vG4_w;eLS?S z<{wnlbX5LDc%VOw6MQ?C&$f+->d1UMGfM<!Y8<!Y%m-L);J%2$1Mr+{3ZJ=a+-KQt z|M|2Mkt9g2{B%&@z8d%=F3_Is8y=_YU%F<l5PcqdSv>F0u1EFWS^UvC{JoYeO3O!p zii&lr(-lKXK4l3FRk0P8`MO8x$7<7dH2~PNEU#Bx{*fCFYR308EYDykzLKUZ)9HFB z+H%eO`lZeOw7gLqFrGkUvm9H<w@>ZIX<;}2bZQ47c=vYU)A`A>2(i)hw_&yC!>Xzq z(j@j92eg(kLl@&jYOXtqFXy%#7Z~>QT%ka{RqZ&(e)FW4O%%~9I=>#!=lHQcmReS} zb8LvF@a-T+QptO+%!({Rp>?|f)fAxU|LV)SWXUC(rVd>L+=HsKwwno)n{iG?J8^R1 zqqT=Vl#W61F1m$RQNrh`PY^l9xjx(6_f1d&h4L-V<&O{S>BndHa~e=7tGQ(DB4A!D zub^VSxj`cM^)%&^S}p_vj3>Bu!vOg#oc>ghaIj~a>fXMlyWyM+KorS1={CT+Q#*n} zDg_`KkW(PvmADX)$V&d=8wJ2~2Zh`JkpZrZrvEg_b6N(V0Z@|!Zs^|TV8#QXwE)8k z^DX?VL)h*3mAxTe?$b3eW9LaD@gh}nfKvrMtC5u>m;Cf0Ux>0<87<?-G3xkEH6}y1 zL;)wP93aaiKlndhZ$vxi2Y4&*%3GkMI_?&<z5rYVHpin;j)K6K@B#(WKx9*053mG# zZJq?vuJS1Psn6o_zM<T<NBz8*B!+#vtMqBt_PU!lh~>G0<i94A)OHKt-xggeu#iVG zeU0>e!R&nOH<UFOkOZxEOm_>g9+}32zNGZuhGl5VO7lE#j&{p-<=O@MDsT7YQC*DZ z0vV5v>k(Qovqyq50|Ks$P2srddhVKK(^U3D3d*B+_0b`Qyd*N7G(V_p*2+-Utr0VU zo8*0Hc{dTH^~>BOunAw@&YSd$xKx`Kb9=hu)-%u^xQVEuWmDwgfq|DYJ<^a^Z>g64 zPNN(xqM9hZ_v^&oqW0H)#>gzG=JkF|J-lx80`>YHph(|Ic#W?Qe?)-$&dB>b&+fZ+ zzUXif`$CY8L5=L$*>utP8xMqG?_1k?YJrc$1M?CPVh>f1&%{{#vTwLpo9kwbwO8LT z#7m8WO5%o$=!TN@68NG5l1$I2e6}se1^W<;Zrz4EeSF++x3j&>?<Z=VG?i}sv^%VW z9|xSB&?pGll&cb(G{~Rg6e<jxoR%Qe>3CVcfMhnrClOgT#`YlNn(B4&gy!-^S?;>< zy70WZ)`^!mYr6pH^4AbXdbtFCO>^5-xUDvv8>Hvr)2Vedpp^vd>62&(D$RA(x{=6~ zQ&ZWz=c9;kE0+KWpc5b3FT51FgU%+W`Jk&%FCj_7;6=(vt+wI2XSfg3ZuIWI>Z@Eq zwhez=@}sa`{*tZBOM{Wz#LVJ9w~vJVAf5UYaMy32r%}BTwa(}Hu3tY9^}x)EIEwqA z{r_6(y=e9!JB3d*o*zE}Q*z5KIF%@;x0c2BiZft3JKj7D?Lm%W_WNwo`@VL6FIFDm z8Z{fjjHsdBMkucfKAj5;#2>EK+W?+RlzfC%?`h;Q;||g666EYx$x;BKfE%;<3Zp%x z{S2d2<D)AQC0wc$LznklE&;mlN}$;q0B_Z`<1&a5oRzMtW?xi4BbOTmNtwDGlj#3x z@6Ds3`s4UvM2RddsBA?gL>tDwRo0LiV_!;T9b+8~V=G!wsfe*<pTXG1K9(evtYZu_ z3?<tz2xB*%JN>rv`~Lm>^E{`{nRBk&oO|!*_1<2u_vh^zzK9;6I_Yn<FW=jJ*WQm~ zL+tIYCqiwaWUoE5*&OQ77JhfeWEVO&&iUXO=dUY7Kxe-6jN2!m>FZZEwIcQ?S-0!R z*YUoy9Gs`DjQ1Dwn9qn8X2VXL+Je8VaJTorj}+@HI_RRRYrX&!(6G=yFPz05ytCET zQFWAVcr`M3y4P67yZog%zBm0)W}WWdd`+@mfegx5|9&v?96|c(%$WC+P>y-FPr8d3 z=UrOL)lvJc{lV*-oo$Nj!yfN^r%I1N+25j7B1}#t*lhk1X+EBXOw?L?%40qJL#!() z%7pzora49?WZ(NJ(5r@}{Tf`bva>Pwtk6$Gn1)hudwR8+%s+_&jnS7}+q@@lF=*RH zE+K8gf&m6m>8`#<vc~M<T@<!K=}Tte0w{LVrPDjFJYy4qy7SX{{1DOb>rsS?1z^eU zKxoE%WsmlU6mb+{BDp<$Rmv%9Z~TxD?TD|@QBH10`;Mg>?I)+A*T)b2$?X9Pu#EAN zb~Ur@1RC}8P&IN4xgJlq+bwpn_;tVKXfdBo;%QA<Va~^59!yW6>@4<!MBEV@onKF- zrM^~Vnyn4%f4?ktWPGHo%`FoN4_yo!6Frr8@<R0Mp5s?+o01!UpMAaide%}7TBxau z{;=<5#>>F7kmG%TxuOn5&v%2G{=~CkV%|K_n!h_q8Dqj{tW^ZtEMTk9u<p}O#E!Hu zfb52hvhEOVDSOFrAmrCGnYbqBt^VZwtx{jVT|R#BR6D2Gpw#vucOK2RIE);-fxPW6 z*jeS_4c1GfUXSW!ow~V-Eobzz`5tzk;umeHmL3jwn*Qvvpc;u&I1(idZY`JfjjIS( zy|$mQROeYI5I(-oa!tUk%xcOr;pdyE@n?y8sV$=6eL&cd%dF<#_x#|h{<1AMcE*ba z7yBkT$z0lhg^wC#>Luk?o7-24nFQiVk0D!tI&%H1$_t|q)oU?)-M2m@s74#lSXi;& zWOp0Nh`yjKxaJ$DFcqkvYt3iY^R-s&(d#I50C75UXF~GPsZb)uNoXx~fsd0r{4R;T zKi8+=@zrteEfpO&*`pwZw|Yf2A-*8MKE4ELj~q8qz1G-=ef`<E`OIklSdlGly>VJg z4|U0*<@q!3y92Eo$f>KD2i?xOmTfOI$Yd3LIuX+x^|IgO^SA6L5+^^C*bj&anw#g_ zeLH(i_UckT2rnDOBY2Gzw|Mm_tBY|zkIM?>x~_SG!?J4ah_Z9rGViO|lfIUrxg)o; z9G@L!zly}1Q=3Y0)qgT|z3b!=!2@4g5Bh5}iY#sjmed^XO^SNxdxyIPEMakAu;5T} z(6d8&E*w%7s#j{GjLtS6&Ri3tJe&>j8gW{+Q|9hn;zDGG|CW|~_Tvpry2Vg8N&0M= z=8;RyLvLLZwN%0np|bl__xe06IPd$$dG2d^(#1{=IF!uEX~S_ZB?eZ`_oVCRqgQo1 ziFCWAI5v}a>|v10GL3iV$``+fblR-g?^y8l$C*me>+Ebex_fUry-VSNT-QLI9$z?P zzH#>5ci*^{589h&DcAV4I~*+QIP9hFY>FWub#GiR9l6E6`pqKZ%2WQe4^3wtdbhfE z4nIT`tM2Po^8CctUB<ZW4?($zTyw11iMp<d(p#@)JKeDv6A=$^)w8qjnfwRxe$&Jk zLky2!+a@a~a=zCvUB3KH?no4jKR)MZ%H(nWgI|}1zT}84R}sv4AMPo@LQOfHrr7ZQ zPBQ6%w?jz{RH3}`Rp+aN3vZH=_>MXFc~=~oGC6A<ckKwh!Gw7IN?;71E^dDh!p0XK zBgB?}MCMAcZX)!=s@W4ZZ?~x|6Jx<gs@X8xeI4Xa$-sIxMy9o`6Ev5<_MR=1ns9ae zK7V3RepmjPL6khw+H(Iq2d)Vtcf)|&r6{U^8ZUR|^GjE7>X2ggfQq4sOX!&vgVXn* zU2G{o4}CCD%~_c>E8{}32TDh>dyZ>#_!>v)^e+iPqCnuojX(Kd-1eNXPoi6COFC2g zZgc&iJOgpwU5aCR?g;#Py!VZV)cS*q{VJa9sTUlc&|=$yp;>0d|E8TW_a3X;S?<j7 ze20y`Dn==}w(C7Zb~8GT5cZxv{*trUp7?bzhpy%uCwEl+3258|P7%JVy6+jFV0#OX zZI2(&IX*Y0R%}o4RVP(DfjT53!&hCerJ#)}@tFTfLh_njPhX0QQhINB)aX#f{;c#b zW-Ixu;m_7%a$~<{?jQD7a^?`rXt9kua7yU<!KYEyUtTgFaDj7F4LlU2;{8_9k6JnX zk6YypuA$MIMYeQ=1Cx&BWV;#G#eUQAhuW3Np4Cs!f{w~?3vRtv{s=pfVG;i8=w%Ug z23>JgnZsw6A`!5)|E2#S1CEw2EE#r6<$g>Qgiq+5wtdHZm5J2-nbL-ZlgOunl2h#W z_<V7Owzf*?@cktVMgiuNB=l`?<vf0!n!VmS0%dyIpNUdpM{`*_`NnM?bPL=P&=L^b zFsZZZ4jss2nyAGYasZ0$Yt0fs8m^1lOKse?`i(@u4_)C?8>EN1+%YQ~K2vS-F>Y`6 z<_upVIBw76r;h4AH4ZoLszQMDat=Q2d;Rq2H}$QR-h;L5-Ai~M$F{d+c_lx&kqCqD zzX6MU=9n+V$zA4gE7ZO5u;}<<iy@Wb?;pes5iKVWvWTA4!3m>}U+UleC|{c^d!!fp z#!2p;pnbyj<`N*d(dU*IQ_h^4c{6FLSkzf}&Vl1%RQ`L2TKRs9v8}<HPe1RX=xRh+ zHN%y&ry6pU5-N`hdYpU4We|Sc#FNWvtuO;YE7JRj2Z-kmR&+v@%L(NGT_z6mPB%Bb zg1v0uoVin1Og+ZIw`=J6fZMSBS^RaB`ytG)$4y)^x)uel7!hXPMWpQ0qhSe9`mHOD zVMhjBmtlKnvbH+Nxo%#!a(wWoqO7Y&9Lmz4P}v8_xdMK-)7W{z4<38o>F&lDHWhgu zu42=`hIV;<46k2F*$FmrsXF3P@Jh=2wFrvc7xPsAH}U6j)izC~C&TADrhs_oMvwDV z@23i$;w^kThdFs!X@4B(%&(2iM4${vLxjrpszbONht*SJ_l$q#?gg~I=V5YnXK84E zPI`OBvDjItOZu=3I^na>>LHNo!`uwpR09I;KHDeG(wo575v9%U&?ZI+j4xff@{HZ# zQ@(Mkx^Lpr4SWeQ_uBb6SFVS<n{97r3n0%UjvDs{{xbdiOv3P&i3*3`Jw=AsnZFEf zHTZa&o!_UHyC=Nbjb;3#l034xTi8#2Hin>-!fvx&zQWESn_%oxqC_SHvJH}dAN7;k z_gM8c`)wpx-duh0RqO8&L75b{&%CDyA1=>pYVT<=kKF3+KKO007dPb<=%DeIa<9PR zSyU?F&Q|F$NKr2I#5>g@A(>I@`GX>I<}(ctR*zO8kGU)9cTYaO<0bF)Aul1Bpt9-I zj*7{OChtwX1LDWRlGvR-oYJ*EXCz!hj@m-%@%*~3hVQrkd=NivbnrqVr=Se(7pLDn z>frMvpI@BrhNv<}W7LJjf$eR_kbT4KutG$R&V7x>)^#u{N;MiZ6Y3!(vvV@-^WG`* zieI_S>Ltw&>1eT-JxyqPwS4OpJo@;O8cGjKtrS150uIXh{vpE(b;?|DYjmG>o);x_ zb!K_=jCp<DK=Yn`8se0c#u*zhH(8sg_L=t{yK39zdvU47kFI(X-el?3zPyeCVnckB z|5t9NSxb`Y?7)3y*uaq%!9fX`E4|g@Hm7uhWGZ_O(q1X1WrcS_*ji)^1J1U1eB0sv zc>H{P4X2({#kY6Iuc2l`vjZU(ywM+AFkwBHe_empeDh7f<)^9Z4-%7FyV&oiL~Ybg zB=D|Dc<9%x<(|A!J9t6Y)WS%Bc)ucwyE4f_TP@Hg3^fDoQwvwLDS%x+L18;S$x5;o z@g$|78>q52?;vsSIt3dM=WxGy1w)i-Mkzy;{r=1l)s+obdAT6q6oJjf<+z$O;Y?-9 z-?FVsld@p*Y!yLecRZ`3)H&W{$fHgV#axZ@FisWgN@hEBSM<QgYp+J1fnK=^!OCtV z5M>@k9==3T8HoqIYFUa~Q4{&aNu3$dr-m0*P4Fml32{^8Oe6<OOdgZB^~LlGg1nw+ zyUQI0g9uv9vB%1pjLSs<*(QdGN9*IvRv$jP$~mF7UphLVM+;QVIT!Y%rGi)rDJ02P zSal=?td{A;dF=4IqJ6A9?xjKKe)mdSjs+Qw%;u@Mb)$@WL(uQj`FBqmqgGA(6?Vm2 z%XXL6x_F;@B}pWp;i|!NB&RUwyz$Yf00)!L+qQPZ+kX-}q3nfnhgDVija76n(Puf= zWI53320xmv3*ESKLyQu!O&771(&DFyv4yJ{ez9~hSpN>Qx;WtaW%A*2uIbw-f1?wp zto9GOyQ$?~q$#wh*-i|W@a*HmbADd?NLXK;C3OCLA}Nth@Pd><<o$fEe7@2g<GZ!M zU!5Ehy?NK-tP8fb<<1)a`SkL_*^l1d;!ltMKJe@Fi|!d=zx_jY%~Ow+eO?G;d8Y6> zT`@9J(ltE$;t=)=Ozk#Dr!;%O3p2~%hfI_DrPD^?UF>s$A;a5>0SdLtztiz+WK0Aq zQuI8#$^ojNQR}N}Xko}>(5uSP;fEod)Iv(&(3$8Hji+y29p^hJp4pYEEWeX@oo|mI z9tgU1rljFa>!omZH}1Dk?9BX~d(gHMJBLuw7qWx@aB^^V>sGk4*(Yf{KEurNGS;Yv zWZ&;1RHA2Cg!l{sdgh{W+kWXP^(Pw~gT116-o*Np+*N5TwI@FO#W`I#_rCisBto}1 z=JBJ8vyK0|qVMZX`FdR6+`{$T12|iNLUz#0XA8$|*`mZ}4*O2JzvrBJp47%kiR2EP zujo{4o$_~yaXK+=ULaEl`7rLW|M<Nu$Sf+VSUYIn@i($)$At$^FMaO*a3Tu`BE&u$ z@Z)cTZ~^<kx2+u260!vd-IgD(PdkF8hjdE6i5`H|{AAPZexj=O=krl%>6ybHS4Z*q zoNds`-h>Rh8AS=kr4lW~`E)#&f6exw!livPQs%4I%c)(5DN8<h#$egvyk^YE_&z~7 zwqmuPNEL~c*Jj^eAF**dxMVh^n8x9Do-v)~S?Q6PmWKX#|IE)r+WQN;`)(fW{eU(M znE+PvLdK&dA?9pTOwVlTz2f*7hN_E~_x2ESeRLmepkrX!3oSOz_ZZ7_cI~^GMv`{d zTa)cl6MsI5@oU9>3+xw9jUp98460X7mvK3BSxXJgls7Gkz40qMs2^9_B|emtA-^`y zEZN!HFm17`z9D)r=Evi!#k1XdV;TJi-Fhocf*#9i&3*WGZph#2XmNL&Q*Yf$+R?IH z*YTGTK3!XpY;0_Md*>|<UH@ONIj4^vc<XKK*zw1-TWy-l_)Wn6<nt$z&s%aH{>*)x zJ>dEwPRqlBw>a6qy$R?(ab_A7z`xbB9-`K!p#e)Ct-(GY?a^|BQ`Z86ts*@i(#D$6 zVbeBy4bwJaoC%M0$Mh2s13B-fHK)}&lbcraCOJfETl`<xkK9vhJJDT+T6!$wp#A5W z#RXQ$e$VOx&p|=Wn_bDKPRnmPLwmxg(tYSB3$W<L@M(?C1KLZ`lYFp{w&fpg+5zI7 zUl!v)jX(V-<()&-HosXkiS2E4IHzfK`z2Ja`pvsahI#CS&ELt~8kofHZDErGP!nRE z?H42dOpZSiaOy@b1Yp<aLdTZh*Icj&{eI^?tGm@Xx)`xODQ8{x-M^lY?z6kaj8Mo} zTso-aGsax2NyZ}SUUSoUNn$M^mIds!SxsCwb;5`DUQR2ibF~@2&&b$zRQ_Qy*PELi zHa>|s!C)iXO*2dwa?YN#n8VWIovaSg<g07^wjJA?GODfAu8qBYXO?Kz&4|#o%1nIY z8V>8&v7HdyIN@Jp>gcHks5m_9&FOZLDw6B99SX283gvxL`uzP)A~u3CIat%g@E@6w z2;SW2&}q^fXBV*PV7x8RoK&Zhn$~cnu|HbXi|;bFUnhqDRv)av)1k=$>2nU99_9h5 z`&Ma60f8bRTZGIeR_nugI-iiqTs6gg-s}!;n#`5an%%;0mj>g#O0G8TOkTVQY8dW% zFYol{d1t#KygWyvGjVcmo7G$kUwS0z;ML})HD}w&YA6JW!2)wc6_Oi9CI=A{Asrgj zE%I6^D7A7+i?|ce%IoA?_xY@1xdQ`j?Z~e_lZ89S>RUAY?a_I?$*9?!u1Lnu`;!S7 z@ZGJ%vqOn~1*}&vlq%l~GMH#u|MLzT{vdSbnq+<BtQpL14)ASk*yvp8*uK9#{cS*2 zb+THQxbE8iccoQ>IY^7uTH1G!#&Iq$XlMgv)W^ddQ(A1`_wsPaw8mK7>eXGeHQsa9 z?GJx&ZJU3*mxF7`RYda=fN)Uga#Chv<5KKJhq;$j0qT@WjqO&tli60w0c~HTj%~Un z(*Kd@h|BC4er#rYTnHP|zWmfs^Bxi#3atKtT2E+qC2A9JSeJ`yHepVW$A3rpNotAG z><jgGZd^q4Ee~~Q!_#+sLObnCxy)_^z))KT7d2<QmhlTgSjK_ePa~HTb(4CJW-L8s zh(KI}W=)+D9#ZOawmtRc*E`e)%OiS+sXM}G@Q_k8Lu=`~b(4SSYK|nnaYB62Ci3!H z9L5<jx;S|;a&sB5rw6ifaK-BDYG;M><AidK_)#B1OBi(}gVD9j+TvhrXB{kF%3X}5 z<|<KHh`wj_K}~g5%o5^*$M(gqv%1U-v)~EG(*qOm2+4TlWJlv5uTJ%4<nEkvv+x<A zA`$$|jpQC6xaLSF2}~p*jT*>jh&W2<nH6bTidE(gW3FU2GtC$MxPHef3h4`(;B9BS zdL0)Lq)EW%R{9s8>5CkQ-aUOQ%lfiYx}_>*5jFL?GM(=2#kbs_+!VMQ{=O3Rpl(`g zvCd&eU&M}gVYjb(dZ?LWH=&3c0xYFwFz&#jt$Q7@#0RGYC&p_`Kbv|Rkvv}vLW8y) ziK3OP2JxKhMgP|?idQUPUwMXk0`0TBvh$;E;L9UBmJCCyk;D@UwbVW4`d(|#0<jd1 zoBRSewK|n37$2}GeR8hJg6GC|g!|!zXMmDKgxw{lF9a4$uGKW}s&{KNM@GDjs9$_7 zGUL_|HStp*a$`BAL-S!BlYwnk$|s(Pb!Sazkk}g6<3V-b%-(xB&e?g{ki$MjyvLl) z09;oQNKr3H^_4eLsGure%157omILbpCx~x%GcKx*=?_YeZMQ}2Z~b;xw65c)VByo* z_yI!3TGb?LXJ(6!df&Ql<YGG{&ommac_+4gi}jHEw&EjHojzS=D(+TnW16=xL5C=3 z2QH!^b0!O-o#}=*jJW3X!XP1b?Xw#*hC217VC%-U{WNfaI<a3B6fN{U959=+oHxQj z!$$6vSO9M$5RFc}sZ`(f-CMr>XGnePrm*`wH`2!K4!d(;RH5&%*qVu~Zxt<7@9uWk zL_>CXbhoq||Mbz!n{#Sn^7ddi%7|%m4%6zLn>~@tAg;2^pFS{a<972{vvp`=Sa`d6 z4`l_lf|_;+MjtC)#b-r{YfKpy3~r|{1DWjpE)%(uHr6<J!v5))Vp7B+*iESiTwG)7 zLpd87=&!2Y_?{L^i-*fu!&bv`{4iAao52!Yr|A!ispkvnh27pvkA=`}%2?B&sEm5w zv%xVC@*+5(>S#rK+EgZ_QapfXRpMvFdc)YsEGxIwa}DE7H|kiUb91USDI^<_7VicD z9#gdZ_6JxoMjmrf+?5M0bdn%!%cFa;fEGoI)wb3+=DEhqQqRex(}RO1?9<EXHi}}H z((}iQGTa-tn+mHNKM9qV4dzft`~w(al-T)MS6vO~onIoPdySym_)wo0jyk%#x>d_} zP7|ghE}Jl?x8u$aHv{2_*PJ-fqxz#87u&3Wv%gH(hgbopj#Phxye8`po5%Vr#@kS4 z5fh`LXu8PHyDGo=uW|9y!RgO?6F&8RX#n+?a41pfnzPlALmFn7S9t`r)JyC9V{uJo zuD%oT_NRj>AHxX!)nw``6$5;oyL=#pO!0$6*RK>7dYmoF{1cOGJ~tN}9@{zG6S2l9 z-+d|ad|`Jey=P*KGoeuTMsNYj%B^w!!9{!Pi(yG4>ptzP44{BaUP-R|QP2Be5j1XC zWtK?U<KU7ciqgf@igQ5LyG}*a!if1HTD<;9grxFbIPFfR-E?Mzh|tzrN|VUeDEyRl zuD~2)V@rT{btTNbfacxs0VA7QiM~qyX?JT7ivLquT71r<*#7gJN{1K+F)`lir!h`H z$beTt0bTu+YS=nOeNjj}ftQ?}t{<flQ)07se+0`$nRm?{;h>+RgawnMLndRA_GO13 z^2h;~OTKLSxqaSpUKDQ?^?Zh^nfdEj!A7g%V^{9Z#I8>7M!R;e;MTk1Zh$379Qn>s zl)BvAin*LoL*%hs9LEq8DRAulDsKfbIwF*(hu<`Ghor%k1Nt8C>N->llMkkZtX~~_ zepiFPKC-6fJ0(OUb*(SNnp5oyuadS9I^KE$qSxOO0lUCcBd5LX{$RZqGAB9_(ImPK ziQEz&>+x?sur<8k*0}iYTG;%CHTHnc0tZ(lauIil;CWxZAOB45%q*Y(7;t87|Mx{y zsA0n>%zntv244*KcBpYI9*s<kL|gORM1y$z8t~<dsoq-oAP6nK?TExS<5RD&<H@$E ztf|*u!YL&~J>e_h6{~>m>KAywlJ23Y^oRq2X|DXyp0Quhh-^O!JOeE19b}-BN#qTa z+`X_KFuJ%IF}AMN-vbXaXg<JmOLY72&)V_(i+#&`oZNz^bfehVIsWHC^qz<yY6J3r zonsx$OPx|3=K9k0-|w@xK3n|1zQ{UgQRIk8a&#HF`Jamj0+*Kf|J$V#j5)@37lM;n zf9|H!P<#3HB#YfH$6gG-yZM)e0bIs50pPh8I&_$Sl8<I?eD3tH2qRAx1H{b#`<)Db zwOM0}`Xj8}2wNwBdnt4PY&3Z#eKC9vX&$khB$>34P>p4DIy0A-fpUi2+#)qMp;)Z8 z8(v+h;HK7T3;aKcSDIzM97q;og0&}O2MY%nBvTLHM<*V($NRCEa|y`Y@A(~|z~Z+) z%V?Jmigp<iMGLeUMaeAcY6yLzwatEbV`o~Yne}p%9@dL*!%9E`02Q2k3B(n<hrKi> zKQ?Oo_mWASWOPosF6^beO9sHB6j@b`^bMo?o3-)j|M6(LyDYcb%7>mthhImMZ6dY` zA`xnPn?21afC)O^a9Xb?DFg%Dk@RV5I+8g}+D5V1;Yly?04H+T*fw=iPXN)o{3kIo zobM)(sOA({+qH>mY)-O&p|_6KPnvp5i??oCe&>b%!y2jB1h{&A(_O{$Mbz3K4-_jM z=Ilsz-2oXZ#q1{OA>T}$Dn{r&!S>g7Xz?!`eoJ+-DBvzx$3n$m914*4Wr4jVfxl`9 zN3HFP_o;H&{BA8lI8kzB=!ULu1@FtWgJMaXJf?C+h#UvYfViuuy9zFLyPGUcv7qU3 zz(ij6FUQK<`IhPM;=@Zod5|su6}`EBzf3Ry{rmr|om`KM^{wGpJLOIbk$c<N8$KHG zKE97ci(}{e*0{p%vRusfEl=ajjf-|pYZb{Q41)$<G{`*U)6vofvnHU{C{Xx^J|)Gx zrp2=~gIA^#plM2hZ%Ib}5sCCGF|5Xl=cTXxHmqy0r!K#r{97?mV3?Ty*VCP?2PDJa z)?nB<be;odH0<+t<}kb(y|+8I=eQLD$c08tpprYZCF&=#XuzDDImN}Ei#CwH-n_T# zr56BrRD_4&H;bLm7R5Eqzl5+h5qs;Ak)t1$D|NOjI{}~niTkRyR-TBb4ti*DT@sJI zNHHv67y2I9Y<|Gg&9t3x(A+nMQ5|0|g;qczeZm%mf3I#lFP0c{Rex8g&;&@5Kh;l4 zGaDk;y{yd&q#2r{@M2eSFS_;mVrW=`&)me4SRKOwpOI0+T;0=(2s2|8-AUcr^I5z+ zif#HU$ZB%o_J#(G?52T&o9eW%^^$lAlIIAuK%eNd?onJHIr08M$6zzhKmw{EvImEA z3>$T#*f(&wr{}M*eBR5q|NXF+!^BA)8+J4{9-0}3<o_G?Wof!AW|DZdh@A<^=57#6 zwIs9RY>t0$s(Pvno(YBpf??pKsy4<8fHEutQ50DM>JH4ms!-E7sX)3lDK@Rzp?*Ml zOhrcd3DG>@m&%^<G?ZZwK!?D<SLad9shM8Q+bY4JOt}5Z^x6hAW1-w0T8W=psO-Yx zMqTGjS0dL(&97})PIqPGOw*K=gGmOG_V~U47{j1OJOhz)GP^^}4sR)n1e<ynJb+>S zR@@E!ch$Q*%qyEpo1D`7=ejZ40|x7hYh8EU@UM|I)-cu{lnrw>lj*@{js|Tt)dD1; zK?NXr0L!%7t`BIe*5151u6vN%od0bVocrea-p`cl;Xs52hkllpC|@{VOS8h(I{*~P zS?0&N%>}|48$ALi>G7CayV=0rAIZIP%}H4c+a9%2m%`d%>QHcI#xzSDBQiV_={rQ= zsH8J(Y-eiHRdRc13ng^PteXy&4J<Muhj#lH2r{PdURbe4H%9isjW&RxBO(H$&0%XA zq|N2z=ADx>^GLpgEytz)ARFq&7my-rs*4np#RRF5rsW-e@^o@3`bG!68H;(;cCz#) zq7;zt;&Y{Gtm%MGH=XTaoIB=t(Rjl^o+2)ePe?+D_e4;0waj`gd;<&yb62GmXb&Vq z?Bxv9$<<pd!9Dx75WZi?9Jk^+-4{A0l**a}AzhkN46f_Etw(+xjNN8UJZ|mLkAGjq zVUcuCTS^HvXxn0Uz@o&}vX$^1P(tgC47EzEug8P32zX%qV2Mu<h8R8_QsTTS`9J*Z znhOTR{B6O!ANuQPX6?vQ9LS;6{~e|{NI$3z@RX!ggL+pC2;t565(&f}cExQSy5Ms- zd$S-BP#Lh*{SDiT#h_Ga3>R7?wN0HKf&rysYjVgR5jnkCn`N897*PF`b>i66todQN zmf_IA%$Ve<4fw4AA3c4*!L;0af;37)+T}|%;AwXRV1RppVO1%8ieu(M=+fCgL=mDW zo+%7MP-$uUnF7d}YhKRO&F<h*W!)fC=gusWvorb;x>X&~O^YWNKBNT}nkSP(!3}so z8`@?tirq?}!1Z1YT9*9D2jM-Sn9KD;?TXb~R?SMKYDzxDxJ?zGcp?P0iXsLPV;NqU zN953fp|v6WBUCza1;$~B1M*g(@Y)XNIbrutp88By;+f0_9z@+3F8<<N1J4Jl?jn4( z_KD8U&(0*kBPJPuNI1y@KCX0FrQE9bn3&R^H3y+%_;T12llJSeebpR&*Qsgi=ayOR zB2#%Ip{uyPR)GlL(Nz1x1EhNV$9%7{Dh}fP5z(!f82wCn$5|7v%YCl$V(O#0ud-rt ze6u^?VO)ks!+Na$+;ZmKN1MAVj$b2VRpmI*=ZntEbI#&c8&9k@g7C9uB>mDgIo0~e zcD+5S$E_&KnLAN_b)Akrbc;mUm!S-d^Isid!<=hodO1S3an9Q~N!qV%>UtB-CG_hx zi3(xsbeYC<(VdT4l#c;e-y(Ok1*7s*-r5Q#eJ5hdE#e_xwj7%ED?JxjYM+#-pjz~F zn5X!82W5=8=GBW^=TDKOq4rL*sDf*w?uz+Jm)2rv4{Jv4lbvW_R~7ZTh|xSC%}TM< z^QuKu_ly$YGfImW76+KAJr7&zda4En1YZal(odcu>qna(B!5bxJvP@;Oev%mrk7C9 zUoYAlZQiVyLn>Q?f`QZ&WWq4W<W+zVirRC7<8S-k!CQ_A%oS2+l)dlXWEfxzwo2+6 zrs<*l)XFk2zT9^0WCfb)&X2ul-({7Fsl4LeSJb0r{qyESH64H_*@+MrLOL{<w?ud$ zh<KtX<7c!$`1ls0o&W)XVFLzO9JvsYvxd?0EVv9T!M7-4NW!|y(zo9W&F^u*(r~?b zHv=(|rPX>zIsZ}1dG^+C=R@g7QgpM#1!K9nWT3AvgcRD$fYU!ceI7TOAVG2d89Hm~ zTo165bz7Nw#VMSlYITRO{;{V@9yM*h#(>I6B0hzj<S|a=l;`FFk<I!ZlY?&Csd*?D zJX?RXCy8p@Xurs8<(ja|^SoUmV1K?p0IY=D>hrvjSTcTo$ivIGht&O+Cxg1PUN0}l z<6j@?>~&9DljK%Z>n>v`e}{f*_HxP7)e(H$^Hd*f3;MjrGS+?mUI^C-M%|hm`3gFv z(5C3rtY1lSAQQfecG0Y8{Wj<$e^;cwH+FDT%P|BiRrX6Rhv_(U`*I2_+U#^so5WgK z&`Y~MG&jvpT<9YGWswnuwEoR!Ovgv&uUjPOt^~oV7K5;13am^SSx7zq7Pc@#cV~M0 zc#GU;7_3+_3`7#3t=VdY>F0=|qu9+lM2=&6ms?jD7Z>pYmjF?;3*WrN+g#TDgeWC$ z@7wPoP1zZ}cP-MgOszsUYa0wZR<<+Jvpb@0Ap$Uy9To>%PTbo_^fJ4p05-d&fnS*V zGsV<TrDf9I!Eepaou4T*KtqbC=LOMlz;iaQda>t{M!e2z%3YtWp4z45lf5s`ds;V; z$;nL+X9S<ZI5+@`&Ed*!g5Qrxib*9aT$&B4POFVAib?vEON;;Fg#n@0(IA=|!$8?$ zB5Wz+RAEc5bQ>++Q;PAWsmV2*UMMVx5+i=f$ZYw{VfG!VG+dLG{V8j;d6bh&#ted= zz3A>Pg}LN$Tk-9TAO0syW17`MX7B~JUOO5{(k*)Bej7HK1<hnl^bW@4sQ5&zq+#Wc zX}Mu|W2G6{#<;BPgOv&eX0MPX9C`41BZt;*R-VFL>{HpSsTfeU;}KgxkQz$mEg4vP zE|Tt-7&dZpKLaIX0o+<u_D7K*`YCOrYiy@0C<a?LOrlxK>p0%5;mF=*RYIpO#DWCL ztC&p|>|Ozj#gK;0Uy(a&Nw&Jg33)V+8IP6SGx=L}bSSJreGt2Q7zOr)gb$L)rCCLz z&nv2RtzA?Gp_vPTSqt{jwwb)va#DXgx$V|SPwy~CBsJM;J?O7wx@-?rt5gi;K&lKz z77eoF9=3&nBb6krU`oxaLkoK`B8@KT1!>l><^sTY9+tV=;ESw!Lg4RWnwZv%&OZd% zKZ>KpPfbqM)8d(qy|?h?ySQ2fRgVrMh5>2V-TDW7%YyNR)d9y*Hzu8#lX;`Z>ET7f zXlmhTOtgNw@JAj4^gbXt1*GmZT=G%=3fo(QVOvd<TYL-y0$*qlMY&Gn<EEBAB^^SH z0?e8A+-FW1gark!BkJ)>g<A#H^^w4xUI4i+*(4w$$o|W=wCZe~hC)G8_0a7ou$iTn zHQut9urUbNu-LNWRi-<6xLGg^3eLbZ+-mG9$anDNl;9T>fyY2$(mn6>sO2{YWv&1D zvvX_DqdvWX_>)bB6P~}>(*|9(MtLWZer{saW3NQ62S?UuJI9(Q1s>glS8*(}Hbds* zZX6B1ag*H$_9M-m*PKU<=Oki<I-LM1qj|L&MINb>DzHNFl%M;>6Mt^P{6SHRM+`Nz zN~+%{MQ5i?$AR~yqCdqa<$2OM+Gv8|e4WJ2_B-;@EKNhwNwoP{L$Q<$6Bjaxy;jpO zN*~nEf0vT*{1XpmYx_Xt(t%FBFi3)2y<DK(EZMo$IQBb$v~%f=`_p>CRlIrn*h__< zu=?i~6P{m>v~tT^`pZ>@1UR_3yFf%y#{;>W<(ri(jzP{s<bamxr)0T@Xz^_;)<I1A z7!$gg9J!f{qt1k)L8*6YavVj8q6%M*NmU6F%!vtrv8_EA*9#P3*+8ja7`FoGk~Tb} zbE5Ki^Hd^51_RCBW?(xOHR~-_A_KyM3<0g9fCg2QYF3!L8foU1v}5mS@wB9|jrg&l z=~+2OIid)Wb0-%AA}bSSRmJV`mX2$Nk*kJYT4hAhSWQC})o<D3xv@YVfOA=0g&&&% zcsmFJI~IYPD`;~j+Md{P^9KsU?|r#pocxb<8&21|xMKwIt+3m$H`qe=um_oGL-O}i zU1|t^G|JC|=5qI$8;N@%TEv`piSYROk&ome1q&qY4oO_ZYy<bFp?SMu?!J8_LV8TC zLP!@1g1#%v;mEp|&ynSLQEOen$L~cD$h5u9RbnLtr%F=`W*WCKTEm!kYHw47{P0cB zv&joRqL5-bJdkD~|FGn_)hn<rP6|hP4XYNC71CkgtWtPh&}VRs?mY=f&3oI;&KDOT zMnq4u_TR7h%*iJRUKbu032>R(UjmPj-w~cevTYlp$)SYPs>22yZhtK)$-yPUb+qdl z*FnHC8DO{7y1ItVS~cJUqINwJe<GtgTQ$M4H#HRl1S>q&+fd_VYIE8OnvXnu>uYa0 zmrNIdD2f~VWz-?88pv}iAf&;>&V2@P7M~xJWe)P7j+pb=Np9@z0V(|J`7#d?Ah>Zi z@Amn$8VeISxejw(U=$!+og2V3QxW%)DbFVcNChR?$K(WBJ}oArfsl(n2qc$F8WpX^ zBzYiGWo{u=-7Va4L{Z`g9Hlf3;3rk&y8p4D=?`3-GFKB5nhvW*aoAhlvg`|Of#%I0 zi-&tv0eVlCZsX3#)6b2`omk?OalBr9>i0QN-M9J}f}E-K&9Q{%k9a=DJkmxioEw4P z@NPBU^?2}c&f8mFhBDEh9|>FImF8Fb{VGVPKsOgIf7@=@U3AGuL<p1R;pHAlEhE_Q zJY5q)?X)}Zw4Yq9O0}{fpuw@dJ{@qgw-9GfOtW0CSE12xDA>E|HiX^wazGko<RPCQ zzr3nPczr4oTO+mFtH@6w$u}+_7sId`PpaXfi`6=?HK7;H>tW3`5w^Y+vYUT9RNJON zs1a`QoUcaY%s~U$*Qe4s;yoXiP=|y~`7M0=KN*np0H}gJ83r%*Q~JyaQw=3kGphse zbU3gqUIPHTed!M?Rze1HByfYG>7NL$VNCPwS&r>kc6^-hZ8F}^-LS#P4h7ikZ4q_I z+P7bMhUQhECxWV)tM)?9!@)JgL?H0qcoqpapvT}6T5ihM3|nsl_tOJn%p>?_t6B6d zQswZ8p+JSCbjFwT#qjA#Qsgd)q|I#(*}wO}LD%=nCflq;^gh{JmkFZV)LNLNkf4x~ z<AvgT`MUQSLOhTfw_3l!4_C${mG+dcoLAi}8QUtsanA;#N(0BfTgh9*o)eNQ(GJqX zUDH5}3aJTQqTn3uiiYWh=R0#E0{Is#PoTizz<LYL;JShro6!WX`CopHHYGyo_(w^Q zD7pIxXsi_d;c!Aako3UqsPX%RKOa~Pz674=5^7<7A=RBdFSMck%@j!(x@FgJ1YrF+ zYH0C7{E0;lnu6{z{dvtbL*LsCT9MgC4VU2(0NcTR<pIRBT^T@}IOPP<ibLCelz`QG zUL_!Dc{R+-tID#;&J<BqLwXoC3E#(a%g~4%aW$e9Yg;eUSFUStkJdtKqQ#qErfy?t zfm%58*QM~H_d`IUyufR&&M3U*TXAq(vodP@{#0Kdh$D%6^<krN)w5De*Vs?~;EmR_ zx$1n#*JGOC@j%9EI_yW-!StgevQqRj9=~8h9@F>jUiT|sljB$4tFwA{ZlwD~$y3@U zFObG~bOGP3LRRbNOBH*)t`e^m%CD}0cmMI>GO;(NFv&qy^@YPt2|Te|6#fLrCv`1% z=K@+)P&IE!^)dl6s_=W*<JM*3yBW$o2T3_~yUTNd89y}M6~&Z{=L)5!ix_tnmtfOV z!Giwo0N6i-QB{mkjWvFAvR{AZi}~}fLR<Dpl#y$s3#7{L_31_ZPb<KaAuuILm377! z1m)eW_%bdTI=6?&7iz0<Br*TaEi?#y77YjzUnsv~$}Bj&)VRM$y?I5Wxw7dkw8L1h zTNoAiy|>$SaXi;IPpt_k49~;7^(>%^5Li`C5C*h{Yrv`JtJRV*fDuZ&`nJ`r+_qnY z5Jk0u0Y^4)tn|@9gVZ17Py5K2klqzh3*&|F*7F-jZqC4%Q?SA2`pQbG`?{wqp~#qM z_Cy$UEJjI@c!c5s!8wj06eu0t<GJejTLq3rMA3A0Fn;FLr6j;^`F*`297#OjV^z<~ zkjH>0G&F2AzF~GWROF$8>Tu{!(!$C{hfc&MrFoaas6S^m?r7-hR@*Ok=Z0bI&Armz z*+x>j$dg^mM@eMl_d6LCr5RwcAZ<U52XJAwQ8x`a-)bqh?M5VYu_t|Egt(G69)_p0 z4U^jM%16i*syh}56){(x<!`6c2$qKlY8{T?l6wVn&EBLK4_;`ygLU&_&tYK{*yv$p zI%q^zn@dfriCDTTgaT4~kJV}WncKeoYxfWQ?S}(0my9nbo<ufLMi;8P$8c7@{X5p& zxA1*pWU039oY>R@IvcHXnq-C{8dTr?1@3*?u;32_7U(zRyp`u{*BpNRQ4)L#IPv^u z!AYUd$F7SFBXUM79HkYX0LcX?H>2hn3pb991bPOs3<A`rC2wAHqA2~CEDBAXL0pKv znI1FBach69R5}9ed%L#pUO!OGQvs3DIFJZDG`N7_5D##Qh*%4Lj;jZ`%^#lRL!S1H z;!4#_OEKLFOB(sEE6;BhM_+UQ=pB^LTZ_{t+#lJi33F}WL1F~VdeeUqoTG<1qIu#V z8mYe90f-Wpsz=$z4dN$-G#xu~#04B<n?{d7yA+<fzsm;AXfdBIsCvkIV<gNLxIj=? z$)&=twD9RI9F%VXHNItaw=c*LNcgga?oT=(s;krd_V3Usb3txoXUweT@0dg<!**Sa zY)KYW!wL~UT2Lmv2hg<lF*z@JlM&*v2I=_(S$&~s<f=LkMlK)WpmAF+L@s>I+V}Pl z!CBJX%cs?xlqjn?yM0fTGRo7oZ>OYKjb)XacQ71W_s7?+C=pSgtkoh)2(enC1-nE` z7Q2Fo4Y7I)Rxb$_QKFZK2OI5Cmemp^h)zV^B?wY<(TU#eEAQ|3%shYme)G=zJ#*&X zIWy<nxig>p&z*A!>=`8k4|bo1w3_FxKc*X|j~nLQQF%dR%MfZRKW6k2u6489%H1|S zF=Wd=DpFz1)XUV9T=T<z9)>%7#?+QNy3RhD?TWg6GvNuT1k0`(+v<wgiCy52;vRx9 zdR6<(w9#2r7I#=((ou|Cq2>e0Kp3AqQVd7i!!4o?Ummm;P<2mYaQg5VR*6|eS}@h^ z<i`C=Tru61MS-Q7W5kyXX|_H=74^aLtMp<V@+>HZV$6QvM{`_Xw2%86K9NcFyl)pF zgKy!Oc|P~$U}U}YVB~{i$*{3u-?%!>ws|E`ZS8T2vEK1t`T71DK75xW?-wI)c8Kq$ zEO~#mI*cf4zOA|45vJwTk)MO|*NZc{RPFP_IqK%OPYV9+&^0;!>7kVvyz_S!>?Cg0 zs7%Jzyzg}%x-al!)T>p)qJ83yQhcJyOGR%c?#R3Q#NCdI)7m}nSs0Wa6;Q;XcLfXb zJO`yS1{!z`Z=;PK?kouml~QO@7W9{04~?rZB1$Dc+)*L`NBU~Dpqu<k!daED0Idpl zpS}HUGAUyNf8L$&bhjLE(^58B0pW7?V8;@*$at{7Jh06a^}YmYEc;1NVO;AqSaE{6 zet9e{b<A^9Fsu;S8kU5QQ9gkgr3K_12XiqNIDnmgW{M%u=0-goORVa~*{L3IhCQ2r z%b4erk!%xNzOKH`La0e)b_8L8%&u=YVXL#In}QSvB$epMi{35_$LV1A*L<*~xw<UQ zZmwujrHq=LJCEwj$a1i0x~+sPmwc39ROTby&6v=k(UR0<gl=NK8+`2<y=hq)FOpx4 z>Wg!pk*;>ls5%4L-%Op9p2QzWo4`p>eSYEA=;{iii?E01-a}9P4QuqtmoCi_>I4~q zNF;8GN1LYh2eq2h`%?k9G+aq=$Ar%gNpp(fHO)D_+Mm*^-_{xFl+-gDa1nz3AvUew z#E=o&RRuGvG8B<-zguX%C&r!3xbth@fy^2Od!H>%JDsSvTP>k@bzR@8!k9Ct>;iv@ zi|{S3uPtmWhxt{Za~_^Qu|L4GW;#k8Ie}eQmgc`GEDq0(ji#;)$Sux$)!;y}`Q!lc z+#qju*BOyP-WP(Fxj%=2wweW5asmEpb06mk7Eew^BmR8+pv{y0d8yV`@`$<?|7KuS z=SvBV4HdN}^BebWu&etBMGn|Z`qpaz!<=D9PMgL^d}>2)%3+ITmsL>A9A!M9f*$Ks zq1{ecnCEvFX${Ra^ZAfqmO3Q1I@ZH;A!?;~NT%Ms-gXUfRIqz>a7KAjpSC19-st@2 z$(&CTM>Y=iwwkXBVFMe%fICPC<w+Z4(r4pxIj+-G>DHkIyn==Uq!t6;>qj;=vjv1& zRLp>PAi1ragG*|m%sTz|tN6o@Mub+cpZZL;-9a~~zngt^Ao4mPgvNPud0fwkRb!LB zYDdB*)zrl4@Ure+e~lFfJfOmFK69d#Uj5w~uh^P<54Zd}bIakc$UE7EKl|0<{jcsu z1TZ;y$bUx^lbpkI7eB7^&2rA8eE-PZcyH!Ov0@DZe%E%m645Q*jm5VrIo*PSQ(H}7 zYaa7P+Kdaz7T{P?x=8>+V%QCT!|jzeY?N$b-o|7m!D-VdiXj<gf~LOgF*9zNgy10` z-AE~(&kqg_-dRQ#Ka00)pl)3N@nGzuoxHehvM%m!FFB(np&*TuuiJ71KGKhPU)hd{ zj9Qd_Hg_LV+L+EDT7SLmhy8PVq@m<w;`{PE>A~cQvxQLSbtiio7THq{Y8Hu{vM&*S zPPl+J5q4YGJCMY;*o9kuUr$7IALDay*LuHU)Fi7lWHJdys+HdU`&aLDL*6uh=!GKD zxMeR@hf9|X+SDL4Jx5ebKs<zoa|`DUB~VFeIx#EsSDmd3_x-F#S96vL8`M?V8HB-G z9_m^Y-Y;ARYcrJNvV#k~`GDyiOPah$B@-~6W2tO0r#L}ucI}Uc5Z_uAV!?Ep$GZV3 z21?i!5Yh-OoJM=FH|!}@YnY`2{`ptY`uL%++2<!1xUr<64|7#3b^qgd<D9C;GvbwW z8mFeLU99Stf!Vr<1<@f!zYP{92P5JO1!;aNxr?s2EFGwkzzgc&#+HIm6;)DVvzn;g z!puG9@)5;PoKS&HUt|0mv6k1P&2$2<u5F_53a|4PwyyALxpGa@y59dGx<TfVeg(cQ zc7?U@PmZfzVb1xDItIGL;)t(VyT8nT4LM3fH*nv|$+BrFgRL?PF!J0}B1e11wZxIh zbeM|gGvz7Kg`^`tl7D){jy2ITA3JOs`7kc1rdIlZx!&=xuvxpmiK-c;Rvu@H7z{$} z4|RQCu_<`Wx4=OZKug|Ki5OPjfUe%F3~$Q-cV3^HVTORqpi_~^8oFoE>6u$YtPWO8 z_qtNj{;+Tna|sVUu-DC1N4GG>?+(7WBsVD7!hA!hQKSFh`PHWn6I)!Yb#?FcHzx5m z>`}7y?%JB<C@ADqJNkLqIQluRM@QlZXgOY|uqb4>v>=B(*UElCXUlMdt)0tIk$ktl zV0la0##jmS$!j!^+G(U=$^{?u%9X~#Zd@_28!l!ka~PAn5N?iEWqeKo)=z-rgrgo@ zXEw}}{|l2&QxZLcTQ)`Hr%5;InB-5(*em?(ue93pMOa_Z_mq1oW$6_mVrBjr7NIAR zLz1M@-8i5AAHjw+NYO35H5M^1B66Q4eK@U<`jVg@5+>CIe^OF3)PUWej;WzoHBe$+ z^#QLTnSJ|%=3sZ(74Udzg=V(`N?J*+-{!03h{(d=@-vxmx0BTyBW!kW<0xt0u&NdB z10OfOK3;5|<)#qpC|Ms^ee3$Sh4MSdCw95*08BW|WJ40gW0YMOp0|FHlzBvM=n`U^ zYIteT9<)*4!;*aKxMQ&;NVS5R^cb2<K3ga|<PRZaD2|TAo`KqW1wsg^uG&$QMloKT z?}}&hM3CwM?I~=LqDo;p3L2n<o?YFcWK;gn5G6I+=gz2fU+49yPyXN*n9NBu?mwjv z2R5{6l=l=0{U+YWGalGIZ$I%bYC`l;Kqv$)-5&gavEd>Ruy+RtKp{ZX>;SrRYpoSW z0sdEe7XW}u06u_$r>l#NmW8to6zgYX$OxcCpn0CuSnxclK6fu)1^^ZHE)@W9UI73o zHPnqCl4Nc?Hol}m^g?mjM0ZdPg49-HxxK~Y4V7zSlhN+0UEcP+<#yL6$3vznR0K(V z8Gf#K2=U!JD6ZMR;Hxt#e|0~fE~Q45c-Pd-fwt{#{@o2ZFB7wFThY!3V=XRZj$Z4y z#GYS^0w7aYkDammoK4wtDwk6$A~}ucpH8dSX~<Z1aSerPmAGXg@Ano#9#$qGe_adq z`K99U(mww!AwhIj>1DFelt2_sAyZqJoiq6x_$dewfc!kF$cIx2#6UPx3I~@hE<Z~I zro@hq<2UsWe#v!m2Y>_uPST{Bbq8f+$F({=N3}Ls$XrFevVl5<TMk98vTTr9{m<@d ze)L(5sZbH8CPh0Q^XK6D*Syjx!EbdlxREGhtX9$bm4nP}@8<2Tk6*%<ZyDXhONPxI zM5F5vi^b0T1YN?LzRSd}QV^&IUT@dF6dyTvC0LyE_z2F^JGuguf=Hmb^M3A=TRG{q zl00Dk<&DO?rQIhTL)MP-5?W{X@?aOm4;yPf3W^fonvV3oNuR#@?Xoc$fWH)BMTNWC zieg;N#6KjbgDV2(f#CvYWFVn^D&wa9o`g+QkdY)i_MP1XxlTIAVdWvni`tCsG%{_y z7^NUrF%D;qbzZb4yrJq*Zddwl$s4vOPLRR)Yz2cB=wEbeejZ8ptdQB&k6Nhv^dT>! zQO_Kf(AeY=^nqE)->jQXaicF&lh7Rq5^^PmU@{77RWat@?H~DoCvT-!?{B&OW)fsA z4^{*M0KdsYA*g`tp#Py#pg|n<PhOeMsr*}c!M}Hg4$clPc3SQhSbHee#qQsj{)PE} qG5u%p-^l;-;NQsqt-N3e1Mt6k04T%-n%~*Lb9;ZjmNK5-2k<WjT=nGu literal 0 HcmV?d00001

u)o*p=l+xgBS?uQINSFL) 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 z%0D-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

u)o*p=l+xgBS?uQINSFL) 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 z%0D-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