--- /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 808c0dc287..a7a7887f70 100644 --- a/Lib/distutils/tests/test_build_ext.py +++ b/Lib/distutils/tests/test_build_ext.py @@ -15,6 +15,7 @@ import unittest from test import support +from test.support import os_helper, has_subprocess_support from test.support.script_helper import assert_python_ok # http://bugs.python.org/issue4373 @@ -52,6 +53,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: @@ -328,6 +330,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 8bd2c94237..10f38baa74 100644 --- a/Lib/distutils/tests/test_config_cmd.py +++ b/Lib/distutils/tests/test_config_cmd.py @@ -2,7 +2,7 @@ import unittest import os import sys -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 @@ -38,6 +38,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): import shutil cmd = missing_compiler_executable(['preprocessor']) 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 287ab1989e..8a5a4e5068 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 @@ -196,6 +196,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 f9ae69ef86..67b8e4536d 100644 --- a/Lib/distutils/tests/test_spawn.py +++ b/Lib/distutils/tests/test_spawn.py @@ -4,7 +4,7 @@ import sys import unittest from unittest import mock -from test.support import run_unittest, unix_shell +from test.support import run_unittest, unix_shell, has_subprocess_support from test import support as test_support from distutils.spawn import find_executable @@ -27,7 +27,7 @@ self.assertEqual(res, wanted) - @unittest.skipUnless(os.name in ('nt', 'posix'), + @unittest.skipUnless(os.name in ('nt', 'posix') and has_subprocess_support, 'Runs only under posix or nt') def test_spawn(self): tmpdir = self.mkdtemp() diff --git a/Lib/distutils/tests/test_sysconfig.py b/Lib/distutils/tests/test_sysconfig.py index 236755d095..a941290dc1 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 TESTFN, run_unittest, check_warnings, swap_item +from test.support import TESTFN, run_unittest, check_warnings, swap_item, has_subprocess_support class SysconfigTestCase(support.EnvironGuard, unittest.TestCase): def setUp(self): @@ -244,6 +244,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 bf0d4333f9..8a4ba3666a 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 @@ -233,6 +233,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 f0792de74a..7bbade8814 100644 --- a/Lib/distutils/unixccompiler.py +++ b/Lib/distutils/unixccompiler.py @@ -269,9 +269,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 @@ -290,12 +290,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 509f99ae8e..b2cbfefd53 100644 --- a/Lib/importlib/_bootstrap_external.py +++ b/Lib/importlib/_bootstrap_external.py @@ -49,7 +49,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) @@ -1599,6 +1599,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): @@ -1706,3 +1759,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 b7e7bc439e..bbe36759a6 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -445,6 +445,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 @@ """ Interface to the system's uname command. """ - if sys.platform in ('dos', 'win32', 'win16'): + if sys.platform in ('dos', 'win32', 'win16', 'ios', 'tvos', 'watchos'): # XXX Others too ? return default @@ -627,7 +647,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 @@ -853,6 +873,18 @@ processor = 'Alpha' else: processor = 'VAX' + + # Apple mobile platforms + if sys.platform in ("ios", "tvos"): + system, release, model = iOS_ver() + # Simulator devices report as "arm64" or "x86_64"; + # use the model as the basis for the normalized machine name. + if getattr(sys.implementation, "_simulator", False): + machine = f"{model} Simulator" + processor = os.uname().machine + else: + processor = "arm64" + if not processor: # Get processor information from the uname system command processor = _syscmd_uname('-p', '') @@ -876,8 +908,20 @@ 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(system, node, release, version, machine, processor) + return _uname_cache ### Direct interfaces to some of the uname() return values @@ -1187,11 +1231,14 @@ 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 + # macOS/iOS/tvOS/watchOS (darwin kernel) + 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 9fa21cca38..e346fb4390 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -271,6 +271,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 7d363fa315..6b3a695d63 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -91,6 +91,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 @@ -741,6 +743,9 @@ restore_signals=True, start_new_session=False, pass_fds=(), *, encoding=None, errors=None, text=None): """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 @@ -1739,7 +1744,7 @@ raise SubprocessError("Unknown child exit status!") - 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. @@ -1748,6 +1753,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 3f702d7ea5..c972c19a24 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -84,6 +84,33 @@ 'scripts': '{userbase}/bin', 'data': '{userbase}', }, + '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', + }, } _SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include', @@ -187,6 +214,8 @@ if os.name == 'posix': # the default scheme for posix is posix_prefix return 'posix_prefix' + elif sys.platform in ('ios', 'tvos', 'watchos'): + return sys.platform return os.name @@ -207,6 +236,11 @@ if sys.platform == "darwin" and sys._framework: return joinuser("~", "Library", sys._framework, "%d.%d" % sys.version_info[:2]) + elif sys.platform in ('ios', 'tvos', 'watchos'): + if env_base: + return env_base + else: + return _BASE_PREFIX return joinuser("~", ".local") @@ -687,10 +721,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 "%s-%s-%s" % (osname, release, machine) diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index fa5a028b7b..8202cc8aba 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -102,7 +102,7 @@ "check__all__", "skip_unless_bind_unix_socket", "skip_if_buggy_ucrt_strfptime", "ignore_warnings", # sys - "is_jython", "is_android", "check_impl_detail", "unix_shell", + "is_jython", "is_android", "is_apple_mobile", "check_impl_detail", "unix_shell", "setswitchinterval", # network "HOST", "IPV6_ENABLED", "find_unused_port", "bind_port", "open_urlresource", @@ -855,11 +855,24 @@ is_android = hasattr(sys, 'getandroidapilevel') -if sys.platform != 'win32': +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 +) + # Filename used for testing if os.name == 'java': # Jython disallows @ in module names @@ -925,8 +938,8 @@ # TESTFN_UNICODE is a non-ascii filename TESTFN_UNICODE = TESTFN + "-\xe0\xf2\u0258\u0141\u011f" -if sys.platform == 'darwin': - # In Mac OS X's VFS API file names are, by definition, canonically +if sys.platform in ('darwin', 'ios', 'tvos', 'watchos'): + # In iOS and Mac OS X, VFS API file names are, by definition, canonically # decomposed Unicode, encoded using UTF-8. See QA1173: # http://developer.apple.com/mac/library/qa/qa2001/qa1173.html import unicodedata @@ -952,8 +965,8 @@ 'Unicode filename tests may not be effective' % (TESTFN_UNENCODABLE, TESTFN_ENCODING)) TESTFN_UNENCODABLE = None -# Mac OS X denies unencodable filenames (invalid utf-8) -elif sys.platform != 'darwin': +# Mac OS X and iOS deny unencodable filenames (invalid utf-8) +elif sys.platform not in ('darwin', 'ios', 'tvos', 'watchos'): try: # ascii and utf-8 cannot encode the byte 0xff b'\xff'.decode(TESTFN_ENCODING) diff --git a/Lib/test/support/script_helper.py b/Lib/test/support/script_helper.py index 83519988e3..2412e407dd 100644 --- a/Lib/test/support/script_helper.py +++ b/Lib/test/support/script_helper.py @@ -8,15 +8,19 @@ import os.path import subprocess import py_compile +import unittest import zipfile from importlib.util import source_from_cache +from test.support import has_subprocess_support from test.support import make_legacy_pyc, strip_python_stderr # Cached result of the expensive test performed in the function below. __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 @@ -137,6 +141,7 @@ err = strip_python_stderr(err) 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): @@ -166,6 +171,8 @@ """ 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 af18d62072..5ac966a8c5 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 def tearDownModule(): @@ -512,6 +513,8 @@ self._basetest_create_connection(conn_fut) @support.skip_unless_bind_unix_socket + @unittest.skipIf(sys.platform in ('ios', 'tvos', 'watchos'), + "%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. @@ -604,6 +607,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( @@ -615,6 +619,8 @@ @support.skip_unless_bind_unix_socket @unittest.skipIf(ssl is None, 'No ssl module') + @unittest.skipIf(sys.platform in ('ios', 'tvos', 'watchos'), + "%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. @@ -838,6 +844,8 @@ return server, path @support.skip_unless_bind_unix_socket + @unittest.skipIf(sys.platform in ('ios', 'tvos', 'watchos'), + "%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) @@ -866,6 +874,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() @@ -931,6 +940,7 @@ @support.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( @@ -961,6 +971,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( @@ -991,6 +1002,7 @@ @support.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( @@ -1051,6 +1063,7 @@ @support.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( @@ -1708,6 +1721,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 84c031c71b..570eeae4ef 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(): @@ -67,6 +68,7 @@ self._basetest_open_connection(conn_fut) @support.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, @@ -101,6 +103,7 @@ @support.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( @@ -131,6 +134,7 @@ self._basetest_open_connection_error(conn_fut) @support.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, @@ -656,6 +660,7 @@ self.assertEqual(messages, []) @support.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: @@ -732,6 +737,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 40f17b8f1a..9be8dffd2c 100644 --- a/Lib/test/test_asyncio/test_subprocess.py +++ b/Lib/test/test_asyncio/test_subprocess.py @@ -9,6 +9,7 @@ from asyncio import subprocess from test.test_asyncio import utils as test_utils from test import support +from test.support import has_subprocess_support if sys.platform != 'win32': from asyncio import unix_events @@ -102,6 +103,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 5487b7afef..cc78443357 100644 --- a/Lib/test/test_asyncio/test_unix_events.py +++ b/Lib/test/test_asyncio/test_unix_events.py @@ -15,6 +15,7 @@ import unittest from unittest import mock from test import support +from test.support import is_apple_mobile, has_subprocess_support if sys.platform == 'win32': raise unittest.SkipTest('UNIX only') @@ -266,6 +267,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): @@ -1133,6 +1135,7 @@ )) +@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 7dba6635d4..b2d15e64fb 100644 --- a/Lib/test/test_base64.py +++ b/Lib/test/test_base64.py @@ -4,7 +4,7 @@ import binascii import os from array import array -from test.support import script_helper +from test.support import script_helper, has_subprocess_support class LegacyBase64TestCase(unittest.TestCase): @@ -653,6 +653,7 @@ self.assertTrue(issubclass(binascii.Error, ValueError)) +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class TestMain(unittest.TestCase): def tearDown(self): if os.path.exists(support.TESTFN): diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index 7547127018..b8140e397c 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -14,6 +14,7 @@ import unittest from test import support from test.support import MISSING_C_DOCSTRINGS +from test.support import has_subprocess_support from test.support.script_helper import assert_python_failure, assert_python_ok try: import _posixsubprocess @@ -49,6 +50,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", @@ -626,6 +628,7 @@ self.assertFalse(hasattr(binascii.Error, "foobar")) +@unittest.skipUnless(threading, 'Threading required for this test.') class TestThreadState(unittest.TestCase): @support.reap_threads diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py index 3e2f12a9d5..ec2389a22e 100644 --- a/Lib/test/test_cmd_line.py +++ b/Lib/test/test_cmd_line.py @@ -8,6 +8,7 @@ import tempfile import unittest from test import support +from test.support import has_subprocess_support from test.support.script_helper import ( spawn_python, kill_python, assert_python_ok, assert_python_failure, interpreter_requires_environment @@ -66,6 +67,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): @@ -84,6 +86,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 @@ -157,6 +160,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() @@ -257,6 +261,7 @@ self.assertEqual(stdout, expected) self.assertEqual(p.returncode, 0) + @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'): @@ -315,6 +320,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() @@ -333,6 +339,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') @@ -408,6 +415,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 a5a746eb38..414650fd5d 100644 --- a/Lib/test/test_concurrent_futures.py +++ b/Lib/test/test_concurrent_futures.py @@ -5,6 +5,7 @@ # Skip tests if sem_open implementation is broken. test.support.skip_if_broken_multiprocessing_synchronize() +from test.support import has_subprocess_support from test.support.script_helper import assert_python_ok import contextlib @@ -153,6 +154,7 @@ executor_type = futures.ThreadPoolExecutor +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class ProcessPoolForkMixin(ExecutorMixin): executor_type = futures.ProcessPoolExecutor ctx = "fork" @@ -163,11 +165,13 @@ return super().get_context() +@unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') class ProcessPoolSpawnMixin(ExecutorMixin): executor_type = futures.ProcessPoolExecutor ctx = "spawn" +@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 ad30a051b5..e6d5ebad3e 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -3,6 +3,7 @@ """ from test import support +from test.support import is_apple_mobile import doctest import functools import os @@ -2823,7 +2824,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 a5f8f6465e..e4366a1289 100644 --- a/Lib/test/test_eintr.py +++ b/Lib/test/test_eintr.py @@ -5,10 +5,11 @@ 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 d875103934..c5db0a19e0 100644 --- a/Lib/test/test_faulthandler.py +++ b/Lib/test/test_faulthandler.py @@ -7,6 +7,7 @@ import sys import sysconfig from test import support +from test.support import has_subprocess_support from test.support import script_helper, is_android import tempfile import unittest @@ -348,6 +349,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())" @@ -356,6 +358,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())" @@ -368,6 +371,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 c394f6945a..3112d26adf 100644 --- a/Lib/test/test_fcntl.py +++ b/Lib/test/test_fcntl.py @@ -7,7 +7,7 @@ import unittest from multiprocessing import Process from test.support import (verbose, TESTFN, unlink, run_unittest, import_module, - cpython_only) + cpython_only, is_apple_mobile) # Skip test if no fcntl module. fcntl = import_module('fcntl') @@ -23,7 +23,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 f1efd266ff..5a68c60cc2 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 58d461334b..53286c1049 100644 --- a/Lib/test/test_gc.py +++ b/Lib/test/test_gc.py @@ -2,7 +2,7 @@ from test.support import (verbose, refcount_test, run_unittest, strip_python_stderr, cpython_only, start_threads, temp_dir, requires_type_collecting, TESTFN, unlink, - import_module) + import_module, has_subprocess_support) from test.support.script_helper import assert_python_ok, make_script import gc @@ -657,6 +657,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 d90ca5a51a..967ec30e64 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 3806f7ac27..8cfab3bdce 100644 --- a/Lib/test/test_httpservers.py +++ b/Lib/test/test_httpservers.py @@ -29,6 +29,8 @@ import unittest from test import support +from test.support import is_apple_mobile +from test.support import has_subprocess_support class NoLogRequestHandler: @@ -397,7 +399,7 @@ with open(os.path.join(self.tempdir, filename), 'wb') as f: f.write(support.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): @@ -645,6 +647,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 9d79caac8c..0d869446e9 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -38,7 +38,7 @@ from itertools import cycle, count from test import support from test.support.script_helper import assert_python_ok, run_python_until_end -from test.support import FakePath +from test.support import FakePath, is_apple_mobile import codecs import io # C implementation of io @@ -600,7 +600,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 a62a5d4084..040c0c2e50 100644 --- a/Lib/test/test_json/test_tool.py +++ b/Lib/test/test_json/test_tool.py @@ -6,6 +6,7 @@ from subprocess import Popen, PIPE from test import support +from test.support import has_subprocess_support from test.support.script_helper import assert_python_ok @@ -84,6 +85,7 @@ } """) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_stdin_stdout(self): args = sys.executable, '-m', 'json.tool' with Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE) as proc: diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 15250a3a95..36fdf4af08 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 import textwrap import threading import time @@ -1759,9 +1760,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.""" @@ -1843,6 +1855,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.""" @@ -1927,6 +1940,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 920283d9a2..02322dce95 100644 --- a/Lib/test/test_mailcap.py +++ b/Lib/test/test_mailcap.py @@ -1,8 +1,10 @@ import mailcap import os import copy +import sys import test.support import unittest +from test.support import is_apple_mobile # Location of mailcap file MAILCAPFILE = test.support.findfile("mailcap.txt") @@ -216,7 +218,7 @@ ] 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") def test_test(self): # findmatch() will automatically check any "test" conditions and skip # the entry if the check fails. diff --git a/Lib/test/test_marshal.py b/Lib/test/test_marshal.py index ace1593999..2fa6603ed3 100644 --- a/Lib/test/test_marshal.py +++ b/Lib/test/test_marshal.py @@ -1,4 +1,5 @@ from test import support +from test.support import is_apple_mobile import array import io import marshal @@ -240,7 +241,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 88c501d81a..185b8e9df1 100644 --- a/Lib/test/test_mmap.py +++ b/Lib/test/test_mmap.py @@ -1,5 +1,5 @@ from test.support import (TESTFN, import_module, unlink, - requires, _2G, _4G, gc_collect, cpython_only) + requires, _2G, _4G, gc_collect, cpython_only, is_apple_mobile) import unittest import os import re @@ -230,7 +230,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, @@ -769,7 +769,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 5302b1ce57..0fd596f15f 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -29,6 +29,7 @@ import uuid import warnings from test import support +from test.support import has_subprocess_support from platform import win32_is_iot try: @@ -852,6 +853,7 @@ # Bug 1110478 @unittest.skipUnless(unix_shell and os.path.exists(unix_shell), 'requires a shell') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_update2(self): os.environ.clear() os.environ.update(HELLO="World") @@ -861,6 +863,7 @@ @unittest.skipUnless(unix_shell and os.path.exists(unix_shell), 'requires a shell') + @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: @@ -1699,6 +1702,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") @@ -2020,6 +2024,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). @@ -2028,6 +2033,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) @@ -2037,6 +2043,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). @@ -2667,6 +2674,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())'], @@ -2692,6 +2700,7 @@ self.assertEqual(os.WEXITSTATUS(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) @@ -3335,6 +3344,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 cdee716d6a..0df7f2ce3f 100644 --- a/Lib/test/test_pdb.py +++ b/Lib/test/test_pdb.py @@ -13,6 +13,7 @@ from contextlib import ExitStack from io import StringIO from test import support +from test.support import 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 @@ -1235,6 +1236,7 @@ def tearDown(self): support.unlink(support.TESTFN) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def _run_pdb(self, pdb_args, commands): self.addCleanup(support.rmtree, '__pycache__') cmd = [sys.executable, '-m', 'pdb'] + pdb_args @@ -1326,6 +1328,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(support.TESTFN, 'wb') as f: diff --git a/Lib/test/test_pipes.py b/Lib/test/test_pipes.py index 1d538b9898..ee9809807c 100644 --- a/Lib/test/test_pipes.py +++ b/Lib/test/test_pipes.py @@ -1,13 +1,17 @@ import pipes import os import string +import sys import unittest import shutil -from test.support import TESTFN, run_unittest, unlink, reap_children +from test.support import TESTFN, run_unittest, unlink, reap_children, is_apple_mobile 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) + TESTFN2 = TESTFN + "2" # tr a-z A-Z is not portable, so make the ranges explicit diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py index 4739e84c53..34eb3c881f 100644 --- a/Lib/test/test_platform.py +++ b/Lib/test/test_platform.py @@ -6,7 +6,7 @@ from unittest import mock from test import support - +from test.support import has_subprocess_support, is_apple_mobile class PlatformTest(unittest.TestCase): def clear_caches(self): @@ -18,6 +18,7 @@ res = platform.architecture() @support.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())" @@ -192,7 +193,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) @@ -224,6 +225,9 @@ 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 ef966bf0f5..50e478463d 100644 --- a/Lib/test/test_poll.py +++ b/Lib/test/test_poll.py @@ -7,7 +7,7 @@ import threading import time import unittest -from test.support import TESTFN, run_unittest, reap_threads, cpython_only +from test.support import TESTFN, run_unittest, reap_threads, cpython_only, has_subprocess_support try: select.poll @@ -117,6 +117,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 da01a878fa..7d62577ed6 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 # Test that command-lines get down as we expect. @@ -16,6 +17,7 @@ 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 9bdd2848af..578e41f179 100644 --- a/Lib/test/test_posix.py +++ b/Lib/test/test_posix.py @@ -1,6 +1,8 @@ "Test posix functions" from test import support +from test.support import has_subprocess_support +from test.support import is_apple_mobile from test.support.script_helper import assert_python_ok # Skip these tests if there is no posix module. @@ -59,15 +61,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()') @@ -744,9 +753,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) @@ -1030,6 +1040,7 @@ @unittest.skipUnless(hasattr(os, 'getegid'), "test needs os.getegid()") + @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() @@ -1287,7 +1298,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 dfb3a3fc32..a61c72f786 100644 --- a/Lib/test/test_pty.py +++ b/Lib/test/test_pty.py @@ -1,4 +1,4 @@ -from test.support import verbose, import_module, reap_children +from test.support import verbose, import_module, reap_children, has_subprocess_support # Skip these tests if termios is not available import_module('termios') @@ -138,6 +138,7 @@ # to ignore this signal. os.close(master_fd) + @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 458998a62f..607c533e12 100644 --- a/Lib/test/test_select.py +++ b/Lib/test/test_select.py @@ -4,6 +4,7 @@ import sys 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") @@ -44,6 +45,7 @@ self.assertIsNot(r, x) self.assertIsNot(w, x) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_select(self): cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done' with os.popen(cmd) as p: diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index 5cef59ea9c..398295edfc 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 TESTFN, FakePath +from test.support import TESTFN, FakePath, has_subprocess_support TESTFN2 = TESTFN + "2" TESTFN_SRC = TESTFN + "_SRC" @@ -1677,6 +1677,7 @@ self.assertEqual(['pol'], os.listdir(rv)) +@unittest.skipIf(support.has_subprocess_support, 'Test requires support for subprocesses.') class TestWhich(unittest.TestCase): def setUp(self): @@ -2565,6 +2566,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 9b2df6bfc3..afac0bc73a 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 (captured_stderr, TESTFN, EnvironmentVarGuard, change_cwd) import builtins @@ -197,6 +198,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 = site.USER_SITE @@ -464,6 +466,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 eada6e929f..de44619179 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 import errno import io @@ -1052,7 +1053,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') @@ -3273,7 +3274,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): @@ -3284,7 +3285,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) @@ -3297,7 +3298,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): @@ -3311,7 +3312,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) @@ -3335,7 +3336,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. @@ -4072,28 +4073,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 1e5224df01..eb204530e7 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, reap_threads, verbose +from test.support import reap_children, reap_threads, verbose, has_subprocess_support, is_apple_mobile test.support.requires("network") @@ -25,7 +26,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): @@ -195,12 +196,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 a0bd741c36..759c770e61 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 TESTFN, unlink, unload, rmtree, script_helper, captured_stdout +from test.support import TESTFN, unlink, unload, rmtree, script_helper, captured_stdout, has_subprocess_support import importlib import os import sys @@ -12,11 +12,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' ) @@ -60,6 +60,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 4661d1e252..8512d42126 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -18,6 +18,7 @@ import threading import gc import textwrap +from test.support import has_subprocess_support from test.support import FakePath try: @@ -31,6 +32,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 2accad1aee..4824b6c8d0 100644 --- a/Lib/test/test_sundry.py +++ b/Lib/test/test_sundry.py @@ -20,7 +20,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 581a7d6ff5..53e6c3bee1 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -11,6 +11,7 @@ import sys import sysconfig import test.support +from test.support import has_subprocess_support import textwrap import unittest import warnings @@ -278,6 +279,7 @@ finally: sys.setrecursionlimit(oldlimit) + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_recursionlimit_fatalerror(self): # A fatal error occurs if a second recursion limit is hit when recovering # from a first one. @@ -594,6 +596,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) @@ -641,6 +644,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) @@ -653,6 +657,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) @@ -687,6 +692,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 0ca5c9390d..eca8dad7c7 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -7,7 +7,7 @@ from test.support import (import_module, TESTFN, unlink, check_warnings, captured_stdout, skip_unless_symlink, change_cwd, - PythonSymlink) + PythonSymlink, has_subprocess_support) import sysconfig from sysconfig import (get_paths, get_platform, get_config_vars, @@ -229,10 +229,12 @@ def test_get_scheme_names(self): wanted = ('nt', 'nt_user', 'osx_framework_user', - 'posix_home', 'posix_prefix', 'posix_user') + 'posix_home', 'posix_prefix', 'posix_user', + 'tvos', 'watchos') self.assertEqual(get_scheme_names(), 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 f129454f4c..e0f6652830 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -15,11 +15,12 @@ import unittest from test import support +from test_support import has_subprocess_support from test.support import script_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 ac4e7a7e0f..ca299d6795 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -4,7 +4,7 @@ import test.support from test.support import (verbose, import_module, cpython_only, - requires_type_collecting) + requires_type_collecting, is_apple_mobile) from test.support.script_helper import assert_python_ok, assert_python_failure import random @@ -929,6 +929,7 @@ class SubinterpThreadingTests(BaseTestCase): + @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) @@ -959,6 +960,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 2ffb6fa6a7..a9cf84868f 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -7,7 +7,7 @@ import unittest import re from test import support -from test.support import TESTFN, Error, captured_output, unlink, cpython_only +from test.support import TESTFN, Error, captured_output, unlink, cpython_only, has_subprocess_support from test.support.script_helper import assert_python_ok import textwrap @@ -106,6 +106,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 07d717688b..69f40e4485 100644 --- a/Lib/test/test_unicodedata.py +++ b/Lib/test/test_unicodedata.py @@ -9,7 +9,7 @@ import sys import unittest import hashlib -from test.support import script_helper +from test.support import script_helper, has_subprocess_support encoding = 'utf-8' errors = 'surrogatepass' @@ -243,6 +243,7 @@ class UnicodeMiscTest(UnicodeDatabaseTest): + @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 0f43d71ea6..2455eb8a1f 100644 --- a/Lib/test/test_urllib2net.py +++ b/Lib/test/test_urllib2net.py @@ -7,6 +7,10 @@ import urllib.error import urllib.request import sys +try: + import ssl +except ImportError: + ssl = None support.requires("network") @@ -156,6 +160,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 support.transient_internet(urlwith_frag): @@ -164,6 +169,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 support.transient_internet(redirect_url_with_frag): diff --git a/Lib/test/test_uuid.py b/Lib/test/test_uuid.py index 92642d239b..ba90e326ae 100644 --- a/Lib/test/test_uuid.py +++ b/Lib/test/test_uuid.py @@ -1,5 +1,6 @@ import unittest.mock from test import support +from test.support import has_subprocess_support import builtins import contextlib import copy @@ -636,6 +637,7 @@ equal(str(u), v) @unittest.skipUnless(os.name == 'posix', 'requires Posix') + @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 @@ -675,6 +677,7 @@ _uuid = py_uuid @unittest.skipUnless(os.name == 'posix', 'requires Posix') + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_find_mac(self): data = ''' fake hwaddr @@ -709,6 +712,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') @@ -721,6 +725,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') @@ -733,6 +738,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 28743f03ae..4976411339 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -17,7 +17,7 @@ from test.support import (captured_stdout, captured_stderr, requires_zlib, can_symlink, EnvironmentVarGuard, rmtree, import_module, - skip_if_broken_multiprocessing_synchronize) + skip_if_broken_multiprocessing_synchronize, has_subprocess_support) import threading import unittest import venv @@ -140,6 +140,7 @@ self.assertIn("prompt = 'My prompt'\n", data) @requireVenvCreate + @unittest.skipUnless(has_subprocess_support, 'Test requires support for subprocesses.') def test_prefixes(self): """ Test that the prefix values are as expected. @@ -277,6 +278,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. @@ -290,6 +292,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. @@ -375,6 +378,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) @@ -499,6 +503,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 519a9432ab..1a2ff78ca7 100644 --- a/Lib/test/test_webbrowser.py +++ b/Lib/test/test_webbrowser.py @@ -4,8 +4,12 @@ import sys import subprocess from unittest import mock +import sys from test import support +from test.support import is_apple_mobile +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 3115344569..2b283e9565 100644 --- a/Lib/test/test_zipfile.py +++ b/Lib/test/test_zipfile.py @@ -1140,6 +1140,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: @@ -1184,6 +1185,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 7d36340741..cb0429e044 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(*_): @@ -935,6 +936,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 6023c1e138..ae5803c4c8 100755 --- a/Lib/webbrowser.py +++ b/Lib/webbrowser.py @@ -590,6 +590,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 7e381283fe..a8a23ee199 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -294,6 +294,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 05c051c612..51baf1c07e 100644 --- a/Modules/_posixsubprocess.c +++ b/Modules/_posixsubprocess.c @@ -510,11 +510,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,12 @@ need_after_fork = 1; } +#if defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) || defined(__ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__) + pid = -1; + errno = ENOTSUP; +#else pid = fork(); +#endif if (pid == 0) { /* Child process */ /* diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c index 230cde4934..c1041c3fa4 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" #include "pycore_traceback.h" @@ -16,6 +20,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 */ + /* Allocate at maximum 100 MiB of the stack to raise the stack overflow */ #define STACK_OVERFLOW_MAX_SIZE (100 * 1024 * 1024) diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index b78fcedd03..9967453e3e 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -63,6 +63,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 d7edabe5da..d4b3d322d7 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -20,6 +20,8 @@ # pragma weak statvfs # pragma weak fstatvfs +# include "TargetConditionals.h" + #endif /* __APPLE__ */ #define PY_SSIZE_T_CLEAN @@ -217,6 +219,25 @@ #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 /*[clinic input] # one of the few times we lie about this name! @@ -443,27 +464,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 _PyRuntimeState *runtime = &_PyRuntime; _PyGILState_Reinit(runtime); _PyEval_ReInitThreads(runtime); @@ -473,8 +500,10 @@ _PyInterpreterState_DeleteExceptMain(runtime); run_at_forkers(_PyInterpreterState_Get()->after_forkers_child, 0); +#endif } +#ifdef HAVE_FORK static int register_at_forker(PyObject **lst, PyObject *func) { @@ -493,9 +522,7 @@ void PyOS_AfterFork(void) { -#ifdef HAVE_FORK PyOS_AfterFork_Child(); -#endif } @@ -1374,7 +1401,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 * @@ -1390,6 +1419,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(). */ @@ -1445,6 +1475,7 @@ Py_DECREF(k); Py_DECREF(v); } +#endif return d; } @@ -4482,7 +4513,12 @@ } Py_BEGIN_ALLOW_THREADS +#if TARGET_OS_IPHONE + result = -1; + errno = ENOTSUP; +#else result = system(bytes); +#endif Py_END_ALLOW_THREADS return result; } @@ -4764,7 +4800,7 @@ static int utime_dir_fd(utime_t *ut, int dir_fd, const char *path, int follow_symlinks) { -#ifdef HAVE_UTIMENSAT +#if defined(HAVE_UTIMENSAT) && (!TARGET_OS_IOS || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_11_0) int flags = follow_symlinks ? 0 : AT_SYMLINK_NOFOLLOW; UTIME_TO_TIMESPEC; return utimensat(dir_fd, path, time, flags); @@ -4790,7 +4826,7 @@ static int utime_fd(utime_t *ut, int fd) { -#ifdef HAVE_FUTIMENS +#if defined(HAVE_FUTIMENS) && (!TARGET_OS_IOS || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_11_0) UTIME_TO_TIMESPEC; return futimens(fd, time); #else @@ -4813,7 +4849,7 @@ static int utime_nofollow_symlinks(utime_t *ut, const char *path) { -#ifdef HAVE_UTIMENSAT +#if defined(HAVE_UTIMENSAT) && (!TARGET_OS_IOS || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_11_0) UTIME_TO_TIMESPEC; return utimensat(DEFAULT_DIR_FD, path, time, AT_SYMLINK_NOFOLLOW); #else @@ -4829,7 +4865,7 @@ static int utime_default(utime_t *ut, const char *path) { -#ifdef HAVE_UTIMENSAT +#if defined(HAVE_UTIMENSAT) && (!TARGET_OS_IOS || __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_11_0) UTIME_TO_TIMESPEC; return utimensat(DEFAULT_DIR_FD, path, time, 0); #elif defined(HAVE_UTIMES) diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c index e0232b8d58..31749b0f13 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" @@ -173,6 +177,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(&mp); + } +#endif PyObject *uid_obj = _PyLong_FromUid(uid); if (uid_obj == NULL) return NULL; @@ -256,6 +276,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(&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 096911dacf..ebf77521dd 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -50,6 +50,11 @@ #define SEC_TO_NS (1000 * 1000 * 1000) +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + + /* Forward declarations */ static int pysleep(_PyTime_t); @@ -223,11 +228,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; } @@ -256,11 +263,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 eb2b6d08d8..7d8124f795 100644 --- a/Python/bootstrap_hash.c +++ b/Python/bootstrap_hash.c @@ -25,6 +25,10 @@ # include #endif +#ifdef __APPLE__ +# include "TargetConditionals.h" +#endif /* __APPLE__ */ + #ifdef Py_DEBUG int _Py_HashSecret_Initialized = 0; #else @@ -195,6 +199,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 23e58ed046..6d7dff0abf 100644 --- a/Python/dynload_shlib.c +++ b/Python/dynload_shlib.c @@ -27,6 +27,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 @@ -37,12 +41,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 8e0650a7dc..1f0bcacd67 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,224,2,0,0,100,0, + 0,5,0,0,0,64,0,0,0,115,254,2,0,0,100,0, 90,0,100,1,100,2,108,1,97,1,100,1,100,2,108,2, 90,2,100,1,100,2,108,3,97,3,100,1,100,2,108,4, 90,4,100,1,100,2,108,5,90,5,116,3,106,6,100,3, @@ -20,20 +20,20 @@ 90,28,100,26,100,27,132,0,90,29,100,28,100,29,132,0, 90,30,100,30,100,31,132,0,90,31,100,32,100,33,132,0, 90,32,101,7,144,1,114,36,100,34,100,35,132,0,90,33, - 110,8,100,36,100,35,132,0,90,33,100,111,100,38,100,39, + 110,8,100,36,100,35,132,0,90,33,100,115,100,38,100,39, 132,1,90,34,101,35,101,34,106,36,131,1,90,37,100,40, 160,38,100,41,100,42,161,2,100,43,23,0,90,39,101,40, 160,41,101,39,100,42,161,2,90,42,100,44,90,43,100,45, 90,44,100,46,103,1,90,45,100,47,103,1,90,46,101,46, - 4,0,90,47,90,48,100,112,100,2,100,48,156,1,100,49, + 4,0,90,47,90,48,100,116,100,2,100,48,156,1,100,49, 100,50,132,3,90,49,100,51,100,52,132,0,90,50,100,53, 100,54,132,0,90,51,100,55,100,56,132,0,90,52,100,57, 100,58,132,0,90,53,100,59,100,60,132,0,90,54,100,61, 100,62,132,0,90,55,100,63,100,64,132,0,90,56,100,65, - 100,66,132,0,90,57,100,67,100,68,132,0,90,58,100,113, - 100,69,100,70,132,1,90,59,100,114,100,71,100,72,132,1, - 90,60,100,115,100,74,100,75,132,1,90,61,100,76,100,77, - 132,0,90,62,101,63,131,0,90,64,100,116,100,2,101,64, + 100,66,132,0,90,57,100,67,100,68,132,0,90,58,100,117, + 100,69,100,70,132,1,90,59,100,118,100,71,100,72,132,1, + 90,60,100,119,100,74,100,75,132,1,90,61,100,76,100,77, + 132,0,90,62,101,63,131,0,90,64,100,120,100,2,101,64, 100,78,156,2,100,79,100,80,132,3,90,65,71,0,100,81, 100,82,132,0,100,82,131,2,90,66,71,0,100,83,100,84, 132,0,100,84,131,2,90,67,71,0,100,85,100,86,132,0, @@ -45,2609 +45,2765 @@ 71,0,100,95,100,96,132,0,100,96,131,2,90,74,71,0, 100,97,100,98,132,0,100,98,131,2,90,75,71,0,100,99, 100,100,132,0,100,100,131,2,90,76,71,0,100,101,100,102, - 132,0,100,102,131,2,90,77,100,117,100,103,100,104,132,1, - 90,78,100,105,100,106,132,0,90,79,100,107,100,108,132,0, - 90,80,100,109,100,110,132,0,90,81,100,2,83,0,41,118, - 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,233,0,0,0,0,78,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, - 26,0,0,0,124,0,93,18,125,1,116,0,124,1,131,1, - 100,0,107,2,86,0,1,0,113,2,100,1,83,0,169,2, - 233,1,0,0,0,78,169,1,218,3,108,101,110,169,2,218, - 2,46,48,218,3,115,101,112,169,0,114,10,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,43,0,0,0,115,4,0,0,0,4,0,2,0,114, - 12,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,14,125,1,100,0,124,1, - 155,0,157,2,146,2,113,4,83,0,169,1,250,1,58,114, - 10,0,0,0,169,2,114,8,0,0,0,218,1,115,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,218,9,60, - 115,101,116,99,111,109,112,62,47,0,0,0,115,4,0,0, - 0,6,0,2,0,114,18,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,60,0,0, - 0,116,0,106,1,160,2,116,3,161,1,114,48,116,0,106, - 1,160,2,116,4,161,1,114,30,100,1,137,0,110,4,100, - 2,137,0,135,0,102,1,100,3,100,4,132,8,125,0,110, - 8,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,10,0,0,0,136,0,116, - 0,106,1,107,6,83,0,41,1,250,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, - 41,2,218,3,95,111,115,90,7,101,110,118,105,114,111,110, - 114,10,0,0,0,169,1,218,3,107,101,121,114,10,0,0, - 0,114,11,0,0,0,218,11,95,114,101,108,97,120,95,99, - 97,115,101,64,0,0,0,115,2,0,0,0,0,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,115,4, - 0,0,0,100,1,83,0,41,2,114,20,0,0,0,70,114, - 10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,24,0,0,0,68,0,0, - 0,115,2,0,0,0,0,2,41,5,218,3,115,121,115,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,10, - 0,0,0,114,22,0,0,0,114,11,0,0,0,218,16,95, - 109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,57, - 0,0,0,115,14,0,0,0,0,1,12,1,12,1,6,2, - 4,2,14,4,8,3,114,30,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,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,218,12,95,112,97,99,107,95, - 117,105,110,116,51,50,74,0,0,0,115,2,0,0,0,0, - 2,114,37,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, - 28,0,0,0,116,0,124,0,131,1,100,1,107,2,115,16, - 116,1,130,1,116,2,160,3,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,32,0,0,0,114,33,0,0,0,169,4,114, - 6,0,0,0,218,14,65,115,115,101,114,116,105,111,110,69, - 114,114,111,114,114,34,0,0,0,218,10,102,114,111,109,95, - 98,121,116,101,115,169,1,218,4,100,97,116,97,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,14,95,117, - 110,112,97,99,107,95,117,105,110,116,51,50,79,0,0,0, - 115,4,0,0,0,0,2,16,1,114,43,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,28,0,0,0,116,0,124,0, - 131,1,100,1,107,2,115,16,116,1,130,1,116,2,160,3, - 124,0,100,2,161,2,83,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,33,0,0,0,114,38,0,0,0,114,41,0,0,0,114, + 132,0,100,102,131,2,90,77,71,0,100,103,100,104,132,0, + 100,104,101,73,131,3,90,78,71,0,100,105,100,106,132,0, + 100,106,131,2,90,79,100,121,100,107,100,108,132,1,90,80, + 100,109,100,110,132,0,90,81,100,111,100,112,132,0,90,82, + 100,113,100,114,132,0,90,83,100,2,83,0,41,122,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,233,0,0,0,0,78,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,26,0, + 0,0,124,0,93,18,125,1,116,0,124,1,131,1,100,0, + 107,2,86,0,1,0,113,2,100,1,83,0,169,2,233,1, + 0,0,0,78,169,1,218,3,108,101,110,169,2,218,2,46, + 48,218,3,115,101,112,169,0,114,10,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, + 43,0,0,0,115,4,0,0,0,4,0,2,0,114,12,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,14,125,1,100,0,124,1,155,0, + 157,2,146,2,113,4,83,0,169,1,250,1,58,114,10,0, + 0,0,169,2,114,8,0,0,0,218,1,115,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,218,9,60,115,101, + 116,99,111,109,112,62,47,0,0,0,115,4,0,0,0,6, + 0,2,0,114,18,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,60, + 0,0,0,116,0,106,1,160,2,116,3,161,1,114,48,116, + 0,106,1,160,2,116,4,161,1,114,30,100,1,137,0,110, + 4,100,2,137,0,135,0,102,1,100,3,100,4,132,8,125, + 0,110,8,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,10,0,0,0,136, + 0,116,0,106,1,107,6,83,0,41,1,250,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,41,2,218,3,95,111,115,90,7,101,110,118,105,114, + 111,110,114,10,0,0,0,169,1,218,3,107,101,121,114,10, + 0,0,0,114,11,0,0,0,218,11,95,114,101,108,97,120, + 95,99,97,115,101,64,0,0,0,115,2,0,0,0,0,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, + 115,4,0,0,0,100,1,83,0,41,2,114,23,0,0,0, + 70,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,114,27,0,0,0,68, + 0,0,0,115,2,0,0,0,0,2,41,5,218,3,115,121, + 115,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,27,0,0,0, + 114,10,0,0,0,114,25,0,0,0,114,11,0,0,0,218, + 16,95,109,97,107,101,95,114,101,108,97,120,95,99,97,115, + 101,57,0,0,0,115,14,0,0,0,0,1,12,1,12,1, + 6,2,4,2,14,4,8,3,114,33,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,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,12,95,112,97,99, + 107,95,117,105,110,116,51,50,74,0,0,0,115,2,0,0, + 0,0,2,114,40,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,28,0,0,0,116,0,124,0,131,1,100,1,107,2, + 115,16,116,1,130,1,116,2,160,3,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,35,0,0,0,114,36,0,0,0,169, + 4,114,6,0,0,0,218,14,65,115,115,101,114,116,105,111, + 110,69,114,114,111,114,114,37,0,0,0,218,10,102,114,111, + 109,95,98,121,116,101,115,169,1,218,4,100,97,116,97,114, 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,14, - 95,117,110,112,97,99,107,95,117,105,110,116,49,54,84,0, - 0,0,115,4,0,0,0,0,2,16,1,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,8,100,1,83,0,116,0,124,0,131,1,100,2,107,2, - 114,28,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,122, - 92,2,125,3,125,4,124,3,160,4,116,5,161,1,115,76, - 124,3,160,6,116,5,161,1,114,102,124,3,160,7,116,8, - 161,1,112,88,124,1,125,1,116,9,124,4,23,0,103,1, - 125,2,113,48,124,3,160,6,100,4,161,1,114,152,124,1, - 160,10,161,0,124,3,160,10,161,0,107,3,114,140,124,3, - 125,1,124,4,103,1,125,2,113,170,124,2,160,11,124,4, - 161,1,1,0,113,48,124,3,112,158,124,1,125,1,124,2, - 160,11,124,4,161,1,1,0,113,48,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,214,124,2,100,3,25,0,115,214,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,13,0,0,0,114,4,0,0,0,114, - 0,0,0,0,114,15,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,115,26,0,0,0,103,0,124,0,93,18,125,1,124, - 1,114,4,124,1,160,0,116,1,161,1,145,2,113,4,83, - 0,114,10,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,8,0,0,0,218,1,112,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,10,60,108,105,115, - 116,99,111,109,112,62,114,0,0,0,115,6,0,0,0,6, - 0,2,0,4,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,6,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,27,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,48,0,0,0,114,49,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,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,218,10,95,112,97, - 116,104,95,106,111,105,110,91,0,0,0,115,42,0,0,0, - 0,2,4,1,4,1,12,1,8,1,4,1,4,1,20,1, - 20,1,14,1,12,1,10,1,16,3,4,1,8,2,12,2, - 8,1,12,1,14,1,20,2,8,1,114,66,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,115,26,0,0,0,103,0,124,0,93,18,125,1,124,1, - 114,4,124,1,160,0,116,1,161,1,145,2,113,4,83,0, - 114,10,0,0,0,114,47,0,0,0,41,2,114,8,0,0, - 0,218,4,112,97,114,116,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,52,0,0,0,123,0,0,0,115, - 6,0,0,0,6,1,2,0,4,255,114,53,0,0,0,41, - 2,114,58,0,0,0,114,61,0,0,0,41,1,114,62,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,66,0,0,0,121,0,0,0,115,6,0,0,0,0, - 2,10,1,2,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, - 38,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,24,0,0,0,124,0,93,16,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,50,0,0,0, - 169,1,114,64,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,12,0,0,0,129,0,0,0,115,4,0,0,0,4, - 0,2,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,13,0,0,0,78,114,4, - 0,0,0,41,2,218,3,109,97,120,114,49,0,0,0,41, - 2,114,64,0,0,0,218,1,105,114,10,0,0,0,114,70, - 0,0,0,114,11,0,0,0,218,11,95,112,97,116,104,95, - 115,112,108,105,116,127,0,0,0,115,8,0,0,0,0,2, - 22,1,8,1,8,1,114,73,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,70,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,10,95,112,97,116,104,95,115,116, - 97,116,135,0,0,0,115,2,0,0,0,0,7,114,74,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,50,0,0,0, - 122,12,116,0,124,0,131,1,125,2,87,0,110,22,4,0, - 116,1,107,10,114,34,1,0,1,0,1,0,89,0,100,1, - 83,0,88,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, - 74,0,0,0,218,7,79,83,69,114,114,111,114,218,7,115, - 116,95,109,111,100,101,41,3,114,64,0,0,0,218,4,109, - 111,100,101,90,9,115,116,97,116,95,105,110,102,111,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,218,18,95, - 112,97,116,104,95,105,115,95,109,111,100,101,95,116,121,112, - 101,145,0,0,0,115,10,0,0,0,0,2,2,1,12,1, - 14,1,8,1,114,78,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,78,0,0,0, - 114,70,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,218,12,95,112,97,116,104,95,105,115,102,105, - 108,101,154,0,0,0,115,2,0,0,0,0,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,22,0,0,0, - 124,0,115,12,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,78,0,0, - 0,114,70,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,218,11,95,112,97,116,104,95,105,115,100, - 105,114,159,0,0,0,115,6,0,0,0,0,2,4,1,8, - 1,114,81,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,8,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,60,124,1, - 160,4,100,6,161,1,112,60,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,4,0,0,0,122,2,92,92,41,6,114, - 21,0,0,0,114,55,0,0,0,218,7,114,101,112,108,97, - 99,101,114,6,0,0,0,114,27,0,0,0,114,57,0,0, - 0,41,2,114,64,0,0,0,114,63,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,11,95,112, - 97,116,104,95,105,115,97,98,115,167,0,0,0,115,8,0, - 0,0,0,2,4,1,4,1,22,1,114,84,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,82,0,0,0,41,2, - 114,27,0,0,0,114,49,0,0,0,114,70,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,84, - 0,0,0,175,0,0,0,115,2,0,0,0,0,2,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,162,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,50,116,7,160,8,124,4,100,3,161,2,143,16,125, - 5,124,5,160,9,124,1,161,1,1,0,87,0,53,0,81, - 0,82,0,88,0,116,2,160,10,124,3,124,0,161,2,1, - 0,87,0,110,58,4,0,116,11,107,10,114,156,1,0,1, - 0,1,0,122,14,116,2,160,12,124,3,161,1,1,0,87, - 0,110,20,4,0,116,11,107,10,114,148,1,0,1,0,1, - 0,89,0,110,2,88,0,130,0,89,0,110,2,88,0,100, - 4,83,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,85,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,83,0,0,0,114,75,0,0,0,90,6,117,110, - 108,105,110,107,41,6,114,64,0,0,0,114,42,0,0,0, - 114,77,0,0,0,90,8,112,97,116,104,95,116,109,112,90, - 2,102,100,218,4,102,105,108,101,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,218,13,95,119,114,105,116,101, - 95,97,116,111,109,105,99,180,0,0,0,115,30,0,0,0, - 0,5,16,1,6,1,16,0,6,255,4,2,2,3,14,1, - 20,1,16,1,14,1,2,1,14,1,14,1,6,1,114,93, - 0,0,0,105,85,13,0,0,114,44,0,0,0,114,33,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,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,88,1,0,0,124,1,100,1,107,9,114,52,116,0,160, - 1,100,2,116,2,161,2,1,0,124,2,100,1,107,9,114, - 40,100,3,125,3,116,3,124,3,131,1,130,1,124,1,114, - 48,100,4,110,2,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,107,8,114,114,116, - 11,100,7,131,1,130,1,100,4,160,12,124,6,114,126,124, - 6,110,2,124,8,124,7,124,9,103,3,161,1,125,10,124, - 2,100,1,107,8,114,172,116,8,106,13,106,14,100,8,107, - 2,114,164,100,4,125,2,110,8,116,8,106,13,106,14,125, - 2,116,15,124,2,131,1,125,2,124,2,100,4,107,3,114, - 224,124,2,160,16,161,0,115,210,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,107,9,144,1,114,76,116,22,124, - 4,131,1,144,1,115,16,116,23,116,4,160,24,161,0,124, - 4,131,2,125,4,124,4,100,5,25,0,100,11,107,2,144, - 1,114,56,124,4,100,8,25,0,116,25,107,7,144,1,114, - 56,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, - 13,0,0,0,114,4,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,15,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,21,0,0,0,218,6,102,115,112, - 97,116,104,114,73,0,0,0,218,10,114,112,97,114,116,105, - 116,105,111,110,114,25,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,61,0,0,0,218,5, - 102,108,97,103,115,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,87,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,84,0,0,0,114,66,0,0, - 0,114,80,0,0,0,114,49,0,0,0,218,6,108,115,116, - 114,105,112,218,8,95,80,89,67,65,67,72,69,41,12,114, - 64,0,0,0,90,14,100,101,98,117,103,95,111,118,101,114, - 114,105,100,101,114,94,0,0,0,218,7,109,101,115,115,97, - 103,101,218,4,104,101,97,100,114,65,0,0,0,90,4,98, - 97,115,101,114,9,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,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,218,17,99, - 97,99,104,101,95,102,114,111,109,95,115,111,117,114,99,101, - 98,1,0,0,115,72,0,0,0,0,18,8,1,6,1,2, - 255,4,2,8,1,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,2,8, - 1,8,1,8,1,8,1,14,1,14,1,12,1,12,9,10, - 1,14,5,28,1,12,4,2,1,4,1,8,1,2,253,4, - 5,114,120,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, - 46,1,0,0,116,0,106,1,106,2,100,1,107,8,114,20, - 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,107,9,114,102,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,102,124,1,116,12,124,4,131,1,100,1, - 133,2,25,0,125,1,100,4,125,3,124,3,115,144,116,6, - 124,1,131,1,92,2,125,1,125,5,124,5,116,13,107,3, - 114,144,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,107,7,114,178,116,14,100,8,124,2,155,2,157,2, - 131,1,130,1,110,92,124,6,100,9,107,2,144,1,114,14, - 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,228,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,144,1, - 115,14,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,96,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,95,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,121,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,25,0,0,0,114,103,0,0,0,114,104, - 0,0,0,114,105,0,0,0,114,21,0,0,0,114,101,0, - 0,0,114,73,0,0,0,114,113,0,0,0,114,48,0,0, - 0,114,49,0,0,0,114,27,0,0,0,114,58,0,0,0, - 114,6,0,0,0,114,115,0,0,0,114,110,0,0,0,218, - 5,99,111,117,110,116,218,6,114,115,112,108,105,116,114,111, - 0,0,0,114,109,0,0,0,218,9,112,97,114,116,105,116, - 105,111,110,114,66,0,0,0,218,15,83,79,85,82,67,69, - 95,83,85,70,70,73,88,69,83,41,10,114,64,0,0,0, - 114,117,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,94,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,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,218,17,115,111,117,114,99,101,95,102,114,111,109,95,99, - 97,99,104,101,169,1,0,0,115,52,0,0,0,0,9,12, - 1,8,1,10,1,12,1,4,1,10,1,12,1,14,1,16, - 1,4,1,4,1,12,1,8,1,18,2,10,1,8,1,16, - 1,10,1,16,1,10,1,14,2,16,1,10,1,16,2,14, - 1,114,127,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, - 126,0,0,0,116,0,124,0,131,1,100,1,107,2,114,16, - 100,2,83,0,124,0,160,1,100,3,161,1,92,3,125,1, - 125,2,125,3,124,1,114,56,124,3,160,2,161,0,100,4, - 100,5,133,2,25,0,100,6,107,3,114,60,124,0,83,0, - 122,12,116,3,124,0,131,1,125,4,87,0,110,36,4,0, - 116,4,116,5,102,2,107,10,114,108,1,0,1,0,1,0, - 124,0,100,2,100,5,133,2,25,0,125,4,89,0,110,2, - 88,0,116,6,124,4,131,1,114,122,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,95,0,0,0,233,253,255, - 255,255,233,255,255,255,255,90,2,112,121,41,7,114,6,0, - 0,0,114,102,0,0,0,218,5,108,111,119,101,114,114,127, - 0,0,0,114,105,0,0,0,114,110,0,0,0,114,79,0, - 0,0,41,5,218,13,98,121,116,101,99,111,100,101,95,112, - 97,116,104,114,118,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,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,15,95,103,101,116,95,115,111,117,114,99,101,102, - 105,108,101,209,1,0,0,115,20,0,0,0,0,7,12,1, - 4,1,16,1,24,1,4,1,2,1,12,1,18,1,18,1, - 114,134,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,74, - 0,0,0,124,0,160,0,116,1,116,2,131,1,161,1,114, - 48,122,10,116,3,124,0,131,1,87,0,83,0,4,0,116, - 4,107,10,114,44,1,0,1,0,1,0,89,0,113,70,88, - 0,110,22,124,0,160,0,116,1,116,5,131,1,161,1,114, - 66,124,0,83,0,100,0,83,0,100,0,83,0,114,68,0, - 0,0,41,6,114,57,0,0,0,218,5,116,117,112,108,101, - 114,126,0,0,0,114,120,0,0,0,114,105,0,0,0,114, - 112,0,0,0,41,1,114,119,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,11,95,103,101,116, - 95,99,97,99,104,101,100,228,1,0,0,115,16,0,0,0, - 0,1,14,1,2,1,10,1,14,1,8,1,14,1,4,2, - 114,136,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,52, - 0,0,0,122,14,116,0,124,0,131,1,106,1,125,1,87, - 0,110,24,4,0,116,2,107,10,114,38,1,0,1,0,1, - 0,100,1,125,1,89,0,110,2,88,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,85, - 0,0,0,233,128,0,0,0,41,3,114,74,0,0,0,114, - 76,0,0,0,114,75,0,0,0,41,2,114,64,0,0,0, - 114,77,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,218,10,95,99,97,108,99,95,109,111,100,101, - 240,1,0,0,115,12,0,0,0,0,2,2,1,14,1,14, - 1,10,3,8,1,114,138,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,8,0,0,0,3, - 0,0,0,115,68,0,0,0,100,6,135,0,102,1,100,2, - 100,3,132,9,125,1,122,10,116,0,106,1,125,2,87,0, - 110,28,4,0,116,2,107,10,114,52,1,0,1,0,1,0, - 100,4,100,5,132,0,125,2,89,0,110,2,88,0,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,66,0,0,0,124,1,100,0,107, - 8,114,16,124,0,106,0,125,1,110,32,124,0,106,0,124, - 1,107,3,114,48,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,102,2,124,2,158,2,124,3,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,140,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,140,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,10,0,0,0,114,11,0,0,0,218,19,95,99,104, - 101,99,107,95,110,97,109,101,95,119,114,97,112,112,101,114, - 4,2,0,0,115,18,0,0,0,0,1,8,1,8,1,10, - 1,4,1,8,255,2,1,2,255,6,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,32,125,2,116,0,124,1,124, - 2,131,2,114,4,116,1,124,0,124,2,116,2,124,1,124, - 2,131,2,131,3,1,0,113,4,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,83,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,5,95,119, - 114,97,112,15,2,0,0,115,8,0,0,0,0,1,8,1, - 10,1,20,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, - 41,1,78,41,3,218,10,95,98,111,111,116,115,116,114,97, - 112,114,157,0,0,0,218,9,78,97,109,101,69,114,114,111, - 114,41,3,114,146,0,0,0,114,147,0,0,0,114,157,0, - 0,0,114,10,0,0,0,114,145,0,0,0,114,11,0,0, - 0,218,11,95,99,104,101,99,107,95,110,97,109,101,252,1, - 0,0,115,14,0,0,0,0,8,14,7,2,1,10,1,14, - 2,14,5,10,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,60,0,0,0,124,0,160,0,124,1,161,1, - 92,2,125,2,125,3,124,2,100,1,107,8,114,56,116,1, - 124,3,131,1,114,56,100,2,125,4,116,2,160,3,124,4, - 160,4,124,3,100,3,25,0,161,1,116,5,161,2,1,0, - 124,2,83,0,41,4,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, + 95,117,110,112,97,99,107,95,117,105,110,116,51,50,79,0, + 0,0,115,4,0,0,0,0,2,16,1,114,46,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,28,0,0,0,116,0, + 124,0,131,1,100,1,107,2,115,16,116,1,130,1,116,2, + 160,3,124,0,100,2,161,2,83,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,36,0,0,0,114,41,0,0,0,114,44,0,0, + 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 218,14,95,117,110,112,97,99,107,95,117,105,110,116,49,54, + 84,0,0,0,115,4,0,0,0,0,2,16,1,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,8,100,1,83,0,116,0,124,0,131,1,100,2, + 107,2,114,28,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,122,92,2,125,3,125,4,124,3,160,4,116,5,161,1, + 115,76,124,3,160,6,116,5,161,1,114,102,124,3,160,7, + 116,8,161,1,112,88,124,1,125,1,116,9,124,4,23,0, + 103,1,125,2,113,48,124,3,160,6,100,4,161,1,114,152, + 124,1,160,10,161,0,124,3,160,10,161,0,107,3,114,140, + 124,3,125,1,124,4,103,1,125,2,113,170,124,2,160,11, + 124,4,161,1,1,0,113,48,124,3,112,158,124,1,125,1, + 124,2,160,11,124,4,161,1,1,0,113,48,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,214,124,2,100,3,25,0,115,214,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,13,0,0,0,114,4,0,0, + 0,114,0,0,0,0,114,15,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,115,26,0,0,0,103,0,124,0,93,18,125, + 1,124,1,114,4,124,1,160,0,116,1,161,1,145,2,113, + 4,83,0,114,10,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,8,0,0,0,218,1,112,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,218,10,60,108, + 105,115,116,99,111,109,112,62,114,0,0,0,115,6,0,0, + 0,6,0,2,0,4,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,6,0,0,0,218,3, + 109,97,112,114,24,0,0,0,218,15,95,112,97,116,104,95, + 115,112,108,105,116,114,111,111,116,114,30,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,51,0,0,0,114,52,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,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,218,10,95, + 112,97,116,104,95,106,111,105,110,91,0,0,0,115,42,0, + 0,0,0,2,4,1,4,1,12,1,8,1,4,1,4,1, + 20,1,20,1,14,1,12,1,10,1,16,3,4,1,8,2, + 12,2,8,1,12,1,14,1,20,2,8,1,114,69,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,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,115,26,0,0,0,103,0,124,0,93,18,125,1, + 124,1,114,4,124,1,160,0,116,1,161,1,145,2,113,4, + 83,0,114,10,0,0,0,114,50,0,0,0,41,2,114,8, + 0,0,0,218,4,112,97,114,116,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,55,0,0,0,123,0,0, + 0,115,6,0,0,0,6,1,2,0,4,255,114,56,0,0, + 0,41,2,114,61,0,0,0,114,64,0,0,0,41,1,114, + 65,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,69,0,0,0,121,0,0,0,115,6,0,0, + 0,0,2,10,1,2,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,38,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,24,0,0,0,124,0,93,16,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,53,0, + 0,0,169,1,114,67,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,12,0,0,0,129,0,0,0,115,4,0,0, + 0,4,0,2,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,13,0,0,0,78, + 114,4,0,0,0,41,2,218,3,109,97,120,114,52,0,0, + 0,41,2,114,67,0,0,0,218,1,105,114,10,0,0,0, + 114,73,0,0,0,114,11,0,0,0,218,11,95,112,97,116, + 104,95,115,112,108,105,116,127,0,0,0,115,8,0,0,0, + 0,2,22,1,8,1,8,1,114,76,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,24,0,0,0,90,4, + 115,116,97,116,114,73,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,218,10,95,112,97,116,104,95, + 115,116,97,116,135,0,0,0,115,2,0,0,0,0,7,114, + 77,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,50,0, + 0,0,122,12,116,0,124,0,131,1,125,2,87,0,110,22, + 4,0,116,1,107,10,114,34,1,0,1,0,1,0,89,0, + 100,1,83,0,88,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,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,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,6,218,11,102,105,110,100,95, - 108,111,97,100,101,114,114,6,0,0,0,114,97,0,0,0, - 114,98,0,0,0,114,87,0,0,0,218,13,73,109,112,111, - 114,116,87,97,114,110,105,110,103,41,5,114,142,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,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,17,95,102,105,110,100,95,109,111,100,117,108,101,95,115, - 104,105,109,24,2,0,0,115,10,0,0,0,0,10,14,1, - 16,1,4,1,22,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,158,0,0,0,124,0,100,1,100,2,133, - 2,25,0,125,3,124,3,116,0,107,3,114,60,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,124, - 2,142,1,130,1,116,4,124,0,131,1,100,6,107,0,114, - 102,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,154,100,10,124,5,155,2,100,11,124, - 1,155,2,157,4,125,4,116,3,124,4,102,1,124,2,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,32,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,158,0,0,0,218,16,95,118,101,114, - 98,111,115,101,95,109,101,115,115,97,103,101,114,141,0,0, - 0,114,6,0,0,0,218,8,69,79,70,69,114,114,111,114, - 114,43,0,0,0,41,6,114,42,0,0,0,114,140,0,0, - 0,218,11,101,120,99,95,100,101,116,97,105,108,115,90,5, - 109,97,103,105,99,114,116,0,0,0,114,106,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,13, - 95,99,108,97,115,115,105,102,121,95,112,121,99,41,2,0, - 0,115,28,0,0,0,0,16,12,1,8,1,16,1,12,1, - 12,1,12,1,10,1,12,1,8,1,16,2,8,1,16,1, - 12,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,112,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,58,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,124,4,142,1,130,1,124, - 2,100,6,107,9,114,108,116,0,124,0,100,2,100,7,133, - 2,25,0,131,1,124,2,100,3,64,0,107,3,114,108,116, - 3,100,4,124,3,155,2,157,2,102,1,124,4,142,1,130, - 1,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,170,0,0,0,233,12,0,0,0,114,31,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,43,0,0,0,114,158,0,0, - 0,114,173,0,0,0,114,141,0,0,0,41,6,114,42,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,140,0, - 0,0,114,175,0,0,0,114,116,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,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,74,2,0,0,115,16,0,0,0,0,19,24, - 1,10,1,12,1,12,1,8,1,22,255,2,2,114,180,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,38,0,0,0, - 124,0,100,1,100,2,133,2,25,0,124,1,107,3,114,34, - 116,0,100,3,124,2,155,2,157,2,102,1,124,3,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,141,0, - 0,0,41,4,114,42,0,0,0,218,11,115,111,117,114,99, - 101,95,104,97,115,104,114,140,0,0,0,114,175,0,0,0, + 111,100,101,32,116,121,112,101,46,70,105,0,240,0,0,41, + 3,114,77,0,0,0,218,7,79,83,69,114,114,111,114,218, + 7,115,116,95,109,111,100,101,41,3,114,67,0,0,0,218, + 4,109,111,100,101,90,9,115,116,97,116,95,105,110,102,111, 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, - 18,95,118,97,108,105,100,97,116,101,95,104,97,115,104,95, - 112,121,99,102,2,0,0,115,12,0,0,0,0,17,16,1, - 2,1,8,255,2,2,2,254,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,80,0,0,0,116,0,160,1,124, - 0,161,1,125,4,116,2,124,4,116,3,131,2,114,56,116, - 4,160,5,100,1,124,2,161,2,1,0,124,3,100,2,107, - 9,114,52,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,100,2,83,0,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,140,0,0,0,114,64,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,158,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,141,0,0,0, - 114,87,0,0,0,41,5,114,42,0,0,0,114,140,0,0, - 0,114,131,0,0,0,114,133,0,0,0,218,4,99,111,100, - 101,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,17,95,99,111,109,112,105,108,101,95,98,121,116,101,99, - 111,100,101,126,2,0,0,115,20,0,0,0,0,2,10,1, - 10,1,12,1,8,1,12,1,4,2,10,1,2,0,2,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,37,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,42,0,0,0, + 18,95,112,97,116,104,95,105,115,95,109,111,100,101,95,116, + 121,112,101,145,0,0,0,115,10,0,0,0,0,2,2,1, + 12,1,14,1,8,1,114,81,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,81,0, + 0,0,114,73,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,218,12,95,112,97,116,104,95,105,115, + 102,105,108,101,154,0,0,0,115,2,0,0,0,0,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,22,0, + 0,0,124,0,115,12,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,24,0,0,0,218,6,103,101,116,99,119,100,114,81, + 0,0,0,114,73,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,218,11,95,112,97,116,104,95,105, + 115,100,105,114,159,0,0,0,115,6,0,0,0,0,2,4, + 1,8,1,114,84,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,8,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,60, + 124,1,160,4,100,6,161,1,112,60,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,4,0,0,0,122,2,92,92,41, + 6,114,24,0,0,0,114,58,0,0,0,218,7,114,101,112, + 108,97,99,101,114,6,0,0,0,114,30,0,0,0,114,60, + 0,0,0,41,2,114,67,0,0,0,114,66,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,11, + 95,112,97,116,104,95,105,115,97,98,115,167,0,0,0,115, + 8,0,0,0,0,2,4,1,4,1,22,1,114,87,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,85,0,0,0, + 41,2,114,30,0,0,0,114,52,0,0,0,114,73,0,0, + 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 114,87,0,0,0,175,0,0,0,115,2,0,0,0,0,2, + 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,162, + 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,50,116,7,160,8,124,4,100,3,161,2,143, + 16,125,5,124,5,160,9,124,1,161,1,1,0,87,0,53, + 0,81,0,82,0,88,0,116,2,160,10,124,3,124,0,161, + 2,1,0,87,0,110,58,4,0,116,11,107,10,114,156,1, + 0,1,0,1,0,122,14,116,2,160,12,124,3,161,1,1, + 0,87,0,110,20,4,0,116,11,107,10,114,148,1,0,1, + 0,1,0,89,0,110,2,88,0,130,0,89,0,110,2,88, + 0,100,4,83,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,88,0,0,0,90,2,119,98,78,41,13,218,6, + 102,111,114,109,97,116,218,2,105,100,114,24,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,86,0,0,0,114,78,0,0,0,90,6, + 117,110,108,105,110,107,41,6,114,67,0,0,0,114,45,0, + 0,0,114,80,0,0,0,90,8,112,97,116,104,95,116,109, + 112,90,2,102,100,218,4,102,105,108,101,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,13,95,119,114,105, + 116,101,95,97,116,111,109,105,99,180,0,0,0,115,30,0, + 0,0,0,5,16,1,6,1,16,0,6,255,4,2,2,3, + 14,1,20,1,16,1,14,1,2,1,14,1,14,1,6,1, + 114,96,0,0,0,105,85,13,0,0,114,47,0,0,0,114, + 36,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,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,88,1,0,0,124,1,100,1,107,9,114,52,116, + 0,160,1,100,2,116,2,161,2,1,0,124,2,100,1,107, + 9,114,40,100,3,125,3,116,3,124,3,131,1,130,1,124, + 1,114,48,100,4,110,2,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,107,8,114, + 114,116,11,100,7,131,1,130,1,100,4,160,12,124,6,114, + 126,124,6,110,2,124,8,124,7,124,9,103,3,161,1,125, + 10,124,2,100,1,107,8,114,172,116,8,106,13,106,14,100, + 8,107,2,114,164,100,4,125,2,110,8,116,8,106,13,106, + 14,125,2,116,15,124,2,131,1,125,2,124,2,100,4,107, + 3,114,224,124,2,160,16,161,0,115,210,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,107,9,144,1,114,76,116, + 22,124,4,131,1,144,1,115,16,116,23,116,4,160,24,161, + 0,124,4,131,2,125,4,124,4,100,5,25,0,100,11,107, + 2,144,1,114,56,124,4,100,8,25,0,116,25,107,7,144, + 1,114,56,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,13,0,0,0,114,4,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,15,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,24,0,0,0,218,6,102, + 115,112,97,116,104,114,76,0,0,0,218,10,114,112,97,114, + 116,105,116,105,111,110,114,28,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,64,0,0,0, + 218,5,102,108,97,103,115,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,90,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,87,0,0,0,114,69, + 0,0,0,114,83,0,0,0,114,52,0,0,0,218,6,108, + 115,116,114,105,112,218,8,95,80,89,67,65,67,72,69,41, + 12,114,67,0,0,0,90,14,100,101,98,117,103,95,111,118, + 101,114,114,105,100,101,114,97,0,0,0,218,7,109,101,115, + 115,97,103,101,218,4,104,101,97,100,114,68,0,0,0,90, + 4,98,97,115,101,114,9,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,10,0,0,0,114,10,0,0,0,114,11,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,139,2,0,0,115,12,0,0,0, - 0,2,8,1,14,1,14,1,14,1,16,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,50,116,5, - 130,1,124,3,160,2,124,1,161,1,1,0,124,3,160,2, - 116,6,160,7,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,4,0,0,0,114, - 170,0,0,0,41,8,114,190,0,0,0,114,172,0,0,0, - 114,191,0,0,0,114,37,0,0,0,114,6,0,0,0,114, - 39,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,42,0,0,0,114,106,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,218,17,95,99, - 111,100,101,95,116,111,95,104,97,115,104,95,112,121,99,149, - 2,0,0,115,14,0,0,0,0,2,8,1,12,1,14,1, - 16,1,10,1,16,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,89,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,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,218,13,100,101,99,111,100, - 101,95,115,111,117,114,99,101,160,2,0,0,115,10,0,0, - 0,0,5,8,1,12,1,10,1,12,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,16,1,0, - 0,124,1,100,1,107,8,114,60,100,2,125,1,116,0,124, - 2,100,3,131,2,114,70,122,14,124,2,160,1,124,0,161, - 1,125,1,87,0,113,70,4,0,116,2,107,10,114,56,1, - 0,1,0,1,0,89,0,113,70,88,0,110,10,116,3,160, - 4,124,1,161,1,125,1,116,5,106,6,124,0,124,2,124, - 1,100,4,141,3,125,4,100,5,124,4,95,7,124,2,100, - 1,107,8,114,154,116,8,131,0,68,0,93,42,92,2,125, - 5,125,6,124,1,160,9,116,10,124,6,131,1,161,1,114, - 106,124,5,124,0,124,1,131,2,125,2,124,2,124,4,95, - 11,1,0,113,154,113,106,100,1,83,0,124,3,116,12,107, - 8,114,220,116,0,124,2,100,6,131,2,114,226,122,14,124, - 2,160,13,124,0,161,1,125,7,87,0,110,20,4,0,116, - 2,107,10,114,206,1,0,1,0,1,0,89,0,113,226,88, - 0,124,7,114,226,103,0,124,4,95,14,110,6,124,3,124, - 4,95,14,124,4,106,14,103,0,107,2,144,1,114,12,124, - 1,144,1,114,12,116,15,124,1,131,1,100,7,25,0,125, - 8,124,4,106,14,160,16,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,17,114,152,0, - 0,0,114,203,0,0,0,114,141,0,0,0,114,21,0,0, - 0,114,101,0,0,0,114,158,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,57,0,0,0,114,135,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,73,0,0,0,114,60,0,0, - 0,41,9,114,140,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,10,0,0,0,114,10,0, - 0,0,114,11,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, - 177,2,0,0,115,62,0,0,0,0,12,8,4,4,1,10, - 2,2,1,14,1,14,1,8,2,10,8,16,1,6,3,8, - 1,14,1,14,1,10,1,6,1,6,2,4,3,8,2,10, - 1,2,1,14,1,14,1,6,2,4,1,8,2,6,1,12, - 1,6,1,12,1,12,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,80,0,0,0,101,0,90,1,100,0, - 90,2,100,1,90,3,100,2,90,4,100,3,90,5,100,4, - 90,6,101,7,100,5,100,6,132,0,131,1,90,8,101,7, - 100,7,100,8,132,0,131,1,90,9,101,7,100,14,100,10, - 100,11,132,1,131,1,90,10,101,7,100,15,100,12,100,13, - 132,1,131,1,90,11,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,70,99,2,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,8,0,0,0,67,0,0,0,115,56,0, - 0,0,122,16,116,0,160,1,116,0,106,2,124,1,161,2, - 87,0,83,0,4,0,116,3,107,10,114,50,1,0,1,0, - 1,0,116,0,160,1,116,0,106,4,124,1,161,2,6,0, - 89,0,83,0,88,0,100,0,83,0,114,68,0,0,0,41, - 5,218,7,95,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,75,0,0,0,90,18,72,75,69, - 89,95,76,79,67,65,76,95,77,65,67,72,73,78,69,41, - 2,218,3,99,108,115,114,23,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,14,95,111,112,101, - 110,95,114,101,103,105,115,116,114,121,1,3,0,0,115,8, - 0,0,0,0,2,2,1,16,1,14,1,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,9,0,0,0,67,0,0,0,115,114,0,0,0,124, - 0,106,0,114,14,124,0,106,1,125,2,110,6,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, - 38,124,0,160,6,124,3,161,1,143,18,125,4,116,7,160, - 8,124,4,100,4,161,2,125,5,87,0,53,0,81,0,82, - 0,88,0,87,0,110,22,4,0,116,9,107,10,114,108,1, - 0,1,0,1,0,89,0,100,0,83,0,88,0,124,5,83, - 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,13,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,87,0,0,0,114, - 25,0,0,0,218,12,118,101,114,115,105,111,110,95,105,110, - 102,111,114,217,0,0,0,114,215,0,0,0,90,10,81,117, - 101,114,121,86,97,108,117,101,114,75,0,0,0,41,6,114, - 216,0,0,0,114,163,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,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,218,16,95,115,101, - 97,114,99,104,95,114,101,103,105,115,116,114,121,8,3,0, - 0,115,24,0,0,0,0,2,6,1,8,2,6,1,6,1, - 16,255,6,2,2,1,12,1,26,1,14,1,8,1,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,122,0,0,0,124,0,160,0,124,1,161,1,125,4,124, - 4,100,0,107,8,114,22,100,0,83,0,122,12,116,1,124, - 4,131,1,1,0,87,0,110,22,4,0,116,2,107,10,114, - 56,1,0,1,0,1,0,89,0,100,0,83,0,88,0,116, - 3,131,0,68,0,93,52,92,2,125,5,125,6,124,4,160, - 4,116,5,124,6,131,1,161,1,114,64,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,64,100,0,83,0,41, - 2,78,114,204,0,0,0,41,8,114,223,0,0,0,114,74, - 0,0,0,114,75,0,0,0,114,208,0,0,0,114,57,0, - 0,0,114,135,0,0,0,114,158,0,0,0,218,16,115,112, - 101,99,95,102,114,111,109,95,108,111,97,100,101,114,41,8, - 114,216,0,0,0,114,163,0,0,0,114,64,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,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,9,102,105,110,100, - 95,115,112,101,99,23,3,0,0,115,28,0,0,0,0,2, - 10,1,8,1,4,1,2,1,12,1,14,1,8,1,14,1, - 14,1,6,1,8,1,2,254,6,3,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,34,0,0,0,124,0,160,0,124,1,124, - 2,161,2,125,3,124,3,100,1,107,9,114,26,124,3,106, - 1,83,0,100,1,83,0,100,1,83,0,41,2,122,108,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,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,78,169,2,114,226, - 0,0,0,114,164,0,0,0,169,4,114,216,0,0,0,114, - 163,0,0,0,114,64,0,0,0,114,210,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,218,11,102, - 105,110,100,95,109,111,100,117,108,101,39,3,0,0,115,8, - 0,0,0,0,7,12,1,8,1,6,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,41,2, - 78,78,41,1,78,41,12,114,149,0,0,0,114,148,0,0, - 0,114,150,0,0,0,114,151,0,0,0,114,220,0,0,0, - 114,219,0,0,0,114,218,0,0,0,218,11,99,108,97,115, - 115,109,101,116,104,111,100,114,217,0,0,0,114,223,0,0, - 0,114,226,0,0,0,114,229,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 214,0,0,0,245,2,0,0,115,28,0,0,0,8,2,4, - 3,2,255,2,4,2,255,2,3,4,2,2,1,10,6,2, - 1,10,14,2,1,12,15,2,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,62,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,4,0,0,0,114,95,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,73,0,0,0,114,203,0,0,0,114,124,0,0,0, - 114,102,0,0,0,41,5,114,142,0,0,0,114,163,0,0, - 0,114,119,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,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 206,0,0,0,58,3,0,0,115,8,0,0,0,0,3,18, - 1,16,1,14,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,115,4,0,0,0,100,1,83, - 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,10,0,0,0,169,2,114,142,0,0,0,114,210,0,0, + 17,99,97,99,104,101,95,102,114,111,109,95,115,111,117,114, + 99,101,98,1,0,0,115,72,0,0,0,0,18,8,1,6, + 1,2,255,4,2,8,1,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, + 2,8,1,8,1,8,1,8,1,14,1,14,1,12,1,12, + 9,10,1,14,5,28,1,12,4,2,1,4,1,8,1,2, + 253,4,5,114,123,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,46,1,0,0,116,0,106,1,106,2,100,1,107,8, + 114,20,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,107,9,114,102,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,102,124,1,116,12,124,4,131,1, + 100,1,133,2,25,0,125,1,100,4,125,3,124,3,115,144, + 116,6,124,1,131,1,92,2,125,1,125,5,124,5,116,13, + 107,3,114,144,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,107,7,114,178,116,14,100,8,124,2,155,2, + 157,2,131,1,130,1,110,92,124,6,100,9,107,2,144,1, + 114,14,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,228,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, + 144,1,115,14,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,99,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,98,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,124,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,28,0,0,0,114,106,0,0,0, + 114,107,0,0,0,114,108,0,0,0,114,24,0,0,0,114, + 104,0,0,0,114,76,0,0,0,114,116,0,0,0,114,51, + 0,0,0,114,52,0,0,0,114,30,0,0,0,114,61,0, + 0,0,114,6,0,0,0,114,118,0,0,0,114,113,0,0, + 0,218,5,99,111,117,110,116,218,6,114,115,112,108,105,116, + 114,114,0,0,0,114,112,0,0,0,218,9,112,97,114,116, + 105,116,105,111,110,114,69,0,0,0,218,15,83,79,85,82, + 67,69,95,83,85,70,70,73,88,69,83,41,10,114,67,0, + 0,0,114,120,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,97,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,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,218,17,115,111,117,114,99,101,95,102,114,111,109, + 95,99,97,99,104,101,169,1,0,0,115,52,0,0,0,0, + 9,12,1,8,1,10,1,12,1,4,1,10,1,12,1,14, + 1,16,1,4,1,4,1,12,1,8,1,18,2,10,1,8, + 1,16,1,10,1,16,1,10,1,14,2,16,1,10,1,16, + 2,14,1,114,130,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,126,0,0,0,116,0,124,0,131,1,100,1,107,2, + 114,16,100,2,83,0,124,0,160,1,100,3,161,1,92,3, + 125,1,125,2,125,3,124,1,114,56,124,3,160,2,161,0, + 100,4,100,5,133,2,25,0,100,6,107,3,114,60,124,0, + 83,0,122,12,116,3,124,0,131,1,125,4,87,0,110,36, + 4,0,116,4,116,5,102,2,107,10,114,108,1,0,1,0, + 1,0,124,0,100,2,100,5,133,2,25,0,125,4,89,0, + 110,2,88,0,116,6,124,4,131,1,114,122,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,98,0,0,0,233, + 253,255,255,255,233,255,255,255,255,90,2,112,121,41,7,114, + 6,0,0,0,114,105,0,0,0,218,5,108,111,119,101,114, + 114,130,0,0,0,114,108,0,0,0,114,113,0,0,0,114, + 82,0,0,0,41,5,218,13,98,121,116,101,99,111,100,101, + 95,112,97,116,104,114,121,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,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,15,95,103,101,116,95,115,111,117,114,99, + 101,102,105,108,101,209,1,0,0,115,20,0,0,0,0,7, + 12,1,4,1,16,1,24,1,4,1,2,1,12,1,18,1, + 18,1,114,138,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,74,0,0,0,124,0,160,0,116,1,116,2,131,1,161, + 1,114,48,122,10,116,3,124,0,131,1,87,0,83,0,4, + 0,116,4,107,10,114,44,1,0,1,0,1,0,89,0,113, + 70,88,0,110,22,124,0,160,0,116,1,116,5,131,1,161, + 1,114,66,124,0,83,0,100,0,83,0,100,0,83,0,114, + 71,0,0,0,41,6,114,60,0,0,0,218,5,116,117,112, + 108,101,114,129,0,0,0,114,123,0,0,0,114,108,0,0, + 0,114,115,0,0,0,41,1,114,122,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,218,11,95,103, + 101,116,95,99,97,99,104,101,100,228,1,0,0,115,16,0, + 0,0,0,1,14,1,2,1,10,1,14,1,8,1,14,1, + 4,2,114,140,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,52,0,0,0,122,14,116,0,124,0,131,1,106,1,125, + 1,87,0,110,24,4,0,116,2,107,10,114,38,1,0,1, + 0,1,0,100,1,125,1,89,0,110,2,88,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,88,0,0,0,233,128,0,0,0,41,3,114,77,0,0, + 0,114,79,0,0,0,114,78,0,0,0,41,2,114,67,0, + 0,0,114,80,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,218,10,95,99,97,108,99,95,109,111, + 100,101,240,1,0,0,115,12,0,0,0,0,2,2,1,14, + 1,14,1,10,3,8,1,114,142,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0, + 0,3,0,0,0,115,68,0,0,0,100,6,135,0,102,1, + 100,2,100,3,132,9,125,1,122,10,116,0,106,1,125,2, + 87,0,110,28,4,0,116,2,107,10,114,52,1,0,1,0, + 1,0,100,4,100,5,132,0,125,2,89,0,110,2,88,0, + 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,66,0,0,0,124,1,100, + 0,107,8,114,16,124,0,106,0,125,1,110,32,124,0,106, + 0,124,1,107,3,114,48,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,102,2,124,2,158,2,124,3,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,144,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,144,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,10,0,0,0,114,11,0,0,0,218,19,95, + 99,104,101,99,107,95,110,97,109,101,95,119,114,97,112,112, + 101,114,4,2,0,0,115,18,0,0,0,0,1,8,1,8, + 1,10,1,4,1,8,255,2,1,2,255,6,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,32,125,2,116,0,124, + 1,124,2,131,2,114,4,116,1,124,0,124,2,116,2,124, + 1,124,2,131,2,131,3,1,0,113,4,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,86,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,5, + 95,119,114,97,112,15,2,0,0,115,8,0,0,0,0,1, + 8,1,10,1,20,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,41,1,78,41,3,218,10,95,98,111,111,116,115,116, + 114,97,112,114,161,0,0,0,218,9,78,97,109,101,69,114, + 114,111,114,41,3,114,150,0,0,0,114,151,0,0,0,114, + 161,0,0,0,114,10,0,0,0,114,149,0,0,0,114,11, + 0,0,0,218,11,95,99,104,101,99,107,95,110,97,109,101, + 252,1,0,0,115,14,0,0,0,0,8,14,7,2,1,10, + 1,14,2,14,5,10,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,60,0,0,0,124,0,160,0,124,1, + 161,1,92,2,125,2,125,3,124,2,100,1,107,8,114,56, + 116,1,124,3,131,1,114,56,100,2,125,4,116,2,160,3, + 124,4,160,4,124,3,100,3,25,0,161,1,116,5,161,2, + 1,0,124,2,83,0,41,4,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,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,6,218,11,102,105,110, + 100,95,108,111,97,100,101,114,114,6,0,0,0,114,100,0, + 0,0,114,101,0,0,0,114,90,0,0,0,218,13,73,109, + 112,111,114,116,87,97,114,110,105,110,103,41,5,114,146,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,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,17,95,102,105,110,100,95,109,111,100,117,108,101, + 95,115,104,105,109,24,2,0,0,115,10,0,0,0,0,10, + 14,1,16,1,4,1,22,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,158,0,0,0,124,0,100,1,100, + 2,133,2,25,0,125,3,124,3,116,0,107,3,114,60,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,124,2,142,1,130,1,116,4,124,0,131,1,100,6,107, + 0,114,102,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,154,100,10,124,5,155,2,100, + 11,124,1,155,2,157,4,125,4,116,3,124,4,102,1,124, + 2,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,35,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,162,0,0,0,218,16,95,118, + 101,114,98,111,115,101,95,109,101,115,115,97,103,101,114,145, + 0,0,0,114,6,0,0,0,218,8,69,79,70,69,114,114, + 111,114,114,46,0,0,0,41,6,114,45,0,0,0,114,144, + 0,0,0,218,11,101,120,99,95,100,101,116,97,105,108,115, + 90,5,109,97,103,105,99,114,119,0,0,0,114,109,0,0, 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,13,99,114,101,97,116,101,95,109,111,100,117,108,101,66, - 3,0,0,115,2,0,0,0,0,1,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,107,8,114,36,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,149,0,0,0,114,141,0,0, - 0,114,87,0,0,0,114,158,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,155,0,0, - 0,41,3,114,142,0,0,0,218,6,109,111,100,117,108,101, - 114,188,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,218,11,101,120,101,99,95,109,111,100,117,108, - 101,69,3,0,0,115,12,0,0,0,0,2,12,1,8,1, - 6,1,4,255,6,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, + 218,13,95,99,108,97,115,115,105,102,121,95,112,121,99,41, + 2,0,0,115,28,0,0,0,0,16,12,1,8,1,16,1, + 12,1,12,1,12,1,10,1,12,1,8,1,16,2,8,1, + 16,1,12,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,112,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,58,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,124,4,142,1,130, + 1,124,2,100,6,107,9,114,108,116,0,124,0,100,2,100, + 7,133,2,25,0,131,1,124,2,100,3,64,0,107,3,114, + 108,116,3,100,4,124,3,155,2,157,2,102,1,124,4,142, + 1,130,1,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, + 34,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,46,0,0,0,114,162, + 0,0,0,114,177,0,0,0,114,145,0,0,0,41,6,114, + 45,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, + 144,0,0,0,114,179,0,0,0,114,119,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,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,74,2,0,0,115,16,0,0,0,0, + 19,24,1,10,1,12,1,12,1,8,1,22,255,2,2,114, + 184,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,38,0, + 0,0,124,0,100,1,100,2,133,2,25,0,124,1,107,3, + 114,34,116,0,100,3,124,2,155,2,157,2,102,1,124,3, + 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, + 145,0,0,0,41,4,114,45,0,0,0,218,11,115,111,117, + 114,99,101,95,104,97,115,104,114,144,0,0,0,114,179,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,218,18,95,118,97,108,105,100,97,116,101,95,104,97,115, + 104,95,112,121,99,102,2,0,0,115,12,0,0,0,0,17, + 16,1,2,1,8,255,2,2,2,254,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,80,0,0,0,116,0,160, + 1,124,0,161,1,125,4,116,2,124,4,116,3,131,2,114, + 56,116,4,160,5,100,1,124,2,161,2,1,0,124,3,100, + 2,107,9,114,52,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,100,2,83,0,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,144,0,0,0,114,67,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,162,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,145,0, + 0,0,114,90,0,0,0,41,5,114,45,0,0,0,114,144, + 0,0,0,114,134,0,0,0,114,137,0,0,0,218,4,99, + 111,100,101,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,17,95,99,111,109,112,105,108,101,95,98,121,116, + 101,99,111,100,101,126,2,0,0,115,20,0,0,0,0,2, + 10,1,10,1,12,1,8,1,12,1,4,2,10,1,2,0, + 2,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,40,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,45,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,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,139,2,0,0,115,12,0, + 0,0,0,2,8,1,14,1,14,1,14,1,16,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,50, + 116,5,130,1,124,3,160,2,124,1,161,1,1,0,124,3, + 160,2,116,6,160,7,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,4,0,0, + 0,114,174,0,0,0,41,8,114,194,0,0,0,114,176,0, + 0,0,114,195,0,0,0,114,40,0,0,0,114,6,0,0, + 0,114,42,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,45,0,0,0,114,109,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,17, + 95,99,111,100,101,95,116,111,95,104,97,115,104,95,112,121, + 99,149,2,0,0,115,14,0,0,0,0,2,8,1,12,1, + 14,1,16,1,10,1,16,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,92,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,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,218,13,100,101,99, + 111,100,101,95,115,111,117,114,99,101,160,2,0,0,115,10, + 0,0,0,0,5,8,1,12,1,10,1,12,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,16, + 1,0,0,124,1,100,1,107,8,114,60,100,2,125,1,116, + 0,124,2,100,3,131,2,114,70,122,14,124,2,160,1,124, + 0,161,1,125,1,87,0,113,70,4,0,116,2,107,10,114, + 56,1,0,1,0,1,0,89,0,113,70,88,0,110,10,116, + 3,160,4,124,1,161,1,125,1,116,5,106,6,124,0,124, + 2,124,1,100,4,141,3,125,4,100,5,124,4,95,7,124, + 2,100,1,107,8,114,154,116,8,131,0,68,0,93,42,92, + 2,125,5,125,6,124,1,160,9,116,10,124,6,131,1,161, + 1,114,106,124,5,124,0,124,1,131,2,125,2,124,2,124, + 4,95,11,1,0,113,154,113,106,100,1,83,0,124,3,116, + 12,107,8,114,220,116,0,124,2,100,6,131,2,114,226,122, + 14,124,2,160,13,124,0,161,1,125,7,87,0,110,20,4, + 0,116,2,107,10,114,206,1,0,1,0,1,0,89,0,113, + 226,88,0,124,7,114,226,103,0,124,4,95,14,110,6,124, + 3,124,4,95,14,124,4,106,14,103,0,107,2,144,1,114, + 12,124,1,144,1,114,12,116,15,124,1,131,1,100,7,25, + 0,125,8,124,4,106,14,160,16,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,17,114, + 156,0,0,0,114,207,0,0,0,114,145,0,0,0,114,24, + 0,0,0,114,104,0,0,0,114,162,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,60,0,0,0,114,139,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,76,0,0,0,114,63, + 0,0,0,41,9,114,144,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,10,0,0,0,114, + 10,0,0,0,114,11,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,177,2,0,0,115,62,0,0,0,0,12,8,4,4, + 1,10,2,2,1,14,1,14,1,8,2,10,8,16,1,6, + 3,8,1,14,1,14,1,10,1,6,1,6,2,4,3,8, + 2,10,1,2,1,14,1,14,1,6,2,4,1,8,2,6, + 1,12,1,6,1,12,1,12,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,80,0,0,0,101,0,90,1, + 100,0,90,2,100,1,90,3,100,2,90,4,100,3,90,5, + 100,4,90,6,101,7,100,5,100,6,132,0,131,1,90,8, + 101,7,100,7,100,8,132,0,131,1,90,9,101,7,100,14, + 100,10,100,11,132,1,131,1,90,10,101,7,100,15,100,12, + 100,13,132,1,131,1,90,11,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,70,99,2,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,8,0,0,0,67,0,0,0,115, + 56,0,0,0,122,16,116,0,160,1,116,0,106,2,124,1, + 161,2,87,0,83,0,4,0,116,3,107,10,114,50,1,0, + 1,0,1,0,116,0,160,1,116,0,106,4,124,1,161,2, + 6,0,89,0,83,0,88,0,100,0,83,0,114,71,0,0, + 0,41,5,218,7,95,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,78,0,0,0,90,18,72, + 75,69,89,95,76,79,67,65,76,95,77,65,67,72,73,78, + 69,41,2,218,3,99,108,115,114,26,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,218,14,95,111, + 112,101,110,95,114,101,103,105,115,116,114,121,1,3,0,0, + 115,8,0,0,0,0,2,2,1,16,1,14,1,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,9,0,0,0,67,0,0,0,115,114,0,0, + 0,124,0,106,0,114,14,124,0,106,1,125,2,110,6,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,38,124,0,160,6,124,3,161,1,143,18,125,4,116, + 7,160,8,124,4,100,4,161,2,125,5,87,0,53,0,81, + 0,82,0,88,0,87,0,110,22,4,0,116,9,107,10,114, + 108,1,0,1,0,1,0,89,0,100,0,83,0,88,0,124, + 5,83,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,13,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,90,0,0, + 0,114,28,0,0,0,218,12,118,101,114,115,105,111,110,95, + 105,110,102,111,114,221,0,0,0,114,219,0,0,0,90,10, + 81,117,101,114,121,86,97,108,117,101,114,78,0,0,0,41, + 6,114,220,0,0,0,114,167,0,0,0,90,12,114,101,103, + 105,115,116,114,121,95,107,101,121,114,26,0,0,0,90,4, + 104,107,101,121,218,8,102,105,108,101,112,97,116,104,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,218,16,95, + 115,101,97,114,99,104,95,114,101,103,105,115,116,114,121,8, + 3,0,0,115,24,0,0,0,0,2,6,1,8,2,6,1, + 6,1,16,255,6,2,2,1,12,1,26,1,14,1,8,1, + 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,122,0,0,0,124,0,160,0,124,1,161,1,125, + 4,124,4,100,0,107,8,114,22,100,0,83,0,122,12,116, + 1,124,4,131,1,1,0,87,0,110,22,4,0,116,2,107, + 10,114,56,1,0,1,0,1,0,89,0,100,0,83,0,88, + 0,116,3,131,0,68,0,93,52,92,2,125,5,125,6,124, + 4,160,4,116,5,124,6,131,1,161,1,114,64,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,64,100,0,83, + 0,41,2,78,114,208,0,0,0,41,8,114,227,0,0,0, + 114,77,0,0,0,114,78,0,0,0,114,212,0,0,0,114, + 60,0,0,0,114,139,0,0,0,114,162,0,0,0,218,16, + 115,112,101,99,95,102,114,111,109,95,108,111,97,100,101,114, + 41,8,114,220,0,0,0,114,167,0,0,0,114,67,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,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,218,9,102,105, + 110,100,95,115,112,101,99,23,3,0,0,115,28,0,0,0, + 0,2,10,1,8,1,4,1,2,1,12,1,14,1,8,1, + 14,1,14,1,6,1,8,1,2,254,6,3,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,34,0,0,0,124,0,160,0,124, + 1,124,2,161,2,125,3,124,3,100,1,107,9,114,26,124, + 3,106,1,83,0,100,1,83,0,100,1,83,0,41,2,122, + 108,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,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,78,169,2, + 114,230,0,0,0,114,168,0,0,0,169,4,114,220,0,0, + 0,114,167,0,0,0,114,67,0,0,0,114,214,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, + 11,102,105,110,100,95,109,111,100,117,108,101,39,3,0,0, + 115,8,0,0,0,0,7,12,1,8,1,6,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, + 41,2,78,78,41,1,78,41,12,114,153,0,0,0,114,152, + 0,0,0,114,154,0,0,0,114,155,0,0,0,114,224,0, + 0,0,114,223,0,0,0,114,222,0,0,0,218,11,99,108, + 97,115,115,109,101,116,104,111,100,114,221,0,0,0,114,227, + 0,0,0,114,230,0,0,0,114,233,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,218,0,0,0,245,2,0,0,115,28,0,0,0,8, + 2,4,3,2,255,2,4,2,255,2,3,4,2,2,1,10, + 6,2,1,10,14,2,1,12,15,2,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,62,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,4,0,0,0,114,98,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,76,0,0,0,114,207,0,0,0,114,127,0, + 0,0,114,105,0,0,0,41,5,114,146,0,0,0,114,167, + 0,0,0,114,122,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,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,210,0,0,0,58,3,0,0,115,8,0,0,0,0, + 3,18,1,16,1,14,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,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,111,100,117,108,101,32,105,115,32,100,101, - 112,114,101,99,97,116,101,100,46,41,2,114,158,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,142,0,0,0,114,163,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,11, - 108,111,97,100,95,109,111,100,117,108,101,77,3,0,0,115, - 2,0,0,0,0,2,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,149,0,0,0,114,148,0,0,0,114,150, - 0,0,0,114,151,0,0,0,114,206,0,0,0,114,235,0, - 0,0,114,240,0,0,0,114,243,0,0,0,114,10,0,0, + 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100, + 1,83,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,10,0,0,0,169,2,114,146,0,0,0,114,214, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,13,99,114,101,97,116,101,95,109,111,100,117,108, + 101,66,3,0,0,115,2,0,0,0,0,1,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,107,8,114,36,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,153,0,0,0,114,145, + 0,0,0,114,90,0,0,0,114,162,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,159, + 0,0,0,41,3,114,146,0,0,0,218,6,109,111,100,117, + 108,101,114,192,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,218,11,101,120,101,99,95,109,111,100, + 117,108,101,69,3,0,0,115,12,0,0,0,0,2,12,1, + 8,1,6,1,4,255,6,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,111,100,117,108,101,32,105,115,32, + 100,101,112,114,101,99,97,116,101,100,46,41,2,114,162,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,146,0,0,0,114,167,0,0, 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,231,0,0,0,53,3,0,0,115,10,0,0,0,8,2, - 4,3,8,8,8,3,8,8,114,231,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,8, - 0,0,0,116,0,130,1,100,1,83,0,41,2,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,78,41,1,114,75,0,0,0,169,2,114,142, - 0,0,0,114,64,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,10,112,97,116,104,95,109,116, - 105,109,101,84,3,0,0,115,2,0,0,0,0,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, - 246,0,0,0,114,245,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,218,10,112,97,116,104,95,115, - 116,97,116,115,92,3,0,0,115,2,0,0,0,0,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,142,0,0,0,114,133,0, - 0,0,90,10,99,97,99,104,101,95,112,97,116,104,114,42, + 218,11,108,111,97,100,95,109,111,100,117,108,101,77,3,0, + 0,115,2,0,0,0,0,2,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,153,0,0,0,114,152,0,0,0, + 114,154,0,0,0,114,155,0,0,0,114,210,0,0,0,114, + 239,0,0,0,114,244,0,0,0,114,247,0,0,0,114,10, 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,15,95,99,97,99,104,101,95,98,121,116,101,99, - 111,100,101,106,3,0,0,115,2,0,0,0,0,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,115,4,0,0,0,100,1,83,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,10,0,0,0,41,3, - 114,142,0,0,0,114,64,0,0,0,114,42,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,248, - 0,0,0,116,3,0,0,115,2,0,0,0,0,1,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,82, - 0,0,0,124,0,160,0,124,1,161,1,125,2,122,14,124, - 0,160,1,124,2,161,1,125,3,87,0,110,48,4,0,116, - 2,107,10,114,72,1,0,125,4,1,0,122,18,116,3,100, - 1,124,1,100,2,141,2,124,4,130,2,87,0,53,0,100, - 3,125,4,126,4,88,0,89,0,110,2,88,0,116,4,124, - 3,131,1,83,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,139,0,0,0,78,41,5,114,203, - 0,0,0,218,8,103,101,116,95,100,97,116,97,114,75,0, - 0,0,114,141,0,0,0,114,200,0,0,0,41,5,114,142, - 0,0,0,114,163,0,0,0,114,64,0,0,0,114,198,0, - 0,0,218,3,101,120,99,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,10,103,101,116,95,115,111,117,114, - 99,101,123,3,0,0,115,20,0,0,0,0,2,10,1,2, - 1,14,1,16,1,4,1,2,255,4,1,2,255,20,2,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,129,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,238,0,0,0,84,41,2,218,12,100,111, - 110,116,95,105,110,104,101,114,105,116,114,107,0,0,0,41, - 3,114,158,0,0,0,114,237,0,0,0,218,7,99,111,109, - 112,105,108,101,41,4,114,142,0,0,0,114,42,0,0,0, - 114,64,0,0,0,114,253,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,218,14,115,111,117,114,99, - 101,95,116,111,95,99,111,100,101,133,3,0,0,115,8,0, - 0,0,0,5,12,1,2,0,2,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,34,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,12,116,1,124,2,131,1,125,8,87,0,110, - 26,4,0,116,2,107,10,114,68,1,0,1,0,1,0,100, - 1,125,8,89,0,144,1,110,48,88,0,122,14,124,0,160, - 3,124,2,161,1,125,9,87,0,110,22,4,0,116,4,107, - 10,114,106,1,0,1,0,1,0,89,0,144,1,110,10,88, - 0,116,5,124,9,100,4,25,0,131,1,125,3,122,14,124, - 0,160,6,124,8,161,1,125,10,87,0,110,20,4,0,116, - 4,107,10,114,154,1,0,1,0,1,0,89,0,110,218,88, - 0,124,1,124,8,100,5,156,2,125,11,122,148,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,144,1,114,36,124,12,100,9,64, - 0,100,8,107,3,125,7,116,9,106,10,100,10,107,3,144, - 1,114,56,124,7,115,254,116,9,106,10,100,11,107,2,144, - 1,114,56,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,20,116,14,124,10,124,3,124, - 9,100,12,25,0,124,1,124,11,131,5,1,0,87,0,110, - 26,4,0,116,15,116,16,102,2,107,10,144,1,114,84,1, - 0,1,0,1,0,89,0,110,32,88,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,107,8,144, - 1,114,136,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,144,2,115,30,124,8,100, - 1,107,9,144,2,114,30,124,3,100,1,107,9,144,2,114, - 30,124,6,144,1,114,228,124,5,100,1,107,8,144,1,114, - 214,116,9,160,11,124,4,161,1,125,5,116,23,124,14,124, - 5,124,7,131,3,125,10,110,16,116,24,124,14,124,3,116, - 25,124,4,131,1,131,3,125,10,122,18,124,0,160,26,124, - 2,124,8,124,10,161,3,1,0,87,0,110,22,4,0,116, - 2,107,10,144,2,114,28,1,0,1,0,1,0,89,0,110, - 2,88,0,124,14,83,0,41,16,122,190,67,111,110,99,114, + 0,0,114,235,0,0,0,53,3,0,0,115,10,0,0,0, + 8,2,4,3,8,8,8,3,8,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,8,0,0,0,116,0,130,1,100,1,83,0,41,2,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,78,41,1,114,78,0,0,0,169,2, + 114,146,0,0,0,114,67,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,218,10,112,97,116,104,95, + 109,116,105,109,101,84,3,0,0,115,2,0,0,0,0,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,250,0,0,0,114,249,0,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,10,112,97,116,104, + 95,115,116,97,116,115,92,3,0,0,115,2,0,0,0,0, + 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,146,0,0,0,114, + 137,0,0,0,90,10,99,97,99,104,101,95,112,97,116,104, + 114,45,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,15,95,99,97,99,104,101,95,98,121,116, + 101,99,111,100,101,106,3,0,0,115,2,0,0,0,0,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,115,4,0,0,0,100,1,83,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,10,0,0,0, + 41,3,114,146,0,0,0,114,67,0,0,0,114,45,0,0, + 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 114,252,0,0,0,116,3,0,0,115,2,0,0,0,0,1, + 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,82,0,0,0,124,0,160,0,124,1,161,1,125,2,122, + 14,124,0,160,1,124,2,161,1,125,3,87,0,110,48,4, + 0,116,2,107,10,114,72,1,0,125,4,1,0,122,18,116, + 3,100,1,124,1,100,2,141,2,124,4,130,2,87,0,53, + 0,100,3,125,4,126,4,88,0,89,0,110,2,88,0,116, + 4,124,3,131,1,83,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,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, + 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,143,0,0,0,78,41,5, + 114,207,0,0,0,218,8,103,101,116,95,100,97,116,97,114, + 78,0,0,0,114,145,0,0,0,114,204,0,0,0,41,5, + 114,146,0,0,0,114,167,0,0,0,114,67,0,0,0,114, + 202,0,0,0,218,3,101,120,99,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,218,10,103,101,116,95,115,111, + 117,114,99,101,123,3,0,0,115,20,0,0,0,0,2,10, + 1,2,1,14,1,16,1,4,1,2,255,4,1,2,255,20, + 2,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,132,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,242,0,0,0,84,41,2,218,12, + 100,111,110,116,95,105,110,104,101,114,105,116,114,110,0,0, + 0,41,3,114,162,0,0,0,114,241,0,0,0,218,7,99, + 111,109,112,105,108,101,41,4,114,146,0,0,0,114,45,0, + 0,0,114,67,0,0,0,114,1,1,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,218,14,115,111,117, + 114,99,101,95,116,111,95,99,111,100,101,133,3,0,0,115, + 8,0,0,0,0,5,12,1,2,0,2,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,34,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,12,116,1,124,2,131,1,125,8,87, + 0,110,26,4,0,116,2,107,10,114,68,1,0,1,0,1, + 0,100,1,125,8,89,0,144,1,110,48,88,0,122,14,124, + 0,160,3,124,2,161,1,125,9,87,0,110,22,4,0,116, + 4,107,10,114,106,1,0,1,0,1,0,89,0,144,1,110, + 10,88,0,116,5,124,9,100,4,25,0,131,1,125,3,122, + 14,124,0,160,6,124,8,161,1,125,10,87,0,110,20,4, + 0,116,4,107,10,114,154,1,0,1,0,1,0,89,0,110, + 218,88,0,124,1,124,8,100,5,156,2,125,11,122,148,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,144,1,114,36,124,12,100, + 9,64,0,100,8,107,3,125,7,116,9,106,10,100,10,107, + 3,144,1,114,56,124,7,115,254,116,9,106,10,100,11,107, + 2,144,1,114,56,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,20,116,14,124,10,124, + 3,124,9,100,12,25,0,124,1,124,11,131,5,1,0,87, + 0,110,26,4,0,116,15,116,16,102,2,107,10,144,1,114, + 84,1,0,1,0,1,0,89,0,110,32,88,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,107, + 8,144,1,114,136,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,144,2,115,30,124, + 8,100,1,107,9,144,2,114,30,124,3,100,1,107,9,144, + 2,114,30,124,6,144,1,114,228,124,5,100,1,107,8,144, + 1,114,214,116,9,160,11,124,4,161,1,125,5,116,23,124, + 14,124,5,124,7,131,3,125,10,110,16,116,24,124,14,124, + 3,116,25,124,4,131,1,131,3,125,10,122,18,124,0,160, + 26,124,2,124,8,124,10,161,3,1,0,87,0,110,22,4, + 0,116,2,107,10,144,2,114,28,1,0,1,0,1,0,89, + 0,110,2,88,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,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,4,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,140,0,0,0,114,131,0,0,0,114,133,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,120,0,0,0, - 114,105,0,0,0,114,247,0,0,0,114,75,0,0,0,114, - 34,0,0,0,114,250,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,141,0,0,0,114,174,0, - 0,0,114,158,0,0,0,114,173,0,0,0,114,189,0,0, - 0,114,0,1,0,0,114,25,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,6,0,0,0,114, - 249,0,0,0,41,15,114,142,0,0,0,114,163,0,0,0, - 114,133,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,131, - 0,0,0,218,2,115,116,114,42,0,0,0,114,175,0,0, - 0,114,106,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, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,236, - 0,0,0,141,3,0,0,115,152,0,0,0,0,7,10,1, - 4,1,4,1,4,1,4,1,4,1,2,1,12,1,14,1, - 12,2,2,1,14,1,14,1,8,2,12,1,2,1,14,1, - 14,1,6,3,2,1,2,254,6,4,2,1,12,1,16,1, - 12,1,6,1,12,1,12,1,2,255,2,2,8,254,4,3, - 10,1,4,1,2,1,2,254,4,4,8,1,2,255,6,3, - 2,1,2,1,2,1,6,1,2,1,2,251,8,7,20,1, - 6,2,8,1,2,255,4,2,6,1,2,1,2,254,6,3, - 10,1,10,1,12,1,12,1,18,1,6,255,4,2,6,1, - 10,1,10,1,14,2,6,1,6,255,4,2,2,1,18,1, - 16,1,6,1,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,149, - 0,0,0,114,148,0,0,0,114,150,0,0,0,114,246,0, - 0,0,114,247,0,0,0,114,249,0,0,0,114,248,0,0, - 0,114,252,0,0,0,114,0,1,0,0,114,236,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,244,0,0,0,82,3,0,0,115,14,0, - 0,0,8,2,8,8,8,14,8,10,8,7,8,10,14,8, - 114,244,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,124, - 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,100,16,100,17,132,0,90,12,100, - 18,100,19,132,0,90,13,100,20,100,21,132,0,90,14,100, - 22,100,23,132,0,90,15,135,0,4,0,90,16,83,0,41, - 24,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,142,0,0,0, - 114,163,0,0,0,114,64,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,232,0,0,0,231,3, - 0,0,115,4,0,0,0,0,3,6,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,115,24,0,0,0,124,0, - 106,0,124,1,106,0,107,2,111,22,124,0,106,1,124,1, - 106,1,107,2,83,0,114,68,0,0,0,169,2,218,9,95, - 95,99,108,97,115,115,95,95,114,155,0,0,0,169,2,114, - 142,0,0,0,90,5,111,116,104,101,114,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,6,95,95,101,113, - 95,95,237,3,0,0,115,6,0,0,0,0,1,12,1,10, - 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,115,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,68,0,0,0,169,3,218,4,104, - 97,115,104,114,140,0,0,0,114,64,0,0,0,169,1,114, - 142,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,218,8,95,95,104,97,115,104,95,95,241,3,0, - 0,115,2,0,0,0,0,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,6,1,0, - 0,114,243,0,0,0,114,242,0,0,0,169,1,114,8,1, - 0,0,114,10,0,0,0,114,11,0,0,0,114,243,0,0, - 0,244,3,0,0,115,2,0,0,0,0,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,115,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,70,0,0,0,114,242,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 203,0,0,0,0,4,0,0,115,2,0,0,0,0,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,10,0,0,0,67,0,0, - 0,115,102,0,0,0,116,0,124,0,116,1,116,2,102,2, - 131,2,114,58,116,3,160,4,116,5,124,1,131,1,161,1, - 143,22,125,2,124,2,160,6,161,0,87,0,2,0,53,0, - 81,0,82,0,163,0,83,0,81,0,82,0,88,0,110,40, - 116,3,160,7,124,1,100,1,161,2,143,22,125,2,124,2, - 160,6,161,0,87,0,2,0,53,0,81,0,82,0,163,0, - 83,0,81,0,82,0,88,0,100,2,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,218,1,114,78,41,8,114,185,0, - 0,0,114,244,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,89,0,0, - 0,90,9,111,112,101,110,95,99,111,100,101,114,108,0,0, - 0,90,4,114,101,97,100,114,90,0,0,0,41,3,114,142, - 0,0,0,114,64,0,0,0,114,92,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,250,0,0, - 0,5,4,0,0,115,10,0,0,0,0,2,14,1,16,1, - 28,2,14,1,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,2,0,0,0,3,0,0,0,67,0, - 0,0,115,18,0,0,0,124,0,160,0,124,1,161,1,114, - 14,124,0,83,0,100,0,83,0,114,68,0,0,0,41,1, - 114,206,0,0,0,169,2,114,142,0,0,0,114,239,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,19,103,101,116,95,114,101,115,111,117,114,99,101,95,114, - 101,97,100,101,114,16,4,0,0,115,6,0,0,0,0,2, - 10,1,4,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,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,32,0, - 0,0,116,0,116,1,124,0,106,2,131,1,100,1,25,0, - 124,1,131,2,125,2,116,3,160,4,124,2,100,2,161,2, - 83,0,41,3,78,114,0,0,0,0,114,18,1,0,0,41, - 5,114,66,0,0,0,114,73,0,0,0,114,64,0,0,0, - 114,89,0,0,0,114,90,0,0,0,169,3,114,142,0,0, - 0,90,8,114,101,115,111,117,114,99,101,114,64,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, - 13,111,112,101,110,95,114,101,115,111,117,114,99,101,22,4, - 0,0,115,4,0,0,0,0,1,20,1,122,24,70,105,108, - 101,76,111,97,100,101,114,46,111,112,101,110,95,114,101,115, - 111,117,114,99,101,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,38, - 0,0,0,124,0,160,0,124,1,161,1,115,14,116,1,130, - 1,116,2,116,3,124,0,106,4,131,1,100,1,25,0,124, - 1,131,2,125,2,124,2,83,0,169,2,78,114,0,0,0, - 0,41,5,218,11,105,115,95,114,101,115,111,117,114,99,101, - 218,17,70,105,108,101,78,111,116,70,111,117,110,100,69,114, - 114,111,114,114,66,0,0,0,114,73,0,0,0,114,64,0, - 0,0,114,22,1,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,13,114,101,115,111,117,114,99,101, - 95,112,97,116,104,26,4,0,0,115,8,0,0,0,0,1, - 10,1,4,1,20,1,122,24,70,105,108,101,76,111,97,100, - 101,114,46,114,101,115,111,117,114,99,101,95,112,97,116,104, - 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,40,0,0,0,116,0, - 124,1,107,6,114,12,100,1,83,0,116,1,116,2,124,0, - 106,3,131,1,100,2,25,0,124,1,131,2,125,2,116,4, - 124,2,131,1,83,0,41,3,78,70,114,0,0,0,0,41, - 5,114,58,0,0,0,114,66,0,0,0,114,73,0,0,0, - 114,64,0,0,0,114,79,0,0,0,169,3,114,142,0,0, - 0,114,140,0,0,0,114,64,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,25,1,0,0,32, - 4,0,0,115,8,0,0,0,0,1,8,1,4,1,20,1, - 122,22,70,105,108,101,76,111,97,100,101,114,46,105,115,95, - 114,101,115,111,117,114,99,101,99,1,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,5,0,0,0,67,0,0, - 0,115,24,0,0,0,116,0,116,1,160,2,116,3,124,0, - 106,4,131,1,100,1,25,0,161,1,131,1,83,0,114,24, - 1,0,0,41,5,218,4,105,116,101,114,114,21,0,0,0, - 218,7,108,105,115,116,100,105,114,114,73,0,0,0,114,64, - 0,0,0,114,13,1,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,8,99,111,110,116,101,110,116, - 115,38,4,0,0,115,2,0,0,0,0,1,122,19,70,105, - 108,101,76,111,97,100,101,114,46,99,111,110,116,101,110,116, - 115,41,17,114,149,0,0,0,114,148,0,0,0,114,150,0, - 0,0,114,151,0,0,0,114,232,0,0,0,114,10,1,0, - 0,114,14,1,0,0,114,160,0,0,0,114,243,0,0,0, - 114,203,0,0,0,114,250,0,0,0,114,21,1,0,0,114, - 23,1,0,0,114,27,1,0,0,114,25,1,0,0,114,31, - 1,0,0,90,13,95,95,99,108,97,115,115,99,101,108,108, - 95,95,114,10,0,0,0,114,10,0,0,0,114,16,1,0, - 0,114,11,0,0,0,114,6,1,0,0,226,3,0,0,115, - 30,0,0,0,8,2,4,3,8,6,8,4,8,3,2,1, - 14,11,2,1,10,4,8,11,2,1,10,5,8,4,8,6, - 8,6,114,6,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, + 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,4,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,144,0,0,0,114,134,0,0,0,114,137,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,123,0, + 0,0,114,108,0,0,0,114,251,0,0,0,114,78,0,0, + 0,114,37,0,0,0,114,254,0,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,145,0,0,0,114, + 178,0,0,0,114,162,0,0,0,114,177,0,0,0,114,193, + 0,0,0,114,4,1,0,0,114,28,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,6,0,0, + 0,114,253,0,0,0,41,15,114,146,0,0,0,114,167,0, + 0,0,114,137,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,134,0,0,0,218,2,115,116,114,45,0,0,0,114,179, + 0,0,0,114,109,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,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 114,240,0,0,0,141,3,0,0,115,152,0,0,0,0,7, + 10,1,4,1,4,1,4,1,4,1,4,1,2,1,12,1, + 14,1,12,2,2,1,14,1,14,1,8,2,12,1,2,1, + 14,1,14,1,6,3,2,1,2,254,6,4,2,1,12,1, + 16,1,12,1,6,1,12,1,12,1,2,255,2,2,8,254, + 4,3,10,1,4,1,2,1,2,254,4,4,8,1,2,255, + 6,3,2,1,2,1,2,1,6,1,2,1,2,251,8,7, + 20,1,6,2,8,1,2,255,4,2,6,1,2,1,2,254, + 6,3,10,1,10,1,12,1,12,1,18,1,6,255,4,2, + 6,1,10,1,10,1,14,2,6,1,6,255,4,2,2,1, + 18,1,16,1,6,1,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,153,0,0,0,114,152,0,0,0,114,154,0,0,0,114, + 250,0,0,0,114,251,0,0,0,114,253,0,0,0,114,252, + 0,0,0,114,0,1,0,0,114,4,1,0,0,114,240,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,114,248,0,0,0,82,3,0,0,115, + 14,0,0,0,8,2,8,8,8,14,8,10,8,7,8,10, + 14,8,114,248,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,124,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,1,1,0,0,41,3,114,74, - 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,142,0,0,0,114,64,0, - 0,0,114,5,1,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,247,0,0,0,46,4,0,0,115, - 4,0,0,0,0,2,8,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,138,0,0,0,114,248, - 0,0,0,41,5,114,142,0,0,0,114,133,0,0,0,114, - 131,0,0,0,114,42,0,0,0,114,77,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,249,0, - 0,0,51,4,0,0,115,4,0,0,0,0,2,8,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,85,0,0,0,114,34,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,252,0,0,0,116,0,124,1,131,1,92, - 2,125,4,125,5,103,0,125,6,124,4,114,52,116,1,124, - 4,131,1,115,52,116,0,124,4,131,1,92,2,125,4,125, - 7,124,6,160,2,124,7,161,1,1,0,113,16,116,3,124, - 6,131,1,68,0,93,108,125,7,116,4,124,4,124,7,131, - 2,125,4,122,14,116,5,160,6,124,4,161,1,1,0,87, - 0,113,60,4,0,116,7,107,10,114,112,1,0,1,0,1, - 0,89,0,113,60,89,0,113,60,4,0,116,8,107,10,114, - 166,1,0,125,8,1,0,122,26,116,9,160,10,100,1,124, - 4,124,8,161,3,1,0,87,0,89,0,162,6,1,0,100, - 2,83,0,100,2,125,8,126,8,88,0,89,0,113,60,88, - 0,113,60,122,28,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,110, - 48,4,0,116,8,107,10,114,246,1,0,125,8,1,0,122, - 18,116,9,160,10,100,1,124,1,124,8,161,3,1,0,87, - 0,53,0,100,2,125,8,126,8,88,0,89,0,110,2,88, - 0,100,2,83,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,73,0,0,0,114,81,0,0,0,114,60,0,0, - 0,218,8,114,101,118,101,114,115,101,100,114,66,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,75,0, - 0,0,114,158,0,0,0,114,173,0,0,0,114,93,0,0, - 0,41,9,114,142,0,0,0,114,64,0,0,0,114,42,0, - 0,0,114,35,1,0,0,218,6,112,97,114,101,110,116,114, - 119,0,0,0,114,62,0,0,0,114,67,0,0,0,114,251, + 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,100,16,100,17,132,0,90, + 12,100,18,100,19,132,0,90,13,100,20,100,21,132,0,90, + 14,100,22,100,23,132,0,90,15,135,0,4,0,90,16,83, + 0,41,24,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,146,0, + 0,0,114,167,0,0,0,114,67,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,236,0,0,0, + 231,3,0,0,115,4,0,0,0,0,3,6,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,115,24,0,0,0, + 124,0,106,0,124,1,106,0,107,2,111,22,124,0,106,1, + 124,1,106,1,107,2,83,0,114,71,0,0,0,169,2,218, + 9,95,95,99,108,97,115,115,95,95,114,159,0,0,0,169, + 2,114,146,0,0,0,90,5,111,116,104,101,114,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,218,6,95,95, + 101,113,95,95,237,3,0,0,115,6,0,0,0,0,1,12, + 1,10,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,115, + 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,71,0,0,0,169,3,218, + 4,104,97,115,104,114,144,0,0,0,114,67,0,0,0,169, + 1,114,146,0,0,0,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,218,8,95,95,104,97,115,104,95,95,241, + 3,0,0,115,2,0,0,0,0,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,10, + 1,0,0,114,247,0,0,0,114,246,0,0,0,169,1,114, + 12,1,0,0,114,10,0,0,0,114,11,0,0,0,114,247, + 0,0,0,244,3,0,0,115,2,0,0,0,0,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,115, + 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,73,0,0,0,114,246,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,207,0,0,0,0,4,0,0,115,2,0,0,0,0, + 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,10,0,0,0,67, + 0,0,0,115,102,0,0,0,116,0,124,0,116,1,116,2, + 102,2,131,2,114,58,116,3,160,4,116,5,124,1,131,1, + 161,1,143,22,125,2,124,2,160,6,161,0,87,0,2,0, + 53,0,81,0,82,0,163,0,83,0,81,0,82,0,88,0, + 110,40,116,3,160,7,124,1,100,1,161,2,143,22,125,2, + 124,2,160,6,161,0,87,0,2,0,53,0,81,0,82,0, + 163,0,83,0,81,0,82,0,88,0,100,2,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,218,1,114,78,41,8,114, + 189,0,0,0,114,248,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,92, + 0,0,0,90,9,111,112,101,110,95,99,111,100,101,114,111, + 0,0,0,90,4,114,101,97,100,114,93,0,0,0,41,3, + 114,146,0,0,0,114,67,0,0,0,114,95,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,254, + 0,0,0,5,4,0,0,115,10,0,0,0,0,2,14,1, + 16,1,28,2,14,1,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,2,0,0,0,3,0,0,0, + 67,0,0,0,115,18,0,0,0,124,0,160,0,124,1,161, + 1,114,14,124,0,83,0,100,0,83,0,114,71,0,0,0, + 41,1,114,210,0,0,0,169,2,114,146,0,0,0,114,243, 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,114,248,0,0,0,56,4,0,0,115,48,0,0,0, - 0,2,12,1,4,2,12,1,12,1,12,2,12,1,10,1, - 2,1,14,1,14,2,8,1,16,3,6,1,2,0,2,255, - 4,2,28,1,2,1,12,1,16,1,16,2,8,1,2,255, - 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,149, - 0,0,0,114,148,0,0,0,114,150,0,0,0,114,151,0, - 0,0,114,247,0,0,0,114,249,0,0,0,114,248,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,32,1,0,0,42,4,0,0,115,8, - 0,0,0,8,2,4,2,8,5,8,5,114,32,1,0,0, + 0,0,218,19,103,101,116,95,114,101,115,111,117,114,99,101, + 95,114,101,97,100,101,114,16,4,0,0,115,6,0,0,0, + 0,2,10,1,4,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,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, + 32,0,0,0,116,0,116,1,124,0,106,2,131,1,100,1, + 25,0,124,1,131,2,125,2,116,3,160,4,124,2,100,2, + 161,2,83,0,41,3,78,114,0,0,0,0,114,22,1,0, + 0,41,5,114,69,0,0,0,114,76,0,0,0,114,67,0, + 0,0,114,92,0,0,0,114,93,0,0,0,169,3,114,146, + 0,0,0,90,8,114,101,115,111,117,114,99,101,114,67,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,218,13,111,112,101,110,95,114,101,115,111,117,114,99,101, + 22,4,0,0,115,4,0,0,0,0,1,20,1,122,24,70, + 105,108,101,76,111,97,100,101,114,46,111,112,101,110,95,114, + 101,115,111,117,114,99,101,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,38,0,0,0,124,0,160,0,124,1,161,1,115,14,116, + 1,130,1,116,2,116,3,124,0,106,4,131,1,100,1,25, + 0,124,1,131,2,125,2,124,2,83,0,169,2,78,114,0, + 0,0,0,41,5,218,11,105,115,95,114,101,115,111,117,114, + 99,101,218,17,70,105,108,101,78,111,116,70,111,117,110,100, + 69,114,114,111,114,114,69,0,0,0,114,76,0,0,0,114, + 67,0,0,0,114,26,1,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,218,13,114,101,115,111,117,114, + 99,101,95,112,97,116,104,26,4,0,0,115,8,0,0,0, + 0,1,10,1,4,1,20,1,122,24,70,105,108,101,76,111, + 97,100,101,114,46,114,101,115,111,117,114,99,101,95,112,97, + 116,104,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,40,0,0,0, + 116,0,124,1,107,6,114,12,100,1,83,0,116,1,116,2, + 124,0,106,3,131,1,100,2,25,0,124,1,131,2,125,2, + 116,4,124,2,131,1,83,0,41,3,78,70,114,0,0,0, + 0,41,5,114,61,0,0,0,114,69,0,0,0,114,76,0, + 0,0,114,67,0,0,0,114,82,0,0,0,169,3,114,146, + 0,0,0,114,144,0,0,0,114,67,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,29,1,0, + 0,32,4,0,0,115,8,0,0,0,0,1,8,1,4,1, + 20,1,122,22,70,105,108,101,76,111,97,100,101,114,46,105, + 115,95,114,101,115,111,117,114,99,101,99,1,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,67, + 0,0,0,115,24,0,0,0,116,0,116,1,160,2,116,3, + 124,0,106,4,131,1,100,1,25,0,161,1,131,1,83,0, + 114,28,1,0,0,41,5,218,4,105,116,101,114,114,24,0, + 0,0,218,7,108,105,115,116,100,105,114,114,76,0,0,0, + 114,67,0,0,0,114,17,1,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,218,8,99,111,110,116,101, + 110,116,115,38,4,0,0,115,2,0,0,0,0,1,122,19, + 70,105,108,101,76,111,97,100,101,114,46,99,111,110,116,101, + 110,116,115,41,17,114,153,0,0,0,114,152,0,0,0,114, + 154,0,0,0,114,155,0,0,0,114,236,0,0,0,114,14, + 1,0,0,114,18,1,0,0,114,164,0,0,0,114,247,0, + 0,0,114,207,0,0,0,114,254,0,0,0,114,25,1,0, + 0,114,27,1,0,0,114,31,1,0,0,114,29,1,0,0, + 114,35,1,0,0,218,13,95,95,99,108,97,115,115,99,101, + 108,108,95,95,114,10,0,0,0,114,10,0,0,0,114,20, + 1,0,0,114,11,0,0,0,114,10,1,0,0,226,3,0, + 0,115,30,0,0,0,8,2,4,3,8,6,8,4,8,3, + 2,1,14,11,2,1,10,4,8,11,2,1,10,5,8,4, + 8,6,8,6,114,10,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,5,1,0,0,41,3, + 114,77,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,146,0,0,0,114, + 67,0,0,0,114,9,1,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,251,0,0,0,46,4,0, + 0,115,4,0,0,0,0,2,8,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,142,0,0,0, + 114,252,0,0,0,41,5,114,146,0,0,0,114,137,0,0, + 0,114,134,0,0,0,114,45,0,0,0,114,80,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, + 253,0,0,0,51,4,0,0,115,4,0,0,0,0,2,8, + 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,88,0,0,0,114,39,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,252,0,0,0,116,0,124,1,131, + 1,92,2,125,4,125,5,103,0,125,6,124,4,114,52,116, + 1,124,4,131,1,115,52,116,0,124,4,131,1,92,2,125, + 4,125,7,124,6,160,2,124,7,161,1,1,0,113,16,116, + 3,124,6,131,1,68,0,93,108,125,7,116,4,124,4,124, + 7,131,2,125,4,122,14,116,5,160,6,124,4,161,1,1, + 0,87,0,113,60,4,0,116,7,107,10,114,112,1,0,1, + 0,1,0,89,0,113,60,89,0,113,60,4,0,116,8,107, + 10,114,166,1,0,125,8,1,0,122,26,116,9,160,10,100, + 1,124,4,124,8,161,3,1,0,87,0,89,0,162,6,1, + 0,100,2,83,0,100,2,125,8,126,8,88,0,89,0,113, + 60,88,0,113,60,122,28,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,110,48,4,0,116,8,107,10,114,246,1,0,125,8,1, + 0,122,18,116,9,160,10,100,1,124,1,124,8,161,3,1, + 0,87,0,53,0,100,2,125,8,126,8,88,0,89,0,110, + 2,88,0,100,2,83,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,76,0,0,0,114,84,0,0,0,114,63, + 0,0,0,218,8,114,101,118,101,114,115,101,100,114,69,0, + 0,0,114,24,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, + 78,0,0,0,114,162,0,0,0,114,177,0,0,0,114,96, + 0,0,0,41,9,114,146,0,0,0,114,67,0,0,0,114, + 45,0,0,0,114,40,1,0,0,218,6,112,97,114,101,110, + 116,114,122,0,0,0,114,65,0,0,0,114,70,0,0,0, + 114,255,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,252,0,0,0,56,4,0,0,115,48,0, + 0,0,0,2,12,1,4,2,12,1,12,1,12,2,12,1, + 10,1,2,1,14,1,14,2,8,1,16,3,6,1,2,0, + 2,255,4,2,28,1,2,1,12,1,16,1,16,2,8,1, + 2,255,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,153,0,0,0,114,152,0,0,0,114,154,0,0,0,114, + 155,0,0,0,114,251,0,0,0,114,253,0,0,0,114,252, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,37,1,0,0,42,4,0,0, + 115,8,0,0,0,8,2,4,2,8,5,8,5,114,37,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,144,0,0,0,114,134,0, + 0,0,41,5,114,207,0,0,0,114,254,0,0,0,114,180, + 0,0,0,114,193,0,0,0,114,6,1,0,0,41,5,114, + 146,0,0,0,114,167,0,0,0,114,67,0,0,0,114,45, + 0,0,0,114,179,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,240,0,0,0,91,4,0,0, + 115,22,0,0,0,0,1,10,1,10,4,2,1,2,254,6, + 4,12,1,2,1,14,1,2,1,2,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,115,4,0,0,0,100,1,83,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,10,0,0,0,114,246,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,0,1,0,0,107,4,0,0,115,2,0,0,0,0, + 2,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,153,0,0,0,114,152,0,0,0,114, + 154,0,0,0,114,155,0,0,0,114,240,0,0,0,114,0, + 1,0,0,114,10,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,44,1,0,0,87,4,0,0, + 115,6,0,0,0,8,2,4,2,8,16,114,44,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, + 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,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,140,0,0,0,114,131,0,0,0, - 41,5,114,203,0,0,0,114,250,0,0,0,114,176,0,0, - 0,114,189,0,0,0,114,2,1,0,0,41,5,114,142,0, - 0,0,114,163,0,0,0,114,64,0,0,0,114,42,0,0, - 0,114,175,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,236,0,0,0,91,4,0,0,115,22, - 0,0,0,0,1,10,1,10,4,2,1,2,254,6,4,12, - 1,2,1,14,1,2,1,2,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,115,4,0,0,0,100,1,83,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,10,0,0,0,114,242,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 252,0,0,0,107,4,0,0,115,2,0,0,0,0,2,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,149,0,0,0,114,148,0,0,0,114,150,0, - 0,0,114,151,0,0,0,114,236,0,0,0,114,252,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,39,1,0,0,87,4,0,0,115,6, - 0,0,0,8,2,4,2,8,16,114,39,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,19,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,8, - 0,0,0,67,0,0,0,115,64,0,0,0,124,1,124,0, - 95,0,116,1,124,2,131,1,115,54,122,18,116,2,116,3, - 160,4,161,0,124,2,131,2,125,2,87,0,110,20,4,0, - 116,5,107,10,114,52,1,0,1,0,1,0,89,0,110,2, - 88,0,124,2,124,0,95,6,100,0,83,0,114,68,0,0, - 0,41,7,114,140,0,0,0,114,84,0,0,0,114,66,0, - 0,0,114,21,0,0,0,114,80,0,0,0,114,75,0,0, - 0,114,64,0,0,0,114,28,1,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,232,0,0,0,124, - 4,0,0,115,14,0,0,0,0,1,6,1,8,1,2,1, - 18,1,14,1,6,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,115,24,0, - 0,0,124,0,106,0,124,1,106,0,107,2,111,22,124,0, - 106,1,124,1,106,1,107,2,83,0,114,68,0,0,0,114, - 7,1,0,0,114,9,1,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,10,1,0,0,133,4,0, - 0,115,6,0,0,0,0,1,12,1,10,255,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,115,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,68,0,0,0,114, - 11,1,0,0,114,13,1,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,14,1,0,0,137,4,0, - 0,115,2,0,0,0,0,1,122,28,69,120,116,101,110,115, + 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,23,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,8,0,0,0,67,0,0,0,115,64,0,0,0,124,1, + 124,0,95,0,116,1,124,2,131,1,115,54,122,18,116,2, + 116,3,160,4,161,0,124,2,131,2,125,2,87,0,110,20, + 4,0,116,5,107,10,114,52,1,0,1,0,1,0,89,0, + 110,2,88,0,124,2,124,0,95,6,100,0,83,0,114,71, + 0,0,0,41,7,114,144,0,0,0,114,87,0,0,0,114, + 69,0,0,0,114,24,0,0,0,114,83,0,0,0,114,78, + 0,0,0,114,67,0,0,0,114,32,1,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,236,0,0, + 0,124,4,0,0,115,14,0,0,0,0,1,6,1,8,1, + 2,1,18,1,14,1,6,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, - 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,158,0,0, - 0,114,237,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,140,0,0,0,114,64,0,0,0,41,3,114,142,0,0, - 0,114,210,0,0,0,114,239,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,235,0,0,0,140, - 4,0,0,115,18,0,0,0,0,2,4,1,4,0,2,255, - 4,2,6,1,4,0,4,255,4,2,122,33,69,120,116,101, + 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,115, + 24,0,0,0,124,0,106,0,124,1,106,0,107,2,111,22, + 124,0,106,1,124,1,106,1,107,2,83,0,114,71,0,0, + 0,114,11,1,0,0,114,13,1,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,114,14,1,0,0,133, + 4,0,0,115,6,0,0,0,0,1,12,1,10,255,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,115,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,71,0,0, + 0,114,15,1,0,0,114,17,1,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,114,18,1,0,0,137, + 4,0,0,115,2,0,0,0,0,1,122,28,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,158, - 0,0,0,114,237,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,140,0,0,0,114,64,0,0,0,114,20,1,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,240, - 0,0,0,148,4,0,0,115,10,0,0,0,0,2,14,1, - 6,1,4,0,4,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,4, - 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,26,0,0, - 0,124,0,93,18,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,232,0, - 0,0,78,114,10,0,0,0,169,2,114,8,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,10,0,0,0,114,11,0,0,0,114,12, - 0,0,0,157,4,0,0,115,4,0,0,0,4,1,2,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,73,0,0,0,114,64,0,0,0,218, - 3,97,110,121,218,18,69,88,84,69,78,83,73,79,78,95, - 83,85,70,70,73,88,69,83,114,242,0,0,0,114,10,0, - 0,0,114,42,1,0,0,114,11,0,0,0,114,206,0,0, - 0,154,4,0,0,115,8,0,0,0,0,2,14,1,12,1, - 2,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,115,4,0,0,0, - 100,1,83,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,10,0,0,0,114,242,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,236,0,0,0,160,4,0,0,115,2,0,0,0,0, - 2,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, + 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,162, + 0,0,0,114,241,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,144,0,0,0,114,67,0,0,0,41,3,114,146, + 0,0,0,114,214,0,0,0,114,243,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,239,0,0, + 0,140,4,0,0,115,18,0,0,0,0,2,4,1,4,0, + 2,255,4,2,6,1,4,0,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, - 1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,83, - 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,10,0,0,0, - 114,242,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,252,0,0,0,164,4,0,0,115,2,0, - 0,0,0,2,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,115,6,0, - 0,0,124,0,106,0,83,0,114,17,1,0,0,114,70,0, - 0,0,114,242,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,203,0,0,0,168,4,0,0,115, - 2,0,0,0,0,3,122,32,69,120,116,101,110,115,105,111, + 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,162,0,0,0,114,241,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,144,0,0,0,114,67,0,0,0,114,24,1,0, + 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 114,244,0,0,0,148,4,0,0,115,10,0,0,0,0,2, + 14,1,6,1,4,0,4,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,4,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,26, + 0,0,0,124,0,93,18,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,10,0,0,0,169,2,114,8,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,10,0,0,0,114,11,0,0,0, + 114,12,0,0,0,157,4,0,0,115,4,0,0,0,4,1, + 2,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,76,0,0,0,114,67,0,0, + 0,218,3,97,110,121,218,18,69,88,84,69,78,83,73,79, + 78,95,83,85,70,70,73,88,69,83,114,246,0,0,0,114, + 10,0,0,0,114,47,1,0,0,114,11,0,0,0,114,210, + 0,0,0,154,4,0,0,115,8,0,0,0,0,2,14,1, + 12,1,2,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,115,4,0, + 0,0,100,1,83,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,10,0,0,0,114, + 246,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,240,0,0,0,160,4,0,0,115,2,0,0, + 0,0,2,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,115,4,0,0,0,100, + 1,83,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,10,0, + 0,0,114,246,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,114,0,1,0,0,164,4,0,0,115, + 2,0,0,0,0,2,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, - 102,105,108,101,110,97,109,101,78,41,14,114,149,0,0,0, - 114,148,0,0,0,114,150,0,0,0,114,151,0,0,0,114, - 232,0,0,0,114,10,1,0,0,114,14,1,0,0,114,235, - 0,0,0,114,240,0,0,0,114,206,0,0,0,114,236,0, - 0,0,114,252,0,0,0,114,160,0,0,0,114,203,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,19,1,0,0,116,4,0,0,115,22, - 0,0,0,8,2,4,6,8,9,8,4,8,3,8,8,8, - 6,8,6,8,4,8,4,2,1,114,19,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,104,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,100,18,100,19,132,0,90,12, - 100,20,100,21,132,0,90,13,100,22,100,23,132,0,90,14, - 100,24,83,0,41,25,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,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,36,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,3,124,0,95,5,100, - 0,83,0,114,68,0,0,0,41,6,218,5,95,110,97,109, - 101,218,5,95,112,97,116,104,114,135,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,12,95,112,97,116,104,95,102,105,110,100,101,114, - 169,4,114,142,0,0,0,114,140,0,0,0,114,64,0,0, - 0,90,11,112,97,116,104,95,102,105,110,100,101,114,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,232,0, - 0,0,181,4,0,0,115,8,0,0,0,0,1,6,1,6, - 1,14,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,30,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,95,0,0,0,114,13,0,0,0,41,2,114,25, - 0,0,0,114,64,0,0,0,90,8,95,95,112,97,116,104, - 95,95,41,2,114,46,1,0,0,114,102,0,0,0,41,4, - 114,142,0,0,0,114,38,1,0,0,218,3,100,111,116,90, - 2,109,101,114,10,0,0,0,114,10,0,0,0,114,11,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,187,4,0,0,115, - 8,0,0,0,0,2,18,1,8,2,4,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,68, - 0,0,0,41,4,114,53,1,0,0,114,154,0,0,0,114, - 25,0,0,0,218,7,109,111,100,117,108,101,115,41,3,114, - 142,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,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,48,1,0,0,197,4,0,0, - 115,4,0,0,0,0,1,12,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,80,0,0,0,116,0,124,0,160,1,161,0, - 131,1,125,1,124,1,124,0,106,2,107,3,114,74,124,0, - 160,3,124,0,106,4,124,1,161,2,125,2,124,2,100,0, - 107,9,114,68,124,2,106,5,100,0,107,8,114,68,124,2, - 106,6,114,68,124,2,106,6,124,0,95,7,124,1,124,0, - 95,2,124,0,106,7,83,0,114,68,0,0,0,41,8,114, - 135,0,0,0,114,48,1,0,0,114,49,1,0,0,114,50, - 1,0,0,114,46,1,0,0,114,164,0,0,0,114,202,0, - 0,0,114,47,1,0,0,41,3,114,142,0,0,0,90,11, - 112,97,114,101,110,116,95,112,97,116,104,114,210,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, - 12,95,114,101,99,97,108,99,117,108,97,116,101,201,4,0, - 0,115,16,0,0,0,0,2,12,1,10,1,14,3,18,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,115,12,0,0, - 0,116,0,124,0,160,1,161,0,131,1,83,0,114,68,0, - 0,0,41,2,114,29,1,0,0,114,55,1,0,0,114,13, - 1,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,8,95,95,105,116,101,114,95,95,214,4,0,0, - 115,2,0,0,0,0,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,68,0,0,0,169, - 1,114,55,1,0,0,41,2,114,142,0,0,0,218,5,105, - 110,100,101,120,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,218,11,95,95,103,101,116,105,116,101,109,95,95, - 217,4,0,0,115,2,0,0,0,0,1,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,68,0,0,0,41,1,114,47,1,0,0,41, - 3,114,142,0,0,0,114,58,1,0,0,114,64,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, - 11,95,95,115,101,116,105,116,101,109,95,95,220,4,0,0, - 115,2,0,0,0,0,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,115,12,0,0, - 0,116,0,124,0,160,1,161,0,131,1,83,0,114,68,0, - 0,0,41,2,114,6,0,0,0,114,55,1,0,0,114,13, - 1,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,7,95,95,108,101,110,95,95,223,4,0,0,115, - 2,0,0,0,0,1,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,115,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,87,0,0,0,114,47,1,0,0,114,13,1, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,218,8,95,95,114,101,112,114,95,95,226,4,0,0,115, - 2,0,0,0,0,1,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,107,6,83,0,114,68,0,0,0,114,57, - 1,0,0,169,2,114,142,0,0,0,218,4,105,116,101,109, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, - 12,95,95,99,111,110,116,97,105,110,115,95,95,229,4,0, - 0,115,2,0,0,0,0,1,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,68,0,0,0,41,2,114,47,1,0,0,114, - 60,0,0,0,114,63,1,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,60,0,0,0,232,4,0, - 0,115,2,0,0,0,0,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,15,114,149,0,0,0,114,148,0,0,0,114,150,0,0, - 0,114,151,0,0,0,114,232,0,0,0,114,53,1,0,0, - 114,48,1,0,0,114,55,1,0,0,114,56,1,0,0,114, - 59,1,0,0,114,60,1,0,0,114,61,1,0,0,114,62, - 1,0,0,114,65,1,0,0,114,60,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,45,1,0,0,174,4,0,0,115,24,0,0,0,8, - 1,4,6,8,6,8,10,8,4,8,13,8,3,8,3,8, - 3,8,3,8,3,8,3,114,45,1,0,0,99,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,64,0,0,0,115,80,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,83,0,41,18,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,68, - 0,0,0,41,2,114,45,1,0,0,114,47,1,0,0,114, - 51,1,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,232,0,0,0,238,4,0,0,115,2,0,0, - 0,0,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,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,100,1,160,0, - 124,1,106,1,161,1,83,0,41,2,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, - 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,2,114,87,0,0, - 0,114,149,0,0,0,41,2,114,216,0,0,0,114,239,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,218,11,109,111,100,117,108,101,95,114,101,112,114,241,4, - 0,0,115,2,0,0,0,0,7,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, - 115,4,0,0,0,100,1,83,0,41,2,78,84,114,10,0, - 0,0,114,242,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,206,0,0,0,250,4,0,0,115, - 2,0,0,0,0,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,115,4,0,0, - 0,100,1,83,0,41,2,78,114,13,0,0,0,114,10,0, - 0,0,114,242,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,252,0,0,0,253,4,0,0,115, - 2,0,0,0,0,1,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,13,0,0,0,122,8,60,115,116,114,105, - 110,103,62,114,238,0,0,0,84,41,1,114,254,0,0,0, - 41,1,114,255,0,0,0,114,242,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,236,0,0,0, - 0,5,0,0,115,2,0,0,0,0,1,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,115, - 4,0,0,0,100,1,83,0,114,233,0,0,0,114,10,0, - 0,0,114,234,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,235,0,0,0,3,5,0,0,115, - 2,0,0,0,0,1,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, + 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,115, - 4,0,0,0,100,0,83,0,114,68,0,0,0,114,10,0, - 0,0,114,20,1,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,240,0,0,0,6,5,0,0,115, - 2,0,0,0,0,1,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,158,0,0, - 0,114,173,0,0,0,114,47,1,0,0,114,241,0,0,0, - 114,242,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,243,0,0,0,9,5,0,0,115,8,0, - 0,0,0,7,6,1,4,255,4,2,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,78,41,12,114,149,0,0,0, - 114,148,0,0,0,114,150,0,0,0,114,232,0,0,0,114, - 230,0,0,0,114,67,1,0,0,114,206,0,0,0,114,252, - 0,0,0,114,236,0,0,0,114,235,0,0,0,114,240,0, - 0,0,114,243,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,66,1,0,0, - 237,4,0,0,115,18,0,0,0,8,1,8,3,2,1,10, - 8,8,3,8,3,8,3,8,3,8,3,114,66,1,0,0, + 6,0,0,0,124,0,106,0,83,0,114,21,1,0,0,114, + 73,0,0,0,114,246,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,207,0,0,0,168,4,0, + 0,115,2,0,0,0,0,3,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,153,0, + 0,0,114,152,0,0,0,114,154,0,0,0,114,155,0,0, + 0,114,236,0,0,0,114,14,1,0,0,114,18,1,0,0, + 114,239,0,0,0,114,244,0,0,0,114,210,0,0,0,114, + 240,0,0,0,114,0,1,0,0,114,164,0,0,0,114,207, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,23,1,0,0,116,4,0,0, + 115,22,0,0,0,8,2,4,6,8,9,8,4,8,3,8, + 8,8,6,8,6,8,4,8,4,2,1,114,23,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,4,100,6,100,7,132,0,131,1,90,7,101,4, - 100,8,100,9,132,0,131,1,90,8,101,4,100,19,100,11, - 100,12,132,1,131,1,90,9,101,4,100,20,100,13,100,14, - 132,1,131,1,90,10,101,4,100,21,100,15,100,16,132,1, - 131,1,90,11,101,4,100,17,100,18,132,0,131,1,90,12, - 100,10,83,0,41,22,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,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,64,0,0,0, - 116,0,116,1,106,2,160,3,161,0,131,1,68,0,93,44, - 92,2,125,1,125,2,124,2,100,1,107,8,114,40,116,1, - 106,2,124,1,61,0,113,14,116,4,124,2,100,2,131,2, - 114,14,124,2,160,5,161,0,1,0,113,14,100,1,83,0, - 41,3,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,41,6,218,4,108,105,115,116,114,25,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,152, - 0,0,0,114,69,1,0,0,41,3,114,216,0,0,0,114, - 140,0,0,0,218,6,102,105,110,100,101,114,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,69,1,0,0, - 27,5,0,0,115,10,0,0,0,0,4,22,1,8,1,10, - 1,10,1,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,2,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,9,0,0,0,67,0,0,0,115,84,0,0,0,116, - 0,106,1,100,1,107,9,114,28,116,0,106,1,115,28,116, - 2,160,3,100,2,116,4,161,2,1,0,116,0,106,1,68, - 0,93,44,125,2,122,14,124,2,124,1,131,1,87,0,2, - 0,1,0,83,0,4,0,116,5,107,10,114,76,1,0,1, - 0,1,0,89,0,113,34,89,0,113,34,88,0,113,34,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,25,0,0,0,218,10,112,97,116,104,95,104,111,111, - 107,115,114,97,0,0,0,114,98,0,0,0,114,162,0,0, - 0,114,141,0,0,0,41,3,114,216,0,0,0,114,64,0, - 0,0,90,4,104,111,111,107,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,11,95,112,97,116,104,95,104, - 111,111,107,115,37,5,0,0,115,16,0,0,0,0,3,16, - 1,12,1,10,1,2,1,14,1,14,1,12,2,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,104, - 0,0,0,124,1,100,1,107,2,114,44,122,12,116,0,160, - 1,161,0,125,1,87,0,110,22,4,0,116,2,107,10,114, - 42,1,0,1,0,1,0,89,0,100,2,83,0,88,0,122, - 14,116,3,106,4,124,1,25,0,125,2,87,0,110,40,4, - 0,116,5,107,10,114,98,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,110,2,88,0,124,2,83,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,13,0,0,0,78,41,7,114,21,0,0,0,114,80, - 0,0,0,114,26,1,0,0,114,25,0,0,0,114,71,1, - 0,0,218,8,75,101,121,69,114,114,111,114,114,75,1,0, - 0,41,3,114,216,0,0,0,114,64,0,0,0,114,73,1, + 0,2,0,0,0,64,0,0,0,115,104,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,100,18,100,19,132,0, + 90,12,100,20,100,21,132,0,90,13,100,22,100,23,132,0, + 90,14,100,24,83,0,41,25,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,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,36,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,3,124,0,95, + 5,100,0,83,0,114,71,0,0,0,41,6,218,5,95,110, + 97,109,101,218,5,95,112,97,116,104,114,139,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,12,95,112,97,116,104,95,102,105,110,100, + 101,114,169,4,114,146,0,0,0,114,144,0,0,0,114,67, + 0,0,0,90,11,112,97,116,104,95,102,105,110,100,101,114, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, + 236,0,0,0,181,4,0,0,115,8,0,0,0,0,1,6, + 1,6,1,14,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,30,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,98,0,0,0,114,13,0,0,0,41,2, + 114,28,0,0,0,114,67,0,0,0,90,8,95,95,112,97, + 116,104,95,95,41,2,114,51,1,0,0,114,105,0,0,0, + 41,4,114,146,0,0,0,114,43,1,0,0,218,3,100,111, + 116,90,2,109,101,114,10,0,0,0,114,10,0,0,0,114, + 11,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,187,4,0, + 0,115,8,0,0,0,0,2,18,1,8,2,4,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,71,0,0,0,41,4,114,58,1,0,0,114,158,0,0, + 0,114,28,0,0,0,218,7,109,111,100,117,108,101,115,41, + 3,114,146,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,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,53,1,0,0,197,4, + 0,0,115,4,0,0,0,0,1,12,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,80,0,0,0,116,0,124,0,160,1, + 161,0,131,1,125,1,124,1,124,0,106,2,107,3,114,74, + 124,0,160,3,124,0,106,4,124,1,161,2,125,2,124,2, + 100,0,107,9,114,68,124,2,106,5,100,0,107,8,114,68, + 124,2,106,6,114,68,124,2,106,6,124,0,95,7,124,1, + 124,0,95,2,124,0,106,7,83,0,114,71,0,0,0,41, + 8,114,139,0,0,0,114,53,1,0,0,114,54,1,0,0, + 114,55,1,0,0,114,51,1,0,0,114,168,0,0,0,114, + 206,0,0,0,114,52,1,0,0,41,3,114,146,0,0,0, + 218,11,112,97,114,101,110,116,95,112,97,116,104,114,214,0, 0,0,114,10,0,0,0,114,10,0,0,0,114,11,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,50,5,0,0,115,22,0,0,0, - 0,8,8,1,2,1,12,1,14,3,8,1,2,1,14,1, - 14,1,10,1,16,1,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,6,0,0,0,4,0,0,0,67,0,0,0, - 115,82,0,0,0,116,0,124,2,100,1,131,2,114,26,124, - 2,160,1,124,1,161,1,92,2,125,3,125,4,110,14,124, - 2,160,2,124,1,161,1,125,3,103,0,125,4,124,3,100, - 0,107,9,114,60,116,3,160,4,124,1,124,3,161,2,83, - 0,116,3,160,5,124,1,100,0,161,2,125,5,124,4,124, - 5,95,6,124,5,83,0,41,2,78,114,161,0,0,0,41, - 7,114,152,0,0,0,114,161,0,0,0,114,229,0,0,0, - 114,158,0,0,0,114,224,0,0,0,114,207,0,0,0,114, - 202,0,0,0,41,6,114,216,0,0,0,114,163,0,0,0, - 114,73,1,0,0,114,164,0,0,0,114,165,0,0,0,114, - 210,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,218,16,95,108,101,103,97,99,121,95,103,101,116, - 95,115,112,101,99,72,5,0,0,115,18,0,0,0,0,4, - 10,1,16,2,10,1,4,1,8,1,12,1,12,1,6,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,134,125,5,116,0,124,5,116,1,116,2, - 102,2,131,2,115,28,113,8,124,0,160,3,124,5,161,1, - 125,6,124,6,100,1,107,9,114,8,116,4,124,6,100,2, - 131,2,114,70,124,6,160,5,124,1,124,3,161,2,125,7, - 110,12,124,0,160,6,124,1,124,6,161,2,125,7,124,7, - 100,1,107,8,114,92,113,8,124,7,106,7,100,1,107,9, - 114,110,124,7,2,0,1,0,83,0,124,7,106,8,125,8, - 124,8,100,1,107,8,114,132,116,9,100,3,131,1,130,1, - 124,4,160,10,124,8,161,1,1,0,113,8,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,108,0,0,0,218,5,98,121, - 116,101,115,114,77,1,0,0,114,152,0,0,0,114,226,0, - 0,0,114,78,1,0,0,114,164,0,0,0,114,202,0,0, - 0,114,141,0,0,0,114,191,0,0,0,114,158,0,0,0, - 114,207,0,0,0,41,9,114,216,0,0,0,114,163,0,0, - 0,114,64,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,73,1,0,0,114,210,0,0,0,114,165,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,9,95,103,101,116,95,115,112,101,99,87,5,0,0,115, - 40,0,0,0,0,5,4,1,8,1,14,1,2,1,10,1, - 8,1,10,1,14,2,12,1,8,1,2,1,10,1,8,1, - 6,1,8,1,8,5,12,2,12,1,6,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,100,0,0,0, - 124,2,100,1,107,8,114,14,116,0,106,1,125,2,124,0, - 160,2,124,1,124,2,124,3,161,3,125,4,124,4,100,1, - 107,8,114,40,100,1,83,0,124,4,106,3,100,1,107,8, - 114,92,124,4,106,4,125,5,124,5,114,86,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,110,4,124,4,83,0, - 100,1,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,25,0,0,0,114,64,0, - 0,0,114,81,1,0,0,114,164,0,0,0,114,202,0,0, - 0,114,205,0,0,0,114,45,1,0,0,41,6,114,216,0, - 0,0,114,163,0,0,0,114,64,0,0,0,114,225,0,0, - 0,114,210,0,0,0,114,80,1,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,226,0,0,0,119, - 5,0,0,115,26,0,0,0,0,6,8,1,6,1,14,1, - 8,1,4,1,10,1,6,1,4,3,6,1,16,1,4,2, - 6,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,30,0,0,0,124,0,160,0,124,1,124,2,161,2, - 125,3,124,3,100,1,107,8,114,24,100,1,83,0,124,3, - 106,1,83,0,41,2,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, + 0,218,12,95,114,101,99,97,108,99,117,108,97,116,101,201, + 4,0,0,115,16,0,0,0,0,2,12,1,10,1,14,3, + 18,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,115,12, + 0,0,0,116,0,124,0,160,1,161,0,131,1,83,0,114, + 71,0,0,0,41,2,114,33,1,0,0,114,61,1,0,0, + 114,17,1,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,8,95,95,105,116,101,114,95,95,214,4, + 0,0,115,2,0,0,0,0,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,71,0,0, + 0,169,1,114,61,1,0,0,41,2,114,146,0,0,0,218, + 5,105,110,100,101,120,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,218,11,95,95,103,101,116,105,116,101,109, + 95,95,217,4,0,0,115,2,0,0,0,0,1,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,71,0,0,0,41,1,114,52,1,0, + 0,41,3,114,146,0,0,0,114,64,1,0,0,114,67,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,218,11,95,95,115,101,116,105,116,101,109,95,95,220,4, + 0,0,115,2,0,0,0,0,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,115,12, + 0,0,0,116,0,124,0,160,1,161,0,131,1,83,0,114, + 71,0,0,0,41,2,114,6,0,0,0,114,61,1,0,0, + 114,17,1,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,7,95,95,108,101,110,95,95,223,4,0, + 0,115,2,0,0,0,0,1,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,115,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,90,0,0,0,114,52,1,0,0,114, + 17,1,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,218,8,95,95,114,101,112,114,95,95,226,4,0, + 0,115,2,0,0,0,0,1,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,107,6,83,0,114,71,0,0,0, + 114,63,1,0,0,169,2,114,146,0,0,0,218,4,105,116, + 101,109,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,218,12,95,95,99,111,110,116,97,105,110,115,95,95,229, + 4,0,0,115,2,0,0,0,0,1,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,71,0,0,0,41,2,114,52,1,0, + 0,114,63,0,0,0,114,69,1,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,114,63,0,0,0,232, + 4,0,0,115,2,0,0,0,0,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,15,114,153,0,0,0,114,152,0,0,0,114,154, + 0,0,0,114,155,0,0,0,114,236,0,0,0,114,58,1, + 0,0,114,53,1,0,0,114,61,1,0,0,114,62,1,0, + 0,114,65,1,0,0,114,66,1,0,0,114,67,1,0,0, + 114,68,1,0,0,114,71,1,0,0,114,63,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,50,1,0,0,174,4,0,0,115,24,0,0, + 0,8,1,4,6,8,6,8,10,8,4,8,13,8,3,8, + 3,8,3,8,3,8,3,8,3,114,50,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,80,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,83,0,41,18,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,71,0,0,0,41,2,114,50,1,0,0,114,52,1,0, + 0,114,56,1,0,0,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,114,236,0,0,0,238,4,0,0,115,2, + 0,0,0,0,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,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,100,1, + 160,0,124,1,106,1,161,1,83,0,41,2,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,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,2,114,90, + 0,0,0,114,153,0,0,0,41,2,114,220,0,0,0,114, + 243,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,218,11,109,111,100,117,108,101,95,114,101,112,114, + 241,4,0,0,115,2,0,0,0,0,7,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,115,4,0,0,0,100,1,83,0,41,2,78,84,114, + 10,0,0,0,114,246,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,210,0,0,0,250,4,0, + 0,115,2,0,0,0,0,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,115,4, + 0,0,0,100,1,83,0,41,2,78,114,13,0,0,0,114, + 10,0,0,0,114,246,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,0,1,0,0,253,4,0, + 0,115,2,0,0,0,0,1,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,13,0,0,0,122,8,60,115,116, + 114,105,110,103,62,114,242,0,0,0,84,41,1,114,2,1, + 0,0,41,1,114,3,1,0,0,114,246,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,114,240,0, + 0,0,0,5,0,0,115,2,0,0,0,0,1,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,115,4,0,0,0,100,1,83,0,114,237,0,0,0,114, + 10,0,0,0,114,238,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,239,0,0,0,3,5,0, + 0,115,2,0,0,0,0,1,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,71,0,0,0,114, + 10,0,0,0,114,24,1,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,244,0,0,0,6,5,0, + 0,115,2,0,0,0,0,1,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,102,105,110,100,95,115,112,101,99,40,41,32, - 105,110,115,116,101,97,100,46,10,10,32,32,32,32,32,32, - 32,32,78,114,227,0,0,0,114,228,0,0,0,114,10,0, - 0,0,114,10,0,0,0,114,11,0,0,0,114,229,0,0, - 0,143,5,0,0,115,8,0,0,0,0,8,12,1,8,1, - 4,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,1,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,79, - 0,0,0,115,24,0,0,0,100,1,100,2,108,0,109,1, - 125,3,1,0,124,3,106,2,124,1,124,2,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,82,1,0,0,218,18,102, - 105,110,100,95,100,105,115,116,114,105,98,117,116,105,111,110, - 115,41,4,114,216,0,0,0,114,143,0,0,0,114,144,0, - 0,0,114,82,1,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,83,1,0,0,156,5,0,0,115, - 4,0,0,0,0,10,12,1,122,29,80,97,116,104,70,105, - 110,100,101,114,46,102,105,110,100,95,100,105,115,116,114,105, - 98,117,116,105,111,110,115,41,1,78,41,2,78,78,41,1, - 78,41,13,114,149,0,0,0,114,148,0,0,0,114,150,0, - 0,0,114,151,0,0,0,114,230,0,0,0,114,69,1,0, - 0,114,75,1,0,0,114,77,1,0,0,114,78,1,0,0, - 114,81,1,0,0,114,226,0,0,0,114,229,0,0,0,114, - 83,1,0,0,114,10,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,68,1,0,0,23,5,0, - 0,115,34,0,0,0,8,2,4,2,2,1,10,9,2,1, - 10,12,2,1,10,21,2,1,10,14,2,1,12,31,2,1, - 12,23,2,1,12,12,2,1,114,68,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,32,92,2,137,0,125,4,124, - 3,160,0,135,0,102,1,100,1,100,2,132,8,124,4,68, - 0,131,1,161,1,1,0,113,8,124,3,124,0,95,1,124, - 1,112,54,100,3,124,0,95,2,116,3,124,0,106,2,131, - 1,115,86,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,22,0,0,0,124,0,93,14,125, - 1,124,1,136,0,102,2,86,0,1,0,113,2,100,0,83, - 0,114,68,0,0,0,114,10,0,0,0,114,40,1,0,0, - 169,1,114,164,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,12,0,0,0,185,5,0,0,115,4,0,0,0,4, - 0,2,0,122,38,70,105,108,101,70,105,110,100,101,114,46, - 95,95,105,110,105,116,95,95,46,60,108,111,99,97,108,115, - 62,46,60,103,101,110,101,120,112,114,62,114,95,0,0,0, - 114,129,0,0,0,78,41,11,114,191,0,0,0,218,8,95, - 108,111,97,100,101,114,115,114,64,0,0,0,114,84,0,0, - 0,114,66,0,0,0,114,21,0,0,0,114,80,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,142,0,0,0,114,64,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,10, - 0,0,0,114,85,1,0,0,114,11,0,0,0,114,232,0, - 0,0,179,5,0,0,115,20,0,0,0,0,4,4,1,12, - 1,26,1,6,2,10,1,10,1,18,1,6,1,8,1,122, - 19,70,105,108,101,70,105,110,100,101,114,46,95,95,105,110, - 105,116,95,95,99,1,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,2,0,0,0,67,0,0,0,115,10,0, - 0,0,100,1,124,0,95,0,100,2,83,0,41,3,122,31, - 73,110,118,97,108,105,100,97,116,101,32,116,104,101,32,100, - 105,114,101,99,116,111,114,121,32,109,116,105,109,101,46,114, - 129,0,0,0,78,41,1,114,87,1,0,0,114,13,1,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,69,1,0,0,195,5,0,0,115,2,0,0,0,0,2, - 122,28,70,105,108,101,70,105,110,100,101,114,46,105,110,118, - 97,108,105,100,97,116,101,95,99,97,99,104,101,115,99,2, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, - 0,0,0,67,0,0,0,115,42,0,0,0,124,0,160,0, - 124,1,161,1,125,2,124,2,100,1,107,8,114,26,100,1, - 103,0,102,2,83,0,124,2,106,1,124,2,106,2,112,38, - 103,0,102,2,83,0,41,2,122,197,84,114,121,32,116,111, - 32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,102, - 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100, - 32,109,111,100,117,108,101,44,32,111,114,32,116,104,101,32, - 110,97,109,101,115,112,97,99,101,10,32,32,32,32,32,32, - 32,32,112,97,99,107,97,103,101,32,112,111,114,116,105,111, - 110,115,46,32,82,101,116,117,114,110,115,32,40,108,111,97, - 100,101,114,44,32,108,105,115,116,45,111,102,45,112,111,114, - 116,105,111,110,115,41,46,10,10,32,32,32,32,32,32,32, - 32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,32, - 100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,101, - 32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,115, - 116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,78, - 41,3,114,226,0,0,0,114,164,0,0,0,114,202,0,0, - 0,41,3,114,142,0,0,0,114,163,0,0,0,114,210,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,161,0,0,0,201,5,0,0,115,8,0,0,0,0, - 7,10,1,8,1,8,1,122,22,70,105,108,101,70,105,110, - 100,101,114,46,102,105,110,100,95,108,111,97,100,101,114,99, - 6,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, - 6,0,0,0,67,0,0,0,115,26,0,0,0,124,1,124, - 2,124,3,131,2,125,6,116,0,124,2,124,3,124,6,124, - 4,100,1,141,4,83,0,41,2,78,114,201,0,0,0,41, - 1,114,213,0,0,0,41,7,114,142,0,0,0,114,211,0, - 0,0,114,163,0,0,0,114,64,0,0,0,90,4,115,109, - 115,108,114,225,0,0,0,114,164,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,81,1,0,0, - 213,5,0,0,115,8,0,0,0,0,1,10,1,8,1,2, - 255,122,20,70,105,108,101,70,105,110,100,101,114,46,95,103, - 101,116,95,115,112,101,99,78,99,3,0,0,0,0,0,0, - 0,0,0,0,0,14,0,0,0,9,0,0,0,67,0,0, - 0,115,130,1,0,0,100,1,125,3,124,1,160,0,100,2, - 161,1,100,3,25,0,125,4,122,24,116,1,124,0,106,2, - 112,34,116,3,160,4,161,0,131,1,106,5,125,5,87,0, - 110,24,4,0,116,6,107,10,114,66,1,0,1,0,1,0, - 100,4,125,5,89,0,110,2,88,0,124,5,124,0,106,7, - 107,3,114,92,124,0,160,8,161,0,1,0,124,5,124,0, - 95,7,116,9,131,0,114,114,124,0,106,10,125,6,124,4, - 160,11,161,0,125,7,110,10,124,0,106,12,125,6,124,4, - 125,7,124,7,124,6,107,6,114,218,116,13,124,0,106,2, - 124,4,131,2,125,8,124,0,106,14,68,0,93,58,92,2, - 125,9,125,10,100,5,124,9,23,0,125,11,116,13,124,8, - 124,11,131,2,125,12,116,15,124,12,131,1,114,150,124,0, - 160,16,124,10,124,1,124,12,124,8,103,1,124,2,161,5, - 2,0,1,0,83,0,113,150,116,17,124,8,131,1,125,3, - 124,0,106,14,68,0,93,114,92,2,125,9,125,10,122,20, - 116,13,124,0,106,2,124,4,124,9,23,0,131,2,125,12, - 87,0,110,26,4,0,116,18,107,10,144,1,114,22,1,0, - 1,0,1,0,89,0,1,0,100,6,83,0,88,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,107,6,114,224,116,15,124,12,131,1, - 114,224,124,0,160,16,124,10,124,1,124,12,100,6,124,2, - 161,5,2,0,1,0,83,0,113,224,124,3,144,1,114,126, - 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,95,0,0, - 0,114,44,0,0,0,114,129,0,0,0,114,232,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,102,0,0,0,114,74,0,0,0, - 114,64,0,0,0,114,21,0,0,0,114,80,0,0,0,114, - 33,1,0,0,114,75,0,0,0,114,87,1,0,0,218,11, - 95,102,105,108,108,95,99,97,99,104,101,114,24,0,0,0, - 114,90,1,0,0,114,130,0,0,0,114,89,1,0,0,114, - 66,0,0,0,114,86,1,0,0,114,79,0,0,0,114,81, - 1,0,0,114,81,0,0,0,114,110,0,0,0,114,158,0, - 0,0,114,173,0,0,0,114,207,0,0,0,114,202,0,0, - 0,41,14,114,142,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,41,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,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,226,0,0,0,218, - 5,0,0,115,80,0,0,0,0,5,4,1,14,1,2,1, - 24,1,14,1,10,1,10,1,8,1,6,2,6,1,6,1, - 10,2,6,1,4,2,8,1,12,1,14,1,8,1,10,1, - 8,1,26,4,8,2,14,1,2,1,20,1,16,1,10,1, - 16,1,12,1,8,1,10,1,2,0,2,255,10,2,6,1, - 12,1,12,1,8,1,4,1,122,20,70,105,108,101,70,105, - 110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,1, - 0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,10, - 0,0,0,67,0,0,0,115,190,0,0,0,124,0,106,0, - 125,1,122,22,116,1,160,2,124,1,112,22,116,1,160,3, - 161,0,161,1,125,2,87,0,110,30,4,0,116,4,116,5, - 116,6,102,3,107,10,114,58,1,0,1,0,1,0,103,0, - 125,2,89,0,110,2,88,0,116,7,106,8,160,9,100,1, - 161,1,115,84,116,10,124,2,131,1,124,0,95,11,110,74, - 116,10,131,0,125,3,124,2,68,0,93,56,125,4,124,4, - 160,12,100,2,161,1,92,3,125,5,125,6,125,7,124,6, - 114,136,100,3,160,13,124,5,124,7,160,14,161,0,161,2, - 125,8,110,4,124,5,125,8,124,3,160,15,124,8,161,1, - 1,0,113,94,124,3,124,0,95,11,116,7,106,8,160,9, - 116,16,161,1,114,186,100,4,100,5,132,0,124,2,68,0, - 131,1,124,0,95,17,100,6,83,0,41,7,122,68,70,105, - 108,108,32,116,104,101,32,99,97,99,104,101,32,111,102,32, - 112,111,116,101,110,116,105,97,108,32,109,111,100,117,108,101, - 115,32,97,110,100,32,112,97,99,107,97,103,101,115,32,102, - 111,114,32,116,104,105,115,32,100,105,114,101,99,116,111,114, - 121,46,114,19,0,0,0,114,95,0,0,0,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,83,0,0,0,115,20,0,0,0,104, - 0,124,0,93,12,125,1,124,1,160,0,161,0,146,2,113, - 4,83,0,114,10,0,0,0,41,1,114,130,0,0,0,41, - 2,114,8,0,0,0,90,2,102,110,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,18,0,0,0,42,6, - 0,0,115,4,0,0,0,6,0,2,0,122,41,70,105,108, - 101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,97, - 99,104,101,46,60,108,111,99,97,108,115,62,46,60,115,101, - 116,99,111,109,112,62,78,41,18,114,64,0,0,0,114,21, - 0,0,0,114,30,1,0,0,114,80,0,0,0,114,26,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,25,0,0,0,114,26,0,0, - 0,114,27,0,0,0,114,88,1,0,0,114,89,1,0,0, - 114,125,0,0,0,114,87,0,0,0,114,130,0,0,0,218, - 3,97,100,100,114,28,0,0,0,114,90,1,0,0,41,9, - 114,142,0,0,0,114,64,0,0,0,114,31,1,0,0,90, - 21,108,111,119,101,114,95,115,117,102,102,105,120,95,99,111, - 110,116,101,110,116,115,114,64,1,0,0,114,140,0,0,0, - 114,52,1,0,0,114,41,1,0,0,90,8,110,101,119,95, - 110,97,109,101,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,92,1,0,0,13,6,0,0,115,34,0,0, - 0,0,2,6,1,2,1,22,1,20,3,10,3,12,1,12, - 7,6,1,8,1,16,1,4,1,18,2,4,1,12,1,6, - 1,12,1,122,22,70,105,108,101,70,105,110,100,101,114,46, - 95,102,105,108,108,95,99,97,99,104,101,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 7,0,0,0,115,18,0,0,0,135,0,135,1,102,2,100, - 1,100,2,132,8,125,2,124,2,83,0,41,3,97,20,1, - 0,0,65,32,99,108,97,115,115,32,109,101,116,104,111,100, - 32,119,104,105,99,104,32,114,101,116,117,114,110,115,32,97, - 32,99,108,111,115,117,114,101,32,116,111,32,117,115,101,32, + 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,162, + 0,0,0,114,177,0,0,0,114,52,1,0,0,114,245,0, + 0,0,114,246,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,114,247,0,0,0,9,5,0,0,115, + 8,0,0,0,0,7,6,1,4,255,4,2,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,78,41,12,114,153,0, + 0,0,114,152,0,0,0,114,154,0,0,0,114,236,0,0, + 0,114,234,0,0,0,114,73,1,0,0,114,210,0,0,0, + 114,0,1,0,0,114,240,0,0,0,114,239,0,0,0,114, + 244,0,0,0,114,247,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,114,72,1, + 0,0,237,4,0,0,115,18,0,0,0,8,1,8,3,2, + 1,10,8,8,3,8,3,8,3,8,3,8,3,114,72,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,4,100,6,100,7,132,0,131,1,90,7, + 101,4,100,8,100,9,132,0,131,1,90,8,101,4,100,19, + 100,11,100,12,132,1,131,1,90,9,101,4,100,20,100,13, + 100,14,132,1,131,1,90,10,101,4,100,21,100,15,100,16, + 132,1,131,1,90,11,101,4,100,17,100,18,132,0,131,1, + 90,12,100,10,83,0,41,22,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,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,64,0, + 0,0,116,0,116,1,106,2,160,3,161,0,131,1,68,0, + 93,44,92,2,125,1,125,2,124,2,100,1,107,8,114,40, + 116,1,106,2,124,1,61,0,113,14,116,4,124,2,100,2, + 131,2,114,14,124,2,160,5,161,0,1,0,113,14,100,1, + 83,0,41,3,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,41,6,218,4,108,105,115,116,114, + 28,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,156,0,0,0,114,75,1,0,0,41,3,114,220,0,0, + 0,114,144,0,0,0,218,6,102,105,110,100,101,114,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,114,75,1, + 0,0,27,5,0,0,115,10,0,0,0,0,4,22,1,8, + 1,10,1,10,1,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,2,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,9,0,0,0,67,0,0,0,115,84,0,0, + 0,116,0,106,1,100,1,107,9,114,28,116,0,106,1,115, + 28,116,2,160,3,100,2,116,4,161,2,1,0,116,0,106, + 1,68,0,93,44,125,2,122,14,124,2,124,1,131,1,87, + 0,2,0,1,0,83,0,4,0,116,5,107,10,114,76,1, + 0,1,0,1,0,89,0,113,34,89,0,113,34,88,0,113, + 34,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,28,0,0,0,218,10,112,97,116,104,95,104, + 111,111,107,115,114,100,0,0,0,114,101,0,0,0,114,166, + 0,0,0,114,145,0,0,0,41,3,114,220,0,0,0,114, + 67,0,0,0,90,4,104,111,111,107,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,218,11,95,112,97,116,104, + 95,104,111,111,107,115,37,5,0,0,115,16,0,0,0,0, + 3,16,1,12,1,10,1,2,1,14,1,14,1,12,2,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,104,0,0,0,124,1,100,1,107,2,114,44,122,12,116, + 0,160,1,161,0,125,1,87,0,110,22,4,0,116,2,107, + 10,114,42,1,0,1,0,1,0,89,0,100,2,83,0,88, + 0,122,14,116,3,106,4,124,1,25,0,125,2,87,0,110, + 40,4,0,116,5,107,10,114,98,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,110,2,88,0,124,2,83,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,13,0,0,0,78,41,7,114,24,0,0,0, + 114,83,0,0,0,114,30,1,0,0,114,28,0,0,0,114, + 77,1,0,0,218,8,75,101,121,69,114,114,111,114,114,81, + 1,0,0,41,3,114,220,0,0,0,114,67,0,0,0,114, + 79,1,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 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,50,5,0,0,115,22,0, + 0,0,0,8,8,1,2,1,12,1,14,3,8,1,2,1, + 14,1,14,1,10,1,16,1,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,6,0,0,0,4,0,0,0,67,0, + 0,0,115,82,0,0,0,116,0,124,2,100,1,131,2,114, + 26,124,2,160,1,124,1,161,1,92,2,125,3,125,4,110, + 14,124,2,160,2,124,1,161,1,125,3,103,0,125,4,124, + 3,100,0,107,9,114,60,116,3,160,4,124,1,124,3,161, + 2,83,0,116,3,160,5,124,1,100,0,161,2,125,5,124, + 4,124,5,95,6,124,5,83,0,41,2,78,114,165,0,0, + 0,41,7,114,156,0,0,0,114,165,0,0,0,114,233,0, + 0,0,114,162,0,0,0,114,228,0,0,0,114,211,0,0, + 0,114,206,0,0,0,41,6,114,220,0,0,0,114,167,0, + 0,0,114,79,1,0,0,114,168,0,0,0,114,169,0,0, + 0,114,214,0,0,0,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,218,16,95,108,101,103,97,99,121,95,103, + 101,116,95,115,112,101,99,72,5,0,0,115,18,0,0,0, + 0,4,10,1,16,2,10,1,4,1,8,1,12,1,12,1, + 6,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,134,125,5,116,0,124,5,116,1, + 116,2,102,2,131,2,115,28,113,8,124,0,160,3,124,5, + 161,1,125,6,124,6,100,1,107,9,114,8,116,4,124,6, + 100,2,131,2,114,70,124,6,160,5,124,1,124,3,161,2, + 125,7,110,12,124,0,160,6,124,1,124,6,161,2,125,7, + 124,7,100,1,107,8,114,92,113,8,124,7,106,7,100,1, + 107,9,114,110,124,7,2,0,1,0,83,0,124,7,106,8, + 125,8,124,8,100,1,107,8,114,132,116,9,100,3,131,1, + 130,1,124,4,160,10,124,8,161,1,1,0,113,8,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,111,0,0,0,218,5, + 98,121,116,101,115,114,83,1,0,0,114,156,0,0,0,114, + 230,0,0,0,114,84,1,0,0,114,168,0,0,0,114,206, + 0,0,0,114,145,0,0,0,114,195,0,0,0,114,162,0, + 0,0,114,211,0,0,0,41,9,114,220,0,0,0,114,167, + 0,0,0,114,67,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,79,1,0,0,114,214,0,0,0,114,169, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,9,95,103,101,116,95,115,112,101,99,87,5,0, + 0,115,40,0,0,0,0,5,4,1,8,1,14,1,2,1, + 10,1,8,1,10,1,14,2,12,1,8,1,2,1,10,1, + 8,1,6,1,8,1,8,5,12,2,12,1,6,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,100,0, + 0,0,124,2,100,1,107,8,114,14,116,0,106,1,125,2, + 124,0,160,2,124,1,124,2,124,3,161,3,125,4,124,4, + 100,1,107,8,114,40,100,1,83,0,124,4,106,3,100,1, + 107,8,114,92,124,4,106,4,125,5,124,5,114,86,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,110,4,124,4, + 83,0,100,1,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, - 10,32,32,32,32,32,32,32,32,119,104,105,99,104,32,119, - 105,108,108,32,114,101,116,117,114,110,32,97,110,32,105,110, - 115,116,97,110,99,101,32,117,115,105,110,103,32,116,104,101, - 32,115,112,101,99,105,102,105,101,100,32,108,111,97,100,101, - 114,115,32,97,110,100,32,116,104,101,32,112,97,116,104,10, - 32,32,32,32,32,32,32,32,99,97,108,108,101,100,32,111, - 110,32,116,104,101,32,99,108,111,115,117,114,101,46,10,10, - 32,32,32,32,32,32,32,32,73,102,32,116,104,101,32,112, - 97,116,104,32,99,97,108,108,101,100,32,111,110,32,116,104, - 101,32,99,108,111,115,117,114,101,32,105,115,32,110,111,116, - 32,97,32,100,105,114,101,99,116,111,114,121,44,32,73,109, - 112,111,114,116,69,114,114,111,114,32,105,115,10,32,32,32, - 32,32,32,32,32,114,97,105,115,101,100,46,10,10,32,32, - 32,32,32,32,32,32,99,1,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,4,0,0,0,19,0,0,0,115, - 34,0,0,0,116,0,124,0,131,1,115,20,116,1,100,1, - 124,0,100,2,141,2,130,1,136,0,124,0,102,1,136,1, - 158,2,142,0,83,0,41,3,122,45,80,97,116,104,32,104, - 111,111,107,32,102,111,114,32,105,109,112,111,114,116,108,105, - 98,46,109,97,99,104,105,110,101,114,121,46,70,105,108,101, - 70,105,110,100,101,114,46,122,30,111,110,108,121,32,100,105, - 114,101,99,116,111,114,105,101,115,32,97,114,101,32,115,117, - 112,112,111,114,116,101,100,114,70,0,0,0,41,2,114,81, - 0,0,0,114,141,0,0,0,114,70,0,0,0,169,2,114, - 216,0,0,0,114,91,1,0,0,114,10,0,0,0,114,11, - 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,54,6,0, - 0,115,6,0,0,0,0,2,8,1,12,1,122,54,70,105, - 108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,111, - 111,107,46,60,108,111,99,97,108,115,62,46,112,97,116,104, - 95,104,111,111,107,95,102,111,114,95,70,105,108,101,70,105, - 110,100,101,114,114,10,0,0,0,41,3,114,216,0,0,0, - 114,91,1,0,0,114,97,1,0,0,114,10,0,0,0,114, - 96,1,0,0,114,11,0,0,0,218,9,112,97,116,104,95, - 104,111,111,107,44,6,0,0,115,4,0,0,0,0,10,14, - 6,122,20,70,105,108,101,70,105,110,100,101,114,46,112,97, - 116,104,95,104,111,111,107,99,1,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0, - 115,12,0,0,0,100,1,160,0,124,0,106,1,161,1,83, - 0,41,2,78,122,16,70,105,108,101,70,105,110,100,101,114, - 40,123,33,114,125,41,41,2,114,87,0,0,0,114,64,0, - 0,0,114,13,1,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,62,1,0,0,62,6,0,0,115, - 2,0,0,0,0,1,122,19,70,105,108,101,70,105,110,100, - 101,114,46,95,95,114,101,112,114,95,95,41,1,78,41,15, - 114,149,0,0,0,114,148,0,0,0,114,150,0,0,0,114, - 151,0,0,0,114,232,0,0,0,114,69,1,0,0,114,167, - 0,0,0,114,229,0,0,0,114,161,0,0,0,114,81,1, - 0,0,114,226,0,0,0,114,92,1,0,0,114,230,0,0, - 0,114,98,1,0,0,114,62,1,0,0,114,10,0,0,0, + 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,28,0,0,0,114, + 67,0,0,0,114,87,1,0,0,114,168,0,0,0,114,206, + 0,0,0,114,209,0,0,0,114,50,1,0,0,41,6,114, + 220,0,0,0,114,167,0,0,0,114,67,0,0,0,114,229, + 0,0,0,114,214,0,0,0,114,86,1,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,230,0,0, + 0,119,5,0,0,115,26,0,0,0,0,6,8,1,6,1, + 14,1,8,1,4,1,10,1,6,1,4,3,6,1,16,1, + 4,2,6,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,30,0,0,0,124,0,160,0,124,1,124,2, + 161,2,125,3,124,3,100,1,107,8,114,24,100,1,83,0, + 124,3,106,1,83,0,41,2,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,78,114,231,0,0,0,114,232,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,233, + 0,0,0,143,5,0,0,115,8,0,0,0,0,8,12,1, + 8,1,4,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,1,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,79,0,0,0,115,24,0,0,0,100,1,100,2,108,0, + 109,1,125,3,1,0,124,3,106,2,124,1,124,2,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,88,1,0,0,218, + 18,102,105,110,100,95,100,105,115,116,114,105,98,117,116,105, + 111,110,115,41,4,114,220,0,0,0,114,147,0,0,0,114, + 148,0,0,0,114,88,1,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,89,1,0,0,156,5,0, + 0,115,4,0,0,0,0,10,12,1,122,29,80,97,116,104, + 70,105,110,100,101,114,46,102,105,110,100,95,100,105,115,116, + 114,105,98,117,116,105,111,110,115,41,1,78,41,2,78,78, + 41,1,78,41,13,114,153,0,0,0,114,152,0,0,0,114, + 154,0,0,0,114,155,0,0,0,114,234,0,0,0,114,75, + 1,0,0,114,81,1,0,0,114,83,1,0,0,114,84,1, + 0,0,114,87,1,0,0,114,230,0,0,0,114,233,0,0, + 0,114,89,1,0,0,114,10,0,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,114,74,1,0,0,23, + 5,0,0,115,34,0,0,0,8,2,4,2,2,1,10,9, + 2,1,10,12,2,1,10,21,2,1,10,14,2,1,12,31, + 2,1,12,23,2,1,12,12,2,1,114,74,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,32,92,2,137,0,125, + 4,124,3,160,0,135,0,102,1,100,1,100,2,132,8,124, + 4,68,0,131,1,161,1,1,0,113,8,124,3,124,0,95, + 1,124,1,112,54,100,3,124,0,95,2,116,3,124,0,106, + 2,131,1,115,86,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,22,0,0,0,124,0,93, + 14,125,1,124,1,136,0,102,2,86,0,1,0,113,2,100, + 0,83,0,114,71,0,0,0,114,10,0,0,0,114,45,1, + 0,0,169,1,114,168,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,12,0,0,0,185,5,0,0,115,4,0,0, + 0,4,0,2,0,122,38,70,105,108,101,70,105,110,100,101, + 114,46,95,95,105,110,105,116,95,95,46,60,108,111,99,97, + 108,115,62,46,60,103,101,110,101,120,112,114,62,114,98,0, + 0,0,114,132,0,0,0,78,41,11,114,195,0,0,0,218, + 8,95,108,111,97,100,101,114,115,114,67,0,0,0,114,87, + 0,0,0,114,69,0,0,0,114,24,0,0,0,114,83,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,146,0,0,0,114,67,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,10,0,0,0,114,91,1,0,0,114,11,0,0,0,114, + 236,0,0,0,179,5,0,0,115,20,0,0,0,0,4,4, + 1,12,1,26,1,6,2,10,1,10,1,18,1,6,1,8, + 1,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95, + 105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,0, + 0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,115, + 10,0,0,0,100,1,124,0,95,0,100,2,83,0,41,3, + 122,31,73,110,118,97,108,105,100,97,116,101,32,116,104,101, + 32,100,105,114,101,99,116,111,114,121,32,109,116,105,109,101, + 46,114,132,0,0,0,78,41,1,114,93,1,0,0,114,17, + 1,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,114,75,1,0,0,195,5,0,0,115,2,0,0,0, + 0,2,122,28,70,105,108,101,70,105,110,100,101,114,46,105, + 110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115, + 99,2,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,3,0,0,0,67,0,0,0,115,42,0,0,0,124,0, + 160,0,124,1,161,1,125,2,124,2,100,1,107,8,114,26, + 100,1,103,0,102,2,83,0,124,2,106,1,124,2,106,2, + 112,38,103,0,102,2,83,0,41,2,122,197,84,114,121,32, + 116,111,32,102,105,110,100,32,97,32,108,111,97,100,101,114, + 32,102,111,114,32,116,104,101,32,115,112,101,99,105,102,105, + 101,100,32,109,111,100,117,108,101,44,32,111,114,32,116,104, + 101,32,110,97,109,101,115,112,97,99,101,10,32,32,32,32, + 32,32,32,32,112,97,99,107,97,103,101,32,112,111,114,116, + 105,111,110,115,46,32,82,101,116,117,114,110,115,32,40,108, + 111,97,100,101,114,44,32,108,105,115,116,45,111,102,45,112, + 111,114,116,105,111,110,115,41,46,10,10,32,32,32,32,32, + 32,32,32,84,104,105,115,32,109,101,116,104,111,100,32,105, + 115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,85, + 115,101,32,102,105,110,100,95,115,112,101,99,40,41,32,105, + 110,115,116,101,97,100,46,10,10,32,32,32,32,32,32,32, + 32,78,41,3,114,230,0,0,0,114,168,0,0,0,114,206, + 0,0,0,41,3,114,146,0,0,0,114,167,0,0,0,114, + 214,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,165,0,0,0,201,5,0,0,115,8,0,0, + 0,0,7,10,1,8,1,8,1,122,22,70,105,108,101,70, + 105,110,100,101,114,46,102,105,110,100,95,108,111,97,100,101, + 114,99,6,0,0,0,0,0,0,0,0,0,0,0,7,0, + 0,0,6,0,0,0,67,0,0,0,115,26,0,0,0,124, + 1,124,2,124,3,131,2,125,6,116,0,124,2,124,3,124, + 6,124,4,100,1,141,4,83,0,41,2,78,114,205,0,0, + 0,41,1,114,217,0,0,0,41,7,114,146,0,0,0,114, + 215,0,0,0,114,167,0,0,0,114,67,0,0,0,90,4, + 115,109,115,108,114,229,0,0,0,114,168,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,114,87,1, + 0,0,213,5,0,0,115,8,0,0,0,0,1,10,1,8, + 1,2,255,122,20,70,105,108,101,70,105,110,100,101,114,46, + 95,103,101,116,95,115,112,101,99,78,99,3,0,0,0,0, + 0,0,0,0,0,0,0,14,0,0,0,9,0,0,0,67, + 0,0,0,115,130,1,0,0,100,1,125,3,124,1,160,0, + 100,2,161,1,100,3,25,0,125,4,122,24,116,1,124,0, + 106,2,112,34,116,3,160,4,161,0,131,1,106,5,125,5, + 87,0,110,24,4,0,116,6,107,10,114,66,1,0,1,0, + 1,0,100,4,125,5,89,0,110,2,88,0,124,5,124,0, + 106,7,107,3,114,92,124,0,160,8,161,0,1,0,124,5, + 124,0,95,7,116,9,131,0,114,114,124,0,106,10,125,6, + 124,4,160,11,161,0,125,7,110,10,124,0,106,12,125,6, + 124,4,125,7,124,7,124,6,107,6,114,218,116,13,124,0, + 106,2,124,4,131,2,125,8,124,0,106,14,68,0,93,58, + 92,2,125,9,125,10,100,5,124,9,23,0,125,11,116,13, + 124,8,124,11,131,2,125,12,116,15,124,12,131,1,114,150, + 124,0,160,16,124,10,124,1,124,12,124,8,103,1,124,2, + 161,5,2,0,1,0,83,0,113,150,116,17,124,8,131,1, + 125,3,124,0,106,14,68,0,93,114,92,2,125,9,125,10, + 122,20,116,13,124,0,106,2,124,4,124,9,23,0,131,2, + 125,12,87,0,110,26,4,0,116,18,107,10,144,1,114,22, + 1,0,1,0,1,0,89,0,1,0,100,6,83,0,88,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,107,6,114,224,116,15,124,12, + 131,1,114,224,124,0,160,16,124,10,124,1,124,12,100,6, + 124,2,161,5,2,0,1,0,83,0,113,224,124,3,144,1, + 114,126,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,98, + 0,0,0,114,47,0,0,0,114,132,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,105,0,0,0,114,77,0, + 0,0,114,67,0,0,0,114,24,0,0,0,114,83,0,0, + 0,114,38,1,0,0,114,78,0,0,0,114,93,1,0,0, + 218,11,95,102,105,108,108,95,99,97,99,104,101,114,27,0, + 0,0,114,96,1,0,0,114,133,0,0,0,114,95,1,0, + 0,114,69,0,0,0,114,92,1,0,0,114,82,0,0,0, + 114,87,1,0,0,114,84,0,0,0,114,113,0,0,0,114, + 162,0,0,0,114,177,0,0,0,114,211,0,0,0,114,206, + 0,0,0,41,14,114,146,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,46,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,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,230,0,0, + 0,218,5,0,0,115,80,0,0,0,0,5,4,1,14,1, + 2,1,24,1,14,1,10,1,10,1,8,1,6,2,6,1, + 6,1,10,2,6,1,4,2,8,1,12,1,14,1,8,1, + 10,1,8,1,26,4,8,2,14,1,2,1,20,1,16,1, + 10,1,16,1,12,1,8,1,10,1,2,0,2,255,10,2, + 6,1,12,1,12,1,8,1,4,1,122,20,70,105,108,101, + 70,105,110,100,101,114,46,102,105,110,100,95,115,112,101,99, + 99,1,0,0,0,0,0,0,0,0,0,0,0,9,0,0, + 0,10,0,0,0,67,0,0,0,115,190,0,0,0,124,0, + 106,0,125,1,122,22,116,1,160,2,124,1,112,22,116,1, + 160,3,161,0,161,1,125,2,87,0,110,30,4,0,116,4, + 116,5,116,6,102,3,107,10,114,58,1,0,1,0,1,0, + 103,0,125,2,89,0,110,2,88,0,116,7,106,8,160,9, + 100,1,161,1,115,84,116,10,124,2,131,1,124,0,95,11, + 110,74,116,10,131,0,125,3,124,2,68,0,93,56,125,4, + 124,4,160,12,100,2,161,1,92,3,125,5,125,6,125,7, + 124,6,114,136,100,3,160,13,124,5,124,7,160,14,161,0, + 161,2,125,8,110,4,124,5,125,8,124,3,160,15,124,8, + 161,1,1,0,113,94,124,3,124,0,95,11,116,7,106,8, + 160,9,116,16,161,1,114,186,100,4,100,5,132,0,124,2, + 68,0,131,1,124,0,95,17,100,6,83,0,41,7,122,68, + 70,105,108,108,32,116,104,101,32,99,97,99,104,101,32,111, + 102,32,112,111,116,101,110,116,105,97,108,32,109,111,100,117, + 108,101,115,32,97,110,100,32,112,97,99,107,97,103,101,115, + 32,102,111,114,32,116,104,105,115,32,100,105,114,101,99,116, + 111,114,121,46,114,19,0,0,0,114,98,0,0,0,114,89, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,4,0,0,0,83,0,0,0,115,20,0,0, + 0,104,0,124,0,93,12,125,1,124,1,160,0,161,0,146, + 2,113,4,83,0,114,10,0,0,0,41,1,114,133,0,0, + 0,41,2,114,8,0,0,0,90,2,102,110,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,18,0,0,0, + 42,6,0,0,115,4,0,0,0,6,0,2,0,122,41,70, + 105,108,101,70,105,110,100,101,114,46,95,102,105,108,108,95, + 99,97,99,104,101,46,60,108,111,99,97,108,115,62,46,60, + 115,101,116,99,111,109,112,62,78,41,18,114,67,0,0,0, + 114,24,0,0,0,114,34,1,0,0,114,83,0,0,0,114, + 30,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,28,0,0,0,114,29, + 0,0,0,114,30,0,0,0,114,94,1,0,0,114,95,1, + 0,0,114,128,0,0,0,114,90,0,0,0,114,133,0,0, + 0,218,3,97,100,100,114,31,0,0,0,114,96,1,0,0, + 41,9,114,146,0,0,0,114,67,0,0,0,114,35,1,0, + 0,90,21,108,111,119,101,114,95,115,117,102,102,105,120,95, + 99,111,110,116,101,110,116,115,114,70,1,0,0,114,144,0, + 0,0,114,57,1,0,0,114,46,1,0,0,90,8,110,101, + 119,95,110,97,109,101,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,114,98,1,0,0,13,6,0,0,115,34, + 0,0,0,0,2,6,1,2,1,22,1,20,3,10,3,12, + 1,12,7,6,1,8,1,16,1,4,1,18,2,4,1,12, + 1,6,1,12,1,122,22,70,105,108,101,70,105,110,100,101, + 114,46,95,102,105,108,108,95,99,97,99,104,101,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,7,0,0,0,115,18,0,0,0,135,0,135,1,102, + 2,100,1,100,2,132,8,125,2,124,2,83,0,41,3,97, + 20,1,0,0,65,32,99,108,97,115,115,32,109,101,116,104, + 111,100,32,119,104,105,99,104,32,114,101,116,117,114,110,115, + 32,97,32,99,108,111,115,117,114,101,32,116,111,32,117,115, + 101,32,111,110,32,115,121,115,46,112,97,116,104,95,104,111, + 111,107,10,32,32,32,32,32,32,32,32,119,104,105,99,104, + 32,119,105,108,108,32,114,101,116,117,114,110,32,97,110,32, + 105,110,115,116,97,110,99,101,32,117,115,105,110,103,32,116, + 104,101,32,115,112,101,99,105,102,105,101,100,32,108,111,97, + 100,101,114,115,32,97,110,100,32,116,104,101,32,112,97,116, + 104,10,32,32,32,32,32,32,32,32,99,97,108,108,101,100, + 32,111,110,32,116,104,101,32,99,108,111,115,117,114,101,46, + 10,10,32,32,32,32,32,32,32,32,73,102,32,116,104,101, + 32,112,97,116,104,32,99,97,108,108,101,100,32,111,110,32, + 116,104,101,32,99,108,111,115,117,114,101,32,105,115,32,110, + 111,116,32,97,32,100,105,114,101,99,116,111,114,121,44,32, + 73,109,112,111,114,116,69,114,114,111,114,32,105,115,10,32, + 32,32,32,32,32,32,32,114,97,105,115,101,100,46,10,10, + 32,32,32,32,32,32,32,32,99,1,0,0,0,0,0,0, + 0,0,0,0,0,1,0,0,0,4,0,0,0,19,0,0, + 0,115,34,0,0,0,116,0,124,0,131,1,115,20,116,1, + 100,1,124,0,100,2,141,2,130,1,136,0,124,0,102,1, + 136,1,158,2,142,0,83,0,41,3,122,45,80,97,116,104, + 32,104,111,111,107,32,102,111,114,32,105,109,112,111,114,116, + 108,105,98,46,109,97,99,104,105,110,101,114,121,46,70,105, + 108,101,70,105,110,100,101,114,46,122,30,111,110,108,121,32, + 100,105,114,101,99,116,111,114,105,101,115,32,97,114,101,32, + 115,117,112,112,111,114,116,101,100,114,73,0,0,0,41,2, + 114,84,0,0,0,114,145,0,0,0,114,73,0,0,0,169, + 2,114,220,0,0,0,114,97,1,0,0,114,10,0,0,0, + 114,11,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,54, + 6,0,0,115,6,0,0,0,0,2,8,1,12,1,122,54, + 70,105,108,101,70,105,110,100,101,114,46,112,97,116,104,95, + 104,111,111,107,46,60,108,111,99,97,108,115,62,46,112,97, + 116,104,95,104,111,111,107,95,102,111,114,95,70,105,108,101, + 70,105,110,100,101,114,114,10,0,0,0,41,3,114,220,0, + 0,0,114,97,1,0,0,114,103,1,0,0,114,10,0,0, + 0,114,102,1,0,0,114,11,0,0,0,218,9,112,97,116, + 104,95,104,111,111,107,44,6,0,0,115,4,0,0,0,0, + 10,14,6,122,20,70,105,108,101,70,105,110,100,101,114,46, + 112,97,116,104,95,104,111,111,107,99,1,0,0,0,0,0, + 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0, + 0,0,115,12,0,0,0,100,1,160,0,124,0,106,1,161, + 1,83,0,41,2,78,122,16,70,105,108,101,70,105,110,100, + 101,114,40,123,33,114,125,41,41,2,114,90,0,0,0,114, + 67,0,0,0,114,17,1,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,68,1,0,0,62,6,0, + 0,115,2,0,0,0,0,1,122,19,70,105,108,101,70,105, + 110,100,101,114,46,95,95,114,101,112,114,95,95,41,1,78, + 41,15,114,153,0,0,0,114,152,0,0,0,114,154,0,0, + 0,114,155,0,0,0,114,236,0,0,0,114,75,1,0,0, + 114,171,0,0,0,114,233,0,0,0,114,165,0,0,0,114, + 87,1,0,0,114,230,0,0,0,114,98,1,0,0,114,234, + 0,0,0,114,104,1,0,0,114,68,1,0,0,114,10,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,90,1,0,0,170,5,0,0,115,22,0,0,0,8, + 2,4,7,8,16,8,4,4,2,8,12,8,5,10,51,8, + 31,2,1,10,17,114,90,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,71,0,0,0,41,3,114,19,1,0,0,114,236,0, + 0,0,218,12,112,97,114,101,110,116,95,112,97,116,104,115, + 41,4,114,146,0,0,0,114,167,0,0,0,218,10,100,121, + 108,105,98,95,102,105,108,101,114,67,0,0,0,114,20,1, + 0,0,114,10,0,0,0,114,11,0,0,0,114,236,0,0, + 0,84,6,0,0,115,4,0,0,0,0,1,14,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,62,124,0,106, + 2,68,0,93,36,125,3,116,3,124,3,131,1,114,24,116, + 4,124,3,116,5,124,0,106,6,131,1,100,1,25,0,131, + 2,124,2,95,7,113,24,113,24,124,2,83,0,41,2,78, + 114,132,0,0,0,41,8,114,19,1,0,0,114,239,0,0, + 0,114,106,1,0,0,114,84,0,0,0,114,69,0,0,0, + 114,76,0,0,0,114,67,0,0,0,218,8,95,95,102,105, + 108,101,95,95,41,4,114,146,0,0,0,114,214,0,0,0, + 90,3,109,111,100,114,60,1,0,0,114,20,1,0,0,114, + 10,0,0,0,114,11,0,0,0,114,239,0,0,0,88,6, + 0,0,115,14,0,0,0,0,1,12,1,6,1,10,1,8, + 1,22,1,4,1,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,153,0,0,0, + 114,152,0,0,0,114,154,0,0,0,114,155,0,0,0,114, + 236,0,0,0,114,239,0,0,0,114,36,1,0,0,114,10, + 0,0,0,114,10,0,0,0,114,20,1,0,0,114,11,0, + 0,0,114,105,1,0,0,66,6,0,0,115,6,0,0,0, + 8,1,4,17,12,4,114,105,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,71,0,0,0,41,1,218,15,102,114,97, + 109,101,119,111,114,107,115,95,112,97,116,104,114,249,0,0, + 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 114,236,0,0,0,104,6,0,0,115,2,0,0,0,0,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,80,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,18,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,18,100,0,83,0,41,5,78,114,98,0,0,0,114,132, + 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,49, + 1,0,0,114,69,0,0,0,114,110,1,0,0,114,162,0, + 0,0,114,177,0,0,0,114,82,0,0,0,114,105,1,0, + 0,114,228,0,0,0,41,8,114,146,0,0,0,114,167,0, + 0,0,114,67,0,0,0,114,229,0,0,0,114,144,0,0, + 0,114,136,0,0,0,114,107,1,0,0,114,168,0,0,0, 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 84,1,0,0,170,5,0,0,115,22,0,0,0,8,2,4, - 7,8,16,8,4,4,2,8,12,8,5,10,51,8,31,2, - 1,10,17,114,84,1,0,0,99,4,0,0,0,0,0,0, - 0,0,0,0,0,6,0,0,0,8,0,0,0,67,0,0, - 0,115,146,0,0,0,124,0,160,0,100,1,161,1,125,4, - 124,0,160,0,100,2,161,1,125,5,124,4,115,66,124,5, - 114,36,124,5,106,1,125,4,110,30,124,2,124,3,107,2, - 114,56,116,2,124,1,124,2,131,2,125,4,110,10,116,3, - 124,1,124,2,131,2,125,4,124,5,115,84,116,4,124,1, - 124,2,124,4,100,3,141,3,125,5,122,36,124,5,124,0, - 100,2,60,0,124,4,124,0,100,1,60,0,124,2,124,0, - 100,4,60,0,124,3,124,0,100,5,60,0,87,0,110,20, - 4,0,116,5,107,10,114,140,1,0,1,0,1,0,89,0, - 110,2,88,0,100,0,83,0,41,6,78,218,10,95,95,108, - 111,97,100,101,114,95,95,218,8,95,95,115,112,101,99,95, - 95,114,85,1,0,0,90,8,95,95,102,105,108,101,95,95, + 230,0,0,0,107,6,0,0,115,16,0,0,0,0,1,14, + 2,8,1,28,1,12,1,8,1,12,1,18,2,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,41,1,78, + 41,6,114,153,0,0,0,114,152,0,0,0,114,154,0,0, + 0,114,155,0,0,0,114,236,0,0,0,114,230,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,109,1,0,0,98,6,0,0,115,6,0, + 0,0,8,1,4,5,8,3,114,109,1,0,0,99,4,0, + 0,0,0,0,0,0,0,0,0,0,6,0,0,0,8,0, + 0,0,67,0,0,0,115,146,0,0,0,124,0,160,0,100, + 1,161,1,125,4,124,0,160,0,100,2,161,1,125,5,124, + 4,115,66,124,5,114,36,124,5,106,1,125,4,110,30,124, + 2,124,3,107,2,114,56,116,2,124,1,124,2,131,2,125, + 4,110,10,116,3,124,1,124,2,131,2,125,4,124,5,115, + 84,116,4,124,1,124,2,124,4,100,3,141,3,125,5,122, + 36,124,5,124,0,100,2,60,0,124,4,124,0,100,1,60, + 0,124,2,124,0,100,4,60,0,124,3,124,0,100,5,60, + 0,87,0,110,20,4,0,116,5,107,10,114,140,1,0,1, + 0,1,0,89,0,110,2,88,0,100,0,83,0,41,6,78, + 218,10,95,95,108,111,97,100,101,114,95,95,218,8,95,95, + 115,112,101,99,95,95,114,91,1,0,0,114,108,1,0,0, 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,39,1,0,0,114,32,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,140,0,0,0,90,8,112, + 103,101,116,114,168,0,0,0,114,44,1,0,0,114,37,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,144,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,10,0,0, + 109,101,114,168,0,0,0,114,214,0,0,0,114,10,0,0, 0,114,10,0,0,0,114,11,0,0,0,218,14,95,102,105, - 120,95,117,112,95,109,111,100,117,108,101,68,6,0,0,115, + 120,95,117,112,95,109,111,100,117,108,101,121,6,0,0,115, 34,0,0,0,0,2,10,1,10,1,4,1,4,1,8,1, 8,1,12,2,10,1,4,1,14,1,2,1,8,1,8,1, - 8,1,12,1,14,2,114,103,1,0,0,99,0,0,0,0, + 8,1,12,1,14,2,114,116,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, @@ -2658,14 +2814,14 @@ 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,19,1,0,0,114,187,0,0,0,218,18, + 32,32,41,7,114,23,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,32,1,0,0,114,126,0,0,0,114,39,1,0, - 0,114,112,0,0,0,41,3,90,10,101,120,116,101,110,115, + 101,115,114,37,1,0,0,114,129,0,0,0,114,44,1,0, + 0,114,115,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,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,208,0,0,0,91,6,0,0,115,8, - 0,0,0,0,5,12,1,8,1,8,1,114,208,0,0,0, + 114,11,0,0,0,114,212,0,0,0,144,6,0,0,115,8, + 0,0,0,0,5,12,1,8,1,8,1,114,212,0,0,0, 99,1,0,0,0,0,0,0,0,0,0,0,0,12,0,0, 0,9,0,0,0,67,0,0,0,115,178,1,0,0,124,0, 97,0,116,0,106,1,97,1,116,0,106,2,97,2,116,1, @@ -2708,119 +2864,133 @@ 101,32,101,120,116,114,97,99,116,101,100,32,102,114,111,109, 32,116,104,101,32,99,111,114,101,32,98,111,111,116,115,116, 114,97,112,32,109,111,100,117,108,101,46,10,10,32,32,32, - 32,41,4,114,89,0,0,0,114,97,0,0,0,218,8,98, - 117,105,108,116,105,110,115,114,184,0,0,0,218,5,112,111, + 32,41,4,114,92,0,0,0,114,100,0,0,0,218,8,98, + 117,105,108,116,105,110,115,114,188,0,0,0,218,5,112,111, 115,105,120,114,2,0,0,0,218,2,110,116,114,1,0,0, 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0, 0,0,3,0,0,0,115,0,0,0,115,26,0,0,0,124, 0,93,18,125,1,116,0,124,1,131,1,100,0,107,2,86, 0,1,0,113,2,100,1,83,0,114,3,0,0,0,114,5, 0,0,0,114,7,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,12,0,0,0,127,6,0,0, + 0,0,114,11,0,0,0,114,12,0,0,0,180,6,0,0, 115,4,0,0,0,4,0,2,0,122,25,95,115,101,116,117, 112,46,60,108,111,99,97,108,115,62,46,60,103,101,110,101, 120,112,114,62,114,0,0,0,0,122,30,105,109,112,111,114, 116,108,105,98,32,114,101,113,117,105,114,101,115,32,112,111, - 115,105,120,32,111,114,32,110,116,114,21,0,0,0,114,58, - 0,0,0,114,49,0,0,0,114,13,0,0,0,218,20,95, + 115,105,120,32,111,114,32,110,116,114,24,0,0,0,114,61, + 0,0,0,114,52,0,0,0,114,13,0,0,0,218,20,95, 112,97,116,104,115,101,112,115,95,119,105,116,104,95,99,111, 108,111,110,99,1,0,0,0,0,0,0,0,0,0,0,0, 2,0,0,0,4,0,0,0,83,0,0,0,115,22,0,0, 0,104,0,124,0,93,14,125,1,100,0,124,1,155,0,157, 2,146,2,113,4,83,0,114,14,0,0,0,114,10,0,0, 0,114,16,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,18,0,0,0,143,6,0,0,115,4, + 114,11,0,0,0,114,18,0,0,0,196,6,0,0,115,4, 0,0,0,6,0,2,0,122,25,95,115,101,116,117,112,46, 60,108,111,99,97,108,115,62,46,60,115,101,116,99,111,109, 112,62,90,7,95,116,104,114,101,97,100,90,8,95,119,101, - 97,107,114,101,102,218,6,119,105,110,114,101,103,114,215,0, - 0,0,114,24,0,0,0,122,4,46,112,121,119,122,6,95, - 100,46,112,121,100,84,78,41,19,114,158,0,0,0,114,25, - 0,0,0,114,187,0,0,0,114,54,1,0,0,114,149,0, + 97,107,114,101,102,218,6,119,105,110,114,101,103,114,219,0, + 0,0,114,27,0,0,0,122,4,46,112,121,119,122,6,95, + 100,46,112,121,100,84,78,41,19,114,162,0,0,0,114,28, + 0,0,0,114,191,0,0,0,114,59,1,0,0,114,153,0, 0,0,90,18,95,98,117,105,108,116,105,110,95,102,114,111, - 109,95,110,97,109,101,114,153,0,0,0,218,3,97,108,108, - 114,39,0,0,0,114,141,0,0,0,114,61,0,0,0,114, - 30,0,0,0,114,44,1,0,0,114,191,0,0,0,114,104, - 1,0,0,114,126,0,0,0,114,60,0,0,0,114,214,0, - 0,0,114,218,0,0,0,41,12,218,17,95,98,111,111,116, + 109,95,110,97,109,101,114,157,0,0,0,218,3,97,108,108, + 114,42,0,0,0,114,145,0,0,0,114,64,0,0,0,114, + 33,0,0,0,114,49,1,0,0,114,195,0,0,0,114,117, + 1,0,0,114,129,0,0,0,114,63,0,0,0,114,218,0, + 0,0,114,222,0,0,0,41,12,218,17,95,98,111,111,116, 115,116,114,97,112,95,109,111,100,117,108,101,90,11,115,101, 108,102,95,109,111,100,117,108,101,90,12,98,117,105,108,116, 105,110,95,110,97,109,101,90,14,98,117,105,108,116,105,110, 95,109,111,100,117,108,101,90,10,111,115,95,100,101,116,97, 105,108,115,90,10,98,117,105,108,116,105,110,95,111,115,114, - 49,0,0,0,114,58,0,0,0,90,9,111,115,95,109,111, + 52,0,0,0,114,61,0,0,0,90,9,111,115,95,109,111, 100,117,108,101,90,13,116,104,114,101,97,100,95,109,111,100, 117,108,101,90,14,119,101,97,107,114,101,102,95,109,111,100, 117,108,101,90,13,119,105,110,114,101,103,95,109,111,100,117, 108,101,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,218,6,95,115,101,116,117,112,102,6,0,0,115,78,0, + 0,218,6,95,115,101,116,117,112,155,6,0,0,115,78,0, 0,0,0,8,4,1,6,1,6,3,10,1,8,1,10,1, 12,2,10,1,14,3,22,1,12,2,22,1,8,1,10,1, 10,1,6,2,2,1,10,1,10,1,14,1,12,2,8,1, 12,1,12,1,18,1,22,3,10,1,12,3,10,1,12,3, 10,1,10,1,12,3,14,1,14,1,10,1,10,1,10,1, - 114,112,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, + 114,125,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,108, 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,112,1,0,0,114,208,0,0,0,114, - 25,0,0,0,114,74,1,0,0,114,191,0,0,0,114,84, - 1,0,0,114,98,1,0,0,218,9,109,101,116,97,95,112, - 97,116,104,114,60,0,0,0,114,68,1,0,0,41,2,114, - 111,1,0,0,90,17,115,117,112,112,111,114,116,101,100,95, - 108,111,97,100,101,114,115,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,8,95,105,110,115,116,97,108,108, - 167,6,0,0,115,8,0,0,0,0,2,8,1,6,1,20, - 1,114,114,1,0,0,41,1,114,85,0,0,0,41,1,78, - 41,3,78,78,78,41,2,114,0,0,0,0,114,0,0,0, - 0,41,1,84,41,1,78,41,1,78,41,82,114,151,0,0, - 0,114,187,0,0,0,114,89,0,0,0,114,25,0,0,0, - 114,97,0,0,0,114,184,0,0,0,114,26,0,0,0,90, - 11,95,77,83,95,87,73,78,68,79,87,83,114,107,1,0, - 0,114,21,0,0,0,114,109,1,0,0,114,106,1,0,0, - 114,49,0,0,0,114,110,1,0,0,114,39,0,0,0,114, - 58,0,0,0,114,135,0,0,0,114,56,0,0,0,114,61, - 0,0,0,114,108,1,0,0,114,29,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,28,0,0,0,114,30,0,0,0,114,37, - 0,0,0,114,43,0,0,0,114,45,0,0,0,114,66,0, - 0,0,114,73,0,0,0,114,74,0,0,0,114,78,0,0, - 0,114,79,0,0,0,114,81,0,0,0,114,84,0,0,0, - 114,93,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,35,0,0,0,114, - 172,0,0,0,114,34,0,0,0,114,40,0,0,0,114,3, - 1,0,0,114,115,0,0,0,114,111,0,0,0,114,126,0, - 0,0,114,112,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,120,0, - 0,0,114,127,0,0,0,114,134,0,0,0,114,136,0,0, - 0,114,138,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,231,0,0,0,114, - 244,0,0,0,114,6,1,0,0,114,32,1,0,0,114,39, - 1,0,0,114,44,1,0,0,114,19,1,0,0,114,45,1, - 0,0,114,66,1,0,0,114,68,1,0,0,114,84,1,0, - 0,114,103,1,0,0,114,208,0,0,0,114,112,1,0,0, - 114,114,1,0,0,114,10,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,218,8,60,109,111,100,117, - 108,101,62,1,0,0,0,115,170,0,0,0,4,22,8,1, - 8,1,8,1,8,1,8,3,10,1,4,1,8,1,10,2, - 8,3,4,1,10,2,6,2,22,1,8,1,8,1,10,1, - 14,4,4,1,4,1,2,1,2,255,4,4,8,17,8,5, - 8,5,8,6,4,1,10,30,8,6,8,8,8,10,8,9, - 8,5,8,7,6,1,10,8,8,5,10,22,10,127,0,13, - 16,1,12,2,4,1,4,2,6,2,6,2,8,2,16,71, - 8,40,8,19,8,12,8,12,8,28,8,17,8,33,8,28, - 8,24,10,13,10,10,10,11,8,14,6,3,4,1,2,255, - 12,68,14,64,14,29,16,127,0,17,14,72,18,45,18,26, - 4,3,18,58,14,63,14,42,14,127,0,20,14,127,0,27, - 10,23,8,11,8,65, + 0,116,2,106,10,100,1,107,6,114,104,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,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,20,0,0,0,114,22,0,0,0,114,21,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, + 125,1,0,0,114,212,0,0,0,114,28,0,0,0,114,80, + 1,0,0,114,195,0,0,0,114,90,1,0,0,114,104,1, + 0,0,218,9,109,101,116,97,95,112,97,116,104,114,63,0, + 0,0,114,74,1,0,0,114,29,0,0,0,114,69,0,0, + 0,114,76,0,0,0,90,10,101,120,101,99,117,116,97,98, + 108,101,114,162,0,0,0,114,177,0,0,0,114,109,1,0, + 0,41,3,114,124,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,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,218,8,95, + 105,110,115,116,97,108,108,220,6,0,0,115,16,0,0,0, + 0,2,8,1,6,1,20,1,12,1,10,1,20,1,12,1, + 114,127,1,0,0,41,1,114,88,0,0,0,41,1,78,41, + 3,78,78,78,41,2,114,0,0,0,0,114,0,0,0,0, + 41,1,84,41,1,78,41,1,78,41,84,114,155,0,0,0, + 114,191,0,0,0,114,92,0,0,0,114,28,0,0,0,114, + 100,0,0,0,114,188,0,0,0,114,29,0,0,0,90,11, + 95,77,83,95,87,73,78,68,79,87,83,114,120,1,0,0, + 114,24,0,0,0,114,122,1,0,0,114,119,1,0,0,114, + 52,0,0,0,114,123,1,0,0,114,42,0,0,0,114,61, + 0,0,0,114,139,0,0,0,114,59,0,0,0,114,64,0, + 0,0,114,121,1,0,0,114,32,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,31,0,0,0,114,33,0,0,0,114,40,0, + 0,0,114,46,0,0,0,114,48,0,0,0,114,69,0,0, + 0,114,76,0,0,0,114,77,0,0,0,114,81,0,0,0, + 114,82,0,0,0,114,84,0,0,0,114,87,0,0,0,114, + 96,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,38,0,0,0,114,176, + 0,0,0,114,37,0,0,0,114,43,0,0,0,114,7,1, + 0,0,114,118,0,0,0,114,114,0,0,0,114,129,0,0, + 0,114,115,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,123,0,0, + 0,114,130,0,0,0,114,138,0,0,0,114,140,0,0,0, + 114,142,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,235,0,0,0,114,248, + 0,0,0,114,10,1,0,0,114,37,1,0,0,114,44,1, + 0,0,114,49,1,0,0,114,23,1,0,0,114,50,1,0, + 0,114,72,1,0,0,114,74,1,0,0,114,90,1,0,0, + 114,105,1,0,0,114,109,1,0,0,114,116,1,0,0,114, + 212,0,0,0,114,125,1,0,0,114,127,1,0,0,114,10, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,8,60,109,111,100,117,108,101,62,1,0,0,0, + 115,174,0,0,0,4,22,8,1,8,1,8,1,8,1,8, + 3,10,1,4,1,8,1,10,2,8,3,4,1,10,2,6, + 2,22,1,8,1,8,1,10,1,14,4,4,1,4,1,2, + 1,2,255,4,4,8,17,8,5,8,5,8,6,4,1,10, + 30,8,6,8,8,8,10,8,9,8,5,8,7,6,1,10, + 8,8,5,10,22,10,127,0,13,16,1,12,2,4,1,4, + 2,6,2,6,2,8,2,16,71,8,40,8,19,8,12,8, + 12,8,28,8,17,8,33,8,28,8,24,10,13,10,10,10, + 11,8,14,6,3,4,1,2,255,12,68,14,64,14,29,16, + 127,0,17,14,72,18,45,18,26,4,3,18,58,14,63,14, + 42,14,127,0,20,14,127,0,25,16,32,14,23,10,23,8, + 11,8,65, }; diff --git a/Python/marshal.c b/Python/marshal.c index 99075b1081..49421ed5b4 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -14,6 +14,10 @@ #include "marshal.h" #include "../Modules/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 a47926727a..01c54772bb 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -41,6 +41,10 @@ extern const char *PyWin_DLLVersionString; #endif +#if defined(__APPLE__) +#include "TargetConditionals.h" +#endif + /*[clinic input] module sys [clinic start generated code]*/ @@ -2682,6 +2686,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 04342a4982..52102fe4bb 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.2 -*- 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, @@ -130,7 +130,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], [ @@ -173,7 +173,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" @@ -222,7 +222,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 @@ -264,7 +264,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 @@ -365,7 +365,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]) @@ -375,11 +375,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 @@ -396,7 +396,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 @@ -497,71 +497,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 ba37cf99e2..499a5268fc 100755 --- a/config.sub +++ b/config.sub @@ -116,6 +116,7 @@ case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + ios*-simulator | tvos*-simulator | watchos*-simulator | \ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) @@ -249,7 +250,7 @@ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][armk] \ | avr | avr32 \ | ba \ | be32 | be64 \ @@ -376,7 +377,7 @@ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* | arm64-* \ | avr-* | avr32-* \ | ba-* \ | be32-* | be64-* \ @@ -454,6 +455,10 @@ | ymp-* \ | z8k-* | z80-*) ;; + arm64-* | arm64e-* | arm64_32-*) + basic_machine=aarch64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + # Recognize the ba # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown @@ -1524,7 +1529,11 @@ ;; -nacl*) ;; - -ios) + -ios* | -ios*-simulator) + ;; + -tvos* | -tvos*-simulator) + ;; + -watchos* | -watchos*-simulator) ;; -none) ;; diff --git a/configure b/configure index c091865aff..35344222b2 100755 --- a/configure +++ b/configure @@ -653,6 +653,8 @@ DTRACE TCLTK_LIBS TCLTK_INCLUDES +LIBFFI_LIB +LIBFFI_LIBDIR LIBFFI_INCLUDEDIR PKG_CONFIG_LIBDIR PKG_CONFIG_PATH @@ -3268,6 +3270,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 ;; @@ -3309,24 +3320,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 @@ -3393,6 +3473,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 AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined # or has another value. By not (re)defining it, the defaults come in place. @@ -5299,7 +5386,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 @@ -5318,9 +5440,23 @@ fi rm -f conftest.c conftest.out -if test x$PLATFORM_TRIPLET != xdarwin; then - MULTIARCH=$($CC --print-multiarch 2>/dev/null) -fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for multiarch" >&5 +$as_echo_n "checking for multiarch... " >&6; } +case $ac_sys_system in #( + Darwin*) : + MULTIARCH="" ;; #( + iOS) : + MULTIARCH="" ;; #( + tvOS) : + MULTIARCH="" ;; #( + watchOS) : + MULTIARCH="" ;; #( + FreeBSD*) : + MULTIARCH="" ;; #( + *) : + MULTIARCH=$($CC --print-multiarch 2>/dev/null) + ;; +esac if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then @@ -5331,6 +5467,17 @@ 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\\\"" fi @@ -6164,11 +6311,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 @@ -9363,6 +9522,7 @@ esac ;; CYGWIN*) SHLIB_SUFFIX=.dll;; + iOS|tvOS|watchOS) SHLIB_SUFFIX=.dylib;; *) SHLIB_SUFFIX=.so;; esac fi @@ -9457,6 +9617,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';; @@ -10421,23 +10585,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; } @@ -15229,7 +15405,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; } @@ -15237,7 +15413,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}" @@ -17278,8 +17454,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" @@ -18768,4 +18944,3 @@ echo "" >&6 echo "" >&6 fi - diff --git a/configure.ac b/configure.ac index de83332dd3..ae645378d5 100644 --- a/configure.ac +++ b/configure.ac @@ -392,6 +392,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 ;; @@ -432,24 +441,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 @@ -513,6 +591,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 AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined # or has another value. By not (re)defining it, the defaults come in place. @@ -857,7 +942,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 @@ -874,10 +994,16 @@ fi rm -f conftest.c conftest.out -if test x$PLATFORM_TRIPLET != xdarwin; then - MULTIARCH=$($CC --print-multiarch 2>/dev/null) -fi -AC_SUBST(MULTIARCH) +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]) if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then if test x$PLATFORM_TRIPLET != x$MULTIARCH; then @@ -887,6 +1013,13 @@ 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\\\"" fi @@ -1201,11 +1334,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) @@ -2537,6 +2682,7 @@ esac ;; CYGWIN*) SHLIB_SUFFIX=.dll;; + iOS|tvOS|watchOS) SHLIB_SUFFIX=.dylib;; *) SHLIB_SUFFIX=.so;; esac fi @@ -2629,6 +2775,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';; @@ -3012,20 +3162,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) @@ -4692,14 +4852,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 @@ -5706,4 +5866,3 @@ echo "" >&AS_MESSAGE_FD echo "" >&AS_MESSAGE_FD fi - diff --git a/pyconfig.h.in b/pyconfig.h.in index 41cfe07902..75cd6905a0 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -281,6 +281,9 @@ /* Define to 1 if you have the `dup3' function. */ #undef HAVE_DUP3 +/* Define if you have the '_dyld_shared_cache_contains_path' function. */ +#undef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH + /* Defined when any dynamic module loading is enabled. */ #undef HAVE_DYNAMIC_LOADING @@ -772,9 +775,6 @@ /* Define if you have the 'prlimit' functions. */ #undef HAVE_PRLIMIT -/* Define if you have the '_dyld_shared_cache_contains_path' function. */ -#undef HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH - /* Define to 1 if you have the header file. */ #undef HAVE_PROCESS_H diff --git a/setup.py b/setup.py index 57be07a7e0..9a6bd11af6 100644 --- a/setup.py +++ b/setup.py @@ -44,6 +44,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) @@ -115,16 +118,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 MACOS_SDK_ROOT = None @@ -1972,6 +1979,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 @@ -2001,7 +2013,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: @@ -2030,6 +2043,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: @@ -2043,7 +2057,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