From 1b52d5b729ab3ef44cb92ec01ebf1c0f69b5dac6 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 18 May 2019 11:43:08 -0400 Subject: [PATCH] Apply changes from importlib_metadata --- Lib/importlib/_bootstrap_external.py | 2 +- Lib/importlib/metadata/__init__.py | 395 +++++- Lib/importlib/metadata/_hooks.py | 16 - Lib/importlib/metadata/abc.py | 18 - Lib/importlib/metadata/api.py | 358 ------ Lib/test/test_importlib/test_main.py | 16 +- Lib/test/test_importlib/test_metadata_api.py | 3 +- Lib/test/test_importlib/test_zip.py | 1 + Python/importlib_external.h | 1128 +++++++++--------- 9 files changed, 966 insertions(+), 971 deletions(-) delete mode 100644 Lib/importlib/metadata/_hooks.py delete mode 100644 Lib/importlib/metadata/abc.py delete mode 100644 Lib/importlib/metadata/api.py diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index 45fd087c5fe..dc5842374d3 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -1369,7 +1369,7 @@ class PathFinder: of directories ``path`` (defaults to sys.path). """ import re - from importlib.metadata._hooks import PathDistribution + from importlib.metadata import PathDistribution if path is None: path = sys.path pattern = '.*' if name is None else re.escape(name) diff --git a/Lib/importlib/metadata/__init__.py b/Lib/importlib/metadata/__init__.py index 8d4b0a344cd..9a4ba6171cc 100644 --- a/Lib/importlib/metadata/__init__.py +++ b/Lib/importlib/metadata/__init__.py @@ -1,9 +1,20 @@ -from .api import ( - Distribution, PackageNotFoundError, distribution, distributions, - entry_points, files, metadata, requires, version) +import io +import re +import abc +import csv +import sys +import email +import pathlib +import operator +import functools +import itertools +import collections -# Import for installation side-effects. -from . import _hooks # noqa: F401 +from configparser import ConfigParser +from contextlib import suppress +from importlib import import_module +from importlib.abc import MetaPathFinder +from itertools import starmap __all__ = [ @@ -17,3 +28,377 @@ __all__ = [ 'requires', 'version', ] + + +class PackageNotFoundError(ModuleNotFoundError): + """The package was not found.""" + + +class EntryPoint(collections.namedtuple('EntryPointBase', 'name value group')): + """An entry point as defined by Python packaging conventions.""" + + pattern = re.compile( + r'(?P[\w.]+)\s*' + r'(:\s*(?P[\w.]+))?\s*' + r'(?P\[.*\])?\s*$' + ) + """ + A regular expression describing the syntax for an entry point, + which might look like: + + - module + - package.module + - package.module:attribute + - package.module:object.attribute + - package.module:attr [extra1, extra2] + + Other combinations are possible as well. + + The expression is lenient about whitespace around the ':', + following the attr, and following any extras. + """ + + def load(self): + """Load the entry point from its definition. If only a module + is indicated by the value, return that module. Otherwise, + return the named object. + """ + match = self.pattern.match(self.value) + module = import_module(match.group('module')) + attrs = filter(None, (match.group('attr') or '').split('.')) + return functools.reduce(getattr, attrs, module) + + @property + def extras(self): + match = self.pattern.match(self.value) + return list(re.finditer(r'\w+', match.group('extras') or '')) + + @classmethod + def _from_config(cls, config): + return [ + cls(name, value, group) + for group in config.sections() + for name, value in config.items(group) + ] + + @classmethod + def _from_text(cls, text): + config = ConfigParser() + try: + config.read_string(text) + except AttributeError: # pragma: nocover + # Python 2 has no read_string + config.readfp(io.StringIO(text)) + return EntryPoint._from_config(config) + + def __iter__(self): + """ + Supply iter so one may construct dicts of EntryPoints easily. + """ + return iter((self.name, self)) + + +class PackagePath(pathlib.PurePosixPath): + """A reference to a path in a package""" + + def read_text(self, encoding='utf-8'): + with self.locate().open(encoding=encoding) as stream: + return stream.read() + + def read_binary(self): + with self.locate().open('rb') as stream: + return stream.read() + + def locate(self): + """Return a path-like object for this path""" + return self.dist.locate_file(self) + + +class FileHash: + def __init__(self, spec): + self.mode, _, self.value = spec.partition('=') + + def __repr__(self): + return ''.format(self.mode, self.value) + + +class Distribution: + """A Python distribution package.""" + + @abc.abstractmethod + def read_text(self, filename): + """Attempt to load metadata file given by the name. + + :param filename: The name of the file in the distribution info. + :return: The text if found, otherwise None. + """ + + @abc.abstractmethod + def locate_file(self, path): + """ + Given a path to a file in this distribution, return a path + to it. + """ + + @classmethod + def from_name(cls, name): + """Return the Distribution for the given package name. + + :param name: The name of the distribution package to search for. + :return: The Distribution instance (or subclass thereof) for the named + package, if found. + :raises PackageNotFoundError: When the named package's distribution + metadata cannot be found. + """ + for resolver in cls._discover_resolvers(): + dists = resolver(name) + dist = next(dists, None) + if dist is not None: + return dist + else: + raise PackageNotFoundError(name) + + @classmethod + def discover(cls): + """Return an iterable of Distribution objects for all packages. + + :return: Iterable of Distribution objects for all packages. + """ + return itertools.chain.from_iterable( + resolver() + for resolver in cls._discover_resolvers() + ) + + @staticmethod + def _discover_resolvers(): + """Search the meta_path for resolvers.""" + declared = ( + getattr(finder, 'find_distributions', None) + for finder in sys.meta_path + ) + return filter(None, declared) + + @classmethod + def find_local(cls): + dists = itertools.chain.from_iterable( + resolver(path=['.']) + for resolver in cls._discover_resolvers() + ) + dist, = dists + return dist + + @property + def metadata(self): + """Return the parsed metadata for this Distribution. + + The returned object will have keys that name the various bits of + metadata. See PEP 566 for details. + """ + text = ( + self.read_text('METADATA') + or self.read_text('PKG-INFO') + # This last clause is here to support old egg-info files. Its + # effect is to just end up using the PathDistribution's self._path + # (which points to the egg-info file) attribute unchanged. + or self.read_text('') + ) + return email.message_from_string(text) + + @property + def version(self): + """Return the 'Version' metadata for the distribution package.""" + return self.metadata['Version'] + + @property + def entry_points(self): + return EntryPoint._from_text(self.read_text('entry_points.txt')) + + @property + def files(self): + file_lines = self._read_files_distinfo() or self._read_files_egginfo() + + def make_file(name, hash=None, size_str=None): + result = PackagePath(name) + result.hash = FileHash(hash) if hash else None + result.size = int(size_str) if size_str else None + result.dist = self + return result + + return file_lines and starmap(make_file, csv.reader(file_lines)) + + def _read_files_distinfo(self): + """ + Read the lines of RECORD + """ + text = self.read_text('RECORD') + return text and text.splitlines() + + def _read_files_egginfo(self): + """ + SOURCES.txt might contain literal commas, so wrap each line + in quotes. + """ + text = self.read_text('SOURCES.txt') + return text and map('"{}"'.format, text.splitlines()) + + @property + def requires(self): + """Generated requirements specified for this Distribution""" + return self._read_dist_info_reqs() or self._read_egg_info_reqs() + + def _read_dist_info_reqs(self): + spec = self.metadata['Requires-Dist'] + return spec and filter(None, spec.splitlines()) + + def _read_egg_info_reqs(self): + source = self.read_text('requires.txt') + return source and self._deps_from_requires_text(source) + + @classmethod + def _deps_from_requires_text(cls, source): + section_pairs = cls._read_sections(source.splitlines()) + sections = { + section: list(map(operator.itemgetter('line'), results)) + for section, results in + itertools.groupby(section_pairs, operator.itemgetter('section')) + } + return cls._convert_egg_info_reqs_to_simple_reqs(sections) + + @staticmethod + def _read_sections(lines): + section = None + for line in filter(None, lines): + section_match = re.match(r'\[(.*)\]$', line) + if section_match: + section = section_match.group(1) + continue + yield locals() + + @staticmethod + def _convert_egg_info_reqs_to_simple_reqs(sections): + """ + Historically, setuptools would solicit and store 'extra' + requirements, including those with environment markers, + in separate sections. More modern tools expect each + dependency to be defined separately, with any relevant + extras and environment markers attached directly to that + requirement. This method converts the former to the + latter. See _test_deps_from_requires_text for an example. + """ + def make_condition(name): + return name and 'extra == "{name}"'.format(name=name) + + def parse_condition(section): + section = section or '' + extra, sep, markers = section.partition(':') + if extra and markers: + markers = '({markers})'.format(markers=markers) + conditions = list(filter(None, [markers, make_condition(extra)])) + return '; ' + ' and '.join(conditions) if conditions else '' + + for section, deps in sections.items(): + for dep in deps: + yield dep + parse_condition(section) + + +class DistributionFinder(MetaPathFinder): + """ + A MetaPathFinder capable of discovering installed distributions. + """ + + @abc.abstractmethod + def find_distributions(self, name=None, path=None): + """ + Return an iterable of all Distribution instances capable of + loading the metadata for packages matching the name + (or all names if not supplied) along the paths in the list + of directories ``path`` (defaults to sys.path). + """ + + +class PathDistribution(Distribution): + def __init__(self, path): + """Construct a distribution from a path to the metadata directory.""" + self._path = path + + def read_text(self, filename): + with suppress(FileNotFoundError, NotADirectoryError, KeyError): + return self._path.joinpath(filename).read_text(encoding='utf-8') + read_text.__doc__ = Distribution.read_text.__doc__ + + def locate_file(self, path): + return self._path.parent / path + + +def distribution(package): + """Get the ``Distribution`` instance for the given package. + + :param package: The name of the package as a string. + :return: A ``Distribution`` instance (or subclass thereof). + """ + return Distribution.from_name(package) + + +def distributions(): + """Get all ``Distribution`` instances in the current environment. + + :return: An iterable of ``Distribution`` instances. + """ + return Distribution.discover() + + +def local_distribution(): + """Get the ``Distribution`` instance for the package in CWD. + + :return: A ``Distribution`` instance (or subclass thereof). + """ + return Distribution.find_local() + + +def metadata(package): + """Get the metadata for the package. + + :param package: The name of the distribution package to query. + :return: An email.Message containing the parsed metadata. + """ + return Distribution.from_name(package).metadata + + +def version(package): + """Get the version string for the named package. + + :param package: The name of the distribution package to query. + :return: The version string for the package as defined in the package's + "Version" metadata key. + """ + return distribution(package).version + + +def entry_points(): + """Return EntryPoint objects for all installed packages. + + :return: EntryPoint objects for all installed packages. + """ + eps = itertools.chain.from_iterable( + dist.entry_points for dist in distributions()) + by_group = operator.attrgetter('group') + ordered = sorted(eps, key=by_group) + grouped = itertools.groupby(ordered, by_group) + return { + group: tuple(eps) + for group, eps in grouped + } + + +def files(package): + return distribution(package).files + + +def requires(package): + """ + Return a list of requirements for the indicated distribution. + + :return: An iterator of requirements, suitable for + packaging.requirement.Requirement. + """ + return distribution(package).requires diff --git a/Lib/importlib/metadata/_hooks.py b/Lib/importlib/metadata/_hooks.py deleted file mode 100644 index 4c57f4d48ee..00000000000 --- a/Lib/importlib/metadata/_hooks.py +++ /dev/null @@ -1,16 +0,0 @@ -from .api import Distribution -from contextlib import suppress - - -class PathDistribution(Distribution): - def __init__(self, path): - """Construct a distribution from a path to the metadata directory.""" - self._path = path - - def read_text(self, filename): - with suppress(FileNotFoundError, NotADirectoryError, KeyError): - return self._path.joinpath(filename).read_text(encoding='utf-8') - read_text.__doc__ = Distribution.read_text.__doc__ - - def locate_file(self, path): - return self._path.parent / path diff --git a/Lib/importlib/metadata/abc.py b/Lib/importlib/metadata/abc.py deleted file mode 100644 index 845e41afff7..00000000000 --- a/Lib/importlib/metadata/abc.py +++ /dev/null @@ -1,18 +0,0 @@ -import abc - -from importlib.abc import MetaPathFinder - - -class DistributionFinder(MetaPathFinder): - """ - A MetaPathFinder capable of discovering installed distributions. - """ - - @abc.abstractmethod - def find_distributions(self, name=None, path=None): - """ - Return an iterable of all Distribution instances capable of - loading the metadata for packages matching the name - (or all names if not supplied) along the paths in the list - of directories ``path`` (defaults to sys.path). - """ diff --git a/Lib/importlib/metadata/api.py b/Lib/importlib/metadata/api.py deleted file mode 100644 index ba5c17120b9..00000000000 --- a/Lib/importlib/metadata/api.py +++ /dev/null @@ -1,358 +0,0 @@ -import re -import abc -import csv -import sys -import email -import operator -import functools -import itertools -import collections - -from importlib import import_module -from itertools import starmap - -import pathlib -from configparser import ConfigParser - -__metaclass__ = type - - -class PackageNotFoundError(ModuleNotFoundError): - """The package was not found.""" - - -class EntryPoint(collections.namedtuple('EntryPointBase', 'name value group')): - """An entry point as defined by Python packaging conventions.""" - - pattern = re.compile( - r'(?P[\w.]+)\s*' - r'(:\s*(?P[\w.]+))?\s*' - r'(?P\[.*\])?\s*$' - ) - """ - A regular expression describing the syntax for an entry point, - which might look like: - - - module - - package.module - - package.module:attribute - - package.module:object.attribute - - package.module:attr [extra1, extra2] - - Other combinations are possible as well. - - The expression is lenient about whitespace around the ':', - following the attr, and following any extras. - """ - - def load(self): - """Load the entry point from its definition. If only a module - is indicated by the value, return that module. Otherwise, - return the named object. - """ - match = self.pattern.match(self.value) - module = import_module(match.group('module')) - attrs = filter(None, (match.group('attr') or '').split('.')) - return functools.reduce(getattr, attrs, module) - - @property - def extras(self): - match = self.pattern.match(self.value) - return list(re.finditer(r'\w+', match.group('extras') or '')) - - @classmethod - def _from_config(cls, config): - return [ - cls(name, value, group) - for group in config.sections() - for name, value in config.items(group) - ] - - @classmethod - def _from_text(cls, text): - config = ConfigParser() - config.read_string(text) - return EntryPoint._from_config(config) - - def __iter__(self): - """ - Supply iter so one may construct dicts of EntryPoints easily. - """ - return iter((self.name, self)) - - -class PackagePath(pathlib.PurePosixPath): - """A reference to a path in a package""" - - def read_text(self, encoding='utf-8'): - with self.locate().open(encoding=encoding) as stream: - return stream.read() - - def read_binary(self): - with self.locate().open('rb') as stream: - return stream.read() - - def locate(self): - """Return a path-like object for this path""" - return self.dist.locate_file(self) - - -class FileHash: - def __init__(self, spec): - self.mode, _, self.value = spec.partition('=') - - def __repr__(self): - return ''.format(self.mode, self.value) - - -class Distribution: - """A Python distribution package.""" - - @abc.abstractmethod - def read_text(self, filename): - """Attempt to load metadata file given by the name. - - :param filename: The name of the file in the distribution info. - :return: The text if found, otherwise None. - """ - - @abc.abstractmethod - def locate_file(self, path): - """ - Given a path to a file in this distribution, return a path - to it. - """ - - @classmethod - def from_name(cls, name): - """Return the Distribution for the given package name. - - :param name: The name of the distribution package to search for. - :return: The Distribution instance (or subclass thereof) for the named - package, if found. - :raises PackageNotFoundError: When the named package's distribution - metadata cannot be found. - """ - for resolver in cls._discover_resolvers(): - dists = resolver(name) - dist = next(dists, None) - if dist is not None: - return dist - else: - raise PackageNotFoundError(name) - - @classmethod - def discover(cls): - """Return an iterable of Distribution objects for all packages. - - :return: Iterable of Distribution objects for all packages. - """ - return itertools.chain.from_iterable( - resolver() - for resolver in cls._discover_resolvers() - ) - - @staticmethod - def _discover_resolvers(): - """Search the meta_path for resolvers.""" - declared = ( - getattr(finder, 'find_distributions', None) - for finder in sys.meta_path - ) - return filter(None, declared) - - @classmethod - def find_local(cls): - dists = itertools.chain.from_iterable( - resolver(path=['.']) - for resolver in cls._discover_resolvers() - ) - dist, = dists - return dist - - @property - def metadata(self): - """Return the parsed metadata for this Distribution. - - The returned object will have keys that name the various bits of - metadata. See PEP 566 for details. - """ - text = ( - self.read_text('METADATA') - or self.read_text('PKG-INFO') - # This last clause is here to support old egg-info files. Its - # effect is to just end up using the PathDistribution's self._path - # (which points to the egg-info file) attribute unchanged. - or self.read_text('') - ) - return email.message_from_string(text) - - @property - def version(self): - """Return the 'Version' metadata for the distribution package.""" - return self.metadata['Version'] - - @property - def entry_points(self): - return EntryPoint._from_text(self.read_text('entry_points.txt')) - - @property - def files(self): - file_lines = self._read_files_distinfo() or self._read_files_egginfo() - - def make_file(name, hash=None, size_str=None): - result = PackagePath(name) - result.hash = FileHash(hash) if hash else None - result.size = int(size_str) if size_str else None - result.dist = self - return result - - return file_lines and starmap(make_file, csv.reader(file_lines)) - - def _read_files_distinfo(self): - """ - Read the lines of RECORD - """ - text = self.read_text('RECORD') - return text and text.splitlines() - - def _read_files_egginfo(self): - """ - SOURCES.txt might contain literal commas, so wrap each line - in quotes. - """ - text = self.read_text('SOURCES.txt') - return text and map('"{}"'.format, text.splitlines()) - - @property - def requires(self): - """Generated requirements specified for this Distribution""" - return self._read_dist_info_reqs() or self._read_egg_info_reqs() - - def _read_dist_info_reqs(self): - spec = self.metadata['Requires-Dist'] - return spec and filter(None, spec.splitlines()) - - def _read_egg_info_reqs(self): - source = self.read_text('requires.txt') - return source and self._deps_from_requires_text(source) - - @classmethod - def _deps_from_requires_text(cls, source): - section_pairs = cls._read_sections(source.splitlines()) - sections = { - section: list(map(operator.itemgetter('line'), results)) - for section, results in - itertools.groupby(section_pairs, operator.itemgetter('section')) - } - return cls._convert_egg_info_reqs_to_simple_reqs(sections) - - @staticmethod - def _read_sections(lines): - section = None - for line in filter(None, lines): - section_match = re.match(r'\[(.*)\]$', line) - if section_match: - section = section_match.group(1) - continue - yield locals() - - @staticmethod - def _convert_egg_info_reqs_to_simple_reqs(sections): - """ - Historically, setuptools would solicit and store 'extra' - requirements, including those with environment markers, - in separate sections. More modern tools expect each - dependency to be defined separately, with any relevant - extras and environment markers attached directly to that - requirement. This method converts the former to the - latter. See _test_deps_from_requires_text for an example. - """ - def make_condition(name): - return name and 'extra == "{name}"'.format(name=name) - - def parse_condition(section): - section = section or '' - extra, sep, markers = section.partition(':') - if extra and markers: - markers = '({markers})'.format(markers=markers) - conditions = list(filter(None, [markers, make_condition(extra)])) - return '; ' + ' and '.join(conditions) if conditions else '' - - for section, deps in sections.items(): - for dep in deps: - yield dep + parse_condition(section) - - -def distribution(package): - """Get the ``Distribution`` instance for the given package. - - :param package: The name of the package as a string. - :return: A ``Distribution`` instance (or subclass thereof). - """ - return Distribution.from_name(package) - - -def distributions(): - """Get all ``Distribution`` instances in the current environment. - - :return: An iterable of ``Distribution`` instances. - """ - return Distribution.discover() - - -def local_distribution(): - """Get the ``Distribution`` instance for the package in CWD. - - :return: A ``Distribution`` instance (or subclass thereof). - """ - return Distribution.find_local() - - -def metadata(package): - """Get the metadata for the package. - - :param package: The name of the distribution package to query. - :return: An email.Message containing the parsed metadata. - """ - return Distribution.from_name(package).metadata - - -def version(package): - """Get the version string for the named package. - - :param package: The name of the distribution package to query. - :return: The version string for the package as defined in the package's - "Version" metadata key. - """ - return distribution(package).version - - -def entry_points(): - """Return EntryPoint objects for all installed packages. - - :return: EntryPoint objects for all installed packages. - """ - eps = itertools.chain.from_iterable( - dist.entry_points for dist in distributions()) - by_group = operator.attrgetter('group') - ordered = sorted(eps, key=by_group) - grouped = itertools.groupby(ordered, by_group) - return { - group: tuple(eps) - for group, eps in grouped - } - - -def files(package): - return distribution(package).files - - -def requires(package): - """ - Return a list of requirements for the indicated distribution. - - :return: An iterator of requirements, suitable for - packaging.requirement.Requirement. - """ - return distribution(package).requires diff --git a/Lib/test/test_importlib/test_main.py b/Lib/test/test_importlib/test_main.py index 22529b1cc88..bb5c6760f55 100644 --- a/Lib/test/test_importlib/test_main.py +++ b/Lib/test/test_importlib/test_main.py @@ -3,12 +3,14 @@ import re import textwrap import unittest -import importlib +import importlib.metadata from . import fixtures from importlib.metadata import ( - Distribution, PackageNotFoundError, api, distributions, - entry_points, metadata, version) + Distribution, EntryPoint, + PackageNotFoundError, distributions, + entry_points, metadata, version, + ) class BasicTests(fixtures.DistInfoPkg, unittest.TestCase): @@ -40,12 +42,12 @@ class ImportTests(fixtures.DistInfoPkg, unittest.TestCase): self.assertEqual(ep.load().__name__, "main") def test_resolve_without_attr(self): - ep = api.EntryPoint( + ep = EntryPoint( name='ep', - value='importlib.metadata.api', + value='importlib.metadata', group='grp', ) - assert ep.load() is api + assert ep.load() is importlib.metadata class NameNormalizationTests(fixtures.SiteDir, unittest.TestCase): @@ -144,7 +146,7 @@ class DiscoveryTests(fixtures.EggInfoPkg, assert all( isinstance(dist, Distribution) for dist in dists - ) + ), dists assert any( dist.metadata['Name'] == 'egginfo-pkg' for dist in dists diff --git a/Lib/test/test_importlib/test_metadata_api.py b/Lib/test/test_importlib/test_metadata_api.py index f837a6343eb..36c812da752 100644 --- a/Lib/test/test_importlib/test_metadata_api.py +++ b/Lib/test/test_importlib/test_metadata_api.py @@ -7,9 +7,8 @@ from collections.abc import Iterator from . import fixtures from importlib.metadata import ( Distribution, PackageNotFoundError, distribution, - entry_points, files, metadata, requires, version, + entry_points, files, local_distribution, metadata, requires, version, ) -from importlib.metadata.api import local_distribution class APITests( diff --git a/Lib/test/test_importlib/test_zip.py b/Lib/test/test_importlib/test_zip.py index db39e190ea7..22da0163081 100644 --- a/Lib/test/test_importlib/test_zip.py +++ b/Lib/test/test_importlib/test_zip.py @@ -48,6 +48,7 @@ class TestEgg(TestZip): egg = self.resources.enter_context( path(self.root, 'example-21.12-py3.6.egg')) sys.path.insert(0, str(egg)) + print('***', sys.path) self.resources.callback(sys.path.pop, 0) def test_files(self): diff --git a/Python/importlib_external.h b/Python/importlib_external.h index e0bbb8588fb..19c96a3cbc0 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -2260,570 +2260,570 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 115,46,112,97,116,104,41,46,10,32,32,32,32,32,32,32, 32,114,73,0,0,0,78,41,1,218,16,80,97,116,104,68, 105,115,116,114,105,98,117,116,105,111,110,122,2,46,42,41, - 8,218,2,114,101,90,25,105,109,112,111,114,116,108,105,98, - 46,109,101,116,97,100,97,116,97,46,95,104,111,111,107,115, - 114,59,1,0,0,114,8,0,0,0,114,44,0,0,0,90, - 6,101,115,99,97,112,101,218,13,95,115,101,97,114,99,104, - 95,112,97,116,104,115,218,3,109,97,112,41,7,114,193,0, - 0,0,114,117,0,0,0,114,44,0,0,0,114,60,1,0, - 0,114,59,1,0,0,218,7,112,97,116,116,101,114,110,90, - 5,102,111,117,110,100,114,3,0,0,0,114,3,0,0,0, - 114,6,0,0,0,218,18,102,105,110,100,95,100,105,115,116, - 114,105,98,117,116,105,111,110,115,84,5,0,0,115,14,0, - 0,0,0,7,8,1,12,1,8,1,6,1,22,1,12,1, - 122,29,80,97,116,104,70,105,110,100,101,114,46,102,105,110, - 100,95,100,105,115,116,114,105,98,117,116,105,111,110,115,99, - 3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 6,0,0,0,3,0,0,0,115,44,0,0,0,100,1,100, - 2,108,0,125,3,124,3,106,1,160,2,135,0,135,1,102, - 2,100,3,100,4,132,8,116,3,136,0,106,4,124,2,131, - 2,68,0,131,1,161,1,83,0,41,5,122,67,10,32,32, - 32,32,32,32,32,32,70,105,110,100,32,109,101,116,97,100, - 97,116,97,32,100,105,114,101,99,116,111,114,105,101,115,32, - 105,110,32,112,97,116,104,115,32,104,101,117,114,105,115,116, - 105,99,97,108,108,121,46,10,32,32,32,32,32,32,32,32, - 114,73,0,0,0,78,99,1,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,5,0,0,0,51,0,0,0,115, - 26,0,0,0,124,0,93,18,125,1,136,0,160,0,124,1, - 136,1,161,2,86,0,1,0,113,2,100,0,83,0,114,110, - 0,0,0,41,1,218,12,95,115,101,97,114,99,104,95,112, - 97,116,104,41,2,114,32,0,0,0,114,44,0,0,0,169, - 2,114,193,0,0,0,114,63,1,0,0,114,3,0,0,0, - 114,6,0,0,0,114,19,1,0,0,105,5,0,0,115,4, - 0,0,0,4,2,2,255,122,43,80,97,116,104,70,105,110, - 100,101,114,46,95,115,101,97,114,99,104,95,112,97,116,104, - 115,46,60,108,111,99,97,108,115,62,46,60,103,101,110,101, - 120,112,114,62,41,5,218,9,105,116,101,114,116,111,111,108, - 115,90,5,99,104,97,105,110,90,13,102,114,111,109,95,105, - 116,101,114,97,98,108,101,114,62,1,0,0,218,12,95,115, - 119,105,116,99,104,95,112,97,116,104,41,4,114,193,0,0, - 0,114,63,1,0,0,90,5,112,97,116,104,115,114,67,1, - 0,0,114,3,0,0,0,114,66,1,0,0,114,6,0,0, - 0,114,61,1,0,0,99,5,0,0,115,8,0,0,0,0, - 5,8,1,18,2,10,254,122,24,80,97,116,104,70,105,110, - 100,101,114,46,95,115,101,97,114,99,104,95,112,97,116,104, - 115,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,10,0,0,0,67,0,0,0,115,78,0,0,0,100, - 1,100,2,108,0,109,1,125,1,1,0,100,1,100,0,108, - 2,125,2,100,1,100,3,108,3,109,4,125,3,1,0,124, - 1,116,5,131,1,143,24,1,0,124,2,160,4,124,0,161, - 1,87,0,2,0,53,0,81,0,82,0,163,0,83,0,81, - 0,82,0,88,0,124,3,124,0,131,1,83,0,41,4,78, - 114,73,0,0,0,41,1,218,8,115,117,112,112,114,101,115, - 115,41,1,218,4,80,97,116,104,41,6,90,10,99,111,110, - 116,101,120,116,108,105,98,114,69,1,0,0,218,7,122,105, - 112,102,105,108,101,90,7,112,97,116,104,108,105,98,114,70, - 1,0,0,218,9,69,120,99,101,112,116,105,111,110,41,4, - 114,44,0,0,0,114,69,1,0,0,114,71,1,0,0,114, - 70,1,0,0,114,3,0,0,0,114,3,0,0,0,114,6, - 0,0,0,114,68,1,0,0,110,5,0,0,115,12,0,0, - 0,0,2,12,1,8,1,12,1,10,1,28,1,122,23,80, - 97,116,104,70,105,110,100,101,114,46,95,115,119,105,116,99, - 104,95,112,97,116,104,99,4,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,115, - 32,0,0,0,100,1,100,0,108,0,125,4,124,4,106,1, - 124,1,116,2,124,3,106,3,131,1,124,4,106,4,100,2, - 141,3,83,0,41,3,78,114,73,0,0,0,41,1,114,83, - 0,0,0,41,5,114,60,1,0,0,90,5,109,97,116,99, - 104,114,85,0,0,0,114,117,0,0,0,90,10,73,71,78, - 79,82,69,67,65,83,69,41,5,114,193,0,0,0,114,63, - 1,0,0,218,4,114,111,111,116,114,41,1,0,0,114,60, - 1,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0, - 0,0,218,10,95,112,114,101,100,105,99,97,116,101,119,5, - 0,0,115,4,0,0,0,0,2,8,1,122,21,80,97,116, - 104,70,105,110,100,101,114,46,95,112,114,101,100,105,99,97, - 116,101,99,3,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,4,0,0,0,3,0,0,0,115,64,0,0,0, - 136,2,160,0,161,0,115,12,100,1,83,0,124,2,160,1, - 100,2,100,3,161,2,125,3,136,0,106,2,106,3,124,3, - 100,4,141,1,137,1,135,0,135,1,135,2,102,3,100,5, - 100,6,132,8,136,2,160,4,161,0,68,0,131,1,83,0, - 41,7,78,114,3,0,0,0,250,1,45,114,45,0,0,0, - 41,1,114,63,1,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,6,0,0,0,51,0,0,0, - 115,32,0,0,0,124,0,93,24,125,1,136,0,160,0,136, - 1,136,2,124,1,161,3,114,26,124,1,86,0,1,0,113, - 2,100,0,83,0,114,110,0,0,0,41,1,114,74,1,0, - 0,41,2,114,32,0,0,0,114,41,1,0,0,169,3,114, - 193,0,0,0,90,7,109,97,116,99,104,101,114,114,73,1, - 0,0,114,3,0,0,0,114,6,0,0,0,114,19,1,0, - 0,130,5,0,0,115,6,0,0,0,4,0,2,1,14,255, - 122,42,80,97,116,104,70,105,110,100,101,114,46,95,115,101, - 97,114,99,104,95,112,97,116,104,46,60,108,111,99,97,108, - 115,62,46,60,103,101,110,101,120,112,114,62,41,5,90,6, - 105,115,95,100,105,114,114,67,0,0,0,218,15,115,101,97, - 114,99,104,95,116,101,109,112,108,97,116,101,114,62,0,0, - 0,90,7,105,116,101,114,100,105,114,41,4,114,193,0,0, - 0,114,73,1,0,0,114,63,1,0,0,90,10,110,111,114, - 109,97,108,105,122,101,100,114,3,0,0,0,114,76,1,0, - 0,114,6,0,0,0,114,65,1,0,0,124,5,0,0,115, - 10,0,0,0,0,2,8,1,4,1,12,1,14,1,122,23, - 80,97,116,104,70,105,110,100,101,114,46,95,115,101,97,114, - 99,104,95,112,97,116,104,41,1,78,41,2,78,78,41,1, - 78,41,2,78,78,41,19,114,125,0,0,0,114,124,0,0, - 0,114,126,0,0,0,114,127,0,0,0,114,207,0,0,0, - 114,46,1,0,0,114,52,1,0,0,114,54,1,0,0,114, - 55,1,0,0,114,58,1,0,0,114,203,0,0,0,114,206, - 0,0,0,114,77,1,0,0,114,64,1,0,0,114,61,1, - 0,0,218,12,115,116,97,116,105,99,109,101,116,104,111,100, - 114,68,1,0,0,114,74,1,0,0,114,65,1,0,0,114, - 3,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6, - 0,0,0,114,45,1,0,0,205,4,0,0,115,52,0,0, - 0,8,2,4,2,2,1,10,9,2,1,10,12,2,1,10, - 21,2,1,10,14,2,1,12,31,2,1,12,23,2,1,12, - 12,4,2,2,1,12,14,2,1,10,10,2,1,10,8,2, - 1,10,4,2,1,114,45,1,0,0,99,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,64, - 0,0,0,115,90,0,0,0,101,0,90,1,100,0,90,2, - 100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5, - 132,0,90,5,101,6,90,7,100,6,100,7,132,0,90,8, - 100,8,100,9,132,0,90,9,100,19,100,11,100,12,132,1, - 90,10,100,13,100,14,132,0,90,11,101,12,100,15,100,16, - 132,0,131,1,90,13,100,17,100,18,132,0,90,14,100,10, - 83,0,41,20,218,10,70,105,108,101,70,105,110,100,101,114, - 122,172,70,105,108,101,45,98,97,115,101,100,32,102,105,110, - 100,101,114,46,10,10,32,32,32,32,73,110,116,101,114,97, - 99,116,105,111,110,115,32,119,105,116,104,32,116,104,101,32, - 102,105,108,101,32,115,121,115,116,101,109,32,97,114,101,32, - 99,97,99,104,101,100,32,102,111,114,32,112,101,114,102,111, - 114,109,97,110,99,101,44,32,98,101,105,110,103,10,32,32, - 32,32,114,101,102,114,101,115,104,101,100,32,119,104,101,110, - 32,116,104,101,32,100,105,114,101,99,116,111,114,121,32,116, - 104,101,32,102,105,110,100,101,114,32,105,115,32,104,97,110, - 100,108,105,110,103,32,104,97,115,32,98,101,101,110,32,109, - 111,100,105,102,105,101,100,46,10,10,32,32,32,32,99,2, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,6, - 0,0,0,7,0,0,0,115,84,0,0,0,103,0,125,3, - 124,2,68,0,93,32,92,2,137,0,125,4,124,3,160,0, - 135,0,102,1,100,1,100,2,132,8,124,4,68,0,131,1, - 161,1,1,0,113,8,124,3,124,0,95,1,124,1,112,54, - 100,3,124,0,95,2,100,4,124,0,95,3,116,4,131,0, - 124,0,95,5,116,4,131,0,124,0,95,6,100,5,83,0, - 41,6,122,154,73,110,105,116,105,97,108,105,122,101,32,119, - 105,116,104,32,116,104,101,32,112,97,116,104,32,116,111,32, - 115,101,97,114,99,104,32,111,110,32,97,110,100,32,97,32, - 118,97,114,105,97,98,108,101,32,110,117,109,98,101,114,32, - 111,102,10,32,32,32,32,32,32,32,32,50,45,116,117,112, - 108,101,115,32,99,111,110,116,97,105,110,105,110,103,32,116, - 104,101,32,108,111,97,100,101,114,32,97,110,100,32,116,104, - 101,32,102,105,108,101,32,115,117,102,102,105,120,101,115,32, - 116,104,101,32,108,111,97,100,101,114,10,32,32,32,32,32, - 32,32,32,114,101,99,111,103,110,105,122,101,115,46,99,1, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,51,0,0,0,115,22,0,0,0,124,0,93,14, - 125,1,124,1,136,0,102,2,86,0,1,0,113,2,100,0, - 83,0,114,110,0,0,0,114,3,0,0,0,114,16,1,0, - 0,169,1,114,140,0,0,0,114,3,0,0,0,114,6,0, - 0,0,114,19,1,0,0,149,5,0,0,115,4,0,0,0, - 4,0,2,0,122,38,70,105,108,101,70,105,110,100,101,114, - 46,95,95,105,110,105,116,95,95,46,60,108,111,99,97,108, - 115,62,46,60,103,101,110,101,120,112,114,62,114,71,0,0, - 0,114,105,0,0,0,78,41,7,114,167,0,0,0,218,8, - 95,108,111,97,100,101,114,115,114,44,0,0,0,218,11,95, - 112,97,116,104,95,109,116,105,109,101,218,3,115,101,116,218, - 11,95,112,97,116,104,95,99,97,99,104,101,218,19,95,114, - 101,108,97,120,101,100,95,112,97,116,104,95,99,97,99,104, - 101,41,5,114,119,0,0,0,114,44,0,0,0,218,14,108, - 111,97,100,101,114,95,100,101,116,97,105,108,115,90,7,108, - 111,97,100,101,114,115,114,189,0,0,0,114,3,0,0,0, - 114,80,1,0,0,114,6,0,0,0,114,209,0,0,0,143, - 5,0,0,115,16,0,0,0,0,4,4,1,12,1,26,1, - 6,2,10,1,6,1,8,1,122,19,70,105,108,101,70,105, - 110,100,101,114,46,95,95,105,110,105,116,95,95,99,1,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0, - 0,0,67,0,0,0,115,10,0,0,0,100,1,124,0,95, - 0,100,2,83,0,41,3,122,31,73,110,118,97,108,105,100, - 97,116,101,32,116,104,101,32,100,105,114,101,99,116,111,114, - 121,32,109,116,105,109,101,46,114,105,0,0,0,78,41,1, - 114,82,1,0,0,114,246,0,0,0,114,3,0,0,0,114, - 3,0,0,0,114,6,0,0,0,114,46,1,0,0,157,5, - 0,0,115,2,0,0,0,0,2,122,28,70,105,108,101,70, - 105,110,100,101,114,46,105,110,118,97,108,105,100,97,116,101, - 95,99,97,99,104,101,115,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0, - 115,42,0,0,0,124,0,160,0,124,1,161,1,125,2,124, - 2,100,1,107,8,114,26,100,1,103,0,102,2,83,0,124, - 2,106,1,124,2,106,2,112,38,103,0,102,2,83,0,41, - 2,122,197,84,114,121,32,116,111,32,102,105,110,100,32,97, - 32,108,111,97,100,101,114,32,102,111,114,32,116,104,101,32, - 115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,101, - 44,32,111,114,32,116,104,101,32,110,97,109,101,115,112,97, - 99,101,10,32,32,32,32,32,32,32,32,112,97,99,107,97, - 103,101,32,112,111,114,116,105,111,110,115,46,32,82,101,116, - 117,114,110,115,32,40,108,111,97,100,101,114,44,32,108,105, - 115,116,45,111,102,45,112,111,114,116,105,111,110,115,41,46, - 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109, - 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97, - 116,101,100,46,32,32,85,115,101,32,102,105,110,100,95,115, - 112,101,99,40,41,32,105,110,115,116,101,97,100,46,10,10, - 32,32,32,32,32,32,32,32,78,41,3,114,203,0,0,0, - 114,140,0,0,0,114,178,0,0,0,41,3,114,119,0,0, - 0,114,139,0,0,0,114,187,0,0,0,114,3,0,0,0, - 114,3,0,0,0,114,6,0,0,0,114,137,0,0,0,163, - 5,0,0,115,8,0,0,0,0,7,10,1,8,1,8,1, - 122,22,70,105,108,101,70,105,110,100,101,114,46,102,105,110, - 100,95,108,111,97,100,101,114,99,6,0,0,0,0,0,0, - 0,0,0,0,0,7,0,0,0,6,0,0,0,67,0,0, - 0,115,26,0,0,0,124,1,124,2,124,3,131,2,125,6, - 116,0,124,2,124,3,124,6,124,4,100,1,141,4,83,0, - 41,2,78,114,177,0,0,0,41,1,114,190,0,0,0,41, - 7,114,119,0,0,0,114,188,0,0,0,114,139,0,0,0, - 114,44,0,0,0,90,4,115,109,115,108,114,202,0,0,0, - 114,140,0,0,0,114,3,0,0,0,114,3,0,0,0,114, - 6,0,0,0,114,58,1,0,0,175,5,0,0,115,8,0, - 0,0,0,1,10,1,8,1,2,255,122,20,70,105,108,101, - 70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,99, - 78,99,3,0,0,0,0,0,0,0,0,0,0,0,14,0, - 0,0,8,0,0,0,67,0,0,0,115,102,1,0,0,100, - 1,125,3,124,1,160,0,100,2,161,1,100,3,25,0,125, - 4,122,24,116,1,124,0,106,2,112,34,116,3,160,4,161, - 0,131,1,106,5,125,5,87,0,110,24,4,0,116,6,107, - 10,114,66,1,0,1,0,1,0,100,4,125,5,89,0,110, - 2,88,0,124,5,124,0,106,7,107,3,114,92,124,0,160, - 8,161,0,1,0,124,5,124,0,95,7,116,9,131,0,114, - 114,124,0,106,10,125,6,124,4,160,11,161,0,125,7,110, - 10,124,0,106,12,125,6,124,4,125,7,124,7,124,6,107, - 6,114,218,116,13,124,0,106,2,124,4,131,2,125,8,124, - 0,106,14,68,0,93,58,92,2,125,9,125,10,100,5,124, - 9,23,0,125,11,116,13,124,8,124,11,131,2,125,12,116, - 15,124,12,131,1,114,208,124,0,160,16,124,10,124,1,124, - 12,124,8,103,1,124,2,161,5,2,0,1,0,83,0,113, - 150,116,17,124,8,131,1,125,3,124,0,106,14,68,0,93, - 86,92,2,125,9,125,10,116,13,124,0,106,2,124,4,124, - 9,23,0,131,2,125,12,116,18,106,19,100,6,124,12,100, - 3,100,7,141,3,1,0,124,7,124,9,23,0,124,6,107, - 6,144,1,114,54,116,15,124,12,131,1,144,1,114,54,124, - 0,160,16,124,10,124,1,124,12,100,8,124,2,161,5,2, - 0,1,0,83,0,113,224,124,3,144,1,114,98,116,18,160, - 19,100,9,124,8,161,2,1,0,116,18,160,20,124,1,100, - 8,161,2,125,13,124,8,103,1,124,13,95,21,124,13,83, - 0,100,8,83,0,41,10,122,111,84,114,121,32,116,111,32, - 102,105,110,100,32,97,32,115,112,101,99,32,102,111,114,32, - 116,104,101,32,115,112,101,99,105,102,105,101,100,32,109,111, - 100,117,108,101,46,10,10,32,32,32,32,32,32,32,32,82, - 101,116,117,114,110,115,32,116,104,101,32,109,97,116,99,104, - 105,110,103,32,115,112,101,99,44,32,111,114,32,78,111,110, - 101,32,105,102,32,110,111,116,32,102,111,117,110,100,46,10, - 32,32,32,32,32,32,32,32,70,114,71,0,0,0,114,28, - 0,0,0,114,105,0,0,0,114,209,0,0,0,122,9,116, - 114,121,105,110,103,32,123,125,41,1,90,9,118,101,114,98, - 111,115,105,116,121,78,122,25,112,111,115,115,105,98,108,101, - 32,110,97,109,101,115,112,97,99,101,32,102,111,114,32,123, - 125,41,22,114,41,0,0,0,114,49,0,0,0,114,44,0, - 0,0,114,2,0,0,0,114,55,0,0,0,114,9,1,0, - 0,114,50,0,0,0,114,82,1,0,0,218,11,95,102,105, - 108,108,95,99,97,99,104,101,114,7,0,0,0,114,85,1, - 0,0,114,106,0,0,0,114,84,1,0,0,114,38,0,0, - 0,114,81,1,0,0,114,54,0,0,0,114,58,1,0,0, - 114,56,0,0,0,114,134,0,0,0,114,149,0,0,0,114, - 183,0,0,0,114,178,0,0,0,41,14,114,119,0,0,0, - 114,139,0,0,0,114,202,0,0,0,90,12,105,115,95,110, - 97,109,101,115,112,97,99,101,90,11,116,97,105,108,95,109, - 111,100,117,108,101,114,169,0,0,0,90,5,99,97,99,104, - 101,90,12,99,97,99,104,101,95,109,111,100,117,108,101,90, - 9,98,97,115,101,95,112,97,116,104,114,17,1,0,0,114, - 188,0,0,0,90,13,105,110,105,116,95,102,105,108,101,110, - 97,109,101,90,9,102,117,108,108,95,112,97,116,104,114,187, - 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0, - 0,0,114,203,0,0,0,180,5,0,0,115,74,0,0,0, - 0,5,4,1,14,1,2,1,24,1,14,1,10,1,10,1, - 8,1,6,2,6,1,6,1,10,2,6,1,4,2,8,1, - 12,1,14,1,8,1,10,1,8,1,26,4,8,2,14,1, - 16,1,16,1,14,1,10,1,10,1,2,0,2,255,10,2, - 6,1,12,1,12,1,8,1,4,1,122,20,70,105,108,101, - 70,105,110,100,101,114,46,102,105,110,100,95,115,112,101,99, - 99,1,0,0,0,0,0,0,0,0,0,0,0,9,0,0, - 0,10,0,0,0,67,0,0,0,115,190,0,0,0,124,0, - 106,0,125,1,122,22,116,1,160,2,124,1,112,22,116,1, - 160,3,161,0,161,1,125,2,87,0,110,30,4,0,116,4, - 116,5,116,6,102,3,107,10,114,58,1,0,1,0,1,0, - 103,0,125,2,89,0,110,2,88,0,116,7,106,8,160,9, - 100,1,161,1,115,84,116,10,124,2,131,1,124,0,95,11, - 110,74,116,10,131,0,125,3,124,2,68,0,93,56,125,4, - 124,4,160,12,100,2,161,1,92,3,125,5,125,6,125,7, - 124,6,114,136,100,3,160,13,124,5,124,7,160,14,161,0, - 161,2,125,8,110,4,124,5,125,8,124,3,160,15,124,8, - 161,1,1,0,113,94,124,3,124,0,95,11,116,7,106,8, - 160,9,116,16,161,1,114,186,100,4,100,5,132,0,124,2, - 68,0,131,1,124,0,95,17,100,6,83,0,41,7,122,68, - 70,105,108,108,32,116,104,101,32,99,97,99,104,101,32,111, - 102,32,112,111,116,101,110,116,105,97,108,32,109,111,100,117, - 108,101,115,32,97,110,100,32,112,97,99,107,97,103,101,115, - 32,102,111,114,32,116,104,105,115,32,100,105,114,101,99,116, - 111,114,121,46,114,0,0,0,0,114,71,0,0,0,114,61, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,4,0,0,0,83,0,0,0,115,20,0,0, - 0,104,0,124,0,93,12,125,1,124,1,160,0,161,0,146, - 2,113,4,83,0,114,3,0,0,0,41,1,114,106,0,0, - 0,41,2,114,32,0,0,0,90,2,102,110,114,3,0,0, - 0,114,3,0,0,0,114,6,0,0,0,218,9,60,115,101, - 116,99,111,109,112,62,1,6,0,0,115,4,0,0,0,6, - 0,2,0,122,41,70,105,108,101,70,105,110,100,101,114,46, - 95,102,105,108,108,95,99,97,99,104,101,46,60,108,111,99, - 97,108,115,62,46,60,115,101,116,99,111,109,112,62,78,41, - 18,114,44,0,0,0,114,2,0,0,0,114,6,1,0,0, - 114,55,0,0,0,114,2,1,0,0,218,15,80,101,114,109, - 105,115,115,105,111,110,69,114,114,111,114,218,18,78,111,116, - 65,68,105,114,101,99,116,111,114,121,69,114,114,111,114,114, - 8,0,0,0,114,9,0,0,0,114,10,0,0,0,114,83, - 1,0,0,114,84,1,0,0,114,101,0,0,0,114,62,0, - 0,0,114,106,0,0,0,218,3,97,100,100,114,11,0,0, - 0,114,85,1,0,0,41,9,114,119,0,0,0,114,44,0, - 0,0,114,7,1,0,0,90,21,108,111,119,101,114,95,115, - 117,102,102,105,120,95,99,111,110,116,101,110,116,115,114,41, - 1,0,0,114,117,0,0,0,114,29,1,0,0,114,17,1, - 0,0,90,8,110,101,119,95,110,97,109,101,114,3,0,0, - 0,114,3,0,0,0,114,6,0,0,0,114,87,1,0,0, - 228,5,0,0,115,34,0,0,0,0,2,6,1,2,1,22, - 1,20,3,10,3,12,1,12,7,6,1,8,1,16,1,4, - 1,18,2,4,1,12,1,6,1,12,1,122,22,70,105,108, - 101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,97, - 99,104,101,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,0,0,0,7,0,0,0,115,18,0,0, - 0,135,0,135,1,102,2,100,1,100,2,132,8,125,2,124, - 2,83,0,41,3,97,20,1,0,0,65,32,99,108,97,115, - 115,32,109,101,116,104,111,100,32,119,104,105,99,104,32,114, - 101,116,117,114,110,115,32,97,32,99,108,111,115,117,114,101, - 32,116,111,32,117,115,101,32,111,110,32,115,121,115,46,112, - 97,116,104,95,104,111,111,107,10,32,32,32,32,32,32,32, - 32,119,104,105,99,104,32,119,105,108,108,32,114,101,116,117, - 114,110,32,97,110,32,105,110,115,116,97,110,99,101,32,117, - 115,105,110,103,32,116,104,101,32,115,112,101,99,105,102,105, - 101,100,32,108,111,97,100,101,114,115,32,97,110,100,32,116, - 104,101,32,112,97,116,104,10,32,32,32,32,32,32,32,32, - 99,97,108,108,101,100,32,111,110,32,116,104,101,32,99,108, - 111,115,117,114,101,46,10,10,32,32,32,32,32,32,32,32, - 73,102,32,116,104,101,32,112,97,116,104,32,99,97,108,108, - 101,100,32,111,110,32,116,104,101,32,99,108,111,115,117,114, - 101,32,105,115,32,110,111,116,32,97,32,100,105,114,101,99, - 116,111,114,121,44,32,73,109,112,111,114,116,69,114,114,111, - 114,32,105,115,10,32,32,32,32,32,32,32,32,114,97,105, - 115,101,100,46,10,10,32,32,32,32,32,32,32,32,99,1, - 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4, - 0,0,0,19,0,0,0,115,34,0,0,0,116,0,124,0, - 131,1,115,20,116,1,100,1,124,0,100,2,141,2,130,1, - 136,0,124,0,102,1,136,1,158,2,142,0,83,0,41,3, - 122,45,80,97,116,104,32,104,111,111,107,32,102,111,114,32, - 105,109,112,111,114,116,108,105,98,46,109,97,99,104,105,110, - 101,114,121,46,70,105,108,101,70,105,110,100,101,114,46,122, - 30,111,110,108,121,32,100,105,114,101,99,116,111,114,105,101, - 115,32,97,114,101,32,115,117,112,112,111,114,116,101,100,114, - 48,0,0,0,41,2,114,56,0,0,0,114,118,0,0,0, - 114,48,0,0,0,169,2,114,193,0,0,0,114,86,1,0, - 0,114,3,0,0,0,114,6,0,0,0,218,24,112,97,116, - 104,95,104,111,111,107,95,102,111,114,95,70,105,108,101,70, - 105,110,100,101,114,13,6,0,0,115,6,0,0,0,0,2, - 8,1,12,1,122,54,70,105,108,101,70,105,110,100,101,114, - 46,112,97,116,104,95,104,111,111,107,46,60,108,111,99,97, - 108,115,62,46,112,97,116,104,95,104,111,111,107,95,102,111, - 114,95,70,105,108,101,70,105,110,100,101,114,114,3,0,0, - 0,41,3,114,193,0,0,0,114,86,1,0,0,114,93,1, - 0,0,114,3,0,0,0,114,92,1,0,0,114,6,0,0, - 0,218,9,112,97,116,104,95,104,111,111,107,3,6,0,0, - 115,4,0,0,0,0,10,14,6,122,20,70,105,108,101,70, - 105,110,100,101,114,46,112,97,116,104,95,104,111,111,107,99, - 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 3,0,0,0,67,0,0,0,115,12,0,0,0,100,1,160, - 0,124,0,106,1,161,1,83,0,41,2,78,122,16,70,105, - 108,101,70,105,110,100,101,114,40,123,33,114,125,41,41,2, - 114,62,0,0,0,114,44,0,0,0,114,246,0,0,0,114, - 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,39, - 1,0,0,21,6,0,0,115,2,0,0,0,0,1,122,19, - 70,105,108,101,70,105,110,100,101,114,46,95,95,114,101,112, - 114,95,95,41,1,78,41,15,114,125,0,0,0,114,124,0, - 0,0,114,126,0,0,0,114,127,0,0,0,114,209,0,0, - 0,114,46,1,0,0,114,143,0,0,0,114,206,0,0,0, - 114,137,0,0,0,114,58,1,0,0,114,203,0,0,0,114, - 87,1,0,0,114,207,0,0,0,114,94,1,0,0,114,39, - 1,0,0,114,3,0,0,0,114,3,0,0,0,114,3,0, - 0,0,114,6,0,0,0,114,79,1,0,0,134,5,0,0, - 115,22,0,0,0,8,2,4,7,8,14,8,4,4,2,8, - 12,8,5,10,48,8,31,2,1,10,17,114,79,1,0,0, - 99,4,0,0,0,0,0,0,0,0,0,0,0,6,0,0, - 0,8,0,0,0,67,0,0,0,115,146,0,0,0,124,0, - 160,0,100,1,161,1,125,4,124,0,160,0,100,2,161,1, - 125,5,124,4,115,66,124,5,114,36,124,5,106,1,125,4, - 110,30,124,2,124,3,107,2,114,56,116,2,124,1,124,2, - 131,2,125,4,110,10,116,3,124,1,124,2,131,2,125,4, - 124,5,115,84,116,4,124,1,124,2,124,4,100,3,141,3, - 125,5,122,36,124,5,124,0,100,2,60,0,124,4,124,0, - 100,1,60,0,124,2,124,0,100,4,60,0,124,3,124,0, - 100,5,60,0,87,0,110,20,4,0,116,5,107,10,114,140, - 1,0,1,0,1,0,89,0,110,2,88,0,100,0,83,0, - 41,6,78,218,10,95,95,108,111,97,100,101,114,95,95,218, - 8,95,95,115,112,101,99,95,95,114,80,1,0,0,90,8, - 95,95,102,105,108,101,95,95,90,10,95,95,99,97,99,104, - 101,100,95,95,41,6,218,3,103,101,116,114,140,0,0,0, - 114,14,1,0,0,114,8,1,0,0,114,190,0,0,0,114, - 72,1,0,0,41,6,90,2,110,115,114,117,0,0,0,90, - 8,112,97,116,104,110,97,109,101,90,9,99,112,97,116,104, - 110,97,109,101,114,140,0,0,0,114,187,0,0,0,114,3, - 0,0,0,114,3,0,0,0,114,6,0,0,0,218,14,95, - 102,105,120,95,117,112,95,109,111,100,117,108,101,27,6,0, - 0,115,34,0,0,0,0,2,10,1,10,1,4,1,4,1, - 8,1,8,1,12,2,10,1,4,1,14,1,2,1,8,1, - 8,1,8,1,12,1,14,2,114,98,1,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,67,0,0,0,115,38,0,0,0,116,0,116,1,160, - 2,161,0,102,2,125,0,116,3,116,4,102,2,125,1,116, - 5,116,6,102,2,125,2,124,0,124,1,124,2,103,3,83, - 0,41,1,122,95,82,101,116,117,114,110,115,32,97,32,108, - 105,115,116,32,111,102,32,102,105,108,101,45,98,97,115,101, - 100,32,109,111,100,117,108,101,32,108,111,97,100,101,114,115, - 46,10,10,32,32,32,32,69,97,99,104,32,105,116,101,109, - 32,105,115,32,97,32,116,117,112,108,101,32,40,108,111,97, - 100,101,114,44,32,115,117,102,102,105,120,101,115,41,46,10, - 32,32,32,32,41,7,114,15,1,0,0,114,163,0,0,0, - 218,18,101,120,116,101,110,115,105,111,110,95,115,117,102,102, - 105,120,101,115,114,8,1,0,0,114,102,0,0,0,114,14, - 1,0,0,114,89,0,0,0,41,3,90,10,101,120,116,101, - 110,115,105,111,110,115,90,6,115,111,117,114,99,101,90,8, - 98,121,116,101,99,111,100,101,114,3,0,0,0,114,3,0, - 0,0,114,6,0,0,0,114,184,0,0,0,50,6,0,0, - 115,8,0,0,0,0,5,12,1,8,1,8,1,114,184,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,12, - 0,0,0,9,0,0,0,67,0,0,0,115,178,1,0,0, - 124,0,97,0,116,0,106,1,97,1,116,0,106,2,97,2, - 116,1,106,3,116,4,25,0,125,1,100,1,68,0,93,48, - 125,2,124,2,116,1,106,3,107,7,114,56,116,0,160,5, - 124,2,161,1,125,3,110,10,116,1,106,3,124,2,25,0, - 125,3,116,6,124,1,124,2,124,3,131,3,1,0,113,30, - 100,2,100,3,103,1,102,2,100,4,100,5,100,3,103,2, - 102,2,102,2,125,4,124,4,68,0,93,110,92,2,125,5, - 125,6,116,7,100,6,100,7,132,0,124,6,68,0,131,1, - 131,1,115,136,116,8,130,1,124,6,100,8,25,0,125,7, - 124,5,116,1,106,3,107,6,114,170,116,1,106,3,124,5, - 25,0,125,8,1,0,113,226,113,106,122,20,116,0,160,5, - 124,5,161,1,125,8,87,0,1,0,113,226,87,0,113,106, - 4,0,116,9,107,10,114,214,1,0,1,0,1,0,89,0, - 113,106,89,0,113,106,88,0,113,106,116,9,100,9,131,1, - 130,1,116,6,124,1,100,10,124,8,131,3,1,0,116,6, - 124,1,100,11,124,7,131,3,1,0,116,6,124,1,100,12, - 100,13,160,10,124,6,161,1,131,3,1,0,116,6,124,1, - 100,14,100,15,100,16,132,0,124,6,68,0,131,1,131,3, - 1,0,116,0,160,5,100,17,161,1,125,9,116,6,124,1, - 100,17,124,9,131,3,1,0,116,0,160,5,100,18,161,1, - 125,10,116,6,124,1,100,18,124,10,131,3,1,0,124,5, - 100,4,107,2,144,1,114,110,116,0,160,5,100,19,161,1, - 125,11,116,6,124,1,100,20,124,11,131,3,1,0,116,6, - 124,1,100,21,116,11,131,0,131,3,1,0,116,12,160,13, - 116,2,160,14,161,0,161,1,1,0,124,5,100,4,107,2, - 144,1,114,174,116,15,160,16,100,22,161,1,1,0,100,23, - 116,12,107,6,144,1,114,174,100,24,116,17,95,18,100,25, - 83,0,41,26,122,205,83,101,116,117,112,32,116,104,101,32, - 112,97,116,104,45,98,97,115,101,100,32,105,109,112,111,114, - 116,101,114,115,32,102,111,114,32,105,109,112,111,114,116,108, - 105,98,32,98,121,32,105,109,112,111,114,116,105,110,103,32, - 110,101,101,100,101,100,10,32,32,32,32,98,117,105,108,116, - 45,105,110,32,109,111,100,117,108,101,115,32,97,110,100,32, - 105,110,106,101,99,116,105,110,103,32,116,104,101,109,32,105, - 110,116,111,32,116,104,101,32,103,108,111,98,97,108,32,110, - 97,109,101,115,112,97,99,101,46,10,10,32,32,32,32,79, - 116,104,101,114,32,99,111,109,112,111,110,101,110,116,115,32, - 97,114,101,32,101,120,116,114,97,99,116,101,100,32,102,114, - 111,109,32,116,104,101,32,99,111,114,101,32,98,111,111,116, - 115,116,114,97,112,32,109,111,100,117,108,101,46,10,10,32, - 32,32,32,41,4,114,64,0,0,0,114,75,0,0,0,218, - 8,98,117,105,108,116,105,110,115,114,160,0,0,0,90,5, - 112,111,115,105,120,250,1,47,90,2,110,116,250,1,92,99, + 8,218,2,114,101,90,18,105,109,112,111,114,116,108,105,98, + 46,109,101,116,97,100,97,116,97,114,59,1,0,0,114,8, + 0,0,0,114,44,0,0,0,90,6,101,115,99,97,112,101, + 218,13,95,115,101,97,114,99,104,95,112,97,116,104,115,218, + 3,109,97,112,41,7,114,193,0,0,0,114,117,0,0,0, + 114,44,0,0,0,114,60,1,0,0,114,59,1,0,0,218, + 7,112,97,116,116,101,114,110,90,5,102,111,117,110,100,114, + 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,18, + 102,105,110,100,95,100,105,115,116,114,105,98,117,116,105,111, + 110,115,84,5,0,0,115,14,0,0,0,0,7,8,1,12, + 1,8,1,6,1,22,1,12,1,122,29,80,97,116,104,70, + 105,110,100,101,114,46,102,105,110,100,95,100,105,115,116,114, + 105,98,117,116,105,111,110,115,99,3,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,6,0,0,0,3,0,0, + 0,115,44,0,0,0,100,1,100,2,108,0,125,3,124,3, + 106,1,160,2,135,0,135,1,102,2,100,3,100,4,132,8, + 116,3,136,0,106,4,124,2,131,2,68,0,131,1,161,1, + 83,0,41,5,122,67,10,32,32,32,32,32,32,32,32,70, + 105,110,100,32,109,101,116,97,100,97,116,97,32,100,105,114, + 101,99,116,111,114,105,101,115,32,105,110,32,112,97,116,104, + 115,32,104,101,117,114,105,115,116,105,99,97,108,108,121,46, + 10,32,32,32,32,32,32,32,32,114,73,0,0,0,78,99, 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 3,0,0,0,115,0,0,0,115,26,0,0,0,124,0,93, - 18,125,1,116,0,124,1,131,1,100,0,107,2,86,0,1, - 0,113,2,100,1,83,0,41,2,114,39,0,0,0,78,41, - 1,114,22,0,0,0,41,2,114,32,0,0,0,114,95,0, - 0,0,114,3,0,0,0,114,3,0,0,0,114,6,0,0, - 0,114,19,1,0,0,86,6,0,0,115,4,0,0,0,4, - 0,2,0,122,25,95,115,101,116,117,112,46,60,108,111,99, - 97,108,115,62,46,60,103,101,110,101,120,112,114,62,114,73, - 0,0,0,122,30,105,109,112,111,114,116,108,105,98,32,114, - 101,113,117,105,114,101,115,32,112,111,115,105,120,32,111,114, - 32,110,116,114,2,0,0,0,114,35,0,0,0,114,31,0, - 0,0,114,40,0,0,0,114,58,0,0,0,99,1,0,0, + 5,0,0,0,51,0,0,0,115,26,0,0,0,124,0,93, + 18,125,1,136,0,160,0,124,1,136,1,161,2,86,0,1, + 0,113,2,100,0,83,0,114,110,0,0,0,41,1,218,12, + 95,115,101,97,114,99,104,95,112,97,116,104,41,2,114,32, + 0,0,0,114,44,0,0,0,169,2,114,193,0,0,0,114, + 63,1,0,0,114,3,0,0,0,114,6,0,0,0,114,19, + 1,0,0,105,5,0,0,115,4,0,0,0,4,2,2,255, + 122,43,80,97,116,104,70,105,110,100,101,114,46,95,115,101, + 97,114,99,104,95,112,97,116,104,115,46,60,108,111,99,97, + 108,115,62,46,60,103,101,110,101,120,112,114,62,41,5,218, + 9,105,116,101,114,116,111,111,108,115,90,5,99,104,97,105, + 110,90,13,102,114,111,109,95,105,116,101,114,97,98,108,101, + 114,62,1,0,0,218,12,95,115,119,105,116,99,104,95,112, + 97,116,104,41,4,114,193,0,0,0,114,63,1,0,0,90, + 5,112,97,116,104,115,114,67,1,0,0,114,3,0,0,0, + 114,66,1,0,0,114,6,0,0,0,114,61,1,0,0,99, + 5,0,0,115,8,0,0,0,0,5,8,1,18,2,10,254, + 122,24,80,97,116,104,70,105,110,100,101,114,46,95,115,101, + 97,114,99,104,95,112,97,116,104,115,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,10,0,0,0,67, + 0,0,0,115,78,0,0,0,100,1,100,2,108,0,109,1, + 125,1,1,0,100,1,100,0,108,2,125,2,100,1,100,3, + 108,3,109,4,125,3,1,0,124,1,116,5,131,1,143,24, + 1,0,124,2,160,4,124,0,161,1,87,0,2,0,53,0, + 81,0,82,0,163,0,83,0,81,0,82,0,88,0,124,3, + 124,0,131,1,83,0,41,4,78,114,73,0,0,0,41,1, + 218,8,115,117,112,112,114,101,115,115,41,1,218,4,80,97, + 116,104,41,6,90,10,99,111,110,116,101,120,116,108,105,98, + 114,69,1,0,0,218,7,122,105,112,102,105,108,101,90,7, + 112,97,116,104,108,105,98,114,70,1,0,0,218,9,69,120, + 99,101,112,116,105,111,110,41,4,114,44,0,0,0,114,69, + 1,0,0,114,71,1,0,0,114,70,1,0,0,114,3,0, + 0,0,114,3,0,0,0,114,6,0,0,0,114,68,1,0, + 0,110,5,0,0,115,12,0,0,0,0,2,12,1,8,1, + 12,1,10,1,28,1,122,23,80,97,116,104,70,105,110,100, + 101,114,46,95,115,119,105,116,99,104,95,112,97,116,104,99, + 4,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 5,0,0,0,67,0,0,0,115,32,0,0,0,100,1,100, + 0,108,0,125,4,124,4,106,1,124,1,116,2,124,3,106, + 3,131,1,124,4,106,4,100,2,141,3,83,0,41,3,78, + 114,73,0,0,0,41,1,114,83,0,0,0,41,5,114,60, + 1,0,0,90,5,109,97,116,99,104,114,85,0,0,0,114, + 117,0,0,0,90,10,73,71,78,79,82,69,67,65,83,69, + 41,5,114,193,0,0,0,114,63,1,0,0,218,4,114,111, + 111,116,114,41,1,0,0,114,60,1,0,0,114,3,0,0, + 0,114,3,0,0,0,114,6,0,0,0,218,10,95,112,114, + 101,100,105,99,97,116,101,119,5,0,0,115,4,0,0,0, + 0,2,8,1,122,21,80,97,116,104,70,105,110,100,101,114, + 46,95,112,114,101,100,105,99,97,116,101,99,3,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0, + 3,0,0,0,115,64,0,0,0,136,2,160,0,161,0,115, + 12,100,1,83,0,124,2,160,1,100,2,100,3,161,2,125, + 3,136,0,106,2,106,3,124,3,100,4,141,1,137,1,135, + 0,135,1,135,2,102,3,100,5,100,6,132,8,136,2,160, + 4,161,0,68,0,131,1,83,0,41,7,78,114,3,0,0, + 0,250,1,45,114,45,0,0,0,41,1,114,63,1,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,6,0,0,0,51,0,0,0,115,32,0,0,0,124,0, + 93,24,125,1,136,0,160,0,136,1,136,2,124,1,161,3, + 114,26,124,1,86,0,1,0,113,2,100,0,83,0,114,110, + 0,0,0,41,1,114,74,1,0,0,41,2,114,32,0,0, + 0,114,41,1,0,0,169,3,114,193,0,0,0,90,7,109, + 97,116,99,104,101,114,114,73,1,0,0,114,3,0,0,0, + 114,6,0,0,0,114,19,1,0,0,130,5,0,0,115,6, + 0,0,0,4,0,2,1,14,255,122,42,80,97,116,104,70, + 105,110,100,101,114,46,95,115,101,97,114,99,104,95,112,97, + 116,104,46,60,108,111,99,97,108,115,62,46,60,103,101,110, + 101,120,112,114,62,41,5,90,6,105,115,95,100,105,114,114, + 67,0,0,0,218,15,115,101,97,114,99,104,95,116,101,109, + 112,108,97,116,101,114,62,0,0,0,90,7,105,116,101,114, + 100,105,114,41,4,114,193,0,0,0,114,73,1,0,0,114, + 63,1,0,0,90,10,110,111,114,109,97,108,105,122,101,100, + 114,3,0,0,0,114,76,1,0,0,114,6,0,0,0,114, + 65,1,0,0,124,5,0,0,115,10,0,0,0,0,2,8, + 1,4,1,12,1,14,1,122,23,80,97,116,104,70,105,110, + 100,101,114,46,95,115,101,97,114,99,104,95,112,97,116,104, + 41,1,78,41,2,78,78,41,1,78,41,2,78,78,41,19, + 114,125,0,0,0,114,124,0,0,0,114,126,0,0,0,114, + 127,0,0,0,114,207,0,0,0,114,46,1,0,0,114,52, + 1,0,0,114,54,1,0,0,114,55,1,0,0,114,58,1, + 0,0,114,203,0,0,0,114,206,0,0,0,114,77,1,0, + 0,114,64,1,0,0,114,61,1,0,0,218,12,115,116,97, + 116,105,99,109,101,116,104,111,100,114,68,1,0,0,114,74, + 1,0,0,114,65,1,0,0,114,3,0,0,0,114,3,0, + 0,0,114,3,0,0,0,114,6,0,0,0,114,45,1,0, + 0,205,4,0,0,115,52,0,0,0,8,2,4,2,2,1, + 10,9,2,1,10,12,2,1,10,21,2,1,10,14,2,1, + 12,31,2,1,12,23,2,1,12,12,4,2,2,1,12,14, + 2,1,10,10,2,1,10,8,2,1,10,4,2,1,114,45, + 1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,64,0,0,0,115,90,0,0, + 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,100, + 3,132,0,90,4,100,4,100,5,132,0,90,5,101,6,90, + 7,100,6,100,7,132,0,90,8,100,8,100,9,132,0,90, + 9,100,19,100,11,100,12,132,1,90,10,100,13,100,14,132, + 0,90,11,101,12,100,15,100,16,132,0,131,1,90,13,100, + 17,100,18,132,0,90,14,100,10,83,0,41,20,218,10,70, + 105,108,101,70,105,110,100,101,114,122,172,70,105,108,101,45, + 98,97,115,101,100,32,102,105,110,100,101,114,46,10,10,32, + 32,32,32,73,110,116,101,114,97,99,116,105,111,110,115,32, + 119,105,116,104,32,116,104,101,32,102,105,108,101,32,115,121, + 115,116,101,109,32,97,114,101,32,99,97,99,104,101,100,32, + 102,111,114,32,112,101,114,102,111,114,109,97,110,99,101,44, + 32,98,101,105,110,103,10,32,32,32,32,114,101,102,114,101, + 115,104,101,100,32,119,104,101,110,32,116,104,101,32,100,105, + 114,101,99,116,111,114,121,32,116,104,101,32,102,105,110,100, + 101,114,32,105,115,32,104,97,110,100,108,105,110,103,32,104, + 97,115,32,98,101,101,110,32,109,111,100,105,102,105,101,100, + 46,10,10,32,32,32,32,99,2,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0, + 115,84,0,0,0,103,0,125,3,124,2,68,0,93,32,92, + 2,137,0,125,4,124,3,160,0,135,0,102,1,100,1,100, + 2,132,8,124,4,68,0,131,1,161,1,1,0,113,8,124, + 3,124,0,95,1,124,1,112,54,100,3,124,0,95,2,100, + 4,124,0,95,3,116,4,131,0,124,0,95,5,116,4,131, + 0,124,0,95,6,100,5,83,0,41,6,122,154,73,110,105, + 116,105,97,108,105,122,101,32,119,105,116,104,32,116,104,101, + 32,112,97,116,104,32,116,111,32,115,101,97,114,99,104,32, + 111,110,32,97,110,100,32,97,32,118,97,114,105,97,98,108, + 101,32,110,117,109,98,101,114,32,111,102,10,32,32,32,32, + 32,32,32,32,50,45,116,117,112,108,101,115,32,99,111,110, + 116,97,105,110,105,110,103,32,116,104,101,32,108,111,97,100, + 101,114,32,97,110,100,32,116,104,101,32,102,105,108,101,32, + 115,117,102,102,105,120,101,115,32,116,104,101,32,108,111,97, + 100,101,114,10,32,32,32,32,32,32,32,32,114,101,99,111, + 103,110,105,122,101,115,46,99,1,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,51,0,0,0, + 115,22,0,0,0,124,0,93,14,125,1,124,1,136,0,102, + 2,86,0,1,0,113,2,100,0,83,0,114,110,0,0,0, + 114,3,0,0,0,114,16,1,0,0,169,1,114,140,0,0, + 0,114,3,0,0,0,114,6,0,0,0,114,19,1,0,0, + 149,5,0,0,115,4,0,0,0,4,0,2,0,122,38,70, + 105,108,101,70,105,110,100,101,114,46,95,95,105,110,105,116, + 95,95,46,60,108,111,99,97,108,115,62,46,60,103,101,110, + 101,120,112,114,62,114,71,0,0,0,114,105,0,0,0,78, + 41,7,114,167,0,0,0,218,8,95,108,111,97,100,101,114, + 115,114,44,0,0,0,218,11,95,112,97,116,104,95,109,116, + 105,109,101,218,3,115,101,116,218,11,95,112,97,116,104,95, + 99,97,99,104,101,218,19,95,114,101,108,97,120,101,100,95, + 112,97,116,104,95,99,97,99,104,101,41,5,114,119,0,0, + 0,114,44,0,0,0,218,14,108,111,97,100,101,114,95,100, + 101,116,97,105,108,115,90,7,108,111,97,100,101,114,115,114, + 189,0,0,0,114,3,0,0,0,114,80,1,0,0,114,6, + 0,0,0,114,209,0,0,0,143,5,0,0,115,16,0,0, + 0,0,4,4,1,12,1,26,1,6,2,10,1,6,1,8, + 1,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95, + 105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,115, + 10,0,0,0,100,1,124,0,95,0,100,2,83,0,41,3, + 122,31,73,110,118,97,108,105,100,97,116,101,32,116,104,101, + 32,100,105,114,101,99,116,111,114,121,32,109,116,105,109,101, + 46,114,105,0,0,0,78,41,1,114,82,1,0,0,114,246, + 0,0,0,114,3,0,0,0,114,3,0,0,0,114,6,0, + 0,0,114,46,1,0,0,157,5,0,0,115,2,0,0,0, + 0,2,122,28,70,105,108,101,70,105,110,100,101,114,46,105, + 110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115, + 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,3,0,0,0,67,0,0,0,115,42,0,0,0,124,0, + 160,0,124,1,161,1,125,2,124,2,100,1,107,8,114,26, + 100,1,103,0,102,2,83,0,124,2,106,1,124,2,106,2, + 112,38,103,0,102,2,83,0,41,2,122,197,84,114,121,32, + 116,111,32,102,105,110,100,32,97,32,108,111,97,100,101,114, + 32,102,111,114,32,116,104,101,32,115,112,101,99,105,102,105, + 101,100,32,109,111,100,117,108,101,44,32,111,114,32,116,104, + 101,32,110,97,109,101,115,112,97,99,101,10,32,32,32,32, + 32,32,32,32,112,97,99,107,97,103,101,32,112,111,114,116, + 105,111,110,115,46,32,82,101,116,117,114,110,115,32,40,108, + 111,97,100,101,114,44,32,108,105,115,116,45,111,102,45,112, + 111,114,116,105,111,110,115,41,46,10,10,32,32,32,32,32, + 32,32,32,84,104,105,115,32,109,101,116,104,111,100,32,105, + 115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,85, + 115,101,32,102,105,110,100,95,115,112,101,99,40,41,32,105, + 110,115,116,101,97,100,46,10,10,32,32,32,32,32,32,32, + 32,78,41,3,114,203,0,0,0,114,140,0,0,0,114,178, + 0,0,0,41,3,114,119,0,0,0,114,139,0,0,0,114, + 187,0,0,0,114,3,0,0,0,114,3,0,0,0,114,6, + 0,0,0,114,137,0,0,0,163,5,0,0,115,8,0,0, + 0,0,7,10,1,8,1,8,1,122,22,70,105,108,101,70, + 105,110,100,101,114,46,102,105,110,100,95,108,111,97,100,101, + 114,99,6,0,0,0,0,0,0,0,0,0,0,0,7,0, + 0,0,6,0,0,0,67,0,0,0,115,26,0,0,0,124, + 1,124,2,124,3,131,2,125,6,116,0,124,2,124,3,124, + 6,124,4,100,1,141,4,83,0,41,2,78,114,177,0,0, + 0,41,1,114,190,0,0,0,41,7,114,119,0,0,0,114, + 188,0,0,0,114,139,0,0,0,114,44,0,0,0,90,4, + 115,109,115,108,114,202,0,0,0,114,140,0,0,0,114,3, + 0,0,0,114,3,0,0,0,114,6,0,0,0,114,58,1, + 0,0,175,5,0,0,115,8,0,0,0,0,1,10,1,8, + 1,2,255,122,20,70,105,108,101,70,105,110,100,101,114,46, + 95,103,101,116,95,115,112,101,99,78,99,3,0,0,0,0, + 0,0,0,0,0,0,0,14,0,0,0,8,0,0,0,67, + 0,0,0,115,102,1,0,0,100,1,125,3,124,1,160,0, + 100,2,161,1,100,3,25,0,125,4,122,24,116,1,124,0, + 106,2,112,34,116,3,160,4,161,0,131,1,106,5,125,5, + 87,0,110,24,4,0,116,6,107,10,114,66,1,0,1,0, + 1,0,100,4,125,5,89,0,110,2,88,0,124,5,124,0, + 106,7,107,3,114,92,124,0,160,8,161,0,1,0,124,5, + 124,0,95,7,116,9,131,0,114,114,124,0,106,10,125,6, + 124,4,160,11,161,0,125,7,110,10,124,0,106,12,125,6, + 124,4,125,7,124,7,124,6,107,6,114,218,116,13,124,0, + 106,2,124,4,131,2,125,8,124,0,106,14,68,0,93,58, + 92,2,125,9,125,10,100,5,124,9,23,0,125,11,116,13, + 124,8,124,11,131,2,125,12,116,15,124,12,131,1,114,208, + 124,0,160,16,124,10,124,1,124,12,124,8,103,1,124,2, + 161,5,2,0,1,0,83,0,113,150,116,17,124,8,131,1, + 125,3,124,0,106,14,68,0,93,86,92,2,125,9,125,10, + 116,13,124,0,106,2,124,4,124,9,23,0,131,2,125,12, + 116,18,106,19,100,6,124,12,100,3,100,7,141,3,1,0, + 124,7,124,9,23,0,124,6,107,6,144,1,114,54,116,15, + 124,12,131,1,144,1,114,54,124,0,160,16,124,10,124,1, + 124,12,100,8,124,2,161,5,2,0,1,0,83,0,113,224, + 124,3,144,1,114,98,116,18,160,19,100,9,124,8,161,2, + 1,0,116,18,160,20,124,1,100,8,161,2,125,13,124,8, + 103,1,124,13,95,21,124,13,83,0,100,8,83,0,41,10, + 122,111,84,114,121,32,116,111,32,102,105,110,100,32,97,32, + 115,112,101,99,32,102,111,114,32,116,104,101,32,115,112,101, + 99,105,102,105,101,100,32,109,111,100,117,108,101,46,10,10, + 32,32,32,32,32,32,32,32,82,101,116,117,114,110,115,32, + 116,104,101,32,109,97,116,99,104,105,110,103,32,115,112,101, + 99,44,32,111,114,32,78,111,110,101,32,105,102,32,110,111, + 116,32,102,111,117,110,100,46,10,32,32,32,32,32,32,32, + 32,70,114,71,0,0,0,114,28,0,0,0,114,105,0,0, + 0,114,209,0,0,0,122,9,116,114,121,105,110,103,32,123, + 125,41,1,90,9,118,101,114,98,111,115,105,116,121,78,122, + 25,112,111,115,115,105,98,108,101,32,110,97,109,101,115,112, + 97,99,101,32,102,111,114,32,123,125,41,22,114,41,0,0, + 0,114,49,0,0,0,114,44,0,0,0,114,2,0,0,0, + 114,55,0,0,0,114,9,1,0,0,114,50,0,0,0,114, + 82,1,0,0,218,11,95,102,105,108,108,95,99,97,99,104, + 101,114,7,0,0,0,114,85,1,0,0,114,106,0,0,0, + 114,84,1,0,0,114,38,0,0,0,114,81,1,0,0,114, + 54,0,0,0,114,58,1,0,0,114,56,0,0,0,114,134, + 0,0,0,114,149,0,0,0,114,183,0,0,0,114,178,0, + 0,0,41,14,114,119,0,0,0,114,139,0,0,0,114,202, + 0,0,0,90,12,105,115,95,110,97,109,101,115,112,97,99, + 101,90,11,116,97,105,108,95,109,111,100,117,108,101,114,169, + 0,0,0,90,5,99,97,99,104,101,90,12,99,97,99,104, + 101,95,109,111,100,117,108,101,90,9,98,97,115,101,95,112, + 97,116,104,114,17,1,0,0,114,188,0,0,0,90,13,105, + 110,105,116,95,102,105,108,101,110,97,109,101,90,9,102,117, + 108,108,95,112,97,116,104,114,187,0,0,0,114,3,0,0, + 0,114,3,0,0,0,114,6,0,0,0,114,203,0,0,0, + 180,5,0,0,115,74,0,0,0,0,5,4,1,14,1,2, + 1,24,1,14,1,10,1,10,1,8,1,6,2,6,1,6, + 1,10,2,6,1,4,2,8,1,12,1,14,1,8,1,10, + 1,8,1,26,4,8,2,14,1,16,1,16,1,14,1,10, + 1,10,1,2,0,2,255,10,2,6,1,12,1,12,1,8, + 1,4,1,122,20,70,105,108,101,70,105,110,100,101,114,46, + 102,105,110,100,95,115,112,101,99,99,1,0,0,0,0,0, + 0,0,0,0,0,0,9,0,0,0,10,0,0,0,67,0, + 0,0,115,190,0,0,0,124,0,106,0,125,1,122,22,116, + 1,160,2,124,1,112,22,116,1,160,3,161,0,161,1,125, + 2,87,0,110,30,4,0,116,4,116,5,116,6,102,3,107, + 10,114,58,1,0,1,0,1,0,103,0,125,2,89,0,110, + 2,88,0,116,7,106,8,160,9,100,1,161,1,115,84,116, + 10,124,2,131,1,124,0,95,11,110,74,116,10,131,0,125, + 3,124,2,68,0,93,56,125,4,124,4,160,12,100,2,161, + 1,92,3,125,5,125,6,125,7,124,6,114,136,100,3,160, + 13,124,5,124,7,160,14,161,0,161,2,125,8,110,4,124, + 5,125,8,124,3,160,15,124,8,161,1,1,0,113,94,124, + 3,124,0,95,11,116,7,106,8,160,9,116,16,161,1,114, + 186,100,4,100,5,132,0,124,2,68,0,131,1,124,0,95, + 17,100,6,83,0,41,7,122,68,70,105,108,108,32,116,104, + 101,32,99,97,99,104,101,32,111,102,32,112,111,116,101,110, + 116,105,97,108,32,109,111,100,117,108,101,115,32,97,110,100, + 32,112,97,99,107,97,103,101,115,32,102,111,114,32,116,104, + 105,115,32,100,105,114,101,99,116,111,114,121,46,114,0,0, + 0,0,114,71,0,0,0,114,61,0,0,0,99,1,0,0, 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0, - 0,83,0,0,0,115,22,0,0,0,104,0,124,0,93,14, - 125,1,100,0,124,1,155,0,157,2,146,2,113,4,83,0, - 41,1,114,74,0,0,0,114,3,0,0,0,41,2,114,32, - 0,0,0,218,1,115,114,3,0,0,0,114,3,0,0,0, - 114,6,0,0,0,114,88,1,0,0,102,6,0,0,115,4, - 0,0,0,6,0,2,0,122,25,95,115,101,116,117,112,46, - 60,108,111,99,97,108,115,62,46,60,115,101,116,99,111,109, - 112,62,90,7,95,116,104,114,101,97,100,90,8,95,119,101, - 97,107,114,101,102,90,6,119,105,110,114,101,103,114,192,0, - 0,0,114,7,0,0,0,122,4,46,112,121,119,122,6,95, - 100,46,112,121,100,84,78,41,19,114,134,0,0,0,114,8, - 0,0,0,114,163,0,0,0,114,31,1,0,0,114,125,0, - 0,0,90,18,95,98,117,105,108,116,105,110,95,102,114,111, - 109,95,110,97,109,101,114,129,0,0,0,218,3,97,108,108, - 114,23,0,0,0,114,118,0,0,0,114,36,0,0,0,114, - 13,0,0,0,114,21,1,0,0,114,167,0,0,0,114,99, - 1,0,0,114,102,0,0,0,114,186,0,0,0,114,191,0, - 0,0,114,195,0,0,0,41,12,218,17,95,98,111,111,116, - 115,116,114,97,112,95,109,111,100,117,108,101,90,11,115,101, - 108,102,95,109,111,100,117,108,101,90,12,98,117,105,108,116, - 105,110,95,110,97,109,101,90,14,98,117,105,108,116,105,110, - 95,109,111,100,117,108,101,90,10,111,115,95,100,101,116,97, - 105,108,115,90,10,98,117,105,108,116,105,110,95,111,115,114, - 31,0,0,0,114,35,0,0,0,90,9,111,115,95,109,111, - 100,117,108,101,90,13,116,104,114,101,97,100,95,109,111,100, - 117,108,101,90,14,119,101,97,107,114,101,102,95,109,111,100, - 117,108,101,90,13,119,105,110,114,101,103,95,109,111,100,117, - 108,101,114,3,0,0,0,114,3,0,0,0,114,6,0,0, - 0,218,6,95,115,101,116,117,112,61,6,0,0,115,78,0, - 0,0,0,8,4,1,6,1,6,3,10,1,8,1,10,1, - 12,2,10,1,14,3,22,1,12,2,22,1,8,1,10,1, - 10,1,6,2,2,1,10,1,10,1,14,1,12,2,8,1, - 12,1,12,1,18,1,22,3,10,1,12,3,10,1,12,3, - 10,1,10,1,12,3,14,1,14,1,10,1,10,1,10,1, - 114,106,1,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,50, - 0,0,0,116,0,124,0,131,1,1,0,116,1,131,0,125, - 1,116,2,106,3,160,4,116,5,106,6,124,1,142,0,103, - 1,161,1,1,0,116,2,106,7,160,8,116,9,161,1,1, - 0,100,1,83,0,41,2,122,41,73,110,115,116,97,108,108, - 32,116,104,101,32,112,97,116,104,45,98,97,115,101,100,32, - 105,109,112,111,114,116,32,99,111,109,112,111,110,101,110,116, - 115,46,78,41,10,114,106,1,0,0,114,184,0,0,0,114, - 8,0,0,0,114,51,1,0,0,114,167,0,0,0,114,79, - 1,0,0,114,94,1,0,0,218,9,109,101,116,97,95,112, - 97,116,104,114,186,0,0,0,114,45,1,0,0,41,2,114, - 105,1,0,0,90,17,115,117,112,112,111,114,116,101,100,95, - 108,111,97,100,101,114,115,114,3,0,0,0,114,3,0,0, - 0,114,6,0,0,0,218,8,95,105,110,115,116,97,108,108, - 126,6,0,0,115,8,0,0,0,0,2,8,1,6,1,20, - 1,114,108,1,0,0,41,63,114,127,0,0,0,114,12,0, - 0,0,90,37,95,67,65,83,69,95,73,78,83,69,78,83, - 73,84,73,86,69,95,80,76,65,84,70,79,82,77,83,95, - 66,89,84,69,83,95,75,69,89,114,11,0,0,0,114,13, - 0,0,0,114,20,0,0,0,114,27,0,0,0,114,29,0, - 0,0,114,38,0,0,0,114,47,0,0,0,114,49,0,0, - 0,114,53,0,0,0,114,54,0,0,0,114,56,0,0,0, - 114,59,0,0,0,114,69,0,0,0,218,4,116,121,112,101, - 218,8,95,95,99,111,100,101,95,95,114,162,0,0,0,114, - 18,0,0,0,114,148,0,0,0,114,17,0,0,0,114,24, - 0,0,0,114,236,0,0,0,114,92,0,0,0,114,88,0, - 0,0,114,102,0,0,0,114,89,0,0,0,90,23,68,69, - 66,85,71,95,66,89,84,69,67,79,68,69,95,83,85,70, - 70,73,88,69,83,90,27,79,80,84,73,77,73,90,69,68, - 95,66,89,84,69,67,79,68,69,95,83,85,70,70,73,88, - 69,83,114,98,0,0,0,114,103,0,0,0,114,109,0,0, - 0,114,113,0,0,0,114,115,0,0,0,114,136,0,0,0, - 114,143,0,0,0,114,152,0,0,0,114,156,0,0,0,114, - 158,0,0,0,114,165,0,0,0,114,170,0,0,0,114,171, - 0,0,0,114,176,0,0,0,218,6,111,98,106,101,99,116, - 114,185,0,0,0,114,190,0,0,0,114,191,0,0,0,114, - 208,0,0,0,114,221,0,0,0,114,239,0,0,0,114,8, - 1,0,0,114,14,1,0,0,114,21,1,0,0,114,15,1, - 0,0,114,22,1,0,0,114,43,1,0,0,114,45,1,0, - 0,114,79,1,0,0,114,98,1,0,0,114,184,0,0,0, - 114,106,1,0,0,114,108,1,0,0,114,3,0,0,0,114, - 3,0,0,0,114,3,0,0,0,114,6,0,0,0,218,8, - 60,109,111,100,117,108,101,62,1,0,0,0,115,126,0,0, - 0,4,22,4,1,4,1,2,1,2,255,4,4,8,17,8, - 5,8,5,8,6,8,6,8,12,8,10,8,9,8,5,8, - 7,8,9,12,22,10,127,0,8,16,1,12,2,4,1,4, - 2,6,2,6,2,8,2,18,71,8,40,8,19,8,12,8, - 12,8,28,8,17,8,33,8,28,8,24,16,13,14,10,12, - 11,8,14,6,3,6,1,2,255,12,68,14,64,14,29,16, - 127,0,17,14,68,18,45,18,26,4,3,18,53,14,63,14, - 42,14,127,0,58,14,127,0,22,12,23,8,11,8,65, + 0,83,0,0,0,115,20,0,0,0,104,0,124,0,93,12, + 125,1,124,1,160,0,161,0,146,2,113,4,83,0,114,3, + 0,0,0,41,1,114,106,0,0,0,41,2,114,32,0,0, + 0,90,2,102,110,114,3,0,0,0,114,3,0,0,0,114, + 6,0,0,0,218,9,60,115,101,116,99,111,109,112,62,1, + 6,0,0,115,4,0,0,0,6,0,2,0,122,41,70,105, + 108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99, + 97,99,104,101,46,60,108,111,99,97,108,115,62,46,60,115, + 101,116,99,111,109,112,62,78,41,18,114,44,0,0,0,114, + 2,0,0,0,114,6,1,0,0,114,55,0,0,0,114,2, + 1,0,0,218,15,80,101,114,109,105,115,115,105,111,110,69, + 114,114,111,114,218,18,78,111,116,65,68,105,114,101,99,116, + 111,114,121,69,114,114,111,114,114,8,0,0,0,114,9,0, + 0,0,114,10,0,0,0,114,83,1,0,0,114,84,1,0, + 0,114,101,0,0,0,114,62,0,0,0,114,106,0,0,0, + 218,3,97,100,100,114,11,0,0,0,114,85,1,0,0,41, + 9,114,119,0,0,0,114,44,0,0,0,114,7,1,0,0, + 90,21,108,111,119,101,114,95,115,117,102,102,105,120,95,99, + 111,110,116,101,110,116,115,114,41,1,0,0,114,117,0,0, + 0,114,29,1,0,0,114,17,1,0,0,90,8,110,101,119, + 95,110,97,109,101,114,3,0,0,0,114,3,0,0,0,114, + 6,0,0,0,114,87,1,0,0,228,5,0,0,115,34,0, + 0,0,0,2,6,1,2,1,22,1,20,3,10,3,12,1, + 12,7,6,1,8,1,16,1,4,1,18,2,4,1,12,1, + 6,1,12,1,122,22,70,105,108,101,70,105,110,100,101,114, + 46,95,102,105,108,108,95,99,97,99,104,101,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,7,0,0,0,115,18,0,0,0,135,0,135,1,102,2, + 100,1,100,2,132,8,125,2,124,2,83,0,41,3,97,20, + 1,0,0,65,32,99,108,97,115,115,32,109,101,116,104,111, + 100,32,119,104,105,99,104,32,114,101,116,117,114,110,115,32, + 97,32,99,108,111,115,117,114,101,32,116,111,32,117,115,101, + 32,111,110,32,115,121,115,46,112,97,116,104,95,104,111,111, + 107,10,32,32,32,32,32,32,32,32,119,104,105,99,104,32, + 119,105,108,108,32,114,101,116,117,114,110,32,97,110,32,105, + 110,115,116,97,110,99,101,32,117,115,105,110,103,32,116,104, + 101,32,115,112,101,99,105,102,105,101,100,32,108,111,97,100, + 101,114,115,32,97,110,100,32,116,104,101,32,112,97,116,104, + 10,32,32,32,32,32,32,32,32,99,97,108,108,101,100,32, + 111,110,32,116,104,101,32,99,108,111,115,117,114,101,46,10, + 10,32,32,32,32,32,32,32,32,73,102,32,116,104,101,32, + 112,97,116,104,32,99,97,108,108,101,100,32,111,110,32,116, + 104,101,32,99,108,111,115,117,114,101,32,105,115,32,110,111, + 116,32,97,32,100,105,114,101,99,116,111,114,121,44,32,73, + 109,112,111,114,116,69,114,114,111,114,32,105,115,10,32,32, + 32,32,32,32,32,32,114,97,105,115,101,100,46,10,10,32, + 32,32,32,32,32,32,32,99,1,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,4,0,0,0,19,0,0,0, + 115,34,0,0,0,116,0,124,0,131,1,115,20,116,1,100, + 1,124,0,100,2,141,2,130,1,136,0,124,0,102,1,136, + 1,158,2,142,0,83,0,41,3,122,45,80,97,116,104,32, + 104,111,111,107,32,102,111,114,32,105,109,112,111,114,116,108, + 105,98,46,109,97,99,104,105,110,101,114,121,46,70,105,108, + 101,70,105,110,100,101,114,46,122,30,111,110,108,121,32,100, + 105,114,101,99,116,111,114,105,101,115,32,97,114,101,32,115, + 117,112,112,111,114,116,101,100,114,48,0,0,0,41,2,114, + 56,0,0,0,114,118,0,0,0,114,48,0,0,0,169,2, + 114,193,0,0,0,114,86,1,0,0,114,3,0,0,0,114, + 6,0,0,0,218,24,112,97,116,104,95,104,111,111,107,95, + 102,111,114,95,70,105,108,101,70,105,110,100,101,114,13,6, + 0,0,115,6,0,0,0,0,2,8,1,12,1,122,54,70, + 105,108,101,70,105,110,100,101,114,46,112,97,116,104,95,104, + 111,111,107,46,60,108,111,99,97,108,115,62,46,112,97,116, + 104,95,104,111,111,107,95,102,111,114,95,70,105,108,101,70, + 105,110,100,101,114,114,3,0,0,0,41,3,114,193,0,0, + 0,114,86,1,0,0,114,93,1,0,0,114,3,0,0,0, + 114,92,1,0,0,114,6,0,0,0,218,9,112,97,116,104, + 95,104,111,111,107,3,6,0,0,115,4,0,0,0,0,10, + 14,6,122,20,70,105,108,101,70,105,110,100,101,114,46,112, + 97,116,104,95,104,111,111,107,99,1,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0, + 0,115,12,0,0,0,100,1,160,0,124,0,106,1,161,1, + 83,0,41,2,78,122,16,70,105,108,101,70,105,110,100,101, + 114,40,123,33,114,125,41,41,2,114,62,0,0,0,114,44, + 0,0,0,114,246,0,0,0,114,3,0,0,0,114,3,0, + 0,0,114,6,0,0,0,114,39,1,0,0,21,6,0,0, + 115,2,0,0,0,0,1,122,19,70,105,108,101,70,105,110, + 100,101,114,46,95,95,114,101,112,114,95,95,41,1,78,41, + 15,114,125,0,0,0,114,124,0,0,0,114,126,0,0,0, + 114,127,0,0,0,114,209,0,0,0,114,46,1,0,0,114, + 143,0,0,0,114,206,0,0,0,114,137,0,0,0,114,58, + 1,0,0,114,203,0,0,0,114,87,1,0,0,114,207,0, + 0,0,114,94,1,0,0,114,39,1,0,0,114,3,0,0, + 0,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0, + 114,79,1,0,0,134,5,0,0,115,22,0,0,0,8,2, + 4,7,8,14,8,4,4,2,8,12,8,5,10,48,8,31, + 2,1,10,17,114,79,1,0,0,99,4,0,0,0,0,0, + 0,0,0,0,0,0,6,0,0,0,8,0,0,0,67,0, + 0,0,115,146,0,0,0,124,0,160,0,100,1,161,1,125, + 4,124,0,160,0,100,2,161,1,125,5,124,4,115,66,124, + 5,114,36,124,5,106,1,125,4,110,30,124,2,124,3,107, + 2,114,56,116,2,124,1,124,2,131,2,125,4,110,10,116, + 3,124,1,124,2,131,2,125,4,124,5,115,84,116,4,124, + 1,124,2,124,4,100,3,141,3,125,5,122,36,124,5,124, + 0,100,2,60,0,124,4,124,0,100,1,60,0,124,2,124, + 0,100,4,60,0,124,3,124,0,100,5,60,0,87,0,110, + 20,4,0,116,5,107,10,114,140,1,0,1,0,1,0,89, + 0,110,2,88,0,100,0,83,0,41,6,78,218,10,95,95, + 108,111,97,100,101,114,95,95,218,8,95,95,115,112,101,99, + 95,95,114,80,1,0,0,90,8,95,95,102,105,108,101,95, + 95,90,10,95,95,99,97,99,104,101,100,95,95,41,6,218, + 3,103,101,116,114,140,0,0,0,114,14,1,0,0,114,8, + 1,0,0,114,190,0,0,0,114,72,1,0,0,41,6,90, + 2,110,115,114,117,0,0,0,90,8,112,97,116,104,110,97, + 109,101,90,9,99,112,97,116,104,110,97,109,101,114,140,0, + 0,0,114,187,0,0,0,114,3,0,0,0,114,3,0,0, + 0,114,6,0,0,0,218,14,95,102,105,120,95,117,112,95, + 109,111,100,117,108,101,27,6,0,0,115,34,0,0,0,0, + 2,10,1,10,1,4,1,4,1,8,1,8,1,12,2,10, + 1,4,1,14,1,2,1,8,1,8,1,8,1,12,1,14, + 2,114,98,1,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,115, + 38,0,0,0,116,0,116,1,160,2,161,0,102,2,125,0, + 116,3,116,4,102,2,125,1,116,5,116,6,102,2,125,2, + 124,0,124,1,124,2,103,3,83,0,41,1,122,95,82,101, + 116,117,114,110,115,32,97,32,108,105,115,116,32,111,102,32, + 102,105,108,101,45,98,97,115,101,100,32,109,111,100,117,108, + 101,32,108,111,97,100,101,114,115,46,10,10,32,32,32,32, + 69,97,99,104,32,105,116,101,109,32,105,115,32,97,32,116, + 117,112,108,101,32,40,108,111,97,100,101,114,44,32,115,117, + 102,102,105,120,101,115,41,46,10,32,32,32,32,41,7,114, + 15,1,0,0,114,163,0,0,0,218,18,101,120,116,101,110, + 115,105,111,110,95,115,117,102,102,105,120,101,115,114,8,1, + 0,0,114,102,0,0,0,114,14,1,0,0,114,89,0,0, + 0,41,3,90,10,101,120,116,101,110,115,105,111,110,115,90, + 6,115,111,117,114,99,101,90,8,98,121,116,101,99,111,100, + 101,114,3,0,0,0,114,3,0,0,0,114,6,0,0,0, + 114,184,0,0,0,50,6,0,0,115,8,0,0,0,0,5, + 12,1,8,1,8,1,114,184,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,12,0,0,0,9,0,0,0, + 67,0,0,0,115,178,1,0,0,124,0,97,0,116,0,106, + 1,97,1,116,0,106,2,97,2,116,1,106,3,116,4,25, + 0,125,1,100,1,68,0,93,48,125,2,124,2,116,1,106, + 3,107,7,114,56,116,0,160,5,124,2,161,1,125,3,110, + 10,116,1,106,3,124,2,25,0,125,3,116,6,124,1,124, + 2,124,3,131,3,1,0,113,30,100,2,100,3,103,1,102, + 2,100,4,100,5,100,3,103,2,102,2,102,2,125,4,124, + 4,68,0,93,110,92,2,125,5,125,6,116,7,100,6,100, + 7,132,0,124,6,68,0,131,1,131,1,115,136,116,8,130, + 1,124,6,100,8,25,0,125,7,124,5,116,1,106,3,107, + 6,114,170,116,1,106,3,124,5,25,0,125,8,1,0,113, + 226,113,106,122,20,116,0,160,5,124,5,161,1,125,8,87, + 0,1,0,113,226,87,0,113,106,4,0,116,9,107,10,114, + 214,1,0,1,0,1,0,89,0,113,106,89,0,113,106,88, + 0,113,106,116,9,100,9,131,1,130,1,116,6,124,1,100, + 10,124,8,131,3,1,0,116,6,124,1,100,11,124,7,131, + 3,1,0,116,6,124,1,100,12,100,13,160,10,124,6,161, + 1,131,3,1,0,116,6,124,1,100,14,100,15,100,16,132, + 0,124,6,68,0,131,1,131,3,1,0,116,0,160,5,100, + 17,161,1,125,9,116,6,124,1,100,17,124,9,131,3,1, + 0,116,0,160,5,100,18,161,1,125,10,116,6,124,1,100, + 18,124,10,131,3,1,0,124,5,100,4,107,2,144,1,114, + 110,116,0,160,5,100,19,161,1,125,11,116,6,124,1,100, + 20,124,11,131,3,1,0,116,6,124,1,100,21,116,11,131, + 0,131,3,1,0,116,12,160,13,116,2,160,14,161,0,161, + 1,1,0,124,5,100,4,107,2,144,1,114,174,116,15,160, + 16,100,22,161,1,1,0,100,23,116,12,107,6,144,1,114, + 174,100,24,116,17,95,18,100,25,83,0,41,26,122,205,83, + 101,116,117,112,32,116,104,101,32,112,97,116,104,45,98,97, + 115,101,100,32,105,109,112,111,114,116,101,114,115,32,102,111, + 114,32,105,109,112,111,114,116,108,105,98,32,98,121,32,105, + 109,112,111,114,116,105,110,103,32,110,101,101,100,101,100,10, + 32,32,32,32,98,117,105,108,116,45,105,110,32,109,111,100, + 117,108,101,115,32,97,110,100,32,105,110,106,101,99,116,105, + 110,103,32,116,104,101,109,32,105,110,116,111,32,116,104,101, + 32,103,108,111,98,97,108,32,110,97,109,101,115,112,97,99, + 101,46,10,10,32,32,32,32,79,116,104,101,114,32,99,111, + 109,112,111,110,101,110,116,115,32,97,114,101,32,101,120,116, + 114,97,99,116,101,100,32,102,114,111,109,32,116,104,101,32, + 99,111,114,101,32,98,111,111,116,115,116,114,97,112,32,109, + 111,100,117,108,101,46,10,10,32,32,32,32,41,4,114,64, + 0,0,0,114,75,0,0,0,218,8,98,117,105,108,116,105, + 110,115,114,160,0,0,0,90,5,112,111,115,105,120,250,1, + 47,90,2,110,116,250,1,92,99,1,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,3,0,0,0,115,0,0, + 0,115,26,0,0,0,124,0,93,18,125,1,116,0,124,1, + 131,1,100,0,107,2,86,0,1,0,113,2,100,1,83,0, + 41,2,114,39,0,0,0,78,41,1,114,22,0,0,0,41, + 2,114,32,0,0,0,114,95,0,0,0,114,3,0,0,0, + 114,3,0,0,0,114,6,0,0,0,114,19,1,0,0,86, + 6,0,0,115,4,0,0,0,4,0,2,0,122,25,95,115, + 101,116,117,112,46,60,108,111,99,97,108,115,62,46,60,103, + 101,110,101,120,112,114,62,114,73,0,0,0,122,30,105,109, + 112,111,114,116,108,105,98,32,114,101,113,117,105,114,101,115, + 32,112,111,115,105,120,32,111,114,32,110,116,114,2,0,0, + 0,114,35,0,0,0,114,31,0,0,0,114,40,0,0,0, + 114,58,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,4,0,0,0,83,0,0,0,115,22, + 0,0,0,104,0,124,0,93,14,125,1,100,0,124,1,155, + 0,157,2,146,2,113,4,83,0,41,1,114,74,0,0,0, + 114,3,0,0,0,41,2,114,32,0,0,0,218,1,115,114, + 3,0,0,0,114,3,0,0,0,114,6,0,0,0,114,88, + 1,0,0,102,6,0,0,115,4,0,0,0,6,0,2,0, + 122,25,95,115,101,116,117,112,46,60,108,111,99,97,108,115, + 62,46,60,115,101,116,99,111,109,112,62,90,7,95,116,104, + 114,101,97,100,90,8,95,119,101,97,107,114,101,102,90,6, + 119,105,110,114,101,103,114,192,0,0,0,114,7,0,0,0, + 122,4,46,112,121,119,122,6,95,100,46,112,121,100,84,78, + 41,19,114,134,0,0,0,114,8,0,0,0,114,163,0,0, + 0,114,31,1,0,0,114,125,0,0,0,90,18,95,98,117, + 105,108,116,105,110,95,102,114,111,109,95,110,97,109,101,114, + 129,0,0,0,218,3,97,108,108,114,23,0,0,0,114,118, + 0,0,0,114,36,0,0,0,114,13,0,0,0,114,21,1, + 0,0,114,167,0,0,0,114,99,1,0,0,114,102,0,0, + 0,114,186,0,0,0,114,191,0,0,0,114,195,0,0,0, + 41,12,218,17,95,98,111,111,116,115,116,114,97,112,95,109, + 111,100,117,108,101,90,11,115,101,108,102,95,109,111,100,117, + 108,101,90,12,98,117,105,108,116,105,110,95,110,97,109,101, + 90,14,98,117,105,108,116,105,110,95,109,111,100,117,108,101, + 90,10,111,115,95,100,101,116,97,105,108,115,90,10,98,117, + 105,108,116,105,110,95,111,115,114,31,0,0,0,114,35,0, + 0,0,90,9,111,115,95,109,111,100,117,108,101,90,13,116, + 104,114,101,97,100,95,109,111,100,117,108,101,90,14,119,101, + 97,107,114,101,102,95,109,111,100,117,108,101,90,13,119,105, + 110,114,101,103,95,109,111,100,117,108,101,114,3,0,0,0, + 114,3,0,0,0,114,6,0,0,0,218,6,95,115,101,116, + 117,112,61,6,0,0,115,78,0,0,0,0,8,4,1,6, + 1,6,3,10,1,8,1,10,1,12,2,10,1,14,3,22, + 1,12,2,22,1,8,1,10,1,10,1,6,2,2,1,10, + 1,10,1,14,1,12,2,8,1,12,1,12,1,18,1,22, + 3,10,1,12,3,10,1,12,3,10,1,10,1,12,3,14, + 1,14,1,10,1,10,1,10,1,114,106,1,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4, + 0,0,0,67,0,0,0,115,50,0,0,0,116,0,124,0, + 131,1,1,0,116,1,131,0,125,1,116,2,106,3,160,4, + 116,5,106,6,124,1,142,0,103,1,161,1,1,0,116,2, + 106,7,160,8,116,9,161,1,1,0,100,1,83,0,41,2, + 122,41,73,110,115,116,97,108,108,32,116,104,101,32,112,97, + 116,104,45,98,97,115,101,100,32,105,109,112,111,114,116,32, + 99,111,109,112,111,110,101,110,116,115,46,78,41,10,114,106, + 1,0,0,114,184,0,0,0,114,8,0,0,0,114,51,1, + 0,0,114,167,0,0,0,114,79,1,0,0,114,94,1,0, + 0,218,9,109,101,116,97,95,112,97,116,104,114,186,0,0, + 0,114,45,1,0,0,41,2,114,105,1,0,0,90,17,115, + 117,112,112,111,114,116,101,100,95,108,111,97,100,101,114,115, + 114,3,0,0,0,114,3,0,0,0,114,6,0,0,0,218, + 8,95,105,110,115,116,97,108,108,126,6,0,0,115,8,0, + 0,0,0,2,8,1,6,1,20,1,114,108,1,0,0,41, + 63,114,127,0,0,0,114,12,0,0,0,90,37,95,67,65, + 83,69,95,73,78,83,69,78,83,73,84,73,86,69,95,80, + 76,65,84,70,79,82,77,83,95,66,89,84,69,83,95,75, + 69,89,114,11,0,0,0,114,13,0,0,0,114,20,0,0, + 0,114,27,0,0,0,114,29,0,0,0,114,38,0,0,0, + 114,47,0,0,0,114,49,0,0,0,114,53,0,0,0,114, + 54,0,0,0,114,56,0,0,0,114,59,0,0,0,114,69, + 0,0,0,218,4,116,121,112,101,218,8,95,95,99,111,100, + 101,95,95,114,162,0,0,0,114,18,0,0,0,114,148,0, + 0,0,114,17,0,0,0,114,24,0,0,0,114,236,0,0, + 0,114,92,0,0,0,114,88,0,0,0,114,102,0,0,0, + 114,89,0,0,0,90,23,68,69,66,85,71,95,66,89,84, + 69,67,79,68,69,95,83,85,70,70,73,88,69,83,90,27, + 79,80,84,73,77,73,90,69,68,95,66,89,84,69,67,79, + 68,69,95,83,85,70,70,73,88,69,83,114,98,0,0,0, + 114,103,0,0,0,114,109,0,0,0,114,113,0,0,0,114, + 115,0,0,0,114,136,0,0,0,114,143,0,0,0,114,152, + 0,0,0,114,156,0,0,0,114,158,0,0,0,114,165,0, + 0,0,114,170,0,0,0,114,171,0,0,0,114,176,0,0, + 0,218,6,111,98,106,101,99,116,114,185,0,0,0,114,190, + 0,0,0,114,191,0,0,0,114,208,0,0,0,114,221,0, + 0,0,114,239,0,0,0,114,8,1,0,0,114,14,1,0, + 0,114,21,1,0,0,114,15,1,0,0,114,22,1,0,0, + 114,43,1,0,0,114,45,1,0,0,114,79,1,0,0,114, + 98,1,0,0,114,184,0,0,0,114,106,1,0,0,114,108, + 1,0,0,114,3,0,0,0,114,3,0,0,0,114,3,0, + 0,0,114,6,0,0,0,218,8,60,109,111,100,117,108,101, + 62,1,0,0,0,115,126,0,0,0,4,22,4,1,4,1, + 2,1,2,255,4,4,8,17,8,5,8,5,8,6,8,6, + 8,12,8,10,8,9,8,5,8,7,8,9,12,22,10,127, + 0,8,16,1,12,2,4,1,4,2,6,2,6,2,8,2, + 18,71,8,40,8,19,8,12,8,12,8,28,8,17,8,33, + 8,28,8,24,16,13,14,10,12,11,8,14,6,3,6,1, + 2,255,12,68,14,64,14,29,16,127,0,17,14,68,18,45, + 18,26,4,3,18,53,14,63,14,42,14,127,0,58,14,127, + 0,22,12,23,8,11,8,65, };