--- /dev/null +++ b/Lib/_ios_support.py @@ -0,0 +1,36 @@ +from ctypes import cdll, c_void_p, c_char_p +from ctypes import util + + +def get_platform_ios(): + objc = cdll.LoadLibrary(util.find_library(b'objc')) + + objc.objc_getClass.restype = c_void_p + objc.objc_getClass.argtypes = [c_char_p] + objc.objc_msgSend.restype = c_void_p + objc.objc_msgSend.argtypes = [c_void_p, c_void_p] + objc.sel_registerName.restype = c_void_p + objc.sel_registerName.argtypes = [c_char_p] + + UIDevice = c_void_p(objc.objc_getClass(b'UIDevice')) + SEL_currentDevice = c_void_p(objc.sel_registerName(b'currentDevice')) + device = c_void_p(objc.objc_msgSend(UIDevice, SEL_currentDevice)) + + SEL_systemVersion = c_void_p(objc.sel_registerName(b'systemVersion')) + systemVersion = c_void_p(objc.objc_msgSend(device, SEL_systemVersion)) + + SEL_systemName = c_void_p(objc.sel_registerName(b'systemName')) + systemName = c_void_p(objc.objc_msgSend(device, SEL_systemName)) + + SEL_model = c_void_p(objc.sel_registerName(b'model')) + systemModel = c_void_p(objc.objc_msgSend(device, SEL_model)) + + # UTF8String returns a const char*; + SEL_UTF8String = c_void_p(objc.sel_registerName(b'UTF8String')) + objc.objc_msgSend.restype = c_char_p + + system = objc.objc_msgSend(systemName, SEL_UTF8String).decode() + release = objc.objc_msgSend(systemVersion, SEL_UTF8String).decode() + model = objc.objc_msgSend(systemModel, SEL_UTF8String).decode() + + return system, release, model diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py index 0c2510e161..6c3c43f11d 100644 --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -67,7 +67,7 @@ return fname return None -elif os.name == "posix" and sys.platform == "darwin": +elif os.name == "posix" and sys.platform in ('darwin', 'ios', 'tvos', 'watchos'): from ctypes.macholib.dyld import dyld_find as _dyld_find def find_library(name): possible = ['lib%s.dylib' % name, diff --git a/Lib/distutils/tests/test_build_ext.py b/Lib/distutils/tests/test_build_ext.py index 8e7364d2a2..eec325fecc 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -15,7 +15,7 @@ import unittest from test import support -from test.support import os_helper +from test.support import os_helper, has_subprocess_support from test.support.script_helper import assert_python_ok # http://bugs.python.org/issue4373 @@ -56,6 +56,7 @@ def build_ext(self, *args, **kwargs): return build_ext(*args, **kwargs) + @unittest.skipUnless(has_subprocess_support, "distutils cannot spawn child processes") def test_build_ext(self): cmd = support.missing_compiler_executable() if cmd is not None: @@ -332,6 +333,7 @@ cmd.run() self.assertEqual(cmd.compiler, 'unix') + @unittest.skipUnless(has_subprocess_support, "distutils cannot spawn child processes") def test_get_outputs(self): cmd = support.missing_compiler_executable() if cmd is not None: diff --git a/Lib/distutils/tests/test_build_py.py b/Lib/distutils/tests/test_build_py.py index 0712e92c6a..4c05e8d968 100644 --- a/Lib/distutils/tests/test_build_py.py +++ b/Lib/distutils/tests/test_build_py.py @@ -9,7 +9,7 @@ from distutils.errors import DistutilsFileError from distutils.tests import support -from test.support import run_unittest +from test.support import run_unittest, has_subprocess_support class BuildPyTestCase(support.TempdirManager, @@ -106,6 +106,7 @@ ['boiledeggs.%s.pyc' % sys.implementation.cache_tag]) @unittest.skipIf(sys.dont_write_bytecode, 'byte-compile disabled') + @unittest.skipUnless(has_subprocess_support, "distutils cannot spawn child processes") def test_byte_compile_optimized(self): project_dir, dist = self.create_dist(py_modules=['boiledeggs']) os.chdir(project_dir) diff --git a/Lib/distutils/tests/test_config_cmd.py b/Lib/distutils/tests/test_config_cmd.py index 0127ba71fc..d03356af1b 100644 --- a/Lib/distutils/tests/test_config_cmd.py +++ b/Lib/distutils/tests/test_config_cmd.py @@ -3,7 +3,7 @@ import os import sys import sysconfig -from test.support import run_unittest, missing_compiler_executable +from test.support import run_unittest, missing_compiler_executable, has_subprocess_support from distutils.command.config import dump_file, config from distutils.tests import support @@ -42,6 +42,7 @@ self.assertEqual(len(self._logs), numlines+1) @unittest.skipIf(sys.platform == 'win32', "can't test on Windows") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_search_cpp(self): cmd = missing_compiler_executable(['preprocessor']) if cmd is not None: diff --git a/Lib/distutils/tests/test_cygwinccompiler.py b/Lib/distutils/tests/test_cygwinccompiler.py index 9dc869de4c..9a1b18aba9 100644 --- a/Lib/distutils/tests/test_cygwinccompiler.py +++ b/Lib/distutils/tests/test_cygwinccompiler.py @@ -5,11 +5,14 @@ from io import BytesIO from test.support import run_unittest -from distutils import cygwinccompiler -from distutils.cygwinccompiler import (check_config_h, - CONFIG_H_OK, CONFIG_H_NOTOK, - CONFIG_H_UNCERTAIN, get_versions, - get_msvcr) +# Importing cygwinccompiler attempts to import other tools +# that may not exist unless you're on win32. +if sys.platform == 'win32': + from distutils import cygwinccompiler + from distutils.cygwinccompiler import (check_config_h, + CONFIG_H_OK, CONFIG_H_NOTOK, + CONFIG_H_UNCERTAIN, get_versions, + get_msvcr) from distutils.tests import support class FakePopen(object): @@ -25,6 +28,7 @@ self.stdout = os.popen(cmd, 'r') +@unittest.skipUnless(sys.platform == "win32", "These tests are only for win32") class CygwinCCompilerTestCase(support.TempdirManager, unittest.TestCase): diff --git a/Lib/distutils/tests/test_install.py b/Lib/distutils/tests/test_install.py index 0632024b35..a21962792b 100644 --- a/Lib/distutils/tests/test_install.py +++ b/Lib/distutils/tests/test_install.py @@ -5,7 +5,7 @@ import unittest import site -from test.support import captured_stdout, run_unittest +from test.support import captured_stdout, run_unittest, has_subprocess_support from distutils import sysconfig from distutils.command.install import install, HAS_USER_SITE @@ -208,6 +208,7 @@ 'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]] self.assertEqual(found, expected) + @unittest.skipUnless(has_subprocess_support, "distutils cannot spawn child processes") def test_record_extensions(self): cmd = test_support.missing_compiler_executable() if cmd is not None: diff --git a/Lib/distutils/tests/test_install_lib.py b/Lib/distutils/tests/test_install_lib.py index fda6315bbc..121664b722 100644 --- a/Lib/distutils/tests/test_install_lib.py +++ b/Lib/distutils/tests/test_install_lib.py @@ -8,7 +8,7 @@ from distutils.extension import Extension from distutils.tests import support from distutils.errors import DistutilsOptionError -from test.support import run_unittest +from test.support import run_unittest, has_subprocess_support class InstallLibTestCase(support.TempdirManager, @@ -35,6 +35,7 @@ self.assertEqual(cmd.optimize, 2) @unittest.skipIf(sys.dont_write_bytecode, 'byte-compile disabled') + @unittest.skipUnless(has_subprocess_support, "distutils cannot spawn child processes") def test_byte_compile(self): project_dir, dist = self.create_dist() os.chdir(project_dir) diff --git a/Lib/distutils/tests/test_spawn.py b/Lib/distutils/tests/test_spawn.py index 4ec767b120..10003aa99e 100644 --- a/Lib/distutils/tests/test_spawn.py +++ b/Lib/distutils/tests/test_spawn.py @@ -3,7 +3,7 @@ import stat import sys import unittest.mock -from test.support import run_unittest, unix_shell +from test.support import run_unittest, unix_shell, has_subprocess_support from test.support import os_helper from distutils.spawn import find_executable @@ -15,8 +15,7 @@ support.LoggingSilencer, unittest.TestCase): - @unittest.skipUnless(os.name in ('nt', 'posix'), - 'Runs only under posix or nt') + @unittest.skipUnless(has_subprocess_support, "distutils cannot spawn child processes") def test_spawn(self): tmpdir = self.mkdtemp() diff --git a/Lib/distutils/tests/test_sysconfig.py b/Lib/distutils/tests/test_sysconfig.py index 59676b0e0b..6bbeea0df7 100644 --- a/Lib/distutils/tests/test_sysconfig.py +++ b/Lib/distutils/tests/test_sysconfig.py @@ -10,7 +10,7 @@ from distutils import sysconfig from distutils.ccompiler import get_default_compiler from distutils.tests import support -from test.support import run_unittest, swap_item +from test.support import run_unittest, swap_item, has_subprocess_support from test.support.os_helper import TESTFN from test.support.warnings_helper import check_warnings @@ -247,6 +247,7 @@ self.assertIsNotNone(vars['SO']) self.assertEqual(vars['SO'], vars['EXT_SUFFIX']) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_customize_compiler_before_get_config_vars(self): # Issue #21923: test that a Distribution compiler # instance can be called without an explicit call to diff --git a/Lib/distutils/tests/test_util.py b/Lib/distutils/tests/test_util.py index d4a01c6e91..f3fc4607e1 100644 --- a/Lib/distutils/tests/test_util.py +++ b/Lib/distutils/tests/test_util.py @@ -3,7 +3,7 @@ import sys import unittest from copy import copy -from test.support import run_unittest +from test.support import run_unittest, has_subprocess_support from unittest import mock from distutils.errors import DistutilsPlatformError, DistutilsByteCompileError @@ -234,6 +234,7 @@ # XXX platforms to be covered: mac + @unittest.skipUnless(has_subprocess_support, "distutils cannot spawn child processes") def test_check_environ(self): util._environ_checked = 0 os.environ.pop('HOME', None) diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py index d00c48981e..5d12b4779d 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -270,9 +270,9 @@ static_f = self.library_filename(lib, lib_type='static') if sys.platform == 'darwin': - # On OSX users can specify an alternate SDK using - # '-isysroot', calculate the SDK root if it is specified - # (and use it further on) + # On macOS users can specify an alternate SDK using + # '-isysroot ' or --sysroot=, calculate the SDK root + # if it is specified (and use it further on) # # Note that, as of Xcode 7, Apple SDKs may contain textual stub # libraries with .tbd extensions rather than the normal .dylib @@ -291,12 +291,14 @@ cflags = sysconfig.get_config_var('CFLAGS') m = re.search(r'-isysroot\s*(\S+)', cflags) if m is None: - sysroot = _osx_support._default_sysroot(sysconfig.get_config_var('CC')) + m = re.search(r'--sysroot=(\S+)', cflags) + if m is None: + sysroot = _osx_support._default_sysroot(sysconfig.get_config_var('CC')) + else: + sysroot = m.group(1) else: sysroot = m.group(1) - - for dir in dirs: shared = os.path.join(dir, shared_f) dylib = os.path.join(dir, dylib_f) diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py index 49bcaea78d..cccdbc708b 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -52,7 +52,7 @@ # Bootstrap-related code ###################################################### _CASE_INSENSITIVE_PLATFORMS_STR_KEY = 'win', -_CASE_INSENSITIVE_PLATFORMS_BYTES_KEY = 'cygwin', 'darwin' +_CASE_INSENSITIVE_PLATFORMS_BYTES_KEY = 'cygwin', 'darwin', 'ios', 'tvos', 'watchos' _CASE_INSENSITIVE_PLATFORMS = (_CASE_INSENSITIVE_PLATFORMS_BYTES_KEY + _CASE_INSENSITIVE_PLATFORMS_STR_KEY) @@ -1637,6 +1637,59 @@ return 'FileFinder({!r})'.format(self.path) +class AppleFrameworkLoader(ExtensionFileLoader): + """A loader for modules that have been packaged as Apple Frameworks for + compatibility with Apple's App Store policies. + + For compatibility with the App Store, *all* binary modules must be in .dylibs, + contained in a Framework, in the ``Frameworks`` folder of the packaged app. If + you're trying to run "from foo import _bar", and _bar is implemented with the binary + module "foo/_bar.abi3.dylib" (or any other .dylib extension), this loader will look + for "{sys.executable}/Frameworks/foo__bar.framework/_bar.abi3.dylib" (forming the + package name by taking the full path of the library, and replacing ``/`` with + ``_``). The app packaging tool is responsible for putting the library in this + location. + + However, the ``__file__`` attribute of the _bar module will report as the original + location inside the ``foo`` directory. This so that code that depends on walking + directory trees will continue to work as expected based on the *original* file + location. + """ + def __init__(self, fullname, dylib_file, path): + super().__init__(fullname, dylib_file) + self.parent_paths = path + + def create_module(self, spec): + mod = super().create_module(spec) + if self.parent_paths: + for parent_path in self.parent_paths: + if _path_isdir(parent_path): + mod.__file__ = _path_join(parent_path, _path_split(self.path)[-1]) + continue + return mod + + +class AppleFrameworkFinder: + """A finder for modules that have been packaged as Apple Frameworks + for compatibility with Apple's App Store policies. + + See AppleFrameworkLoader for details. + """ + def __init__(self, path): + self.frameworks_path = path + + def find_spec(self, fullname, path, target=None): + name = fullname.split(".")[-1] + + for extension in EXTENSION_SUFFIXES: + dylib_file = _path_join(self.frameworks_path, f"{fullname}.framework", f"{name}{extension}") + _bootstrap._verbose_message('Looking for Apple Framework dylib {}', dylib_file) + if _path_isfile(dylib_file): + loader = AppleFrameworkLoader(fullname, dylib_file, path) + return _bootstrap.spec_from_loader(fullname, loader) + + return None + # Import setup ############################################################### def _fix_up_module(ns, name, pathname, cpathname=None): @@ -1684,3 +1737,7 @@ supported_loaders = _get_supported_file_loaders() sys.path_hooks.extend([FileFinder.path_hook(*supported_loaders)]) sys.meta_path.append(PathFinder) + if sys.platform in {"ios", "tvos", "watchos"}: + frameworks_folder = _path_join(_path_split(sys.executable)[0], "Frameworks") + _bootstrap._verbose_message('Adding Apple Framework dylib finder at {}', frameworks_folder) + sys.meta_path.append(AppleFrameworkFinder(frameworks_folder)) diff --git a/Lib/platform.py b/Lib/platform.py index 6a820c90a1..f16a540118 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -449,6 +449,26 @@ # If that also doesn't work return the default values return release, versioninfo, machine + +def iOS_ver(): + """Get iOS/tvOS version information, and return it as a + tuple (system, release, model). All tuple entries are strings. + """ + import _ios_support + return _ios_support.get_platform_ios() + +def is_simulator(): + """Determine if the current platform is a device simulator. + Only useful when working with iOS, tvOS or watchOS, because + Apple provides simulator platforms for those devices. + If the platform is actual hardware, returns False. Will also + return False for device *emulators*, which are indistinguishable + from actual devices because they are reproducing actual device + properties. + """ + return getattr(sys.implementation, "_simulator", False) + + def _java_getprop(name, default): from java.lang import System @@ -605,7 +625,7 @@ default in case the command should fail. """ - if sys.platform in ('dos', 'win32', 'win16'): + if sys.platform in ('dos', 'win32', 'win16', 'ios', 'tvos', 'watchos'): # XXX Others too ? return default @@ -744,6 +764,24 @@ csid, cpu_number = vms_lib.getsyi('SYI$_CPU', 0) return 'Alpha' if cpu_number >= 128 else 'VAX' + # On iOS, tvOS and watchOS, os.uname returns the architecture + # as uname.machine. On device it doesn't; but there's only + # on CPU architecture on device + def get_ios(): + if getattr(sys.implementation, "_simulator", False): + return os.uname().machine + return 'arm64' + + def get_tvos(): + if getattr(sys.implementation, "_simulator", False): + return os.uname().machine + return 'arm64' + + def get_watchos(): + if getattr(sys.implementation, "_simulator", False): + return os.uname().machine + return 'arm64_32' + def from_subprocess(): """ Fall back to `uname -p` @@ -893,6 +931,15 @@ system = 'Windows' release = 'Vista' + # Normalize responses on Apple mobile platforms + if sys.platform in ('ios', 'tvos'): + system, release, model = iOS_ver() + + # On iOS/tvOS simulators, os.uname() reports the machine as something + # like "arm64" or "x86_64". + if getattr(sys.implementation, "_simulator", False): + machine = f'{model}Simulator' + vals = system, node, release, version, machine # Replace 'unknown' values with the more portable '' _uname_cache = uname_result(*map(_unknown_as_blank, vals)) @@ -1205,11 +1252,13 @@ system, release, version = system_alias(system, release, version) if system == 'Darwin': - # macOS (darwin kernel) - macos_release = mac_ver()[0] - if macos_release: - system = 'macOS' - release = macos_release + if sys.platform in ('ios', 'tvos'): + system, release, _ = iOS_ver() + else: + macos_release = mac_ver()[0] + if macos_release: + system = 'macOS' + release = macos_release if system == 'Windows': # MS platforms diff --git a/Lib/site.py b/Lib/site.py index 939893eb5e..8c550ed95a 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -294,6 +294,9 @@ if sys.platform == 'darwin' and sys._framework: return f'{userbase}/lib/python/site-packages' + elif sys.platform in ('ios', 'tvos', 'watchos'): + from sysconfig import get_path + return get_path('purelib', sys.platform) return f'{userbase}/lib/python{version[0]}.{version[1]}/site-packages' diff --git a/Lib/subprocess.py b/Lib/subprocess.py index f1e3d64dfe..9a7c6f8e7f 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -96,6 +96,8 @@ "CREATE_NO_WINDOW", "DETACHED_PROCESS", "CREATE_DEFAULT_ERROR_MODE", "CREATE_BREAKAWAY_FROM_JOB"]) +# Some platforms do not support processes +_can_fork_exec = sys.platform not in {"ios", "tvos", "watchos"} # Exception classes used by this module. class SubprocessError(Exception): pass @@ -764,6 +766,9 @@ pass_fds=(), *, user=None, group=None, extra_groups=None, encoding=None, errors=None, text=None, umask=-1, pipesize=-1): """Create new Popen instance.""" + if not _can_fork_exec: + raise RuntimeError(f"Subprocesses are not supported on {sys.platform}") + _cleanup() # Held while anything is calling waitpid before returncode has been # updated to prevent clobbering returncode if wait() or poll() are @@ -1876,7 +1881,7 @@ else: self.returncode = waitstatus_to_exitcode(sts) - def _internal_poll(self, _deadstate=None, _waitpid=os.waitpid, + def _internal_poll(self, _deadstate=None, _waitpid=None, _WNOHANG=os.WNOHANG, _ECHILD=errno.ECHILD): """Check if child process has terminated. Returns returncode attribute. @@ -1885,6 +1890,8 @@ outside of the local scope (nor can any methods it calls). """ + if _waitpid is None: + _waitpid = os.waitpid if self.returncode is None: if not self._waitpid_lock.acquire(False): # Something else is busy calling waitpid. Don't allow two diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py index daf9f00006..8d32223243 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -56,6 +56,33 @@ 'scripts': '{base}/Scripts', 'data': '{base}', }, + 'ios': { + 'stdlib': '{installed_base}/lib/python{py_version_short}', + 'platstdlib': '{installed_base}/lib/python{py_version_short}', + 'purelib': '{installed_base}/lib/python{py_version_short}/site-packages', + 'platlib': '{installed_base}/lib/python{py_version_short}/site-packages', + 'include': '{installed_base}/include', + 'scripts': '{installed_base}/bin', + 'data': '{installed_base}/Resources', + }, + 'tvos': { + 'stdlib': '{installed_base}/lib/python{py_version_short}', + 'platstdlib': '{installed_base}/lib/python{py_version_short}', + 'purelib': '{installed_base}/lib/python{py_version_short}/site-packages', + 'platlib': '{installed_base}/lib/python{py_version_short}/site-packages', + 'include': '{installed_base}/include', + 'scripts': '{installed_base}/bin', + 'data': '{installed_base}/Resources', + }, + 'watchos': { + 'stdlib': '{installed_base}/lib/python{py_version_short}', + 'platstdlib': '{installed_base}/lib/python{py_version_short}', + 'purelib': '{installed_base}/lib/python{py_version_short}/site-packages', + 'platlib': '{installed_base}/lib/python{py_version_short}/site-packages', + 'include': '{installed_base}/include', + 'scripts': '{installed_base}/bin', + 'data': '{installed_base}/Resources', + }, } @@ -231,12 +258,19 @@ 'home': 'posix_home', 'user': 'nt_user', } + if sys.platform in ('ios', 'tvos', 'watchos'): + return { + 'prefix': sys.platform, + 'home': sys.platform, + 'user': sys.platform, + } if sys.platform == 'darwin' and sys._framework: return { 'prefix': 'posix_prefix', 'home': 'posix_home', 'user': 'osx_framework_user', } + return { 'prefix': 'posix_prefix', 'home': 'posix_home', @@ -740,10 +774,16 @@ if m: release = m.group() elif osname[:6] == "darwin": - import _osx_support - osname, release, machine = _osx_support.get_platform_osx( - get_config_vars(), - osname, release, machine) + if sys.platform in ("ios", "tvos", "watchos"): + import _ios_support + _, release, _ = _ios_support.get_platform_ios() + osname = sys.platform + machine = sys.implementation._multiarch + else: + import _osx_support + osname, release, machine = _osx_support.get_platform_osx( + get_config_vars(), + osname, release, machine) return f"{osname}-{release}-{machine}" diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index b7cf1e2858..36e6bbf84f 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -43,7 +43,7 @@ "check__all__", "skip_if_buggy_ucrt_strfptime", "check_disallow_instantiation", "check_sanitizer", "skip_if_sanitizer", # sys - "is_jython", "is_android", "check_impl_detail", "unix_shell", + "is_jython", "is_android", "is_apple_mobile", "check_impl_detail", "unix_shell", "setswitchinterval", # network "open_urlresource", @@ -469,11 +469,24 @@ is_android = hasattr(sys, 'getandroidapilevel') -if sys.platform not in ('win32', 'vxworks'): +if sys.platform not in ('win32', 'vxworks', 'ios', 'tvos', 'watchos'): unix_shell = '/system/bin/sh' if is_android else '/bin/sh' else: unix_shell = None +# Apple mobile platforms (iOS/tvOS/watchOS) are POSIX-like but do not +# have subprocess or fork support. +is_apple_mobile = sys.platform in ('ios', 'tvos', 'watchos') + +has_fork_support = ( + hasattr(os, "fork") + and not is_apple_mobile +) + +has_subprocess_support = ( + not is_apple_mobile +) + # Define the URL of a dedicated HTTP server for the network tests. # The URL must use clear-text HTTP: no redirection to encrypted HTTPS. TEST_HTTP_URL = "http://www.pythontest.net" diff --git a/Lib/test/support/script_helper.py b/Lib/test/support/script_helper.py index 6d699c8486..8e7341bd21 100644 --- a/Lib/test/support/script_helper.py +++ b/Lib/test/support/script_helper.py @@ -8,10 +8,12 @@ import os.path import subprocess import py_compile +import unittest import zipfile from importlib.util import source_from_cache from test import support +from test.support import has_subprocess_support from test.support.import_helper import make_legacy_pyc @@ -19,6 +21,7 @@ __cached_interp_requires_environment = None +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def interpreter_requires_environment(): """ Returns True if our sys.executable interpreter requires environment @@ -139,6 +142,7 @@ return _PythonRunResult(rc, out, err), cmd_line +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def _assert_python(expected_success, /, *args, **env_vars): res, cmd_line = run_python_until_end(*args, **env_vars) if (res.rc and expected_success) or (not res.rc and not expected_success): @@ -171,6 +175,7 @@ return _assert_python(False, *args, **env_vars) +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def spawn_python(*args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, **kw): """Run a Python subprocess with the given arguments. diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py index 253a6c119c..b6c386d83c 100644 --- a/Lib/test/test_asyncio/test_events.py +++ b/Lib/test/test_asyncio/test_events.py @@ -32,6 +32,7 @@ from asyncio import selector_events from test.test_asyncio import utils as test_utils from test import support +from test.support import is_apple_mobile, has_subprocess_support from test.support import socket_helper from test.support import threading_helper from test.support import ALWAYS_EQ, LARGEST, SMALLEST @@ -541,6 +542,7 @@ self._basetest_create_connection(conn_fut) @socket_helper.skip_unless_bind_unix_socket + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_create_unix_connection(self): # Issue #20682: On Mac OS X Tiger, getsockname() returns a # zero-length address for UNIX socket. @@ -633,6 +635,7 @@ self.assertEqual(cm.exception.reason, 'CERTIFICATE_VERIFY_FAILED') @unittest.skipIf(ssl is None, 'No ssl module') + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_create_ssl_connection(self): with test_utils.run_test_server(use_ssl=True) as httpd: create_connection = functools.partial( @@ -644,6 +647,7 @@ @socket_helper.skip_unless_bind_unix_socket @unittest.skipIf(ssl is None, 'No ssl module') + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_create_ssl_unix_connection(self): # Issue #20682: On Mac OS X Tiger, getsockname() returns a # zero-length address for UNIX socket. @@ -908,6 +912,7 @@ return server, path @socket_helper.skip_unless_bind_unix_socket + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_create_unix_server(self): proto = MyProto(loop=self.loop) server, path = self._make_unix_server(lambda: proto) @@ -936,6 +941,7 @@ server.close() @unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'No UNIX Sockets') + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_create_unix_server_path_socket_error(self): proto = MyProto(loop=self.loop) sock = socket.socket() @@ -1001,6 +1007,7 @@ @socket_helper.skip_unless_bind_unix_socket @unittest.skipIf(ssl is None, 'No ssl module') + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_create_unix_server_ssl(self): proto = MyProto(loop=self.loop) server, path = self._make_ssl_unix_server( @@ -1031,6 +1038,7 @@ server.close() @unittest.skipIf(ssl is None, 'No ssl module') + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_create_server_ssl_verify_failed(self): proto = MyProto(loop=self.loop) server, host, port = self._make_ssl_server( @@ -1061,6 +1069,7 @@ @socket_helper.skip_unless_bind_unix_socket @unittest.skipIf(ssl is None, 'No ssl module') + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_create_unix_server_ssl_verify_failed(self): proto = MyProto(loop=self.loop) server, path = self._make_ssl_unix_server( @@ -1121,6 +1130,7 @@ @socket_helper.skip_unless_bind_unix_socket @unittest.skipIf(ssl is None, 'No ssl module') + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_create_unix_server_ssl_verified(self): proto = MyProto(loop=self.loop) server, path = self._make_ssl_unix_server( @@ -1783,6 +1793,7 @@ next(it) +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class SubprocessTestsMixin: def check_terminated(self, returncode): diff --git a/Lib/test/test_asyncio/test_streams.py b/Lib/test/test_asyncio/test_streams.py index 994041c10f..378767ebbc 100644 --- a/Lib/test/test_asyncio/test_streams.py +++ b/Lib/test/test_asyncio/test_streams.py @@ -17,6 +17,7 @@ import asyncio from test.test_asyncio import utils as test_utils +from test.support import is_apple_mobile, has_subprocess_support def tearDownModule(): @@ -60,6 +61,7 @@ self._basetest_open_connection(conn_fut) @socket_helper.skip_unless_bind_unix_socket + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_open_unix_connection(self): with test_utils.run_test_unix_server() as httpd: conn_fut = asyncio.open_unix_connection(httpd.address) @@ -91,6 +93,7 @@ @socket_helper.skip_unless_bind_unix_socket @unittest.skipIf(ssl is None, 'No ssl module') + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_open_unix_connection_no_loop_ssl(self): with test_utils.run_test_unix_server(use_ssl=True) as httpd: conn_fut = asyncio.open_unix_connection( @@ -119,6 +122,7 @@ self._basetest_open_connection_error(conn_fut) @socket_helper.skip_unless_bind_unix_socket + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_open_unix_connection_error(self): with test_utils.run_test_unix_server() as httpd: conn_fut = asyncio.open_unix_connection(httpd.address) @@ -637,6 +641,7 @@ self.assertEqual(messages, []) @socket_helper.skip_unless_bind_unix_socket + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_start_unix_server(self): class MyServer: @@ -707,6 +712,7 @@ self.assertEqual(messages, []) @unittest.skipIf(sys.platform == 'win32', "Don't have pipes") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_read_all_from_pipe_reader(self): # See asyncio issue 168. This test is derived from the example # subprocess_attach_read_pipe.py, but we configure the diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py index 7cd80fd68e..ccb0faa025 100644 --- a/Lib/test/test_asyncio/test_subprocess.py +++ b/Lib/test/test_asyncio/test_subprocess.py @@ -10,7 +10,7 @@ from asyncio import subprocess from test.test_asyncio import utils as test_utils from test import support -from test.support import os_helper +from test.support import os_helper, has_subprocess_support if sys.platform != 'win32': from asyncio import unix_events @@ -104,6 +104,7 @@ transport.close() +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class SubprocessMixin: def test_stdin_stdout(self): diff --git a/Lib/test/test_asyncio/test_unix_events.py b/Lib/test/test_asyncio/test_unix_events.py index 01c1214c7f..3944874ec3 100644 --- a/Lib/test/test_asyncio/test_unix_events.py +++ b/Lib/test/test_asyncio/test_unix_events.py @@ -13,6 +13,7 @@ import threading import unittest from unittest import mock +from test.support import is_apple_mobile, has_subprocess_support from test.support import os_helper from test.support import socket_helper @@ -276,6 +277,7 @@ @unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'UNIX Sockets are not supported') +@unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) class SelectorEventLoopUnixSocketTests(test_utils.TestCase): def setUp(self): @@ -1134,6 +1136,7 @@ NotImplementedError, watcher._do_waitpid, f) +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class ChildWatcherTestsMixin: ignore_warnings = mock.patch.object(log.logger, "warning") diff --git a/Lib/test/test_base64.py b/Lib/test/test_base64.py index 418492432a..88a302f13f 100644 --- a/Lib/test/test_base64.py +++ b/Lib/test/test_base64.py @@ -3,6 +3,7 @@ import binascii import os from array import array +from test.support import has_subprocess_support from test.support import os_helper from test.support import script_helper @@ -754,6 +755,7 @@ self.assertEqual(b16encode(b"foobar"), b"666F6F626172") +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class TestMain(unittest.TestCase): def tearDown(self): if os.path.exists(os_helper.TESTFN): diff --git a/Lib/test/test_capi/test_misc.py b/Lib/test/test_capi/test_misc.py index 404a13a0bc..233eed288e 100644 --- a/Lib/test/test_capi/test_misc.py +++ b/Lib/test/test_capi/test_misc.py @@ -17,6 +17,7 @@ import weakref from test import support from test.support import MISSING_C_DOCSTRINGS +from test.support import has_subprocess_support from test.support import import_helper from test.support import threading_helper from test.support import warnings_helper @@ -61,6 +62,7 @@ self.assertEqual(testfunction.attribute, "test") self.assertRaises(AttributeError, setattr, inst.testfunction, "attribute", "test") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_no_FatalError_infinite_loop(self): with support.SuppressCrashReport(): p = subprocess.Popen([sys.executable, "-c", @@ -814,6 +816,7 @@ self.assertEqual(main_attr_id, subinterp_attr_id) +@unittest.skipUnless(threading, 'Threading required for this test.') class TestThreadState(unittest.TestCase): @threading_helper.reap_threads diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py index 14de3d40b9..0a39b0cdbe 100644 --- a/Lib/test/test_cmd_line.py +++ b/Lib/test/test_cmd_line.py @@ -9,7 +9,7 @@ import textwrap import unittest from test import support -from test.support import os_helper +from test.support import os_helper, has_subprocess_support from test.support.script_helper import ( spawn_python, kill_python, assert_python_ok, assert_python_failure, interpreter_requires_environment @@ -68,6 +68,7 @@ rc, out, err = assert_python_ok('-vv') self.assertNotIn(b'stack overflow', err) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') @unittest.skipIf(interpreter_requires_environment(), 'Cannot run -E tests when PYTHON env vars are required.') def test_xoptions(self): @@ -86,6 +87,7 @@ opts = get_xoptions('-Xa', '-Xb=c,d=e') self.assertEqual(opts, {'a': True, 'b': 'c,d=e'}) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_showrefcount(self): def run_python(*args): # this is similar to assert_python_ok but doesn't strip @@ -178,6 +180,7 @@ # arguments as unicode (using wmain() instead of main()). @unittest.skipIf(sys.platform == 'win32', 'Windows has a native unicode API') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_undecodable_code(self): undecodable = b"\xff" env = os.environ.copy() @@ -293,6 +296,7 @@ 'False False False\n' 'False False True\n') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_unbuffered_output(self): # Test expected operation of the '-u' switch for stream in ('stdout', 'stderr'): @@ -351,6 +355,7 @@ # for empty and unset PYTHONPATH self.assertEqual(out1, out2) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_displayhook_unencodable(self): for encoding in ('ascii', 'latin-1', 'utf-8'): env = os.environ.copy() @@ -369,6 +374,7 @@ escaped = repr(text).encode(encoding, 'backslashreplace') self.assertIn(escaped, data) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def check_input(self, code, expected): with tempfile.NamedTemporaryFile("wb+") as stdin: sep = os.linesep.encode('ASCII') @@ -444,6 +450,7 @@ @unittest.skipIf(os.name != 'posix', "test needs POSIX semantics") @unittest.skipIf(sys.platform == "vxworks", "test needs preexec support in subprocess.Popen") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def _test_no_stdio(self, streams): code = """if 1: import os, sys diff --git a/Lib/test/test_concurrent_futures.py b/Lib/test/test_concurrent_futures.py index 6eae8c9cce..48d60f7093 100644 --- a/Lib/test/test_concurrent_futures.py +++ b/Lib/test/test_concurrent_futures.py @@ -5,7 +5,7 @@ # Skip tests if _multiprocessing wasn't built. import_helper.import_module('_multiprocessing') -from test.support import hashlib_helper +from test.support import hashlib_helper, has_subprocess_support from test.support.script_helper import assert_python_ok import contextlib @@ -152,6 +152,7 @@ executor_type = futures.ThreadPoolExecutor +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class ProcessPoolForkMixin(ExecutorMixin): executor_type = futures.ProcessPoolExecutor ctx = "fork" @@ -166,6 +167,7 @@ return super().get_context() +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class ProcessPoolSpawnMixin(ExecutorMixin): executor_type = futures.ProcessPoolExecutor ctx = "spawn" @@ -178,6 +180,7 @@ return super().get_context() +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class ProcessPoolForkserverMixin(ExecutorMixin): executor_type = futures.ProcessPoolExecutor ctx = "forkserver" diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py index ebd4ad9192..bc2809f199 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -4,6 +4,7 @@ from test import support from test.support import import_helper +from test.support import is_apple_mobile from test.support import os_helper import doctest import functools @@ -2875,7 +2876,12 @@ TestResults(failed=1, attempted=1) """ -def test_CLI(): r""" +if is_apple_mobile: + # Mobile platforms can't invoke doctest from the command line, + # so skip this test. + pass +else: + def test_CLI(): r""" The doctest module can be used to run doctests against an arbitrary file. These tests test this CLI functionality. diff --git a/Lib/test/test_eintr.py b/Lib/test/test_eintr.py index 528147802b..f8f0d9c3c7 100644 --- a/Lib/test/test_eintr.py +++ b/Lib/test/test_eintr.py @@ -2,10 +2,11 @@ import signal import unittest from test import support -from test.support import script_helper +from test.support import script_helper, has_subprocess_support @unittest.skipUnless(os.name == "posix", "only supported on Unix") +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class EINTRTests(unittest.TestCase): @unittest.skipUnless(hasattr(signal, "setitimer"), "requires setitimer()") diff --git a/Lib/test/test_faulthandler.py b/Lib/test/test_faulthandler.py index e0f09e821d..ae84d480ba 100644 --- a/Lib/test/test_faulthandler.py +++ b/Lib/test/test_faulthandler.py @@ -7,6 +7,7 @@ import subprocess import sys from test import support +from test.support import has_subprocess_support from test.support import os_helper from test.support import script_helper, is_android from test.support import skip_if_sanitizer @@ -401,6 +402,7 @@ finally: sys.stderr = orig_stderr + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_disabled_by_default(self): # By default, the module should be disabled code = "import faulthandler; print(faulthandler.is_enabled())" @@ -409,6 +411,7 @@ output = subprocess.check_output(args) self.assertEqual(output.rstrip(), b"False") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_sys_xoptions(self): # Test python -X faulthandler code = "import faulthandler; print(faulthandler.is_enabled())" @@ -421,6 +424,7 @@ output = subprocess.check_output(args, env=env) self.assertEqual(output.rstrip(), b"True") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_env_var(self): # empty env var code = "import faulthandler; print(faulthandler.is_enabled())" diff --git a/Lib/test/test_fcntl.py b/Lib/test/test_fcntl.py index 8e98256a62..819c8ef89c 100644 --- a/Lib/test/test_fcntl.py +++ b/Lib/test/test_fcntl.py @@ -6,7 +6,7 @@ import sys import unittest from multiprocessing import Process -from test.support import verbose, cpython_only +from test.support import verbose, cpython_only, is_apple_mobile from test.support.import_helper import import_module from test.support.os_helper import TESTFN, unlink @@ -25,7 +25,7 @@ start_len = "qq" if (sys.platform.startswith(('netbsd', 'freebsd', 'openbsd')) - or sys.platform == 'darwin'): + or sys.platform == 'darwin' or is_apple_mobile): if struct.calcsize('l') == 8: off_t = 'l' pid_t = 'i' diff --git a/Lib/test/test_file_eintr.py b/Lib/test/test_file_eintr.py index 01408d838a..faf039fc69 100644 --- a/Lib/test/test_file_eintr.py +++ b/Lib/test/test_file_eintr.py @@ -15,6 +15,7 @@ import sys import time import unittest +from test.support import has_subprocess_support # Test import all of the things we're about to try testing up front. import _io @@ -69,6 +70,7 @@ self.fail('Error from IO process %s:\nSTDOUT:\n%sSTDERR:\n%s\n' % (why, stdout.decode(), stderr.decode())) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def _test_reading(self, data_to_write, read_and_verify_code): """Generic buffered read method test harness to validate EINTR behavior. diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py index 6c28b2b677..503495e653 100644 --- a/Lib/test/test_gc.py +++ b/Lib/test/test_gc.py @@ -1,7 +1,7 @@ import unittest import unittest.mock from test.support import (verbose, refcount_test, - cpython_only) + cpython_only, has_subprocess_support) from test.support.import_helper import import_module from test.support.os_helper import temp_dir, TESTFN, unlink from test.support.script_helper import assert_python_ok, make_script @@ -681,6 +681,8 @@ del x gc.set_debug(%s) """ + + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def run_command(code): p = subprocess.Popen([sys.executable, "-Wd", "-c", code], stdout=subprocess.PIPE, diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index 5f554897f8..18955cb173 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -33,6 +33,8 @@ # This is what "no gdb" looks like. There may, however, be other # errors that manifest this way too. raise unittest.SkipTest("Couldn't find gdb on the path") + except RuntimeError: + raise unittest.SkipTest('Test requires support for subprocesses.') # Regex to parse: # 'GNU gdb (GDB; SUSE Linux Enterprise 12) 7.7\n' -> 7.7 diff --git a/Lib/test/test_httpservers.py b/Lib/test/test_httpservers.py index 66ab064241..81355276aa 100644 --- a/Lib/test/test_httpservers.py +++ b/Lib/test/test_httpservers.py @@ -30,6 +30,8 @@ import unittest from test import support +from test.support import is_apple_mobile +from test.support import has_subprocess_support from test.support import os_helper from test.support import threading_helper @@ -400,7 +402,7 @@ with open(os.path.join(self.tempdir, filename), 'wb') as f: f.write(os_helper.TESTFN_UNDECODABLE) response = self.request(self.base_url + '/') - if sys.platform == 'darwin': + if sys.platform == 'darwin' or is_apple_mobile: # On Mac OS the HFS+ filesystem replaces bytes that aren't valid # UTF-8 into a percent-encoded value. for name in os.listdir(self.tempdir): @@ -670,6 +672,7 @@ @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, "This test can't be run reliably as root (issue #13308).") +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class CGIHTTPServerTestCase(BaseTestCase): class request_handler(NoLogRequestHandler, CGIHTTPRequestHandler): pass diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index 8dae85ac4f..f7750fdf17 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -40,6 +40,7 @@ from test.support.script_helper import ( assert_python_ok, assert_python_failure, run_python_until_end) from test.support import import_helper +from test.support import is_apple_mobile from test.support import os_helper from test.support import threading_helper from test.support import warnings_helper @@ -601,7 +602,7 @@ # On Windows and Mac OSX this test consumes large resources; It takes # a long time to build the >2 GiB file and takes >2 GiB of disk space # therefore the resource must be enabled to run this test. - if sys.platform[:3] == 'win' or sys.platform == 'darwin': + if sys.platform[:3] == 'win' or sys.platform == 'darwin' or is_apple_mobile: support.requires( 'largefile', 'test requires %s bytes and a long time to run' % self.LARGE) diff --git a/Lib/test/test_json/test_tool.py b/Lib/test/test_json/test_tool.py index 1d7fca6efb..0e0235f44f 100644 --- a/Lib/test/test_json/test_tool.py +++ b/Lib/test/test_json/test_tool.py @@ -6,7 +6,7 @@ import subprocess from test import support -from test.support import os_helper +from test.support import os_helper, has_subprocess_support from test.support.script_helper import assert_python_ok @@ -85,6 +85,7 @@ } """) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_stdin_stdout(self): args = sys.executable, '-m', 'json.tool' process = subprocess.run(args, input=self.data, capture_output=True, text=True, check=True) diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 74e950450c..dbcfc1ddd0 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -43,6 +43,7 @@ import tempfile from test.support.script_helper import assert_python_ok, assert_python_failure from test import support +from test.support import is_apple_mobile from test.support import os_helper from test.support import socket_helper from test.support import threading_helper @@ -1776,9 +1777,20 @@ # just need a name - file can't be present, or we'll get an # 'address already in use' error. os.remove(fn) + # Check the size of the socket file name. If it exceeds 108 + # characters (UNIX_PATH_MAX), it can't be used as a UNIX socket. + # In this case, fall back to a path constructed somewhere that + # is known to be short. + if len(fn) > 108: + fd, fn = tempfile.mkstemp(prefix='test_logging_', suffix='.sock', dir='/tmp') + os.close(fd) + # just need a name - file can't be present, or we'll get an + # 'address already in use' error. + os.remove(fn) return fn @unittest.skipUnless(hasattr(socket, "AF_UNIX"), "Unix sockets required") +@unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) class UnixSocketHandlerTest(SocketHandlerTest): """Test for SocketHandler with unix sockets.""" @@ -1860,6 +1872,7 @@ self.assertEqual(self.log_output, "spam\neggs\n") @unittest.skipUnless(hasattr(socket, "AF_UNIX"), "Unix sockets required") +@unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) class UnixDatagramHandlerTest(DatagramHandlerTest): """Test for DatagramHandler using Unix sockets.""" @@ -1944,6 +1957,7 @@ self.assertEqual(self.log_output, b'<11>h\xc3\xa4m-sp\xc3\xa4m') @unittest.skipUnless(hasattr(socket, "AF_UNIX"), "Unix sockets required") +@unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) class UnixSysLogHandlerTest(SysLogHandlerTest): """Test for SysLogHandler with Unix sockets.""" diff --git a/Lib/test/test_mailcap.py b/Lib/test/test_mailcap.py index 32f07ab290..f985a166f7 100644 --- a/Lib/test/test_mailcap.py +++ b/Lib/test/test_mailcap.py @@ -1,8 +1,9 @@ import mailcap import os import copy +import sys import test.support -from test.support import os_helper +from test.support import os_helper, is_apple_mobile import unittest import sys @@ -218,7 +219,8 @@ ] self._run_cases(cases) - @unittest.skipUnless(os.name == "posix", "Requires 'test' command on system") + @unittest.skipUnless(os.name == "posix" and not is_apple_mobile, + "Requires 'test' command on system") @unittest.skipIf(sys.platform == "vxworks", "'test' command is not supported on VxWorks") def test_test(self): # findmatch() will automatically check any "test" conditions and skip diff --git a/Lib/test/test_marshal.py b/Lib/test/test_marshal.py index 7bcf8e8399..5e808dc0b8 100644 --- a/Lib/test/test_marshal.py +++ b/Lib/test/test_marshal.py @@ -1,5 +1,5 @@ from test import support -from test.support import os_helper +from test.support import os_helper, is_apple_mobile import array import io import marshal @@ -234,7 +234,10 @@ if os.name == 'nt': MAX_MARSHAL_STACK_DEPTH = 1000 else: - MAX_MARSHAL_STACK_DEPTH = 2000 + if is_apple_mobile: + MAX_MARSHAL_STACK_DEPTH = 1500 + else: + MAX_MARSHAL_STACK_DEPTH = 2000 for i in range(MAX_MARSHAL_STACK_DEPTH - 2): last.append([0]) last = last[-1] diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py index 8f34c182f8..95eb37140a 100644 --- a/Lib/test/test_mmap.py +++ b/Lib/test/test_mmap.py @@ -1,4 +1,6 @@ -from test.support import (requires, _2G, _4G, gc_collect, cpython_only) +from test.support import ( + requires, _2G, _4G, gc_collect, cpython_only, is_apple_mobile +) from test.support.import_helper import import_module from test.support.os_helper import TESTFN, unlink import unittest @@ -231,7 +233,7 @@ with open(TESTFN, "r+b") as f: self.assertRaises(ValueError, mmap.mmap, f.fileno(), mapsize, access=4) - if os.name == "posix": + if os.name == "posix" and not is_apple_mobile: # Try incompatible flags, prot and access parameters. with open(TESTFN, "r+b") as f: self.assertRaises(ValueError, mmap.mmap, f.fileno(), mapsize, @@ -806,7 +808,7 @@ unlink(TESTFN) def _make_test_file(self, num_zeroes, tail): - if sys.platform[:3] == 'win' or sys.platform == 'darwin': + if sys.platform[:3] == 'win' or sys.platform == 'darwin' or is_apple_mobile: requires('largefile', 'test requires %s bytes and a long time to run' % str(0x180000000)) f = open(TESTFN, 'w+b') diff --git a/Lib/test/test_multiprocessing_fork.py b/Lib/test/test_multiprocessing_fork.py index 5000edb7c5..65a0fb67f9 100644 --- a/Lib/test/test_multiprocessing_fork.py +++ b/Lib/test/test_multiprocessing_fork.py @@ -1,4 +1,9 @@ import unittest +from test.support import has_subprocess_support + +if not has_subprocess_support: + raise unittest.SkipTest('Test requires support for subprocesses.') + import test._test_multiprocessing import sys diff --git a/Lib/test/test_multiprocessing_forkserver.py b/Lib/test/test_multiprocessing_forkserver.py index 6ad5faf9e8..a5285ef77a 100644 --- a/Lib/test/test_multiprocessing_forkserver.py +++ b/Lib/test/test_multiprocessing_forkserver.py @@ -1,4 +1,9 @@ import unittest +from test.support import has_subprocess_support + +if not has_subprocess_support: + raise unittest.SkipTest('Test requires support for subprocesses.') + import test._test_multiprocessing import sys diff --git a/Lib/test/test_multiprocessing_spawn.py b/Lib/test/test_multiprocessing_spawn.py index 6558952308..192096e2ac 100644 --- a/Lib/test/test_multiprocessing_spawn.py +++ b/Lib/test/test_multiprocessing_spawn.py @@ -1,4 +1,9 @@ import unittest +from test.support import has_subprocess_support + +if not has_subprocess_support: + raise unittest.SkipTest('Test requires support for subprocesses.') + import test._test_multiprocessing from test import support diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 6b443c48f8..35cfe425b4 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -32,6 +32,7 @@ import warnings from test import support from test.support import import_helper +from test.support import has_subprocess_support from test.support import os_helper from test.support import socket_helper from test.support import threading_helper @@ -993,6 +994,7 @@ @unittest.skipUnless(unix_shell and os.path.exists(unix_shell), 'requires a shell') @unittest.skipUnless(hasattr(os, 'popen'), "needs os.popen()") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_update2(self): os.environ.clear() os.environ.update(HELLO="World") @@ -1003,6 +1005,7 @@ @unittest.skipUnless(unix_shell and os.path.exists(unix_shell), 'requires a shell') @unittest.skipUnless(hasattr(os, 'popen'), "needs os.popen()") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_os_popen_iter(self): with os.popen("%s -c 'echo \"line1\nline2\nline3\"'" % unix_shell) as popen: @@ -1954,6 +1957,7 @@ @unittest.skipUnless(hasattr(os, 'execv'), "need os.execv()") +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class ExecTests(unittest.TestCase): @unittest.skipIf(USING_LINUXTHREADS, "avoid triggering a linuxthreads bug: see issue #4970") @@ -2294,6 +2298,7 @@ self.assertRaises(OverflowError, os.setreuid, 0, self.UID_OVERFLOW) @unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_setreuid_neg1(self): # Needs to accept -1. We run this in a subprocess to avoid # altering the test runner's process state (issue8045). @@ -2302,6 +2307,7 @@ 'import os,sys;os.setreuid(-1,-1);sys.exit(0)']) @unittest.skipUnless(hasattr(os, 'setregid'), 'test needs os.setregid()') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_setregid(self): if os.getuid() != 0 and not HAVE_WHEEL_GROUP: self.assertRaises(OSError, os.setregid, 0, 0) @@ -2311,6 +2317,7 @@ self.assertRaises(OverflowError, os.setregid, 0, self.GID_OVERFLOW) @unittest.skipUnless(hasattr(os, 'setregid'), 'test needs os.setregid()') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_setregid_neg1(self): # Needs to accept -1. We run this in a subprocess to avoid # altering the test runner's process state (issue8045). @@ -2983,6 +2990,7 @@ class PidTests(unittest.TestCase): @unittest.skipUnless(hasattr(os, 'getppid'), "test needs os.getppid") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_getppid(self): p = subprocess.Popen([sys.executable, '-c', 'import os; print(os.getppid())'], @@ -3009,6 +3017,7 @@ self.assertEqual(os.waitstatus_to_exitcode(status), exitcode) self.assertEqual(pid2, pid) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_waitpid(self): self.check_waitpid(code='pass', exitcode=0) @@ -3678,6 +3687,7 @@ self.assertGreaterEqual(size.columns, 0) self.assertGreaterEqual(size.lines, 0) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_stty_match(self): """Check if stty returns the same results diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py index 77f6808448..94b876c912 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -13,7 +13,7 @@ from contextlib import ExitStack, redirect_stdout from io import StringIO -from test.support import os_helper +from test.support import os_helper, has_subprocess_support # This little helper class is essential for testing pdb under doctest. from test.test_doctest import _FakeInput from unittest.mock import patch @@ -1535,6 +1535,7 @@ def tearDown(self): os_helper.unlink(os_helper.TESTFN) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def _run_pdb(self, pdb_args, commands): self.addCleanup(os_helper.rmtree, '__pycache__') cmd = [sys.executable, '-m', 'pdb'] + pdb_args @@ -1627,6 +1628,7 @@ ('bÅ“r', 1), ) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_issue7964(self): # open the file as binary so we can force \r\n newline with open(os_helper.TESTFN, 'wb') as f: diff --git a/Lib/test/test_pipes.py b/Lib/test/test_pipes.py index 6335e7cbe0..9f424e67a3 100644 --- a/Lib/test/test_pipes.py +++ b/Lib/test/test_pipes.py @@ -1,15 +1,19 @@ import pipes import os import string +import sys import unittest import shutil -from test.support import reap_children, unix_shell +from test.support import reap_children, unix_shell, is_apple_mobile from test.support.os_helper import TESTFN, unlink if os.name != 'posix': raise unittest.SkipTest('pipes module only works on posix') +if is_apple_mobile: + raise unittest.SkipTest('pipes tests cannot run on %s' % sys.platform) + if not (unix_shell and os.path.exists(unix_shell)): raise unittest.SkipTest('pipes module requires a shell') diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py index 2d41166644..d14da0312b 100644 --- a/Lib/test/test_platform.py +++ b/Lib/test/test_platform.py @@ -8,7 +8,7 @@ from unittest import mock from test import support -from test.support import os_helper +from test.support import os_helper, has_subprocess_support, is_apple_mobile FEDORA_OS_RELEASE = """\ NAME=Fedora @@ -79,6 +79,7 @@ res = platform.architecture() @os_helper.skip_unless_symlink + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_architecture_via_symlink(self): # issue3762 with support.PythonSymlink() as py: cmd = "-c", "import platform; print(platform.architecture())" @@ -321,7 +322,7 @@ def test_mac_ver(self): res = platform.mac_ver() - if platform.uname().system == 'Darwin': + if platform.uname().system == 'Darwin' and not is_apple_mobile: # We are on a macOS system, check that the right version # information is returned output = subprocess.check_output(['sw_vers'], text=True) @@ -353,6 +354,10 @@ else: self.assertEqual(res[2], 'PowerPC') + @unittest.skipUnless(is_apple_mobile, "iOS/tvOS/watchOS only test") + def test_ios_ver(self): + res = platform.ios_ver() + @unittest.skipUnless(sys.platform == 'darwin', "OSX only test") def test_mac_ver_with_fork(self): diff --git a/Lib/test/test_poll.py b/Lib/test/test_poll.py index 82bbb3af9f..485d7602a0 100644 --- a/Lib/test/test_poll.py +++ b/Lib/test/test_poll.py @@ -8,6 +8,7 @@ import time import unittest from test.support import cpython_only +from test.support import has_subprocess_support from test.support import threading_helper from test.support.os_helper import TESTFN @@ -120,6 +121,7 @@ # Another test case for poll(). This is copied from the test case for # select(), modified to use poll() instead. + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_poll2(self): cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done' proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, diff --git a/Lib/test/test_popen.py b/Lib/test/test_popen.py index cac2f6177f..467c1dbb13 100644 --- a/Lib/test/test_popen.py +++ b/Lib/test/test_popen.py @@ -5,6 +5,7 @@ import unittest from test import support +from test.support import has_subprocess_support import os, sys if not hasattr(os, 'popen'): @@ -19,6 +20,8 @@ if ' ' in python: python = '"' + python + '"' # quote embedded space for cmdline + +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class PopenTest(unittest.TestCase): def _do_test_commandline(self, cmdline, expected): diff --git a/Lib/test/test_posix.py b/Lib/test/test_posix.py index 19bc885315..b17a472988 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -2,6 +2,8 @@ from test import support from test.support import import_helper +from test.support import has_subprocess_support +from test.support import is_apple_mobile from test.support import os_helper from test.support import warnings_helper from test.support.script_helper import assert_python_ok @@ -64,15 +66,22 @@ # no side-effects which we need to cleanup (e.g., fork, wait, abort) NO_ARG_FUNCTIONS = [ "ctermid", "getcwd", "getcwdb", "uname", "times", "getloadavg", - "getegid", "geteuid", "getgid", "getgroups", + "getegid", "geteuid", "getgid", "getpid", "getpgrp", "getppid", "getuid", "sync", ] + # getgroups can't be invoked on iOS/tvOS/watchOS. + if is_apple_mobile: + NO_ARG_FUNCTIONS.append("getgroups") + for name in NO_ARG_FUNCTIONS: posix_func = getattr(posix, name, None) if posix_func is not None: - posix_func() - self.assertRaises(TypeError, posix_func, 1) + try: + posix_func() + self.assertRaises(TypeError, posix_func, 1) + except Exception as e: + self.fail('Problem invoking %s: %s' % (name, e)) @unittest.skipUnless(hasattr(posix, 'getresuid'), 'test needs posix.getresuid()') @@ -766,9 +775,10 @@ check_stat(uid, gid) self.assertRaises(OSError, chown_func, first_param, 0, -1) check_stat(uid, gid) - if 0 not in os.getgroups(): - self.assertRaises(OSError, chown_func, first_param, -1, 0) - check_stat(uid, gid) + if hasattr(os, 'getgroups') and not is_apple_mobile: + if 0 not in os.getgroups(): + self.assertRaises(OSError, chown_func, first_param, -1, 0) + check_stat(uid, gid) # test illegal types for t in str, float: self.assertRaises(TypeError, chown_func, first_param, t(uid), gid) @@ -1056,6 +1066,7 @@ @unittest.skipUnless(hasattr(os, 'getegid'), "test needs os.getegid()") @unittest.skipUnless(hasattr(os, 'popen'), "test needs os.popen()") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_getgroups(self): with os.popen('id -G 2>/dev/null') as idg: groups = idg.read().strip() @@ -1114,7 +1125,7 @@ self.assertIsInstance(hi, int) self.assertGreaterEqual(hi, lo) # OSX evidently just returns 15 without checking the argument. - if sys.platform != "darwin": + if sys.platform != 'darwin' and not is_apple_mobile: self.assertRaises(OSError, posix.sched_get_priority_min, -23) self.assertRaises(OSError, posix.sched_get_priority_max, -23) diff --git a/Lib/test/test_pty.py b/Lib/test/test_pty.py index 0243b8a30b..217534eaf1 100644 --- a/Lib/test/test_pty.py +++ b/Lib/test/test_pty.py @@ -1,4 +1,4 @@ -from test.support import verbose, reap_children +from test.support import verbose, reap_children, has_subprocess_support from test.support.import_helper import import_module # Skip these tests if termios is not available @@ -210,6 +210,7 @@ s2 = _readline(master_fd) self.assertEqual(b'For my pet fish, Eric.\n', normalize_output(s2)) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_fork(self): debug("calling pty.fork()") pid, master_fd = pty.fork() diff --git a/Lib/test/test_quopri.py b/Lib/test/test_quopri.py index 715544c8a9..0641b2fcef 100644 --- a/Lib/test/test_quopri.py +++ b/Lib/test/test_quopri.py @@ -1,4 +1,5 @@ import unittest +from test.support import has_subprocess_support import sys, io, subprocess import quopri @@ -180,6 +181,7 @@ for p, e in self.HSTRINGS: self.assertEqual(quopri.decodestring(e, header=True), p) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_scriptencode(self): (p, e) = self.STRINGS[-1] process = subprocess.Popen([sys.executable, "-mquopri"], @@ -196,6 +198,7 @@ self.assertEqual(cout[i], e[i]) self.assertEqual(cout, e) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_scriptdecode(self): (p, e) = self.STRINGS[-1] process = subprocess.Popen([sys.executable, "-mquopri", "-d"], diff --git a/Lib/test/test_script_helper.py b/Lib/test/test_script_helper.py index 4ade2cbc0d..63175fcc13 100644 --- a/Lib/test/test_script_helper.py +++ b/Lib/test/test_script_helper.py @@ -3,7 +3,7 @@ import subprocess import sys import os -from test.support import script_helper +from test.support import script_helper, has_subprocess_support import unittest from unittest import mock @@ -35,6 +35,7 @@ self.assertIn('import sys; sys.exit(0)', error_msg, msg='unexpected command line.') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') @mock.patch('subprocess.Popen') def test_assert_python_isolated_when_env_not_required(self, mock_popen): with mock.patch.object(script_helper, @@ -53,6 +54,7 @@ self.assertIn('-I', popen_command) self.assertNotIn('-E', popen_command) # -I overrides this + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') @mock.patch('subprocess.Popen') def test_assert_python_not_isolated_when_env_is_required(self, mock_popen): """Ensure that -I is not passed when the environment is required.""" @@ -82,6 +84,7 @@ # Reset the private cached state. script_helper.__dict__['__cached_interp_requires_environment'] = None + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') @mock.patch('subprocess.check_call') def test_interpreter_requires_environment_true(self, mock_check_call): with mock.patch.dict(os.environ): @@ -91,6 +94,7 @@ self.assertTrue(script_helper.interpreter_requires_environment()) self.assertEqual(1, mock_check_call.call_count) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') @mock.patch('subprocess.check_call') def test_interpreter_requires_environment_false(self, mock_check_call): with mock.patch.dict(os.environ): @@ -100,6 +104,7 @@ self.assertFalse(script_helper.interpreter_requires_environment()) self.assertEqual(1, mock_check_call.call_count) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') @mock.patch('subprocess.check_call') def test_interpreter_requires_environment_details(self, mock_check_call): with mock.patch.dict(os.environ): diff --git a/Lib/test/test_select.py b/Lib/test/test_select.py index cf32cf2f6a..e28b80b766 100644 --- a/Lib/test/test_select.py +++ b/Lib/test/test_select.py @@ -6,6 +6,7 @@ import textwrap import unittest from test import support +from test.support import has_subprocess_support @unittest.skipIf((sys.platform[:3]=='win'), "can't easily test on this system") @@ -47,6 +48,7 @@ self.assertIsNot(w, x) @unittest.skipUnless(hasattr(os, 'popen'), "need os.popen()") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_select(self): code = textwrap.dedent(''' import time diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index 72fb3afcbe..36b15af561 100644 --- a/Lib/test/test_shutil.py +++ b/Lib/test/test_shutil.py @@ -30,7 +30,7 @@ posix = None from test import support -from test.support import os_helper +from test.support import os_helper, has_subprocess_support from test.support.os_helper import TESTFN, FakePath from test.support import warnings_helper @@ -1777,6 +1777,7 @@ check_chown(dirname, uid, gid) +@unittest.skipIf(support.has_subprocess_support, 'Test requires support for subprocesses.') class TestWhich(BaseTest, unittest.TestCase): def setUp(self): @@ -2644,6 +2645,7 @@ self.assertGreaterEqual(size.lines, 0) @unittest.skipUnless(os.isatty(sys.__stdout__.fileno()), "not on tty") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') @unittest.skipUnless(hasattr(os, 'get_terminal_size'), 'need os.get_terminal_size()') def test_stty_match(self): diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py index 93349ed8bb..5d207fa720 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -7,6 +7,7 @@ import unittest import test.support from test import support +from test.support import has_subprocess_support from test.support import os_helper from test.support import socket_helper from test.support import captured_stderr @@ -210,6 +211,7 @@ @unittest.skipUnless(site.ENABLE_USER_SITE, "requires access to PEP 370 " "user-site (site.ENABLE_USER_SITE)") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_s_option(self): # (ncoghlan) Change this to use script_helper... usersite = os.path.normpath(site.USER_SITE) @@ -495,6 +497,7 @@ class StartupImportTests(unittest.TestCase): + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_startup_imports(self): # Get sys.path in isolated mode (python3 -I) popen = subprocess.Popen([sys.executable, '-I', '-c', diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 211fd8c02d..bc5e91e4f2 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -1,5 +1,6 @@ import unittest from test import support +from test.support import is_apple_mobile from test.support import os_helper from test.support import socket_helper from test.support import threading_helper @@ -1030,6 +1031,12 @@ with self.assertRaises(OSError, msg=explanation): socket.gethostbyaddr(addr) + @unittest.skipUnless(socket.has_ipv6, "test needs IPv6 support") + def test_host_resolution_ipv6(self): + for addr in ['::1q', '::1::2', '1:1:1:1:1:1:1:1:1']: + self.assertRaises(OSError, socket.gethostbyname, addr) + self.assertRaises(OSError, socket.gethostbyaddr, addr) + @unittest.skipUnless(hasattr(socket, 'sethostname'), "test needs socket.sethostname()") @unittest.skipUnless(hasattr(socket, 'gethostname'), "test needs socket.gethostname()") def test_sethostname(self): @@ -1142,7 +1149,7 @@ # I've ordered this by protocols that have both a tcp and udp # protocol, at least for modern Linuxes. if (sys.platform.startswith(('freebsd', 'netbsd', 'gnukfreebsd')) - or sys.platform in ('linux', 'darwin')): + or sys.platform in ('linux', 'darwin') or is_apple_mobile): # avoid the 'echo' service on this platform, as there is an # assumption breaking non-standard port/protocol entry services = ('daytime', 'qotd', 'domain') @@ -3513,7 +3520,7 @@ def _testFDPassCMSG_LEN(self): self.createAndSendFDs(1) - @unittest.skipIf(sys.platform == "darwin", "skipping, see issue #12958") + @unittest.skipIf(sys.platform == "darwin" or is_apple_mobile, "skipping, see issue #12958") @unittest.skipIf(AIX, "skipping, see issue #22397") @requireAttrs(socket, "CMSG_SPACE") def testFDPassSeparate(self): @@ -3524,7 +3531,7 @@ maxcmsgs=2) @testFDPassSeparate.client_skip - @unittest.skipIf(sys.platform == "darwin", "skipping, see issue #12958") + @unittest.skipIf(sys.platform == "darwin" or is_apple_mobile, "skipping, see issue #12958") @unittest.skipIf(AIX, "skipping, see issue #22397") def _testFDPassSeparate(self): fd0, fd1 = self.newFDs(2) @@ -3537,7 +3544,7 @@ array.array("i", [fd1]))]), len(MSG)) - @unittest.skipIf(sys.platform == "darwin", "skipping, see issue #12958") + @unittest.skipIf(sys.platform == "darwin" or is_apple_mobile, "skipping, see issue #12958") @unittest.skipIf(AIX, "skipping, see issue #22397") @requireAttrs(socket, "CMSG_SPACE") def testFDPassSeparateMinSpace(self): @@ -3551,7 +3558,7 @@ maxcmsgs=2, ignoreflags=socket.MSG_CTRUNC) @testFDPassSeparateMinSpace.client_skip - @unittest.skipIf(sys.platform == "darwin", "skipping, see issue #12958") + @unittest.skipIf(sys.platform == "darwin" or is_apple_mobile, "skipping, see issue #12958") @unittest.skipIf(AIX, "skipping, see issue #22397") def _testFDPassSeparateMinSpace(self): fd0, fd1 = self.newFDs(2) @@ -3575,7 +3582,7 @@ nbytes = self.sendmsgToServer([msg]) self.assertEqual(nbytes, len(msg)) - @unittest.skipIf(sys.platform == "darwin", "see issue #24725") + @unittest.skipIf(sys.platform == "darwin" or is_apple_mobile, "skipping, see issue #12958") def testFDPassEmpty(self): # Try to pass an empty FD array. Can receive either no array # or an empty array. @@ -4395,28 +4402,33 @@ pass @requireAttrs(socket.socket, "sendmsg") +@unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) @requireAttrs(socket, "AF_UNIX") class SendmsgUnixStreamTest(SendmsgStreamTests, SendrecvmsgUnixStreamTestBase): pass @requireAttrs(socket.socket, "recvmsg") +@unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) @requireAttrs(socket, "AF_UNIX") class RecvmsgUnixStreamTest(RecvmsgTests, RecvmsgGenericStreamTests, SendrecvmsgUnixStreamTestBase): pass @requireAttrs(socket.socket, "recvmsg_into") +@unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) @requireAttrs(socket, "AF_UNIX") class RecvmsgIntoUnixStreamTest(RecvmsgIntoTests, RecvmsgGenericStreamTests, SendrecvmsgUnixStreamTestBase): pass @requireAttrs(socket.socket, "sendmsg", "recvmsg") +@unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) @requireAttrs(socket, "AF_UNIX", "SOL_SOCKET", "SCM_RIGHTS") class RecvmsgSCMRightsStreamTest(SCMRightsTest, SendrecvmsgUnixStreamTestBase): pass @requireAttrs(socket.socket, "sendmsg", "recvmsg_into") +@unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) @requireAttrs(socket, "AF_UNIX", "SOL_SOCKET", "SCM_RIGHTS") class RecvmsgIntoSCMRightsStreamTest(RecvmsgIntoMixin, SCMRightsTest, SendrecvmsgUnixStreamTestBase): diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py index 211321f376..07f45e6749 100644 --- a/Lib/test/test_socketserver.py +++ b/Lib/test/test_socketserver.py @@ -8,13 +8,14 @@ import select import signal import socket +import sys import tempfile import threading import unittest import socketserver import test.support -from test.support import reap_children, verbose +from test.support import reap_children, verbose, has_subprocess_support, is_apple_mobile from test.support import os_helper from test.support import socket_helper from test.support import threading_helper @@ -28,7 +29,7 @@ HAVE_UNIX_SOCKETS = hasattr(socket, "AF_UNIX") requires_unix_sockets = unittest.skipUnless(HAVE_UNIX_SOCKETS, 'requires Unix sockets') -HAVE_FORKING = hasattr(os, "fork") +HAVE_FORKING = hasattr(os, "fork") and has_subprocess_support requires_forking = unittest.skipUnless(HAVE_FORKING, 'requires forking') def signal_alarm(n): @@ -196,12 +197,14 @@ self.stream_examine) @requires_unix_sockets + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_UnixStreamServer(self): self.run_server(socketserver.UnixStreamServer, socketserver.StreamRequestHandler, self.stream_examine) @requires_unix_sockets + @unittest.skipIf(is_apple_mobile, "%s doesn't fully support UNIX sockets." % sys.platform) def test_ThreadingUnixStreamServer(self): self.run_server(socketserver.ThreadingUnixStreamServer, socketserver.StreamRequestHandler, diff --git a/Lib/test/test_source_encoding.py b/Lib/test/test_source_encoding.py index 219c25cd2f..3b6ead7f44 100644 --- a/Lib/test/test_source_encoding.py +++ b/Lib/test/test_source_encoding.py @@ -1,7 +1,7 @@ # -*- coding: koi8-r -*- import unittest -from test.support import script_helper, captured_stdout +from test.support import script_helper, captured_stdout, has_subprocess_support from test.support.os_helper import TESTFN, unlink, rmtree from test.support.import_helper import unload import importlib @@ -14,11 +14,11 @@ def test_pep263(self): self.assertEqual( - "ðÉÔÏÎ".encode("utf-8"), + "�����".encode("utf-8"), b'\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd' ) self.assertEqual( - "\ð".encode("utf-8"), + "\�".encode("utf-8"), b'\\\xd0\x9f' ) @@ -65,6 +65,7 @@ # two bytes in common with the UTF-8 BOM self.assertRaises(SyntaxError, eval, b'\xef\xbb\x20') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_20731(self): sub = subprocess.Popen([sys.executable, os.path.join(os.path.dirname(__file__), diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index 139ef41e57..ff90a3a1c9 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -25,6 +25,7 @@ import textwrap import json import pathlib +from test.support import has_subprocess_support from test.support.os_helper import FakePath try: @@ -51,6 +52,9 @@ mswindows = (sys.platform == "win32") +if not has_subprocess_support: + raise unittest.SkipTest('Test requires support for subprocesses.') + # # Depends on the following external programs: Python # diff --git a/Lib/test/test_sundry.py b/Lib/test/test_sundry.py index 007d68817c..b49f38fe2d 100644 --- a/Lib/test/test_sundry.py +++ b/Lib/test/test_sundry.py @@ -22,7 +22,8 @@ import distutils.bcppcompiler import distutils.ccompiler - import distutils.cygwinccompiler + if sys.platform.startswith('win'): + import distutils.cygwinccompiler import distutils.filelist import distutils.text_file import distutils.unixccompiler diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 1094d40849..ebeee34cfa 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -10,6 +10,7 @@ import sysconfig import test.support from test import support +from test.support import has_subprocess_support from test.support import os_helper from test.support.script_helper import assert_python_ok, assert_python_failure from test.support import threading_helper @@ -633,6 +634,7 @@ def test_clear_type_cache(self): sys._clear_type_cache() + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_ioencoding(self): env = dict(os.environ) @@ -680,6 +682,7 @@ 'requires OS support of non-ASCII encodings') @unittest.skipUnless(sys.getfilesystemencoding() == locale.getpreferredencoding(False), 'requires FS encoding to match locale') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_ioencoding_nonascii(self): env = dict(os.environ) @@ -692,6 +695,7 @@ @unittest.skipIf(sys.base_prefix != sys.prefix, 'Test is not venv-compatible') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_executable(self): # sys.executable should be absolute self.assertEqual(os.path.abspath(sys.executable), sys.executable) @@ -726,6 +730,7 @@ expected = None self.check_fsencoding(fs_encoding, expected) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def c_locale_get_error_handler(self, locale, isolated=False, encoding=None): # Force the POSIX locale env = os.environ.copy() diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 5ee9839c04..204a5c8a0f 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -5,7 +5,7 @@ import shutil from copy import copy -from test.support import (captured_stdout, PythonSymlink) +from test.support import (captured_stdout, PythonSymlink, has_subprocess_support) from test.support.import_helper import import_module from test.support.os_helper import (TESTFN, unlink, skip_unless_symlink, change_cwd) @@ -263,12 +263,13 @@ self.assertTrue(os.path.isfile(config_h), config_h) def test_get_scheme_names(self): - wanted = ['nt', 'posix_home', 'posix_prefix'] + wanted = ['nt', 'posix_home', 'posix_prefix', 'tvos', 'watchos'] if HAS_USER_BASE: wanted.extend(['nt_user', 'osx_framework_user', 'posix_user']) self.assertEqual(get_scheme_names(), tuple(sorted(wanted))) @skip_unless_symlink + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_symlink(self): # Issue 7880 with PythonSymlink() as py: cmd = "-c", "import sysconfig; print(sysconfig.get_platform())" diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index 1946b043d0..c3c21762cc 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -15,13 +15,14 @@ import unittest from test import support +from test_support import has_subprocess_support from test.support import os_helper from test.support import script_helper from test.support import warnings_helper has_textmode = (tempfile._text_openflags != tempfile._bin_openflags) -has_spawnl = hasattr(os, 'spawnl') +has_spawnl = hasattr(os, 'spawnl') and has_subprocess_support # TEST_FILES may need to be tweaked for systems depending on the maximum # number of files that can be opened at one time (see ulimit -n) diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index c54806e594..fc7cf8e1b2 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -3,7 +3,7 @@ """ import test.support -from test.support import threading_helper +from test.support import threading_helper, is_apple_mobile from test.support import verbose, cpython_only, os_helper from test.support.import_helper import import_module from test.support.script_helper import assert_python_ok, assert_python_failure @@ -1142,6 +1142,7 @@ os.set_blocking(r, False) return (r, w) + @unittest.skipIf(is_apple_mobile, "%s doesn't have os.pipe" % sys.platform) def test_threads_join(self): # Non-daemon threads should be joined at subinterpreter shutdown # (issue #18808) @@ -1170,6 +1171,7 @@ # The thread was joined properly. self.assertEqual(os.read(r, 1), b"x") + @unittest.skipIf(is_apple_mobile, "%s doesn't have os.pipe" % sys.platform) def test_threads_join_2(self): # Same as above, but a delay gets introduced after the thread's # Python code returned but before the thread state is deleted. diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 18cd4aba24..d8c782de31 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -8,7 +8,7 @@ import unittest import re from test import support -from test.support import Error, captured_output, cpython_only, ALWAYS_EQ +from test.support import Error, captured_output, cpython_only, ALWAYS_EQ, has_subprocess_support from test.support.os_helper import TESTFN, unlink from test.support.script_helper import assert_python_ok import textwrap @@ -130,6 +130,7 @@ str_name = '.'.join([X.__module__, X.__qualname__]) self.assertEqual(err[0], "%s: %s\n" % (str_name, str_value)) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_encoded_file(self): # Test that tracebacks are correctly printed for encoded source files: # - correct line number (Issue2384) diff --git a/Lib/test/test_unicodedata.py b/Lib/test/test_unicodedata.py index ad9d3d6afa..a99206ba46 100644 --- a/Lib/test/test_unicodedata.py +++ b/Lib/test/test_unicodedata.py @@ -13,7 +13,7 @@ import unittest from test.support import (open_urlresource, requires_resource, script_helper, cpython_only, check_disallow_instantiation, - ResourceDenied) + has_subprocess_support, ResourceDenied) class UnicodeMethodsTest(unittest.TestCase): @@ -239,6 +239,7 @@ # Ensure that the type disallows instantiation (bpo-43916) check_disallow_instantiation(self, unicodedata.UCD) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_failed_import_during_compiling(self): # Issue 4367 # Decoding \N escapes requires the unicodedata module. If it can't be diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py index a7e7c9f0b9..cbe41898a0 100644 --- a/Lib/test/test_urllib2net.py +++ b/Lib/test/test_urllib2net.py @@ -11,6 +11,10 @@ import urllib.error import urllib.request import sys +try: + import ssl +except ImportError: + ssl = None support.requires("network") @@ -194,6 +198,7 @@ ## self._test_urls(urls, self._extra_handlers()+[bauth, dauth]) + @unittest.skipIf(ssl is None, 'test requires ssl module') def test_urlwithfrag(self): urlwith_frag = "http://www.pythontest.net/index.html#frag" with socket_helper.transient_internet(urlwith_frag): @@ -202,6 +207,7 @@ self.assertEqual(res.geturl(), "http://www.pythontest.net/index.html#frag") + @unittest.skipIf(ssl is None, 'test requires ssl module') def test_redirect_url_withfrag(self): redirect_url_with_frag = "http://www.pythontest.net/redir/with_frag/" with socket_helper.transient_internet(redirect_url_with_frag): diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index d6a8333427..a1ea672802 100755 --- a/Lib/test/test_uuid.py +++ b/Lib/test/test_uuid.py @@ -1,6 +1,6 @@ import unittest from test import support -from test.support import import_helper +from test.support import import_helper, has_subprocess_support import builtins import contextlib import copy @@ -640,6 +640,7 @@ equal(str(u), v) @unittest.skipUnless(hasattr(os, 'fork'), 'need os.fork') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def testIssue8621(self): # On at least some versions of OSX self.uuid.uuid4 generates # the same sequence of UUIDs in the parent and any @@ -825,6 +826,7 @@ @unittest.skipUnless(_uuid._ifconfig_getnode in _uuid._GETTERS, "ifconfig is not used for introspection on this platform") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_ifconfig_getnode(self): node = self.uuid._ifconfig_getnode() self.check_node(node, 'ifconfig') @@ -837,6 +839,7 @@ @unittest.skipUnless(_uuid._arp_getnode in _uuid._GETTERS, "arp is not used for introspection on this platform") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_arp_getnode(self): node = self.uuid._arp_getnode() self.check_node(node, 'arp') @@ -849,6 +852,7 @@ @unittest.skipUnless(_uuid._netstat_getnode in _uuid._GETTERS, "netstat is not used for introspection on this platform") + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_netstat_getnode(self): node = self.uuid._netstat_getnode() self.check_node(node, 'netstat') diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index fea986b9d8..a66afd3da5 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -16,7 +16,7 @@ import sys import tempfile from test.support import (captured_stdout, captured_stderr, requires_zlib, - skip_if_broken_multiprocessing_synchronize) + skip_if_broken_multiprocessing_synchronize, has_subprocess_support) from test.support.os_helper import (can_symlink, EnvironmentVarGuard, rmtree) import unittest import venv @@ -179,6 +179,7 @@ builder.upgrade_dependencies(fake_context) @requireVenvCreate + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_prefixes(self): """ Test that the prefix values are as expected. @@ -316,6 +317,7 @@ # point to the venv being used to run the test, and we lose the link # to the source build - so Python can't initialise properly. @requireVenvCreate + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_executable(self): """ Test that the sys.executable value is as expected. @@ -329,6 +331,7 @@ self.assertEqual(out.strip(), envpy.encode()) @unittest.skipUnless(can_symlink(), 'Needs symlinks') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_executable_symlinks(self): """ Test that the sys.executable value is as expected. @@ -414,6 +417,7 @@ @requireVenvCreate class EnsurePipTest(BaseTest): """Test venv module installation of pip.""" + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def assert_pip_not_installed(self): envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe) @@ -557,6 +561,7 @@ # Issue #26610: pip/pep425tags.py requires ctypes @unittest.skipUnless(ctypes, 'pip requires ctypes') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') @requires_zlib() def test_with_pip(self): self.do_test_with_pip(False) diff --git a/Lib/test/test_webbrowser.py b/Lib/test/test_webbrowser.py index 673cc995d3..bd8a48e694 100644 --- a/Lib/test/test_webbrowser.py +++ b/Lib/test/test_webbrowser.py @@ -6,9 +6,14 @@ from unittest import mock from test import support from test.support import import_helper +from test.support import is_apple_mobile from test.support import os_helper +if is_apple_mobile: + raise unittest.SkipTest("Can't run webbrowser tests on %s" % sys.platform) + + URL = 'http://www.example.com' CMD_NAME = 'test' diff --git a/Lib/test/test_zipfile.py b/Lib/test/test_zipfile.py index 3495fc6548..e06704e59f 100644 --- a/Lib/test/test_zipfile.py +++ b/Lib/test/test_zipfile.py @@ -1163,6 +1163,7 @@ self.skipTest('requires write access to the installed location') unlink(filename) + @unittest.skipIf(sys.dont_write_bytecode, "Test requires ability to write bytecode") def test_write_pyfile(self): self.requiresWriteAccess(os.path.dirname(__file__)) with TemporaryFile() as t, zipfile.PyZipFile(t, "w") as zipfp: @@ -1207,6 +1208,7 @@ self.assertCompiledIn('email/__init__.py', names) self.assertCompiledIn('email/mime/text.py', names) + @unittest.skipIf(sys.dont_write_bytecode, "Test requires ability to write bytecode") def test_write_filtered_python_package(self): import test packagedir = os.path.dirname(test.__file__) diff --git a/Lib/unittest/test/test_runner.py b/Lib/unittest/test/test_runner.py index 0082d394dc..862ddb849d 100644 --- a/Lib/unittest/test/test_runner.py +++ b/Lib/unittest/test/test_runner.py @@ -9,6 +9,7 @@ from unittest.test.support import (LoggingResult, ResultWithNoStartTestRunStopTestRun) +from test.support import has_subprocess_support def resultFactory(*_): @@ -1176,6 +1177,7 @@ expectedresult = (runner.stream, DESCRIPTIONS, VERBOSITY) self.assertEqual(runner._makeResult(), expectedresult) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_warnings(self): """ Check that warnings argument of TextTestRunner correctly affects the diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py index ec3cece48c..8a79db0722 100755 --- a/Lib/webbrowser.py +++ b/Lib/webbrowser.py @@ -594,6 +594,57 @@ # what to do if _tryorder is now empty? +# +# Platform support for iOS +# +if sys.platform == 'ios': + class MobileSafari(BaseBrowser): + def open(self, url, new=0, autoraise=True): + # This code is the equivalent of: + # NSURL *nsurl = [NSURL URLWithString:url]; + # [[UIApplication sharedApplication] openURL:nsurl]; + from ctypes import cdll, c_void_p, c_char_p, c_uint32 + from ctypes import util + objc = cdll.LoadLibrary(util.find_library(b'objc')) + cf = cdll.LoadLibrary(util.find_library(b'CoreFoundation')) + objc.objc_getClass.restype = c_void_p + objc.objc_getClass.argtypes = [c_char_p] + objc.sel_registerName.restype = c_void_p + objc.sel_registerName.argtypes = [c_char_p] + cf.CFStringCreateWithCString.restype = c_void_p + cf.CFStringCreateWithCString.argtypes = [c_void_p, c_char_p, c_uint32] + + # Get an NSString describing the URL + kCFStringEncodingUTF8 = 0x08000100 + url = c_void_p(cf.CFStringCreateWithCString(None, url.encode('utf-8'), kCFStringEncodingUTF8)) + autorelease = c_void_p(objc.sel_registerName(b'autorelease')) + objc.objc_msgSend.argtypes = [c_void_p, c_void_p] + objc.objc_msgSend.restype = c_void_p + objc.objc_msgSend(url, autorelease) + + # Get an NSURL object representing the URL + NSURL = c_void_p(objc.objc_getClass(b'NSURL')) + urlWithString_ = c_void_p(objc.sel_registerName(b'URLWithString:')) + objc.objc_msgSend.restype = c_void_p + objc.objc_msgSend.argtypes = [c_void_p, c_void_p, c_void_p] + nsurl = c_void_p(objc.objc_msgSend(NSURL, urlWithString_, url)) + + # Get the shared UIApplication instance + UIApplication = c_void_p(objc.objc_getClass(b'UIApplication')) + sharedApplication = c_void_p(objc.sel_registerName(b'sharedApplication')) + objc.objc_msgSend.argtypes = [c_void_p, c_void_p] + objc.objc_msgSend.restype = c_void_p + shared_app = c_void_p(objc.objc_msgSend(UIApplication, sharedApplication)) + + # Open the URL on the shared application + openURL_ = c_void_p(objc.sel_registerName(b'openURL:')) + objc.objc_msgSend.argtypes = [c_void_p, c_void_p, c_void_p] + objc.objc_msgSend.restype = None + objc.objc_msgSend(shared_app, openURL_, nsurl) + + return True + + register("mobilesafari", None, MobileSafari(), preferred=True) # # Platform support for Windows diff --git a/Makefile.pre.in b/Makefile.pre.in index 51c31b94ae..27742a4cdd 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -307,6 +307,8 @@ ########################################################################## LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@ +LIBFFI_LIBDIR= @LIBFFI_LIBDIR@ +LIBFFI_LIB=@LIBFFI_LIB@ ########################################################################## # Parser diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c index b852ad71d7..631ca5ebb8 100644 --- a/Modules/_posixsubprocess.c +++ b/Modules/_posixsubprocess.c @@ -599,11 +599,15 @@ saved_errno = 0; for (i = 0; exec_array[i] != NULL; ++i) { const char *executable = exec_array[i]; +#if defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) || defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) + errno = ENOTSUP; +#else if (envp) { execve(executable, argv, envp); } else { execv(executable, argv); } +#endif if (errno != ENOENT && errno != ENOTDIR && saved_errno == 0) { saved_errno = errno; } @@ -690,7 +694,11 @@ } else #endif { +#if defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) || defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) + pid = -1; +#else pid = fork(); +#endif } if (pid != 0) { diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c index 8d2221cfd8..2bd3f87417 100644 --- a/Modules/faulthandler.c +++ b/Modules/faulthandler.c @@ -1,3 +1,7 @@ +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + #include "Python.h" #include "pycore_initconfig.h" // _PyStatus_ERR #include "pycore_pyerrors.h" // _Py_DumpExtensionModules @@ -17,6 +21,11 @@ # include #endif +// tvOS and watchOS don't provide a number of important POSIX functions. +#if defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) || defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) +# undef HAVE_SIGALTSTACK +#endif /* TVOS || WATCHOS */ + /* Using an alternative stack requires sigaltstack() and sigaction() SA_ONSTACK */ #if defined(HAVE_SIGALTSTACK) && defined(HAVE_SIGACTION) diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index f31ca83277..9390a265a7 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -66,6 +66,10 @@ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=76bc7002685dd942]*/ +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + /* sin(pi*x), giving accurate results for all finite x (especially x integral or close to an integer). This is here for use in the diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index c0421a94c1..4b98c4ff25 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -66,6 +66,8 @@ */ #if defined(__APPLE__) +#include "TargetConditionals.h" + #if defined(__has_builtin) #if __has_builtin(__builtin_available) #define HAVE_BUILTIN_AVAILABLE 1 @@ -189,7 +191,6 @@ disguised Unix interface). Refer to the library manual and\n\ corresponding Unix manual entries for more information on calls."); - #ifdef HAVE_SYS_UIO_H # include #endif @@ -346,6 +347,26 @@ # endif /* _MSC_VER */ #endif /* ! __WATCOMC__ || __QNX__ */ +// iOS/tvOS/watchOS *define* a number of POSIX functions, but you can't use them +// because iOS isn't a conventional multiprocess environment. +#if TARGET_OS_IPHONE +# undef HAVE_EXECV +# undef HAVE_FORK +# undef HAVE_FORK1 +# undef HAVE_FORKPTY +# undef HAVE_GETGROUPS +# undef HAVE_POSIX_SPAWN +# undef HAVE_POSIX_SPAWNP +# undef HAVE_SCHED_H +# undef HAVE_SENDFILE +# undef HAVE_SETPRIORITY +# undef HAVE_SPAWNV +# undef HAVE_WAIT +# undef HAVE_WAIT3 +# undef HAVE_WAIT4 +# undef HAVE_WAITPID +#endif + _Py_IDENTIFIER(__fspath__); /*[clinic input] @@ -563,27 +584,33 @@ } } } +#endif void PyOS_BeforeFork(void) { +#ifdef HAVE_FORK run_at_forkers(_PyInterpreterState_GET()->before_forkers, 1); _PyImport_AcquireLock(); +#endif } void PyOS_AfterFork_Parent(void) { +#ifdef HAVE_FORK if (_PyImport_ReleaseLock() <= 0) Py_FatalError("failed releasing import lock after fork"); run_at_forkers(_PyInterpreterState_GET()->after_forkers_parent, 0); +#endif } void PyOS_AfterFork_Child(void) { +#ifdef HAVE_FORK PyStatus status; _PyRuntimeState *runtime = &_PyRuntime; @@ -623,8 +650,10 @@ fatal_error: Py_ExitStatusException(status); +#endif } +#ifdef HAVE_FORK static int register_at_forker(PyObject **lst, PyObject *func) { @@ -644,9 +673,7 @@ void PyOS_AfterFork(void) { -#ifdef HAVE_FORK PyOS_AfterFork_Child(); -#endif } @@ -1584,7 +1611,9 @@ */ #include #elif !defined(_MSC_VER) && (!defined(__WATCOMC__) || defined(__QNX__) || defined(__VXWORKS__)) +# if !TARGET_OS_TV && !TARGET_OS_WATCH extern char **environ; +# endif #endif /* !_MSC_VER */ static PyObject * @@ -1600,6 +1629,7 @@ d = PyDict_New(); if (d == NULL) return NULL; +#if !TARGET_OS_TV && !TARGET_OS_WATCH #ifdef MS_WINDOWS /* _wenviron must be initialized in this way if the program is started through main() instead of wmain(). */ @@ -1653,6 +1683,7 @@ Py_DECREF(k); Py_DECREF(v); } +#endif return d; } @@ -4866,6 +4897,9 @@ /*[clinic end generated code: output=290fc437dd4f33a0 input=86a58554ba6094af]*/ { long result; +#if TARGET_OS_IPHONE + result = -1; +#else const char *bytes = PyBytes_AsString(command); if (PySys_Audit("os.system", "(O)", command) < 0) { @@ -4875,6 +4909,7 @@ Py_BEGIN_ALLOW_THREADS result = system(bytes); Py_END_ALLOW_THREADS +#endif return result; } #endif @@ -13630,6 +13665,7 @@ int is_symlink; int need_stat; #endif +#if !TARGET_OS_TV && !TARGET_OS_WATCH #ifdef MS_WINDOWS unsigned long dir_bits; #endif @@ -13690,6 +13726,7 @@ #endif return result; +#endif error: Py_XDECREF(st_mode); diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c index 14d3f9dcb1..5c0ad6db8d 100644 --- a/Modules/pwdmodule.c +++ b/Modules/pwdmodule.c @@ -1,6 +1,10 @@ /* UNIX password file access module */ +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + #include "Python.h" #include "posixmodule.h" @@ -184,6 +188,22 @@ if (nomem == 1) { return PyErr_NoMemory(); } + +// iPhone has a "user" with UID 501, username "mobile"; but the simulator +// doesn't reflect this. Generate a simulated response. +#if TARGET_IPHONE_SIMULATOR + if (uid == 501) { + struct passwd mp; + mp.pw_name = "mobile"; + mp.pw_passwd = "/smx7MYTQIi2M"; + mp.pw_uid = 501; + mp.pw_gid = 501; + mp.pw_gecos = "Mobile User"; + mp.pw_dir = "/var/mobile"; + mp.pw_shell = "/bin/sh"; + return mkpwent(module, &mp); + } +#endif PyObject *uid_obj = _PyLong_FromUid(uid); if (uid_obj == NULL) return NULL; @@ -267,6 +287,22 @@ PyErr_NoMemory(); } else { +// iPhone has a "user" with UID 501, username "mobile"; but the simulator +// doesn't reflect this. Generate a simulated response. +#if TARGET_IPHONE_SIMULATOR + if (strcmp(name, "mobile") == 0) { + struct passwd mp; + mp.pw_name = "mobile"; + mp.pw_passwd = "/smx7MYTQIi2M"; + mp.pw_uid = 501; + mp.pw_gid = 501; + mp.pw_gecos = "Mobile User"; + mp.pw_dir = "/var/mobile"; + mp.pw_shell = "/bin/sh"; + retval = mkpwent(module, &mp); + goto out; + } +#endif PyErr_Format(PyExc_KeyError, "getpwnam(): name not found: %R", name); } diff --git a/Modules/timemodule.c b/Modules/timemodule.c index 4caacc3b64..6abe21545d 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -62,6 +62,11 @@ #define SEC_TO_NS (1000 * 1000 * 1000) +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + + /* Forward declarations */ static int pysleep(_PyTime_t); @@ -250,11 +255,13 @@ if (_PyTime_AsTimespec(t, &tp) == -1) return NULL; +#if !TARGET_OS_IPHONE ret = clock_settime((clockid_t)clk_id, &tp); if (ret != 0) { PyErr_SetFromErrno(PyExc_OSError); return NULL; } +#endif Py_RETURN_NONE; } @@ -283,11 +290,13 @@ return NULL; } +#if !TARGET_OS_IPHONE ret = clock_settime((clockid_t)clk_id, &ts); if (ret != 0) { PyErr_SetFromErrno(PyExc_OSError); return NULL; } +#endif Py_RETURN_NONE; } diff --git a/Python/bootstrap_hash.c b/Python/bootstrap_hash.c index e189ce0d90..5a53988ffa 100644 --- a/Python/bootstrap_hash.c +++ b/Python/bootstrap_hash.c @@ -35,6 +35,10 @@ #endif +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + #ifdef Py_DEBUG int _Py_HashSecret_Initialized = 0; #else @@ -205,6 +209,9 @@ } #elif defined(HAVE_GETENTROPY) +// iOS, tvOS and watchOS have an incomplete definitions of getentropy +// so it is *found* by configure, but doesn't actually exist. +#elif defined(HAVE_GETENTROPY) && !TARGET_OS_IPHONE #define PY_GETENTROPY 1 /* Fill buffer with size pseudo-random bytes generated by getentropy(): diff --git a/Python/dynload_shlib.c b/Python/dynload_shlib.c index 23828898d3..e500b30b3b 100644 --- a/Python/dynload_shlib.c +++ b/Python/dynload_shlib.c @@ -28,6 +28,10 @@ #define LEAD_UNDERSCORE "" #endif +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + /* The .so extension module ABI tag, supplied by the Makefile via Makefile.pre.in and configure. This is used to discriminate between incompatible .so files so that extensions for different Python builds can @@ -38,12 +42,21 @@ #ifdef __CYGWIN__ ".dll", #else /* !__CYGWIN__ */ - "." SOABI ".so", -#ifdef ALT_SOABI - "." ALT_SOABI ".so", -#endif - ".abi" PYTHON_ABI_STRING ".so", - ".so", +# ifdef __APPLE__ +# if TARGET_OS_IPHONE +# define SHLIB_SUFFIX ".dylib" +# else +# define SHLIB_SUFFIX ".so" +# endif +# else +# define SHLIB_SUFFIX ".so" +# endif + "." SOABI SHLIB_SUFFIX, +# ifdef ALT_SOABI + "." ALT_SOABI SHLIB_SUFFIX, +# endif + ".abi" PYTHON_ABI_STRING SHLIB_SUFFIX, + SHLIB_SUFFIX, #endif /* __CYGWIN__ */ NULL, }; diff --git a/Python/importlib_external.h b/Python/importlib_external.h index e77ca4c219..ce00379d85 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -1,7 +1,7 @@ /* Auto-generated by Programs/_freeze_importlib.c */ const unsigned char _Py_M__importlib_bootstrap_external[] = { 99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,5,0,0,0,64,0,0,0,115,250,2,0,0,100,0, + 0,5,0,0,0,64,0,0,0,115,24,3,0,0,100,0, 90,0,100,1,97,1,100,2,100,1,108,2,90,2,100,2, 100,1,108,3,90,3,100,2,100,1,108,4,90,4,100,2, 100,1,108,5,90,5,100,2,100,1,108,6,90,6,101,4, @@ -21,21 +21,21 @@ 132,0,90,30,100,28,100,29,132,0,90,31,100,30,100,31, 132,0,90,32,100,32,100,33,132,0,90,33,101,8,114,150, 100,34,100,35,132,0,90,34,110,4,100,36,100,35,132,0, - 90,34,100,112,100,38,100,39,132,1,90,35,101,36,101,35, + 90,34,100,116,100,38,100,39,132,1,90,35,101,36,101,35, 106,37,131,1,90,38,100,40,160,39,100,41,100,42,161,2, 100,43,23,0,90,40,101,41,160,42,101,40,100,42,161,2, 90,43,100,44,90,44,100,45,90,45,100,46,103,1,90,46, 101,8,114,192,101,46,160,47,100,47,161,1,1,0,101,2, 160,48,161,0,90,49,100,48,103,1,90,50,101,50,4,0, - 90,51,90,52,100,113,100,1,100,49,156,1,100,50,100,51, + 90,51,90,52,100,117,100,1,100,49,156,1,100,50,100,51, 132,3,90,53,100,52,100,53,132,0,90,54,100,54,100,55, 132,0,90,55,100,56,100,57,132,0,90,56,100,58,100,59, 132,0,90,57,100,60,100,61,132,0,90,58,100,62,100,63, 132,0,90,59,100,64,100,65,132,0,90,60,100,66,100,67, - 132,0,90,61,100,68,100,69,132,0,90,62,100,114,100,70, - 100,71,132,1,90,63,100,115,100,72,100,73,132,1,90,64, - 100,116,100,75,100,76,132,1,90,65,100,77,100,78,132,0, - 90,66,101,67,131,0,90,68,100,113,100,1,101,68,100,79, + 132,0,90,61,100,68,100,69,132,0,90,62,100,118,100,70, + 100,71,132,1,90,63,100,119,100,72,100,73,132,1,90,64, + 100,120,100,75,100,76,132,1,90,65,100,77,100,78,132,0, + 90,66,101,67,131,0,90,68,100,117,100,1,101,68,100,79, 156,2,100,80,100,81,132,3,90,69,71,0,100,82,100,83, 132,0,100,83,131,2,90,70,71,0,100,84,100,85,132,0, 100,85,131,2,90,71,71,0,100,86,100,87,132,0,100,87, @@ -47,2725 +47,2896 @@ 132,0,100,97,131,2,90,77,71,0,100,98,100,99,132,0, 100,99,131,2,90,78,71,0,100,100,100,101,132,0,100,101, 131,2,90,79,71,0,100,102,100,103,132,0,100,103,131,2, - 90,80,100,113,100,104,100,105,132,1,90,81,100,106,100,107, - 132,0,90,82,100,108,100,109,132,0,90,83,100,110,100,111, - 132,0,90,84,100,1,83,0,41,117,97,94,1,0,0,67, - 111,114,101,32,105,109,112,108,101,109,101,110,116,97,116,105, - 111,110,32,111,102,32,112,97,116,104,45,98,97,115,101,100, - 32,105,109,112,111,114,116,46,10,10,84,104,105,115,32,109, - 111,100,117,108,101,32,105,115,32,78,79,84,32,109,101,97, - 110,116,32,116,111,32,98,101,32,100,105,114,101,99,116,108, - 121,32,105,109,112,111,114,116,101,100,33,32,73,116,32,104, - 97,115,32,98,101,101,110,32,100,101,115,105,103,110,101,100, - 32,115,117,99,104,10,116,104,97,116,32,105,116,32,99,97, - 110,32,98,101,32,98,111,111,116,115,116,114,97,112,112,101, - 100,32,105,110,116,111,32,80,121,116,104,111,110,32,97,115, - 32,116,104,101,32,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,32,111,102,32,105,109,112,111,114,116,46,32,65, - 115,10,115,117,99,104,32,105,116,32,114,101,113,117,105,114, - 101,115,32,116,104,101,32,105,110,106,101,99,116,105,111,110, - 32,111,102,32,115,112,101,99,105,102,105,99,32,109,111,100, - 117,108,101,115,32,97,110,100,32,97,116,116,114,105,98,117, - 116,101,115,32,105,110,32,111,114,100,101,114,32,116,111,10, - 119,111,114,107,46,32,79,110,101,32,115,104,111,117,108,100, - 32,117,115,101,32,105,109,112,111,114,116,108,105,98,32,97, - 115,32,116,104,101,32,112,117,98,108,105,99,45,102,97,99, - 105,110,103,32,118,101,114,115,105,111,110,32,111,102,32,116, - 104,105,115,32,109,111,100,117,108,101,46,10,10,78,233,0, - 0,0,0,90,5,119,105,110,51,50,250,1,92,250,1,47, + 90,80,71,0,100,104,100,105,132,0,100,105,101,76,131,3, + 90,81,71,0,100,106,100,107,132,0,100,107,131,2,90,82, + 100,117,100,108,100,109,132,1,90,83,100,110,100,111,132,0, + 90,84,100,112,100,113,132,0,90,85,100,114,100,115,132,0, + 90,86,100,1,83,0,41,121,97,94,1,0,0,67,111,114, + 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110, + 32,111,102,32,112,97,116,104,45,98,97,115,101,100,32,105, + 109,112,111,114,116,46,10,10,84,104,105,115,32,109,111,100, + 117,108,101,32,105,115,32,78,79,84,32,109,101,97,110,116, + 32,116,111,32,98,101,32,100,105,114,101,99,116,108,121,32, + 105,109,112,111,114,116,101,100,33,32,73,116,32,104,97,115, + 32,98,101,101,110,32,100,101,115,105,103,110,101,100,32,115, + 117,99,104,10,116,104,97,116,32,105,116,32,99,97,110,32, + 98,101,32,98,111,111,116,115,116,114,97,112,112,101,100,32, + 105,110,116,111,32,80,121,116,104,111,110,32,97,115,32,116, + 104,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111, + 110,32,111,102,32,105,109,112,111,114,116,46,32,65,115,10, + 115,117,99,104,32,105,116,32,114,101,113,117,105,114,101,115, + 32,116,104,101,32,105,110,106,101,99,116,105,111,110,32,111, + 102,32,115,112,101,99,105,102,105,99,32,109,111,100,117,108, + 101,115,32,97,110,100,32,97,116,116,114,105,98,117,116,101, + 115,32,105,110,32,111,114,100,101,114,32,116,111,10,119,111, + 114,107,46,32,79,110,101,32,115,104,111,117,108,100,32,117, + 115,101,32,105,109,112,111,114,116,108,105,98,32,97,115,32, + 116,104,101,32,112,117,98,108,105,99,45,102,97,99,105,110, + 103,32,118,101,114,115,105,111,110,32,111,102,32,116,104,105, + 115,32,109,111,100,117,108,101,46,10,10,78,233,0,0,0, + 0,90,5,119,105,110,51,50,250,1,92,250,1,47,99,1, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, + 0,0,0,99,0,0,0,115,28,0,0,0,129,0,124,0, + 93,9,125,1,116,0,124,1,131,1,100,0,107,2,86,0, + 1,0,113,2,100,1,83,0,41,2,233,1,0,0,0,78, + 41,1,218,3,108,101,110,41,2,218,2,46,48,218,3,115, + 101,112,169,0,114,7,0,0,0,250,38,60,102,114,111,122, + 101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,111, + 111,116,115,116,114,97,112,95,101,120,116,101,114,110,97,108, + 62,218,9,60,103,101,110,101,120,112,114,62,46,0,0,0, + 115,4,0,0,0,2,128,26,0,114,9,0,0,0,218,0, 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,3,0,0,0,99,0,0,0,115,28,0,0,0,129,0, - 124,0,93,9,125,1,116,0,124,1,131,1,100,0,107,2, - 86,0,1,0,113,2,100,1,83,0,41,2,233,1,0,0, - 0,78,41,1,218,3,108,101,110,41,2,218,2,46,48,218, - 3,115,101,112,169,0,114,7,0,0,0,250,38,60,102,114, - 111,122,101,110,32,105,109,112,111,114,116,108,105,98,46,95, - 98,111,111,116,115,116,114,97,112,95,101,120,116,101,114,110, - 97,108,62,218,9,60,103,101,110,101,120,112,114,62,46,0, - 0,0,115,4,0,0,0,2,128,26,0,114,9,0,0,0, - 218,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,22,0,0,0, - 104,0,124,0,93,7,125,1,100,0,124,1,155,0,157,2, - 146,2,113,2,83,0,41,1,250,1,58,114,7,0,0,0, - 41,2,114,5,0,0,0,218,1,115,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,218,9,60,115,101,116,99, - 111,109,112,62,50,0,0,0,115,2,0,0,0,22,0,114, - 13,0,0,0,41,1,218,3,119,105,110,41,2,90,6,99, - 121,103,119,105,110,90,6,100,97,114,119,105,110,99,0,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,3,0,0,0,115,62,0,0,0,116,0,106,1,160, - 2,116,3,161,1,114,25,116,0,106,1,160,2,116,4,161, - 1,114,15,100,1,137,0,110,2,100,2,137,0,135,0,102, - 1,100,3,100,4,132,8,125,0,124,0,83,0,100,5,100, - 4,132,0,125,0,124,0,83,0,41,6,78,90,12,80,89, - 84,72,79,78,67,65,83,69,79,75,115,12,0,0,0,80, - 89,84,72,79,78,67,65,83,69,79,75,99,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 19,0,0,0,115,20,0,0,0,116,0,106,1,106,2,12, - 0,111,9,136,0,116,3,106,4,118,0,83,0,41,1,122, - 94,84,114,117,101,32,105,102,32,102,105,108,101,110,97,109, - 101,115,32,109,117,115,116,32,98,101,32,99,104,101,99,107, - 101,100,32,99,97,115,101,45,105,110,115,101,110,115,105,116, - 105,118,101,108,121,32,97,110,100,32,105,103,110,111,114,101, - 32,101,110,118,105,114,111,110,109,101,110,116,32,102,108,97, - 103,115,32,97,114,101,32,110,111,116,32,115,101,116,46,41, - 5,218,3,115,121,115,218,5,102,108,97,103,115,218,18,105, - 103,110,111,114,101,95,101,110,118,105,114,111,110,109,101,110, - 116,218,3,95,111,115,90,7,101,110,118,105,114,111,110,114, - 7,0,0,0,169,1,218,3,107,101,121,114,7,0,0,0, - 114,8,0,0,0,218,11,95,114,101,108,97,120,95,99,97, - 115,101,67,0,0,0,243,2,0,0,0,20,2,122,37,95, - 109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,46, - 60,108,111,99,97,108,115,62,46,95,114,101,108,97,120,95, - 99,97,115,101,99,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,83,0,0,0,243,4,0, - 0,0,100,1,83,0,41,2,122,53,84,114,117,101,32,105, - 102,32,102,105,108,101,110,97,109,101,115,32,109,117,115,116, - 32,98,101,32,99,104,101,99,107,101,100,32,99,97,115,101, - 45,105,110,115,101,110,115,105,116,105,118,101,108,121,46,70, - 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,21,0,0,0,71,0, - 0,0,243,2,0,0,0,4,2,41,5,114,15,0,0,0, - 218,8,112,108,97,116,102,111,114,109,218,10,115,116,97,114, - 116,115,119,105,116,104,218,27,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,218,35,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,83,84,82,95,75,69,89,41,1,114,21,0,0,0,114, - 7,0,0,0,114,19,0,0,0,114,8,0,0,0,218,16, - 95,109,97,107,101,95,114,101,108,97,120,95,99,97,115,101, - 60,0,0,0,115,16,0,0,0,12,1,12,1,6,1,4, - 2,12,2,4,7,8,253,4,3,114,29,0,0,0,99,1, + 0,4,0,0,0,67,0,0,0,115,22,0,0,0,104,0, + 124,0,93,7,125,1,100,0,124,1,155,0,157,2,146,2, + 113,2,83,0,41,1,250,1,58,114,7,0,0,0,41,2, + 114,5,0,0,0,218,1,115,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,218,9,60,115,101,116,99,111,109, + 112,62,50,0,0,0,115,2,0,0,0,22,0,114,13,0, + 0,0,41,1,218,3,119,105,110,41,5,90,6,99,121,103, + 119,105,110,90,6,100,97,114,119,105,110,218,3,105,111,115, + 218,4,116,118,111,115,218,7,119,97,116,99,104,111,115,99, + 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,0,0,0,3,0,0,0,115,62,0,0,0,116,0,106, + 1,160,2,116,3,161,1,114,25,116,0,106,1,160,2,116, + 4,161,1,114,15,100,1,137,0,110,2,100,2,137,0,135, + 0,102,1,100,3,100,4,132,8,125,0,124,0,83,0,100, + 5,100,4,132,0,125,0,124,0,83,0,41,6,78,90,12, + 80,89,84,72,79,78,67,65,83,69,79,75,115,12,0,0, + 0,80,89,84,72,79,78,67,65,83,69,79,75,99,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,19,0,0,0,115,20,0,0,0,116,0,106,1,106, + 2,12,0,111,9,136,0,116,3,106,4,118,0,83,0,41, + 1,122,94,84,114,117,101,32,105,102,32,102,105,108,101,110, + 97,109,101,115,32,109,117,115,116,32,98,101,32,99,104,101, + 99,107,101,100,32,99,97,115,101,45,105,110,115,101,110,115, + 105,116,105,118,101,108,121,32,97,110,100,32,105,103,110,111, + 114,101,32,101,110,118,105,114,111,110,109,101,110,116,32,102, + 108,97,103,115,32,97,114,101,32,110,111,116,32,115,101,116, + 46,41,5,218,3,115,121,115,218,5,102,108,97,103,115,218, + 18,105,103,110,111,114,101,95,101,110,118,105,114,111,110,109, + 101,110,116,218,3,95,111,115,90,7,101,110,118,105,114,111, + 110,114,7,0,0,0,169,1,218,3,107,101,121,114,7,0, + 0,0,114,8,0,0,0,218,11,95,114,101,108,97,120,95, + 99,97,115,101,67,0,0,0,243,2,0,0,0,20,2,122, + 37,95,109,97,107,101,95,114,101,108,97,120,95,99,97,115, + 101,46,60,108,111,99,97,108,115,62,46,95,114,101,108,97, + 120,95,99,97,115,101,99,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,83,0,0,0,243, + 4,0,0,0,100,1,83,0,41,2,122,53,84,114,117,101, + 32,105,102,32,102,105,108,101,110,97,109,101,115,32,109,117, + 115,116,32,98,101,32,99,104,101,99,107,101,100,32,99,97, + 115,101,45,105,110,115,101,110,115,105,116,105,118,101,108,121, + 46,70,114,7,0,0,0,114,7,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,24,0,0,0, + 71,0,0,0,243,2,0,0,0,4,2,41,5,114,18,0, + 0,0,218,8,112,108,97,116,102,111,114,109,218,10,115,116, + 97,114,116,115,119,105,116,104,218,27,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,218,35,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,83,84,82,95,75,69,89,41,1,114,24,0,0, + 0,114,7,0,0,0,114,22,0,0,0,114,8,0,0,0, + 218,16,95,109,97,107,101,95,114,101,108,97,120,95,99,97, + 115,101,60,0,0,0,115,16,0,0,0,12,1,12,1,6, + 1,4,2,12,2,4,7,8,253,4,3,114,32,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,4,0,0,0,67,0,0,0,115,20,0,0,0,116,0, + 124,0,131,1,100,1,64,0,160,1,100,2,100,3,161,2, + 83,0,41,4,122,42,67,111,110,118,101,114,116,32,97,32, + 51,50,45,98,105,116,32,105,110,116,101,103,101,114,32,116, + 111,32,108,105,116,116,108,101,45,101,110,100,105,97,110,46, + 236,3,0,0,0,255,127,255,127,3,0,233,4,0,0,0, + 218,6,108,105,116,116,108,101,41,2,218,3,105,110,116,218, + 8,116,111,95,98,121,116,101,115,41,1,218,1,120,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,218,12,95, + 112,97,99,107,95,117,105,110,116,51,50,79,0,0,0,114, + 25,0,0,0,114,39,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,4,0,0,0,67,0, + 0,0,243,28,0,0,0,116,0,124,0,131,1,100,1,107, + 2,115,8,74,0,130,1,116,1,160,2,124,0,100,2,161, + 2,83,0,41,3,122,47,67,111,110,118,101,114,116,32,52, + 32,98,121,116,101,115,32,105,110,32,108,105,116,116,108,101, + 45,101,110,100,105,97,110,32,116,111,32,97,110,32,105,110, + 116,101,103,101,114,46,114,34,0,0,0,114,35,0,0,0, + 169,3,114,4,0,0,0,114,36,0,0,0,218,10,102,114, + 111,109,95,98,121,116,101,115,169,1,218,4,100,97,116,97, + 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, + 14,95,117,110,112,97,99,107,95,117,105,110,116,51,50,84, + 0,0,0,243,4,0,0,0,16,2,12,1,114,45,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,4,0,0,0,67,0,0,0,114,40,0,0,0,41, + 3,122,47,67,111,110,118,101,114,116,32,50,32,98,121,116, + 101,115,32,105,110,32,108,105,116,116,108,101,45,101,110,100, + 105,97,110,32,116,111,32,97,110,32,105,110,116,101,103,101, + 114,46,233,2,0,0,0,114,35,0,0,0,114,41,0,0, + 0,114,43,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,14,95,117,110,112,97,99,107,95,117, + 105,110,116,49,54,89,0,0,0,114,46,0,0,0,114,48, + 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,4,0,0,0,71,0,0,0,115,228,0,0, + 0,124,0,115,4,100,1,83,0,116,0,124,0,131,1,100, + 2,107,2,114,14,124,0,100,3,25,0,83,0,100,1,125, + 1,103,0,125,2,116,1,116,2,106,3,124,0,131,2,68, + 0,93,61,92,2,125,3,125,4,124,3,160,4,116,5,161, + 1,115,38,124,3,160,6,116,5,161,1,114,51,124,3,160, + 7,116,8,161,1,112,44,124,1,125,1,116,9,124,4,23, + 0,103,1,125,2,113,24,124,3,160,6,100,4,161,1,114, + 76,124,1,160,10,161,0,124,3,160,10,161,0,107,3,114, + 70,124,3,125,1,124,4,103,1,125,2,113,24,124,2,160, + 11,124,4,161,1,1,0,113,24,124,3,112,79,124,1,125, + 1,124,2,160,11,124,4,161,1,1,0,113,24,100,5,100, + 6,132,0,124,2,68,0,131,1,125,2,116,0,124,2,131, + 1,100,2,107,2,114,107,124,2,100,3,25,0,115,107,124, + 1,116,9,23,0,83,0,124,1,116,9,160,12,124,2,161, + 1,23,0,83,0,41,7,250,31,82,101,112,108,97,99,101, + 109,101,110,116,32,102,111,114,32,111,115,46,112,97,116,104, + 46,106,111,105,110,40,41,46,114,10,0,0,0,114,3,0, + 0,0,114,0,0,0,0,114,11,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,2,0,0,0,5,0,0, + 0,83,0,0,0,243,26,0,0,0,103,0,124,0,93,9, + 125,1,124,1,114,2,124,1,160,0,116,1,161,1,145,2, + 113,2,83,0,114,7,0,0,0,169,2,218,6,114,115,116, + 114,105,112,218,15,112,97,116,104,95,115,101,112,97,114,97, + 116,111,114,115,169,2,114,5,0,0,0,218,1,112,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,218,10,60, + 108,105,115,116,99,111,109,112,62,119,0,0,0,115,2,0, + 0,0,26,0,250,30,95,112,97,116,104,95,106,111,105,110, + 46,60,108,111,99,97,108,115,62,46,60,108,105,115,116,99, + 111,109,112,62,41,13,114,4,0,0,0,218,3,109,97,112, + 114,21,0,0,0,218,15,95,112,97,116,104,95,115,112,108, + 105,116,114,111,111,116,114,29,0,0,0,218,14,112,97,116, + 104,95,115,101,112,95,116,117,112,108,101,218,8,101,110,100, + 115,119,105,116,104,114,52,0,0,0,114,53,0,0,0,218, + 8,112,97,116,104,95,115,101,112,218,8,99,97,115,101,102, + 111,108,100,218,6,97,112,112,101,110,100,218,4,106,111,105, + 110,41,5,218,10,112,97,116,104,95,112,97,114,116,115,218, + 4,114,111,111,116,218,4,112,97,116,104,90,8,110,101,119, + 95,114,111,111,116,218,4,116,97,105,108,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,218,10,95,112,97,116, + 104,95,106,111,105,110,96,0,0,0,115,42,0,0,0,4, + 2,4,1,12,1,8,1,4,1,4,1,20,1,20,1,14, + 1,12,1,10,1,16,1,4,3,8,1,12,2,8,2,12, + 1,14,1,20,1,8,2,14,1,114,70,0,0,0,99,0, 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4, - 0,0,0,67,0,0,0,115,20,0,0,0,116,0,124,0, - 131,1,100,1,64,0,160,1,100,2,100,3,161,2,83,0, - 41,4,122,42,67,111,110,118,101,114,116,32,97,32,51,50, - 45,98,105,116,32,105,110,116,101,103,101,114,32,116,111,32, - 108,105,116,116,108,101,45,101,110,100,105,97,110,46,236,3, - 0,0,0,255,127,255,127,3,0,233,4,0,0,0,218,6, - 108,105,116,116,108,101,41,2,218,3,105,110,116,218,8,116, - 111,95,98,121,116,101,115,41,1,218,1,120,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,218,12,95,112,97, - 99,107,95,117,105,110,116,51,50,79,0,0,0,114,22,0, - 0,0,114,36,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,0, - 243,28,0,0,0,116,0,124,0,131,1,100,1,107,2,115, - 8,74,0,130,1,116,1,160,2,124,0,100,2,161,2,83, - 0,41,3,122,47,67,111,110,118,101,114,116,32,52,32,98, - 121,116,101,115,32,105,110,32,108,105,116,116,108,101,45,101, - 110,100,105,97,110,32,116,111,32,97,110,32,105,110,116,101, - 103,101,114,46,114,31,0,0,0,114,32,0,0,0,169,3, - 114,4,0,0,0,114,33,0,0,0,218,10,102,114,111,109, - 95,98,121,116,101,115,169,1,218,4,100,97,116,97,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,218,14,95, - 117,110,112,97,99,107,95,117,105,110,116,51,50,84,0,0, - 0,243,4,0,0,0,16,2,12,1,114,42,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 4,0,0,0,67,0,0,0,114,37,0,0,0,41,3,122, - 47,67,111,110,118,101,114,116,32,50,32,98,121,116,101,115, - 32,105,110,32,108,105,116,116,108,101,45,101,110,100,105,97, - 110,32,116,111,32,97,110,32,105,110,116,101,103,101,114,46, - 233,2,0,0,0,114,32,0,0,0,114,38,0,0,0,114, - 40,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,14,95,117,110,112,97,99,107,95,117,105,110, - 116,49,54,89,0,0,0,114,43,0,0,0,114,45,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,4,0,0,0,71,0,0,0,115,228,0,0,0,124, - 0,115,4,100,1,83,0,116,0,124,0,131,1,100,2,107, - 2,114,14,124,0,100,3,25,0,83,0,100,1,125,1,103, - 0,125,2,116,1,116,2,106,3,124,0,131,2,68,0,93, - 61,92,2,125,3,125,4,124,3,160,4,116,5,161,1,115, - 38,124,3,160,6,116,5,161,1,114,51,124,3,160,7,116, - 8,161,1,112,44,124,1,125,1,116,9,124,4,23,0,103, - 1,125,2,113,24,124,3,160,6,100,4,161,1,114,76,124, - 1,160,10,161,0,124,3,160,10,161,0,107,3,114,70,124, - 3,125,1,124,4,103,1,125,2,113,24,124,2,160,11,124, - 4,161,1,1,0,113,24,124,3,112,79,124,1,125,1,124, - 2,160,11,124,4,161,1,1,0,113,24,100,5,100,6,132, - 0,124,2,68,0,131,1,125,2,116,0,124,2,131,1,100, - 2,107,2,114,107,124,2,100,3,25,0,115,107,124,1,116, - 9,23,0,83,0,124,1,116,9,160,12,124,2,161,1,23, - 0,83,0,41,7,250,31,82,101,112,108,97,99,101,109,101, - 110,116,32,102,111,114,32,111,115,46,112,97,116,104,46,106, - 111,105,110,40,41,46,114,10,0,0,0,114,3,0,0,0, - 114,0,0,0,0,114,11,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,5,0,0,0,83, - 0,0,0,243,26,0,0,0,103,0,124,0,93,9,125,1, - 124,1,114,2,124,1,160,0,116,1,161,1,145,2,113,2, - 83,0,114,7,0,0,0,169,2,218,6,114,115,116,114,105, - 112,218,15,112,97,116,104,95,115,101,112,97,114,97,116,111, - 114,115,169,2,114,5,0,0,0,218,1,112,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,218,10,60,108,105, - 115,116,99,111,109,112,62,119,0,0,0,115,2,0,0,0, - 26,0,250,30,95,112,97,116,104,95,106,111,105,110,46,60, - 108,111,99,97,108,115,62,46,60,108,105,115,116,99,111,109, - 112,62,41,13,114,4,0,0,0,218,3,109,97,112,114,18, - 0,0,0,218,15,95,112,97,116,104,95,115,112,108,105,116, - 114,111,111,116,114,26,0,0,0,218,14,112,97,116,104,95, - 115,101,112,95,116,117,112,108,101,218,8,101,110,100,115,119, - 105,116,104,114,49,0,0,0,114,50,0,0,0,218,8,112, - 97,116,104,95,115,101,112,218,8,99,97,115,101,102,111,108, - 100,218,6,97,112,112,101,110,100,218,4,106,111,105,110,41, - 5,218,10,112,97,116,104,95,112,97,114,116,115,218,4,114, - 111,111,116,218,4,112,97,116,104,90,8,110,101,119,95,114, - 111,111,116,218,4,116,97,105,108,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,218,10,95,112,97,116,104,95, - 106,111,105,110,96,0,0,0,115,42,0,0,0,4,2,4, - 1,12,1,8,1,4,1,4,1,20,1,20,1,14,1,12, - 1,10,1,16,1,4,3,8,1,12,2,8,2,12,1,14, - 1,20,1,8,2,14,1,114,67,0,0,0,99,0,0,0, - 0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0, - 0,71,0,0,0,115,20,0,0,0,116,0,160,1,100,1, - 100,2,132,0,124,0,68,0,131,1,161,1,83,0,41,3, - 114,46,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,5,0,0,0,83,0,0,0,114,47, - 0,0,0,114,7,0,0,0,114,48,0,0,0,41,2,114, - 5,0,0,0,218,4,112,97,114,116,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,53,0,0,0,128,0, - 0,0,115,6,0,0,0,6,0,4,1,16,255,114,54,0, - 0,0,41,2,114,59,0,0,0,114,62,0,0,0,41,1, - 114,63,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,67,0,0,0,126,0,0,0,115,6,0, - 0,0,10,2,2,1,8,255,99,1,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,4,0,0,0,3,0,0, - 0,115,66,0,0,0,116,0,135,0,102,1,100,1,100,2, - 132,8,116,1,68,0,131,1,131,1,125,1,124,1,100,3, - 107,0,114,19,100,4,136,0,102,2,83,0,136,0,100,5, - 124,1,133,2,25,0,136,0,124,1,100,6,23,0,100,5, - 133,2,25,0,102,2,83,0,41,7,122,32,82,101,112,108, - 97,99,101,109,101,110,116,32,102,111,114,32,111,115,46,112, - 97,116,104,46,115,112,108,105,116,40,41,46,99,1,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0, - 0,51,0,0,0,115,26,0,0,0,129,0,124,0,93,8, - 125,1,136,0,160,0,124,1,161,1,86,0,1,0,113,2, - 100,0,83,0,169,1,78,41,1,218,5,114,102,105,110,100, - 114,51,0,0,0,169,1,114,65,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,9,0,0,0,134,0,0,0,115, - 4,0,0,0,2,128,24,0,122,30,95,112,97,116,104,95, - 115,112,108,105,116,46,60,108,111,99,97,108,115,62,46,60, - 103,101,110,101,120,112,114,62,114,0,0,0,0,114,10,0, - 0,0,78,114,3,0,0,0,41,2,218,3,109,97,120,114, - 50,0,0,0,41,2,114,65,0,0,0,218,1,105,114,7, - 0,0,0,114,71,0,0,0,114,8,0,0,0,218,11,95, - 112,97,116,104,95,115,112,108,105,116,132,0,0,0,115,8, - 0,0,0,22,2,8,1,8,1,28,1,114,74,0,0,0, + 0,0,0,71,0,0,0,115,20,0,0,0,116,0,160,1, + 100,1,100,2,132,0,124,0,68,0,131,1,161,1,83,0, + 41,3,114,49,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,5,0,0,0,83,0,0,0, + 114,50,0,0,0,114,7,0,0,0,114,51,0,0,0,41, + 2,114,5,0,0,0,218,4,112,97,114,116,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,56,0,0,0, + 128,0,0,0,115,6,0,0,0,6,0,4,1,16,255,114, + 57,0,0,0,41,2,114,62,0,0,0,114,65,0,0,0, + 41,1,114,66,0,0,0,114,7,0,0,0,114,7,0,0, + 0,114,8,0,0,0,114,70,0,0,0,126,0,0,0,115, + 6,0,0,0,10,2,2,1,8,255,99,1,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,3, + 0,0,0,115,66,0,0,0,116,0,135,0,102,1,100,1, + 100,2,132,8,116,1,68,0,131,1,131,1,125,1,124,1, + 100,3,107,0,114,19,100,4,136,0,102,2,83,0,136,0, + 100,5,124,1,133,2,25,0,136,0,124,1,100,6,23,0, + 100,5,133,2,25,0,102,2,83,0,41,7,122,32,82,101, + 112,108,97,99,101,109,101,110,116,32,102,111,114,32,111,115, + 46,112,97,116,104,46,115,112,108,105,116,40,41,46,99,1, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4, + 0,0,0,51,0,0,0,115,26,0,0,0,129,0,124,0, + 93,8,125,1,136,0,160,0,124,1,161,1,86,0,1,0, + 113,2,100,0,83,0,169,1,78,41,1,218,5,114,102,105, + 110,100,114,54,0,0,0,169,1,114,68,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,9,0,0,0,134,0,0, + 0,115,4,0,0,0,2,128,24,0,122,30,95,112,97,116, + 104,95,115,112,108,105,116,46,60,108,111,99,97,108,115,62, + 46,60,103,101,110,101,120,112,114,62,114,0,0,0,0,114, + 10,0,0,0,78,114,3,0,0,0,41,2,218,3,109,97, + 120,114,53,0,0,0,41,2,114,68,0,0,0,218,1,105, + 114,7,0,0,0,114,74,0,0,0,114,8,0,0,0,218, + 11,95,112,97,116,104,95,115,112,108,105,116,132,0,0,0, + 115,8,0,0,0,22,2,8,1,8,1,28,1,114,77,0, + 0,0,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,10,0,0,0, + 116,0,160,1,124,0,161,1,83,0,41,1,122,126,83,116, + 97,116,32,116,104,101,32,112,97,116,104,46,10,10,32,32, + 32,32,77,97,100,101,32,97,32,115,101,112,97,114,97,116, + 101,32,102,117,110,99,116,105,111,110,32,116,111,32,109,97, + 107,101,32,105,116,32,101,97,115,105,101,114,32,116,111,32, + 111,118,101,114,114,105,100,101,32,105,110,32,101,120,112,101, + 114,105,109,101,110,116,115,10,32,32,32,32,40,101,46,103, + 46,32,99,97,99,104,101,32,115,116,97,116,32,114,101,115, + 117,108,116,115,41,46,10,10,32,32,32,32,41,2,114,21, + 0,0,0,90,4,115,116,97,116,114,74,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,218,10,95, + 112,97,116,104,95,115,116,97,116,140,0,0,0,115,2,0, + 0,0,10,7,114,78,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,8,0,0,0,67,0, + 0,0,115,48,0,0,0,122,6,116,0,124,0,131,1,125, + 2,87,0,110,10,4,0,116,1,121,16,1,0,1,0,1, + 0,89,0,100,1,83,0,119,0,124,2,106,2,100,2,64, + 0,124,1,107,2,83,0,41,3,122,49,84,101,115,116,32, + 119,104,101,116,104,101,114,32,116,104,101,32,112,97,116,104, + 32,105,115,32,116,104,101,32,115,112,101,99,105,102,105,101, + 100,32,109,111,100,101,32,116,121,112,101,46,70,105,0,240, + 0,0,41,3,114,78,0,0,0,218,7,79,83,69,114,114, + 111,114,218,7,115,116,95,109,111,100,101,41,3,114,68,0, + 0,0,218,4,109,111,100,101,90,9,115,116,97,116,95,105, + 110,102,111,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,218,18,95,112,97,116,104,95,105,115,95,109,111,100, + 101,95,116,121,112,101,150,0,0,0,115,12,0,0,0,2, + 2,12,1,12,1,6,1,2,255,14,2,114,82,0,0,0, 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,10,0,0,0,116,0, - 160,1,124,0,161,1,83,0,41,1,122,126,83,116,97,116, - 32,116,104,101,32,112,97,116,104,46,10,10,32,32,32,32, - 77,97,100,101,32,97,32,115,101,112,97,114,97,116,101,32, - 102,117,110,99,116,105,111,110,32,116,111,32,109,97,107,101, - 32,105,116,32,101,97,115,105,101,114,32,116,111,32,111,118, - 101,114,114,105,100,101,32,105,110,32,101,120,112,101,114,105, - 109,101,110,116,115,10,32,32,32,32,40,101,46,103,46,32, - 99,97,99,104,101,32,115,116,97,116,32,114,101,115,117,108, - 116,115,41,46,10,10,32,32,32,32,41,2,114,18,0,0, - 0,90,4,115,116,97,116,114,71,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,218,10,95,112,97, - 116,104,95,115,116,97,116,140,0,0,0,115,2,0,0,0, - 10,7,114,75,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,8,0,0,0,67,0,0,0, - 115,48,0,0,0,122,6,116,0,124,0,131,1,125,2,87, - 0,110,10,4,0,116,1,121,16,1,0,1,0,1,0,89, - 0,100,1,83,0,119,0,124,2,106,2,100,2,64,0,124, - 1,107,2,83,0,41,3,122,49,84,101,115,116,32,119,104, - 101,116,104,101,114,32,116,104,101,32,112,97,116,104,32,105, - 115,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32, - 109,111,100,101,32,116,121,112,101,46,70,105,0,240,0,0, - 41,3,114,75,0,0,0,218,7,79,83,69,114,114,111,114, - 218,7,115,116,95,109,111,100,101,41,3,114,65,0,0,0, - 218,4,109,111,100,101,90,9,115,116,97,116,95,105,110,102, - 111,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 218,18,95,112,97,116,104,95,105,115,95,109,111,100,101,95, - 116,121,112,101,150,0,0,0,115,12,0,0,0,2,2,12, - 1,12,1,6,1,2,255,14,2,114,79,0,0,0,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,10,0,0,0,116,0,124,0, - 100,1,131,2,83,0,41,2,122,31,82,101,112,108,97,99, - 101,109,101,110,116,32,102,111,114,32,111,115,46,112,97,116, - 104,46,105,115,102,105,108,101,46,105,0,128,0,0,41,1, - 114,79,0,0,0,114,71,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,218,12,95,112,97,116,104, - 95,105,115,102,105,108,101,159,0,0,0,243,2,0,0,0, - 10,2,114,80,0,0,0,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,22,0,0,0,124,0,115,6,116,0,160,1,161,0,125, - 0,116,2,124,0,100,1,131,2,83,0,41,2,122,30,82, - 101,112,108,97,99,101,109,101,110,116,32,102,111,114,32,111, - 115,46,112,97,116,104,46,105,115,100,105,114,46,105,0,64, - 0,0,41,3,114,18,0,0,0,218,6,103,101,116,99,119, - 100,114,79,0,0,0,114,71,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,218,11,95,112,97,116, - 104,95,105,115,100,105,114,164,0,0,0,115,6,0,0,0, - 4,2,8,1,10,1,114,83,0,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,62,0,0,0,124,0,115,4,100,1,83, - 0,116,0,160,1,124,0,161,1,100,2,25,0,160,2,100, - 3,100,4,161,2,125,1,116,3,124,1,131,1,100,5,107, - 4,111,30,124,1,160,4,100,6,161,1,112,30,124,1,160, - 5,100,4,161,1,83,0,41,7,250,30,82,101,112,108,97, - 99,101,109,101,110,116,32,102,111,114,32,111,115,46,112,97, - 116,104,46,105,115,97,98,115,46,70,114,0,0,0,0,114, - 2,0,0,0,114,1,0,0,0,114,3,0,0,0,122,2, - 92,92,41,6,114,18,0,0,0,114,56,0,0,0,218,7, - 114,101,112,108,97,99,101,114,4,0,0,0,114,26,0,0, - 0,114,58,0,0,0,41,2,114,65,0,0,0,114,64,0, - 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,218,11,95,112,97,116,104,95,105,115,97,98,115,172,0, - 0,0,115,8,0,0,0,4,2,4,1,22,1,32,1,114, - 86,0,0,0,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,10,0, - 0,0,124,0,160,0,116,1,161,1,83,0,41,1,114,84, - 0,0,0,41,2,114,26,0,0,0,114,50,0,0,0,114, - 71,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,86,0,0,0,180,0,0,0,114,81,0,0, - 0,233,182,1,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,11,0,0,0,67,0,0,0,115, - 170,0,0,0,100,1,160,0,124,0,116,1,124,0,131,1, - 161,2,125,3,116,2,160,3,124,3,116,2,106,4,116,2, - 106,5,66,0,116,2,106,6,66,0,124,2,100,2,64,0, - 161,3,125,4,122,36,116,7,160,8,124,4,100,3,161,2, - 143,13,125,5,124,5,160,9,124,1,161,1,1,0,87,0, - 100,4,4,0,4,0,131,3,1,0,110,8,49,0,115,47, - 119,1,1,0,1,0,1,0,89,0,1,0,116,2,160,10, - 124,3,124,0,161,2,1,0,87,0,100,4,83,0,4,0, - 116,11,121,84,1,0,1,0,1,0,122,7,116,2,160,12, - 124,3,161,1,1,0,87,0,130,0,4,0,116,11,121,83, - 1,0,1,0,1,0,89,0,130,0,119,0,119,0,41,5, - 122,162,66,101,115,116,45,101,102,102,111,114,116,32,102,117, - 110,99,116,105,111,110,32,116,111,32,119,114,105,116,101,32, - 100,97,116,97,32,116,111,32,97,32,112,97,116,104,32,97, - 116,111,109,105,99,97,108,108,121,46,10,32,32,32,32,66, - 101,32,112,114,101,112,97,114,101,100,32,116,111,32,104,97, - 110,100,108,101,32,97,32,70,105,108,101,69,120,105,115,116, - 115,69,114,114,111,114,32,105,102,32,99,111,110,99,117,114, - 114,101,110,116,32,119,114,105,116,105,110,103,32,111,102,32, - 116,104,101,10,32,32,32,32,116,101,109,112,111,114,97,114, - 121,32,102,105,108,101,32,105,115,32,97,116,116,101,109,112, - 116,101,100,46,250,5,123,125,46,123,125,114,87,0,0,0, - 90,2,119,98,78,41,13,218,6,102,111,114,109,97,116,218, - 2,105,100,114,18,0,0,0,90,4,111,112,101,110,90,6, - 79,95,69,88,67,76,90,7,79,95,67,82,69,65,84,90, - 8,79,95,87,82,79,78,76,89,218,3,95,105,111,218,6, - 70,105,108,101,73,79,218,5,119,114,105,116,101,114,85,0, - 0,0,114,76,0,0,0,90,6,117,110,108,105,110,107,41, - 6,114,65,0,0,0,114,41,0,0,0,114,78,0,0,0, - 90,8,112,97,116,104,95,116,109,112,90,2,102,100,218,4, - 102,105,108,101,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,13,95,119,114,105,116,101,95,97,116,111,109, - 105,99,185,0,0,0,115,36,0,0,0,16,5,6,1,22, - 1,4,255,2,2,14,3,12,1,28,255,18,2,12,1,2, - 1,12,1,2,3,12,254,2,1,2,1,2,254,2,253,114, - 95,0,0,0,105,111,13,0,0,114,44,0,0,0,114,32, - 0,0,0,115,2,0,0,0,13,10,90,11,95,95,112,121, - 99,97,99,104,101,95,95,122,4,111,112,116,45,122,3,46, - 112,121,122,4,46,112,121,119,122,4,46,112,121,99,41,1, - 218,12,111,112,116,105,109,105,122,97,116,105,111,110,99,2, - 0,0,0,0,0,0,0,1,0,0,0,12,0,0,0,5, - 0,0,0,67,0,0,0,115,80,1,0,0,124,1,100,1, - 117,1,114,26,116,0,160,1,100,2,116,2,161,2,1,0, - 124,2,100,1,117,1,114,20,100,3,125,3,116,3,124,3, - 131,1,130,1,124,1,114,24,100,4,110,1,100,5,125,2, - 116,4,160,5,124,0,161,1,125,0,116,6,124,0,131,1, - 92,2,125,4,125,5,124,5,160,7,100,6,161,1,92,3, - 125,6,125,7,125,8,116,8,106,9,106,10,125,9,124,9, - 100,1,117,0,114,57,116,11,100,7,131,1,130,1,100,4, - 160,12,124,6,114,63,124,6,110,1,124,8,124,7,124,9, - 103,3,161,1,125,10,124,2,100,1,117,0,114,86,116,8, - 106,13,106,14,100,8,107,2,114,82,100,4,125,2,110,4, - 116,8,106,13,106,14,125,2,116,15,124,2,131,1,125,2, - 124,2,100,4,107,3,114,112,124,2,160,16,161,0,115,105, - 116,17,100,9,160,18,124,2,161,1,131,1,130,1,100,10, - 160,18,124,10,116,19,124,2,161,3,125,10,124,10,116,20, - 100,8,25,0,23,0,125,11,116,8,106,21,100,1,117,1, - 114,162,116,22,124,4,131,1,115,134,116,23,116,4,160,24, - 161,0,124,4,131,2,125,4,124,4,100,5,25,0,100,11, - 107,2,114,152,124,4,100,8,25,0,116,25,118,1,114,152, - 124,4,100,12,100,1,133,2,25,0,125,4,116,23,116,8, - 106,21,124,4,160,26,116,25,161,1,124,11,131,3,83,0, - 116,23,124,4,116,27,124,11,131,3,83,0,41,13,97,254, - 2,0,0,71,105,118,101,110,32,116,104,101,32,112,97,116, - 104,32,116,111,32,97,32,46,112,121,32,102,105,108,101,44, - 32,114,101,116,117,114,110,32,116,104,101,32,112,97,116,104, - 32,116,111,32,105,116,115,32,46,112,121,99,32,102,105,108, - 101,46,10,10,32,32,32,32,84,104,101,32,46,112,121,32, - 102,105,108,101,32,100,111,101,115,32,110,111,116,32,110,101, - 101,100,32,116,111,32,101,120,105,115,116,59,32,116,104,105, - 115,32,115,105,109,112,108,121,32,114,101,116,117,114,110,115, - 32,116,104,101,32,112,97,116,104,32,116,111,32,116,104,101, - 10,32,32,32,32,46,112,121,99,32,102,105,108,101,32,99, - 97,108,99,117,108,97,116,101,100,32,97,115,32,105,102,32, - 116,104,101,32,46,112,121,32,102,105,108,101,32,119,101,114, - 101,32,105,109,112,111,114,116,101,100,46,10,10,32,32,32, - 32,84,104,101,32,39,111,112,116,105,109,105,122,97,116,105, - 111,110,39,32,112,97,114,97,109,101,116,101,114,32,99,111, - 110,116,114,111,108,115,32,116,104,101,32,112,114,101,115,117, - 109,101,100,32,111,112,116,105,109,105,122,97,116,105,111,110, - 32,108,101,118,101,108,32,111,102,10,32,32,32,32,116,104, - 101,32,98,121,116,101,99,111,100,101,32,102,105,108,101,46, - 32,73,102,32,39,111,112,116,105,109,105,122,97,116,105,111, - 110,39,32,105,115,32,110,111,116,32,78,111,110,101,44,32, - 116,104,101,32,115,116,114,105,110,103,32,114,101,112,114,101, - 115,101,110,116,97,116,105,111,110,10,32,32,32,32,111,102, - 32,116,104,101,32,97,114,103,117,109,101,110,116,32,105,115, - 32,116,97,107,101,110,32,97,110,100,32,118,101,114,105,102, - 105,101,100,32,116,111,32,98,101,32,97,108,112,104,97,110, - 117,109,101,114,105,99,32,40,101,108,115,101,32,86,97,108, - 117,101,69,114,114,111,114,10,32,32,32,32,105,115,32,114, - 97,105,115,101,100,41,46,10,10,32,32,32,32,84,104,101, - 32,100,101,98,117,103,95,111,118,101,114,114,105,100,101,32, - 112,97,114,97,109,101,116,101,114,32,105,115,32,100,101,112, - 114,101,99,97,116,101,100,46,32,73,102,32,100,101,98,117, - 103,95,111,118,101,114,114,105,100,101,32,105,115,32,110,111, - 116,32,78,111,110,101,44,10,32,32,32,32,97,32,84,114, - 117,101,32,118,97,108,117,101,32,105,115,32,116,104,101,32, - 115,97,109,101,32,97,115,32,115,101,116,116,105,110,103,32, - 39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,116, - 111,32,116,104,101,32,101,109,112,116,121,32,115,116,114,105, - 110,103,10,32,32,32,32,119,104,105,108,101,32,97,32,70, - 97,108,115,101,32,118,97,108,117,101,32,105,115,32,101,113, - 117,105,118,97,108,101,110,116,32,116,111,32,115,101,116,116, - 105,110,103,32,39,111,112,116,105,109,105,122,97,116,105,111, - 110,39,32,116,111,32,39,49,39,46,10,10,32,32,32,32, - 73,102,32,115,121,115,46,105,109,112,108,101,109,101,110,116, - 97,116,105,111,110,46,99,97,99,104,101,95,116,97,103,32, - 105,115,32,78,111,110,101,32,116,104,101,110,32,78,111,116, - 73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114, - 32,105,115,32,114,97,105,115,101,100,46,10,10,32,32,32, - 32,78,122,70,116,104,101,32,100,101,98,117,103,95,111,118, - 101,114,114,105,100,101,32,112,97,114,97,109,101,116,101,114, - 32,105,115,32,100,101,112,114,101,99,97,116,101,100,59,32, - 117,115,101,32,39,111,112,116,105,109,105,122,97,116,105,111, - 110,39,32,105,110,115,116,101,97,100,122,50,100,101,98,117, - 103,95,111,118,101,114,114,105,100,101,32,111,114,32,111,112, - 116,105,109,105,122,97,116,105,111,110,32,109,117,115,116,32, - 98,101,32,115,101,116,32,116,111,32,78,111,110,101,114,10, - 0,0,0,114,3,0,0,0,218,1,46,250,36,115,121,115, - 46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,46, - 99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,110, - 101,114,0,0,0,0,122,24,123,33,114,125,32,105,115,32, - 110,111,116,32,97,108,112,104,97,110,117,109,101,114,105,99, - 122,7,123,125,46,123,125,123,125,114,11,0,0,0,114,44, - 0,0,0,41,28,218,9,95,119,97,114,110,105,110,103,115, - 218,4,119,97,114,110,218,18,68,101,112,114,101,99,97,116, - 105,111,110,87,97,114,110,105,110,103,218,9,84,121,112,101, - 69,114,114,111,114,114,18,0,0,0,218,6,102,115,112,97, - 116,104,114,74,0,0,0,218,10,114,112,97,114,116,105,116, - 105,111,110,114,15,0,0,0,218,14,105,109,112,108,101,109, - 101,110,116,97,116,105,111,110,218,9,99,97,99,104,101,95, - 116,97,103,218,19,78,111,116,73,109,112,108,101,109,101,110, - 116,101,100,69,114,114,111,114,114,62,0,0,0,114,16,0, - 0,0,218,8,111,112,116,105,109,105,122,101,218,3,115,116, - 114,218,7,105,115,97,108,110,117,109,218,10,86,97,108,117, - 101,69,114,114,111,114,114,89,0,0,0,218,4,95,79,80, - 84,218,17,66,89,84,69,67,79,68,69,95,83,85,70,70, - 73,88,69,83,218,14,112,121,99,97,99,104,101,95,112,114, - 101,102,105,120,114,86,0,0,0,114,67,0,0,0,114,82, - 0,0,0,114,50,0,0,0,218,6,108,115,116,114,105,112, - 218,8,95,80,89,67,65,67,72,69,41,12,114,65,0,0, - 0,90,14,100,101,98,117,103,95,111,118,101,114,114,105,100, - 101,114,96,0,0,0,218,7,109,101,115,115,97,103,101,218, - 4,104,101,97,100,114,66,0,0,0,90,4,98,97,115,101, - 114,6,0,0,0,218,4,114,101,115,116,90,3,116,97,103, - 90,15,97,108,109,111,115,116,95,102,105,108,101,110,97,109, - 101,218,8,102,105,108,101,110,97,109,101,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,218,17,99,97,99,104, - 101,95,102,114,111,109,95,115,111,117,114,99,101,124,1,0, - 0,115,72,0,0,0,8,18,6,1,2,1,4,255,8,2, - 4,1,8,1,12,1,10,1,12,1,16,1,8,1,8,1, - 8,1,24,1,8,1,12,1,6,1,8,2,8,1,8,1, - 8,1,14,1,14,1,12,1,10,1,8,9,14,1,24,5, - 12,1,2,4,4,1,8,1,2,1,4,253,12,5,114,121, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 10,0,0,0,5,0,0,0,67,0,0,0,115,40,1,0, - 0,116,0,106,1,106,2,100,1,117,0,114,10,116,3,100, - 2,131,1,130,1,116,4,160,5,124,0,161,1,125,0,116, - 6,124,0,131,1,92,2,125,1,125,2,100,3,125,3,116, - 0,106,7,100,1,117,1,114,51,116,0,106,7,160,8,116, - 9,161,1,125,4,124,1,160,10,124,4,116,11,23,0,161, - 1,114,51,124,1,116,12,124,4,131,1,100,1,133,2,25, - 0,125,1,100,4,125,3,124,3,115,72,116,6,124,1,131, - 1,92,2,125,1,125,5,124,5,116,13,107,3,114,72,116, - 14,116,13,155,0,100,5,124,0,155,2,157,3,131,1,130, - 1,124,2,160,15,100,6,161,1,125,6,124,6,100,7,118, - 1,114,88,116,14,100,8,124,2,155,2,157,2,131,1,130, - 1,124,6,100,9,107,2,114,132,124,2,160,16,100,6,100, - 10,161,2,100,11,25,0,125,7,124,7,160,10,116,17,161, - 1,115,112,116,14,100,12,116,17,155,2,157,2,131,1,130, - 1,124,7,116,12,116,17,131,1,100,1,133,2,25,0,125, - 8,124,8,160,18,161,0,115,132,116,14,100,13,124,7,155, - 2,100,14,157,3,131,1,130,1,124,2,160,19,100,6,161, - 1,100,15,25,0,125,9,116,20,124,1,124,9,116,21,100, - 15,25,0,23,0,131,2,83,0,41,16,97,110,1,0,0, - 71,105,118,101,110,32,116,104,101,32,112,97,116,104,32,116, - 111,32,97,32,46,112,121,99,46,32,102,105,108,101,44,32, - 114,101,116,117,114,110,32,116,104,101,32,112,97,116,104,32, - 116,111,32,105,116,115,32,46,112,121,32,102,105,108,101,46, - 10,10,32,32,32,32,84,104,101,32,46,112,121,99,32,102, - 105,108,101,32,100,111,101,115,32,110,111,116,32,110,101,101, - 100,32,116,111,32,101,120,105,115,116,59,32,116,104,105,115, - 32,115,105,109,112,108,121,32,114,101,116,117,114,110,115,32, - 116,104,101,32,112,97,116,104,32,116,111,10,32,32,32,32, - 116,104,101,32,46,112,121,32,102,105,108,101,32,99,97,108, - 99,117,108,97,116,101,100,32,116,111,32,99,111,114,114,101, - 115,112,111,110,100,32,116,111,32,116,104,101,32,46,112,121, - 99,32,102,105,108,101,46,32,32,73,102,32,112,97,116,104, - 32,100,111,101,115,10,32,32,32,32,110,111,116,32,99,111, - 110,102,111,114,109,32,116,111,32,80,69,80,32,51,49,52, - 55,47,52,56,56,32,102,111,114,109,97,116,44,32,86,97, - 108,117,101,69,114,114,111,114,32,119,105,108,108,32,98,101, - 32,114,97,105,115,101,100,46,32,73,102,10,32,32,32,32, - 115,121,115,46,105,109,112,108,101,109,101,110,116,97,116,105, - 111,110,46,99,97,99,104,101,95,116,97,103,32,105,115,32, - 78,111,110,101,32,116,104,101,110,32,78,111,116,73,109,112, - 108,101,109,101,110,116,101,100,69,114,114,111,114,32,105,115, - 32,114,97,105,115,101,100,46,10,10,32,32,32,32,78,114, - 98,0,0,0,70,84,122,31,32,110,111,116,32,98,111,116, - 116,111,109,45,108,101,118,101,108,32,100,105,114,101,99,116, - 111,114,121,32,105,110,32,114,97,0,0,0,62,2,0,0, - 0,114,44,0,0,0,233,3,0,0,0,122,29,101,120,112, - 101,99,116,101,100,32,111,110,108,121,32,50,32,111,114,32, - 51,32,100,111,116,115,32,105,110,32,114,122,0,0,0,114, - 44,0,0,0,233,254,255,255,255,122,53,111,112,116,105,109, - 105,122,97,116,105,111,110,32,112,111,114,116,105,111,110,32, - 111,102,32,102,105,108,101,110,97,109,101,32,100,111,101,115, - 32,110,111,116,32,115,116,97,114,116,32,119,105,116,104,32, - 122,19,111,112,116,105,109,105,122,97,116,105,111,110,32,108, - 101,118,101,108,32,122,29,32,105,115,32,110,111,116,32,97, - 110,32,97,108,112,104,97,110,117,109,101,114,105,99,32,118, - 97,108,117,101,114,0,0,0,0,41,22,114,15,0,0,0, - 114,105,0,0,0,114,106,0,0,0,114,107,0,0,0,114, - 18,0,0,0,114,103,0,0,0,114,74,0,0,0,114,114, - 0,0,0,114,49,0,0,0,114,50,0,0,0,114,26,0, - 0,0,114,59,0,0,0,114,4,0,0,0,114,116,0,0, - 0,114,111,0,0,0,218,5,99,111,117,110,116,218,6,114, - 115,112,108,105,116,114,112,0,0,0,114,110,0,0,0,218, - 9,112,97,114,116,105,116,105,111,110,114,67,0,0,0,218, - 15,83,79,85,82,67,69,95,83,85,70,70,73,88,69,83, - 41,10,114,65,0,0,0,114,118,0,0,0,90,16,112,121, - 99,97,99,104,101,95,102,105,108,101,110,97,109,101,90,23, - 102,111,117,110,100,95,105,110,95,112,121,99,97,99,104,101, - 95,112,114,101,102,105,120,90,13,115,116,114,105,112,112,101, - 100,95,112,97,116,104,90,7,112,121,99,97,99,104,101,90, - 9,100,111,116,95,99,111,117,110,116,114,96,0,0,0,90, - 9,111,112,116,95,108,101,118,101,108,90,13,98,97,115,101, - 95,102,105,108,101,110,97,109,101,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,218,17,115,111,117,114,99,101, - 95,102,114,111,109,95,99,97,99,104,101,195,1,0,0,115, - 60,0,0,0,12,9,8,1,10,1,12,1,4,1,10,1, - 12,1,14,1,16,1,4,1,4,1,12,1,8,1,8,1, - 2,1,8,255,10,2,8,1,14,1,8,1,16,1,10,1, - 4,1,2,1,8,255,16,2,8,1,16,1,14,2,18,1, - 114,128,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,5,0,0,0,9,0,0,0,67,0,0,0,115,124, - 0,0,0,116,0,124,0,131,1,100,1,107,2,114,8,100, - 2,83,0,124,0,160,1,100,3,161,1,92,3,125,1,125, - 2,125,3,124,1,114,28,124,3,160,2,161,0,100,4,100, - 5,133,2,25,0,100,6,107,3,114,30,124,0,83,0,122, - 6,116,3,124,0,131,1,125,4,87,0,110,17,4,0,116, - 4,116,5,102,2,121,53,1,0,1,0,1,0,124,0,100, - 2,100,5,133,2,25,0,125,4,89,0,110,1,119,0,116, - 6,124,4,131,1,114,60,124,4,83,0,124,0,83,0,41, - 7,122,188,67,111,110,118,101,114,116,32,97,32,98,121,116, - 101,99,111,100,101,32,102,105,108,101,32,112,97,116,104,32, - 116,111,32,97,32,115,111,117,114,99,101,32,112,97,116,104, - 32,40,105,102,32,112,111,115,115,105,98,108,101,41,46,10, - 10,32,32,32,32,84,104,105,115,32,102,117,110,99,116,105, - 111,110,32,101,120,105,115,116,115,32,112,117,114,101,108,121, - 32,102,111,114,32,98,97,99,107,119,97,114,100,115,45,99, - 111,109,112,97,116,105,98,105,108,105,116,121,32,102,111,114, - 10,32,32,32,32,80,121,73,109,112,111,114,116,95,69,120, - 101,99,67,111,100,101,77,111,100,117,108,101,87,105,116,104, - 70,105,108,101,110,97,109,101,115,40,41,32,105,110,32,116, - 104,101,32,67,32,65,80,73,46,10,10,32,32,32,32,114, - 0,0,0,0,78,114,97,0,0,0,233,253,255,255,255,233, - 255,255,255,255,90,2,112,121,41,7,114,4,0,0,0,114, - 104,0,0,0,218,5,108,111,119,101,114,114,128,0,0,0, - 114,107,0,0,0,114,111,0,0,0,114,80,0,0,0,41, - 5,218,13,98,121,116,101,99,111,100,101,95,112,97,116,104, - 114,119,0,0,0,218,1,95,90,9,101,120,116,101,110,115, - 105,111,110,218,11,115,111,117,114,99,101,95,112,97,116,104, + 124,0,100,1,131,2,83,0,41,2,122,31,82,101,112,108, + 97,99,101,109,101,110,116,32,102,111,114,32,111,115,46,112, + 97,116,104,46,105,115,102,105,108,101,46,105,0,128,0,0, + 41,1,114,82,0,0,0,114,74,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,218,12,95,112,97, + 116,104,95,105,115,102,105,108,101,159,0,0,0,243,2,0, + 0,0,10,2,114,83,0,0,0,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,22,0,0,0,124,0,115,6,116,0,160,1,161, + 0,125,0,116,2,124,0,100,1,131,2,83,0,41,2,122, + 30,82,101,112,108,97,99,101,109,101,110,116,32,102,111,114, + 32,111,115,46,112,97,116,104,46,105,115,100,105,114,46,105, + 0,64,0,0,41,3,114,21,0,0,0,218,6,103,101,116, + 99,119,100,114,82,0,0,0,114,74,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,218,11,95,112, + 97,116,104,95,105,115,100,105,114,164,0,0,0,115,6,0, + 0,0,4,2,8,1,10,1,114,86,0,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,62,0,0,0,124,0,115,4,100, + 1,83,0,116,0,160,1,124,0,161,1,100,2,25,0,160, + 2,100,3,100,4,161,2,125,1,116,3,124,1,131,1,100, + 5,107,4,111,30,124,1,160,4,100,6,161,1,112,30,124, + 1,160,5,100,4,161,1,83,0,41,7,250,30,82,101,112, + 108,97,99,101,109,101,110,116,32,102,111,114,32,111,115,46, + 112,97,116,104,46,105,115,97,98,115,46,70,114,0,0,0, + 0,114,2,0,0,0,114,1,0,0,0,114,3,0,0,0, + 122,2,92,92,41,6,114,21,0,0,0,114,59,0,0,0, + 218,7,114,101,112,108,97,99,101,114,4,0,0,0,114,29, + 0,0,0,114,61,0,0,0,41,2,114,68,0,0,0,114, + 67,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,218,11,95,112,97,116,104,95,105,115,97,98,115, + 172,0,0,0,115,8,0,0,0,4,2,4,1,22,1,32, + 1,114,89,0,0,0,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, + 10,0,0,0,124,0,160,0,116,1,161,1,83,0,41,1, + 114,87,0,0,0,41,2,114,29,0,0,0,114,53,0,0, + 0,114,74,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,89,0,0,0,180,0,0,0,114,84, + 0,0,0,233,182,1,0,0,99,3,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,11,0,0,0,67,0,0, + 0,115,170,0,0,0,100,1,160,0,124,0,116,1,124,0, + 131,1,161,2,125,3,116,2,160,3,124,3,116,2,106,4, + 116,2,106,5,66,0,116,2,106,6,66,0,124,2,100,2, + 64,0,161,3,125,4,122,36,116,7,160,8,124,4,100,3, + 161,2,143,13,125,5,124,5,160,9,124,1,161,1,1,0, + 87,0,100,4,4,0,4,0,131,3,1,0,110,8,49,0, + 115,47,119,1,1,0,1,0,1,0,89,0,1,0,116,2, + 160,10,124,3,124,0,161,2,1,0,87,0,100,4,83,0, + 4,0,116,11,121,84,1,0,1,0,1,0,122,7,116,2, + 160,12,124,3,161,1,1,0,87,0,130,0,4,0,116,11, + 121,83,1,0,1,0,1,0,89,0,130,0,119,0,119,0, + 41,5,122,162,66,101,115,116,45,101,102,102,111,114,116,32, + 102,117,110,99,116,105,111,110,32,116,111,32,119,114,105,116, + 101,32,100,97,116,97,32,116,111,32,97,32,112,97,116,104, + 32,97,116,111,109,105,99,97,108,108,121,46,10,32,32,32, + 32,66,101,32,112,114,101,112,97,114,101,100,32,116,111,32, + 104,97,110,100,108,101,32,97,32,70,105,108,101,69,120,105, + 115,116,115,69,114,114,111,114,32,105,102,32,99,111,110,99, + 117,114,114,101,110,116,32,119,114,105,116,105,110,103,32,111, + 102,32,116,104,101,10,32,32,32,32,116,101,109,112,111,114, + 97,114,121,32,102,105,108,101,32,105,115,32,97,116,116,101, + 109,112,116,101,100,46,250,5,123,125,46,123,125,114,90,0, + 0,0,90,2,119,98,78,41,13,218,6,102,111,114,109,97, + 116,218,2,105,100,114,21,0,0,0,90,4,111,112,101,110, + 90,6,79,95,69,88,67,76,90,7,79,95,67,82,69,65, + 84,90,8,79,95,87,82,79,78,76,89,218,3,95,105,111, + 218,6,70,105,108,101,73,79,218,5,119,114,105,116,101,114, + 88,0,0,0,114,79,0,0,0,90,6,117,110,108,105,110, + 107,41,6,114,68,0,0,0,114,44,0,0,0,114,81,0, + 0,0,90,8,112,97,116,104,95,116,109,112,90,2,102,100, + 218,4,102,105,108,101,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,13,95,119,114,105,116,101,95,97,116, + 111,109,105,99,185,0,0,0,115,36,0,0,0,16,5,6, + 1,22,1,4,255,2,2,14,3,12,1,28,255,18,2,12, + 1,2,1,12,1,2,3,12,254,2,1,2,1,2,254,2, + 253,114,98,0,0,0,105,111,13,0,0,114,47,0,0,0, + 114,35,0,0,0,115,2,0,0,0,13,10,90,11,95,95, + 112,121,99,97,99,104,101,95,95,122,4,111,112,116,45,122, + 3,46,112,121,122,4,46,112,121,119,122,4,46,112,121,99, + 41,1,218,12,111,112,116,105,109,105,122,97,116,105,111,110, + 99,2,0,0,0,0,0,0,0,1,0,0,0,12,0,0, + 0,5,0,0,0,67,0,0,0,115,80,1,0,0,124,1, + 100,1,117,1,114,26,116,0,160,1,100,2,116,2,161,2, + 1,0,124,2,100,1,117,1,114,20,100,3,125,3,116,3, + 124,3,131,1,130,1,124,1,114,24,100,4,110,1,100,5, + 125,2,116,4,160,5,124,0,161,1,125,0,116,6,124,0, + 131,1,92,2,125,4,125,5,124,5,160,7,100,6,161,1, + 92,3,125,6,125,7,125,8,116,8,106,9,106,10,125,9, + 124,9,100,1,117,0,114,57,116,11,100,7,131,1,130,1, + 100,4,160,12,124,6,114,63,124,6,110,1,124,8,124,7, + 124,9,103,3,161,1,125,10,124,2,100,1,117,0,114,86, + 116,8,106,13,106,14,100,8,107,2,114,82,100,4,125,2, + 110,4,116,8,106,13,106,14,125,2,116,15,124,2,131,1, + 125,2,124,2,100,4,107,3,114,112,124,2,160,16,161,0, + 115,105,116,17,100,9,160,18,124,2,161,1,131,1,130,1, + 100,10,160,18,124,10,116,19,124,2,161,3,125,10,124,10, + 116,20,100,8,25,0,23,0,125,11,116,8,106,21,100,1, + 117,1,114,162,116,22,124,4,131,1,115,134,116,23,116,4, + 160,24,161,0,124,4,131,2,125,4,124,4,100,5,25,0, + 100,11,107,2,114,152,124,4,100,8,25,0,116,25,118,1, + 114,152,124,4,100,12,100,1,133,2,25,0,125,4,116,23, + 116,8,106,21,124,4,160,26,116,25,161,1,124,11,131,3, + 83,0,116,23,124,4,116,27,124,11,131,3,83,0,41,13, + 97,254,2,0,0,71,105,118,101,110,32,116,104,101,32,112, + 97,116,104,32,116,111,32,97,32,46,112,121,32,102,105,108, + 101,44,32,114,101,116,117,114,110,32,116,104,101,32,112,97, + 116,104,32,116,111,32,105,116,115,32,46,112,121,99,32,102, + 105,108,101,46,10,10,32,32,32,32,84,104,101,32,46,112, + 121,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32, + 110,101,101,100,32,116,111,32,101,120,105,115,116,59,32,116, + 104,105,115,32,115,105,109,112,108,121,32,114,101,116,117,114, + 110,115,32,116,104,101,32,112,97,116,104,32,116,111,32,116, + 104,101,10,32,32,32,32,46,112,121,99,32,102,105,108,101, + 32,99,97,108,99,117,108,97,116,101,100,32,97,115,32,105, + 102,32,116,104,101,32,46,112,121,32,102,105,108,101,32,119, + 101,114,101,32,105,109,112,111,114,116,101,100,46,10,10,32, + 32,32,32,84,104,101,32,39,111,112,116,105,109,105,122,97, + 116,105,111,110,39,32,112,97,114,97,109,101,116,101,114,32, + 99,111,110,116,114,111,108,115,32,116,104,101,32,112,114,101, + 115,117,109,101,100,32,111,112,116,105,109,105,122,97,116,105, + 111,110,32,108,101,118,101,108,32,111,102,10,32,32,32,32, + 116,104,101,32,98,121,116,101,99,111,100,101,32,102,105,108, + 101,46,32,73,102,32,39,111,112,116,105,109,105,122,97,116, + 105,111,110,39,32,105,115,32,110,111,116,32,78,111,110,101, + 44,32,116,104,101,32,115,116,114,105,110,103,32,114,101,112, + 114,101,115,101,110,116,97,116,105,111,110,10,32,32,32,32, + 111,102,32,116,104,101,32,97,114,103,117,109,101,110,116,32, + 105,115,32,116,97,107,101,110,32,97,110,100,32,118,101,114, + 105,102,105,101,100,32,116,111,32,98,101,32,97,108,112,104, + 97,110,117,109,101,114,105,99,32,40,101,108,115,101,32,86, + 97,108,117,101,69,114,114,111,114,10,32,32,32,32,105,115, + 32,114,97,105,115,101,100,41,46,10,10,32,32,32,32,84, + 104,101,32,100,101,98,117,103,95,111,118,101,114,114,105,100, + 101,32,112,97,114,97,109,101,116,101,114,32,105,115,32,100, + 101,112,114,101,99,97,116,101,100,46,32,73,102,32,100,101, + 98,117,103,95,111,118,101,114,114,105,100,101,32,105,115,32, + 110,111,116,32,78,111,110,101,44,10,32,32,32,32,97,32, + 84,114,117,101,32,118,97,108,117,101,32,105,115,32,116,104, + 101,32,115,97,109,101,32,97,115,32,115,101,116,116,105,110, + 103,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39, + 32,116,111,32,116,104,101,32,101,109,112,116,121,32,115,116, + 114,105,110,103,10,32,32,32,32,119,104,105,108,101,32,97, + 32,70,97,108,115,101,32,118,97,108,117,101,32,105,115,32, + 101,113,117,105,118,97,108,101,110,116,32,116,111,32,115,101, + 116,116,105,110,103,32,39,111,112,116,105,109,105,122,97,116, + 105,111,110,39,32,116,111,32,39,49,39,46,10,10,32,32, + 32,32,73,102,32,115,121,115,46,105,109,112,108,101,109,101, + 110,116,97,116,105,111,110,46,99,97,99,104,101,95,116,97, + 103,32,105,115,32,78,111,110,101,32,116,104,101,110,32,78, + 111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114, + 111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,32, + 32,32,32,78,122,70,116,104,101,32,100,101,98,117,103,95, + 111,118,101,114,114,105,100,101,32,112,97,114,97,109,101,116, + 101,114,32,105,115,32,100,101,112,114,101,99,97,116,101,100, + 59,32,117,115,101,32,39,111,112,116,105,109,105,122,97,116, + 105,111,110,39,32,105,110,115,116,101,97,100,122,50,100,101, + 98,117,103,95,111,118,101,114,114,105,100,101,32,111,114,32, + 111,112,116,105,109,105,122,97,116,105,111,110,32,109,117,115, + 116,32,98,101,32,115,101,116,32,116,111,32,78,111,110,101, + 114,10,0,0,0,114,3,0,0,0,218,1,46,250,36,115, + 121,115,46,105,109,112,108,101,109,101,110,116,97,116,105,111, + 110,46,99,97,99,104,101,95,116,97,103,32,105,115,32,78, + 111,110,101,114,0,0,0,0,122,24,123,33,114,125,32,105, + 115,32,110,111,116,32,97,108,112,104,97,110,117,109,101,114, + 105,99,122,7,123,125,46,123,125,123,125,114,11,0,0,0, + 114,47,0,0,0,41,28,218,9,95,119,97,114,110,105,110, + 103,115,218,4,119,97,114,110,218,18,68,101,112,114,101,99, + 97,116,105,111,110,87,97,114,110,105,110,103,218,9,84,121, + 112,101,69,114,114,111,114,114,21,0,0,0,218,6,102,115, + 112,97,116,104,114,77,0,0,0,218,10,114,112,97,114,116, + 105,116,105,111,110,114,18,0,0,0,218,14,105,109,112,108, + 101,109,101,110,116,97,116,105,111,110,218,9,99,97,99,104, + 101,95,116,97,103,218,19,78,111,116,73,109,112,108,101,109, + 101,110,116,101,100,69,114,114,111,114,114,65,0,0,0,114, + 19,0,0,0,218,8,111,112,116,105,109,105,122,101,218,3, + 115,116,114,218,7,105,115,97,108,110,117,109,218,10,86,97, + 108,117,101,69,114,114,111,114,114,92,0,0,0,218,4,95, + 79,80,84,218,17,66,89,84,69,67,79,68,69,95,83,85, + 70,70,73,88,69,83,218,14,112,121,99,97,99,104,101,95, + 112,114,101,102,105,120,114,89,0,0,0,114,70,0,0,0, + 114,85,0,0,0,114,53,0,0,0,218,6,108,115,116,114, + 105,112,218,8,95,80,89,67,65,67,72,69,41,12,114,68, + 0,0,0,90,14,100,101,98,117,103,95,111,118,101,114,114, + 105,100,101,114,99,0,0,0,218,7,109,101,115,115,97,103, + 101,218,4,104,101,97,100,114,69,0,0,0,90,4,98,97, + 115,101,114,6,0,0,0,218,4,114,101,115,116,90,3,116, + 97,103,90,15,97,108,109,111,115,116,95,102,105,108,101,110, + 97,109,101,218,8,102,105,108,101,110,97,109,101,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,218,17,99,97, + 99,104,101,95,102,114,111,109,95,115,111,117,114,99,101,124, + 1,0,0,115,72,0,0,0,8,18,6,1,2,1,4,255, + 8,2,4,1,8,1,12,1,10,1,12,1,16,1,8,1, + 8,1,8,1,24,1,8,1,12,1,6,1,8,2,8,1, + 8,1,8,1,14,1,14,1,12,1,10,1,8,9,14,1, + 24,5,12,1,2,4,4,1,8,1,2,1,4,253,12,5, + 114,124,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,10,0,0,0,5,0,0,0,67,0,0,0,115,40, + 1,0,0,116,0,106,1,106,2,100,1,117,0,114,10,116, + 3,100,2,131,1,130,1,116,4,160,5,124,0,161,1,125, + 0,116,6,124,0,131,1,92,2,125,1,125,2,100,3,125, + 3,116,0,106,7,100,1,117,1,114,51,116,0,106,7,160, + 8,116,9,161,1,125,4,124,1,160,10,124,4,116,11,23, + 0,161,1,114,51,124,1,116,12,124,4,131,1,100,1,133, + 2,25,0,125,1,100,4,125,3,124,3,115,72,116,6,124, + 1,131,1,92,2,125,1,125,5,124,5,116,13,107,3,114, + 72,116,14,116,13,155,0,100,5,124,0,155,2,157,3,131, + 1,130,1,124,2,160,15,100,6,161,1,125,6,124,6,100, + 7,118,1,114,88,116,14,100,8,124,2,155,2,157,2,131, + 1,130,1,124,6,100,9,107,2,114,132,124,2,160,16,100, + 6,100,10,161,2,100,11,25,0,125,7,124,7,160,10,116, + 17,161,1,115,112,116,14,100,12,116,17,155,2,157,2,131, + 1,130,1,124,7,116,12,116,17,131,1,100,1,133,2,25, + 0,125,8,124,8,160,18,161,0,115,132,116,14,100,13,124, + 7,155,2,100,14,157,3,131,1,130,1,124,2,160,19,100, + 6,161,1,100,15,25,0,125,9,116,20,124,1,124,9,116, + 21,100,15,25,0,23,0,131,2,83,0,41,16,97,110,1, + 0,0,71,105,118,101,110,32,116,104,101,32,112,97,116,104, + 32,116,111,32,97,32,46,112,121,99,46,32,102,105,108,101, + 44,32,114,101,116,117,114,110,32,116,104,101,32,112,97,116, + 104,32,116,111,32,105,116,115,32,46,112,121,32,102,105,108, + 101,46,10,10,32,32,32,32,84,104,101,32,46,112,121,99, + 32,102,105,108,101,32,100,111,101,115,32,110,111,116,32,110, + 101,101,100,32,116,111,32,101,120,105,115,116,59,32,116,104, + 105,115,32,115,105,109,112,108,121,32,114,101,116,117,114,110, + 115,32,116,104,101,32,112,97,116,104,32,116,111,10,32,32, + 32,32,116,104,101,32,46,112,121,32,102,105,108,101,32,99, + 97,108,99,117,108,97,116,101,100,32,116,111,32,99,111,114, + 114,101,115,112,111,110,100,32,116,111,32,116,104,101,32,46, + 112,121,99,32,102,105,108,101,46,32,32,73,102,32,112,97, + 116,104,32,100,111,101,115,10,32,32,32,32,110,111,116,32, + 99,111,110,102,111,114,109,32,116,111,32,80,69,80,32,51, + 49,52,55,47,52,56,56,32,102,111,114,109,97,116,44,32, + 86,97,108,117,101,69,114,114,111,114,32,119,105,108,108,32, + 98,101,32,114,97,105,115,101,100,46,32,73,102,10,32,32, + 32,32,115,121,115,46,105,109,112,108,101,109,101,110,116,97, + 116,105,111,110,46,99,97,99,104,101,95,116,97,103,32,105, + 115,32,78,111,110,101,32,116,104,101,110,32,78,111,116,73, + 109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,32, + 105,115,32,114,97,105,115,101,100,46,10,10,32,32,32,32, + 78,114,101,0,0,0,70,84,122,31,32,110,111,116,32,98, + 111,116,116,111,109,45,108,101,118,101,108,32,100,105,114,101, + 99,116,111,114,121,32,105,110,32,114,100,0,0,0,62,2, + 0,0,0,114,47,0,0,0,233,3,0,0,0,122,29,101, + 120,112,101,99,116,101,100,32,111,110,108,121,32,50,32,111, + 114,32,51,32,100,111,116,115,32,105,110,32,114,125,0,0, + 0,114,47,0,0,0,233,254,255,255,255,122,53,111,112,116, + 105,109,105,122,97,116,105,111,110,32,112,111,114,116,105,111, + 110,32,111,102,32,102,105,108,101,110,97,109,101,32,100,111, + 101,115,32,110,111,116,32,115,116,97,114,116,32,119,105,116, + 104,32,122,19,111,112,116,105,109,105,122,97,116,105,111,110, + 32,108,101,118,101,108,32,122,29,32,105,115,32,110,111,116, + 32,97,110,32,97,108,112,104,97,110,117,109,101,114,105,99, + 32,118,97,108,117,101,114,0,0,0,0,41,22,114,18,0, + 0,0,114,108,0,0,0,114,109,0,0,0,114,110,0,0, + 0,114,21,0,0,0,114,106,0,0,0,114,77,0,0,0, + 114,117,0,0,0,114,52,0,0,0,114,53,0,0,0,114, + 29,0,0,0,114,62,0,0,0,114,4,0,0,0,114,119, + 0,0,0,114,114,0,0,0,218,5,99,111,117,110,116,218, + 6,114,115,112,108,105,116,114,115,0,0,0,114,113,0,0, + 0,218,9,112,97,114,116,105,116,105,111,110,114,70,0,0, + 0,218,15,83,79,85,82,67,69,95,83,85,70,70,73,88, + 69,83,41,10,114,68,0,0,0,114,121,0,0,0,90,16, + 112,121,99,97,99,104,101,95,102,105,108,101,110,97,109,101, + 90,23,102,111,117,110,100,95,105,110,95,112,121,99,97,99, + 104,101,95,112,114,101,102,105,120,90,13,115,116,114,105,112, + 112,101,100,95,112,97,116,104,90,7,112,121,99,97,99,104, + 101,90,9,100,111,116,95,99,111,117,110,116,114,99,0,0, + 0,90,9,111,112,116,95,108,101,118,101,108,90,13,98,97, + 115,101,95,102,105,108,101,110,97,109,101,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,218,17,115,111,117,114, + 99,101,95,102,114,111,109,95,99,97,99,104,101,195,1,0, + 0,115,60,0,0,0,12,9,8,1,10,1,12,1,4,1, + 10,1,12,1,14,1,16,1,4,1,4,1,12,1,8,1, + 8,1,2,1,8,255,10,2,8,1,14,1,8,1,16,1, + 10,1,4,1,2,1,8,255,16,2,8,1,16,1,14,2, + 18,1,114,131,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,9,0,0,0,67,0,0,0, + 115,124,0,0,0,116,0,124,0,131,1,100,1,107,2,114, + 8,100,2,83,0,124,0,160,1,100,3,161,1,92,3,125, + 1,125,2,125,3,124,1,114,28,124,3,160,2,161,0,100, + 4,100,5,133,2,25,0,100,6,107,3,114,30,124,0,83, + 0,122,6,116,3,124,0,131,1,125,4,87,0,110,17,4, + 0,116,4,116,5,102,2,121,53,1,0,1,0,1,0,124, + 0,100,2,100,5,133,2,25,0,125,4,89,0,110,1,119, + 0,116,6,124,4,131,1,114,60,124,4,83,0,124,0,83, + 0,41,7,122,188,67,111,110,118,101,114,116,32,97,32,98, + 121,116,101,99,111,100,101,32,102,105,108,101,32,112,97,116, + 104,32,116,111,32,97,32,115,111,117,114,99,101,32,112,97, + 116,104,32,40,105,102,32,112,111,115,115,105,98,108,101,41, + 46,10,10,32,32,32,32,84,104,105,115,32,102,117,110,99, + 116,105,111,110,32,101,120,105,115,116,115,32,112,117,114,101, + 108,121,32,102,111,114,32,98,97,99,107,119,97,114,100,115, + 45,99,111,109,112,97,116,105,98,105,108,105,116,121,32,102, + 111,114,10,32,32,32,32,80,121,73,109,112,111,114,116,95, + 69,120,101,99,67,111,100,101,77,111,100,117,108,101,87,105, + 116,104,70,105,108,101,110,97,109,101,115,40,41,32,105,110, + 32,116,104,101,32,67,32,65,80,73,46,10,10,32,32,32, + 32,114,0,0,0,0,78,114,100,0,0,0,233,253,255,255, + 255,233,255,255,255,255,90,2,112,121,41,7,114,4,0,0, + 0,114,107,0,0,0,218,5,108,111,119,101,114,114,131,0, + 0,0,114,110,0,0,0,114,114,0,0,0,114,83,0,0, + 0,41,5,218,13,98,121,116,101,99,111,100,101,95,112,97, + 116,104,114,122,0,0,0,218,1,95,218,9,101,120,116,101, + 110,115,105,111,110,218,11,115,111,117,114,99,101,95,112,97, + 116,104,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,218,15,95,103,101,116,95,115,111,117,114,99,101,102,105, + 108,101,235,1,0,0,115,22,0,0,0,12,7,4,1,16, + 1,24,1,4,1,2,1,12,1,16,1,16,1,2,255,16, + 2,114,139,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,8,0,0,0,67,0,0,0,115, + 68,0,0,0,124,0,160,0,116,1,116,2,131,1,161,1, + 114,23,122,5,116,3,124,0,131,1,87,0,83,0,4,0, + 116,4,121,22,1,0,1,0,1,0,89,0,100,0,83,0, + 119,0,124,0,160,0,116,1,116,5,131,1,161,1,114,32, + 124,0,83,0,100,0,83,0,114,72,0,0,0,41,6,114, + 61,0,0,0,218,5,116,117,112,108,101,114,130,0,0,0, + 114,124,0,0,0,114,110,0,0,0,114,116,0,0,0,41, + 1,114,123,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,11,95,103,101,116,95,99,97,99,104, + 101,100,254,1,0,0,115,18,0,0,0,14,1,2,1,10, + 1,12,1,6,1,2,255,14,2,4,1,4,2,114,141,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,8,0,0,0,67,0,0,0,115,50,0,0,0, + 122,7,116,0,124,0,131,1,106,1,125,1,87,0,110,11, + 4,0,116,2,121,18,1,0,1,0,1,0,100,1,125,1, + 89,0,110,1,119,0,124,1,100,2,79,0,125,1,124,1, + 83,0,41,3,122,51,67,97,108,99,117,108,97,116,101,32, + 116,104,101,32,109,111,100,101,32,112,101,114,109,105,115,115, + 105,111,110,115,32,102,111,114,32,97,32,98,121,116,101,99, + 111,100,101,32,102,105,108,101,46,114,90,0,0,0,233,128, + 0,0,0,41,3,114,78,0,0,0,114,80,0,0,0,114, + 79,0,0,0,41,2,114,68,0,0,0,114,81,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, - 15,95,103,101,116,95,115,111,117,114,99,101,102,105,108,101, - 235,1,0,0,115,22,0,0,0,12,7,4,1,16,1,24, - 1,4,1,2,1,12,1,16,1,16,1,2,255,16,2,114, - 135,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,8,0,0,0,67,0,0,0,115,68,0, - 0,0,124,0,160,0,116,1,116,2,131,1,161,1,114,23, - 122,5,116,3,124,0,131,1,87,0,83,0,4,0,116,4, - 121,22,1,0,1,0,1,0,89,0,100,0,83,0,119,0, - 124,0,160,0,116,1,116,5,131,1,161,1,114,32,124,0, - 83,0,100,0,83,0,114,69,0,0,0,41,6,114,58,0, - 0,0,218,5,116,117,112,108,101,114,127,0,0,0,114,121, - 0,0,0,114,107,0,0,0,114,113,0,0,0,41,1,114, - 120,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,11,95,103,101,116,95,99,97,99,104,101,100, - 254,1,0,0,115,18,0,0,0,14,1,2,1,10,1,12, - 1,6,1,2,255,14,2,4,1,4,2,114,137,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,8,0,0,0,67,0,0,0,115,50,0,0,0,122,7, - 116,0,124,0,131,1,106,1,125,1,87,0,110,11,4,0, - 116,2,121,18,1,0,1,0,1,0,100,1,125,1,89,0, - 110,1,119,0,124,1,100,2,79,0,125,1,124,1,83,0, - 41,3,122,51,67,97,108,99,117,108,97,116,101,32,116,104, - 101,32,109,111,100,101,32,112,101,114,109,105,115,115,105,111, - 110,115,32,102,111,114,32,97,32,98,121,116,101,99,111,100, - 101,32,102,105,108,101,46,114,87,0,0,0,233,128,0,0, - 0,41,3,114,75,0,0,0,114,77,0,0,0,114,76,0, - 0,0,41,2,114,65,0,0,0,114,78,0,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,218,10,95, - 99,97,108,99,95,109,111,100,101,10,2,0,0,115,14,0, - 0,0,2,2,14,1,12,1,8,1,2,255,8,4,4,1, - 114,139,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,4,0,0,0,3,0,0,0,115,52, - 0,0,0,100,6,135,0,102,1,100,2,100,3,132,9,125, - 1,116,0,100,1,117,1,114,15,116,0,106,1,125,2,110, - 4,100,4,100,5,132,0,125,2,124,2,124,1,136,0,131, - 2,1,0,124,1,83,0,41,7,122,252,68,101,99,111,114, - 97,116,111,114,32,116,111,32,118,101,114,105,102,121,32,116, - 104,97,116,32,116,104,101,32,109,111,100,117,108,101,32,98, - 101,105,110,103,32,114,101,113,117,101,115,116,101,100,32,109, - 97,116,99,104,101,115,32,116,104,101,32,111,110,101,32,116, - 104,101,10,32,32,32,32,108,111,97,100,101,114,32,99,97, - 110,32,104,97,110,100,108,101,46,10,10,32,32,32,32,84, - 104,101,32,102,105,114,115,116,32,97,114,103,117,109,101,110, - 116,32,40,115,101,108,102,41,32,109,117,115,116,32,100,101, - 102,105,110,101,32,95,110,97,109,101,32,119,104,105,99,104, - 32,116,104,101,32,115,101,99,111,110,100,32,97,114,103,117, - 109,101,110,116,32,105,115,10,32,32,32,32,99,111,109,112, - 97,114,101,100,32,97,103,97,105,110,115,116,46,32,73,102, - 32,116,104,101,32,99,111,109,112,97,114,105,115,111,110,32, - 102,97,105,108,115,32,116,104,101,110,32,73,109,112,111,114, - 116,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100, - 46,10,10,32,32,32,32,78,99,2,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,4,0,0,0,31,0,0, - 0,115,72,0,0,0,124,1,100,0,117,0,114,8,124,0, - 106,0,125,1,110,16,124,0,106,0,124,1,107,3,114,24, - 116,1,100,1,124,0,106,0,124,1,102,2,22,0,124,1, - 100,2,141,2,130,1,136,0,124,0,124,1,103,2,124,2, - 162,1,82,0,105,0,124,3,164,1,142,1,83,0,41,3, - 78,122,30,108,111,97,100,101,114,32,102,111,114,32,37,115, - 32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,37, - 115,169,1,218,4,110,97,109,101,41,2,114,141,0,0,0, - 218,11,73,109,112,111,114,116,69,114,114,111,114,41,4,218, - 4,115,101,108,102,114,141,0,0,0,218,4,97,114,103,115, - 218,6,107,119,97,114,103,115,169,1,218,6,109,101,116,104, - 111,100,114,7,0,0,0,114,8,0,0,0,218,19,95,99, - 104,101,99,107,95,110,97,109,101,95,119,114,97,112,112,101, - 114,30,2,0,0,115,18,0,0,0,8,1,8,1,10,1, - 4,1,8,1,2,255,2,1,6,255,24,2,122,40,95,99, - 104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,108, - 115,62,46,95,99,104,101,99,107,95,110,97,109,101,95,119, - 114,97,112,112,101,114,99,2,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,7,0,0,0,83,0,0,0,115, - 56,0,0,0,100,1,68,0,93,16,125,2,116,0,124,1, - 124,2,131,2,114,18,116,1,124,0,124,2,116,2,124,1, - 124,2,131,2,131,3,1,0,113,2,124,0,106,3,160,4, - 124,1,106,3,161,1,1,0,100,0,83,0,41,2,78,41, - 4,218,10,95,95,109,111,100,117,108,101,95,95,218,8,95, - 95,110,97,109,101,95,95,218,12,95,95,113,117,97,108,110, - 97,109,101,95,95,218,7,95,95,100,111,99,95,95,41,5, - 218,7,104,97,115,97,116,116,114,218,7,115,101,116,97,116, - 116,114,218,7,103,101,116,97,116,116,114,218,8,95,95,100, - 105,99,116,95,95,218,6,117,112,100,97,116,101,41,3,90, - 3,110,101,119,90,3,111,108,100,114,85,0,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,218,5,95, - 119,114,97,112,43,2,0,0,115,10,0,0,0,8,1,10, - 1,18,1,2,128,18,1,122,26,95,99,104,101,99,107,95, - 110,97,109,101,46,60,108,111,99,97,108,115,62,46,95,119, - 114,97,112,114,69,0,0,0,41,2,218,10,95,98,111,111, - 116,115,116,114,97,112,114,158,0,0,0,41,3,114,147,0, - 0,0,114,148,0,0,0,114,158,0,0,0,114,7,0,0, - 0,114,146,0,0,0,114,8,0,0,0,218,11,95,99,104, - 101,99,107,95,110,97,109,101,22,2,0,0,115,12,0,0, - 0,14,8,8,10,8,1,8,2,10,6,4,1,114,160,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,6,0,0,0,67,0,0,0,115,72,0,0,0, - 116,0,160,1,100,1,116,2,161,2,1,0,124,0,160,3, - 124,1,161,1,92,2,125,2,125,3,124,2,100,2,117,0, - 114,34,116,4,124,3,131,1,114,34,100,3,125,4,116,0, - 160,1,124,4,160,5,124,3,100,4,25,0,161,1,116,6, - 161,2,1,0,124,2,83,0,41,5,122,155,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,32,98,121,32,100,101,108, - 101,103,97,116,105,110,103,32,116,111,10,32,32,32,32,115, - 101,108,102,46,102,105,110,100,95,108,111,97,100,101,114,40, - 41,46,10,10,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,32,105,110,32,102,97,118,111,114,32,111,102,32,102,105, - 110,100,101,114,46,102,105,110,100,95,115,112,101,99,40,41, - 46,10,10,32,32,32,32,122,90,102,105,110,100,95,109,111, - 100,117,108,101,40,41,32,105,115,32,100,101,112,114,101,99, - 97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32, - 102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80, - 121,116,104,111,110,32,51,46,49,50,59,32,117,115,101,32, - 102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116, - 101,97,100,78,122,44,78,111,116,32,105,109,112,111,114,116, - 105,110,103,32,100,105,114,101,99,116,111,114,121,32,123,125, - 58,32,109,105,115,115,105,110,103,32,95,95,105,110,105,116, - 95,95,114,0,0,0,0,41,7,114,99,0,0,0,114,100, - 0,0,0,114,101,0,0,0,218,11,102,105,110,100,95,108, - 111,97,100,101,114,114,4,0,0,0,114,89,0,0,0,218, - 13,73,109,112,111,114,116,87,97,114,110,105,110,103,41,5, - 114,143,0,0,0,218,8,102,117,108,108,110,97,109,101,218, - 6,108,111,97,100,101,114,218,8,112,111,114,116,105,111,110, - 115,218,3,109,115,103,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,218,17,95,102,105,110,100,95,109,111,100, - 117,108,101,95,115,104,105,109,53,2,0,0,115,16,0,0, - 0,6,7,2,2,4,254,14,6,16,1,4,1,22,1,4, - 1,114,167,0,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,4,0,0,0,67,0,0,0,115, - 166,0,0,0,124,0,100,1,100,2,133,2,25,0,125,3, - 124,3,116,0,107,3,114,32,100,3,124,1,155,2,100,4, - 124,3,155,2,157,4,125,4,116,1,160,2,100,5,124,4, - 161,2,1,0,116,3,124,4,102,1,105,0,124,2,164,1, - 142,1,130,1,116,4,124,0,131,1,100,6,107,0,114,53, - 100,7,124,1,155,2,157,2,125,4,116,1,160,2,100,5, - 124,4,161,2,1,0,116,5,124,4,131,1,130,1,116,6, - 124,0,100,2,100,8,133,2,25,0,131,1,125,5,124,5, - 100,9,64,0,114,81,100,10,124,5,155,2,100,11,124,1, - 155,2,157,4,125,4,116,3,124,4,102,1,105,0,124,2, - 164,1,142,1,130,1,124,5,83,0,41,12,97,84,2,0, - 0,80,101,114,102,111,114,109,32,98,97,115,105,99,32,118, - 97,108,105,100,105,116,121,32,99,104,101,99,107,105,110,103, - 32,111,102,32,97,32,112,121,99,32,104,101,97,100,101,114, - 32,97,110,100,32,114,101,116,117,114,110,32,116,104,101,32, - 102,108,97,103,115,32,102,105,101,108,100,44,10,32,32,32, - 32,119,104,105,99,104,32,100,101,116,101,114,109,105,110,101, - 115,32,104,111,119,32,116,104,101,32,112,121,99,32,115,104, - 111,117,108,100,32,98,101,32,102,117,114,116,104,101,114,32, - 118,97,108,105,100,97,116,101,100,32,97,103,97,105,110,115, - 116,32,116,104,101,32,115,111,117,114,99,101,46,10,10,32, - 32,32,32,42,100,97,116,97,42,32,105,115,32,116,104,101, - 32,99,111,110,116,101,110,116,115,32,111,102,32,116,104,101, - 32,112,121,99,32,102,105,108,101,46,32,40,79,110,108,121, - 32,116,104,101,32,102,105,114,115,116,32,49,54,32,98,121, - 116,101,115,32,97,114,101,10,32,32,32,32,114,101,113,117, - 105,114,101,100,44,32,116,104,111,117,103,104,46,41,10,10, - 32,32,32,32,42,110,97,109,101,42,32,105,115,32,116,104, - 101,32,110,97,109,101,32,111,102,32,116,104,101,32,109,111, - 100,117,108,101,32,98,101,105,110,103,32,105,109,112,111,114, - 116,101,100,46,32,73,116,32,105,115,32,117,115,101,100,32, - 102,111,114,32,108,111,103,103,105,110,103,46,10,10,32,32, - 32,32,42,101,120,99,95,100,101,116,97,105,108,115,42,32, - 105,115,32,97,32,100,105,99,116,105,111,110,97,114,121,32, - 112,97,115,115,101,100,32,116,111,32,73,109,112,111,114,116, - 69,114,114,111,114,32,105,102,32,105,116,32,114,97,105,115, - 101,100,32,102,111,114,10,32,32,32,32,105,109,112,114,111, - 118,101,100,32,100,101,98,117,103,103,105,110,103,46,10,10, - 32,32,32,32,73,109,112,111,114,116,69,114,114,111,114,32, - 105,115,32,114,97,105,115,101,100,32,119,104,101,110,32,116, - 104,101,32,109,97,103,105,99,32,110,117,109,98,101,114,32, - 105,115,32,105,110,99,111,114,114,101,99,116,32,111,114,32, - 119,104,101,110,32,116,104,101,32,102,108,97,103,115,10,32, - 32,32,32,102,105,101,108,100,32,105,115,32,105,110,118,97, - 108,105,100,46,32,69,79,70,69,114,114,111,114,32,105,115, - 32,114,97,105,115,101,100,32,119,104,101,110,32,116,104,101, - 32,100,97,116,97,32,105,115,32,102,111,117,110,100,32,116, - 111,32,98,101,32,116,114,117,110,99,97,116,101,100,46,10, - 10,32,32,32,32,78,114,31,0,0,0,122,20,98,97,100, - 32,109,97,103,105,99,32,110,117,109,98,101,114,32,105,110, - 32,122,2,58,32,250,2,123,125,233,16,0,0,0,122,40, - 114,101,97,99,104,101,100,32,69,79,70,32,119,104,105,108, - 101,32,114,101,97,100,105,110,103,32,112,121,99,32,104,101, - 97,100,101,114,32,111,102,32,233,8,0,0,0,233,252,255, - 255,255,122,14,105,110,118,97,108,105,100,32,102,108,97,103, - 115,32,122,4,32,105,110,32,41,7,218,12,77,65,71,73, - 67,95,78,85,77,66,69,82,114,159,0,0,0,218,16,95, - 118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,114, - 142,0,0,0,114,4,0,0,0,218,8,69,79,70,69,114, - 114,111,114,114,42,0,0,0,41,6,114,41,0,0,0,114, - 141,0,0,0,218,11,101,120,99,95,100,101,116,97,105,108, - 115,90,5,109,97,103,105,99,114,117,0,0,0,114,16,0, - 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,218,13,95,99,108,97,115,115,105,102,121,95,112,121,99, - 73,2,0,0,115,28,0,0,0,12,16,8,1,16,1,12, - 1,16,1,12,1,10,1,12,1,8,1,16,1,8,2,16, - 1,16,1,4,1,114,176,0,0,0,99,5,0,0,0,0, - 0,0,0,0,0,0,0,6,0,0,0,4,0,0,0,67, - 0,0,0,115,124,0,0,0,116,0,124,0,100,1,100,2, - 133,2,25,0,131,1,124,1,100,3,64,0,107,3,114,31, - 100,4,124,3,155,2,157,2,125,5,116,1,160,2,100,5, - 124,5,161,2,1,0,116,3,124,5,102,1,105,0,124,4, - 164,1,142,1,130,1,124,2,100,6,117,1,114,58,116,0, - 124,0,100,2,100,7,133,2,25,0,131,1,124,2,100,3, - 64,0,107,3,114,60,116,3,100,4,124,3,155,2,157,2, - 102,1,105,0,124,4,164,1,142,1,130,1,100,6,83,0, - 100,6,83,0,41,8,97,7,2,0,0,86,97,108,105,100, - 97,116,101,32,97,32,112,121,99,32,97,103,97,105,110,115, - 116,32,116,104,101,32,115,111,117,114,99,101,32,108,97,115, - 116,45,109,111,100,105,102,105,101,100,32,116,105,109,101,46, - 10,10,32,32,32,32,42,100,97,116,97,42,32,105,115,32, - 116,104,101,32,99,111,110,116,101,110,116,115,32,111,102,32, - 116,104,101,32,112,121,99,32,102,105,108,101,46,32,40,79, - 110,108,121,32,116,104,101,32,102,105,114,115,116,32,49,54, - 32,98,121,116,101,115,32,97,114,101,10,32,32,32,32,114, - 101,113,117,105,114,101,100,46,41,10,10,32,32,32,32,42, - 115,111,117,114,99,101,95,109,116,105,109,101,42,32,105,115, - 32,116,104,101,32,108,97,115,116,32,109,111,100,105,102,105, - 101,100,32,116,105,109,101,115,116,97,109,112,32,111,102,32, - 116,104,101,32,115,111,117,114,99,101,32,102,105,108,101,46, - 10,10,32,32,32,32,42,115,111,117,114,99,101,95,115,105, - 122,101,42,32,105,115,32,78,111,110,101,32,111,114,32,116, - 104,101,32,115,105,122,101,32,111,102,32,116,104,101,32,115, - 111,117,114,99,101,32,102,105,108,101,32,105,110,32,98,121, - 116,101,115,46,10,10,32,32,32,32,42,110,97,109,101,42, - 32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,32, - 116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103, - 32,105,109,112,111,114,116,101,100,46,32,73,116,32,105,115, - 32,117,115,101,100,32,102,111,114,32,108,111,103,103,105,110, - 103,46,10,10,32,32,32,32,42,101,120,99,95,100,101,116, - 97,105,108,115,42,32,105,115,32,97,32,100,105,99,116,105, - 111,110,97,114,121,32,112,97,115,115,101,100,32,116,111,32, - 73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,105, - 116,32,114,97,105,115,101,100,32,102,111,114,10,32,32,32, - 32,105,109,112,114,111,118,101,100,32,100,101,98,117,103,103, - 105,110,103,46,10,10,32,32,32,32,65,110,32,73,109,112, + 10,95,99,97,108,99,95,109,111,100,101,10,2,0,0,115, + 14,0,0,0,2,2,14,1,12,1,8,1,2,255,8,4, + 4,1,114,143,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0, + 115,52,0,0,0,100,6,135,0,102,1,100,2,100,3,132, + 9,125,1,116,0,100,1,117,1,114,15,116,0,106,1,125, + 2,110,4,100,4,100,5,132,0,125,2,124,2,124,1,136, + 0,131,2,1,0,124,1,83,0,41,7,122,252,68,101,99, + 111,114,97,116,111,114,32,116,111,32,118,101,114,105,102,121, + 32,116,104,97,116,32,116,104,101,32,109,111,100,117,108,101, + 32,98,101,105,110,103,32,114,101,113,117,101,115,116,101,100, + 32,109,97,116,99,104,101,115,32,116,104,101,32,111,110,101, + 32,116,104,101,10,32,32,32,32,108,111,97,100,101,114,32, + 99,97,110,32,104,97,110,100,108,101,46,10,10,32,32,32, + 32,84,104,101,32,102,105,114,115,116,32,97,114,103,117,109, + 101,110,116,32,40,115,101,108,102,41,32,109,117,115,116,32, + 100,101,102,105,110,101,32,95,110,97,109,101,32,119,104,105, + 99,104,32,116,104,101,32,115,101,99,111,110,100,32,97,114, + 103,117,109,101,110,116,32,105,115,10,32,32,32,32,99,111, + 109,112,97,114,101,100,32,97,103,97,105,110,115,116,46,32, + 73,102,32,116,104,101,32,99,111,109,112,97,114,105,115,111, + 110,32,102,97,105,108,115,32,116,104,101,110,32,73,109,112, 111,114,116,69,114,114,111,114,32,105,115,32,114,97,105,115, - 101,100,32,105,102,32,116,104,101,32,98,121,116,101,99,111, - 100,101,32,105,115,32,115,116,97,108,101,46,10,10,32,32, - 32,32,114,170,0,0,0,233,12,0,0,0,114,30,0,0, - 0,122,22,98,121,116,101,99,111,100,101,32,105,115,32,115, - 116,97,108,101,32,102,111,114,32,114,168,0,0,0,78,114, - 169,0,0,0,41,4,114,42,0,0,0,114,159,0,0,0, - 114,173,0,0,0,114,142,0,0,0,41,6,114,41,0,0, - 0,218,12,115,111,117,114,99,101,95,109,116,105,109,101,218, - 11,115,111,117,114,99,101,95,115,105,122,101,114,141,0,0, - 0,114,175,0,0,0,114,117,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,218,23,95,118,97,108, - 105,100,97,116,101,95,116,105,109,101,115,116,97,109,112,95, - 112,121,99,106,2,0,0,115,18,0,0,0,24,19,10,1, - 12,1,16,1,8,1,24,1,22,1,4,254,4,1,114,180, - 0,0,0,99,4,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,4,0,0,0,67,0,0,0,115,42,0,0, - 0,124,0,100,1,100,2,133,2,25,0,124,1,107,3,114, - 19,116,0,100,3,124,2,155,2,157,2,102,1,105,0,124, - 3,164,1,142,1,130,1,100,4,83,0,41,5,97,243,1, - 0,0,86,97,108,105,100,97,116,101,32,97,32,104,97,115, - 104,45,98,97,115,101,100,32,112,121,99,32,98,121,32,99, - 104,101,99,107,105,110,103,32,116,104,101,32,114,101,97,108, - 32,115,111,117,114,99,101,32,104,97,115,104,32,97,103,97, - 105,110,115,116,32,116,104,101,32,111,110,101,32,105,110,10, - 32,32,32,32,116,104,101,32,112,121,99,32,104,101,97,100, - 101,114,46,10,10,32,32,32,32,42,100,97,116,97,42,32, - 105,115,32,116,104,101,32,99,111,110,116,101,110,116,115,32, - 111,102,32,116,104,101,32,112,121,99,32,102,105,108,101,46, - 32,40,79,110,108,121,32,116,104,101,32,102,105,114,115,116, - 32,49,54,32,98,121,116,101,115,32,97,114,101,10,32,32, - 32,32,114,101,113,117,105,114,101,100,46,41,10,10,32,32, - 32,32,42,115,111,117,114,99,101,95,104,97,115,104,42,32, - 105,115,32,116,104,101,32,105,109,112,111,114,116,108,105,98, - 46,117,116,105,108,46,115,111,117,114,99,101,95,104,97,115, - 104,40,41,32,111,102,32,116,104,101,32,115,111,117,114,99, - 101,32,102,105,108,101,46,10,10,32,32,32,32,42,110,97, - 109,101,42,32,105,115,32,116,104,101,32,110,97,109,101,32, - 111,102,32,116,104,101,32,109,111,100,117,108,101,32,98,101, - 105,110,103,32,105,109,112,111,114,116,101,100,46,32,73,116, - 32,105,115,32,117,115,101,100,32,102,111,114,32,108,111,103, - 103,105,110,103,46,10,10,32,32,32,32,42,101,120,99,95, - 100,101,116,97,105,108,115,42,32,105,115,32,97,32,100,105, - 99,116,105,111,110,97,114,121,32,112,97,115,115,101,100,32, - 116,111,32,73,109,112,111,114,116,69,114,114,111,114,32,105, - 102,32,105,116,32,114,97,105,115,101,100,32,102,111,114,10, - 32,32,32,32,105,109,112,114,111,118,101,100,32,100,101,98, - 117,103,103,105,110,103,46,10,10,32,32,32,32,65,110,32, - 73,109,112,111,114,116,69,114,114,111,114,32,105,115,32,114, - 97,105,115,101,100,32,105,102,32,116,104,101,32,98,121,116, - 101,99,111,100,101,32,105,115,32,115,116,97,108,101,46,10, - 10,32,32,32,32,114,170,0,0,0,114,169,0,0,0,122, - 46,104,97,115,104,32,105,110,32,98,121,116,101,99,111,100, - 101,32,100,111,101,115,110,39,116,32,109,97,116,99,104,32, - 104,97,115,104,32,111,102,32,115,111,117,114,99,101,32,78, - 41,1,114,142,0,0,0,41,4,114,41,0,0,0,218,11, - 115,111,117,114,99,101,95,104,97,115,104,114,141,0,0,0, - 114,175,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,218,18,95,118,97,108,105,100,97,116,101,95, - 104,97,115,104,95,112,121,99,134,2,0,0,115,14,0,0, - 0,16,17,2,1,8,1,4,255,2,2,6,254,4,255,114, - 182,0,0,0,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,76,0, - 0,0,116,0,160,1,124,0,161,1,125,4,116,2,124,4, - 116,3,131,2,114,28,116,4,160,5,100,1,124,2,161,2, - 1,0,124,3,100,2,117,1,114,26,116,6,160,7,124,4, - 124,3,161,2,1,0,124,4,83,0,116,8,100,3,160,9, - 124,2,161,1,124,1,124,2,100,4,141,3,130,1,41,5, - 122,35,67,111,109,112,105,108,101,32,98,121,116,101,99,111, - 100,101,32,97,115,32,102,111,117,110,100,32,105,110,32,97, - 32,112,121,99,46,122,21,99,111,100,101,32,111,98,106,101, - 99,116,32,102,114,111,109,32,123,33,114,125,78,122,23,78, - 111,110,45,99,111,100,101,32,111,98,106,101,99,116,32,105, - 110,32,123,33,114,125,169,2,114,141,0,0,0,114,65,0, - 0,0,41,10,218,7,109,97,114,115,104,97,108,90,5,108, - 111,97,100,115,218,10,105,115,105,110,115,116,97,110,99,101, - 218,10,95,99,111,100,101,95,116,121,112,101,114,159,0,0, - 0,114,173,0,0,0,218,4,95,105,109,112,90,16,95,102, - 105,120,95,99,111,95,102,105,108,101,110,97,109,101,114,142, - 0,0,0,114,89,0,0,0,41,5,114,41,0,0,0,114, - 141,0,0,0,114,132,0,0,0,114,134,0,0,0,218,4, - 99,111,100,101,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,17,95,99,111,109,112,105,108,101,95,98,121, - 116,101,99,111,100,101,158,2,0,0,115,18,0,0,0,10, - 2,10,1,12,1,8,1,12,1,4,1,10,2,4,1,6, - 255,114,189,0,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,5,0,0,0,67,0,0,0,115, - 70,0,0,0,116,0,116,1,131,1,125,3,124,3,160,2, - 116,3,100,1,131,1,161,1,1,0,124,3,160,2,116,3, - 124,1,131,1,161,1,1,0,124,3,160,2,116,3,124,2, - 131,1,161,1,1,0,124,3,160,2,116,4,160,5,124,0, - 161,1,161,1,1,0,124,3,83,0,41,2,122,43,80,114, - 111,100,117,99,101,32,116,104,101,32,100,97,116,97,32,102, - 111,114,32,97,32,116,105,109,101,115,116,97,109,112,45,98, - 97,115,101,100,32,112,121,99,46,114,0,0,0,0,41,6, - 218,9,98,121,116,101,97,114,114,97,121,114,172,0,0,0, - 218,6,101,120,116,101,110,100,114,36,0,0,0,114,184,0, - 0,0,218,5,100,117,109,112,115,41,4,114,188,0,0,0, - 218,5,109,116,105,109,101,114,179,0,0,0,114,41,0,0, - 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 218,22,95,99,111,100,101,95,116,111,95,116,105,109,101,115, - 116,97,109,112,95,112,121,99,171,2,0,0,115,12,0,0, - 0,8,2,14,1,14,1,14,1,16,1,4,1,114,194,0, - 0,0,84,99,3,0,0,0,0,0,0,0,0,0,0,0, - 5,0,0,0,5,0,0,0,67,0,0,0,115,80,0,0, - 0,116,0,116,1,131,1,125,3,100,1,124,2,100,1,62, - 0,66,0,125,4,124,3,160,2,116,3,124,4,131,1,161, - 1,1,0,116,4,124,1,131,1,100,2,107,2,115,25,74, - 0,130,1,124,3,160,2,124,1,161,1,1,0,124,3,160, - 2,116,5,160,6,124,0,161,1,161,1,1,0,124,3,83, - 0,41,3,122,38,80,114,111,100,117,99,101,32,116,104,101, - 32,100,97,116,97,32,102,111,114,32,97,32,104,97,115,104, - 45,98,97,115,101,100,32,112,121,99,46,114,3,0,0,0, - 114,170,0,0,0,41,7,114,190,0,0,0,114,172,0,0, - 0,114,191,0,0,0,114,36,0,0,0,114,4,0,0,0, - 114,184,0,0,0,114,192,0,0,0,41,5,114,188,0,0, - 0,114,181,0,0,0,90,7,99,104,101,99,107,101,100,114, - 41,0,0,0,114,16,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,218,17,95,99,111,100,101,95, - 116,111,95,104,97,115,104,95,112,121,99,181,2,0,0,115, - 14,0,0,0,8,2,12,1,14,1,16,1,10,1,16,1, - 4,1,114,195,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,5,0,0,0,6,0,0,0,67,0,0,0, - 115,62,0,0,0,100,1,100,2,108,0,125,1,116,1,160, - 2,124,0,161,1,106,3,125,2,124,1,160,4,124,2,161, - 1,125,3,116,1,160,5,100,2,100,3,161,2,125,4,124, - 4,160,6,124,0,160,6,124,3,100,1,25,0,161,1,161, - 1,83,0,41,4,122,121,68,101,99,111,100,101,32,98,121, - 116,101,115,32,114,101,112,114,101,115,101,110,116,105,110,103, - 32,115,111,117,114,99,101,32,99,111,100,101,32,97,110,100, - 32,114,101,116,117,114,110,32,116,104,101,32,115,116,114,105, - 110,103,46,10,10,32,32,32,32,85,110,105,118,101,114,115, - 97,108,32,110,101,119,108,105,110,101,32,115,117,112,112,111, - 114,116,32,105,115,32,117,115,101,100,32,105,110,32,116,104, - 101,32,100,101,99,111,100,105,110,103,46,10,32,32,32,32, - 114,0,0,0,0,78,84,41,7,218,8,116,111,107,101,110, - 105,122,101,114,91,0,0,0,90,7,66,121,116,101,115,73, - 79,90,8,114,101,97,100,108,105,110,101,90,15,100,101,116, - 101,99,116,95,101,110,99,111,100,105,110,103,90,25,73,110, - 99,114,101,109,101,110,116,97,108,78,101,119,108,105,110,101, - 68,101,99,111,100,101,114,218,6,100,101,99,111,100,101,41, - 5,218,12,115,111,117,114,99,101,95,98,121,116,101,115,114, - 196,0,0,0,90,21,115,111,117,114,99,101,95,98,121,116, - 101,115,95,114,101,97,100,108,105,110,101,218,8,101,110,99, - 111,100,105,110,103,90,15,110,101,119,108,105,110,101,95,100, - 101,99,111,100,101,114,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,218,13,100,101,99,111,100,101,95,115,111, - 117,114,99,101,192,2,0,0,115,10,0,0,0,8,5,12, - 1,10,1,12,1,20,1,114,200,0,0,0,169,2,114,164, - 0,0,0,218,26,115,117,98,109,111,100,117,108,101,95,115, - 101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,99, - 2,0,0,0,0,0,0,0,2,0,0,0,9,0,0,0, - 8,0,0,0,67,0,0,0,115,54,1,0,0,124,1,100, - 1,117,0,114,29,100,2,125,1,116,0,124,2,100,3,131, - 2,114,28,122,7,124,2,160,1,124,0,161,1,125,1,87, - 0,110,38,4,0,116,2,121,27,1,0,1,0,1,0,89, - 0,110,30,119,0,110,28,116,3,160,4,124,1,161,1,125, - 1,116,5,124,1,131,1,115,57,122,9,116,6,116,3,160, - 7,161,0,124,1,131,2,125,1,87,0,110,9,4,0,116, - 8,121,56,1,0,1,0,1,0,89,0,110,1,119,0,116, - 9,106,10,124,0,124,2,124,1,100,4,141,3,125,4,100, - 5,124,4,95,11,124,2,100,1,117,0,114,99,116,12,131, - 0,68,0,93,21,92,2,125,5,125,6,124,1,160,13,116, - 14,124,6,131,1,161,1,114,96,124,5,124,0,124,1,131, - 2,125,2,124,2,124,4,95,15,1,0,110,3,113,75,100, - 1,83,0,124,3,116,16,117,0,114,131,116,0,124,2,100, - 6,131,2,114,130,122,7,124,2,160,17,124,0,161,1,125, - 7,87,0,110,9,4,0,116,2,121,124,1,0,1,0,1, - 0,89,0,110,10,119,0,124,7,114,130,103,0,124,4,95, - 18,110,3,124,3,124,4,95,18,124,4,106,18,103,0,107, - 2,114,153,124,1,114,153,116,19,124,1,131,1,100,7,25, - 0,125,8,124,4,106,18,160,20,124,8,161,1,1,0,124, - 4,83,0,41,8,97,61,1,0,0,82,101,116,117,114,110, - 32,97,32,109,111,100,117,108,101,32,115,112,101,99,32,98, - 97,115,101,100,32,111,110,32,97,32,102,105,108,101,32,108, - 111,99,97,116,105,111,110,46,10,10,32,32,32,32,84,111, - 32,105,110,100,105,99,97,116,101,32,116,104,97,116,32,116, - 104,101,32,109,111,100,117,108,101,32,105,115,32,97,32,112, - 97,99,107,97,103,101,44,32,115,101,116,10,32,32,32,32, - 115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,104, - 95,108,111,99,97,116,105,111,110,115,32,116,111,32,97,32, - 108,105,115,116,32,111,102,32,100,105,114,101,99,116,111,114, - 121,32,112,97,116,104,115,46,32,32,65,110,10,32,32,32, - 32,101,109,112,116,121,32,108,105,115,116,32,105,115,32,115, - 117,102,102,105,99,105,101,110,116,44,32,116,104,111,117,103, - 104,32,105,116,115,32,110,111,116,32,111,116,104,101,114,119, - 105,115,101,32,117,115,101,102,117,108,32,116,111,32,116,104, - 101,10,32,32,32,32,105,109,112,111,114,116,32,115,121,115, - 116,101,109,46,10,10,32,32,32,32,84,104,101,32,108,111, - 97,100,101,114,32,109,117,115,116,32,116,97,107,101,32,97, - 32,115,112,101,99,32,97,115,32,105,116,115,32,111,110,108, - 121,32,95,95,105,110,105,116,95,95,40,41,32,97,114,103, - 46,10,10,32,32,32,32,78,122,9,60,117,110,107,110,111, - 119,110,62,218,12,103,101,116,95,102,105,108,101,110,97,109, - 101,169,1,218,6,111,114,105,103,105,110,84,218,10,105,115, - 95,112,97,99,107,97,103,101,114,0,0,0,0,41,21,114, - 153,0,0,0,114,203,0,0,0,114,142,0,0,0,114,18, - 0,0,0,114,103,0,0,0,114,86,0,0,0,114,67,0, - 0,0,114,82,0,0,0,114,76,0,0,0,114,159,0,0, - 0,218,10,77,111,100,117,108,101,83,112,101,99,90,13,95, - 115,101,116,95,102,105,108,101,97,116,116,114,218,27,95,103, - 101,116,95,115,117,112,112,111,114,116,101,100,95,102,105,108, - 101,95,108,111,97,100,101,114,115,114,58,0,0,0,114,136, - 0,0,0,114,164,0,0,0,218,9,95,80,79,80,85,76, - 65,84,69,114,206,0,0,0,114,202,0,0,0,114,74,0, - 0,0,114,61,0,0,0,41,9,114,141,0,0,0,90,8, - 108,111,99,97,116,105,111,110,114,164,0,0,0,114,202,0, - 0,0,218,4,115,112,101,99,218,12,108,111,97,100,101,114, - 95,99,108,97,115,115,218,8,115,117,102,102,105,120,101,115, - 114,206,0,0,0,90,7,100,105,114,110,97,109,101,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,218,23,115, - 112,101,99,95,102,114,111,109,95,102,105,108,101,95,108,111, - 99,97,116,105,111,110,209,2,0,0,115,84,0,0,0,8, - 12,4,4,10,1,2,2,14,1,12,1,4,1,2,255,2, - 252,10,7,8,1,2,1,18,1,12,1,4,1,2,255,16, - 9,6,1,8,3,14,1,14,1,10,1,6,1,4,1,2, - 253,4,5,8,3,10,2,2,1,14,1,12,1,4,1,2, - 255,4,3,6,1,2,128,6,2,10,1,4,1,12,1,12, - 1,4,2,114,213,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,64,0,0, - 0,115,88,0,0,0,101,0,90,1,100,0,90,2,100,1, - 90,3,100,2,90,4,100,3,90,5,101,6,111,15,100,4, - 101,7,118,0,90,8,101,9,100,5,100,6,132,0,131,1, - 90,10,101,11,100,7,100,8,132,0,131,1,90,12,101,11, - 100,14,100,10,100,11,132,1,131,1,90,13,101,11,100,15, - 100,12,100,13,132,1,131,1,90,14,100,9,83,0,41,16, - 218,21,87,105,110,100,111,119,115,82,101,103,105,115,116,114, - 121,70,105,110,100,101,114,122,62,77,101,116,97,32,112,97, - 116,104,32,102,105,110,100,101,114,32,102,111,114,32,109,111, - 100,117,108,101,115,32,100,101,99,108,97,114,101,100,32,105, - 110,32,116,104,101,32,87,105,110,100,111,119,115,32,114,101, - 103,105,115,116,114,121,46,122,59,83,111,102,116,119,97,114, - 101,92,80,121,116,104,111,110,92,80,121,116,104,111,110,67, - 111,114,101,92,123,115,121,115,95,118,101,114,115,105,111,110, - 125,92,77,111,100,117,108,101,115,92,123,102,117,108,108,110, - 97,109,101,125,122,65,83,111,102,116,119,97,114,101,92,80, - 121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,101, - 92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,77, - 111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,101, - 125,92,68,101,98,117,103,122,6,95,100,46,112,121,100,99, - 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 8,0,0,0,67,0,0,0,115,50,0,0,0,122,8,116, - 0,160,1,116,0,106,2,124,0,161,2,87,0,83,0,4, - 0,116,3,121,24,1,0,1,0,1,0,116,0,160,1,116, - 0,106,4,124,0,161,2,6,0,89,0,83,0,119,0,114, - 69,0,0,0,41,5,218,6,119,105,110,114,101,103,90,7, - 79,112,101,110,75,101,121,90,17,72,75,69,89,95,67,85, - 82,82,69,78,84,95,85,83,69,82,114,76,0,0,0,90, - 18,72,75,69,89,95,76,79,67,65,76,95,77,65,67,72, - 73,78,69,114,19,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,218,14,95,111,112,101,110,95,114, - 101,103,105,115,116,114,121,38,3,0,0,115,10,0,0,0, - 2,2,16,1,12,1,18,1,2,255,122,36,87,105,110,100, - 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101, - 114,46,95,111,112,101,110,95,114,101,103,105,115,116,114,121, - 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0, - 0,8,0,0,0,67,0,0,0,115,134,0,0,0,124,0, - 106,0,114,7,124,0,106,1,125,2,110,3,124,0,106,2, - 125,2,124,2,106,3,124,1,100,1,116,4,106,5,100,0, - 100,2,133,2,25,0,22,0,100,3,141,2,125,3,122,32, - 124,0,160,6,124,3,161,1,143,16,125,4,116,7,160,8, - 124,4,100,4,161,2,125,5,87,0,100,0,4,0,4,0, - 131,3,1,0,87,0,124,5,83,0,49,0,115,49,119,1, - 1,0,1,0,1,0,89,0,1,0,87,0,124,5,83,0, - 4,0,116,9,121,66,1,0,1,0,1,0,89,0,100,0, - 83,0,119,0,41,5,78,122,5,37,100,46,37,100,114,44, - 0,0,0,41,2,114,163,0,0,0,90,11,115,121,115,95, - 118,101,114,115,105,111,110,114,10,0,0,0,41,10,218,11, - 68,69,66,85,71,95,66,85,73,76,68,218,18,82,69,71, - 73,83,84,82,89,95,75,69,89,95,68,69,66,85,71,218, - 12,82,69,71,73,83,84,82,89,95,75,69,89,114,89,0, - 0,0,114,15,0,0,0,218,12,118,101,114,115,105,111,110, - 95,105,110,102,111,114,216,0,0,0,114,215,0,0,0,90, - 10,81,117,101,114,121,86,97,108,117,101,114,76,0,0,0, - 41,6,218,3,99,108,115,114,163,0,0,0,90,12,114,101, - 103,105,115,116,114,121,95,107,101,121,114,20,0,0,0,90, - 4,104,107,101,121,218,8,102,105,108,101,112,97,116,104,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,16, - 95,115,101,97,114,99,104,95,114,101,103,105,115,116,114,121, - 45,3,0,0,115,32,0,0,0,6,2,8,1,6,2,6, - 1,16,1,6,255,2,2,12,1,14,1,12,255,4,4,18, - 252,4,4,12,254,6,1,2,255,122,38,87,105,110,100,111, - 119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,114, - 46,95,115,101,97,114,99,104,95,114,101,103,105,115,116,114, - 121,78,99,4,0,0,0,0,0,0,0,0,0,0,0,8, - 0,0,0,8,0,0,0,67,0,0,0,115,120,0,0,0, - 124,0,160,0,124,1,161,1,125,4,124,4,100,0,117,0, - 114,11,100,0,83,0,122,6,116,1,124,4,131,1,1,0, - 87,0,110,10,4,0,116,2,121,27,1,0,1,0,1,0, - 89,0,100,0,83,0,119,0,116,3,131,0,68,0,93,26, - 92,2,125,5,125,6,124,4,160,4,116,5,124,6,131,1, - 161,1,114,57,116,6,106,7,124,1,124,5,124,1,124,4, - 131,2,124,4,100,1,141,3,125,7,124,7,2,0,1,0, - 83,0,113,31,100,0,83,0,41,2,78,114,204,0,0,0, - 41,8,114,223,0,0,0,114,75,0,0,0,114,76,0,0, - 0,114,208,0,0,0,114,58,0,0,0,114,136,0,0,0, - 114,159,0,0,0,218,16,115,112,101,99,95,102,114,111,109, - 95,108,111,97,100,101,114,41,8,114,221,0,0,0,114,163, - 0,0,0,114,65,0,0,0,218,6,116,97,114,103,101,116, - 114,222,0,0,0,114,164,0,0,0,114,212,0,0,0,114, - 210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,9,102,105,110,100,95,115,112,101,99,60,3, - 0,0,115,34,0,0,0,10,2,8,1,4,1,2,1,12, - 1,12,1,6,1,2,255,14,2,14,1,6,1,8,1,2, - 1,6,254,8,3,2,252,4,255,122,31,87,105,110,100,111, - 119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,114, - 46,102,105,110,100,95,115,112,101,99,99,3,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67, - 0,0,0,115,42,0,0,0,116,0,160,1,100,1,116,2, - 161,2,1,0,124,0,160,3,124,1,124,2,161,2,125,3, - 124,3,100,2,117,1,114,19,124,3,106,4,83,0,100,2, - 83,0,41,3,122,106,70,105,110,100,32,109,111,100,117,108, - 101,32,110,97,109,101,100,32,105,110,32,116,104,101,32,114, - 101,103,105,115,116,114,121,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, - 122,112,87,105,110,100,111,119,115,82,101,103,105,115,116,114, - 121,70,105,110,100,101,114,46,102,105,110,100,95,109,111,100, - 117,108,101,40,41,32,105,115,32,100,101,112,114,101,99,97, - 116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,102, - 111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,121, - 116,104,111,110,32,51,46,49,50,59,32,117,115,101,32,102, - 105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,101, - 97,100,78,169,5,114,99,0,0,0,114,100,0,0,0,114, - 101,0,0,0,114,226,0,0,0,114,164,0,0,0,169,4, - 114,221,0,0,0,114,163,0,0,0,114,65,0,0,0,114, - 210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,11,102,105,110,100,95,109,111,100,117,108,101, - 76,3,0,0,115,14,0,0,0,6,7,2,2,4,254,12, - 3,8,1,6,1,4,2,122,33,87,105,110,100,111,119,115, - 82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,102, - 105,110,100,95,109,111,100,117,108,101,169,2,78,78,114,69, - 0,0,0,41,15,114,150,0,0,0,114,149,0,0,0,114, - 151,0,0,0,114,152,0,0,0,114,219,0,0,0,114,218, - 0,0,0,218,11,95,77,83,95,87,73,78,68,79,87,83, - 218,18,69,88,84,69,78,83,73,79,78,95,83,85,70,70, - 73,88,69,83,114,217,0,0,0,218,12,115,116,97,116,105, - 99,109,101,116,104,111,100,114,216,0,0,0,218,11,99,108, - 97,115,115,109,101,116,104,111,100,114,223,0,0,0,114,226, - 0,0,0,114,229,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,214,0,0, - 0,26,3,0,0,115,30,0,0,0,8,0,4,2,2,3, - 2,255,2,4,2,255,12,3,2,2,10,1,2,6,10,1, - 2,14,12,1,2,15,16,1,114,214,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,64,0,0,0,115,48,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,100,6,100,7,132,0,90,6,100, - 8,100,9,132,0,90,7,100,10,83,0,41,11,218,13,95, - 76,111,97,100,101,114,66,97,115,105,99,115,122,83,66,97, - 115,101,32,99,108,97,115,115,32,111,102,32,99,111,109,109, - 111,110,32,99,111,100,101,32,110,101,101,100,101,100,32,98, - 121,32,98,111,116,104,32,83,111,117,114,99,101,76,111,97, - 100,101,114,32,97,110,100,10,32,32,32,32,83,111,117,114, - 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114, - 46,99,2,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,4,0,0,0,67,0,0,0,115,64,0,0,0,116, - 0,124,0,160,1,124,1,161,1,131,1,100,1,25,0,125, - 2,124,2,160,2,100,2,100,1,161,2,100,3,25,0,125, - 3,124,1,160,3,100,2,161,1,100,4,25,0,125,4,124, - 3,100,5,107,2,111,31,124,4,100,5,107,3,83,0,41, - 6,122,141,67,111,110,99,114,101,116,101,32,105,109,112,108, - 101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110, - 115,112,101,99,116,76,111,97,100,101,114,46,105,115,95,112, - 97,99,107,97,103,101,32,98,121,32,99,104,101,99,107,105, - 110,103,32,105,102,10,32,32,32,32,32,32,32,32,116,104, - 101,32,112,97,116,104,32,114,101,116,117,114,110,101,100,32, - 98,121,32,103,101,116,95,102,105,108,101,110,97,109,101,32, - 104,97,115,32,97,32,102,105,108,101,110,97,109,101,32,111, - 102,32,39,95,95,105,110,105,116,95,95,46,112,121,39,46, - 114,3,0,0,0,114,97,0,0,0,114,0,0,0,0,114, - 44,0,0,0,218,8,95,95,105,110,105,116,95,95,41,4, - 114,74,0,0,0,114,203,0,0,0,114,125,0,0,0,114, - 104,0,0,0,41,5,114,143,0,0,0,114,163,0,0,0, - 114,120,0,0,0,90,13,102,105,108,101,110,97,109,101,95, - 98,97,115,101,90,9,116,97,105,108,95,110,97,109,101,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,206, - 0,0,0,98,3,0,0,115,8,0,0,0,18,3,16,1, - 14,1,16,1,122,24,95,76,111,97,100,101,114,66,97,115, - 105,99,115,46,105,115,95,112,97,99,107,97,103,101,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1, - 0,0,0,67,0,0,0,114,23,0,0,0,169,2,122,42, - 85,115,101,32,100,101,102,97,117,108,116,32,115,101,109,97, - 110,116,105,99,115,32,102,111,114,32,109,111,100,117,108,101, - 32,99,114,101,97,116,105,111,110,46,78,114,7,0,0,0, - 169,2,114,143,0,0,0,114,210,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,218,13,99,114,101, - 97,116,101,95,109,111,100,117,108,101,106,3,0,0,243,2, - 0,0,0,4,0,122,27,95,76,111,97,100,101,114,66,97, - 115,105,99,115,46,99,114,101,97,116,101,95,109,111,100,117, - 108,101,99,2,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,5,0,0,0,67,0,0,0,115,56,0,0,0, - 124,0,160,0,124,1,106,1,161,1,125,2,124,2,100,1, - 117,0,114,18,116,2,100,2,160,3,124,1,106,1,161,1, - 131,1,130,1,116,4,160,5,116,6,124,2,124,1,106,7, - 161,3,1,0,100,1,83,0,41,3,122,19,69,120,101,99, - 117,116,101,32,116,104,101,32,109,111,100,117,108,101,46,78, - 122,52,99,97,110,110,111,116,32,108,111,97,100,32,109,111, - 100,117,108,101,32,123,33,114,125,32,119,104,101,110,32,103, - 101,116,95,99,111,100,101,40,41,32,114,101,116,117,114,110, - 115,32,78,111,110,101,41,8,218,8,103,101,116,95,99,111, - 100,101,114,150,0,0,0,114,142,0,0,0,114,89,0,0, - 0,114,159,0,0,0,218,25,95,99,97,108,108,95,119,105, - 116,104,95,102,114,97,109,101,115,95,114,101,109,111,118,101, - 100,218,4,101,120,101,99,114,156,0,0,0,41,3,114,143, - 0,0,0,218,6,109,111,100,117,108,101,114,188,0,0,0, + 101,100,46,10,10,32,32,32,32,78,99,2,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,31, + 0,0,0,115,72,0,0,0,124,1,100,0,117,0,114,8, + 124,0,106,0,125,1,110,16,124,0,106,0,124,1,107,3, + 114,24,116,1,100,1,124,0,106,0,124,1,102,2,22,0, + 124,1,100,2,141,2,130,1,136,0,124,0,124,1,103,2, + 124,2,162,1,82,0,105,0,124,3,164,1,142,1,83,0, + 41,3,78,122,30,108,111,97,100,101,114,32,102,111,114,32, + 37,115,32,99,97,110,110,111,116,32,104,97,110,100,108,101, + 32,37,115,169,1,218,4,110,97,109,101,41,2,114,145,0, + 0,0,218,11,73,109,112,111,114,116,69,114,114,111,114,41, + 4,218,4,115,101,108,102,114,145,0,0,0,218,4,97,114, + 103,115,218,6,107,119,97,114,103,115,169,1,218,6,109,101, + 116,104,111,100,114,7,0,0,0,114,8,0,0,0,218,19, + 95,99,104,101,99,107,95,110,97,109,101,95,119,114,97,112, + 112,101,114,30,2,0,0,115,18,0,0,0,8,1,8,1, + 10,1,4,1,8,1,2,255,2,1,6,255,24,2,122,40, + 95,99,104,101,99,107,95,110,97,109,101,46,60,108,111,99, + 97,108,115,62,46,95,99,104,101,99,107,95,110,97,109,101, + 95,119,114,97,112,112,101,114,99,2,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,7,0,0,0,83,0,0, + 0,115,56,0,0,0,100,1,68,0,93,16,125,2,116,0, + 124,1,124,2,131,2,114,18,116,1,124,0,124,2,116,2, + 124,1,124,2,131,2,131,3,1,0,113,2,124,0,106,3, + 160,4,124,1,106,3,161,1,1,0,100,0,83,0,41,2, + 78,41,4,218,10,95,95,109,111,100,117,108,101,95,95,218, + 8,95,95,110,97,109,101,95,95,218,12,95,95,113,117,97, + 108,110,97,109,101,95,95,218,7,95,95,100,111,99,95,95, + 41,5,218,7,104,97,115,97,116,116,114,218,7,115,101,116, + 97,116,116,114,218,7,103,101,116,97,116,116,114,218,8,95, + 95,100,105,99,116,95,95,218,6,117,112,100,97,116,101,41, + 3,90,3,110,101,119,90,3,111,108,100,114,88,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, - 11,101,120,101,99,95,109,111,100,117,108,101,109,3,0,0, - 115,12,0,0,0,12,2,8,1,4,1,8,1,4,255,20, - 2,122,25,95,76,111,97,100,101,114,66,97,115,105,99,115, - 46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0, - 0,67,0,0,0,115,12,0,0,0,116,0,160,1,124,0, - 124,1,161,2,83,0,41,1,122,26,84,104,105,115,32,109, + 5,95,119,114,97,112,43,2,0,0,115,10,0,0,0,8, + 1,10,1,18,1,2,128,18,1,122,26,95,99,104,101,99, + 107,95,110,97,109,101,46,60,108,111,99,97,108,115,62,46, + 95,119,114,97,112,114,72,0,0,0,41,2,218,10,95,98, + 111,111,116,115,116,114,97,112,114,162,0,0,0,41,3,114, + 151,0,0,0,114,152,0,0,0,114,162,0,0,0,114,7, + 0,0,0,114,150,0,0,0,114,8,0,0,0,218,11,95, + 99,104,101,99,107,95,110,97,109,101,22,2,0,0,115,12, + 0,0,0,14,8,8,10,8,1,8,2,10,6,4,1,114, + 164,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,6,0,0,0,67,0,0,0,115,72,0, + 0,0,116,0,160,1,100,1,116,2,161,2,1,0,124,0, + 160,3,124,1,161,1,92,2,125,2,125,3,124,2,100,2, + 117,0,114,34,116,4,124,3,131,1,114,34,100,3,125,4, + 116,0,160,1,124,4,160,5,124,3,100,4,25,0,161,1, + 116,6,161,2,1,0,124,2,83,0,41,5,122,155,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,32,98,121,32,100, + 101,108,101,103,97,116,105,110,103,32,116,111,10,32,32,32, + 32,115,101,108,102,46,102,105,110,100,95,108,111,97,100,101, + 114,40,41,46,10,10,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,41,2,114,159,0,0,0,218,17,95,108,111, - 97,100,95,109,111,100,117,108,101,95,115,104,105,109,169,2, - 114,143,0,0,0,114,163,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,218,11,108,111,97,100,95, - 109,111,100,117,108,101,117,3,0,0,115,2,0,0,0,12, - 3,122,25,95,76,111,97,100,101,114,66,97,115,105,99,115, - 46,108,111,97,100,95,109,111,100,117,108,101,78,41,8,114, - 150,0,0,0,114,149,0,0,0,114,151,0,0,0,114,152, - 0,0,0,114,206,0,0,0,114,239,0,0,0,114,245,0, - 0,0,114,248,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,235,0,0,0, - 93,3,0,0,115,12,0,0,0,8,0,4,2,8,3,8, - 8,8,3,12,8,114,235,0,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,74,0,0,0,101,0,90,1,100,0,90,2, - 100,1,100,2,132,0,90,3,100,3,100,4,132,0,90,4, - 100,5,100,6,132,0,90,5,100,7,100,8,132,0,90,6, - 100,9,100,10,132,0,90,7,100,11,100,12,156,1,100,13, - 100,14,132,2,90,8,100,15,100,16,132,0,90,9,100,17, - 83,0,41,18,218,12,83,111,117,114,99,101,76,111,97,100, - 101,114,99,2,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0, - 116,0,130,1,41,1,122,165,79,112,116,105,111,110,97,108, - 32,109,101,116,104,111,100,32,116,104,97,116,32,114,101,116, - 117,114,110,115,32,116,104,101,32,109,111,100,105,102,105,99, - 97,116,105,111,110,32,116,105,109,101,32,40,97,110,32,105, - 110,116,41,32,102,111,114,32,116,104,101,10,32,32,32,32, - 32,32,32,32,115,112,101,99,105,102,105,101,100,32,112,97, - 116,104,32,40,97,32,115,116,114,41,46,10,10,32,32,32, - 32,32,32,32,32,82,97,105,115,101,115,32,79,83,69,114, - 114,111,114,32,119,104,101,110,32,116,104,101,32,112,97,116, - 104,32,99,97,110,110,111,116,32,98,101,32,104,97,110,100, - 108,101,100,46,10,32,32,32,32,32,32,32,32,41,1,114, - 76,0,0,0,169,2,114,143,0,0,0,114,65,0,0,0, + 116,101,100,32,105,110,32,102,97,118,111,114,32,111,102,32, + 102,105,110,100,101,114,46,102,105,110,100,95,115,112,101,99, + 40,41,46,10,10,32,32,32,32,122,90,102,105,110,100,95, + 109,111,100,117,108,101,40,41,32,105,115,32,100,101,112,114, + 101,99,97,116,101,100,32,97,110,100,32,115,108,97,116,101, + 100,32,102,111,114,32,114,101,109,111,118,97,108,32,105,110, + 32,80,121,116,104,111,110,32,51,46,49,50,59,32,117,115, + 101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110, + 115,116,101,97,100,78,122,44,78,111,116,32,105,109,112,111, + 114,116,105,110,103,32,100,105,114,101,99,116,111,114,121,32, + 123,125,58,32,109,105,115,115,105,110,103,32,95,95,105,110, + 105,116,95,95,114,0,0,0,0,41,7,114,102,0,0,0, + 114,103,0,0,0,114,104,0,0,0,218,11,102,105,110,100, + 95,108,111,97,100,101,114,114,4,0,0,0,114,92,0,0, + 0,218,13,73,109,112,111,114,116,87,97,114,110,105,110,103, + 41,5,114,147,0,0,0,218,8,102,117,108,108,110,97,109, + 101,218,6,108,111,97,100,101,114,218,8,112,111,114,116,105, + 111,110,115,218,3,109,115,103,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,218,17,95,102,105,110,100,95,109, + 111,100,117,108,101,95,115,104,105,109,53,2,0,0,115,16, + 0,0,0,6,7,2,2,4,254,14,6,16,1,4,1,22, + 1,4,1,114,171,0,0,0,99,3,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,4,0,0,0,67,0,0, + 0,115,166,0,0,0,124,0,100,1,100,2,133,2,25,0, + 125,3,124,3,116,0,107,3,114,32,100,3,124,1,155,2, + 100,4,124,3,155,2,157,4,125,4,116,1,160,2,100,5, + 124,4,161,2,1,0,116,3,124,4,102,1,105,0,124,2, + 164,1,142,1,130,1,116,4,124,0,131,1,100,6,107,0, + 114,53,100,7,124,1,155,2,157,2,125,4,116,1,160,2, + 100,5,124,4,161,2,1,0,116,5,124,4,131,1,130,1, + 116,6,124,0,100,2,100,8,133,2,25,0,131,1,125,5, + 124,5,100,9,64,0,114,81,100,10,124,5,155,2,100,11, + 124,1,155,2,157,4,125,4,116,3,124,4,102,1,105,0, + 124,2,164,1,142,1,130,1,124,5,83,0,41,12,97,84, + 2,0,0,80,101,114,102,111,114,109,32,98,97,115,105,99, + 32,118,97,108,105,100,105,116,121,32,99,104,101,99,107,105, + 110,103,32,111,102,32,97,32,112,121,99,32,104,101,97,100, + 101,114,32,97,110,100,32,114,101,116,117,114,110,32,116,104, + 101,32,102,108,97,103,115,32,102,105,101,108,100,44,10,32, + 32,32,32,119,104,105,99,104,32,100,101,116,101,114,109,105, + 110,101,115,32,104,111,119,32,116,104,101,32,112,121,99,32, + 115,104,111,117,108,100,32,98,101,32,102,117,114,116,104,101, + 114,32,118,97,108,105,100,97,116,101,100,32,97,103,97,105, + 110,115,116,32,116,104,101,32,115,111,117,114,99,101,46,10, + 10,32,32,32,32,42,100,97,116,97,42,32,105,115,32,116, + 104,101,32,99,111,110,116,101,110,116,115,32,111,102,32,116, + 104,101,32,112,121,99,32,102,105,108,101,46,32,40,79,110, + 108,121,32,116,104,101,32,102,105,114,115,116,32,49,54,32, + 98,121,116,101,115,32,97,114,101,10,32,32,32,32,114,101, + 113,117,105,114,101,100,44,32,116,104,111,117,103,104,46,41, + 10,10,32,32,32,32,42,110,97,109,101,42,32,105,115,32, + 116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32, + 109,111,100,117,108,101,32,98,101,105,110,103,32,105,109,112, + 111,114,116,101,100,46,32,73,116,32,105,115,32,117,115,101, + 100,32,102,111,114,32,108,111,103,103,105,110,103,46,10,10, + 32,32,32,32,42,101,120,99,95,100,101,116,97,105,108,115, + 42,32,105,115,32,97,32,100,105,99,116,105,111,110,97,114, + 121,32,112,97,115,115,101,100,32,116,111,32,73,109,112,111, + 114,116,69,114,114,111,114,32,105,102,32,105,116,32,114,97, + 105,115,101,100,32,102,111,114,10,32,32,32,32,105,109,112, + 114,111,118,101,100,32,100,101,98,117,103,103,105,110,103,46, + 10,10,32,32,32,32,73,109,112,111,114,116,69,114,114,111, + 114,32,105,115,32,114,97,105,115,101,100,32,119,104,101,110, + 32,116,104,101,32,109,97,103,105,99,32,110,117,109,98,101, + 114,32,105,115,32,105,110,99,111,114,114,101,99,116,32,111, + 114,32,119,104,101,110,32,116,104,101,32,102,108,97,103,115, + 10,32,32,32,32,102,105,101,108,100,32,105,115,32,105,110, + 118,97,108,105,100,46,32,69,79,70,69,114,114,111,114,32, + 105,115,32,114,97,105,115,101,100,32,119,104,101,110,32,116, + 104,101,32,100,97,116,97,32,105,115,32,102,111,117,110,100, + 32,116,111,32,98,101,32,116,114,117,110,99,97,116,101,100, + 46,10,10,32,32,32,32,78,114,34,0,0,0,122,20,98, + 97,100,32,109,97,103,105,99,32,110,117,109,98,101,114,32, + 105,110,32,122,2,58,32,250,2,123,125,233,16,0,0,0, + 122,40,114,101,97,99,104,101,100,32,69,79,70,32,119,104, + 105,108,101,32,114,101,97,100,105,110,103,32,112,121,99,32, + 104,101,97,100,101,114,32,111,102,32,233,8,0,0,0,233, + 252,255,255,255,122,14,105,110,118,97,108,105,100,32,102,108, + 97,103,115,32,122,4,32,105,110,32,41,7,218,12,77,65, + 71,73,67,95,78,85,77,66,69,82,114,163,0,0,0,218, + 16,95,118,101,114,98,111,115,101,95,109,101,115,115,97,103, + 101,114,146,0,0,0,114,4,0,0,0,218,8,69,79,70, + 69,114,114,111,114,114,45,0,0,0,41,6,114,44,0,0, + 0,114,145,0,0,0,218,11,101,120,99,95,100,101,116,97, + 105,108,115,90,5,109,97,103,105,99,114,120,0,0,0,114, + 19,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,218,13,95,99,108,97,115,115,105,102,121,95,112, + 121,99,73,2,0,0,115,28,0,0,0,12,16,8,1,16, + 1,12,1,16,1,12,1,10,1,12,1,8,1,16,1,8, + 2,16,1,16,1,4,1,114,180,0,0,0,99,5,0,0, + 0,0,0,0,0,0,0,0,0,6,0,0,0,4,0,0, + 0,67,0,0,0,115,124,0,0,0,116,0,124,0,100,1, + 100,2,133,2,25,0,131,1,124,1,100,3,64,0,107,3, + 114,31,100,4,124,3,155,2,157,2,125,5,116,1,160,2, + 100,5,124,5,161,2,1,0,116,3,124,5,102,1,105,0, + 124,4,164,1,142,1,130,1,124,2,100,6,117,1,114,58, + 116,0,124,0,100,2,100,7,133,2,25,0,131,1,124,2, + 100,3,64,0,107,3,114,60,116,3,100,4,124,3,155,2, + 157,2,102,1,105,0,124,4,164,1,142,1,130,1,100,6, + 83,0,100,6,83,0,41,8,97,7,2,0,0,86,97,108, + 105,100,97,116,101,32,97,32,112,121,99,32,97,103,97,105, + 110,115,116,32,116,104,101,32,115,111,117,114,99,101,32,108, + 97,115,116,45,109,111,100,105,102,105,101,100,32,116,105,109, + 101,46,10,10,32,32,32,32,42,100,97,116,97,42,32,105, + 115,32,116,104,101,32,99,111,110,116,101,110,116,115,32,111, + 102,32,116,104,101,32,112,121,99,32,102,105,108,101,46,32, + 40,79,110,108,121,32,116,104,101,32,102,105,114,115,116,32, + 49,54,32,98,121,116,101,115,32,97,114,101,10,32,32,32, + 32,114,101,113,117,105,114,101,100,46,41,10,10,32,32,32, + 32,42,115,111,117,114,99,101,95,109,116,105,109,101,42,32, + 105,115,32,116,104,101,32,108,97,115,116,32,109,111,100,105, + 102,105,101,100,32,116,105,109,101,115,116,97,109,112,32,111, + 102,32,116,104,101,32,115,111,117,114,99,101,32,102,105,108, + 101,46,10,10,32,32,32,32,42,115,111,117,114,99,101,95, + 115,105,122,101,42,32,105,115,32,78,111,110,101,32,111,114, + 32,116,104,101,32,115,105,122,101,32,111,102,32,116,104,101, + 32,115,111,117,114,99,101,32,102,105,108,101,32,105,110,32, + 98,121,116,101,115,46,10,10,32,32,32,32,42,110,97,109, + 101,42,32,105,115,32,116,104,101,32,110,97,109,101,32,111, + 102,32,116,104,101,32,109,111,100,117,108,101,32,98,101,105, + 110,103,32,105,109,112,111,114,116,101,100,46,32,73,116,32, + 105,115,32,117,115,101,100,32,102,111,114,32,108,111,103,103, + 105,110,103,46,10,10,32,32,32,32,42,101,120,99,95,100, + 101,116,97,105,108,115,42,32,105,115,32,97,32,100,105,99, + 116,105,111,110,97,114,121,32,112,97,115,115,101,100,32,116, + 111,32,73,109,112,111,114,116,69,114,114,111,114,32,105,102, + 32,105,116,32,114,97,105,115,101,100,32,102,111,114,10,32, + 32,32,32,105,109,112,114,111,118,101,100,32,100,101,98,117, + 103,103,105,110,103,46,10,10,32,32,32,32,65,110,32,73, + 109,112,111,114,116,69,114,114,111,114,32,105,115,32,114,97, + 105,115,101,100,32,105,102,32,116,104,101,32,98,121,116,101, + 99,111,100,101,32,105,115,32,115,116,97,108,101,46,10,10, + 32,32,32,32,114,174,0,0,0,233,12,0,0,0,114,33, + 0,0,0,122,22,98,121,116,101,99,111,100,101,32,105,115, + 32,115,116,97,108,101,32,102,111,114,32,114,172,0,0,0, + 78,114,173,0,0,0,41,4,114,45,0,0,0,114,163,0, + 0,0,114,177,0,0,0,114,146,0,0,0,41,6,114,44, + 0,0,0,218,12,115,111,117,114,99,101,95,109,116,105,109, + 101,218,11,115,111,117,114,99,101,95,115,105,122,101,114,145, + 0,0,0,114,179,0,0,0,114,120,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,218,23,95,118, + 97,108,105,100,97,116,101,95,116,105,109,101,115,116,97,109, + 112,95,112,121,99,106,2,0,0,115,18,0,0,0,24,19, + 10,1,12,1,16,1,8,1,24,1,22,1,4,254,4,1, + 114,184,0,0,0,99,4,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,42, + 0,0,0,124,0,100,1,100,2,133,2,25,0,124,1,107, + 3,114,19,116,0,100,3,124,2,155,2,157,2,102,1,105, + 0,124,3,164,1,142,1,130,1,100,4,83,0,41,5,97, + 243,1,0,0,86,97,108,105,100,97,116,101,32,97,32,104, + 97,115,104,45,98,97,115,101,100,32,112,121,99,32,98,121, + 32,99,104,101,99,107,105,110,103,32,116,104,101,32,114,101, + 97,108,32,115,111,117,114,99,101,32,104,97,115,104,32,97, + 103,97,105,110,115,116,32,116,104,101,32,111,110,101,32,105, + 110,10,32,32,32,32,116,104,101,32,112,121,99,32,104,101, + 97,100,101,114,46,10,10,32,32,32,32,42,100,97,116,97, + 42,32,105,115,32,116,104,101,32,99,111,110,116,101,110,116, + 115,32,111,102,32,116,104,101,32,112,121,99,32,102,105,108, + 101,46,32,40,79,110,108,121,32,116,104,101,32,102,105,114, + 115,116,32,49,54,32,98,121,116,101,115,32,97,114,101,10, + 32,32,32,32,114,101,113,117,105,114,101,100,46,41,10,10, + 32,32,32,32,42,115,111,117,114,99,101,95,104,97,115,104, + 42,32,105,115,32,116,104,101,32,105,109,112,111,114,116,108, + 105,98,46,117,116,105,108,46,115,111,117,114,99,101,95,104, + 97,115,104,40,41,32,111,102,32,116,104,101,32,115,111,117, + 114,99,101,32,102,105,108,101,46,10,10,32,32,32,32,42, + 110,97,109,101,42,32,105,115,32,116,104,101,32,110,97,109, + 101,32,111,102,32,116,104,101,32,109,111,100,117,108,101,32, + 98,101,105,110,103,32,105,109,112,111,114,116,101,100,46,32, + 73,116,32,105,115,32,117,115,101,100,32,102,111,114,32,108, + 111,103,103,105,110,103,46,10,10,32,32,32,32,42,101,120, + 99,95,100,101,116,97,105,108,115,42,32,105,115,32,97,32, + 100,105,99,116,105,111,110,97,114,121,32,112,97,115,115,101, + 100,32,116,111,32,73,109,112,111,114,116,69,114,114,111,114, + 32,105,102,32,105,116,32,114,97,105,115,101,100,32,102,111, + 114,10,32,32,32,32,105,109,112,114,111,118,101,100,32,100, + 101,98,117,103,103,105,110,103,46,10,10,32,32,32,32,65, + 110,32,73,109,112,111,114,116,69,114,114,111,114,32,105,115, + 32,114,97,105,115,101,100,32,105,102,32,116,104,101,32,98, + 121,116,101,99,111,100,101,32,105,115,32,115,116,97,108,101, + 46,10,10,32,32,32,32,114,174,0,0,0,114,173,0,0, + 0,122,46,104,97,115,104,32,105,110,32,98,121,116,101,99, + 111,100,101,32,100,111,101,115,110,39,116,32,109,97,116,99, + 104,32,104,97,115,104,32,111,102,32,115,111,117,114,99,101, + 32,78,41,1,114,146,0,0,0,41,4,114,44,0,0,0, + 218,11,115,111,117,114,99,101,95,104,97,115,104,114,145,0, + 0,0,114,179,0,0,0,114,7,0,0,0,114,7,0,0, + 0,114,8,0,0,0,218,18,95,118,97,108,105,100,97,116, + 101,95,104,97,115,104,95,112,121,99,134,2,0,0,115,14, + 0,0,0,16,17,2,1,8,1,4,255,2,2,6,254,4, + 255,114,186,0,0,0,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, + 76,0,0,0,116,0,160,1,124,0,161,1,125,4,116,2, + 124,4,116,3,131,2,114,28,116,4,160,5,100,1,124,2, + 161,2,1,0,124,3,100,2,117,1,114,26,116,6,160,7, + 124,4,124,3,161,2,1,0,124,4,83,0,116,8,100,3, + 160,9,124,2,161,1,124,1,124,2,100,4,141,3,130,1, + 41,5,122,35,67,111,109,112,105,108,101,32,98,121,116,101, + 99,111,100,101,32,97,115,32,102,111,117,110,100,32,105,110, + 32,97,32,112,121,99,46,122,21,99,111,100,101,32,111,98, + 106,101,99,116,32,102,114,111,109,32,123,33,114,125,78,122, + 23,78,111,110,45,99,111,100,101,32,111,98,106,101,99,116, + 32,105,110,32,123,33,114,125,169,2,114,145,0,0,0,114, + 68,0,0,0,41,10,218,7,109,97,114,115,104,97,108,90, + 5,108,111,97,100,115,218,10,105,115,105,110,115,116,97,110, + 99,101,218,10,95,99,111,100,101,95,116,121,112,101,114,163, + 0,0,0,114,177,0,0,0,218,4,95,105,109,112,90,16, + 95,102,105,120,95,99,111,95,102,105,108,101,110,97,109,101, + 114,146,0,0,0,114,92,0,0,0,41,5,114,44,0,0, + 0,114,145,0,0,0,114,135,0,0,0,114,138,0,0,0, + 218,4,99,111,100,101,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,17,95,99,111,109,112,105,108,101,95, + 98,121,116,101,99,111,100,101,158,2,0,0,115,18,0,0, + 0,10,2,10,1,12,1,8,1,12,1,4,1,10,2,4, + 1,6,255,114,193,0,0,0,99,3,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,5,0,0,0,67,0,0, + 0,115,70,0,0,0,116,0,116,1,131,1,125,3,124,3, + 160,2,116,3,100,1,131,1,161,1,1,0,124,3,160,2, + 116,3,124,1,131,1,161,1,1,0,124,3,160,2,116,3, + 124,2,131,1,161,1,1,0,124,3,160,2,116,4,160,5, + 124,0,161,1,161,1,1,0,124,3,83,0,41,2,122,43, + 80,114,111,100,117,99,101,32,116,104,101,32,100,97,116,97, + 32,102,111,114,32,97,32,116,105,109,101,115,116,97,109,112, + 45,98,97,115,101,100,32,112,121,99,46,114,0,0,0,0, + 41,6,218,9,98,121,116,101,97,114,114,97,121,114,176,0, + 0,0,218,6,101,120,116,101,110,100,114,39,0,0,0,114, + 188,0,0,0,218,5,100,117,109,112,115,41,4,114,192,0, + 0,0,218,5,109,116,105,109,101,114,183,0,0,0,114,44, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,218,22,95,99,111,100,101,95,116,111,95,116,105,109, + 101,115,116,97,109,112,95,112,121,99,171,2,0,0,115,12, + 0,0,0,8,2,14,1,14,1,14,1,16,1,4,1,114, + 198,0,0,0,84,99,3,0,0,0,0,0,0,0,0,0, + 0,0,5,0,0,0,5,0,0,0,67,0,0,0,115,80, + 0,0,0,116,0,116,1,131,1,125,3,100,1,124,2,100, + 1,62,0,66,0,125,4,124,3,160,2,116,3,124,4,131, + 1,161,1,1,0,116,4,124,1,131,1,100,2,107,2,115, + 25,74,0,130,1,124,3,160,2,124,1,161,1,1,0,124, + 3,160,2,116,5,160,6,124,0,161,1,161,1,1,0,124, + 3,83,0,41,3,122,38,80,114,111,100,117,99,101,32,116, + 104,101,32,100,97,116,97,32,102,111,114,32,97,32,104,97, + 115,104,45,98,97,115,101,100,32,112,121,99,46,114,3,0, + 0,0,114,174,0,0,0,41,7,114,194,0,0,0,114,176, + 0,0,0,114,195,0,0,0,114,39,0,0,0,114,4,0, + 0,0,114,188,0,0,0,114,196,0,0,0,41,5,114,192, + 0,0,0,114,185,0,0,0,90,7,99,104,101,99,107,101, + 100,114,44,0,0,0,114,19,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,218,17,95,99,111,100, + 101,95,116,111,95,104,97,115,104,95,112,121,99,181,2,0, + 0,115,14,0,0,0,8,2,12,1,14,1,16,1,10,1, + 16,1,4,1,114,199,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,6,0,0,0,67,0, + 0,0,115,62,0,0,0,100,1,100,2,108,0,125,1,116, + 1,160,2,124,0,161,1,106,3,125,2,124,1,160,4,124, + 2,161,1,125,3,116,1,160,5,100,2,100,3,161,2,125, + 4,124,4,160,6,124,0,160,6,124,3,100,1,25,0,161, + 1,161,1,83,0,41,4,122,121,68,101,99,111,100,101,32, + 98,121,116,101,115,32,114,101,112,114,101,115,101,110,116,105, + 110,103,32,115,111,117,114,99,101,32,99,111,100,101,32,97, + 110,100,32,114,101,116,117,114,110,32,116,104,101,32,115,116, + 114,105,110,103,46,10,10,32,32,32,32,85,110,105,118,101, + 114,115,97,108,32,110,101,119,108,105,110,101,32,115,117,112, + 112,111,114,116,32,105,115,32,117,115,101,100,32,105,110,32, + 116,104,101,32,100,101,99,111,100,105,110,103,46,10,32,32, + 32,32,114,0,0,0,0,78,84,41,7,218,8,116,111,107, + 101,110,105,122,101,114,94,0,0,0,90,7,66,121,116,101, + 115,73,79,90,8,114,101,97,100,108,105,110,101,90,15,100, + 101,116,101,99,116,95,101,110,99,111,100,105,110,103,90,25, + 73,110,99,114,101,109,101,110,116,97,108,78,101,119,108,105, + 110,101,68,101,99,111,100,101,114,218,6,100,101,99,111,100, + 101,41,5,218,12,115,111,117,114,99,101,95,98,121,116,101, + 115,114,200,0,0,0,90,21,115,111,117,114,99,101,95,98, + 121,116,101,115,95,114,101,97,100,108,105,110,101,218,8,101, + 110,99,111,100,105,110,103,90,15,110,101,119,108,105,110,101, + 95,100,101,99,111,100,101,114,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,218,13,100,101,99,111,100,101,95, + 115,111,117,114,99,101,192,2,0,0,115,10,0,0,0,8, + 5,12,1,10,1,12,1,20,1,114,204,0,0,0,169,2, + 114,168,0,0,0,218,26,115,117,98,109,111,100,117,108,101, + 95,115,101,97,114,99,104,95,108,111,99,97,116,105,111,110, + 115,99,2,0,0,0,0,0,0,0,2,0,0,0,9,0, + 0,0,8,0,0,0,67,0,0,0,115,54,1,0,0,124, + 1,100,1,117,0,114,29,100,2,125,1,116,0,124,2,100, + 3,131,2,114,28,122,7,124,2,160,1,124,0,161,1,125, + 1,87,0,110,38,4,0,116,2,121,27,1,0,1,0,1, + 0,89,0,110,30,119,0,110,28,116,3,160,4,124,1,161, + 1,125,1,116,5,124,1,131,1,115,57,122,9,116,6,116, + 3,160,7,161,0,124,1,131,2,125,1,87,0,110,9,4, + 0,116,8,121,56,1,0,1,0,1,0,89,0,110,1,119, + 0,116,9,106,10,124,0,124,2,124,1,100,4,141,3,125, + 4,100,5,124,4,95,11,124,2,100,1,117,0,114,99,116, + 12,131,0,68,0,93,21,92,2,125,5,125,6,124,1,160, + 13,116,14,124,6,131,1,161,1,114,96,124,5,124,0,124, + 1,131,2,125,2,124,2,124,4,95,15,1,0,110,3,113, + 75,100,1,83,0,124,3,116,16,117,0,114,131,116,0,124, + 2,100,6,131,2,114,130,122,7,124,2,160,17,124,0,161, + 1,125,7,87,0,110,9,4,0,116,2,121,124,1,0,1, + 0,1,0,89,0,110,10,119,0,124,7,114,130,103,0,124, + 4,95,18,110,3,124,3,124,4,95,18,124,4,106,18,103, + 0,107,2,114,153,124,1,114,153,116,19,124,1,131,1,100, + 7,25,0,125,8,124,4,106,18,160,20,124,8,161,1,1, + 0,124,4,83,0,41,8,97,61,1,0,0,82,101,116,117, + 114,110,32,97,32,109,111,100,117,108,101,32,115,112,101,99, + 32,98,97,115,101,100,32,111,110,32,97,32,102,105,108,101, + 32,108,111,99,97,116,105,111,110,46,10,10,32,32,32,32, + 84,111,32,105,110,100,105,99,97,116,101,32,116,104,97,116, + 32,116,104,101,32,109,111,100,117,108,101,32,105,115,32,97, + 32,112,97,99,107,97,103,101,44,32,115,101,116,10,32,32, + 32,32,115,117,98,109,111,100,117,108,101,95,115,101,97,114, + 99,104,95,108,111,99,97,116,105,111,110,115,32,116,111,32, + 97,32,108,105,115,116,32,111,102,32,100,105,114,101,99,116, + 111,114,121,32,112,97,116,104,115,46,32,32,65,110,10,32, + 32,32,32,101,109,112,116,121,32,108,105,115,116,32,105,115, + 32,115,117,102,102,105,99,105,101,110,116,44,32,116,104,111, + 117,103,104,32,105,116,115,32,110,111,116,32,111,116,104,101, + 114,119,105,115,101,32,117,115,101,102,117,108,32,116,111,32, + 116,104,101,10,32,32,32,32,105,109,112,111,114,116,32,115, + 121,115,116,101,109,46,10,10,32,32,32,32,84,104,101,32, + 108,111,97,100,101,114,32,109,117,115,116,32,116,97,107,101, + 32,97,32,115,112,101,99,32,97,115,32,105,116,115,32,111, + 110,108,121,32,95,95,105,110,105,116,95,95,40,41,32,97, + 114,103,46,10,10,32,32,32,32,78,122,9,60,117,110,107, + 110,111,119,110,62,218,12,103,101,116,95,102,105,108,101,110, + 97,109,101,169,1,218,6,111,114,105,103,105,110,84,218,10, + 105,115,95,112,97,99,107,97,103,101,114,0,0,0,0,41, + 21,114,157,0,0,0,114,207,0,0,0,114,146,0,0,0, + 114,21,0,0,0,114,106,0,0,0,114,89,0,0,0,114, + 70,0,0,0,114,85,0,0,0,114,79,0,0,0,114,163, + 0,0,0,218,10,77,111,100,117,108,101,83,112,101,99,90, + 13,95,115,101,116,95,102,105,108,101,97,116,116,114,218,27, + 95,103,101,116,95,115,117,112,112,111,114,116,101,100,95,102, + 105,108,101,95,108,111,97,100,101,114,115,114,61,0,0,0, + 114,140,0,0,0,114,168,0,0,0,218,9,95,80,79,80, + 85,76,65,84,69,114,210,0,0,0,114,206,0,0,0,114, + 77,0,0,0,114,64,0,0,0,41,9,114,145,0,0,0, + 90,8,108,111,99,97,116,105,111,110,114,168,0,0,0,114, + 206,0,0,0,218,4,115,112,101,99,218,12,108,111,97,100, + 101,114,95,99,108,97,115,115,218,8,115,117,102,102,105,120, + 101,115,114,210,0,0,0,90,7,100,105,114,110,97,109,101, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, - 10,112,97,116,104,95,109,116,105,109,101,125,3,0,0,115, - 2,0,0,0,4,6,122,23,83,111,117,114,99,101,76,111, - 97,100,101,114,46,112,97,116,104,95,109,116,105,109,101,99, - 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 4,0,0,0,67,0,0,0,115,14,0,0,0,100,1,124, - 0,160,0,124,1,161,1,105,1,83,0,41,2,97,158,1, - 0,0,79,112,116,105,111,110,97,108,32,109,101,116,104,111, - 100,32,114,101,116,117,114,110,105,110,103,32,97,32,109,101, - 116,97,100,97,116,97,32,100,105,99,116,32,102,111,114,32, - 116,104,101,32,115,112,101,99,105,102,105,101,100,10,32,32, - 32,32,32,32,32,32,112,97,116,104,32,40,97,32,115,116, - 114,41,46,10,10,32,32,32,32,32,32,32,32,80,111,115, - 115,105,98,108,101,32,107,101,121,115,58,10,32,32,32,32, - 32,32,32,32,45,32,39,109,116,105,109,101,39,32,40,109, - 97,110,100,97,116,111,114,121,41,32,105,115,32,116,104,101, - 32,110,117,109,101,114,105,99,32,116,105,109,101,115,116,97, - 109,112,32,111,102,32,108,97,115,116,32,115,111,117,114,99, - 101,10,32,32,32,32,32,32,32,32,32,32,99,111,100,101, - 32,109,111,100,105,102,105,99,97,116,105,111,110,59,10,32, - 32,32,32,32,32,32,32,45,32,39,115,105,122,101,39,32, - 40,111,112,116,105,111,110,97,108,41,32,105,115,32,116,104, - 101,32,115,105,122,101,32,105,110,32,98,121,116,101,115,32, - 111,102,32,116,104,101,32,115,111,117,114,99,101,32,99,111, - 100,101,46,10,10,32,32,32,32,32,32,32,32,73,109,112, - 108,101,109,101,110,116,105,110,103,32,116,104,105,115,32,109, - 101,116,104,111,100,32,97,108,108,111,119,115,32,116,104,101, - 32,108,111,97,100,101,114,32,116,111,32,114,101,97,100,32, - 98,121,116,101,99,111,100,101,32,102,105,108,101,115,46,10, - 32,32,32,32,32,32,32,32,82,97,105,115,101,115,32,79, - 83,69,114,114,111,114,32,119,104,101,110,32,116,104,101,32, - 112,97,116,104,32,99,97,110,110,111,116,32,98,101,32,104, - 97,110,100,108,101,100,46,10,32,32,32,32,32,32,32,32, - 114,193,0,0,0,41,1,114,251,0,0,0,114,250,0,0, - 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 218,10,112,97,116,104,95,115,116,97,116,115,133,3,0,0, - 115,2,0,0,0,14,12,122,23,83,111,117,114,99,101,76, - 111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,115, - 99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,4,0,0,0,67,0,0,0,115,12,0,0,0,124,0, - 160,0,124,2,124,3,161,2,83,0,41,1,122,228,79,112, - 116,105,111,110,97,108,32,109,101,116,104,111,100,32,119,104, - 105,99,104,32,119,114,105,116,101,115,32,100,97,116,97,32, - 40,98,121,116,101,115,41,32,116,111,32,97,32,102,105,108, - 101,32,112,97,116,104,32,40,97,32,115,116,114,41,46,10, - 10,32,32,32,32,32,32,32,32,73,109,112,108,101,109,101, - 110,116,105,110,103,32,116,104,105,115,32,109,101,116,104,111, - 100,32,97,108,108,111,119,115,32,102,111,114,32,116,104,101, - 32,119,114,105,116,105,110,103,32,111,102,32,98,121,116,101, - 99,111,100,101,32,102,105,108,101,115,46,10,10,32,32,32, - 32,32,32,32,32,84,104,101,32,115,111,117,114,99,101,32, - 112,97,116,104,32,105,115,32,110,101,101,100,101,100,32,105, - 110,32,111,114,100,101,114,32,116,111,32,99,111,114,114,101, - 99,116,108,121,32,116,114,97,110,115,102,101,114,32,112,101, - 114,109,105,115,115,105,111,110,115,10,32,32,32,32,32,32, - 32,32,41,1,218,8,115,101,116,95,100,97,116,97,41,4, - 114,143,0,0,0,114,134,0,0,0,90,10,99,97,99,104, - 101,95,112,97,116,104,114,41,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,218,15,95,99,97,99, - 104,101,95,98,121,116,101,99,111,100,101,147,3,0,0,115, - 2,0,0,0,12,8,122,28,83,111,117,114,99,101,76,111, - 97,100,101,114,46,95,99,97,99,104,101,95,98,121,116,101, - 99,111,100,101,99,3,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,1,0,0,0,67,0,0,0,114,23,0, - 0,0,41,2,122,150,79,112,116,105,111,110,97,108,32,109, - 101,116,104,111,100,32,119,104,105,99,104,32,119,114,105,116, - 101,115,32,100,97,116,97,32,40,98,121,116,101,115,41,32, - 116,111,32,97,32,102,105,108,101,32,112,97,116,104,32,40, - 97,32,115,116,114,41,46,10,10,32,32,32,32,32,32,32, - 32,73,109,112,108,101,109,101,110,116,105,110,103,32,116,104, - 105,115,32,109,101,116,104,111,100,32,97,108,108,111,119,115, - 32,102,111,114,32,116,104,101,32,119,114,105,116,105,110,103, - 32,111,102,32,98,121,116,101,99,111,100,101,32,102,105,108, - 101,115,46,10,32,32,32,32,32,32,32,32,78,114,7,0, - 0,0,41,3,114,143,0,0,0,114,65,0,0,0,114,41, + 23,115,112,101,99,95,102,114,111,109,95,102,105,108,101,95, + 108,111,99,97,116,105,111,110,209,2,0,0,115,84,0,0, + 0,8,12,4,4,10,1,2,2,14,1,12,1,4,1,2, + 255,2,252,10,7,8,1,2,1,18,1,12,1,4,1,2, + 255,16,9,6,1,8,3,14,1,14,1,10,1,6,1,4, + 1,2,253,4,5,8,3,10,2,2,1,14,1,12,1,4, + 1,2,255,4,3,6,1,2,128,6,2,10,1,4,1,12, + 1,12,1,4,2,114,217,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,64, + 0,0,0,115,88,0,0,0,101,0,90,1,100,0,90,2, + 100,1,90,3,100,2,90,4,100,3,90,5,101,6,111,15, + 100,4,101,7,118,0,90,8,101,9,100,5,100,6,132,0, + 131,1,90,10,101,11,100,7,100,8,132,0,131,1,90,12, + 101,11,100,14,100,10,100,11,132,1,131,1,90,13,101,11, + 100,15,100,12,100,13,132,1,131,1,90,14,100,9,83,0, + 41,16,218,21,87,105,110,100,111,119,115,82,101,103,105,115, + 116,114,121,70,105,110,100,101,114,122,62,77,101,116,97,32, + 112,97,116,104,32,102,105,110,100,101,114,32,102,111,114,32, + 109,111,100,117,108,101,115,32,100,101,99,108,97,114,101,100, + 32,105,110,32,116,104,101,32,87,105,110,100,111,119,115,32, + 114,101,103,105,115,116,114,121,46,122,59,83,111,102,116,119, + 97,114,101,92,80,121,116,104,111,110,92,80,121,116,104,111, + 110,67,111,114,101,92,123,115,121,115,95,118,101,114,115,105, + 111,110,125,92,77,111,100,117,108,101,115,92,123,102,117,108, + 108,110,97,109,101,125,122,65,83,111,102,116,119,97,114,101, + 92,80,121,116,104,111,110,92,80,121,116,104,111,110,67,111, + 114,101,92,123,115,121,115,95,118,101,114,115,105,111,110,125, + 92,77,111,100,117,108,101,115,92,123,102,117,108,108,110,97, + 109,101,125,92,68,101,98,117,103,122,6,95,100,46,112,121, + 100,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,8,0,0,0,67,0,0,0,115,50,0,0,0,122, + 8,116,0,160,1,116,0,106,2,124,0,161,2,87,0,83, + 0,4,0,116,3,121,24,1,0,1,0,1,0,116,0,160, + 1,116,0,106,4,124,0,161,2,6,0,89,0,83,0,119, + 0,114,72,0,0,0,41,5,218,6,119,105,110,114,101,103, + 90,7,79,112,101,110,75,101,121,90,17,72,75,69,89,95, + 67,85,82,82,69,78,84,95,85,83,69,82,114,79,0,0, + 0,90,18,72,75,69,89,95,76,79,67,65,76,95,77,65, + 67,72,73,78,69,114,22,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,218,14,95,111,112,101,110, + 95,114,101,103,105,115,116,114,121,38,3,0,0,115,10,0, + 0,0,2,2,16,1,12,1,18,1,2,255,122,36,87,105, + 110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,110, + 100,101,114,46,95,111,112,101,110,95,114,101,103,105,115,116, + 114,121,99,2,0,0,0,0,0,0,0,0,0,0,0,6, + 0,0,0,8,0,0,0,67,0,0,0,115,134,0,0,0, + 124,0,106,0,114,7,124,0,106,1,125,2,110,3,124,0, + 106,2,125,2,124,2,106,3,124,1,100,1,116,4,106,5, + 100,0,100,2,133,2,25,0,22,0,100,3,141,2,125,3, + 122,32,124,0,160,6,124,3,161,1,143,16,125,4,116,7, + 160,8,124,4,100,4,161,2,125,5,87,0,100,0,4,0, + 4,0,131,3,1,0,87,0,124,5,83,0,49,0,115,49, + 119,1,1,0,1,0,1,0,89,0,1,0,87,0,124,5, + 83,0,4,0,116,9,121,66,1,0,1,0,1,0,89,0, + 100,0,83,0,119,0,41,5,78,122,5,37,100,46,37,100, + 114,47,0,0,0,41,2,114,167,0,0,0,90,11,115,121, + 115,95,118,101,114,115,105,111,110,114,10,0,0,0,41,10, + 218,11,68,69,66,85,71,95,66,85,73,76,68,218,18,82, + 69,71,73,83,84,82,89,95,75,69,89,95,68,69,66,85, + 71,218,12,82,69,71,73,83,84,82,89,95,75,69,89,114, + 92,0,0,0,114,18,0,0,0,218,12,118,101,114,115,105, + 111,110,95,105,110,102,111,114,220,0,0,0,114,219,0,0, + 0,90,10,81,117,101,114,121,86,97,108,117,101,114,79,0, + 0,0,41,6,218,3,99,108,115,114,167,0,0,0,90,12, + 114,101,103,105,115,116,114,121,95,107,101,121,114,23,0,0, + 0,90,4,104,107,101,121,218,8,102,105,108,101,112,97,116, + 104,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 218,16,95,115,101,97,114,99,104,95,114,101,103,105,115,116, + 114,121,45,3,0,0,115,32,0,0,0,6,2,8,1,6, + 2,6,1,16,1,6,255,2,2,12,1,14,1,12,255,4, + 4,18,252,4,4,12,254,6,1,2,255,122,38,87,105,110, + 100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,100, + 101,114,46,95,115,101,97,114,99,104,95,114,101,103,105,115, + 116,114,121,78,99,4,0,0,0,0,0,0,0,0,0,0, + 0,8,0,0,0,8,0,0,0,67,0,0,0,115,120,0, + 0,0,124,0,160,0,124,1,161,1,125,4,124,4,100,0, + 117,0,114,11,100,0,83,0,122,6,116,1,124,4,131,1, + 1,0,87,0,110,10,4,0,116,2,121,27,1,0,1,0, + 1,0,89,0,100,0,83,0,119,0,116,3,131,0,68,0, + 93,26,92,2,125,5,125,6,124,4,160,4,116,5,124,6, + 131,1,161,1,114,57,116,6,106,7,124,1,124,5,124,1, + 124,4,131,2,124,4,100,1,141,3,125,7,124,7,2,0, + 1,0,83,0,113,31,100,0,83,0,41,2,78,114,208,0, + 0,0,41,8,114,227,0,0,0,114,78,0,0,0,114,79, + 0,0,0,114,212,0,0,0,114,61,0,0,0,114,140,0, + 0,0,114,163,0,0,0,218,16,115,112,101,99,95,102,114, + 111,109,95,108,111,97,100,101,114,41,8,114,225,0,0,0, + 114,167,0,0,0,114,68,0,0,0,218,6,116,97,114,103, + 101,116,114,226,0,0,0,114,168,0,0,0,114,216,0,0, + 0,114,214,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,9,102,105,110,100,95,115,112,101,99, + 60,3,0,0,115,34,0,0,0,10,2,8,1,4,1,2, + 1,12,1,12,1,6,1,2,255,14,2,14,1,6,1,8, + 1,2,1,6,254,8,3,2,252,4,255,122,31,87,105,110, + 100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,100, + 101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0, + 0,67,0,0,0,115,42,0,0,0,116,0,160,1,100,1, + 116,2,161,2,1,0,124,0,160,3,124,1,124,2,161,2, + 125,3,124,3,100,2,117,1,114,19,124,3,106,4,83,0, + 100,2,83,0,41,3,122,106,70,105,110,100,32,109,111,100, + 117,108,101,32,110,97,109,101,100,32,105,110,32,116,104,101, + 32,114,101,103,105,115,116,114,121,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,122,112,87,105,110,100,111,119,115,82,101,103,105,115, + 116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,109, + 111,100,117,108,101,40,41,32,105,115,32,100,101,112,114,101, + 99,97,116,101,100,32,97,110,100,32,115,108,97,116,101,100, + 32,102,111,114,32,114,101,109,111,118,97,108,32,105,110,32, + 80,121,116,104,111,110,32,51,46,49,50,59,32,117,115,101, + 32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,115, + 116,101,97,100,78,169,5,114,102,0,0,0,114,103,0,0, + 0,114,104,0,0,0,114,230,0,0,0,114,168,0,0,0, + 169,4,114,225,0,0,0,114,167,0,0,0,114,68,0,0, + 0,114,214,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,11,102,105,110,100,95,109,111,100,117, + 108,101,76,3,0,0,115,14,0,0,0,6,7,2,2,4, + 254,12,3,8,1,6,1,4,2,122,33,87,105,110,100,111, + 119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,114, + 46,102,105,110,100,95,109,111,100,117,108,101,169,2,78,78, + 114,72,0,0,0,41,15,114,154,0,0,0,114,153,0,0, + 0,114,155,0,0,0,114,156,0,0,0,114,223,0,0,0, + 114,222,0,0,0,218,11,95,77,83,95,87,73,78,68,79, + 87,83,218,18,69,88,84,69,78,83,73,79,78,95,83,85, + 70,70,73,88,69,83,114,221,0,0,0,218,12,115,116,97, + 116,105,99,109,101,116,104,111,100,114,220,0,0,0,218,11, + 99,108,97,115,115,109,101,116,104,111,100,114,227,0,0,0, + 114,230,0,0,0,114,233,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,218, + 0,0,0,26,3,0,0,115,30,0,0,0,8,0,4,2, + 2,3,2,255,2,4,2,255,12,3,2,2,10,1,2,6, + 10,1,2,14,12,1,2,15,16,1,114,218,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,64,0,0,0,115,48,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,100,6,100,7,132,0,90, + 6,100,8,100,9,132,0,90,7,100,10,83,0,41,11,218, + 13,95,76,111,97,100,101,114,66,97,115,105,99,115,122,83, + 66,97,115,101,32,99,108,97,115,115,32,111,102,32,99,111, + 109,109,111,110,32,99,111,100,101,32,110,101,101,100,101,100, + 32,98,121,32,98,111,116,104,32,83,111,117,114,99,101,76, + 111,97,100,101,114,32,97,110,100,10,32,32,32,32,83,111, + 117,114,99,101,108,101,115,115,70,105,108,101,76,111,97,100, + 101,114,46,99,2,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,4,0,0,0,67,0,0,0,115,64,0,0, + 0,116,0,124,0,160,1,124,1,161,1,131,1,100,1,25, + 0,125,2,124,2,160,2,100,2,100,1,161,2,100,3,25, + 0,125,3,124,1,160,3,100,2,161,1,100,4,25,0,125, + 4,124,3,100,5,107,2,111,31,124,4,100,5,107,3,83, + 0,41,6,122,141,67,111,110,99,114,101,116,101,32,105,109, + 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32, + 73,110,115,112,101,99,116,76,111,97,100,101,114,46,105,115, + 95,112,97,99,107,97,103,101,32,98,121,32,99,104,101,99, + 107,105,110,103,32,105,102,10,32,32,32,32,32,32,32,32, + 116,104,101,32,112,97,116,104,32,114,101,116,117,114,110,101, + 100,32,98,121,32,103,101,116,95,102,105,108,101,110,97,109, + 101,32,104,97,115,32,97,32,102,105,108,101,110,97,109,101, + 32,111,102,32,39,95,95,105,110,105,116,95,95,46,112,121, + 39,46,114,3,0,0,0,114,100,0,0,0,114,0,0,0, + 0,114,47,0,0,0,218,8,95,95,105,110,105,116,95,95, + 41,4,114,77,0,0,0,114,207,0,0,0,114,128,0,0, + 0,114,107,0,0,0,41,5,114,147,0,0,0,114,167,0, + 0,0,114,123,0,0,0,90,13,102,105,108,101,110,97,109, + 101,95,98,97,115,101,90,9,116,97,105,108,95,110,97,109, + 101,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,210,0,0,0,98,3,0,0,115,8,0,0,0,18,3, + 16,1,14,1,16,1,122,24,95,76,111,97,100,101,114,66, + 97,115,105,99,115,46,105,115,95,112,97,99,107,97,103,101, + 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,1,0,0,0,67,0,0,0,114,26,0,0,0,169,2, + 122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,101, + 109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,117, + 108,101,32,99,114,101,97,116,105,111,110,46,78,114,7,0, + 0,0,169,2,114,147,0,0,0,114,214,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,218,13,99, + 114,101,97,116,101,95,109,111,100,117,108,101,106,3,0,0, + 243,2,0,0,0,4,0,122,27,95,76,111,97,100,101,114, + 66,97,115,105,99,115,46,99,114,101,97,116,101,95,109,111, + 100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,5,0,0,0,67,0,0,0,115,56,0, + 0,0,124,0,160,0,124,1,106,1,161,1,125,2,124,2, + 100,1,117,0,114,18,116,2,100,2,160,3,124,1,106,1, + 161,1,131,1,130,1,116,4,160,5,116,6,124,2,124,1, + 106,7,161,3,1,0,100,1,83,0,41,3,122,19,69,120, + 101,99,117,116,101,32,116,104,101,32,109,111,100,117,108,101, + 46,78,122,52,99,97,110,110,111,116,32,108,111,97,100,32, + 109,111,100,117,108,101,32,123,33,114,125,32,119,104,101,110, + 32,103,101,116,95,99,111,100,101,40,41,32,114,101,116,117, + 114,110,115,32,78,111,110,101,41,8,218,8,103,101,116,95, + 99,111,100,101,114,154,0,0,0,114,146,0,0,0,114,92, + 0,0,0,114,163,0,0,0,218,25,95,99,97,108,108,95, + 119,105,116,104,95,102,114,97,109,101,115,95,114,101,109,111, + 118,101,100,218,4,101,120,101,99,114,160,0,0,0,41,3, + 114,147,0,0,0,218,6,109,111,100,117,108,101,114,192,0, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,218,11,101,120,101,99,95,109,111,100,117,108,101,109,3, + 0,0,115,12,0,0,0,12,2,8,1,4,1,8,1,4, + 255,20,2,122,25,95,76,111,97,100,101,114,66,97,115,105, + 99,115,46,101,120,101,99,95,109,111,100,117,108,101,99,2, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4, + 0,0,0,67,0,0,0,115,12,0,0,0,116,0,160,1, + 124,0,124,1,161,2,83,0,41,1,122,26,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,41,2,114,163,0,0,0,218,17,95, + 108,111,97,100,95,109,111,100,117,108,101,95,115,104,105,109, + 169,2,114,147,0,0,0,114,167,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,218,11,108,111,97, + 100,95,109,111,100,117,108,101,117,3,0,0,115,2,0,0, + 0,12,3,122,25,95,76,111,97,100,101,114,66,97,115,105, + 99,115,46,108,111,97,100,95,109,111,100,117,108,101,78,41, + 8,114,154,0,0,0,114,153,0,0,0,114,155,0,0,0, + 114,156,0,0,0,114,210,0,0,0,114,243,0,0,0,114, + 249,0,0,0,114,252,0,0,0,114,7,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,239,0, + 0,0,93,3,0,0,115,12,0,0,0,8,0,4,2,8, + 3,8,8,8,3,12,8,114,239,0,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,74,0,0,0,101,0,90,1,100,0, + 90,2,100,1,100,2,132,0,90,3,100,3,100,4,132,0, + 90,4,100,5,100,6,132,0,90,5,100,7,100,8,132,0, + 90,6,100,9,100,10,132,0,90,7,100,11,100,12,156,1, + 100,13,100,14,132,2,90,8,100,15,100,16,132,0,90,9, + 100,17,83,0,41,18,218,12,83,111,117,114,99,101,76,111, + 97,100,101,114,99,2,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0, + 0,0,116,0,130,1,41,1,122,165,79,112,116,105,111,110, + 97,108,32,109,101,116,104,111,100,32,116,104,97,116,32,114, + 101,116,117,114,110,115,32,116,104,101,32,109,111,100,105,102, + 105,99,97,116,105,111,110,32,116,105,109,101,32,40,97,110, + 32,105,110,116,41,32,102,111,114,32,116,104,101,10,32,32, + 32,32,32,32,32,32,115,112,101,99,105,102,105,101,100,32, + 112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,32, + 32,32,32,32,32,32,32,82,97,105,115,101,115,32,79,83, + 69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,112, + 97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,97, + 110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,41, + 1,114,79,0,0,0,169,2,114,147,0,0,0,114,68,0, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,218,10,112,97,116,104,95,109,116,105,109,101,125,3,0, + 0,115,2,0,0,0,4,6,122,23,83,111,117,114,99,101, + 76,111,97,100,101,114,46,112,97,116,104,95,109,116,105,109, + 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,4,0,0,0,67,0,0,0,115,14,0,0,0,100, + 1,124,0,160,0,124,1,161,1,105,1,83,0,41,2,97, + 158,1,0,0,79,112,116,105,111,110,97,108,32,109,101,116, + 104,111,100,32,114,101,116,117,114,110,105,110,103,32,97,32, + 109,101,116,97,100,97,116,97,32,100,105,99,116,32,102,111, + 114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,10, + 32,32,32,32,32,32,32,32,112,97,116,104,32,40,97,32, + 115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,80, + 111,115,115,105,98,108,101,32,107,101,121,115,58,10,32,32, + 32,32,32,32,32,32,45,32,39,109,116,105,109,101,39,32, + 40,109,97,110,100,97,116,111,114,121,41,32,105,115,32,116, + 104,101,32,110,117,109,101,114,105,99,32,116,105,109,101,115, + 116,97,109,112,32,111,102,32,108,97,115,116,32,115,111,117, + 114,99,101,10,32,32,32,32,32,32,32,32,32,32,99,111, + 100,101,32,109,111,100,105,102,105,99,97,116,105,111,110,59, + 10,32,32,32,32,32,32,32,32,45,32,39,115,105,122,101, + 39,32,40,111,112,116,105,111,110,97,108,41,32,105,115,32, + 116,104,101,32,115,105,122,101,32,105,110,32,98,121,116,101, + 115,32,111,102,32,116,104,101,32,115,111,117,114,99,101,32, + 99,111,100,101,46,10,10,32,32,32,32,32,32,32,32,73, + 109,112,108,101,109,101,110,116,105,110,103,32,116,104,105,115, + 32,109,101,116,104,111,100,32,97,108,108,111,119,115,32,116, + 104,101,32,108,111,97,100,101,114,32,116,111,32,114,101,97, + 100,32,98,121,116,101,99,111,100,101,32,102,105,108,101,115, + 46,10,32,32,32,32,32,32,32,32,82,97,105,115,101,115, + 32,79,83,69,114,114,111,114,32,119,104,101,110,32,116,104, + 101,32,112,97,116,104,32,99,97,110,110,111,116,32,98,101, + 32,104,97,110,100,108,101,100,46,10,32,32,32,32,32,32, + 32,32,114,197,0,0,0,41,1,114,255,0,0,0,114,254, 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,253,0,0,0,157,3,0,0,114,240,0,0,0, - 122,21,83,111,117,114,99,101,76,111,97,100,101,114,46,115, - 101,116,95,100,97,116,97,99,2,0,0,0,0,0,0,0, - 0,0,0,0,5,0,0,0,10,0,0,0,67,0,0,0, - 115,70,0,0,0,124,0,160,0,124,1,161,1,125,2,122, - 10,124,0,160,1,124,2,161,1,125,3,87,0,116,4,124, - 3,131,1,83,0,4,0,116,2,121,34,1,0,125,4,1, - 0,122,7,116,3,100,1,124,1,100,2,141,2,124,4,130, - 2,100,3,125,4,126,4,119,1,119,0,41,4,122,52,67, - 111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,110, - 116,97,116,105,111,110,32,111,102,32,73,110,115,112,101,99, - 116,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114, - 99,101,46,122,39,115,111,117,114,99,101,32,110,111,116,32, - 97,118,97,105,108,97,98,108,101,32,116,104,114,111,117,103, - 104,32,103,101,116,95,100,97,116,97,40,41,114,140,0,0, - 0,78,41,5,114,203,0,0,0,218,8,103,101,116,95,100, - 97,116,97,114,76,0,0,0,114,142,0,0,0,114,200,0, - 0,0,41,5,114,143,0,0,0,114,163,0,0,0,114,65, - 0,0,0,114,198,0,0,0,218,3,101,120,99,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,218,10,103,101, - 116,95,115,111,117,114,99,101,164,3,0,0,115,24,0,0, - 0,10,2,2,1,12,1,8,4,14,253,4,1,2,1,4, - 255,2,1,2,255,8,128,2,255,122,23,83,111,117,114,99, - 101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,114, - 99,101,114,130,0,0,0,41,1,218,9,95,111,112,116,105, - 109,105,122,101,99,3,0,0,0,0,0,0,0,1,0,0, - 0,4,0,0,0,8,0,0,0,67,0,0,0,115,22,0, - 0,0,116,0,106,1,116,2,124,1,124,2,100,1,100,2, - 124,3,100,3,141,6,83,0,41,4,122,130,82,101,116,117, - 114,110,32,116,104,101,32,99,111,100,101,32,111,98,106,101, - 99,116,32,99,111,109,112,105,108,101,100,32,102,114,111,109, - 32,115,111,117,114,99,101,46,10,10,32,32,32,32,32,32, - 32,32,84,104,101,32,39,100,97,116,97,39,32,97,114,103, - 117,109,101,110,116,32,99,97,110,32,98,101,32,97,110,121, - 32,111,98,106,101,99,116,32,116,121,112,101,32,116,104,97, - 116,32,99,111,109,112,105,108,101,40,41,32,115,117,112,112, - 111,114,116,115,46,10,32,32,32,32,32,32,32,32,114,243, - 0,0,0,84,41,2,218,12,100,111,110,116,95,105,110,104, - 101,114,105,116,114,108,0,0,0,41,3,114,159,0,0,0, - 114,242,0,0,0,218,7,99,111,109,112,105,108,101,41,4, - 114,143,0,0,0,114,41,0,0,0,114,65,0,0,0,114, - 2,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,14,115,111,117,114,99,101,95,116,111,95,99, - 111,100,101,174,3,0,0,115,6,0,0,0,12,5,4,1, - 6,255,122,27,83,111,117,114,99,101,76,111,97,100,101,114, - 46,115,111,117,114,99,101,95,116,111,95,99,111,100,101,99, - 2,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0, - 9,0,0,0,67,0,0,0,115,2,2,0,0,124,0,160, - 0,124,1,161,1,125,2,100,1,125,3,100,1,125,4,100, - 1,125,5,100,2,125,6,100,3,125,7,122,6,116,1,124, - 2,131,1,125,8,87,0,110,11,4,0,116,2,121,32,1, - 0,1,0,1,0,100,1,125,8,89,0,110,144,119,0,122, - 7,124,0,160,3,124,2,161,1,125,9,87,0,110,9,4, - 0,116,4,121,49,1,0,1,0,1,0,89,0,110,127,119, - 0,116,5,124,9,100,4,25,0,131,1,125,3,122,7,124, - 0,160,6,124,8,161,1,125,10,87,0,110,9,4,0,116, - 4,121,72,1,0,1,0,1,0,89,0,110,104,119,0,124, - 1,124,8,100,5,156,2,125,11,122,71,116,7,124,10,124, - 1,124,11,131,3,125,12,116,8,124,10,131,1,100,6,100, - 1,133,2,25,0,125,13,124,12,100,7,64,0,100,8,107, - 3,125,6,124,6,114,138,124,12,100,9,64,0,100,8,107, - 3,125,7,116,9,106,10,100,10,107,3,114,137,124,7,115, - 119,116,9,106,10,100,11,107,2,114,137,124,0,160,6,124, - 2,161,1,125,4,116,9,160,11,116,12,124,4,161,2,125, - 5,116,13,124,10,124,5,124,1,124,11,131,4,1,0,110, - 10,116,14,124,10,124,3,124,9,100,12,25,0,124,1,124, - 11,131,5,1,0,87,0,110,11,4,0,116,15,116,16,102, - 2,121,160,1,0,1,0,1,0,89,0,110,16,119,0,116, - 17,160,18,100,13,124,8,124,2,161,3,1,0,116,19,124, - 13,124,1,124,8,124,2,100,14,141,4,83,0,124,4,100, - 1,117,0,114,185,124,0,160,6,124,2,161,1,125,4,124, - 0,160,20,124,4,124,2,161,2,125,14,116,17,160,18,100, - 15,124,2,161,2,1,0,116,21,106,22,115,255,124,8,100, - 1,117,1,114,255,124,3,100,1,117,1,114,255,124,6,114, - 226,124,5,100,1,117,0,114,219,116,9,160,11,124,4,161, - 1,125,5,116,23,124,14,124,5,124,7,131,3,125,10,110, - 8,116,24,124,14,124,3,116,25,124,4,131,1,131,3,125, - 10,122,10,124,0,160,26,124,2,124,8,124,10,161,3,1, - 0,87,0,124,14,83,0,4,0,116,2,121,254,1,0,1, - 0,1,0,89,0,124,14,83,0,119,0,124,14,83,0,41, - 16,122,190,67,111,110,99,114,101,116,101,32,105,109,112,108, - 101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110, - 115,112,101,99,116,76,111,97,100,101,114,46,103,101,116,95, - 99,111,100,101,46,10,10,32,32,32,32,32,32,32,32,82, - 101,97,100,105,110,103,32,111,102,32,98,121,116,101,99,111, - 100,101,32,114,101,113,117,105,114,101,115,32,112,97,116,104, - 95,115,116,97,116,115,32,116,111,32,98,101,32,105,109,112, - 108,101,109,101,110,116,101,100,46,32,84,111,32,119,114,105, - 116,101,10,32,32,32,32,32,32,32,32,98,121,116,101,99, - 111,100,101,44,32,115,101,116,95,100,97,116,97,32,109,117, - 115,116,32,97,108,115,111,32,98,101,32,105,109,112,108,101, - 109,101,110,116,101,100,46,10,10,32,32,32,32,32,32,32, - 32,78,70,84,114,193,0,0,0,114,183,0,0,0,114,169, - 0,0,0,114,3,0,0,0,114,0,0,0,0,114,44,0, - 0,0,90,5,110,101,118,101,114,90,6,97,108,119,97,121, - 115,218,4,115,105,122,101,122,13,123,125,32,109,97,116,99, - 104,101,115,32,123,125,41,3,114,141,0,0,0,114,132,0, - 0,0,114,134,0,0,0,122,19,99,111,100,101,32,111,98, - 106,101,99,116,32,102,114,111,109,32,123,125,41,27,114,203, - 0,0,0,114,121,0,0,0,114,107,0,0,0,114,252,0, - 0,0,114,76,0,0,0,114,33,0,0,0,114,255,0,0, - 0,114,176,0,0,0,218,10,109,101,109,111,114,121,118,105, - 101,119,114,187,0,0,0,90,21,99,104,101,99,107,95,104, - 97,115,104,95,98,97,115,101,100,95,112,121,99,115,114,181, - 0,0,0,218,17,95,82,65,87,95,77,65,71,73,67,95, - 78,85,77,66,69,82,114,182,0,0,0,114,180,0,0,0, - 114,142,0,0,0,114,174,0,0,0,114,159,0,0,0,114, - 173,0,0,0,114,189,0,0,0,114,5,1,0,0,114,15, - 0,0,0,218,19,100,111,110,116,95,119,114,105,116,101,95, - 98,121,116,101,99,111,100,101,114,195,0,0,0,114,194,0, - 0,0,114,4,0,0,0,114,254,0,0,0,41,15,114,143, - 0,0,0,114,163,0,0,0,114,134,0,0,0,114,178,0, - 0,0,114,198,0,0,0,114,181,0,0,0,90,10,104,97, - 115,104,95,98,97,115,101,100,90,12,99,104,101,99,107,95, - 115,111,117,114,99,101,114,132,0,0,0,218,2,115,116,114, - 41,0,0,0,114,175,0,0,0,114,16,0,0,0,90,10, - 98,121,116,101,115,95,100,97,116,97,90,11,99,111,100,101, - 95,111,98,106,101,99,116,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,241,0,0,0,182,3,0,0,115, - 166,0,0,0,10,7,4,1,4,1,4,1,4,1,4,1, - 2,1,12,1,12,1,8,1,2,255,2,3,14,1,12,1, - 4,1,2,255,12,3,2,1,14,1,12,1,4,1,2,255, - 2,4,2,1,6,254,2,4,12,1,16,1,12,1,4,1, - 12,1,10,1,2,1,2,255,10,2,10,1,4,1,2,1, - 2,1,4,254,8,4,2,1,4,255,2,128,2,3,2,1, - 2,1,6,1,2,1,2,1,4,251,4,128,16,7,4,1, - 2,255,8,3,2,1,4,255,6,2,2,1,2,1,6,254, - 8,3,10,1,12,1,12,1,14,1,8,1,4,1,8,1, - 10,1,14,1,6,2,6,1,4,255,2,2,16,1,4,3, - 12,254,2,1,4,1,2,254,4,2,122,21,83,111,117,114, - 99,101,76,111,97,100,101,114,46,103,101,116,95,99,111,100, - 101,78,41,10,114,150,0,0,0,114,149,0,0,0,114,151, - 0,0,0,114,251,0,0,0,114,252,0,0,0,114,254,0, - 0,0,114,253,0,0,0,114,1,1,0,0,114,5,1,0, - 0,114,241,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,249,0,0,0,123, - 3,0,0,115,16,0,0,0,8,0,8,2,8,8,8,14, - 8,10,8,7,14,10,12,8,114,249,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,0,0,0,0,115,92,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,100,6,100,7,132,0,90,6,101, - 7,135,0,102,1,100,8,100,9,132,8,131,1,90,8,101, - 7,100,10,100,11,132,0,131,1,90,9,100,12,100,13,132, - 0,90,10,101,7,100,14,100,15,132,0,131,1,90,11,135, - 0,4,0,90,12,83,0,41,16,218,10,70,105,108,101,76, - 111,97,100,101,114,122,103,66,97,115,101,32,102,105,108,101, - 32,108,111,97,100,101,114,32,99,108,97,115,115,32,119,104, - 105,99,104,32,105,109,112,108,101,109,101,110,116,115,32,116, - 104,101,32,108,111,97,100,101,114,32,112,114,111,116,111,99, - 111,108,32,109,101,116,104,111,100,115,32,116,104,97,116,10, - 32,32,32,32,114,101,113,117,105,114,101,32,102,105,108,101, - 32,115,121,115,116,101,109,32,117,115,97,103,101,46,99,3, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2, - 0,0,0,67,0,0,0,115,16,0,0,0,124,1,124,0, - 95,0,124,2,124,0,95,1,100,1,83,0,41,2,122,75, - 67,97,99,104,101,32,116,104,101,32,109,111,100,117,108,101, - 32,110,97,109,101,32,97,110,100,32,116,104,101,32,112,97, - 116,104,32,116,111,32,116,104,101,32,102,105,108,101,32,102, - 111,117,110,100,32,98,121,32,116,104,101,10,32,32,32,32, - 32,32,32,32,102,105,110,100,101,114,46,78,114,183,0,0, - 0,41,3,114,143,0,0,0,114,163,0,0,0,114,65,0, + 0,0,218,10,112,97,116,104,95,115,116,97,116,115,133,3, + 0,0,115,2,0,0,0,14,12,122,23,83,111,117,114,99, + 101,76,111,97,100,101,114,46,112,97,116,104,95,115,116,97, + 116,115,99,4,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,4,0,0,0,67,0,0,0,115,12,0,0,0, + 124,0,160,0,124,2,124,3,161,2,83,0,41,1,122,228, + 79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,32, + 119,104,105,99,104,32,119,114,105,116,101,115,32,100,97,116, + 97,32,40,98,121,116,101,115,41,32,116,111,32,97,32,102, + 105,108,101,32,112,97,116,104,32,40,97,32,115,116,114,41, + 46,10,10,32,32,32,32,32,32,32,32,73,109,112,108,101, + 109,101,110,116,105,110,103,32,116,104,105,115,32,109,101,116, + 104,111,100,32,97,108,108,111,119,115,32,102,111,114,32,116, + 104,101,32,119,114,105,116,105,110,103,32,111,102,32,98,121, + 116,101,99,111,100,101,32,102,105,108,101,115,46,10,10,32, + 32,32,32,32,32,32,32,84,104,101,32,115,111,117,114,99, + 101,32,112,97,116,104,32,105,115,32,110,101,101,100,101,100, + 32,105,110,32,111,114,100,101,114,32,116,111,32,99,111,114, + 114,101,99,116,108,121,32,116,114,97,110,115,102,101,114,32, + 112,101,114,109,105,115,115,105,111,110,115,10,32,32,32,32, + 32,32,32,32,41,1,218,8,115,101,116,95,100,97,116,97, + 41,4,114,147,0,0,0,114,138,0,0,0,90,10,99,97, + 99,104,101,95,112,97,116,104,114,44,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,218,15,95,99, + 97,99,104,101,95,98,121,116,101,99,111,100,101,147,3,0, + 0,115,2,0,0,0,12,8,122,28,83,111,117,114,99,101, + 76,111,97,100,101,114,46,95,99,97,99,104,101,95,98,121, + 116,101,99,111,100,101,99,3,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,1,0,0,0,67,0,0,0,114, + 26,0,0,0,41,2,122,150,79,112,116,105,111,110,97,108, + 32,109,101,116,104,111,100,32,119,104,105,99,104,32,119,114, + 105,116,101,115,32,100,97,116,97,32,40,98,121,116,101,115, + 41,32,116,111,32,97,32,102,105,108,101,32,112,97,116,104, + 32,40,97,32,115,116,114,41,46,10,10,32,32,32,32,32, + 32,32,32,73,109,112,108,101,109,101,110,116,105,110,103,32, + 116,104,105,115,32,109,101,116,104,111,100,32,97,108,108,111, + 119,115,32,102,111,114,32,116,104,101,32,119,114,105,116,105, + 110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,102, + 105,108,101,115,46,10,32,32,32,32,32,32,32,32,78,114, + 7,0,0,0,41,3,114,147,0,0,0,114,68,0,0,0, + 114,44,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,1,1,0,0,157,3,0,0,114,244,0, + 0,0,122,21,83,111,117,114,99,101,76,111,97,100,101,114, + 46,115,101,116,95,100,97,116,97,99,2,0,0,0,0,0, + 0,0,0,0,0,0,5,0,0,0,10,0,0,0,67,0, + 0,0,115,70,0,0,0,124,0,160,0,124,1,161,1,125, + 2,122,10,124,0,160,1,124,2,161,1,125,3,87,0,116, + 4,124,3,131,1,83,0,4,0,116,2,121,34,1,0,125, + 4,1,0,122,7,116,3,100,1,124,1,100,2,141,2,124, + 4,130,2,100,3,125,4,126,4,119,1,119,0,41,4,122, + 52,67,111,110,99,114,101,116,101,32,105,109,112,108,101,109, + 101,110,116,97,116,105,111,110,32,111,102,32,73,110,115,112, + 101,99,116,76,111,97,100,101,114,46,103,101,116,95,115,111, + 117,114,99,101,46,122,39,115,111,117,114,99,101,32,110,111, + 116,32,97,118,97,105,108,97,98,108,101,32,116,104,114,111, + 117,103,104,32,103,101,116,95,100,97,116,97,40,41,114,144, + 0,0,0,78,41,5,114,207,0,0,0,218,8,103,101,116, + 95,100,97,116,97,114,79,0,0,0,114,146,0,0,0,114, + 204,0,0,0,41,5,114,147,0,0,0,114,167,0,0,0, + 114,68,0,0,0,114,202,0,0,0,218,3,101,120,99,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,10, + 103,101,116,95,115,111,117,114,99,101,164,3,0,0,115,24, + 0,0,0,10,2,2,1,12,1,8,4,14,253,4,1,2, + 1,4,255,2,1,2,255,8,128,2,255,122,23,83,111,117, + 114,99,101,76,111,97,100,101,114,46,103,101,116,95,115,111, + 117,114,99,101,114,133,0,0,0,41,1,218,9,95,111,112, + 116,105,109,105,122,101,99,3,0,0,0,0,0,0,0,1, + 0,0,0,4,0,0,0,8,0,0,0,67,0,0,0,115, + 22,0,0,0,116,0,106,1,116,2,124,1,124,2,100,1, + 100,2,124,3,100,3,141,6,83,0,41,4,122,130,82,101, + 116,117,114,110,32,116,104,101,32,99,111,100,101,32,111,98, + 106,101,99,116,32,99,111,109,112,105,108,101,100,32,102,114, + 111,109,32,115,111,117,114,99,101,46,10,10,32,32,32,32, + 32,32,32,32,84,104,101,32,39,100,97,116,97,39,32,97, + 114,103,117,109,101,110,116,32,99,97,110,32,98,101,32,97, + 110,121,32,111,98,106,101,99,116,32,116,121,112,101,32,116, + 104,97,116,32,99,111,109,112,105,108,101,40,41,32,115,117, + 112,112,111,114,116,115,46,10,32,32,32,32,32,32,32,32, + 114,247,0,0,0,84,41,2,218,12,100,111,110,116,95,105, + 110,104,101,114,105,116,114,111,0,0,0,41,3,114,163,0, + 0,0,114,246,0,0,0,218,7,99,111,109,112,105,108,101, + 41,4,114,147,0,0,0,114,44,0,0,0,114,68,0,0, + 0,114,6,1,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,14,115,111,117,114,99,101,95,116,111, + 95,99,111,100,101,174,3,0,0,115,6,0,0,0,12,5, + 4,1,6,255,122,27,83,111,117,114,99,101,76,111,97,100, + 101,114,46,115,111,117,114,99,101,95,116,111,95,99,111,100, + 101,99,2,0,0,0,0,0,0,0,0,0,0,0,15,0, + 0,0,9,0,0,0,67,0,0,0,115,2,2,0,0,124, + 0,160,0,124,1,161,1,125,2,100,1,125,3,100,1,125, + 4,100,1,125,5,100,2,125,6,100,3,125,7,122,6,116, + 1,124,2,131,1,125,8,87,0,110,11,4,0,116,2,121, + 32,1,0,1,0,1,0,100,1,125,8,89,0,110,144,119, + 0,122,7,124,0,160,3,124,2,161,1,125,9,87,0,110, + 9,4,0,116,4,121,49,1,0,1,0,1,0,89,0,110, + 127,119,0,116,5,124,9,100,4,25,0,131,1,125,3,122, + 7,124,0,160,6,124,8,161,1,125,10,87,0,110,9,4, + 0,116,4,121,72,1,0,1,0,1,0,89,0,110,104,119, + 0,124,1,124,8,100,5,156,2,125,11,122,71,116,7,124, + 10,124,1,124,11,131,3,125,12,116,8,124,10,131,1,100, + 6,100,1,133,2,25,0,125,13,124,12,100,7,64,0,100, + 8,107,3,125,6,124,6,114,138,124,12,100,9,64,0,100, + 8,107,3,125,7,116,9,106,10,100,10,107,3,114,137,124, + 7,115,119,116,9,106,10,100,11,107,2,114,137,124,0,160, + 6,124,2,161,1,125,4,116,9,160,11,116,12,124,4,161, + 2,125,5,116,13,124,10,124,5,124,1,124,11,131,4,1, + 0,110,10,116,14,124,10,124,3,124,9,100,12,25,0,124, + 1,124,11,131,5,1,0,87,0,110,11,4,0,116,15,116, + 16,102,2,121,160,1,0,1,0,1,0,89,0,110,16,119, + 0,116,17,160,18,100,13,124,8,124,2,161,3,1,0,116, + 19,124,13,124,1,124,8,124,2,100,14,141,4,83,0,124, + 4,100,1,117,0,114,185,124,0,160,6,124,2,161,1,125, + 4,124,0,160,20,124,4,124,2,161,2,125,14,116,17,160, + 18,100,15,124,2,161,2,1,0,116,21,106,22,115,255,124, + 8,100,1,117,1,114,255,124,3,100,1,117,1,114,255,124, + 6,114,226,124,5,100,1,117,0,114,219,116,9,160,11,124, + 4,161,1,125,5,116,23,124,14,124,5,124,7,131,3,125, + 10,110,8,116,24,124,14,124,3,116,25,124,4,131,1,131, + 3,125,10,122,10,124,0,160,26,124,2,124,8,124,10,161, + 3,1,0,87,0,124,14,83,0,4,0,116,2,121,254,1, + 0,1,0,1,0,89,0,124,14,83,0,119,0,124,14,83, + 0,41,16,122,190,67,111,110,99,114,101,116,101,32,105,109, + 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32, + 73,110,115,112,101,99,116,76,111,97,100,101,114,46,103,101, + 116,95,99,111,100,101,46,10,10,32,32,32,32,32,32,32, + 32,82,101,97,100,105,110,103,32,111,102,32,98,121,116,101, + 99,111,100,101,32,114,101,113,117,105,114,101,115,32,112,97, + 116,104,95,115,116,97,116,115,32,116,111,32,98,101,32,105, + 109,112,108,101,109,101,110,116,101,100,46,32,84,111,32,119, + 114,105,116,101,10,32,32,32,32,32,32,32,32,98,121,116, + 101,99,111,100,101,44,32,115,101,116,95,100,97,116,97,32, + 109,117,115,116,32,97,108,115,111,32,98,101,32,105,109,112, + 108,101,109,101,110,116,101,100,46,10,10,32,32,32,32,32, + 32,32,32,78,70,84,114,197,0,0,0,114,187,0,0,0, + 114,173,0,0,0,114,3,0,0,0,114,0,0,0,0,114, + 47,0,0,0,90,5,110,101,118,101,114,90,6,97,108,119, + 97,121,115,218,4,115,105,122,101,122,13,123,125,32,109,97, + 116,99,104,101,115,32,123,125,41,3,114,145,0,0,0,114, + 135,0,0,0,114,138,0,0,0,122,19,99,111,100,101,32, + 111,98,106,101,99,116,32,102,114,111,109,32,123,125,41,27, + 114,207,0,0,0,114,124,0,0,0,114,110,0,0,0,114, + 0,1,0,0,114,79,0,0,0,114,36,0,0,0,114,3, + 1,0,0,114,180,0,0,0,218,10,109,101,109,111,114,121, + 118,105,101,119,114,191,0,0,0,90,21,99,104,101,99,107, + 95,104,97,115,104,95,98,97,115,101,100,95,112,121,99,115, + 114,185,0,0,0,218,17,95,82,65,87,95,77,65,71,73, + 67,95,78,85,77,66,69,82,114,186,0,0,0,114,184,0, + 0,0,114,146,0,0,0,114,178,0,0,0,114,163,0,0, + 0,114,177,0,0,0,114,193,0,0,0,114,9,1,0,0, + 114,18,0,0,0,218,19,100,111,110,116,95,119,114,105,116, + 101,95,98,121,116,101,99,111,100,101,114,199,0,0,0,114, + 198,0,0,0,114,4,0,0,0,114,2,1,0,0,41,15, + 114,147,0,0,0,114,167,0,0,0,114,138,0,0,0,114, + 182,0,0,0,114,202,0,0,0,114,185,0,0,0,90,10, + 104,97,115,104,95,98,97,115,101,100,90,12,99,104,101,99, + 107,95,115,111,117,114,99,101,114,135,0,0,0,218,2,115, + 116,114,44,0,0,0,114,179,0,0,0,114,19,0,0,0, + 90,10,98,121,116,101,115,95,100,97,116,97,90,11,99,111, + 100,101,95,111,98,106,101,99,116,114,7,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,245,0,0,0,182,3,0, + 0,115,166,0,0,0,10,7,4,1,4,1,4,1,4,1, + 4,1,2,1,12,1,12,1,8,1,2,255,2,3,14,1, + 12,1,4,1,2,255,12,3,2,1,14,1,12,1,4,1, + 2,255,2,4,2,1,6,254,2,4,12,1,16,1,12,1, + 4,1,12,1,10,1,2,1,2,255,10,2,10,1,4,1, + 2,1,2,1,4,254,8,4,2,1,4,255,2,128,2,3, + 2,1,2,1,6,1,2,1,2,1,4,251,4,128,16,7, + 4,1,2,255,8,3,2,1,4,255,6,2,2,1,2,1, + 6,254,8,3,10,1,12,1,12,1,14,1,8,1,4,1, + 8,1,10,1,14,1,6,2,6,1,4,255,2,2,16,1, + 4,3,12,254,2,1,4,1,2,254,4,2,122,21,83,111, + 117,114,99,101,76,111,97,100,101,114,46,103,101,116,95,99, + 111,100,101,78,41,10,114,154,0,0,0,114,153,0,0,0, + 114,155,0,0,0,114,255,0,0,0,114,0,1,0,0,114, + 2,1,0,0,114,1,1,0,0,114,5,1,0,0,114,9, + 1,0,0,114,245,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,253,0,0, + 0,123,3,0,0,115,16,0,0,0,8,0,8,2,8,8, + 8,14,8,10,8,7,14,10,12,8,114,253,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,0,0,0,0,115,92,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,100,6,100,7,132,0,90, + 6,101,7,135,0,102,1,100,8,100,9,132,8,131,1,90, + 8,101,7,100,10,100,11,132,0,131,1,90,9,100,12,100, + 13,132,0,90,10,101,7,100,14,100,15,132,0,131,1,90, + 11,135,0,4,0,90,12,83,0,41,16,218,10,70,105,108, + 101,76,111,97,100,101,114,122,103,66,97,115,101,32,102,105, + 108,101,32,108,111,97,100,101,114,32,99,108,97,115,115,32, + 119,104,105,99,104,32,105,109,112,108,101,109,101,110,116,115, + 32,116,104,101,32,108,111,97,100,101,114,32,112,114,111,116, + 111,99,111,108,32,109,101,116,104,111,100,115,32,116,104,97, + 116,10,32,32,32,32,114,101,113,117,105,114,101,32,102,105, + 108,101,32,115,121,115,116,101,109,32,117,115,97,103,101,46, + 99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,2,0,0,0,67,0,0,0,115,16,0,0,0,124,1, + 124,0,95,0,124,2,124,0,95,1,100,1,83,0,41,2, + 122,75,67,97,99,104,101,32,116,104,101,32,109,111,100,117, + 108,101,32,110,97,109,101,32,97,110,100,32,116,104,101,32, + 112,97,116,104,32,116,111,32,116,104,101,32,102,105,108,101, + 32,102,111,117,110,100,32,98,121,32,116,104,101,10,32,32, + 32,32,32,32,32,32,102,105,110,100,101,114,46,78,114,187, + 0,0,0,41,3,114,147,0,0,0,114,167,0,0,0,114, + 68,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,240,0,0,0,16,4,0,0,115,4,0,0, + 0,6,3,10,1,122,19,70,105,108,101,76,111,97,100,101, + 114,46,95,95,105,110,105,116,95,95,99,2,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67, + 0,0,0,243,24,0,0,0,124,0,106,0,124,1,106,0, + 107,2,111,11,124,0,106,1,124,1,106,1,107,2,83,0, + 114,72,0,0,0,169,2,218,9,95,95,99,108,97,115,115, + 95,95,114,160,0,0,0,169,2,114,147,0,0,0,90,5, + 111,116,104,101,114,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,218,6,95,95,101,113,95,95,22,4,0,0, + 243,6,0,0,0,12,1,10,1,2,255,122,17,70,105,108, + 101,76,111,97,100,101,114,46,95,95,101,113,95,95,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,243,20,0,0,0,116,0,124,0, + 106,1,131,1,116,0,124,0,106,2,131,1,65,0,83,0, + 114,72,0,0,0,169,3,218,4,104,97,115,104,114,145,0, + 0,0,114,68,0,0,0,169,1,114,147,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,218,8,95, + 95,104,97,115,104,95,95,26,4,0,0,243,2,0,0,0, + 20,1,122,19,70,105,108,101,76,111,97,100,101,114,46,95, + 95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0, + 115,16,0,0,0,116,0,116,1,124,0,131,2,160,2,124, + 1,161,1,83,0,41,1,122,100,76,111,97,100,32,97,32, + 109,111,100,117,108,101,32,102,114,111,109,32,97,32,102,105, + 108,101,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,101,120,101, + 99,95,109,111,100,117,108,101,40,41,32,105,110,115,116,101, + 97,100,46,10,10,32,32,32,32,32,32,32,32,41,3,218, + 5,115,117,112,101,114,114,15,1,0,0,114,252,0,0,0, + 114,251,0,0,0,169,1,114,18,1,0,0,114,7,0,0, + 0,114,8,0,0,0,114,252,0,0,0,29,4,0,0,115, + 2,0,0,0,16,10,122,22,70,105,108,101,76,111,97,100, + 101,114,46,108,111,97,100,95,109,111,100,117,108,101,99,2, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1, + 0,0,0,67,0,0,0,243,6,0,0,0,124,0,106,0, + 83,0,169,1,122,58,82,101,116,117,114,110,32,116,104,101, + 32,112,97,116,104,32,116,111,32,116,104,101,32,115,111,117, + 114,99,101,32,102,105,108,101,32,97,115,32,102,111,117,110, + 100,32,98,121,32,116,104,101,32,102,105,110,100,101,114,46, + 114,74,0,0,0,114,251,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,207,0,0,0,41,4, + 0,0,243,2,0,0,0,6,3,122,23,70,105,108,101,76, + 111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,97, + 109,101,99,2,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,8,0,0,0,67,0,0,0,115,128,0,0,0, + 116,0,124,0,116,1,116,2,102,2,131,2,114,36,116,3, + 160,4,116,5,124,1,131,1,161,1,143,12,125,2,124,2, + 160,6,161,0,87,0,2,0,100,1,4,0,4,0,131,3, + 1,0,83,0,49,0,115,29,119,1,1,0,1,0,1,0, + 89,0,1,0,100,1,83,0,116,3,160,7,124,1,100,2, + 161,2,143,12,125,2,124,2,160,6,161,0,87,0,2,0, + 100,1,4,0,4,0,131,3,1,0,83,0,49,0,115,57, + 119,1,1,0,1,0,1,0,89,0,1,0,100,1,83,0, + 41,3,122,39,82,101,116,117,114,110,32,116,104,101,32,100, + 97,116,97,32,102,114,111,109,32,112,97,116,104,32,97,115, + 32,114,97,119,32,98,121,116,101,115,46,78,218,1,114,41, + 8,114,189,0,0,0,114,253,0,0,0,218,19,69,120,116, + 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114, + 114,94,0,0,0,90,9,111,112,101,110,95,99,111,100,101, + 114,112,0,0,0,90,4,114,101,97,100,114,95,0,0,0, + 41,3,114,147,0,0,0,114,68,0,0,0,114,97,0,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,3,1,0,0,46,4,0,0,115,14,0,0,0,14,2, + 16,1,6,1,36,255,14,3,6,1,36,255,122,19,70,105, + 108,101,76,111,97,100,101,114,46,103,101,116,95,100,97,116, + 97,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,2,0,0,0,67,0,0,0,115,20,0,0,0,100, + 1,100,2,108,0,109,1,125,2,1,0,124,2,124,0,131, + 1,83,0,41,3,78,114,0,0,0,0,41,1,218,10,70, + 105,108,101,82,101,97,100,101,114,41,2,218,17,105,109,112, + 111,114,116,108,105,98,46,114,101,97,100,101,114,115,114,35, + 1,0,0,41,3,114,147,0,0,0,114,248,0,0,0,114, + 35,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,218,19,103,101,116,95,114,101,115,111,117,114,99, + 101,95,114,101,97,100,101,114,55,4,0,0,115,4,0,0, + 0,12,2,8,1,122,30,70,105,108,101,76,111,97,100,101, + 114,46,103,101,116,95,114,101,115,111,117,114,99,101,95,114, + 101,97,100,101,114,41,13,114,154,0,0,0,114,153,0,0, + 0,114,155,0,0,0,114,156,0,0,0,114,240,0,0,0, + 114,20,1,0,0,114,26,1,0,0,114,164,0,0,0,114, + 252,0,0,0,114,207,0,0,0,114,3,1,0,0,114,37, + 1,0,0,218,13,95,95,99,108,97,115,115,99,101,108,108, + 95,95,114,7,0,0,0,114,7,0,0,0,114,29,1,0, + 0,114,8,0,0,0,114,15,1,0,0,11,4,0,0,115, + 24,0,0,0,8,0,4,2,8,3,8,6,8,4,2,3, + 14,1,2,11,10,1,8,4,2,9,18,1,114,15,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,46,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,100,6,100,7,156, + 1,100,8,100,9,132,2,90,6,100,10,83,0,41,11,218, + 16,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101, + 114,122,62,67,111,110,99,114,101,116,101,32,105,109,112,108, + 101,109,101,110,116,97,116,105,111,110,32,111,102,32,83,111, + 117,114,99,101,76,111,97,100,101,114,32,117,115,105,110,103, + 32,116,104,101,32,102,105,108,101,32,115,121,115,116,101,109, + 46,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,22,0,0,0,116, + 0,124,1,131,1,125,2,124,2,106,1,124,2,106,2,100, + 1,156,2,83,0,41,2,122,33,82,101,116,117,114,110,32, + 116,104,101,32,109,101,116,97,100,97,116,97,32,102,111,114, + 32,116,104,101,32,112,97,116,104,46,41,2,114,197,0,0, + 0,114,10,1,0,0,41,3,114,78,0,0,0,218,8,115, + 116,95,109,116,105,109,101,90,7,115,116,95,115,105,122,101, + 41,3,114,147,0,0,0,114,68,0,0,0,114,14,1,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,0,1,0,0,65,4,0,0,115,4,0,0,0,8,2, + 14,1,122,27,83,111,117,114,99,101,70,105,108,101,76,111, + 97,100,101,114,46,112,97,116,104,95,115,116,97,116,115,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,24,0,0,0,116,0,124, + 1,131,1,125,4,124,0,106,1,124,2,124,3,124,4,100, + 1,141,3,83,0,41,2,78,169,1,218,5,95,109,111,100, + 101,41,2,114,143,0,0,0,114,1,1,0,0,41,5,114, + 147,0,0,0,114,138,0,0,0,114,135,0,0,0,114,44, + 0,0,0,114,81,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,2,1,0,0,70,4,0,0, + 115,4,0,0,0,8,2,16,1,122,32,83,111,117,114,99, + 101,70,105,108,101,76,111,97,100,101,114,46,95,99,97,99, + 104,101,95,98,121,116,101,99,111,100,101,114,90,0,0,0, + 114,41,1,0,0,99,3,0,0,0,0,0,0,0,1,0, + 0,0,9,0,0,0,11,0,0,0,67,0,0,0,115,254, + 0,0,0,116,0,124,1,131,1,92,2,125,4,125,5,103, + 0,125,6,124,4,114,31,116,1,124,4,131,1,115,31,116, + 0,124,4,131,1,92,2,125,4,125,7,124,6,160,2,124, + 7,161,1,1,0,124,4,114,31,116,1,124,4,131,1,114, + 14,116,3,124,6,131,1,68,0,93,49,125,7,116,4,124, + 4,124,7,131,2,125,4,122,7,116,5,160,6,124,4,161, + 1,1,0,87,0,113,35,4,0,116,7,121,58,1,0,1, + 0,1,0,89,0,113,35,4,0,116,8,121,84,1,0,125, + 8,1,0,122,15,116,9,160,10,100,1,124,4,124,8,161, + 3,1,0,87,0,89,0,100,2,125,8,126,8,1,0,100, + 2,83,0,100,2,125,8,126,8,119,1,119,0,122,15,116, + 11,124,1,124,2,124,3,131,3,1,0,116,9,160,10,100, + 3,124,1,161,2,1,0,87,0,100,2,83,0,4,0,116, + 8,121,126,1,0,125,8,1,0,122,14,116,9,160,10,100, + 1,124,1,124,8,161,3,1,0,87,0,89,0,100,2,125, + 8,126,8,100,2,83,0,100,2,125,8,126,8,119,1,119, + 0,41,4,122,27,87,114,105,116,101,32,98,121,116,101,115, + 32,100,97,116,97,32,116,111,32,97,32,102,105,108,101,46, + 122,27,99,111,117,108,100,32,110,111,116,32,99,114,101,97, + 116,101,32,123,33,114,125,58,32,123,33,114,125,78,122,12, + 99,114,101,97,116,101,100,32,123,33,114,125,41,12,114,77, + 0,0,0,114,86,0,0,0,114,64,0,0,0,218,8,114, + 101,118,101,114,115,101,100,114,70,0,0,0,114,21,0,0, + 0,90,5,109,107,100,105,114,218,15,70,105,108,101,69,120, + 105,115,116,115,69,114,114,111,114,114,79,0,0,0,114,163, + 0,0,0,114,177,0,0,0,114,98,0,0,0,41,9,114, + 147,0,0,0,114,68,0,0,0,114,44,0,0,0,114,42, + 1,0,0,218,6,112,97,114,101,110,116,114,123,0,0,0, + 114,66,0,0,0,114,71,0,0,0,114,4,1,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,1, + 1,0,0,75,4,0,0,115,56,0,0,0,12,2,4,1, + 12,2,12,1,10,1,12,254,12,4,10,1,2,1,14,1, + 12,1,4,2,14,1,6,3,4,1,4,255,16,2,8,128, + 2,251,2,6,12,1,18,1,14,1,8,2,2,1,18,255, + 8,128,2,254,122,25,83,111,117,114,99,101,70,105,108,101, + 76,111,97,100,101,114,46,115,101,116,95,100,97,116,97,78, + 41,7,114,154,0,0,0,114,153,0,0,0,114,155,0,0, + 0,114,156,0,0,0,114,0,1,0,0,114,2,1,0,0, + 114,1,1,0,0,114,7,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,39,1,0,0,61,4, + 0,0,115,10,0,0,0,8,0,4,2,8,2,8,5,18, + 5,114,39,1,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115, + 32,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, + 100,6,83,0,41,7,218,20,83,111,117,114,99,101,108,101, + 115,115,70,105,108,101,76,111,97,100,101,114,122,45,76,111, + 97,100,101,114,32,119,104,105,99,104,32,104,97,110,100,108, + 101,115,32,115,111,117,114,99,101,108,101,115,115,32,102,105, + 108,101,32,105,109,112,111,114,116,115,46,99,2,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0, + 67,0,0,0,115,68,0,0,0,124,0,160,0,124,1,161, + 1,125,2,124,0,160,1,124,2,161,1,125,3,124,1,124, + 2,100,1,156,2,125,4,116,2,124,3,124,1,124,4,131, + 3,1,0,116,3,116,4,124,3,131,1,100,2,100,0,133, + 2,25,0,124,1,124,2,100,3,141,3,83,0,41,4,78, + 114,187,0,0,0,114,173,0,0,0,41,2,114,145,0,0, + 0,114,135,0,0,0,41,5,114,207,0,0,0,114,3,1, + 0,0,114,180,0,0,0,114,193,0,0,0,114,11,1,0, + 0,41,5,114,147,0,0,0,114,167,0,0,0,114,68,0, + 0,0,114,44,0,0,0,114,179,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,245,0,0,0, + 110,4,0,0,115,22,0,0,0,10,1,10,1,2,4,2, + 1,6,254,12,4,2,1,14,1,2,1,2,1,6,253,122, + 29,83,111,117,114,99,101,108,101,115,115,70,105,108,101,76, + 111,97,100,101,114,46,103,101,116,95,99,111,100,101,99,2, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1, + 0,0,0,67,0,0,0,114,26,0,0,0,41,2,122,39, + 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,116, + 104,101,114,101,32,105,115,32,110,111,32,115,111,117,114,99, + 101,32,99,111,100,101,46,78,114,7,0,0,0,114,251,0, 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,236,0,0,0,16,4,0,0,115,4,0,0,0,6, - 3,10,1,122,19,70,105,108,101,76,111,97,100,101,114,46, + 0,114,5,1,0,0,126,4,0,0,114,27,0,0,0,122, + 31,83,111,117,114,99,101,108,101,115,115,70,105,108,101,76, + 111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,101, + 78,41,6,114,154,0,0,0,114,153,0,0,0,114,155,0, + 0,0,114,156,0,0,0,114,245,0,0,0,114,5,1,0, + 0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,46,1,0,0,106,4,0,0,115,8, + 0,0,0,8,0,4,2,8,2,12,16,114,46,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,92,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,100,6,100,7,132,0, + 90,6,100,8,100,9,132,0,90,7,100,10,100,11,132,0, + 90,8,100,12,100,13,132,0,90,9,100,14,100,15,132,0, + 90,10,100,16,100,17,132,0,90,11,101,12,100,18,100,19, + 132,0,131,1,90,13,100,20,83,0,41,21,114,34,1,0, + 0,122,93,76,111,97,100,101,114,32,102,111,114,32,101,120, + 116,101,110,115,105,111,110,32,109,111,100,117,108,101,115,46, + 10,10,32,32,32,32,84,104,101,32,99,111,110,115,116,114, + 117,99,116,111,114,32,105,115,32,100,101,115,105,103,110,101, + 100,32,116,111,32,119,111,114,107,32,119,105,116,104,32,70, + 105,108,101,70,105,110,100,101,114,46,10,10,32,32,32,32, + 99,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,2,0,0,0,67,0,0,0,115,16,0,0,0,124,1, + 124,0,95,0,124,2,124,0,95,1,100,0,83,0,114,72, + 0,0,0,114,187,0,0,0,41,3,114,147,0,0,0,114, + 145,0,0,0,114,68,0,0,0,114,7,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,240,0,0,0,139,4,0, + 0,115,4,0,0,0,6,1,10,1,122,28,69,120,116,101, + 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46, 95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,0, 0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0, - 0,243,24,0,0,0,124,0,106,0,124,1,106,0,107,2, - 111,11,124,0,106,1,124,1,106,1,107,2,83,0,114,69, - 0,0,0,169,2,218,9,95,95,99,108,97,115,115,95,95, - 114,156,0,0,0,169,2,114,143,0,0,0,90,5,111,116, - 104,101,114,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,218,6,95,95,101,113,95,95,22,4,0,0,243,6, - 0,0,0,12,1,10,1,2,255,122,17,70,105,108,101,76, - 111,97,100,101,114,46,95,95,101,113,95,95,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,243,20,0,0,0,116,0,124,0,106,1, - 131,1,116,0,124,0,106,2,131,1,65,0,83,0,114,69, - 0,0,0,169,3,218,4,104,97,115,104,114,141,0,0,0, - 114,65,0,0,0,169,1,114,143,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,218,8,95,95,104, - 97,115,104,95,95,26,4,0,0,243,2,0,0,0,20,1, - 122,19,70,105,108,101,76,111,97,100,101,114,46,95,95,104, - 97,115,104,95,95,99,2,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,3,0,0,0,3,0,0,0,115,16, - 0,0,0,116,0,116,1,124,0,131,2,160,2,124,1,161, - 1,83,0,41,1,122,100,76,111,97,100,32,97,32,109,111, - 100,117,108,101,32,102,114,111,109,32,97,32,102,105,108,101, - 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,101,120,101,99,95, - 109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,100, - 46,10,10,32,32,32,32,32,32,32,32,41,3,218,5,115, - 117,112,101,114,114,11,1,0,0,114,248,0,0,0,114,247, - 0,0,0,169,1,114,14,1,0,0,114,7,0,0,0,114, - 8,0,0,0,114,248,0,0,0,29,4,0,0,115,2,0, - 0,0,16,10,122,22,70,105,108,101,76,111,97,100,101,114, - 46,108,111,97,100,95,109,111,100,117,108,101,99,2,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0, - 0,67,0,0,0,243,6,0,0,0,124,0,106,0,83,0, - 169,1,122,58,82,101,116,117,114,110,32,116,104,101,32,112, - 97,116,104,32,116,111,32,116,104,101,32,115,111,117,114,99, - 101,32,102,105,108,101,32,97,115,32,102,111,117,110,100,32, - 98,121,32,116,104,101,32,102,105,110,100,101,114,46,114,71, - 0,0,0,114,247,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,203,0,0,0,41,4,0,0, - 243,2,0,0,0,6,3,122,23,70,105,108,101,76,111,97, - 100,101,114,46,103,101,116,95,102,105,108,101,110,97,109,101, - 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,8,0,0,0,67,0,0,0,115,128,0,0,0,116,0, - 124,0,116,1,116,2,102,2,131,2,114,36,116,3,160,4, - 116,5,124,1,131,1,161,1,143,12,125,2,124,2,160,6, - 161,0,87,0,2,0,100,1,4,0,4,0,131,3,1,0, - 83,0,49,0,115,29,119,1,1,0,1,0,1,0,89,0, - 1,0,100,1,83,0,116,3,160,7,124,1,100,2,161,2, - 143,12,125,2,124,2,160,6,161,0,87,0,2,0,100,1, - 4,0,4,0,131,3,1,0,83,0,49,0,115,57,119,1, - 1,0,1,0,1,0,89,0,1,0,100,1,83,0,41,3, - 122,39,82,101,116,117,114,110,32,116,104,101,32,100,97,116, - 97,32,102,114,111,109,32,112,97,116,104,32,97,115,32,114, - 97,119,32,98,121,116,101,115,46,78,218,1,114,41,8,114, - 185,0,0,0,114,249,0,0,0,218,19,69,120,116,101,110, - 115,105,111,110,70,105,108,101,76,111,97,100,101,114,114,91, - 0,0,0,90,9,111,112,101,110,95,99,111,100,101,114,109, - 0,0,0,90,4,114,101,97,100,114,92,0,0,0,41,3, - 114,143,0,0,0,114,65,0,0,0,114,94,0,0,0,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,255, - 0,0,0,46,4,0,0,115,14,0,0,0,14,2,16,1, - 6,1,36,255,14,3,6,1,36,255,122,19,70,105,108,101, - 76,111,97,100,101,114,46,103,101,116,95,100,97,116,97,99, - 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 2,0,0,0,67,0,0,0,115,20,0,0,0,100,1,100, - 2,108,0,109,1,125,2,1,0,124,2,124,0,131,1,83, - 0,41,3,78,114,0,0,0,0,41,1,218,10,70,105,108, - 101,82,101,97,100,101,114,41,2,218,17,105,109,112,111,114, - 116,108,105,98,46,114,101,97,100,101,114,115,114,31,1,0, - 0,41,3,114,143,0,0,0,114,244,0,0,0,114,31,1, + 0,114,16,1,0,0,114,72,0,0,0,114,17,1,0,0, + 114,19,1,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,20,1,0,0,143,4,0,0,114,21,1, + 0,0,122,26,69,120,116,101,110,115,105,111,110,70,105,108, + 101,76,111,97,100,101,114,46,95,95,101,113,95,95,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,114,22,1,0,0,114,72,0,0, + 0,114,23,1,0,0,114,25,1,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,26,1,0,0,147, + 4,0,0,114,27,1,0,0,122,28,69,120,116,101,110,115, + 105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,95, + 104,97,115,104,95,95,99,2,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,5,0,0,0,67,0,0,0,115, + 36,0,0,0,116,0,160,1,116,2,106,3,124,1,161,2, + 125,2,116,0,160,4,100,1,124,1,106,5,124,0,106,6, + 161,3,1,0,124,2,83,0,41,2,122,38,67,114,101,97, + 116,101,32,97,110,32,117,110,105,116,105,97,108,105,122,101, + 100,32,101,120,116,101,110,115,105,111,110,32,109,111,100,117, + 108,101,122,38,101,120,116,101,110,115,105,111,110,32,109,111, + 100,117,108,101,32,123,33,114,125,32,108,111,97,100,101,100, + 32,102,114,111,109,32,123,33,114,125,41,7,114,163,0,0, + 0,114,246,0,0,0,114,191,0,0,0,90,14,99,114,101, + 97,116,101,95,100,121,110,97,109,105,99,114,177,0,0,0, + 114,145,0,0,0,114,68,0,0,0,41,3,114,147,0,0, + 0,114,214,0,0,0,114,248,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,243,0,0,0,150, + 4,0,0,115,14,0,0,0,4,2,6,1,4,255,6,2, + 8,1,4,255,4,2,122,33,69,120,116,101,110,115,105,111, + 110,70,105,108,101,76,111,97,100,101,114,46,99,114,101,97, + 116,101,95,109,111,100,117,108,101,99,2,0,0,0,0,0, + 0,0,0,0,0,0,2,0,0,0,5,0,0,0,67,0, + 0,0,115,36,0,0,0,116,0,160,1,116,2,106,3,124, + 1,161,2,1,0,116,0,160,4,100,1,124,0,106,5,124, + 0,106,6,161,3,1,0,100,2,83,0,41,3,122,30,73, + 110,105,116,105,97,108,105,122,101,32,97,110,32,101,120,116, + 101,110,115,105,111,110,32,109,111,100,117,108,101,122,40,101, + 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32, + 123,33,114,125,32,101,120,101,99,117,116,101,100,32,102,114, + 111,109,32,123,33,114,125,78,41,7,114,163,0,0,0,114, + 246,0,0,0,114,191,0,0,0,90,12,101,120,101,99,95, + 100,121,110,97,109,105,99,114,177,0,0,0,114,145,0,0, + 0,114,68,0,0,0,169,2,114,147,0,0,0,114,248,0, 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,218,19,103,101,116,95,114,101,115,111,117,114,99,101,95, - 114,101,97,100,101,114,55,4,0,0,115,4,0,0,0,12, - 2,8,1,122,30,70,105,108,101,76,111,97,100,101,114,46, - 103,101,116,95,114,101,115,111,117,114,99,101,95,114,101,97, - 100,101,114,41,13,114,150,0,0,0,114,149,0,0,0,114, - 151,0,0,0,114,152,0,0,0,114,236,0,0,0,114,16, - 1,0,0,114,22,1,0,0,114,160,0,0,0,114,248,0, - 0,0,114,203,0,0,0,114,255,0,0,0,114,33,1,0, - 0,90,13,95,95,99,108,97,115,115,99,101,108,108,95,95, - 114,7,0,0,0,114,7,0,0,0,114,25,1,0,0,114, - 8,0,0,0,114,11,1,0,0,11,4,0,0,115,24,0, - 0,0,8,0,4,2,8,3,8,6,8,4,2,3,14,1, - 2,11,10,1,8,4,2,9,18,1,114,11,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,46,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,100,6,100,7,156,1,100, - 8,100,9,132,2,90,6,100,10,83,0,41,11,218,16,83, - 111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,122, - 62,67,111,110,99,114,101,116,101,32,105,109,112,108,101,109, - 101,110,116,97,116,105,111,110,32,111,102,32,83,111,117,114, - 99,101,76,111,97,100,101,114,32,117,115,105,110,103,32,116, - 104,101,32,102,105,108,101,32,115,121,115,116,101,109,46,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,22,0,0,0,116,0,124, - 1,131,1,125,2,124,2,106,1,124,2,106,2,100,1,156, - 2,83,0,41,2,122,33,82,101,116,117,114,110,32,116,104, - 101,32,109,101,116,97,100,97,116,97,32,102,111,114,32,116, - 104,101,32,112,97,116,104,46,41,2,114,193,0,0,0,114, - 6,1,0,0,41,3,114,75,0,0,0,218,8,115,116,95, - 109,116,105,109,101,90,7,115,116,95,115,105,122,101,41,3, - 114,143,0,0,0,114,65,0,0,0,114,10,1,0,0,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,252, - 0,0,0,65,4,0,0,115,4,0,0,0,8,2,14,1, - 122,27,83,111,117,114,99,101,70,105,108,101,76,111,97,100, - 101,114,46,112,97,116,104,95,115,116,97,116,115,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,24,0,0,0,116,0,124,1,131, - 1,125,4,124,0,106,1,124,2,124,3,124,4,100,1,141, - 3,83,0,41,2,78,169,1,218,5,95,109,111,100,101,41, - 2,114,139,0,0,0,114,253,0,0,0,41,5,114,143,0, - 0,0,114,134,0,0,0,114,132,0,0,0,114,41,0,0, - 0,114,78,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,254,0,0,0,70,4,0,0,115,4, - 0,0,0,8,2,16,1,122,32,83,111,117,114,99,101,70, - 105,108,101,76,111,97,100,101,114,46,95,99,97,99,104,101, - 95,98,121,116,101,99,111,100,101,114,87,0,0,0,114,36, - 1,0,0,99,3,0,0,0,0,0,0,0,1,0,0,0, - 9,0,0,0,11,0,0,0,67,0,0,0,115,254,0,0, - 0,116,0,124,1,131,1,92,2,125,4,125,5,103,0,125, - 6,124,4,114,31,116,1,124,4,131,1,115,31,116,0,124, - 4,131,1,92,2,125,4,125,7,124,6,160,2,124,7,161, - 1,1,0,124,4,114,31,116,1,124,4,131,1,114,14,116, - 3,124,6,131,1,68,0,93,49,125,7,116,4,124,4,124, - 7,131,2,125,4,122,7,116,5,160,6,124,4,161,1,1, - 0,87,0,113,35,4,0,116,7,121,58,1,0,1,0,1, - 0,89,0,113,35,4,0,116,8,121,84,1,0,125,8,1, - 0,122,15,116,9,160,10,100,1,124,4,124,8,161,3,1, - 0,87,0,89,0,100,2,125,8,126,8,1,0,100,2,83, - 0,100,2,125,8,126,8,119,1,119,0,122,15,116,11,124, - 1,124,2,124,3,131,3,1,0,116,9,160,10,100,3,124, - 1,161,2,1,0,87,0,100,2,83,0,4,0,116,8,121, - 126,1,0,125,8,1,0,122,14,116,9,160,10,100,1,124, - 1,124,8,161,3,1,0,87,0,89,0,100,2,125,8,126, - 8,100,2,83,0,100,2,125,8,126,8,119,1,119,0,41, - 4,122,27,87,114,105,116,101,32,98,121,116,101,115,32,100, - 97,116,97,32,116,111,32,97,32,102,105,108,101,46,122,27, - 99,111,117,108,100,32,110,111,116,32,99,114,101,97,116,101, - 32,123,33,114,125,58,32,123,33,114,125,78,122,12,99,114, - 101,97,116,101,100,32,123,33,114,125,41,12,114,74,0,0, - 0,114,83,0,0,0,114,61,0,0,0,218,8,114,101,118, - 101,114,115,101,100,114,67,0,0,0,114,18,0,0,0,90, - 5,109,107,100,105,114,218,15,70,105,108,101,69,120,105,115, - 116,115,69,114,114,111,114,114,76,0,0,0,114,159,0,0, - 0,114,173,0,0,0,114,95,0,0,0,41,9,114,143,0, - 0,0,114,65,0,0,0,114,41,0,0,0,114,37,1,0, - 0,218,6,112,97,114,101,110,116,114,120,0,0,0,114,63, - 0,0,0,114,68,0,0,0,114,0,1,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,253,0,0, - 0,75,4,0,0,115,56,0,0,0,12,2,4,1,12,2, - 12,1,10,1,12,254,12,4,10,1,2,1,14,1,12,1, - 4,2,14,1,6,3,4,1,4,255,16,2,8,128,2,251, - 2,6,12,1,18,1,14,1,8,2,2,1,18,255,8,128, - 2,254,122,25,83,111,117,114,99,101,70,105,108,101,76,111, - 97,100,101,114,46,115,101,116,95,100,97,116,97,78,41,7, - 114,150,0,0,0,114,149,0,0,0,114,151,0,0,0,114, - 152,0,0,0,114,252,0,0,0,114,254,0,0,0,114,253, - 0,0,0,114,7,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,34,1,0,0,61,4,0,0, - 115,10,0,0,0,8,0,4,2,8,2,8,5,18,5,114, + 0,114,249,0,0,0,158,4,0,0,115,8,0,0,0,14, + 2,6,1,8,1,8,255,122,31,69,120,116,101,110,115,105, + 111,110,70,105,108,101,76,111,97,100,101,114,46,101,120,101, + 99,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,4,0,0,0,3,0,0, + 0,115,36,0,0,0,116,0,124,0,106,1,131,1,100,1, + 25,0,137,0,116,2,135,0,102,1,100,2,100,3,132,8, + 116,3,68,0,131,1,131,1,83,0,41,4,122,49,82,101, + 116,117,114,110,32,84,114,117,101,32,105,102,32,116,104,101, + 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, + 101,32,105,115,32,97,32,112,97,99,107,97,103,101,46,114, + 3,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,4,0,0,0,51,0,0,0,115,28,0, + 0,0,129,0,124,0,93,9,125,1,136,0,100,0,124,1, + 23,0,107,2,86,0,1,0,113,2,100,1,83,0,41,2, + 114,240,0,0,0,78,114,7,0,0,0,169,2,114,5,0, + 0,0,218,6,115,117,102,102,105,120,169,1,90,9,102,105, + 108,101,95,110,97,109,101,114,7,0,0,0,114,8,0,0, + 0,114,9,0,0,0,167,4,0,0,115,8,0,0,0,2, + 128,4,0,2,1,20,255,122,49,69,120,116,101,110,115,105, + 111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,95, + 112,97,99,107,97,103,101,46,60,108,111,99,97,108,115,62, + 46,60,103,101,110,101,120,112,114,62,41,4,114,77,0,0, + 0,114,68,0,0,0,218,3,97,110,121,114,236,0,0,0, + 114,251,0,0,0,114,7,0,0,0,114,50,1,0,0,114, + 8,0,0,0,114,210,0,0,0,164,4,0,0,115,8,0, + 0,0,14,2,12,1,2,1,8,255,122,30,69,120,116,101, + 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46, + 105,115,95,112,97,99,107,97,103,101,99,2,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67, + 0,0,0,114,26,0,0,0,41,2,122,63,82,101,116,117, + 114,110,32,78,111,110,101,32,97,115,32,97,110,32,101,120, + 116,101,110,115,105,111,110,32,109,111,100,117,108,101,32,99, + 97,110,110,111,116,32,99,114,101,97,116,101,32,97,32,99, + 111,100,101,32,111,98,106,101,99,116,46,78,114,7,0,0, + 0,114,251,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,245,0,0,0,170,4,0,0,114,27, + 0,0,0,122,28,69,120,116,101,110,115,105,111,110,70,105, + 108,101,76,111,97,100,101,114,46,103,101,116,95,99,111,100, + 101,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,1,0,0,0,67,0,0,0,114,26,0,0,0,41, + 2,122,53,82,101,116,117,114,110,32,78,111,110,101,32,97, + 115,32,101,120,116,101,110,115,105,111,110,32,109,111,100,117, + 108,101,115,32,104,97,118,101,32,110,111,32,115,111,117,114, + 99,101,32,99,111,100,101,46,78,114,7,0,0,0,114,251, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,5,1,0,0,174,4,0,0,114,27,0,0,0, + 122,30,69,120,116,101,110,115,105,111,110,70,105,108,101,76, + 111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,101, + 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,1,0,0,0,67,0,0,0,114,30,1,0,0,114,31, + 1,0,0,114,74,0,0,0,114,251,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,207,0,0, + 0,178,4,0,0,114,32,1,0,0,122,32,69,120,116,101, + 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46, + 103,101,116,95,102,105,108,101,110,97,109,101,78,41,14,114, + 154,0,0,0,114,153,0,0,0,114,155,0,0,0,114,156, + 0,0,0,114,240,0,0,0,114,20,1,0,0,114,26,1, + 0,0,114,243,0,0,0,114,249,0,0,0,114,210,0,0, + 0,114,245,0,0,0,114,5,1,0,0,114,164,0,0,0, + 114,207,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,34,1,0,0,131,4, + 0,0,115,24,0,0,0,8,0,4,2,8,6,8,4,8, + 4,8,3,8,8,8,6,8,6,8,4,2,4,14,1,114, 34,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,64,0,0,0,115,32,0, + 0,0,0,0,0,2,0,0,0,64,0,0,0,115,108,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,100,6, - 83,0,41,7,218,20,83,111,117,114,99,101,108,101,115,115, - 70,105,108,101,76,111,97,100,101,114,122,45,76,111,97,100, - 101,114,32,119,104,105,99,104,32,104,97,110,100,108,101,115, - 32,115,111,117,114,99,101,108,101,115,115,32,102,105,108,101, - 32,105,109,112,111,114,116,115,46,99,2,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,0, - 0,0,115,68,0,0,0,124,0,160,0,124,1,161,1,125, - 2,124,0,160,1,124,2,161,1,125,3,124,1,124,2,100, - 1,156,2,125,4,116,2,124,3,124,1,124,4,131,3,1, - 0,116,3,116,4,124,3,131,1,100,2,100,0,133,2,25, - 0,124,1,124,2,100,3,141,3,83,0,41,4,78,114,183, - 0,0,0,114,169,0,0,0,41,2,114,141,0,0,0,114, - 132,0,0,0,41,5,114,203,0,0,0,114,255,0,0,0, - 114,176,0,0,0,114,189,0,0,0,114,7,1,0,0,41, - 5,114,143,0,0,0,114,163,0,0,0,114,65,0,0,0, - 114,41,0,0,0,114,175,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,241,0,0,0,110,4, - 0,0,115,22,0,0,0,10,1,10,1,2,4,2,1,6, - 254,12,4,2,1,14,1,2,1,2,1,6,253,122,29,83, - 111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97, - 100,101,114,46,103,101,116,95,99,111,100,101,99,2,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0, - 0,67,0,0,0,114,23,0,0,0,41,2,122,39,82,101, - 116,117,114,110,32,78,111,110,101,32,97,115,32,116,104,101, - 114,101,32,105,115,32,110,111,32,115,111,117,114,99,101,32, - 99,111,100,101,46,78,114,7,0,0,0,114,247,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 1,1,0,0,126,4,0,0,114,24,0,0,0,122,31,83, - 111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97, - 100,101,114,46,103,101,116,95,115,111,117,114,99,101,78,41, - 6,114,150,0,0,0,114,149,0,0,0,114,151,0,0,0, - 114,152,0,0,0,114,241,0,0,0,114,1,1,0,0,114, - 7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,41,1,0,0,106,4,0,0,115,8,0,0, - 0,8,0,4,2,8,2,12,16,114,41,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,92,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,100,6,100,7,132,0,90,6, - 100,8,100,9,132,0,90,7,100,10,100,11,132,0,90,8, - 100,12,100,13,132,0,90,9,100,14,100,15,132,0,90,10, - 100,16,100,17,132,0,90,11,101,12,100,18,100,19,132,0, - 131,1,90,13,100,20,83,0,41,21,114,30,1,0,0,122, - 93,76,111,97,100,101,114,32,102,111,114,32,101,120,116,101, - 110,115,105,111,110,32,109,111,100,117,108,101,115,46,10,10, - 32,32,32,32,84,104,101,32,99,111,110,115,116,114,117,99, - 116,111,114,32,105,115,32,100,101,115,105,103,110,101,100,32, - 116,111,32,119,111,114,107,32,119,105,116,104,32,70,105,108, - 101,70,105,110,100,101,114,46,10,10,32,32,32,32,99,3, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2, - 0,0,0,67,0,0,0,115,16,0,0,0,124,1,124,0, - 95,0,124,2,124,0,95,1,100,0,83,0,114,69,0,0, - 0,114,183,0,0,0,41,3,114,143,0,0,0,114,141,0, - 0,0,114,65,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,236,0,0,0,139,4,0,0,115, - 4,0,0,0,6,1,10,1,122,28,69,120,116,101,110,115, - 105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,95, - 105,110,105,116,95,95,99,2,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,114, - 12,1,0,0,114,69,0,0,0,114,13,1,0,0,114,15, - 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,16,1,0,0,143,4,0,0,114,17,1,0,0, - 122,26,69,120,116,101,110,115,105,111,110,70,105,108,101,76, - 111,97,100,101,114,46,95,95,101,113,95,95,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,114,18,1,0,0,114,69,0,0,0,114, - 19,1,0,0,114,21,1,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,22,1,0,0,147,4,0, - 0,114,23,1,0,0,122,28,69,120,116,101,110,115,105,111, - 110,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97, - 115,104,95,95,99,2,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,5,0,0,0,67,0,0,0,115,36,0, - 0,0,116,0,160,1,116,2,106,3,124,1,161,2,125,2, - 116,0,160,4,100,1,124,1,106,5,124,0,106,6,161,3, - 1,0,124,2,83,0,41,2,122,38,67,114,101,97,116,101, - 32,97,110,32,117,110,105,116,105,97,108,105,122,101,100,32, - 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101, - 122,38,101,120,116,101,110,115,105,111,110,32,109,111,100,117, - 108,101,32,123,33,114,125,32,108,111,97,100,101,100,32,102, - 114,111,109,32,123,33,114,125,41,7,114,159,0,0,0,114, - 242,0,0,0,114,187,0,0,0,90,14,99,114,101,97,116, - 101,95,100,121,110,97,109,105,99,114,173,0,0,0,114,141, - 0,0,0,114,65,0,0,0,41,3,114,143,0,0,0,114, - 210,0,0,0,114,244,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,239,0,0,0,150,4,0, - 0,115,14,0,0,0,4,2,6,1,4,255,6,2,8,1, - 4,255,4,2,122,33,69,120,116,101,110,115,105,111,110,70, - 105,108,101,76,111,97,100,101,114,46,99,114,101,97,116,101, - 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,5,0,0,0,67,0,0,0, - 115,36,0,0,0,116,0,160,1,116,2,106,3,124,1,161, - 2,1,0,116,0,160,4,100,1,124,0,106,5,124,0,106, - 6,161,3,1,0,100,2,83,0,41,3,122,30,73,110,105, - 116,105,97,108,105,122,101,32,97,110,32,101,120,116,101,110, - 115,105,111,110,32,109,111,100,117,108,101,122,40,101,120,116, - 101,110,115,105,111,110,32,109,111,100,117,108,101,32,123,33, - 114,125,32,101,120,101,99,117,116,101,100,32,102,114,111,109, - 32,123,33,114,125,78,41,7,114,159,0,0,0,114,242,0, - 0,0,114,187,0,0,0,90,12,101,120,101,99,95,100,121, - 110,97,109,105,99,114,173,0,0,0,114,141,0,0,0,114, - 65,0,0,0,169,2,114,143,0,0,0,114,244,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 245,0,0,0,158,4,0,0,115,8,0,0,0,14,2,6, - 1,8,1,8,255,122,31,69,120,116,101,110,115,105,111,110, - 70,105,108,101,76,111,97,100,101,114,46,101,120,101,99,95, - 109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,115, - 36,0,0,0,116,0,124,0,106,1,131,1,100,1,25,0, - 137,0,116,2,135,0,102,1,100,2,100,3,132,8,116,3, - 68,0,131,1,131,1,83,0,41,4,122,49,82,101,116,117, - 114,110,32,84,114,117,101,32,105,102,32,116,104,101,32,101, - 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32, - 105,115,32,97,32,112,97,99,107,97,103,101,46,114,3,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,4,0,0,0,51,0,0,0,115,28,0,0,0, - 129,0,124,0,93,9,125,1,136,0,100,0,124,1,23,0, - 107,2,86,0,1,0,113,2,100,1,83,0,41,2,114,236, - 0,0,0,78,114,7,0,0,0,169,2,114,5,0,0,0, - 218,6,115,117,102,102,105,120,169,1,90,9,102,105,108,101, - 95,110,97,109,101,114,7,0,0,0,114,8,0,0,0,114, - 9,0,0,0,167,4,0,0,115,8,0,0,0,2,128,4, - 0,2,1,20,255,122,49,69,120,116,101,110,115,105,111,110, - 70,105,108,101,76,111,97,100,101,114,46,105,115,95,112,97, - 99,107,97,103,101,46,60,108,111,99,97,108,115,62,46,60, - 103,101,110,101,120,112,114,62,41,4,114,74,0,0,0,114, - 65,0,0,0,218,3,97,110,121,114,232,0,0,0,114,247, - 0,0,0,114,7,0,0,0,114,45,1,0,0,114,8,0, - 0,0,114,206,0,0,0,164,4,0,0,115,8,0,0,0, - 14,2,12,1,2,1,8,255,122,30,69,120,116,101,110,115, - 105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,115, - 95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, - 0,114,23,0,0,0,41,2,122,63,82,101,116,117,114,110, - 32,78,111,110,101,32,97,115,32,97,110,32,101,120,116,101, - 110,115,105,111,110,32,109,111,100,117,108,101,32,99,97,110, - 110,111,116,32,99,114,101,97,116,101,32,97,32,99,111,100, - 101,32,111,98,106,101,99,116,46,78,114,7,0,0,0,114, - 247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,241,0,0,0,170,4,0,0,114,24,0,0, - 0,122,28,69,120,116,101,110,115,105,111,110,70,105,108,101, - 76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,99, + 90,4,100,3,100,4,132,0,90,5,100,5,100,6,132,0, + 90,6,100,7,100,8,132,0,90,7,100,9,100,10,132,0, + 90,8,100,11,100,12,132,0,90,9,100,13,100,14,132,0, + 90,10,100,15,100,16,132,0,90,11,100,17,100,18,132,0, + 90,12,100,19,100,20,132,0,90,13,100,21,100,22,132,0, + 90,14,100,23,100,24,132,0,90,15,100,25,83,0,41,26, + 218,14,95,78,97,109,101,115,112,97,99,101,80,97,116,104, + 97,38,1,0,0,82,101,112,114,101,115,101,110,116,115,32, + 97,32,110,97,109,101,115,112,97,99,101,32,112,97,99,107, + 97,103,101,39,115,32,112,97,116,104,46,32,32,73,116,32, + 117,115,101,115,32,116,104,101,32,109,111,100,117,108,101,32, + 110,97,109,101,10,32,32,32,32,116,111,32,102,105,110,100, + 32,105,116,115,32,112,97,114,101,110,116,32,109,111,100,117, + 108,101,44,32,97,110,100,32,102,114,111,109,32,116,104,101, + 114,101,32,105,116,32,108,111,111,107,115,32,117,112,32,116, + 104,101,32,112,97,114,101,110,116,39,115,10,32,32,32,32, + 95,95,112,97,116,104,95,95,46,32,32,87,104,101,110,32, + 116,104,105,115,32,99,104,97,110,103,101,115,44,32,116,104, + 101,32,109,111,100,117,108,101,39,115,32,111,119,110,32,112, + 97,116,104,32,105,115,32,114,101,99,111,109,112,117,116,101, + 100,44,10,32,32,32,32,117,115,105,110,103,32,112,97,116, + 104,95,102,105,110,100,101,114,46,32,32,70,111,114,32,116, + 111,112,45,108,101,118,101,108,32,109,111,100,117,108,101,115, + 44,32,116,104,101,32,112,97,114,101,110,116,32,109,111,100, + 117,108,101,39,115,32,112,97,116,104,10,32,32,32,32,105, + 115,32,115,121,115,46,112,97,116,104,46,114,0,0,0,0, + 99,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,67,0,0,0,115,44,0,0,0,124,1, + 124,0,95,0,124,2,124,0,95,1,116,2,124,0,160,3, + 161,0,131,1,124,0,95,4,124,0,106,5,124,0,95,6, + 124,3,124,0,95,7,100,0,83,0,114,72,0,0,0,41, + 8,218,5,95,110,97,109,101,218,5,95,112,97,116,104,114, + 140,0,0,0,218,16,95,103,101,116,95,112,97,114,101,110, + 116,95,112,97,116,104,218,17,95,108,97,115,116,95,112,97, + 114,101,110,116,95,112,97,116,104,218,6,95,101,112,111,99, + 104,218,11,95,108,97,115,116,95,101,112,111,99,104,218,12, + 95,112,97,116,104,95,102,105,110,100,101,114,169,4,114,147, + 0,0,0,114,145,0,0,0,114,68,0,0,0,90,11,112, + 97,116,104,95,102,105,110,100,101,114,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,240,0,0,0,195,4, + 0,0,115,10,0,0,0,6,1,6,1,14,1,8,1,10, + 1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,116, + 104,46,95,95,105,110,105,116,95,95,99,1,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,67, + 0,0,0,115,38,0,0,0,124,0,106,0,160,1,100,1, + 161,1,92,3,125,1,125,2,125,3,124,2,100,2,107,2, + 114,15,100,3,83,0,124,1,100,4,102,2,83,0,41,5, + 122,62,82,101,116,117,114,110,115,32,97,32,116,117,112,108, + 101,32,111,102,32,40,112,97,114,101,110,116,45,109,111,100, + 117,108,101,45,110,97,109,101,44,32,112,97,114,101,110,116, + 45,112,97,116,104,45,97,116,116,114,45,110,97,109,101,41, + 114,100,0,0,0,114,10,0,0,0,41,2,114,18,0,0, + 0,114,68,0,0,0,90,8,95,95,112,97,116,104,95,95, + 41,2,114,53,1,0,0,114,107,0,0,0,41,4,114,147, + 0,0,0,114,45,1,0,0,218,3,100,111,116,90,2,109, + 101,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 218,23,95,102,105,110,100,95,112,97,114,101,110,116,95,112, + 97,116,104,95,110,97,109,101,115,202,4,0,0,115,8,0, + 0,0,18,2,8,1,4,2,8,3,122,38,95,78,97,109, + 101,115,112,97,99,101,80,97,116,104,46,95,102,105,110,100, + 95,112,97,114,101,110,116,95,112,97,116,104,95,110,97,109, + 101,115,99,1,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,67,0,0,0,115,28,0,0,0, + 124,0,160,0,161,0,92,2,125,1,125,2,116,1,116,2, + 106,3,124,1,25,0,124,2,131,2,83,0,114,72,0,0, + 0,41,4,114,62,1,0,0,114,159,0,0,0,114,18,0, + 0,0,218,7,109,111,100,117,108,101,115,41,3,114,147,0, + 0,0,90,18,112,97,114,101,110,116,95,109,111,100,117,108, + 101,95,110,97,109,101,90,14,112,97,116,104,95,97,116,116, + 114,95,110,97,109,101,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,55,1,0,0,212,4,0,0,115,4, + 0,0,0,12,1,16,1,122,31,95,78,97,109,101,115,112, + 97,99,101,80,97,116,104,46,95,103,101,116,95,112,97,114, + 101,110,116,95,112,97,116,104,99,1,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,0, + 0,115,100,0,0,0,116,0,124,0,160,1,161,0,131,1, + 125,1,124,1,124,0,106,2,107,3,115,17,124,0,106,3, + 124,0,106,4,107,3,114,47,124,0,160,5,124,0,106,6, + 124,1,161,2,125,2,124,2,100,0,117,1,114,40,124,2, + 106,7,100,0,117,0,114,40,124,2,106,8,114,40,124,2, + 106,8,124,0,95,9,124,1,124,0,95,2,124,0,106,3, + 124,0,95,4,124,0,106,9,83,0,114,72,0,0,0,41, + 10,114,140,0,0,0,114,55,1,0,0,114,56,1,0,0, + 114,57,1,0,0,114,58,1,0,0,114,59,1,0,0,114, + 53,1,0,0,114,168,0,0,0,114,206,0,0,0,114,54, + 1,0,0,41,3,114,147,0,0,0,218,11,112,97,114,101, + 110,116,95,112,97,116,104,114,214,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,218,12,95,114,101, + 99,97,108,99,117,108,97,116,101,216,4,0,0,115,18,0, + 0,0,12,2,22,1,14,1,18,3,6,1,8,1,6,1, + 8,1,6,1,122,27,95,78,97,109,101,115,112,97,99,101, + 80,97,116,104,46,95,114,101,99,97,108,99,117,108,97,116, + 101,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,243,12,0,0,0,116, + 0,124,0,160,1,161,0,131,1,83,0,114,72,0,0,0, + 41,2,218,4,105,116,101,114,114,65,1,0,0,114,25,1, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,218,8,95,95,105,116,101,114,95,95,230,4,0,0,243, + 2,0,0,0,12,1,122,23,95,78,97,109,101,115,112,97, + 99,101,80,97,116,104,46,95,95,105,116,101,114,95,95,99, 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 1,0,0,0,67,0,0,0,114,23,0,0,0,41,2,122, - 53,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32, - 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101, - 115,32,104,97,118,101,32,110,111,32,115,111,117,114,99,101, - 32,99,111,100,101,46,78,114,7,0,0,0,114,247,0,0, + 2,0,0,0,67,0,0,0,115,12,0,0,0,124,0,160, + 0,161,0,124,1,25,0,83,0,114,72,0,0,0,169,1, + 114,65,1,0,0,41,2,114,147,0,0,0,218,5,105,110, + 100,101,120,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,218,11,95,95,103,101,116,105,116,101,109,95,95,233, + 4,0,0,114,69,1,0,0,122,26,95,78,97,109,101,115, + 112,97,99,101,80,97,116,104,46,95,95,103,101,116,105,116, + 101,109,95,95,99,3,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,67,0,0,0,115,14,0, + 0,0,124,2,124,0,106,0,124,1,60,0,100,0,83,0, + 114,72,0,0,0,41,1,114,54,1,0,0,41,3,114,147, + 0,0,0,114,71,1,0,0,114,68,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,218,11,95,95, + 115,101,116,105,116,101,109,95,95,236,4,0,0,115,2,0, + 0,0,14,1,122,26,95,78,97,109,101,115,112,97,99,101, + 80,97,116,104,46,95,95,115,101,116,105,116,101,109,95,95, + 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,114,66,1,0,0,114,72, + 0,0,0,41,2,114,4,0,0,0,114,65,1,0,0,114, + 25,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,218,7,95,95,108,101,110,95,95,239,4,0,0, + 114,69,1,0,0,122,22,95,78,97,109,101,115,112,97,99, + 101,80,97,116,104,46,95,95,108,101,110,95,95,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,243,12,0,0,0,100,1,160,0,124, + 0,106,1,161,1,83,0,41,2,78,122,20,95,78,97,109, + 101,115,112,97,99,101,80,97,116,104,40,123,33,114,125,41, + 41,2,114,92,0,0,0,114,54,1,0,0,114,25,1,0, 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,1,1,0,0,174,4,0,0,114,24,0,0,0,122,30, - 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, - 100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1, - 0,0,0,67,0,0,0,114,26,1,0,0,114,27,1,0, - 0,114,71,0,0,0,114,247,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,203,0,0,0,178, - 4,0,0,114,28,1,0,0,122,32,69,120,116,101,110,115, - 105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,101, - 116,95,102,105,108,101,110,97,109,101,78,41,14,114,150,0, - 0,0,114,149,0,0,0,114,151,0,0,0,114,152,0,0, - 0,114,236,0,0,0,114,16,1,0,0,114,22,1,0,0, - 114,239,0,0,0,114,245,0,0,0,114,206,0,0,0,114, - 241,0,0,0,114,1,1,0,0,114,160,0,0,0,114,203, - 0,0,0,114,7,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,30,1,0,0,131,4,0,0, - 115,24,0,0,0,8,0,4,2,8,6,8,4,8,4,8, - 3,8,8,8,6,8,6,8,4,2,4,14,1,114,30,1, - 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,64,0,0,0,115,108,0,0,0, - 101,0,90,1,100,0,90,2,100,1,90,3,100,2,90,4, - 100,3,100,4,132,0,90,5,100,5,100,6,132,0,90,6, - 100,7,100,8,132,0,90,7,100,9,100,10,132,0,90,8, - 100,11,100,12,132,0,90,9,100,13,100,14,132,0,90,10, - 100,15,100,16,132,0,90,11,100,17,100,18,132,0,90,12, - 100,19,100,20,132,0,90,13,100,21,100,22,132,0,90,14, - 100,23,100,24,132,0,90,15,100,25,83,0,41,26,218,14, - 95,78,97,109,101,115,112,97,99,101,80,97,116,104,97,38, - 1,0,0,82,101,112,114,101,115,101,110,116,115,32,97,32, - 110,97,109,101,115,112,97,99,101,32,112,97,99,107,97,103, - 101,39,115,32,112,97,116,104,46,32,32,73,116,32,117,115, - 101,115,32,116,104,101,32,109,111,100,117,108,101,32,110,97, - 109,101,10,32,32,32,32,116,111,32,102,105,110,100,32,105, - 116,115,32,112,97,114,101,110,116,32,109,111,100,117,108,101, - 44,32,97,110,100,32,102,114,111,109,32,116,104,101,114,101, - 32,105,116,32,108,111,111,107,115,32,117,112,32,116,104,101, - 32,112,97,114,101,110,116,39,115,10,32,32,32,32,95,95, - 112,97,116,104,95,95,46,32,32,87,104,101,110,32,116,104, - 105,115,32,99,104,97,110,103,101,115,44,32,116,104,101,32, - 109,111,100,117,108,101,39,115,32,111,119,110,32,112,97,116, - 104,32,105,115,32,114,101,99,111,109,112,117,116,101,100,44, - 10,32,32,32,32,117,115,105,110,103,32,112,97,116,104,95, - 102,105,110,100,101,114,46,32,32,70,111,114,32,116,111,112, - 45,108,101,118,101,108,32,109,111,100,117,108,101,115,44,32, - 116,104,101,32,112,97,114,101,110,116,32,109,111,100,117,108, - 101,39,115,32,112,97,116,104,10,32,32,32,32,105,115,32, - 115,121,115,46,112,97,116,104,46,114,0,0,0,0,99,4, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,67,0,0,0,115,44,0,0,0,124,1,124,0, - 95,0,124,2,124,0,95,1,116,2,124,0,160,3,161,0, - 131,1,124,0,95,4,124,0,106,5,124,0,95,6,124,3, - 124,0,95,7,100,0,83,0,114,69,0,0,0,41,8,218, - 5,95,110,97,109,101,218,5,95,112,97,116,104,114,136,0, - 0,0,218,16,95,103,101,116,95,112,97,114,101,110,116,95, - 112,97,116,104,218,17,95,108,97,115,116,95,112,97,114,101, - 110,116,95,112,97,116,104,218,6,95,101,112,111,99,104,218, - 11,95,108,97,115,116,95,101,112,111,99,104,218,12,95,112, - 97,116,104,95,102,105,110,100,101,114,169,4,114,143,0,0, - 0,114,141,0,0,0,114,65,0,0,0,90,11,112,97,116, - 104,95,102,105,110,100,101,114,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,236,0,0,0,195,4,0,0, - 115,10,0,0,0,6,1,6,1,14,1,8,1,10,1,122, - 23,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, - 95,95,105,110,105,116,95,95,99,1,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,67,0,0, - 0,115,38,0,0,0,124,0,106,0,160,1,100,1,161,1, - 92,3,125,1,125,2,125,3,124,2,100,2,107,2,114,15, - 100,3,83,0,124,1,100,4,102,2,83,0,41,5,122,62, - 82,101,116,117,114,110,115,32,97,32,116,117,112,108,101,32, - 111,102,32,40,112,97,114,101,110,116,45,109,111,100,117,108, - 101,45,110,97,109,101,44,32,112,97,114,101,110,116,45,112, - 97,116,104,45,97,116,116,114,45,110,97,109,101,41,114,97, - 0,0,0,114,10,0,0,0,41,2,114,15,0,0,0,114, - 65,0,0,0,90,8,95,95,112,97,116,104,95,95,41,2, - 114,48,1,0,0,114,104,0,0,0,41,4,114,143,0,0, - 0,114,40,1,0,0,218,3,100,111,116,90,2,109,101,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,23, - 95,102,105,110,100,95,112,97,114,101,110,116,95,112,97,116, - 104,95,110,97,109,101,115,202,4,0,0,115,8,0,0,0, - 18,2,8,1,4,2,8,3,122,38,95,78,97,109,101,115, - 112,97,99,101,80,97,116,104,46,95,102,105,110,100,95,112, - 97,114,101,110,116,95,112,97,116,104,95,110,97,109,101,115, - 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,67,0,0,0,115,28,0,0,0,124,0, - 160,0,161,0,92,2,125,1,125,2,116,1,116,2,106,3, - 124,1,25,0,124,2,131,2,83,0,114,69,0,0,0,41, - 4,114,57,1,0,0,114,155,0,0,0,114,15,0,0,0, - 218,7,109,111,100,117,108,101,115,41,3,114,143,0,0,0, - 90,18,112,97,114,101,110,116,95,109,111,100,117,108,101,95, - 110,97,109,101,90,14,112,97,116,104,95,97,116,116,114,95, - 110,97,109,101,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,50,1,0,0,212,4,0,0,115,4,0,0, - 0,12,1,16,1,122,31,95,78,97,109,101,115,112,97,99, - 101,80,97,116,104,46,95,103,101,116,95,112,97,114,101,110, - 116,95,112,97,116,104,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,4,0,0,0,67,0,0,0,115, - 100,0,0,0,116,0,124,0,160,1,161,0,131,1,125,1, - 124,1,124,0,106,2,107,3,115,17,124,0,106,3,124,0, - 106,4,107,3,114,47,124,0,160,5,124,0,106,6,124,1, - 161,2,125,2,124,2,100,0,117,1,114,40,124,2,106,7, - 100,0,117,0,114,40,124,2,106,8,114,40,124,2,106,8, - 124,0,95,9,124,1,124,0,95,2,124,0,106,3,124,0, - 95,4,124,0,106,9,83,0,114,69,0,0,0,41,10,114, - 136,0,0,0,114,50,1,0,0,114,51,1,0,0,114,52, - 1,0,0,114,53,1,0,0,114,54,1,0,0,114,48,1, - 0,0,114,164,0,0,0,114,202,0,0,0,114,49,1,0, - 0,41,3,114,143,0,0,0,90,11,112,97,114,101,110,116, - 95,112,97,116,104,114,210,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,218,12,95,114,101,99,97, - 108,99,117,108,97,116,101,216,4,0,0,115,18,0,0,0, - 12,2,22,1,14,1,18,3,6,1,8,1,6,1,8,1, - 6,1,122,27,95,78,97,109,101,115,112,97,99,101,80,97, - 116,104,46,95,114,101,99,97,108,99,117,108,97,116,101,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,243,12,0,0,0,116,0,124, - 0,160,1,161,0,131,1,83,0,114,69,0,0,0,41,2, - 218,4,105,116,101,114,114,59,1,0,0,114,21,1,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, - 8,95,95,105,116,101,114,95,95,230,4,0,0,243,2,0, - 0,0,12,1,122,23,95,78,97,109,101,115,112,97,99,101, - 80,97,116,104,46,95,95,105,116,101,114,95,95,99,2,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0, - 0,0,67,0,0,0,115,12,0,0,0,124,0,160,0,161, - 0,124,1,25,0,83,0,114,69,0,0,0,169,1,114,59, - 1,0,0,41,2,114,143,0,0,0,218,5,105,110,100,101, - 120,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 218,11,95,95,103,101,116,105,116,101,109,95,95,233,4,0, - 0,114,63,1,0,0,122,26,95,78,97,109,101,115,112,97, - 99,101,80,97,116,104,46,95,95,103,101,116,105,116,101,109, - 95,95,99,3,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,67,0,0,0,115,14,0,0,0, - 124,2,124,0,106,0,124,1,60,0,100,0,83,0,114,69, - 0,0,0,41,1,114,49,1,0,0,41,3,114,143,0,0, - 0,114,65,1,0,0,114,65,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,218,11,95,95,115,101, - 116,105,116,101,109,95,95,236,4,0,0,115,2,0,0,0, - 14,1,122,26,95,78,97,109,101,115,112,97,99,101,80,97, - 116,104,46,95,95,115,101,116,105,116,101,109,95,95,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,114,60,1,0,0,114,69,0,0, - 0,41,2,114,4,0,0,0,114,59,1,0,0,114,21,1, - 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,218,7,95,95,108,101,110,95,95,239,4,0,0,114,63, - 1,0,0,122,22,95,78,97,109,101,115,112,97,99,101,80, - 97,116,104,46,95,95,108,101,110,95,95,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,243,12,0,0,0,100,1,160,0,124,0,106, - 1,161,1,83,0,41,2,78,122,20,95,78,97,109,101,115, - 112,97,99,101,80,97,116,104,40,123,33,114,125,41,41,2, - 114,89,0,0,0,114,49,1,0,0,114,21,1,0,0,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,8, - 95,95,114,101,112,114,95,95,242,4,0,0,114,63,1,0, - 0,122,23,95,78,97,109,101,115,112,97,99,101,80,97,116, - 104,46,95,95,114,101,112,114,95,95,99,2,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,67, - 0,0,0,115,12,0,0,0,124,1,124,0,160,0,161,0, - 118,0,83,0,114,69,0,0,0,114,64,1,0,0,169,2, - 114,143,0,0,0,218,4,105,116,101,109,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,218,12,95,95,99,111, - 110,116,97,105,110,115,95,95,245,4,0,0,114,63,1,0, - 0,122,27,95,78,97,109,101,115,112,97,99,101,80,97,116, - 104,46,95,95,99,111,110,116,97,105,110,115,95,95,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,67,0,0,0,115,16,0,0,0,124,0,106,0, - 160,1,124,1,161,1,1,0,100,0,83,0,114,69,0,0, - 0,41,2,114,49,1,0,0,114,61,0,0,0,114,71,1, + 218,8,95,95,114,101,112,114,95,95,242,4,0,0,114,69, + 1,0,0,122,23,95,78,97,109,101,115,112,97,99,101,80, + 97,116,104,46,95,95,114,101,112,114,95,95,99,2,0,0, + 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0, + 0,67,0,0,0,115,12,0,0,0,124,1,124,0,160,0, + 161,0,118,0,83,0,114,72,0,0,0,114,70,1,0,0, + 169,2,114,147,0,0,0,218,4,105,116,101,109,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,218,12,95,95, + 99,111,110,116,97,105,110,115,95,95,245,4,0,0,114,69, + 1,0,0,122,27,95,78,97,109,101,115,112,97,99,101,80, + 97,116,104,46,95,95,99,111,110,116,97,105,110,115,95,95, + 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,3,0,0,0,67,0,0,0,115,16,0,0,0,124,0, + 106,0,160,1,124,1,161,1,1,0,100,0,83,0,114,72, + 0,0,0,41,2,114,54,1,0,0,114,64,0,0,0,114, + 77,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,64,0,0,0,248,4,0,0,243,2,0,0, + 0,16,1,122,21,95,78,97,109,101,115,112,97,99,101,80, + 97,116,104,46,97,112,112,101,110,100,78,41,16,114,154,0, + 0,0,114,153,0,0,0,114,155,0,0,0,114,156,0,0, + 0,114,57,1,0,0,114,240,0,0,0,114,62,1,0,0, + 114,55,1,0,0,114,65,1,0,0,114,68,1,0,0,114, + 72,1,0,0,114,73,1,0,0,114,74,1,0,0,114,76, + 1,0,0,114,79,1,0,0,114,64,0,0,0,114,7,0, 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,61,0,0,0,248,4,0,0,243,2,0,0,0,16, - 1,122,21,95,78,97,109,101,115,112,97,99,101,80,97,116, - 104,46,97,112,112,101,110,100,78,41,16,114,150,0,0,0, - 114,149,0,0,0,114,151,0,0,0,114,152,0,0,0,114, - 52,1,0,0,114,236,0,0,0,114,57,1,0,0,114,50, - 1,0,0,114,59,1,0,0,114,62,1,0,0,114,66,1, - 0,0,114,67,1,0,0,114,68,1,0,0,114,70,1,0, - 0,114,73,1,0,0,114,61,0,0,0,114,7,0,0,0, + 0,114,52,1,0,0,184,4,0,0,115,28,0,0,0,8, + 0,4,1,4,8,8,2,8,7,8,10,8,4,8,14,8, + 3,8,3,8,3,8,3,8,3,12,3,114,52,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,88,0,0,0,101,0, + 90,1,100,0,90,2,100,1,100,2,132,0,90,3,101,4, + 100,3,100,4,132,0,131,1,90,5,100,5,100,6,132,0, + 90,6,100,7,100,8,132,0,90,7,100,9,100,10,132,0, + 90,8,100,11,100,12,132,0,90,9,100,13,100,14,132,0, + 90,10,100,15,100,16,132,0,90,11,100,17,100,18,132,0, + 90,12,100,19,83,0,41,20,218,16,95,78,97,109,101,115, + 112,97,99,101,76,111,97,100,101,114,99,4,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67, + 0,0,0,115,18,0,0,0,116,0,124,1,124,2,124,3, + 131,3,124,0,95,1,100,0,83,0,114,72,0,0,0,41, + 2,114,52,1,0,0,114,54,1,0,0,114,60,1,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 47,1,0,0,184,4,0,0,115,28,0,0,0,8,0,4, - 1,4,8,8,2,8,7,8,10,8,4,8,14,8,3,8, - 3,8,3,8,3,8,3,12,3,114,47,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,88,0,0,0,101,0,90,1, - 100,0,90,2,100,1,100,2,132,0,90,3,101,4,100,3, - 100,4,132,0,131,1,90,5,100,5,100,6,132,0,90,6, - 100,7,100,8,132,0,90,7,100,9,100,10,132,0,90,8, - 100,11,100,12,132,0,90,9,100,13,100,14,132,0,90,10, - 100,15,100,16,132,0,90,11,100,17,100,18,132,0,90,12, - 100,19,83,0,41,20,218,16,95,78,97,109,101,115,112,97, - 99,101,76,111,97,100,101,114,99,4,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,0, - 0,115,18,0,0,0,116,0,124,1,124,2,124,3,131,3, - 124,0,95,1,100,0,83,0,114,69,0,0,0,41,2,114, - 47,1,0,0,114,49,1,0,0,114,55,1,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,236,0, - 0,0,254,4,0,0,115,2,0,0,0,18,1,122,25,95, - 78,97,109,101,115,112,97,99,101,76,111,97,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,4,0,0,0,67,0,0, - 0,115,24,0,0,0,116,0,160,1,100,1,116,2,161,2, - 1,0,100,2,160,3,124,0,106,4,161,1,83,0,41,3, - 122,115,82,101,116,117,114,110,32,114,101,112,114,32,102,111, - 114,32,116,104,101,32,109,111,100,117,108,101,46,10,10,32, - 32,32,32,32,32,32,32,84,104,101,32,109,101,116,104,111, - 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46, - 32,32,84,104,101,32,105,109,112,111,114,116,32,109,97,99, - 104,105,110,101,114,121,32,100,111,101,115,32,116,104,101,32, - 106,111,98,32,105,116,115,101,108,102,46,10,10,32,32,32, - 32,32,32,32,32,122,82,95,78,97,109,101,115,112,97,99, + 240,0,0,0,254,4,0,0,115,2,0,0,0,18,1,122, + 25,95,78,97,109,101,115,112,97,99,101,76,111,97,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,4,0,0,0,67, + 0,0,0,115,24,0,0,0,116,0,160,1,100,1,116,2, + 161,2,1,0,100,2,160,3,124,0,106,4,161,1,83,0, + 41,3,122,115,82,101,116,117,114,110,32,114,101,112,114,32, + 102,111,114,32,116,104,101,32,109,111,100,117,108,101,46,10, + 10,32,32,32,32,32,32,32,32,84,104,101,32,109,101,116, + 104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101, + 100,46,32,32,84,104,101,32,105,109,112,111,114,116,32,109, + 97,99,104,105,110,101,114,121,32,100,111,101,115,32,116,104, + 101,32,106,111,98,32,105,116,115,101,108,102,46,10,10,32, + 32,32,32,32,32,32,32,122,82,95,78,97,109,101,115,112, + 97,99,101,76,111,97,100,101,114,46,109,111,100,117,108,101, + 95,114,101,112,114,40,41,32,105,115,32,100,101,112,114,101, + 99,97,116,101,100,32,97,110,100,32,115,108,97,116,101,100, + 32,102,111,114,32,114,101,109,111,118,97,108,32,105,110,32, + 80,121,116,104,111,110,32,51,46,49,50,122,25,60,109,111, + 100,117,108,101,32,123,33,114,125,32,40,110,97,109,101,115, + 112,97,99,101,41,62,41,5,114,102,0,0,0,114,103,0, + 0,0,114,104,0,0,0,114,92,0,0,0,114,154,0,0, + 0,41,1,114,248,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,218,11,109,111,100,117,108,101,95, + 114,101,112,114,1,5,0,0,115,8,0,0,0,6,7,2, + 1,4,255,12,2,122,28,95,78,97,109,101,115,112,97,99, 101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,114, - 101,112,114,40,41,32,105,115,32,100,101,112,114,101,99,97, - 116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,102, - 111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,121, - 116,104,111,110,32,51,46,49,50,122,25,60,109,111,100,117, - 108,101,32,123,33,114,125,32,40,110,97,109,101,115,112,97, - 99,101,41,62,41,5,114,99,0,0,0,114,100,0,0,0, - 114,101,0,0,0,114,89,0,0,0,114,150,0,0,0,41, - 1,114,244,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,218,11,109,111,100,117,108,101,95,114,101, - 112,114,1,5,0,0,115,8,0,0,0,6,7,2,1,4, - 255,12,2,122,28,95,78,97,109,101,115,112,97,99,101,76, - 111,97,100,101,114,46,109,111,100,117,108,101,95,114,101,112, - 114,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,1,0,0,0,67,0,0,0,114,23,0,0,0,41, - 2,78,84,114,7,0,0,0,114,247,0,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,206,0,0, - 0,12,5,0,0,243,2,0,0,0,4,1,122,27,95,78, - 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,105, - 115,95,112,97,99,107,97,103,101,99,2,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0, - 0,0,114,23,0,0,0,41,2,78,114,10,0,0,0,114, - 7,0,0,0,114,247,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,1,1,0,0,15,5,0, - 0,114,77,1,0,0,122,27,95,78,97,109,101,115,112,97, - 99,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117, - 114,99,101,99,2,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,6,0,0,0,67,0,0,0,115,16,0,0, - 0,116,0,100,1,100,2,100,3,100,4,100,5,141,4,83, - 0,41,6,78,114,10,0,0,0,122,8,60,115,116,114,105, - 110,103,62,114,243,0,0,0,84,41,1,114,3,1,0,0, - 41,1,114,4,1,0,0,114,247,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,241,0,0,0, - 18,5,0,0,114,74,1,0,0,122,25,95,78,97,109,101, - 115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95, - 99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,1,0,0,0,67,0,0,0,114,23,0, - 0,0,114,237,0,0,0,114,7,0,0,0,114,238,0,0, + 101,112,114,99,2,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,1,0,0,0,67,0,0,0,114,26,0,0, + 0,41,2,78,84,114,7,0,0,0,114,251,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,210, + 0,0,0,12,5,0,0,243,2,0,0,0,4,1,122,27, + 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114, + 46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0, + 67,0,0,0,114,26,0,0,0,41,2,78,114,10,0,0, + 0,114,7,0,0,0,114,251,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,5,1,0,0,15, + 5,0,0,114,83,1,0,0,122,27,95,78,97,109,101,115, + 112,97,99,101,76,111,97,100,101,114,46,103,101,116,95,115, + 111,117,114,99,101,99,2,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,6,0,0,0,67,0,0,0,115,16, + 0,0,0,116,0,100,1,100,2,100,3,100,4,100,5,141, + 4,83,0,41,6,78,114,10,0,0,0,122,8,60,115,116, + 114,105,110,103,62,114,247,0,0,0,84,41,1,114,7,1, + 0,0,41,1,114,8,1,0,0,114,251,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,245,0, + 0,0,18,5,0,0,114,80,1,0,0,122,25,95,78,97, + 109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,101, + 116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,114, + 26,0,0,0,114,241,0,0,0,114,7,0,0,0,114,242, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,243,0,0,0,21,5,0,0,114,244,0,0,0, + 122,30,95,78,97,109,101,115,112,97,99,101,76,111,97,100, + 101,114,46,99,114,101,97,116,101,95,109,111,100,117,108,101, + 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,0, + 83,0,114,72,0,0,0,114,7,0,0,0,114,47,1,0, 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,239,0,0,0,21,5,0,0,114,240,0,0,0,122,30, + 114,249,0,0,0,24,5,0,0,114,83,1,0,0,122,28, 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114, - 46,99,114,101,97,116,101,95,109,111,100,117,108,101,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1, - 0,0,0,67,0,0,0,115,4,0,0,0,100,0,83,0, - 114,69,0,0,0,114,7,0,0,0,114,42,1,0,0,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,245, - 0,0,0,24,5,0,0,114,77,1,0,0,122,28,95,78, - 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,101, - 120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67, - 0,0,0,115,26,0,0,0,116,0,160,1,100,1,124,0, - 106,2,161,2,1,0,116,0,160,3,124,0,124,1,161,2, - 83,0,41,2,122,98,76,111,97,100,32,97,32,110,97,109, - 101,115,112,97,99,101,32,109,111,100,117,108,101,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,101,120,101,99,95,109,111,100, - 117,108,101,40,41,32,105,110,115,116,101,97,100,46,10,10, - 32,32,32,32,32,32,32,32,122,38,110,97,109,101,115,112, - 97,99,101,32,109,111,100,117,108,101,32,108,111,97,100,101, - 100,32,119,105,116,104,32,112,97,116,104,32,123,33,114,125, - 41,4,114,159,0,0,0,114,173,0,0,0,114,49,1,0, - 0,114,246,0,0,0,114,247,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,248,0,0,0,27, - 5,0,0,115,8,0,0,0,6,7,4,1,4,255,12,3, - 122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,100, - 101,114,46,108,111,97,100,95,109,111,100,117,108,101,99,2, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2, - 0,0,0,67,0,0,0,115,22,0,0,0,100,1,100,2, - 108,0,109,1,125,2,1,0,124,2,124,0,106,2,131,1, - 83,0,41,3,78,114,0,0,0,0,41,1,218,15,78,97, - 109,101,115,112,97,99,101,82,101,97,100,101,114,41,3,114, - 32,1,0,0,114,78,1,0,0,114,49,1,0,0,41,3, - 114,143,0,0,0,114,244,0,0,0,114,78,1,0,0,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,33, - 1,0,0,39,5,0,0,115,4,0,0,0,12,1,10,1, - 122,36,95,78,97,109,101,115,112,97,99,101,76,111,97,100, - 101,114,46,103,101,116,95,114,101,115,111,117,114,99,101,95, - 114,101,97,100,101,114,78,41,13,114,150,0,0,0,114,149, - 0,0,0,114,151,0,0,0,114,236,0,0,0,114,233,0, - 0,0,114,76,1,0,0,114,206,0,0,0,114,1,1,0, - 0,114,241,0,0,0,114,239,0,0,0,114,245,0,0,0, - 114,248,0,0,0,114,33,1,0,0,114,7,0,0,0,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,75, - 1,0,0,253,4,0,0,115,22,0,0,0,8,0,8,1, - 2,3,10,1,8,10,8,3,8,3,8,3,8,3,8,3, - 12,12,114,75,1,0,0,99,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,64,0,0,0, - 115,118,0,0,0,101,0,90,1,100,0,90,2,100,1,90, - 3,101,4,100,2,100,3,132,0,131,1,90,5,101,4,100, - 4,100,5,132,0,131,1,90,6,101,7,100,6,100,7,132, - 0,131,1,90,8,101,7,100,8,100,9,132,0,131,1,90, - 9,101,7,100,19,100,11,100,12,132,1,131,1,90,10,101, - 7,100,20,100,13,100,14,132,1,131,1,90,11,101,7,100, - 19,100,15,100,16,132,1,131,1,90,12,101,4,100,17,100, - 18,132,0,131,1,90,13,100,10,83,0,41,21,218,10,80, - 97,116,104,70,105,110,100,101,114,122,62,77,101,116,97,32, - 112,97,116,104,32,102,105,110,100,101,114,32,102,111,114,32, - 115,121,115,46,112,97,116,104,32,97,110,100,32,112,97,99, - 107,97,103,101,32,95,95,112,97,116,104,95,95,32,97,116, - 116,114,105,98,117,116,101,115,46,99,0,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,0, - 0,0,115,78,0,0,0,116,0,116,1,106,2,160,3,161, - 0,131,1,68,0,93,22,92,2,125,0,125,1,124,1,100, - 1,117,0,114,20,116,1,106,2,124,0,61,0,113,7,116, - 4,124,1,100,2,131,2,114,29,124,1,160,5,161,0,1, - 0,113,7,116,6,4,0,106,7,100,3,55,0,2,0,95, - 7,100,1,83,0,41,4,122,125,67,97,108,108,32,116,104, - 101,32,105,110,118,97,108,105,100,97,116,101,95,99,97,99, - 104,101,115,40,41,32,109,101,116,104,111,100,32,111,110,32, - 97,108,108,32,112,97,116,104,32,101,110,116,114,121,32,102, - 105,110,100,101,114,115,10,32,32,32,32,32,32,32,32,115, - 116,111,114,101,100,32,105,110,32,115,121,115,46,112,97,116, - 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101, - 115,32,40,119,104,101,114,101,32,105,109,112,108,101,109,101, - 110,116,101,100,41,46,78,218,17,105,110,118,97,108,105,100, - 97,116,101,95,99,97,99,104,101,115,114,3,0,0,0,41, - 8,218,4,108,105,115,116,114,15,0,0,0,218,19,112,97, - 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104, - 101,218,5,105,116,101,109,115,114,153,0,0,0,114,80,1, - 0,0,114,47,1,0,0,114,52,1,0,0,41,2,114,141, - 0,0,0,218,6,102,105,110,100,101,114,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,80,1,0,0,50, - 5,0,0,115,14,0,0,0,22,4,8,1,10,1,10,1, - 8,1,2,128,18,3,122,28,80,97,116,104,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,1,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,9,0,0,0,67,0,0,0,115,76,0, - 0,0,116,0,106,1,100,1,117,1,114,14,116,0,106,1, - 115,14,116,2,160,3,100,2,116,4,161,2,1,0,116,0, - 106,1,68,0,93,18,125,1,122,7,124,1,124,0,131,1, - 87,0,2,0,1,0,83,0,4,0,116,5,121,35,1,0, - 1,0,1,0,89,0,113,17,119,0,100,1,83,0,41,3, - 122,46,83,101,97,114,99,104,32,115,121,115,46,112,97,116, - 104,95,104,111,111,107,115,32,102,111,114,32,97,32,102,105, - 110,100,101,114,32,102,111,114,32,39,112,97,116,104,39,46, - 78,122,23,115,121,115,46,112,97,116,104,95,104,111,111,107, - 115,32,105,115,32,101,109,112,116,121,41,6,114,15,0,0, - 0,218,10,112,97,116,104,95,104,111,111,107,115,114,99,0, - 0,0,114,100,0,0,0,114,162,0,0,0,114,142,0,0, - 0,41,2,114,65,0,0,0,90,4,104,111,111,107,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,218,11,95, - 112,97,116,104,95,104,111,111,107,115,63,5,0,0,115,18, - 0,0,0,16,3,12,1,10,1,2,1,14,1,12,1,4, - 1,2,255,4,3,122,22,80,97,116,104,70,105,110,100,101, - 114,46,95,112,97,116,104,95,104,111,111,107,115,99,2,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,8,0, - 0,0,67,0,0,0,115,100,0,0,0,124,1,100,1,107, - 2,114,21,122,6,116,0,160,1,161,0,125,1,87,0,110, - 10,4,0,116,2,121,20,1,0,1,0,1,0,89,0,100, - 2,83,0,119,0,122,8,116,3,106,4,124,1,25,0,125, - 2,87,0,124,2,83,0,4,0,116,5,121,49,1,0,1, - 0,1,0,124,0,160,6,124,1,161,1,125,2,124,2,116, - 3,106,4,124,1,60,0,89,0,124,2,83,0,119,0,41, - 3,122,210,71,101,116,32,116,104,101,32,102,105,110,100,101, - 114,32,102,111,114,32,116,104,101,32,112,97,116,104,32,101, - 110,116,114,121,32,102,114,111,109,32,115,121,115,46,112,97, + 46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,0, + 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0, + 0,67,0,0,0,115,26,0,0,0,116,0,160,1,100,1, + 124,0,106,2,161,2,1,0,116,0,160,3,124,0,124,1, + 161,2,83,0,41,2,122,98,76,111,97,100,32,97,32,110, + 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,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,101,120,101,99,95,109, + 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46, + 10,10,32,32,32,32,32,32,32,32,122,38,110,97,109,101, + 115,112,97,99,101,32,109,111,100,117,108,101,32,108,111,97, + 100,101,100,32,119,105,116,104,32,112,97,116,104,32,123,33, + 114,125,41,4,114,163,0,0,0,114,177,0,0,0,114,54, + 1,0,0,114,250,0,0,0,114,251,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,252,0,0, + 0,27,5,0,0,115,8,0,0,0,6,7,4,1,4,255, + 12,3,122,28,95,78,97,109,101,115,112,97,99,101,76,111, + 97,100,101,114,46,108,111,97,100,95,109,111,100,117,108,101, + 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,2,0,0,0,67,0,0,0,115,22,0,0,0,100,1, + 100,2,108,0,109,1,125,2,1,0,124,2,124,0,106,2, + 131,1,83,0,41,3,78,114,0,0,0,0,41,1,218,15, + 78,97,109,101,115,112,97,99,101,82,101,97,100,101,114,41, + 3,114,36,1,0,0,114,84,1,0,0,114,54,1,0,0, + 41,3,114,147,0,0,0,114,248,0,0,0,114,84,1,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,37,1,0,0,39,5,0,0,115,4,0,0,0,12,1, + 10,1,122,36,95,78,97,109,101,115,112,97,99,101,76,111, + 97,100,101,114,46,103,101,116,95,114,101,115,111,117,114,99, + 101,95,114,101,97,100,101,114,78,41,13,114,154,0,0,0, + 114,153,0,0,0,114,155,0,0,0,114,240,0,0,0,114, + 237,0,0,0,114,82,1,0,0,114,210,0,0,0,114,5, + 1,0,0,114,245,0,0,0,114,243,0,0,0,114,249,0, + 0,0,114,252,0,0,0,114,37,1,0,0,114,7,0,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,81,1,0,0,253,4,0,0,115,22,0,0,0,8,0, + 8,1,2,3,10,1,8,10,8,3,8,3,8,3,8,3, + 8,3,12,12,114,81,1,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,64,0, + 0,0,115,118,0,0,0,101,0,90,1,100,0,90,2,100, + 1,90,3,101,4,100,2,100,3,132,0,131,1,90,5,101, + 4,100,4,100,5,132,0,131,1,90,6,101,7,100,6,100, + 7,132,0,131,1,90,8,101,7,100,8,100,9,132,0,131, + 1,90,9,101,7,100,19,100,11,100,12,132,1,131,1,90, + 10,101,7,100,20,100,13,100,14,132,1,131,1,90,11,101, + 7,100,19,100,15,100,16,132,1,131,1,90,12,101,4,100, + 17,100,18,132,0,131,1,90,13,100,10,83,0,41,21,218, + 10,80,97,116,104,70,105,110,100,101,114,122,62,77,101,116, + 97,32,112,97,116,104,32,102,105,110,100,101,114,32,102,111, + 114,32,115,121,115,46,112,97,116,104,32,97,110,100,32,112, + 97,99,107,97,103,101,32,95,95,112,97,116,104,95,95,32, + 97,116,116,114,105,98,117,116,101,115,46,99,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0, + 67,0,0,0,115,78,0,0,0,116,0,116,1,106,2,160, + 3,161,0,131,1,68,0,93,22,92,2,125,0,125,1,124, + 1,100,1,117,0,114,20,116,1,106,2,124,0,61,0,113, + 7,116,4,124,1,100,2,131,2,114,29,124,1,160,5,161, + 0,1,0,113,7,116,6,4,0,106,7,100,3,55,0,2, + 0,95,7,100,1,83,0,41,4,122,125,67,97,108,108,32, + 116,104,101,32,105,110,118,97,108,105,100,97,116,101,95,99, + 97,99,104,101,115,40,41,32,109,101,116,104,111,100,32,111, + 110,32,97,108,108,32,112,97,116,104,32,101,110,116,114,121, + 32,102,105,110,100,101,114,115,10,32,32,32,32,32,32,32, + 32,115,116,111,114,101,100,32,105,110,32,115,121,115,46,112, + 97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99, + 104,101,115,32,40,119,104,101,114,101,32,105,109,112,108,101, + 109,101,110,116,101,100,41,46,78,218,17,105,110,118,97,108, + 105,100,97,116,101,95,99,97,99,104,101,115,114,3,0,0, + 0,41,8,218,4,108,105,115,116,114,18,0,0,0,218,19, + 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97, + 99,104,101,218,5,105,116,101,109,115,114,157,0,0,0,114, + 86,1,0,0,114,52,1,0,0,114,57,1,0,0,41,2, + 114,145,0,0,0,218,6,102,105,110,100,101,114,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,86,1,0, + 0,50,5,0,0,115,14,0,0,0,22,4,8,1,10,1, + 10,1,8,1,2,128,18,3,122,28,80,97,116,104,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,1,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,9,0,0,0,67,0,0,0,115, + 76,0,0,0,116,0,106,1,100,1,117,1,114,14,116,0, + 106,1,115,14,116,2,160,3,100,2,116,4,161,2,1,0, + 116,0,106,1,68,0,93,18,125,1,122,7,124,1,124,0, + 131,1,87,0,2,0,1,0,83,0,4,0,116,5,121,35, + 1,0,1,0,1,0,89,0,113,17,119,0,100,1,83,0, + 41,3,122,46,83,101,97,114,99,104,32,115,121,115,46,112, + 97,116,104,95,104,111,111,107,115,32,102,111,114,32,97,32, + 102,105,110,100,101,114,32,102,111,114,32,39,112,97,116,104, + 39,46,78,122,23,115,121,115,46,112,97,116,104,95,104,111, + 111,107,115,32,105,115,32,101,109,112,116,121,41,6,114,18, + 0,0,0,218,10,112,97,116,104,95,104,111,111,107,115,114, + 102,0,0,0,114,103,0,0,0,114,166,0,0,0,114,146, + 0,0,0,41,2,114,68,0,0,0,90,4,104,111,111,107, + 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, + 11,95,112,97,116,104,95,104,111,111,107,115,63,5,0,0, + 115,18,0,0,0,16,3,12,1,10,1,2,1,14,1,12, + 1,4,1,2,255,4,3,122,22,80,97,116,104,70,105,110, + 100,101,114,46,95,112,97,116,104,95,104,111,111,107,115,99, + 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 8,0,0,0,67,0,0,0,115,100,0,0,0,124,1,100, + 1,107,2,114,21,122,6,116,0,160,1,161,0,125,1,87, + 0,110,10,4,0,116,2,121,20,1,0,1,0,1,0,89, + 0,100,2,83,0,119,0,122,8,116,3,106,4,124,1,25, + 0,125,2,87,0,124,2,83,0,4,0,116,5,121,49,1, + 0,1,0,1,0,124,0,160,6,124,1,161,1,125,2,124, + 2,116,3,106,4,124,1,60,0,89,0,124,2,83,0,119, + 0,41,3,122,210,71,101,116,32,116,104,101,32,102,105,110, + 100,101,114,32,102,111,114,32,116,104,101,32,112,97,116,104, + 32,101,110,116,114,121,32,102,114,111,109,32,115,121,115,46, + 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97, + 99,104,101,46,10,10,32,32,32,32,32,32,32,32,73,102, + 32,116,104,101,32,112,97,116,104,32,101,110,116,114,121,32, + 105,115,32,110,111,116,32,105,110,32,116,104,101,32,99,97, + 99,104,101,44,32,102,105,110,100,32,116,104,101,32,97,112, + 112,114,111,112,114,105,97,116,101,32,102,105,110,100,101,114, + 10,32,32,32,32,32,32,32,32,97,110,100,32,99,97,99, + 104,101,32,105,116,46,32,73,102,32,110,111,32,102,105,110, + 100,101,114,32,105,115,32,97,118,97,105,108,97,98,108,101, + 44,32,115,116,111,114,101,32,78,111,110,101,46,10,10,32, + 32,32,32,32,32,32,32,114,10,0,0,0,78,41,7,114, + 21,0,0,0,114,85,0,0,0,218,17,70,105,108,101,78, + 111,116,70,111,117,110,100,69,114,114,111,114,114,18,0,0, + 0,114,88,1,0,0,218,8,75,101,121,69,114,114,111,114, + 114,92,1,0,0,41,3,114,225,0,0,0,114,68,0,0, + 0,114,90,1,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,20,95,112,97,116,104,95,105,109,112, + 111,114,116,101,114,95,99,97,99,104,101,76,5,0,0,115, + 28,0,0,0,8,8,2,1,12,1,12,1,6,3,2,253, + 2,4,12,1,4,4,12,253,10,1,12,1,4,1,2,253, + 122,31,80,97,116,104,70,105,110,100,101,114,46,95,112,97, 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104, - 101,46,10,10,32,32,32,32,32,32,32,32,73,102,32,116, - 104,101,32,112,97,116,104,32,101,110,116,114,121,32,105,115, - 32,110,111,116,32,105,110,32,116,104,101,32,99,97,99,104, - 101,44,32,102,105,110,100,32,116,104,101,32,97,112,112,114, - 111,112,114,105,97,116,101,32,102,105,110,100,101,114,10,32, - 32,32,32,32,32,32,32,97,110,100,32,99,97,99,104,101, - 32,105,116,46,32,73,102,32,110,111,32,102,105,110,100,101, - 114,32,105,115,32,97,118,97,105,108,97,98,108,101,44,32, - 115,116,111,114,101,32,78,111,110,101,46,10,10,32,32,32, - 32,32,32,32,32,114,10,0,0,0,78,41,7,114,18,0, - 0,0,114,82,0,0,0,218,17,70,105,108,101,78,111,116, - 70,111,117,110,100,69,114,114,111,114,114,15,0,0,0,114, - 82,1,0,0,218,8,75,101,121,69,114,114,111,114,114,86, - 1,0,0,41,3,114,221,0,0,0,114,65,0,0,0,114, - 84,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,20,95,112,97,116,104,95,105,109,112,111,114, - 116,101,114,95,99,97,99,104,101,76,5,0,0,115,28,0, - 0,0,8,8,2,1,12,1,12,1,6,3,2,253,2,4, - 12,1,4,4,12,253,10,1,12,1,4,1,2,253,122,31, - 80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104, - 95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,99, - 3,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, - 4,0,0,0,67,0,0,0,115,138,0,0,0,116,0,124, - 2,100,1,131,2,114,27,116,1,160,2,124,2,161,1,155, - 0,100,2,157,2,125,3,116,3,160,4,124,3,116,5,161, - 2,1,0,124,2,160,6,124,1,161,1,92,2,125,4,125, - 5,110,21,116,1,160,2,124,2,161,1,155,0,100,3,157, - 2,125,3,116,3,160,4,124,3,116,5,161,2,1,0,124, - 2,160,7,124,1,161,1,125,4,103,0,125,5,124,4,100, - 0,117,1,114,58,116,1,160,8,124,1,124,4,161,2,83, - 0,116,1,160,9,124,1,100,0,161,2,125,6,124,5,124, - 6,95,10,124,6,83,0,41,4,78,114,161,0,0,0,122, - 53,46,102,105,110,100,95,115,112,101,99,40,41,32,110,111, - 116,32,102,111,117,110,100,59,32,102,97,108,108,105,110,103, - 32,98,97,99,107,32,116,111,32,102,105,110,100,95,108,111, - 97,100,101,114,40,41,122,53,46,102,105,110,100,95,115,112, - 101,99,40,41,32,110,111,116,32,102,111,117,110,100,59,32, - 102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32, - 102,105,110,100,95,109,111,100,117,108,101,40,41,41,11,114, - 153,0,0,0,114,159,0,0,0,90,12,95,111,98,106,101, - 99,116,95,110,97,109,101,114,99,0,0,0,114,100,0,0, - 0,114,162,0,0,0,114,161,0,0,0,114,229,0,0,0, - 114,224,0,0,0,114,207,0,0,0,114,202,0,0,0,41, - 7,114,221,0,0,0,114,163,0,0,0,114,84,1,0,0, - 114,166,0,0,0,114,164,0,0,0,114,165,0,0,0,114, - 210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,16,95,108,101,103,97,99,121,95,103,101,116, - 95,115,112,101,99,98,5,0,0,115,26,0,0,0,10,4, - 16,1,12,2,16,1,16,2,12,2,10,1,4,1,8,1, - 12,1,12,1,6,1,4,1,122,27,80,97,116,104,70,105, - 110,100,101,114,46,95,108,101,103,97,99,121,95,103,101,116, - 95,115,112,101,99,78,99,4,0,0,0,0,0,0,0,0, - 0,0,0,9,0,0,0,5,0,0,0,67,0,0,0,115, - 166,0,0,0,103,0,125,4,124,2,68,0,93,67,125,5, - 116,0,124,5,116,1,116,2,102,2,131,2,115,14,113,4, - 124,0,160,3,124,5,161,1,125,6,124,6,100,1,117,1, - 114,71,116,4,124,6,100,2,131,2,114,35,124,6,160,5, - 124,1,124,3,161,2,125,7,110,6,124,0,160,6,124,1, - 124,6,161,2,125,7,124,7,100,1,117,0,114,46,113,4, - 124,7,106,7,100,1,117,1,114,55,124,7,2,0,1,0, - 83,0,124,7,106,8,125,8,124,8,100,1,117,0,114,66, - 116,9,100,3,131,1,130,1,124,4,160,10,124,8,161,1, - 1,0,113,4,116,11,160,12,124,1,100,1,161,2,125,7, - 124,4,124,7,95,8,124,7,83,0,41,4,122,63,70,105, - 110,100,32,116,104,101,32,108,111,97,100,101,114,32,111,114, - 32,110,97,109,101,115,112,97,99,101,95,112,97,116,104,32, - 102,111,114,32,116,104,105,115,32,109,111,100,117,108,101,47, - 112,97,99,107,97,103,101,32,110,97,109,101,46,78,114,226, - 0,0,0,122,19,115,112,101,99,32,109,105,115,115,105,110, - 103,32,108,111,97,100,101,114,41,13,114,185,0,0,0,114, - 109,0,0,0,218,5,98,121,116,101,115,114,89,1,0,0, - 114,153,0,0,0,114,226,0,0,0,114,90,1,0,0,114, - 164,0,0,0,114,202,0,0,0,114,142,0,0,0,114,191, - 0,0,0,114,159,0,0,0,114,207,0,0,0,41,9,114, - 221,0,0,0,114,163,0,0,0,114,65,0,0,0,114,225, - 0,0,0,218,14,110,97,109,101,115,112,97,99,101,95,112, - 97,116,104,90,5,101,110,116,114,121,114,84,1,0,0,114, - 210,0,0,0,114,165,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,218,9,95,103,101,116,95,115, - 112,101,99,119,5,0,0,115,42,0,0,0,4,5,8,1, - 14,1,2,1,10,1,8,1,10,1,14,1,12,2,8,1, - 2,1,10,1,8,1,6,1,8,1,8,1,10,5,2,128, - 12,2,6,1,4,1,122,20,80,97,116,104,70,105,110,100, - 101,114,46,95,103,101,116,95,115,112,101,99,99,4,0,0, - 0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0, - 0,67,0,0,0,115,94,0,0,0,124,2,100,1,117,0, - 114,7,116,0,106,1,125,2,124,0,160,2,124,1,124,2, - 124,3,161,3,125,4,124,4,100,1,117,0,114,20,100,1, - 83,0,124,4,106,3,100,1,117,0,114,45,124,4,106,4, - 125,5,124,5,114,43,100,1,124,4,95,5,116,6,124,1, - 124,5,124,0,106,2,131,3,124,4,95,4,124,4,83,0, - 100,1,83,0,124,4,83,0,41,2,122,141,84,114,121,32, - 116,111,32,102,105,110,100,32,97,32,115,112,101,99,32,102, - 111,114,32,39,102,117,108,108,110,97,109,101,39,32,111,110, - 32,115,121,115,46,112,97,116,104,32,111,114,32,39,112,97, - 116,104,39,46,10,10,32,32,32,32,32,32,32,32,84,104, - 101,32,115,101,97,114,99,104,32,105,115,32,98,97,115,101, - 100,32,111,110,32,115,121,115,46,112,97,116,104,95,104,111, - 111,107,115,32,97,110,100,32,115,121,115,46,112,97,116,104, - 95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,46, - 10,32,32,32,32,32,32,32,32,78,41,7,114,15,0,0, - 0,114,65,0,0,0,114,93,1,0,0,114,164,0,0,0, - 114,202,0,0,0,114,205,0,0,0,114,47,1,0,0,41, - 6,114,221,0,0,0,114,163,0,0,0,114,65,0,0,0, - 114,225,0,0,0,114,210,0,0,0,114,92,1,0,0,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,226, - 0,0,0,151,5,0,0,115,26,0,0,0,8,6,6,1, - 14,1,8,1,4,1,10,1,6,1,4,1,6,3,16,1, - 4,1,4,2,4,2,122,20,80,97,116,104,70,105,110,100, - 101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0, - 0,67,0,0,0,115,42,0,0,0,116,0,160,1,100,1, - 116,2,161,2,1,0,124,0,160,3,124,1,124,2,161,2, - 125,3,124,3,100,2,117,0,114,18,100,2,83,0,124,3, - 106,4,83,0,41,3,122,170,102,105,110,100,32,116,104,101, - 32,109,111,100,117,108,101,32,111,110,32,115,121,115,46,112, - 97,116,104,32,111,114,32,39,112,97,116,104,39,32,98,97, + 101,99,3,0,0,0,0,0,0,0,0,0,0,0,7,0, + 0,0,4,0,0,0,67,0,0,0,115,138,0,0,0,116, + 0,124,2,100,1,131,2,114,27,116,1,160,2,124,2,161, + 1,155,0,100,2,157,2,125,3,116,3,160,4,124,3,116, + 5,161,2,1,0,124,2,160,6,124,1,161,1,92,2,125, + 4,125,5,110,21,116,1,160,2,124,2,161,1,155,0,100, + 3,157,2,125,3,116,3,160,4,124,3,116,5,161,2,1, + 0,124,2,160,7,124,1,161,1,125,4,103,0,125,5,124, + 4,100,0,117,1,114,58,116,1,160,8,124,1,124,4,161, + 2,83,0,116,1,160,9,124,1,100,0,161,2,125,6,124, + 5,124,6,95,10,124,6,83,0,41,4,78,114,165,0,0, + 0,122,53,46,102,105,110,100,95,115,112,101,99,40,41,32, + 110,111,116,32,102,111,117,110,100,59,32,102,97,108,108,105, + 110,103,32,98,97,99,107,32,116,111,32,102,105,110,100,95, + 108,111,97,100,101,114,40,41,122,53,46,102,105,110,100,95, + 115,112,101,99,40,41,32,110,111,116,32,102,111,117,110,100, + 59,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116, + 111,32,102,105,110,100,95,109,111,100,117,108,101,40,41,41, + 11,114,157,0,0,0,114,163,0,0,0,90,12,95,111,98, + 106,101,99,116,95,110,97,109,101,114,102,0,0,0,114,103, + 0,0,0,114,166,0,0,0,114,165,0,0,0,114,233,0, + 0,0,114,228,0,0,0,114,211,0,0,0,114,206,0,0, + 0,41,7,114,225,0,0,0,114,167,0,0,0,114,90,1, + 0,0,114,170,0,0,0,114,168,0,0,0,114,169,0,0, + 0,114,214,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,16,95,108,101,103,97,99,121,95,103, + 101,116,95,115,112,101,99,98,5,0,0,115,26,0,0,0, + 10,4,16,1,12,2,16,1,16,2,12,2,10,1,4,1, + 8,1,12,1,12,1,6,1,4,1,122,27,80,97,116,104, + 70,105,110,100,101,114,46,95,108,101,103,97,99,121,95,103, + 101,116,95,115,112,101,99,78,99,4,0,0,0,0,0,0, + 0,0,0,0,0,9,0,0,0,5,0,0,0,67,0,0, + 0,115,166,0,0,0,103,0,125,4,124,2,68,0,93,67, + 125,5,116,0,124,5,116,1,116,2,102,2,131,2,115,14, + 113,4,124,0,160,3,124,5,161,1,125,6,124,6,100,1, + 117,1,114,71,116,4,124,6,100,2,131,2,114,35,124,6, + 160,5,124,1,124,3,161,2,125,7,110,6,124,0,160,6, + 124,1,124,6,161,2,125,7,124,7,100,1,117,0,114,46, + 113,4,124,7,106,7,100,1,117,1,114,55,124,7,2,0, + 1,0,83,0,124,7,106,8,125,8,124,8,100,1,117,0, + 114,66,116,9,100,3,131,1,130,1,124,4,160,10,124,8, + 161,1,1,0,113,4,116,11,160,12,124,1,100,1,161,2, + 125,7,124,4,124,7,95,8,124,7,83,0,41,4,122,63, + 70,105,110,100,32,116,104,101,32,108,111,97,100,101,114,32, + 111,114,32,110,97,109,101,115,112,97,99,101,95,112,97,116, + 104,32,102,111,114,32,116,104,105,115,32,109,111,100,117,108, + 101,47,112,97,99,107,97,103,101,32,110,97,109,101,46,78, + 114,230,0,0,0,122,19,115,112,101,99,32,109,105,115,115, + 105,110,103,32,108,111,97,100,101,114,41,13,114,189,0,0, + 0,114,112,0,0,0,218,5,98,121,116,101,115,114,95,1, + 0,0,114,157,0,0,0,114,230,0,0,0,114,96,1,0, + 0,114,168,0,0,0,114,206,0,0,0,114,146,0,0,0, + 114,195,0,0,0,114,163,0,0,0,114,211,0,0,0,41, + 9,114,225,0,0,0,114,167,0,0,0,114,68,0,0,0, + 114,229,0,0,0,218,14,110,97,109,101,115,112,97,99,101, + 95,112,97,116,104,90,5,101,110,116,114,121,114,90,1,0, + 0,114,214,0,0,0,114,169,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,218,9,95,103,101,116, + 95,115,112,101,99,119,5,0,0,115,42,0,0,0,4,5, + 8,1,14,1,2,1,10,1,8,1,10,1,14,1,12,2, + 8,1,2,1,10,1,8,1,6,1,8,1,8,1,10,5, + 2,128,12,2,6,1,4,1,122,20,80,97,116,104,70,105, + 110,100,101,114,46,95,103,101,116,95,115,112,101,99,99,4, + 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5, + 0,0,0,67,0,0,0,115,94,0,0,0,124,2,100,1, + 117,0,114,7,116,0,106,1,125,2,124,0,160,2,124,1, + 124,2,124,3,161,3,125,4,124,4,100,1,117,0,114,20, + 100,1,83,0,124,4,106,3,100,1,117,0,114,45,124,4, + 106,4,125,5,124,5,114,43,100,1,124,4,95,5,116,6, + 124,1,124,5,124,0,106,2,131,3,124,4,95,4,124,4, + 83,0,100,1,83,0,124,4,83,0,41,2,122,141,84,114, + 121,32,116,111,32,102,105,110,100,32,97,32,115,112,101,99, + 32,102,111,114,32,39,102,117,108,108,110,97,109,101,39,32, + 111,110,32,115,121,115,46,112,97,116,104,32,111,114,32,39, + 112,97,116,104,39,46,10,10,32,32,32,32,32,32,32,32, + 84,104,101,32,115,101,97,114,99,104,32,105,115,32,98,97, 115,101,100,32,111,110,32,115,121,115,46,112,97,116,104,95, - 104,111,111,107,115,32,97,110,100,10,32,32,32,32,32,32, - 32,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114, - 116,101,114,95,99,97,99,104,101,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,122,101,80,97,116,104,70,105,110,100,101,114,46,102, - 105,110,100,95,109,111,100,117,108,101,40,41,32,105,115,32, - 100,101,112,114,101,99,97,116,101,100,32,97,110,100,32,115, - 108,97,116,101,100,32,102,111,114,32,114,101,109,111,118,97, - 108,32,105,110,32,80,121,116,104,111,110,32,51,46,49,50, - 59,32,117,115,101,32,102,105,110,100,95,115,112,101,99,40, - 41,32,105,110,115,116,101,97,100,78,114,227,0,0,0,114, - 228,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,229,0,0,0,175,5,0,0,115,14,0,0, - 0,6,8,2,2,4,254,12,3,8,1,4,1,6,1,122, - 22,80,97,116,104,70,105,110,100,101,114,46,102,105,110,100, - 95,109,111,100,117,108,101,99,0,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,4,0,0,0,79,0,0,0, - 115,28,0,0,0,100,1,100,2,108,0,109,1,125,2,1, - 0,124,2,106,2,124,0,105,0,124,1,164,1,142,1,83, - 0,41,3,97,32,1,0,0,10,32,32,32,32,32,32,32, - 32,70,105,110,100,32,100,105,115,116,114,105,98,117,116,105, - 111,110,115,46,10,10,32,32,32,32,32,32,32,32,82,101, - 116,117,114,110,32,97,110,32,105,116,101,114,97,98,108,101, - 32,111,102,32,97,108,108,32,68,105,115,116,114,105,98,117, - 116,105,111,110,32,105,110,115,116,97,110,99,101,115,32,99, - 97,112,97,98,108,101,32,111,102,10,32,32,32,32,32,32, - 32,32,108,111,97,100,105,110,103,32,116,104,101,32,109,101, - 116,97,100,97,116,97,32,102,111,114,32,112,97,99,107,97, - 103,101,115,32,109,97,116,99,104,105,110,103,32,96,96,99, - 111,110,116,101,120,116,46,110,97,109,101,96,96,10,32,32, - 32,32,32,32,32,32,40,111,114,32,97,108,108,32,110,97, - 109,101,115,32,105,102,32,96,96,78,111,110,101,96,96,32, - 105,110,100,105,99,97,116,101,100,41,32,97,108,111,110,103, - 32,116,104,101,32,112,97,116,104,115,32,105,110,32,116,104, - 101,32,108,105,115,116,10,32,32,32,32,32,32,32,32,111, - 102,32,100,105,114,101,99,116,111,114,105,101,115,32,96,96, - 99,111,110,116,101,120,116,46,112,97,116,104,96,96,46,10, - 32,32,32,32,32,32,32,32,114,0,0,0,0,41,1,218, - 18,77,101,116,97,100,97,116,97,80,97,116,104,70,105,110, - 100,101,114,41,3,90,18,105,109,112,111,114,116,108,105,98, - 46,109,101,116,97,100,97,116,97,114,94,1,0,0,218,18, - 102,105,110,100,95,100,105,115,116,114,105,98,117,116,105,111, - 110,115,41,3,114,144,0,0,0,114,145,0,0,0,114,94, - 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,95,1,0,0,191,5,0,0,115,4,0,0,0, - 12,10,16,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,114,69,0,0,0,114,230,0,0,0,41,14,114, - 150,0,0,0,114,149,0,0,0,114,151,0,0,0,114,152, - 0,0,0,114,233,0,0,0,114,80,1,0,0,114,86,1, - 0,0,114,234,0,0,0,114,89,1,0,0,114,90,1,0, - 0,114,93,1,0,0,114,226,0,0,0,114,229,0,0,0, - 114,95,1,0,0,114,7,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,79,1,0,0,46,5, - 0,0,115,36,0,0,0,8,0,4,2,2,2,10,1,2, - 12,10,1,2,12,10,1,2,21,10,1,2,20,12,1,2, - 31,12,1,2,23,12,1,2,15,14,1,114,79,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,112,0, - 0,0,103,0,125,3,124,2,68,0,93,16,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,4,124,3,124,0, - 95,1,124,1,112,27,100,3,124,0,95,2,116,3,124,0, - 106,2,131,1,115,43,116,4,116,5,160,6,161,0,124,0, - 106,2,131,2,124,0,95,2,100,4,124,0,95,7,116,8, - 131,0,124,0,95,9,116,8,131,0,124,0,95,10,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,24,0,0,0,129,0, - 124,0,93,7,125,1,124,1,136,0,102,2,86,0,1,0, - 113,2,100,0,83,0,114,69,0,0,0,114,7,0,0,0, - 114,43,1,0,0,169,1,114,164,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,9,0,0,0,220,5,0,0,115, - 4,0,0,0,2,128,22,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,97,0,0,0,114,130,0,0,0,78,41,11,114,191,0, - 0,0,218,8,95,108,111,97,100,101,114,115,114,65,0,0, - 0,114,86,0,0,0,114,67,0,0,0,114,18,0,0,0, - 114,82,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,143,0,0,0, - 114,65,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,212, - 0,0,0,114,7,0,0,0,114,97,1,0,0,114,8,0, - 0,0,114,236,0,0,0,214,5,0,0,115,20,0,0,0, - 4,4,12,1,26,1,6,1,10,2,10,1,18,1,6,1, - 8,1,12,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,130,0,0,0,78,41,1,114,99,1,0, - 0,114,21,1,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,80,1,0,0,230,5,0,0,114,81, - 0,0,0,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,4,0,0,0,67,0,0,0,115,54,0,0,0,116, - 0,160,1,100,1,116,2,161,2,1,0,124,0,160,3,124, - 1,161,1,125,2,124,2,100,2,117,0,114,19,100,2,103, - 0,102,2,83,0,124,2,106,4,124,2,106,5,112,25,103, - 0,102,2,83,0,41,3,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,122,101, - 70,105,108,101,70,105,110,100,101,114,46,102,105,110,100,95, - 108,111,97,100,101,114,40,41,32,105,115,32,100,101,112,114, - 101,99,97,116,101,100,32,97,110,100,32,115,108,97,116,101, - 100,32,102,111,114,32,114,101,109,111,118,97,108,32,105,110, - 32,80,121,116,104,111,110,32,51,46,49,50,59,32,117,115, + 104,111,111,107,115,32,97,110,100,32,115,121,115,46,112,97, + 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104, + 101,46,10,32,32,32,32,32,32,32,32,78,41,7,114,18, + 0,0,0,114,68,0,0,0,114,99,1,0,0,114,168,0, + 0,0,114,206,0,0,0,114,209,0,0,0,114,52,1,0, + 0,41,6,114,225,0,0,0,114,167,0,0,0,114,68,0, + 0,0,114,229,0,0,0,114,214,0,0,0,114,98,1,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,230,0,0,0,151,5,0,0,115,26,0,0,0,8,6, + 6,1,14,1,8,1,4,1,10,1,6,1,4,1,6,3, + 16,1,4,1,4,2,4,2,122,20,80,97,116,104,70,105, + 110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,3, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4, + 0,0,0,67,0,0,0,115,42,0,0,0,116,0,160,1, + 100,1,116,2,161,2,1,0,124,0,160,3,124,1,124,2, + 161,2,125,3,124,3,100,2,117,0,114,18,100,2,83,0, + 124,3,106,4,83,0,41,3,122,170,102,105,110,100,32,116, + 104,101,32,109,111,100,117,108,101,32,111,110,32,115,121,115, + 46,112,97,116,104,32,111,114,32,39,112,97,116,104,39,32, + 98,97,115,101,100,32,111,110,32,115,121,115,46,112,97,116, + 104,95,104,111,111,107,115,32,97,110,100,10,32,32,32,32, + 32,32,32,32,115,121,115,46,112,97,116,104,95,105,109,112, + 111,114,116,101,114,95,99,97,99,104,101,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,122,101,80,97,116,104,70,105,110,100,101,114, + 46,102,105,110,100,95,109,111,100,117,108,101,40,41,32,105, + 115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100, + 32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111, + 118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46, + 49,50,59,32,117,115,101,32,102,105,110,100,95,115,112,101, + 99,40,41,32,105,110,115,116,101,97,100,78,114,231,0,0, + 0,114,232,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,233,0,0,0,175,5,0,0,115,14, + 0,0,0,6,8,2,2,4,254,12,3,8,1,4,1,6, + 1,122,22,80,97,116,104,70,105,110,100,101,114,46,102,105, + 110,100,95,109,111,100,117,108,101,99,0,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,4,0,0,0,79,0, + 0,0,115,28,0,0,0,100,1,100,2,108,0,109,1,125, + 2,1,0,124,2,106,2,124,0,105,0,124,1,164,1,142, + 1,83,0,41,3,97,32,1,0,0,10,32,32,32,32,32, + 32,32,32,70,105,110,100,32,100,105,115,116,114,105,98,117, + 116,105,111,110,115,46,10,10,32,32,32,32,32,32,32,32, + 82,101,116,117,114,110,32,97,110,32,105,116,101,114,97,98, + 108,101,32,111,102,32,97,108,108,32,68,105,115,116,114,105, + 98,117,116,105,111,110,32,105,110,115,116,97,110,99,101,115, + 32,99,97,112,97,98,108,101,32,111,102,10,32,32,32,32, + 32,32,32,32,108,111,97,100,105,110,103,32,116,104,101,32, + 109,101,116,97,100,97,116,97,32,102,111,114,32,112,97,99, + 107,97,103,101,115,32,109,97,116,99,104,105,110,103,32,96, + 96,99,111,110,116,101,120,116,46,110,97,109,101,96,96,10, + 32,32,32,32,32,32,32,32,40,111,114,32,97,108,108,32, + 110,97,109,101,115,32,105,102,32,96,96,78,111,110,101,96, + 96,32,105,110,100,105,99,97,116,101,100,41,32,97,108,111, + 110,103,32,116,104,101,32,112,97,116,104,115,32,105,110,32, + 116,104,101,32,108,105,115,116,10,32,32,32,32,32,32,32, + 32,111,102,32,100,105,114,101,99,116,111,114,105,101,115,32, + 96,96,99,111,110,116,101,120,116,46,112,97,116,104,96,96, + 46,10,32,32,32,32,32,32,32,32,114,0,0,0,0,41, + 1,218,18,77,101,116,97,100,97,116,97,80,97,116,104,70, + 105,110,100,101,114,41,3,90,18,105,109,112,111,114,116,108, + 105,98,46,109,101,116,97,100,97,116,97,114,100,1,0,0, + 218,18,102,105,110,100,95,100,105,115,116,114,105,98,117,116, + 105,111,110,115,41,3,114,148,0,0,0,114,149,0,0,0, + 114,100,1,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,101,1,0,0,191,5,0,0,115,4,0, + 0,0,12,10,16,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,114,72,0,0,0,114,234,0,0,0,41, + 14,114,154,0,0,0,114,153,0,0,0,114,155,0,0,0, + 114,156,0,0,0,114,237,0,0,0,114,86,1,0,0,114, + 92,1,0,0,114,238,0,0,0,114,95,1,0,0,114,96, + 1,0,0,114,99,1,0,0,114,230,0,0,0,114,233,0, + 0,0,114,101,1,0,0,114,7,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,85,1,0,0, + 46,5,0,0,115,36,0,0,0,8,0,4,2,2,2,10, + 1,2,12,10,1,2,12,10,1,2,21,10,1,2,20,12, + 1,2,31,12,1,2,23,12,1,2,15,14,1,114,85,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, + 112,0,0,0,103,0,125,3,124,2,68,0,93,16,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,4,124,3, + 124,0,95,1,124,1,112,27,100,3,124,0,95,2,116,3, + 124,0,106,2,131,1,115,43,116,4,116,5,160,6,161,0, + 124,0,106,2,131,2,124,0,95,2,100,4,124,0,95,7, + 116,8,131,0,124,0,95,9,116,8,131,0,124,0,95,10, + 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,24,0,0,0, + 129,0,124,0,93,7,125,1,124,1,136,0,102,2,86,0, + 1,0,113,2,100,0,83,0,114,72,0,0,0,114,7,0, + 0,0,114,48,1,0,0,169,1,114,168,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,9,0,0,0,220,5,0, + 0,115,4,0,0,0,2,128,22,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,100,0,0,0,114,133,0,0,0,78,41,11,114, + 195,0,0,0,218,8,95,108,111,97,100,101,114,115,114,68, + 0,0,0,114,89,0,0,0,114,70,0,0,0,114,21,0, + 0,0,114,85,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,147,0, + 0,0,114,68,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,216,0,0,0,114,7,0,0,0,114,103,1,0,0,114, + 8,0,0,0,114,240,0,0,0,214,5,0,0,115,20,0, + 0,0,4,4,12,1,26,1,6,1,10,2,10,1,18,1, + 6,1,8,1,12,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,133,0,0,0,78,41,1,114,105, + 1,0,0,114,25,1,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,86,1,0,0,230,5,0,0, + 114,84,0,0,0,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,4,0,0,0,67,0,0,0,115,54,0,0, + 0,116,0,160,1,100,1,116,2,161,2,1,0,124,0,160, + 3,124,1,161,1,125,2,124,2,100,2,117,0,114,19,100, + 2,103,0,102,2,83,0,124,2,106,4,124,2,106,5,112, + 25,103,0,102,2,83,0,41,3,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,78,41,6,114,99,0,0,0,114,100,0, - 0,0,114,101,0,0,0,114,226,0,0,0,114,164,0,0, - 0,114,202,0,0,0,41,3,114,143,0,0,0,114,163,0, - 0,0,114,210,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,161,0,0,0,236,5,0,0,115, - 14,0,0,0,6,7,2,2,4,254,10,3,8,1,8,1, - 16,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,201,0,0,0,41,1,114,213,0,0, - 0,41,7,114,143,0,0,0,114,211,0,0,0,114,163,0, - 0,0,114,65,0,0,0,90,4,115,109,115,108,114,225,0, - 0,0,114,164,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,93,1,0,0,251,5,0,0,115, - 8,0,0,0,10,1,8,1,2,1,6,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,9,0,0,0,67,0,0,0,115,122,1,0, - 0,100,1,125,3,124,1,160,0,100,2,161,1,100,3,25, - 0,125,4,122,12,116,1,124,0,106,2,112,17,116,3,160, - 4,161,0,131,1,106,5,125,5,87,0,110,11,4,0,116, - 6,121,32,1,0,1,0,1,0,100,4,125,5,89,0,110, - 1,119,0,124,5,124,0,106,7,107,3,114,45,124,0,160, - 8,161,0,1,0,124,5,124,0,95,7,116,9,131,0,114, - 56,124,0,106,10,125,6,124,4,160,11,161,0,125,7,110, - 5,124,0,106,12,125,6,124,4,125,7,124,7,124,6,118, - 0,114,108,116,13,124,0,106,2,124,4,131,2,125,8,124, - 0,106,14,68,0,93,29,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,103,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, - 74,116,17,124,8,131,1,125,3,124,0,106,14,68,0,93, - 55,92,2,125,9,125,10,122,10,116,13,124,0,106,2,124, - 4,124,9,23,0,131,2,125,12,87,0,110,11,4,0,116, - 18,121,136,1,0,1,0,1,0,89,0,1,0,100,6,83, - 0,119,0,116,19,106,20,100,7,124,12,100,3,100,8,141, - 3,1,0,124,7,124,9,23,0,124,6,118,0,114,166,116, - 15,124,12,131,1,114,166,124,0,160,16,124,10,124,1,124, - 12,100,6,124,2,161,5,2,0,1,0,83,0,113,111,124, - 3,114,187,116,19,160,20,100,9,124,8,161,2,1,0,116, - 19,160,21,124,1,100,6,161,2,125,13,124,8,103,1,124, - 13,95,22,124,13,83,0,100,6,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, - 97,0,0,0,114,44,0,0,0,114,130,0,0,0,114,236, - 0,0,0,78,122,9,116,114,121,105,110,103,32,123,125,41, - 1,90,9,118,101,114,98,111,115,105,116,121,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,23,114,104,0,0,0,114,75, - 0,0,0,114,65,0,0,0,114,18,0,0,0,114,82,0, - 0,0,114,35,1,0,0,114,76,0,0,0,114,99,1,0, - 0,218,11,95,102,105,108,108,95,99,97,99,104,101,114,21, - 0,0,0,114,102,1,0,0,114,131,0,0,0,114,101,1, - 0,0,114,67,0,0,0,114,98,1,0,0,114,80,0,0, - 0,114,93,1,0,0,114,83,0,0,0,114,111,0,0,0, - 114,159,0,0,0,114,173,0,0,0,114,207,0,0,0,114, - 202,0,0,0,41,14,114,143,0,0,0,114,163,0,0,0, - 114,225,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,193,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,44,1,0,0,114,211,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,210,0,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,226,0, - 0,0,0,6,0,0,115,86,0,0,0,4,5,14,1,2, - 1,24,1,12,1,8,1,2,255,10,2,8,1,6,1,6, - 2,6,1,10,1,6,2,4,1,8,2,12,1,14,1,8, - 1,10,1,8,1,24,1,2,255,8,5,14,2,2,1,20, - 1,12,1,8,1,2,255,16,2,12,1,8,1,10,1,4, - 1,8,255,2,128,4,2,12,1,12,1,8,1,4,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,192,0,0,0,124,0,106,0,125,1,122,11,116,1,160, - 2,124,1,112,11,116,1,160,3,161,0,161,1,125,2,87, - 0,110,14,4,0,116,4,116,5,116,6,102,3,121,28,1, - 0,1,0,1,0,103,0,125,2,89,0,110,1,119,0,116, - 7,106,8,160,9,100,1,161,1,115,41,116,10,124,2,131, - 1,124,0,95,11,110,37,116,10,131,0,125,3,124,2,68, - 0,93,28,125,4,124,4,160,12,100,2,161,1,92,3,125, - 5,125,6,125,7,124,6,114,67,100,3,160,13,124,5,124, - 7,160,14,161,0,161,2,125,8,110,2,124,5,125,8,124, - 3,160,15,124,8,161,1,1,0,113,46,124,3,124,0,95, - 11,116,7,106,8,160,9,116,16,161,1,114,94,100,4,100, - 5,132,0,124,2,68,0,131,1,124,0,95,17,100,6,83, - 0,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,14,0, - 0,0,114,97,0,0,0,114,88,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,6, - 125,1,124,1,160,0,161,0,146,2,113,2,83,0,114,7, - 0,0,0,41,1,114,131,0,0,0,41,2,114,5,0,0, - 0,90,2,102,110,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,13,0,0,0,80,6,0,0,115,2,0, - 0,0,20,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,65,0,0,0,114,18,0,0,0,90,7,108,105, - 115,116,100,105,114,114,82,0,0,0,114,87,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,15,0,0,0,114,25,0,0,0,114,26, - 0,0,0,114,100,1,0,0,114,101,1,0,0,114,126,0, - 0,0,114,89,0,0,0,114,131,0,0,0,218,3,97,100, - 100,114,27,0,0,0,114,102,1,0,0,41,9,114,143,0, - 0,0,114,65,0,0,0,90,8,99,111,110,116,101,110,116, - 115,90,21,108,111,119,101,114,95,115,117,102,102,105,120,95, - 99,111,110,116,101,110,116,115,114,72,1,0,0,114,141,0, - 0,0,114,56,1,0,0,114,44,1,0,0,90,8,110,101, - 119,95,110,97,109,101,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,104,1,0,0,51,6,0,0,115,38, - 0,0,0,6,2,2,1,22,1,18,1,8,3,2,253,12, - 6,12,1,6,7,8,1,16,1,4,1,18,1,4,2,12, - 1,6,1,12,1,20,1,4,255,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,36,0,0,0,116,0,124,0,131,1, - 115,10,116,1,100,1,124,0,100,2,141,2,130,1,136,0, - 124,0,103,1,136,1,162,1,82,0,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, - 71,0,0,0,41,2,114,83,0,0,0,114,142,0,0,0, - 114,71,0,0,0,169,2,114,221,0,0,0,114,103,1,0, - 0,114,7,0,0,0,114,8,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,92,6,0,0,115,6,0,0,0,8,2, - 12,1,16,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,7,0,0, - 0,41,3,114,221,0,0,0,114,103,1,0,0,114,109,1, - 0,0,114,7,0,0,0,114,108,1,0,0,114,8,0,0, - 0,218,9,112,97,116,104,95,104,111,111,107,82,6,0,0, - 115,4,0,0,0,14,10,4,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,114,69,1,0,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,89,0,0,0,114,65,0,0,0,114,21, - 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,70,1,0,0,100,6,0,0,114,63,1,0,0, - 122,19,70,105,108,101,70,105,110,100,101,114,46,95,95,114, - 101,112,114,95,95,114,69,0,0,0,41,15,114,150,0,0, - 0,114,149,0,0,0,114,151,0,0,0,114,152,0,0,0, - 114,236,0,0,0,114,80,1,0,0,114,167,0,0,0,114, - 229,0,0,0,114,161,0,0,0,114,93,1,0,0,114,226, - 0,0,0,114,104,1,0,0,114,234,0,0,0,114,110,1, - 0,0,114,70,1,0,0,114,7,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,96,1,0,0, - 205,5,0,0,115,24,0,0,0,8,0,4,2,8,7,8, - 16,4,4,8,2,8,15,10,5,8,51,2,31,10,1,12, - 17,114,96,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, - 144,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,33,124,5,114,18, - 124,5,106,1,125,4,110,15,124,2,124,3,107,2,114,28, - 116,2,124,1,124,2,131,2,125,4,110,5,116,3,124,1, - 124,2,131,2,125,4,124,5,115,42,116,4,124,1,124,2, - 124,4,100,3,141,3,125,5,122,19,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,100,0,83,0, - 4,0,116,5,121,71,1,0,1,0,1,0,89,0,100,0, - 83,0,119,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,97,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, - 164,0,0,0,114,41,1,0,0,114,34,1,0,0,114,213, - 0,0,0,218,9,69,120,99,101,112,116,105,111,110,41,6, - 90,2,110,115,114,141,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,164, - 0,0,0,114,210,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,218,14,95,102,105,120,95,117,112, - 95,109,111,100,117,108,101,106,6,0,0,115,36,0,0,0, - 10,2,10,1,4,1,4,1,8,1,8,1,12,1,10,2, - 4,1,14,1,2,1,8,1,8,1,8,1,14,1,12,1, - 6,2,2,254,114,115,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,30,1,0,0,114,187,0,0,0,218,18,101,120, - 116,101,110,115,105,111,110,95,115,117,102,102,105,120,101,115, - 114,34,1,0,0,114,127,0,0,0,114,41,1,0,0,114, - 113,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,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,208,0,0,0,129,6,0,0,115,8,0,0, - 0,12,5,8,1,8,1,10,1,114,208,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1, - 0,0,0,67,0,0,0,115,8,0,0,0,124,0,97,0, - 100,0,83,0,114,69,0,0,0,41,1,114,159,0,0,0, - 41,1,218,17,95,98,111,111,116,115,116,114,97,112,95,109, - 111,100,117,108,101,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,218,21,95,115,101,116,95,98,111,111,116,115, - 116,114,97,112,95,109,111,100,117,108,101,140,6,0,0,115, - 2,0,0,0,8,2,114,118,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,118,1,0,0, - 114,208,0,0,0,114,15,0,0,0,114,85,1,0,0,114, - 191,0,0,0,114,96,1,0,0,114,110,1,0,0,218,9, - 109,101,116,97,95,112,97,116,104,114,61,0,0,0,114,79, - 1,0,0,41,2,114,117,1,0,0,90,17,115,117,112,112, - 111,114,116,101,100,95,108,111,97,100,101,114,115,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,218,8,95,105, - 110,115,116,97,108,108,145,6,0,0,115,8,0,0,0,8, - 2,6,1,20,1,16,1,114,120,1,0,0,41,1,114,87, - 0,0,0,114,69,0,0,0,41,3,78,78,78,41,2,114, - 0,0,0,0,114,0,0,0,0,41,1,84,41,85,114,152, - 0,0,0,114,159,0,0,0,114,187,0,0,0,114,91,0, - 0,0,114,15,0,0,0,114,99,0,0,0,114,184,0,0, - 0,114,25,0,0,0,114,231,0,0,0,90,2,110,116,114, - 18,0,0,0,114,215,0,0,0,90,5,112,111,115,105,120, - 114,50,0,0,0,218,3,97,108,108,114,59,0,0,0,114, - 136,0,0,0,114,57,0,0,0,114,62,0,0,0,90,20, - 95,112,97,116,104,115,101,112,115,95,119,105,116,104,95,99, - 111,108,111,110,114,28,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,27,0,0,0,114,29,0,0,0,114,21,0,0,0,114, - 36,0,0,0,114,42,0,0,0,114,45,0,0,0,114,67, - 0,0,0,114,74,0,0,0,114,75,0,0,0,114,79,0, - 0,0,114,80,0,0,0,114,83,0,0,0,114,86,0,0, - 0,114,95,0,0,0,218,4,116,121,112,101,218,8,95,95, - 99,111,100,101,95,95,114,186,0,0,0,114,34,0,0,0, - 114,172,0,0,0,114,33,0,0,0,114,39,0,0,0,114, - 8,1,0,0,114,116,0,0,0,114,112,0,0,0,114,127, - 0,0,0,114,61,0,0,0,114,116,1,0,0,114,232,0, - 0,0,114,113,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,121,0, - 0,0,114,128,0,0,0,114,135,0,0,0,114,137,0,0, - 0,114,139,0,0,0,114,160,0,0,0,114,167,0,0,0, - 114,176,0,0,0,114,180,0,0,0,114,182,0,0,0,114, - 189,0,0,0,114,194,0,0,0,114,195,0,0,0,114,200, - 0,0,0,218,6,111,98,106,101,99,116,114,209,0,0,0, - 114,213,0,0,0,114,214,0,0,0,114,235,0,0,0,114, - 249,0,0,0,114,11,1,0,0,114,34,1,0,0,114,41, - 1,0,0,114,30,1,0,0,114,47,1,0,0,114,75,1, - 0,0,114,79,1,0,0,114,96,1,0,0,114,115,1,0, - 0,114,208,0,0,0,114,118,1,0,0,114,120,1,0,0, - 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,218,8,60,109,111,100,117,108,101,62,1,0, - 0,0,115,180,0,0,0,4,0,4,22,8,3,8,1,8, - 1,8,1,8,1,10,3,4,1,8,1,10,1,8,2,4, - 3,10,1,6,2,22,2,8,1,8,1,10,1,14,1,4, - 4,4,1,2,1,2,1,4,255,8,4,6,16,8,3,8, - 5,8,5,4,6,10,1,8,30,8,6,8,8,8,10,8, - 9,8,5,4,7,10,1,8,8,10,5,10,22,0,127,16, - 30,12,1,4,2,4,1,6,2,4,1,10,1,8,2,6, - 2,8,2,16,2,8,71,8,40,8,19,8,12,8,12,8, - 31,8,20,8,33,8,28,10,24,10,13,10,10,8,11,6, - 14,4,3,2,1,12,255,14,73,14,67,16,30,0,127,14, - 17,18,50,18,45,18,25,14,53,14,69,14,49,0,127,14, - 32,0,127,10,30,8,23,8,11,12,5, + 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32, + 122,101,70,105,108,101,70,105,110,100,101,114,46,102,105,110, + 100,95,108,111,97,100,101,114,40,41,32,105,115,32,100,101, + 112,114,101,99,97,116,101,100,32,97,110,100,32,115,108,97, + 116,101,100,32,102,111,114,32,114,101,109,111,118,97,108,32, + 105,110,32,80,121,116,104,111,110,32,51,46,49,50,59,32, + 117,115,101,32,102,105,110,100,95,115,112,101,99,40,41,32, + 105,110,115,116,101,97,100,78,41,6,114,102,0,0,0,114, + 103,0,0,0,114,104,0,0,0,114,230,0,0,0,114,168, + 0,0,0,114,206,0,0,0,41,3,114,147,0,0,0,114, + 167,0,0,0,114,214,0,0,0,114,7,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,165,0,0,0,236,5,0, + 0,115,14,0,0,0,6,7,2,2,4,254,10,3,8,1, + 8,1,16,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,205,0,0,0,41,1,114,217, + 0,0,0,41,7,114,147,0,0,0,114,215,0,0,0,114, + 167,0,0,0,114,68,0,0,0,90,4,115,109,115,108,114, + 229,0,0,0,114,168,0,0,0,114,7,0,0,0,114,7, + 0,0,0,114,8,0,0,0,114,99,1,0,0,251,5,0, + 0,115,8,0,0,0,10,1,8,1,2,1,6,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,9,0,0,0,67,0,0,0,115,122, + 1,0,0,100,1,125,3,124,1,160,0,100,2,161,1,100, + 3,25,0,125,4,122,12,116,1,124,0,106,2,112,17,116, + 3,160,4,161,0,131,1,106,5,125,5,87,0,110,11,4, + 0,116,6,121,32,1,0,1,0,1,0,100,4,125,5,89, + 0,110,1,119,0,124,5,124,0,106,7,107,3,114,45,124, + 0,160,8,161,0,1,0,124,5,124,0,95,7,116,9,131, + 0,114,56,124,0,106,10,125,6,124,4,160,11,161,0,125, + 7,110,5,124,0,106,12,125,6,124,4,125,7,124,7,124, + 6,118,0,114,108,116,13,124,0,106,2,124,4,131,2,125, + 8,124,0,106,14,68,0,93,29,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,103,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,74,116,17,124,8,131,1,125,3,124,0,106,14,68, + 0,93,55,92,2,125,9,125,10,122,10,116,13,124,0,106, + 2,124,4,124,9,23,0,131,2,125,12,87,0,110,11,4, + 0,116,18,121,136,1,0,1,0,1,0,89,0,1,0,100, + 6,83,0,119,0,116,19,106,20,100,7,124,12,100,3,100, + 8,141,3,1,0,124,7,124,9,23,0,124,6,118,0,114, + 166,116,15,124,12,131,1,114,166,124,0,160,16,124,10,124, + 1,124,12,100,6,124,2,161,5,2,0,1,0,83,0,113, + 111,124,3,114,187,116,19,160,20,100,9,124,8,161,2,1, + 0,116,19,160,21,124,1,100,6,161,2,125,13,124,8,103, + 1,124,13,95,22,124,13,83,0,100,6,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,100,0,0,0,114,47,0,0,0,114,133,0,0,0, + 114,240,0,0,0,78,122,9,116,114,121,105,110,103,32,123, + 125,41,1,90,9,118,101,114,98,111,115,105,116,121,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,23,114,107,0,0,0, + 114,78,0,0,0,114,68,0,0,0,114,21,0,0,0,114, + 85,0,0,0,114,40,1,0,0,114,79,0,0,0,114,105, + 1,0,0,218,11,95,102,105,108,108,95,99,97,99,104,101, + 114,24,0,0,0,114,108,1,0,0,114,134,0,0,0,114, + 107,1,0,0,114,70,0,0,0,114,104,1,0,0,114,83, + 0,0,0,114,99,1,0,0,114,86,0,0,0,114,114,0, + 0,0,114,163,0,0,0,114,177,0,0,0,114,211,0,0, + 0,114,206,0,0,0,41,14,114,147,0,0,0,114,167,0, + 0,0,114,229,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,197,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,49,1,0,0,114,215,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,214,0,0,0, + 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, + 230,0,0,0,0,6,0,0,115,86,0,0,0,4,5,14, + 1,2,1,24,1,12,1,8,1,2,255,10,2,8,1,6, + 1,6,2,6,1,10,1,6,2,4,1,8,2,12,1,14, + 1,8,1,10,1,8,1,24,1,2,255,8,5,14,2,2, + 1,20,1,12,1,8,1,2,255,16,2,12,1,8,1,10, + 1,4,1,8,255,2,128,4,2,12,1,12,1,8,1,4, + 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,192,0,0,0,124,0,106,0,125,1,122,11,116, + 1,160,2,124,1,112,11,116,1,160,3,161,0,161,1,125, + 2,87,0,110,14,4,0,116,4,116,5,116,6,102,3,121, + 28,1,0,1,0,1,0,103,0,125,2,89,0,110,1,119, + 0,116,7,106,8,160,9,100,1,161,1,115,41,116,10,124, + 2,131,1,124,0,95,11,110,37,116,10,131,0,125,3,124, + 2,68,0,93,28,125,4,124,4,160,12,100,2,161,1,92, + 3,125,5,125,6,125,7,124,6,114,67,100,3,160,13,124, + 5,124,7,160,14,161,0,161,2,125,8,110,2,124,5,125, + 8,124,3,160,15,124,8,161,1,1,0,113,46,124,3,124, + 0,95,11,116,7,106,8,160,9,116,16,161,1,114,94,100, + 4,100,5,132,0,124,2,68,0,131,1,124,0,95,17,100, + 6,83,0,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, + 14,0,0,0,114,100,0,0,0,114,91,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,6,125,1,124,1,160,0,161,0,146,2,113,2,83,0, + 114,7,0,0,0,41,1,114,134,0,0,0,41,2,114,5, + 0,0,0,90,2,102,110,114,7,0,0,0,114,7,0,0, + 0,114,8,0,0,0,114,13,0,0,0,80,6,0,0,115, + 2,0,0,0,20,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,68,0,0,0,114,21,0,0,0,90,7, + 108,105,115,116,100,105,114,114,85,0,0,0,114,93,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,18,0,0,0,114,28,0,0,0, + 114,29,0,0,0,114,106,1,0,0,114,107,1,0,0,114, + 129,0,0,0,114,92,0,0,0,114,134,0,0,0,218,3, + 97,100,100,114,30,0,0,0,114,108,1,0,0,41,9,114, + 147,0,0,0,114,68,0,0,0,90,8,99,111,110,116,101, + 110,116,115,90,21,108,111,119,101,114,95,115,117,102,102,105, + 120,95,99,111,110,116,101,110,116,115,114,78,1,0,0,114, + 145,0,0,0,114,61,1,0,0,114,49,1,0,0,90,8, + 110,101,119,95,110,97,109,101,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,110,1,0,0,51,6,0,0, + 115,38,0,0,0,6,2,2,1,22,1,18,1,8,3,2, + 253,12,6,12,1,6,7,8,1,16,1,4,1,18,1,4, + 2,12,1,6,1,12,1,20,1,4,255,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,36,0,0,0,116,0,124,0, + 131,1,115,10,116,1,100,1,124,0,100,2,141,2,130,1, + 136,0,124,0,103,1,136,1,162,1,82,0,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,74,0,0,0,41,2,114,86,0,0,0,114,146,0, + 0,0,114,74,0,0,0,169,2,114,225,0,0,0,114,109, + 1,0,0,114,7,0,0,0,114,8,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,92,6,0,0,115,6,0,0,0, + 8,2,12,1,16,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,7, + 0,0,0,41,3,114,225,0,0,0,114,109,1,0,0,114, + 115,1,0,0,114,7,0,0,0,114,114,1,0,0,114,8, + 0,0,0,218,9,112,97,116,104,95,104,111,111,107,82,6, + 0,0,115,4,0,0,0,14,10,4,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,114,75,1,0,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,92,0,0,0,114,68,0,0,0, + 114,25,1,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,76,1,0,0,100,6,0,0,114,69,1, + 0,0,122,19,70,105,108,101,70,105,110,100,101,114,46,95, + 95,114,101,112,114,95,95,114,72,0,0,0,41,15,114,154, + 0,0,0,114,153,0,0,0,114,155,0,0,0,114,156,0, + 0,0,114,240,0,0,0,114,86,1,0,0,114,171,0,0, + 0,114,233,0,0,0,114,165,0,0,0,114,99,1,0,0, + 114,230,0,0,0,114,110,1,0,0,114,238,0,0,0,114, + 116,1,0,0,114,76,1,0,0,114,7,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,102,1, + 0,0,205,5,0,0,115,24,0,0,0,8,0,4,2,8, + 7,8,16,4,4,8,2,8,15,10,5,8,51,2,31,10, + 1,12,17,114,102,1,0,0,99,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0, + 0,115,44,0,0,0,101,0,90,1,100,0,90,2,100,1, + 90,3,135,0,102,1,100,2,100,3,132,8,90,4,135,0, + 102,1,100,4,100,5,132,8,90,5,135,0,4,0,90,6, + 83,0,41,6,218,20,65,112,112,108,101,70,114,97,109,101, + 119,111,114,107,76,111,97,100,101,114,97,234,3,0,0,65, + 32,108,111,97,100,101,114,32,102,111,114,32,109,111,100,117, + 108,101,115,32,116,104,97,116,32,104,97,118,101,32,98,101, + 101,110,32,112,97,99,107,97,103,101,100,32,97,115,32,65, + 112,112,108,101,32,70,114,97,109,101,119,111,114,107,115,32, + 102,111,114,10,32,32,32,32,99,111,109,112,97,116,105,98, + 105,108,105,116,121,32,119,105,116,104,32,65,112,112,108,101, + 39,115,32,65,112,112,32,83,116,111,114,101,32,112,111,108, + 105,99,105,101,115,46,10,10,32,32,32,32,70,111,114,32, + 99,111,109,112,97,116,105,98,105,108,105,116,121,32,119,105, + 116,104,32,116,104,101,32,65,112,112,32,83,116,111,114,101, + 44,32,42,97,108,108,42,32,98,105,110,97,114,121,32,109, + 111,100,117,108,101,115,32,109,117,115,116,32,98,101,32,105, + 110,32,46,100,121,108,105,98,115,44,10,32,32,32,32,99, + 111,110,116,97,105,110,101,100,32,105,110,32,97,32,70,114, + 97,109,101,119,111,114,107,44,32,105,110,32,116,104,101,32, + 96,96,70,114,97,109,101,119,111,114,107,115,96,96,32,102, + 111,108,100,101,114,32,111,102,32,116,104,101,32,112,97,99, + 107,97,103,101,100,32,97,112,112,46,32,73,102,10,32,32, + 32,32,121,111,117,39,114,101,32,116,114,121,105,110,103,32, + 116,111,32,114,117,110,32,34,102,114,111,109,32,102,111,111, + 32,105,109,112,111,114,116,32,95,98,97,114,34,44,32,97, + 110,100,32,95,98,97,114,32,105,115,32,105,109,112,108,101, + 109,101,110,116,101,100,32,119,105,116,104,32,116,104,101,32, + 98,105,110,97,114,121,10,32,32,32,32,109,111,100,117,108, + 101,32,34,102,111,111,47,95,98,97,114,46,97,98,105,51, + 46,100,121,108,105,98,34,32,40,111,114,32,97,110,121,32, + 111,116,104,101,114,32,46,100,121,108,105,98,32,101,120,116, + 101,110,115,105,111,110,41,44,32,116,104,105,115,32,108,111, + 97,100,101,114,32,119,105,108,108,32,108,111,111,107,10,32, + 32,32,32,102,111,114,32,34,123,115,121,115,46,101,120,101, + 99,117,116,97,98,108,101,125,47,70,114,97,109,101,119,111, + 114,107,115,47,102,111,111,95,95,98,97,114,46,102,114,97, + 109,101,119,111,114,107,47,95,98,97,114,46,97,98,105,51, + 46,100,121,108,105,98,34,32,40,102,111,114,109,105,110,103, + 32,116,104,101,10,32,32,32,32,112,97,99,107,97,103,101, + 32,110,97,109,101,32,98,121,32,116,97,107,105,110,103,32, + 116,104,101,32,102,117,108,108,32,112,97,116,104,32,111,102, + 32,116,104,101,32,108,105,98,114,97,114,121,44,32,97,110, + 100,32,114,101,112,108,97,99,105,110,103,32,96,96,47,96, + 96,32,119,105,116,104,10,32,32,32,32,96,96,95,96,96, + 41,46,32,84,104,101,32,97,112,112,32,112,97,99,107,97, + 103,105,110,103,32,116,111,111,108,32,105,115,32,114,101,115, + 112,111,110,115,105,98,108,101,32,102,111,114,32,112,117,116, + 116,105,110,103,32,116,104,101,32,108,105,98,114,97,114,121, + 32,105,110,32,116,104,105,115,10,32,32,32,32,108,111,99, + 97,116,105,111,110,46,10,10,32,32,32,32,72,111,119,101, + 118,101,114,44,32,116,104,101,32,96,96,95,95,102,105,108, + 101,95,95,96,96,32,97,116,116,114,105,98,117,116,101,32, + 111,102,32,116,104,101,32,95,98,97,114,32,109,111,100,117, + 108,101,32,119,105,108,108,32,114,101,112,111,114,116,32,97, + 115,32,116,104,101,32,111,114,105,103,105,110,97,108,10,32, + 32,32,32,108,111,99,97,116,105,111,110,32,105,110,115,105, + 100,101,32,116,104,101,32,96,96,102,111,111,96,96,32,100, + 105,114,101,99,116,111,114,121,46,32,84,104,105,115,32,115, + 111,32,116,104,97,116,32,99,111,100,101,32,116,104,97,116, + 32,100,101,112,101,110,100,115,32,111,110,32,119,97,108,107, + 105,110,103,10,32,32,32,32,100,105,114,101,99,116,111,114, + 121,32,116,114,101,101,115,32,119,105,108,108,32,99,111,110, + 116,105,110,117,101,32,116,111,32,119,111,114,107,32,97,115, + 32,101,120,112,101,99,116,101,100,32,98,97,115,101,100,32, + 111,110,32,116,104,101,32,42,111,114,105,103,105,110,97,108, + 42,32,102,105,108,101,10,32,32,32,32,108,111,99,97,116, + 105,111,110,46,10,32,32,32,32,99,4,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,4,0,0,0,3,0, + 0,0,115,24,0,0,0,116,0,131,0,160,1,124,1,124, + 2,161,2,1,0,124,3,124,0,95,2,100,0,83,0,114, + 72,0,0,0,41,3,114,28,1,0,0,114,240,0,0,0, + 218,12,112,97,114,101,110,116,95,112,97,116,104,115,41,4, + 114,147,0,0,0,114,167,0,0,0,218,10,100,121,108,105, + 98,95,102,105,108,101,114,68,0,0,0,114,29,1,0,0, + 114,7,0,0,0,114,8,0,0,0,114,240,0,0,0,122, + 6,0,0,115,4,0,0,0,14,1,10,1,122,29,65,112, + 112,108,101,70,114,97,109,101,119,111,114,107,76,111,97,100, + 101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0, + 3,0,0,0,115,66,0,0,0,116,0,131,0,160,1,124, + 1,161,1,125,2,124,0,106,2,114,31,124,0,106,2,68, + 0,93,18,125,3,116,3,124,3,131,1,114,30,116,4,124, + 3,116,5,124,0,106,6,131,1,100,1,25,0,131,2,124, + 2,95,7,113,12,113,12,124,2,83,0,41,2,78,114,133, + 0,0,0,41,8,114,28,1,0,0,114,243,0,0,0,114, + 118,1,0,0,114,86,0,0,0,114,70,0,0,0,114,77, + 0,0,0,114,68,0,0,0,218,8,95,95,102,105,108,101, + 95,95,41,4,114,147,0,0,0,114,214,0,0,0,90,3, + 109,111,100,114,64,1,0,0,114,29,1,0,0,114,7,0, + 0,0,114,8,0,0,0,114,243,0,0,0,126,6,0,0, + 115,16,0,0,0,12,1,6,1,10,1,8,1,22,1,2, + 1,2,254,4,3,122,34,65,112,112,108,101,70,114,97,109, + 101,119,111,114,107,76,111,97,100,101,114,46,99,114,101,97, + 116,101,95,109,111,100,117,108,101,41,7,114,154,0,0,0, + 114,153,0,0,0,114,155,0,0,0,114,156,0,0,0,114, + 240,0,0,0,114,243,0,0,0,114,38,1,0,0,114,7, + 0,0,0,114,7,0,0,0,114,29,1,0,0,114,8,0, + 0,0,114,117,1,0,0,104,6,0,0,115,8,0,0,0, + 8,0,4,1,12,17,20,4,114,117,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,34,0,0,0,101,0,90,1,100, + 0,90,2,100,1,90,3,100,2,100,3,132,0,90,4,100, + 7,100,5,100,6,132,1,90,5,100,4,83,0,41,8,218, + 20,65,112,112,108,101,70,114,97,109,101,119,111,114,107,70, + 105,110,100,101,114,122,167,65,32,102,105,110,100,101,114,32, + 102,111,114,32,109,111,100,117,108,101,115,32,116,104,97,116, + 32,104,97,118,101,32,98,101,101,110,32,112,97,99,107,97, + 103,101,100,32,97,115,32,65,112,112,108,101,32,70,114,97, + 109,101,119,111,114,107,115,10,32,32,32,32,102,111,114,32, + 99,111,109,112,97,116,105,98,105,108,105,116,121,32,119,105, + 116,104,32,65,112,112,108,101,39,115,32,65,112,112,32,83, + 116,111,114,101,32,112,111,108,105,99,105,101,115,46,10,10, + 32,32,32,32,83,101,101,32,65,112,112,108,101,70,114,97, + 109,101,119,111,114,107,76,111,97,100,101,114,32,102,111,114, + 32,100,101,116,97,105,108,115,46,10,32,32,32,32,99,2, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2, + 0,0,0,67,0,0,0,115,10,0,0,0,124,1,124,0, + 95,0,100,0,83,0,114,72,0,0,0,41,1,218,15,102, + 114,97,109,101,119,111,114,107,115,95,112,97,116,104,114,254, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,240,0,0,0,142,6,0,0,115,2,0,0,0, + 10,1,122,29,65,112,112,108,101,70,114,97,109,101,119,111, + 114,107,70,105,110,100,101,114,46,95,95,105,110,105,116,95, + 95,78,99,4,0,0,0,0,0,0,0,0,0,0,0,8, + 0,0,0,6,0,0,0,67,0,0,0,115,104,0,0,0, + 124,1,160,0,100,1,161,1,100,2,25,0,125,4,116,1, + 68,0,93,40,125,5,116,2,124,0,106,3,124,1,155,0, + 100,3,157,2,124,4,155,0,124,5,155,0,157,2,131,3, + 125,6,116,4,160,5,100,4,124,6,161,2,1,0,116,6, + 124,6,131,1,114,49,116,7,124,1,124,6,124,2,131,3, + 125,7,116,4,160,8,124,1,124,7,161,2,2,0,1,0, + 83,0,113,9,100,0,83,0,41,5,78,114,100,0,0,0, + 114,133,0,0,0,122,10,46,102,114,97,109,101,119,111,114, + 107,122,36,76,111,111,107,105,110,103,32,102,111,114,32,65, + 112,112,108,101,32,70,114,97,109,101,119,111,114,107,32,100, + 121,108,105,98,32,123,125,41,9,218,5,115,112,108,105,116, + 114,236,0,0,0,114,70,0,0,0,114,122,1,0,0,114, + 163,0,0,0,114,177,0,0,0,114,83,0,0,0,114,117, + 1,0,0,114,228,0,0,0,41,8,114,147,0,0,0,114, + 167,0,0,0,114,68,0,0,0,114,229,0,0,0,114,145, + 0,0,0,114,137,0,0,0,114,119,1,0,0,114,168,0, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,230,0,0,0,145,6,0,0,115,18,0,0,0,14, + 1,8,2,28,1,12,1,8,1,12,1,16,1,2,254,4, + 4,122,30,65,112,112,108,101,70,114,97,109,101,119,111,114, + 107,70,105,110,100,101,114,46,102,105,110,100,95,115,112,101, + 99,114,72,0,0,0,41,6,114,154,0,0,0,114,153,0, + 0,0,114,155,0,0,0,114,156,0,0,0,114,240,0,0, + 0,114,230,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,121,1,0,0,136, + 6,0,0,115,8,0,0,0,8,0,4,1,8,5,14,3, + 114,121,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,144, + 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,33,124,5,114,18,124, + 5,106,1,125,4,110,15,124,2,124,3,107,2,114,28,116, + 2,124,1,124,2,131,2,125,4,110,5,116,3,124,1,124, + 2,131,2,125,4,124,5,115,42,116,4,124,1,124,2,124, + 4,100,3,141,3,125,5,122,19,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,100,0,83,0,4, + 0,116,5,121,71,1,0,1,0,1,0,89,0,100,0,83, + 0,119,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,103,1,0, + 0,114,120,1,0,0,90,10,95,95,99,97,99,104,101,100, + 95,95,41,6,218,3,103,101,116,114,168,0,0,0,114,46, + 1,0,0,114,39,1,0,0,114,217,0,0,0,218,9,69, + 120,99,101,112,116,105,111,110,41,6,90,2,110,115,114,145, + 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,168,0,0,0,114,214,0, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,218,14,95,102,105,120,95,117,112,95,109,111,100,117,108, + 101,159,6,0,0,115,36,0,0,0,10,2,10,1,4,1, + 4,1,8,1,8,1,12,1,10,2,4,1,14,1,2,1, + 8,1,8,1,8,1,14,1,12,1,6,2,2,254,114,128, + 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,34,1,0, + 0,114,191,0,0,0,218,18,101,120,116,101,110,115,105,111, + 110,95,115,117,102,102,105,120,101,115,114,39,1,0,0,114, + 130,0,0,0,114,46,1,0,0,114,116,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,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,212,0, + 0,0,182,6,0,0,115,8,0,0,0,12,5,8,1,8, + 1,10,1,114,212,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,1,0,0,0,67,0,0, + 0,115,8,0,0,0,124,0,97,0,100,0,83,0,114,72, + 0,0,0,41,1,114,163,0,0,0,41,1,218,17,95,98, + 111,111,116,115,116,114,97,112,95,109,111,100,117,108,101,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,21, + 95,115,101,116,95,98,111,111,116,115,116,114,97,112,95,109, + 111,100,117,108,101,193,6,0,0,115,2,0,0,0,8,2, + 114,131,1,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,4,0,0,0,67,0,0,0,115,112, + 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,116,2,106,10,100,1,118,0,114,54,116,11,116,12,116, + 2,106,13,131,1,100,2,25,0,100,3,131,2,125,2,116, + 14,160,15,100,4,124,2,161,2,1,0,116,2,106,7,160, + 8,116,16,124,2,131,1,161,1,1,0,100,5,83,0,100, + 5,83,0,41,6,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, + 62,3,0,0,0,114,17,0,0,0,114,16,0,0,0,114, + 15,0,0,0,114,0,0,0,0,90,10,70,114,97,109,101, + 119,111,114,107,115,122,41,65,100,100,105,110,103,32,65,112, + 112,108,101,32,70,114,97,109,101,119,111,114,107,32,100,121, + 108,105,98,32,102,105,110,100,101,114,32,97,116,32,123,125, + 78,41,17,114,131,1,0,0,114,212,0,0,0,114,18,0, + 0,0,114,91,1,0,0,114,195,0,0,0,114,102,1,0, + 0,114,116,1,0,0,218,9,109,101,116,97,95,112,97,116, + 104,114,64,0,0,0,114,85,1,0,0,114,28,0,0,0, + 114,70,0,0,0,114,77,0,0,0,90,10,101,120,101,99, + 117,116,97,98,108,101,114,163,0,0,0,114,177,0,0,0, + 114,121,1,0,0,41,3,114,130,1,0,0,90,17,115,117, + 112,112,111,114,116,101,100,95,108,111,97,100,101,114,115,90, + 17,102,114,97,109,101,119,111,114,107,115,95,102,111,108,100, + 101,114,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,218,8,95,105,110,115,116,97,108,108,198,6,0,0,115, + 18,0,0,0,8,2,6,1,20,1,12,1,10,1,20,1, + 12,1,20,1,4,253,114,133,1,0,0,41,1,114,90,0, + 0,0,114,72,0,0,0,41,3,78,78,78,41,2,114,0, + 0,0,0,114,0,0,0,0,41,1,84,41,87,114,156,0, + 0,0,114,163,0,0,0,114,191,0,0,0,114,94,0,0, + 0,114,18,0,0,0,114,102,0,0,0,114,188,0,0,0, + 114,28,0,0,0,114,235,0,0,0,90,2,110,116,114,21, + 0,0,0,114,219,0,0,0,90,5,112,111,115,105,120,114, + 53,0,0,0,218,3,97,108,108,114,62,0,0,0,114,140, + 0,0,0,114,60,0,0,0,114,65,0,0,0,90,20,95, + 112,97,116,104,115,101,112,115,95,119,105,116,104,95,99,111, + 108,111,110,114,31,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, + 30,0,0,0,114,32,0,0,0,114,24,0,0,0,114,39, + 0,0,0,114,45,0,0,0,114,48,0,0,0,114,70,0, + 0,0,114,77,0,0,0,114,78,0,0,0,114,82,0,0, + 0,114,83,0,0,0,114,86,0,0,0,114,89,0,0,0, + 114,98,0,0,0,218,4,116,121,112,101,218,8,95,95,99, + 111,100,101,95,95,114,190,0,0,0,114,37,0,0,0,114, + 176,0,0,0,114,36,0,0,0,114,42,0,0,0,114,12, + 1,0,0,114,119,0,0,0,114,115,0,0,0,114,130,0, + 0,0,114,64,0,0,0,114,129,1,0,0,114,236,0,0, + 0,114,116,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,124,0,0, + 0,114,131,0,0,0,114,139,0,0,0,114,141,0,0,0, + 114,143,0,0,0,114,164,0,0,0,114,171,0,0,0,114, + 180,0,0,0,114,184,0,0,0,114,186,0,0,0,114,193, + 0,0,0,114,198,0,0,0,114,199,0,0,0,114,204,0, + 0,0,218,6,111,98,106,101,99,116,114,213,0,0,0,114, + 217,0,0,0,114,218,0,0,0,114,239,0,0,0,114,253, + 0,0,0,114,15,1,0,0,114,39,1,0,0,114,46,1, + 0,0,114,34,1,0,0,114,52,1,0,0,114,81,1,0, + 0,114,85,1,0,0,114,102,1,0,0,114,117,1,0,0, + 114,121,1,0,0,114,128,1,0,0,114,212,0,0,0,114, + 131,1,0,0,114,133,1,0,0,114,7,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,218,8,60, + 109,111,100,117,108,101,62,1,0,0,0,115,184,0,0,0, + 4,0,4,22,8,3,8,1,8,1,8,1,8,1,10,3, + 4,1,8,1,10,1,8,2,4,3,10,1,6,2,22,2, + 8,1,8,1,10,1,14,1,4,4,4,1,2,1,2,1, + 4,255,8,4,6,16,8,3,8,5,8,5,4,6,10,1, + 8,30,8,6,8,8,8,10,8,9,8,5,4,7,10,1, + 8,8,10,5,10,22,0,127,16,30,12,1,4,2,4,1, + 6,2,4,1,10,1,8,2,6,2,8,2,16,2,8,71, + 8,40,8,19,8,12,8,12,8,31,8,20,8,33,8,28, + 10,24,10,13,10,10,8,11,6,14,4,3,2,1,12,255, + 14,73,14,67,16,30,0,127,14,17,18,50,18,45,18,25, + 14,53,14,69,14,49,0,127,14,32,0,127,16,28,14,32, + 10,23,8,23,8,11,12,5, }; diff --git a/Python/marshal.c b/Python/marshal.c index 67540e08ed..035948a866 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -14,6 +14,10 @@ #include "marshal.h" #include "pycore_hashtable.h" +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + /*[clinic input] module marshal [clinic start generated code]*/ @@ -33,9 +37,13 @@ * #if defined(MS_WINDOWS) && defined(_DEBUG) */ #if defined(MS_WINDOWS) -#define MAX_MARSHAL_STACK_DEPTH 1000 +# define MAX_MARSHAL_STACK_DEPTH 1000 #else -#define MAX_MARSHAL_STACK_DEPTH 2000 +# if TARGET_OS_IPHONE +# define MAX_MARSHAL_STACK_DEPTH 1500 +# else +# define MAX_MARSHAL_STACK_DEPTH 2000 +# endif #endif #define TYPE_NULL '0' diff --git a/Python/sysmodule.c b/Python/sysmodule.c index e740cf933d..080eee2659 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -45,6 +45,10 @@ extern const char *PyWin_DLLVersionString; #endif +#if defined(__APPLE__) +#include "TargetConditionals.h" +#endif + /*[clinic input] module sys [clinic start generated code]*/ @@ -2762,6 +2766,15 @@ goto error; #endif +#if TARGET_OS_IPHONE +# if TARGET_OS_SIMULATOR + res = PyDict_SetItemString(impl_info, "_simulator", Py_True); +# else + res = PyDict_SetItemString(impl_info, "_simulator", Py_False); +# endif + if (res < 0) + goto error; +#endif /* dict ready */ ns = _PyNamespace_New(impl_info); diff --git a/aclocal.m4 b/aclocal.m4 index 2f1bd37528..a63e6654da 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.3 -*- Autoconf -*- +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -184,7 +184,7 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 10 +#serial 11 AU_ALIAS([CHECK_SSL], [AX_CHECK_OPENSSL]) AC_DEFUN([AX_CHECK_OPENSSL], [ @@ -227,7 +227,7 @@ if ! $found; then OPENSSL_INCLUDES= for ssldir in $ssldirs; do - AC_MSG_CHECKING([for openssl/ssl.h in $ssldir]) + AC_MSG_CHECKING([for include/openssl/ssl.h in $ssldir]) if test -f "$ssldir/include/openssl/ssl.h"; then OPENSSL_INCLUDES="-I$ssldir/include" OPENSSL_LDFLAGS="-L$ssldir/lib" @@ -276,7 +276,7 @@ ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 11 (pkg-config-0.29.1) +# serial 12 (pkg-config-0.29.2) dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson @@ -318,7 +318,7 @@ dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29.1]) +[m4_define([PKG_MACROS_VERSION], [0.29.2]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ @@ -419,7 +419,7 @@ AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no -AC_MSG_CHECKING([for $1]) +AC_MSG_CHECKING([for $2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) @@ -429,11 +429,11 @@ See the pkg-config man page for more details.]) if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else + else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs @@ -450,7 +450,7 @@ _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full @@ -551,71 +551,3 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR -dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, -dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], -dnl [DESCRIPTION], [DEFAULT]) -dnl ------------------------------------------ -dnl -dnl Prepare a "--with-" configure option using the lowercase -dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and -dnl PKG_CHECK_MODULES in a single macro. -AC_DEFUN([PKG_WITH_MODULES], -[ -m4_pushdef([with_arg], m4_tolower([$1])) - -m4_pushdef([description], - [m4_default([$5], [build with ]with_arg[ support])]) - -m4_pushdef([def_arg], [m4_default([$6], [auto])]) -m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) -m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) - -m4_case(def_arg, - [yes],[m4_pushdef([with_without], [--without-]with_arg)], - [m4_pushdef([with_without],[--with-]with_arg)]) - -AC_ARG_WITH(with_arg, - AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, - [AS_TR_SH([with_]with_arg)=def_arg]) - -AS_CASE([$AS_TR_SH([with_]with_arg)], - [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], - [auto],[PKG_CHECK_MODULES([$1],[$2], - [m4_n([def_action_if_found]) $3], - [m4_n([def_action_if_not_found]) $4])]) - -m4_popdef([with_arg]) -m4_popdef([description]) -m4_popdef([def_arg]) - -])dnl PKG_WITH_MODULES - -dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, -dnl [DESCRIPTION], [DEFAULT]) -dnl ----------------------------------------------- -dnl -dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES -dnl check._[VARIABLE-PREFIX] is exported as make variable. -AC_DEFUN([PKG_HAVE_WITH_MODULES], -[ -PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) - -AM_CONDITIONAL([HAVE_][$1], - [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) -])dnl PKG_HAVE_WITH_MODULES - -dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, -dnl [DESCRIPTION], [DEFAULT]) -dnl ------------------------------------------------------ -dnl -dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after -dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make -dnl and preprocessor variable. -AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], -[ -PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) - -AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], - [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) -])dnl PKG_HAVE_DEFINE_WITH_MODULES - diff --git a/config.sub b/config.sub index d74fb6deac..09ebc4287c 100755 --- a/config.sub +++ b/config.sub @@ -1121,7 +1121,7 @@ xscale-* | xscalee[bl]-*) cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; - arm64-*) + arm64-* | arm64_32-*) cpu=aarch64 ;; @@ -1723,7 +1723,7 @@ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ | hiux* | abug | nacl* | netware* | windows* \ - | os9* | macos* | osx* | ios* \ + | os9* | macos* | osx* | ios* | tvos* | watchos* \ | mpw* | magic* | mmixware* | mon960* | lnews* \ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ | aos* | aros* | cloudabi* | sortix* | twizzler* \ @@ -1786,6 +1786,8 @@ ;; *-eabi* | *-gnueabi*) ;; + ios*-simulator | tvos*-simulator | watchos*-simulator) + ;; -*) # Blank kernel with real OS is always fine. ;; diff --git a/configure b/configure index 4b71c4e00f..6b35a5cd21 100755 --- a/configure +++ b/configure @@ -660,6 +660,8 @@ DTRACE TCLTK_LIBS TCLTK_INCLUDES +LIBFFI_LIB +LIBFFI_LIBDIR LIBFFI_INCLUDEDIR PKG_CONFIG_LIBDIR PKG_CONFIG_PATH @@ -793,7 +795,6 @@ docdir oldincludedir includedir -runstatedir localstatedir sharedstatedir sysconfdir @@ -917,7 +918,6 @@ sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1170,15 +1170,6 @@ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1316,7 +1307,7 @@ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir + libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1469,7 +1460,6 @@ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -3344,6 +3334,15 @@ *-*-cygwin*) ac_sys_system=Cygwin ;; + *-apple-ios*) + ac_sys_system=iOS + ;; + *-apple-tvos*) + ac_sys_system=tvOS + ;; + *-apple-watchos*) + ac_sys_system=watchOS + ;; *-*-vxworks*) ac_sys_system=VxWorks ;; @@ -3385,24 +3384,93 @@ *-*-linux*) case "$host_cpu" in arm*) - _host_cpu=arm + _host_ident=arm ;; *) - _host_cpu=$host_cpu + _host_ident=$host_cpu esac ;; *-*-cygwin*) - _host_cpu= + _host_ident= + ;; + *-apple-ios*-simulator) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-iphonesimulator-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-iphonesimulator-$host_cpu + esac + ;; + *-apple-ios*) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-iphoneos-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-iphoneos-$host_cpu + esac + ;; + *-apple-tvos*-simulator) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-appletvsimulator-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-appletvsimulator-$host_cpu + esac + ;; + *-apple-tvos*) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-appletvos-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-appletvos-$host_cpu + esac + ;; + *-apple-watchos*-simulator) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-watchsimualtor-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-watchsimualtor-$host_cpu + esac + ;; + *-apple-watchos*) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-watchosos-arm64_32 + ;; + *) + _host_ident=${_host_os_min_version:3}-watchosos-$host_cpu + esac + ;; + *-apple-*) + case "$host_cpu" in + arm*) + _host_ident=arm + ;; + *) + _host_ident=$host_cpu + esac ;; *-*-vxworks*) - _host_cpu=$host_cpu + _host_ident=$host_cpu ;; *) # for now, limit cross builds to known configurations MACHDEP="unknown" as_fn_error $? "cross build not supported for $host" "$LINENO" 5 esac - _PYTHON_HOST_PLATFORM="$MACHDEP${_host_cpu:+-$_host_cpu}" + _PYTHON_HOST_PLATFORM="$MACHDEP${_host_ident:+-$_host_ident}" fi # Some systems cannot stand _XOPEN_SOURCE being defined at all; they @@ -3469,6 +3537,13 @@ define_xopen_source=no;; Darwin/[12][0-9].*) define_xopen_source=no;; + # On iOS, defining _POSIX_C_SOURCE also disables platform specific features. + iOS/*) + define_xopen_source=no;; + tvOS/*) + define_xopen_source=no;; + watchOS/*) + define_xopen_source=no;; # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from # defining NI_NUMERICHOST. QNX/6.3.2) @@ -5365,7 +5440,42 @@ #elif defined(__gnu_hurd__) i386-gnu #elif defined(__APPLE__) - darwin +# include "TargetConditionals.h" +# if TARGET_OS_IOS +# if TARGET_OS_SIMULATOR +# if __x86_64__ + iphonesimulator-x86_64 +# else + iphonesimulator-arm64 +# endif +# else + iphoneos-arm64 +# endif +# elif TARGET_OS_TV +# if TARGET_OS_SIMULATOR +# if __x86_64__ + appletvsimulator-x86_64 +# else + appletvsimulator-arm64 +# endif +# else + appletvos-arm64 +# endif +# elif TARGET_OS_WATCH +# if TARGET_OS_SIMULATOR +# if __x86_64__ + watchsimulator-x86_64 +# else + watchsimulator-arm64 +# endif +# else + watchos-arm64_32 +# endif +# elif TARGET_OS_OSX + darwin +# else +# error unknown Apple platform +# endif #elif defined(__VXWORKS__) vxworks #else @@ -5389,6 +5499,12 @@ case $ac_sys_system in #( Darwin*) : MULTIARCH="" ;; #( + iOS) : + MULTIARCH="" ;; #( + tvOS) : + MULTIARCH="" ;; #( + watchOS) : + MULTIARCH="" ;; #( FreeBSD*) : MULTIARCH="" ;; #( *) : @@ -5396,8 +5512,6 @@ ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MULTIARCH" >&5 -$as_echo "$MULTIARCH" >&6; } if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then if test x$PLATFORM_TRIPLET != x$MULTIARCH; then @@ -5407,6 +5521,16 @@ MULTIARCH=$PLATFORM_TRIPLET fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MULTIARCH" >&5 +$as_echo "$MULTIARCH" >&6; } + +case $ac_sys_system in #( + iOS|tvOS|watchOS) : + SOABI_PLATFORM=`echo "$PLATFORM_TRIPLET" | cut -d '-' -f1` ;; #( + *) : + SOABI_PLATFORM=$PLATFORM_TRIPLET + ;; +esac if test x$MULTIARCH != x; then MULTIARCH_CPPFLAGS="-DMULTIARCH=\\\"$MULTIARCH\\\"" @@ -6249,11 +6373,23 @@ fi if test "$cross_compiling" = yes; then - case "$READELF" in - readelf|:) - as_fn_error $? "readelf for the host is required for cross builds" "$LINENO" 5 - ;; - esac + case "$host" in + *-apple-ios*) + # readelf not required for iOS cross builds. + ;; + *-apple-tvos*) + # readelf not required for tvOS cross builds. + ;; + *-apple-watchos*) + # readelf not required for watchOS cross builds. + ;; + *) + case "$READELF" in + readelf|:) + as_fn_error $? "readelf for the host is required for cross builds" "$LINENO" 5 + ;; + esac + esac fi @@ -9705,6 +9841,7 @@ esac ;; CYGWIN*) SHLIB_SUFFIX=.dll;; + iOS|tvOS|watchOS) SHLIB_SUFFIX=.dylib;; *) SHLIB_SUFFIX=.so;; esac fi @@ -9787,6 +9924,10 @@ BLDSHARED="$LDSHARED" fi ;; + iOS/*|tvOS/*|watchOS/*) + LDSHARED='$(CC) -dynamiclib -undefined dynamic_lookup' + LDCXXSHARED='$(CXX) -dynamiclib -undefined dynamic_lookup' + ;; Linux*|GNU*|QNX*|VxWorks*) LDSHARED='$(CC) -shared' LDCXXSHARED='$(CXX) -shared';; @@ -10811,23 +10952,35 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_ffi" >&5 $as_echo "$with_system_ffi" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - if test "$with_system_ffi" != "" + if test "$ac_sys_system" = "iOS" || test "$ac_sys_system" = "tvOS" || test "$ac_sys_system" = "watchOS" then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with(out)-system-ffi is ignored on this platform" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using user-provided libffi configuration" >&5 +$as_echo "$as_me: WARNING: Using user-provided libffi configuration" >&2;} + LIBFFI_LIBDIR="${LIBFFI_LIBDIR}" + LIBFFI_LIB="${LIBFFI_LIB}" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test "$with_system_ffi" != "" + then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with(out)-system-ffi is ignored on this platform" >&5 $as_echo "$as_me: WARNING: --with(out)-system-ffi is ignored on this platform" >&2;} + fi + with_system_ffi="yes" fi - with_system_ffi="yes" fi if test "$with_system_ffi" = "yes" && test -n "$PKG_CONFIG"; then LIBFFI_INCLUDEDIR="`"$PKG_CONFIG" libffi --cflags-only-I 2>/dev/null | sed -e 's/^-I//;s/ *$//'`" else - LIBFFI_INCLUDEDIR="" + LIBFFI_INCLUDEDIR="${LIBFFI_INCLUDEDIR}" fi + + # Check for use of the system libmpdec library { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-libmpdec" >&5 $as_echo_n "checking for --with-system-libmpdec... " >&6; } @@ -15617,7 +15770,7 @@ $as_echo "$ABIFLAGS" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5 $as_echo_n "checking SOABI... " >&6; } -SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} +SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${SOABI_PLATFORM:+-$SOABI_PLATFORM} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 $as_echo "$SOABI" >&6; } @@ -15625,7 +15778,7 @@ if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; then # Similar to SOABI but remove "d" flag from ABIFLAGS - ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} + ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${SOABI_PLATFORM:+-$SOABI_PLATFORM} cat >>confdefs.h <<_ACEOF #define ALT_SOABI "${ALT_SOABI}" @@ -17746,8 +17899,8 @@ if ! $found; then OPENSSL_INCLUDES= for ssldir in $ssldirs; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl/ssl.h in $ssldir" >&5 -$as_echo_n "checking for openssl/ssl.h in $ssldir... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for include/openssl/ssl.h in $ssldir" >&5 +$as_echo_n "checking for include/openssl/ssl.h in $ssldir... " >&6; } if test -f "$ssldir/include/openssl/ssl.h"; then OPENSSL_INCLUDES="-I$ssldir/include" OPENSSL_LDFLAGS="-L$ssldir/lib" @@ -19371,7 +19524,7 @@ echo "creating Modules/Setup.local" >&6 if test ! -f Modules/Setup.local then - echo "# Edit this file for local setup changes" >Modules/Setup.local + echo "# Edit this file for local setup changes" >Modules/Setup.local fi echo "creating Makefile" >&6 diff --git a/configure.ac b/configure.ac index ac3be3850a..e0a1d1b219 100644 --- a/configure.ac +++ b/configure.ac @@ -400,6 +400,15 @@ *-*-cygwin*) ac_sys_system=Cygwin ;; + *-apple-ios*) + ac_sys_system=iOS + ;; + *-apple-tvos*) + ac_sys_system=tvOS + ;; + *-apple-watchos*) + ac_sys_system=watchOS + ;; *-*-vxworks*) ac_sys_system=VxWorks ;; @@ -440,24 +449,93 @@ *-*-linux*) case "$host_cpu" in arm*) - _host_cpu=arm + _host_ident=arm ;; *) - _host_cpu=$host_cpu + _host_ident=$host_cpu esac ;; *-*-cygwin*) - _host_cpu= + _host_ident= + ;; + *-apple-ios*-simulator) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-iphonesimulator-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-iphonesimulator-$host_cpu + esac + ;; + *-apple-ios*) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-iphoneos-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-iphoneos-$host_cpu + esac + ;; + *-apple-tvos*-simulator) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-appletvsimulator-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-appletvsimulator-$host_cpu + esac + ;; + *-apple-tvos*) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-appletvos-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-appletvos-$host_cpu + esac + ;; + *-apple-watchos*-simulator) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-watchsimualtor-arm64 + ;; + *) + _host_ident=${_host_os_min_version:3}-watchsimualtor-$host_cpu + esac + ;; + *-apple-watchos*) + _host_os_min_version=`echo $host | cut -d '-' -f3` + case "$host_cpu" in + aarch64) + _host_ident=${_host_os_min_version:3}-watchosos-arm64_32 + ;; + *) + _host_ident=${_host_os_min_version:3}-watchosos-$host_cpu + esac + ;; + *-apple-*) + case "$host_cpu" in + arm*) + _host_ident=arm + ;; + *) + _host_ident=$host_cpu + esac ;; *-*-vxworks*) - _host_cpu=$host_cpu + _host_ident=$host_cpu ;; *) # for now, limit cross builds to known configurations MACHDEP="unknown" AC_MSG_ERROR([cross build not supported for $host]) esac - _PYTHON_HOST_PLATFORM="$MACHDEP${_host_cpu:+-$_host_cpu}" + _PYTHON_HOST_PLATFORM="$MACHDEP${_host_ident:+-$_host_ident}" fi # Some systems cannot stand _XOPEN_SOURCE being defined at all; they @@ -521,6 +599,13 @@ define_xopen_source=no;; Darwin/@<:@[12]@:>@@<:@0-9@:>@.*) define_xopen_source=no;; + # On iOS, defining _POSIX_C_SOURCE also disables platform specific features. + iOS/*) + define_xopen_source=no;; + tvOS/*) + define_xopen_source=no;; + watchOS/*) + define_xopen_source=no;; # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from # defining NI_NUMERICHOST. QNX/6.3.2) @@ -855,7 +940,42 @@ #elif defined(__gnu_hurd__) i386-gnu #elif defined(__APPLE__) - darwin +# include "TargetConditionals.h" +# if TARGET_OS_IOS +# if TARGET_OS_SIMULATOR +# if __x86_64__ + iphonesimulator-x86_64 +# else + iphonesimulator-arm64 +# endif +# else + iphoneos-arm64 +# endif +# elif TARGET_OS_TV +# if TARGET_OS_SIMULATOR +# if __x86_64__ + appletvsimulator-x86_64 +# else + appletvsimulator-arm64 +# endif +# else + appletvos-arm64 +# endif +# elif TARGET_OS_WATCH +# if TARGET_OS_SIMULATOR +# if __x86_64__ + watchsimulator-x86_64 +# else + watchsimulator-arm64 +# endif +# else + watchos-arm64_32 +# endif +# elif TARGET_OS_OSX + darwin +# else +# error unknown Apple platform +# endif #elif defined(__VXWORKS__) vxworks #else @@ -875,11 +995,13 @@ AC_MSG_CHECKING([for multiarch]) AS_CASE([$ac_sys_system], [Darwin*], [MULTIARCH=""], + [iOS], [MULTIARCH=""], + [tvOS], [MULTIARCH=""], + [watchOS], [MULTIARCH=""], [FreeBSD*], [MULTIARCH=""], [MULTIARCH=$($CC --print-multiarch 2>/dev/null)] ) AC_SUBST([MULTIARCH]) -AC_MSG_RESULT([$MULTIARCH]) if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then if test x$PLATFORM_TRIPLET != x$MULTIARCH; then @@ -889,6 +1011,12 @@ MULTIARCH=$PLATFORM_TRIPLET fi AC_SUBST(PLATFORM_TRIPLET) +AC_MSG_RESULT([$MULTIARCH]) + +AS_CASE([$ac_sys_system], + [iOS|tvOS|watchOS], [SOABI_PLATFORM=`echo "$PLATFORM_TRIPLET" | cut -d '-' -f1`], + [SOABI_PLATFORM=$PLATFORM_TRIPLET] +) if test x$MULTIARCH != x; then MULTIARCH_CPPFLAGS="-DMULTIARCH=\\\"$MULTIARCH\\\"" @@ -1210,11 +1338,23 @@ AC_CHECK_TOOLS([READELF], [readelf], [:]) if test "$cross_compiling" = yes; then - case "$READELF" in - readelf|:) - AC_MSG_ERROR([readelf for the host is required for cross builds]) - ;; - esac + case "$host" in + *-apple-ios*) + # readelf not required for iOS cross builds. + ;; + *-apple-tvos*) + # readelf not required for tvOS cross builds. + ;; + *-apple-watchos*) + # readelf not required for watchOS cross builds. + ;; + *) + case "$READELF" in + readelf|:) + AC_MSG_ERROR([readelf for the host is required for cross builds]) + ;; + esac + esac fi AC_SUBST(READELF) @@ -2632,6 +2772,7 @@ esac ;; CYGWIN*) SHLIB_SUFFIX=.dll;; + iOS|tvOS|watchOS) SHLIB_SUFFIX=.dylib;; *) SHLIB_SUFFIX=.so;; esac fi @@ -2712,6 +2853,10 @@ BLDSHARED="$LDSHARED" fi ;; + iOS/*|tvOS/*|watchOS/*) + LDSHARED='$(CC) -dynamiclib -undefined dynamic_lookup' + LDCXXSHARED='$(CXX) -dynamiclib -undefined dynamic_lookup' + ;; Linux*|GNU*|QNX*|VxWorks*) LDSHARED='$(CC) -shared' LDCXXSHARED='$(CXX) -shared';; @@ -3118,20 +3263,30 @@ esac AC_MSG_RESULT($with_system_ffi) else - AC_MSG_RESULT(yes) - if test "$with_system_ffi" != "" + if test "$ac_sys_system" = "iOS" || test "$ac_sys_system" = "tvOS" || test "$ac_sys_system" = "watchOS" then - AC_MSG_WARN([--with(out)-system-ffi is ignored on this platform]) + AC_MSG_RESULT(no) + AC_MSG_WARN([Using user-provided libffi configuration]) + LIBFFI_LIBDIR="${LIBFFI_LIBDIR}" + LIBFFI_LIB="${LIBFFI_LIB}" + else + AC_MSG_RESULT(yes) + if test "$with_system_ffi" != "" + then + AC_MSG_WARN([--with(out)-system-ffi is ignored on this platform]) + fi + with_system_ffi="yes" fi - with_system_ffi="yes" fi if test "$with_system_ffi" = "yes" && test -n "$PKG_CONFIG"; then LIBFFI_INCLUDEDIR="`"$PKG_CONFIG" libffi --cflags-only-I 2>/dev/null | sed -e 's/^-I//;s/ *$//'`" else - LIBFFI_INCLUDEDIR="" + LIBFFI_INCLUDEDIR="${LIBFFI_INCLUDEDIR}" fi AC_SUBST(LIBFFI_INCLUDEDIR) +AC_SUBST(LIBFFI_LIBDIR) +AC_SUBST(LIBFFI_LIB) # Check for use of the system libmpdec library AC_MSG_CHECKING(for --with-system-libmpdec) @@ -4825,14 +4980,14 @@ AC_MSG_CHECKING(ABIFLAGS) AC_MSG_RESULT($ABIFLAGS) AC_MSG_CHECKING(SOABI) -SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} +SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${SOABI_PLATFORM:+-$SOABI_PLATFORM} AC_MSG_RESULT($SOABI) # Release and debug (Py_DEBUG) ABI are compatible, but not Py_TRACE_REFS ABI if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; then # Similar to SOABI but remove "d" flag from ABIFLAGS AC_SUBST(ALT_SOABI) - ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} + ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${SOABI_PLATFORM:+-$SOABI_PLATFORM} AC_DEFINE_UNQUOTED(ALT_SOABI, "${ALT_SOABI}", [Alternative SOABI used in debug build to load C extensions built in release mode]) fi @@ -6017,7 +6172,7 @@ echo "creating Modules/Setup.local" >&AS_MESSAGE_FD if test ! -f Modules/Setup.local then - echo "# Edit this file for local setup changes" >Modules/Setup.local + echo "# Edit this file for local setup changes" >Modules/Setup.local fi echo "creating Makefile" >&AS_MESSAGE_FD diff --git a/setup.py b/setup.py index a39610a1c7..ec3b9ef0ce 100644 --- a/setup.py +++ b/setup.py @@ -84,6 +84,9 @@ MS_WINDOWS = (HOST_PLATFORM == 'win32') CYGWIN = (HOST_PLATFORM == 'cygwin') MACOS = (HOST_PLATFORM == 'darwin') +IOS = HOST_PLATFORM.startswith('ios-') +TVOS = HOST_PLATFORM.startswith('tvos-') +WATCHOS = HOST_PLATFORM.startswith('watchos-') AIX = (HOST_PLATFORM.startswith('aix')) VXWORKS = ('vxworks' in HOST_PLATFORM) CC = os.environ.get("CC") @@ -163,16 +166,20 @@ for var_name in make_vars: var = sysconfig.get_config_var(var_name) if var is not None: - m = re.search(r'--sysroot=([^"]\S*|"[^"]+")', var) - if m is not None: - sysroot = m.group(1).strip('"') - for subdir in subdirs: - if os.path.isabs(subdir): - subdir = subdir[1:] - path = os.path.join(sysroot, subdir) - if os.path.isdir(path): - dirs.append(path) - break + for pattern in [ + r'-isysroot\s*([^"]\S*|"[^"]+")', + r'--sysroot=([^"]\S*|"[^"]+")', + ]: + m = re.search(pattern, var) + if m is not None: + sysroot = m.group(1).strip('"') + for subdir in subdirs: + if os.path.isabs(subdir): + subdir = subdir[1:] + path = os.path.join(sysroot, subdir) + if os.path.isdir(path): + dirs.append(path) + break return dirs @@ -2246,6 +2253,11 @@ extra_compile_args.append('-DMACOSX') include_dirs.append('_ctypes/darwin') + if IOS or TVOS or WATCHOS: + sources.append('_ctypes/malloc_closure.c') + extra_compile_args.append('-DUSING_MALLOC_CLOSURE_DOT_C=1') + include_dirs.append('_ctypes/darwin') + elif HOST_PLATFORM == 'sunos5': # XXX This shouldn't be necessary; it appears that some # of the assembler code is non-PIC (i.e. it has relocations @@ -2275,7 +2287,8 @@ libraries=['m'])) ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") - ffi_lib = None + ffi_lib_dir = sysconfig.get_config_var("LIBFFI_LIBDIR") + ffi_lib = sysconfig.get_config_var("LIBFFI_LIB") ffi_inc_dirs = self.inc_dirs.copy() if MACOS: @@ -2304,6 +2317,7 @@ for lib_name in ('ffi', 'ffi_pic'): if (self.compiler.find_library_file(self.lib_dirs, lib_name)): ffi_lib = lib_name + self.use_system_libffi = True break if ffi_inc and ffi_lib: @@ -2317,7 +2331,8 @@ ext.include_dirs.append(ffi_inc) ext.libraries.append(ffi_lib) - self.use_system_libffi = True + if ffi_lib_dir: + ext.library_dirs.append(ffi_lib_dir) if sysconfig.get_config_var('HAVE_LIBDL'): # for dlopen, see bpo-32647